@mnaoumov/typescript-dev-toolkit 1.3.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/assets/docs-site/components/ConstructorBlock.astro +16 -0
  2. package/assets/docs-site/components/ImportStatement.astro +12 -0
  3. package/assets/docs-site/components/MemberDetail.astro +101 -0
  4. package/assets/docs-site/components/MethodTable.astro +45 -0
  5. package/assets/docs-site/components/PropertyTable.astro +45 -0
  6. package/assets/docs-site/components/SiteTitle.astro +43 -0
  7. package/assets/docs-site/components/TypeSignature.astro +20 -0
  8. package/assets/docs-site/fonts/inter-latin-400-normal.ttf +0 -0
  9. package/assets/docs-site/fonts/inter-latin-700-normal.ttf +0 -0
  10. package/assets/docs-site/styles/global.css +221 -0
  11. package/dist/lib/cjs/build.cjs +1 -1
  12. package/dist/lib/cjs/build.d.cts +1 -1
  13. package/dist/lib/cjs/commitlint-forbidden-patterns.cjs +2 -2
  14. package/dist/lib/cjs/commitlint-forbidden-patterns.d.cts +1 -1
  15. package/dist/lib/cjs/commitlint-spellcheck-header.cjs +2 -2
  16. package/dist/lib/cjs/commitlint-spellcheck-header.d.cts +1 -1
  17. package/dist/lib/cjs/docs-site/api-doc-constants.cjs +171 -0
  18. package/dist/lib/cjs/docs-site/api-doc-constants.d.cts +18 -0
  19. package/dist/lib/cjs/docs-site/api-doc-jsdoc.cjs +414 -0
  20. package/dist/lib/cjs/docs-site/api-doc-jsdoc.d.cts +149 -0
  21. package/dist/lib/cjs/docs-site/api-doc-link-rendering.cjs +377 -0
  22. package/dist/lib/cjs/docs-site/api-doc-link-rendering.d.cts +185 -0
  23. package/dist/lib/cjs/docs-site/api-doc-package-sites.cjs +118 -0
  24. package/dist/lib/cjs/docs-site/api-doc-package-sites.d.cts +36 -0
  25. package/dist/lib/cjs/docs-site/api-doc-page-generation.cjs +561 -0
  26. package/dist/lib/cjs/docs-site/api-doc-page-generation.d.cts +159 -0
  27. package/dist/lib/cjs/docs-site/api-doc-route-segments.cjs +42 -0
  28. package/dist/lib/cjs/docs-site/api-doc-route-segments.d.cts +25 -0
  29. package/dist/lib/cjs/docs-site/api-doc-settings.cjs +47 -0
  30. package/dist/lib/cjs/docs-site/api-doc-settings.d.cts +53 -0
  31. package/dist/lib/cjs/docs-site/api-doc-source-processing.cjs +288 -0
  32. package/dist/lib/cjs/docs-site/api-doc-source-processing.d.cts +75 -0
  33. package/dist/lib/cjs/docs-site/api-doc-text-utils.cjs +281 -0
  34. package/dist/lib/cjs/docs-site/api-doc-text-utils.d.cts +178 -0
  35. package/dist/lib/cjs/docs-site/api-doc-type-merging.cjs +157 -0
  36. package/dist/lib/cjs/docs-site/api-doc-type-merging.d.cts +51 -0
  37. package/dist/lib/cjs/docs-site/api-doc-types.cjs +22 -0
  38. package/dist/lib/cjs/docs-site/api-doc-types.d.cts +157 -0
  39. package/dist/lib/cjs/docs-site/api-docs.cjs +143 -0
  40. package/dist/lib/cjs/docs-site/api-docs.d.cts +34 -0
  41. package/dist/lib/cjs/docs-site/astro-config.cjs +169 -0
  42. package/dist/lib/cjs/docs-site/astro-config.d.cts +23 -0
  43. package/dist/lib/cjs/docs-site/docs-links.cjs +123 -0
  44. package/dist/lib/cjs/docs-site/docs-links.d.cts +32 -0
  45. package/dist/lib/cjs/docs-site/docs-site-assets.cjs +64 -0
  46. package/dist/lib/cjs/docs-site/docs-site-assets.d.cts +23 -0
  47. package/dist/lib/cjs/docs-site/docs-site-commands.cjs +72 -0
  48. package/dist/lib/cjs/docs-site/docs-site-commands.d.cts +29 -0
  49. package/dist/lib/cjs/docs-site/docs-site-config.cjs +122 -0
  50. package/dist/lib/cjs/docs-site/docs-site-config.d.cts +162 -0
  51. package/dist/lib/cjs/docs-site/index.cjs +116 -0
  52. package/dist/lib/cjs/docs-site/index.d.cts +26 -0
  53. package/dist/lib/cjs/docs-site/link-check.cjs +197 -0
  54. package/dist/lib/cjs/docs-site/link-check.d.cts +163 -0
  55. package/dist/lib/cjs/docs-site/og-image-page.cjs +45 -0
  56. package/dist/lib/cjs/docs-site/og-image-page.d.cts +15 -0
  57. package/dist/lib/cjs/docs-site/og-image.cjs +326 -0
  58. package/dist/lib/cjs/docs-site/og-image.d.cts +70 -0
  59. package/dist/lib/cjs/docs-site/og-images.cjs +170 -0
  60. package/dist/lib/cjs/docs-site/og-images.d.cts +41 -0
  61. package/dist/lib/cjs/docs-site/route-data.cjs +47 -0
  62. package/dist/lib/cjs/docs-site/route-data.d.cts +14 -0
  63. package/dist/lib/cjs/docs-site/satteri-github-alerts.cjs +97 -0
  64. package/dist/lib/cjs/docs-site/satteri-github-alerts.d.cts +31 -0
  65. package/dist/lib/cjs/docs-site/satteri-relative-links.cjs +87 -0
  66. package/dist/lib/cjs/docs-site/satteri-relative-links.d.cts +29 -0
  67. package/dist/lib/cjs/docs-site/unrendered-alerts.cjs +51 -0
  68. package/dist/lib/cjs/docs-site/unrendered-alerts.d.cts +38 -0
  69. package/dist/lib/cjs/index.cjs +4 -1
  70. package/dist/lib/cjs/index.d.cts +1 -0
  71. package/dist/lib/cjs/library-build.cjs +1 -1
  72. package/dist/lib/cjs/library-build.d.cts +2 -2
  73. package/dist/lib/cjs/linters/eslint-config.cjs +17 -17
  74. package/dist/lib/cjs/linters/eslint-config.d.cts +1 -7
  75. package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.cjs +2 -2
  76. package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.d.cts +5 -8
  77. package/dist/lib/cjs/linters/markdownlint.cjs +4 -1
  78. package/dist/lib/cjs/package-manager.cjs +2 -2
  79. package/dist/lib/esm/build.d.mts +1 -1
  80. package/dist/lib/esm/build.mjs +1 -1
  81. package/dist/lib/esm/commitlint-forbidden-patterns.d.mts +1 -1
  82. package/dist/lib/esm/commitlint-forbidden-patterns.mjs +2 -2
  83. package/dist/lib/esm/commitlint-spellcheck-header.d.mts +1 -1
  84. package/dist/lib/esm/commitlint-spellcheck-header.mjs +2 -2
  85. package/dist/lib/esm/docs-site/api-doc-constants.d.mts +18 -0
  86. package/dist/lib/esm/docs-site/api-doc-constants.mjs +143 -0
  87. package/dist/lib/esm/docs-site/api-doc-jsdoc.d.mts +149 -0
  88. package/dist/lib/esm/docs-site/api-doc-jsdoc.mjs +377 -0
  89. package/dist/lib/esm/docs-site/api-doc-link-rendering.d.mts +185 -0
  90. package/dist/lib/esm/docs-site/api-doc-link-rendering.mjs +356 -0
  91. package/dist/lib/esm/docs-site/api-doc-package-sites.d.mts +36 -0
  92. package/dist/lib/esm/docs-site/api-doc-package-sites.mjs +91 -0
  93. package/dist/lib/esm/docs-site/api-doc-page-generation.d.mts +159 -0
  94. package/dist/lib/esm/docs-site/api-doc-page-generation.mjs +548 -0
  95. package/dist/lib/esm/docs-site/api-doc-route-segments.d.mts +25 -0
  96. package/dist/lib/esm/docs-site/api-doc-route-segments.mjs +17 -0
  97. package/dist/lib/esm/docs-site/api-doc-settings.d.mts +53 -0
  98. package/dist/lib/esm/docs-site/api-doc-settings.mjs +22 -0
  99. package/dist/lib/esm/docs-site/api-doc-source-processing.d.mts +75 -0
  100. package/dist/lib/esm/docs-site/api-doc-source-processing.mjs +274 -0
  101. package/dist/lib/esm/docs-site/api-doc-text-utils.d.mts +178 -0
  102. package/dist/lib/esm/docs-site/api-doc-text-utils.mjs +239 -0
  103. package/dist/lib/esm/docs-site/api-doc-type-merging.d.mts +51 -0
  104. package/dist/lib/esm/docs-site/api-doc-type-merging.mjs +129 -0
  105. package/dist/lib/esm/docs-site/api-doc-types.d.mts +157 -0
  106. package/dist/lib/esm/docs-site/api-doc-types.mjs +6 -0
  107. package/dist/lib/esm/docs-site/api-docs.d.mts +34 -0
  108. package/dist/lib/esm/docs-site/api-docs.mjs +139 -0
  109. package/dist/lib/esm/docs-site/astro-config.d.mts +23 -0
  110. package/dist/lib/esm/docs-site/astro-config.mjs +135 -0
  111. package/dist/lib/esm/docs-site/docs-links.d.mts +32 -0
  112. package/dist/lib/esm/docs-site/docs-links.mjs +113 -0
  113. package/dist/lib/esm/docs-site/docs-site-assets.d.mts +23 -0
  114. package/dist/lib/esm/docs-site/docs-site-assets.mjs +32 -0
  115. package/dist/lib/esm/docs-site/docs-site-commands.d.mts +29 -0
  116. package/dist/lib/esm/docs-site/docs-site-commands.mjs +46 -0
  117. package/dist/lib/esm/docs-site/docs-site-config.d.mts +162 -0
  118. package/dist/lib/esm/docs-site/docs-site-config.mjs +98 -0
  119. package/dist/lib/esm/docs-site/index.d.mts +26 -0
  120. package/dist/lib/esm/docs-site/index.mjs +58 -0
  121. package/dist/lib/esm/docs-site/link-check.d.mts +163 -0
  122. package/dist/lib/esm/docs-site/link-check.mjs +166 -0
  123. package/dist/lib/esm/docs-site/og-image-page.d.mts +15 -0
  124. package/dist/lib/esm/docs-site/og-image-page.mjs +21 -0
  125. package/dist/lib/esm/docs-site/og-image.d.mts +70 -0
  126. package/dist/lib/esm/docs-site/og-image.mjs +292 -0
  127. package/dist/lib/esm/docs-site/og-images.d.mts +41 -0
  128. package/dist/lib/esm/docs-site/og-images.mjs +156 -0
  129. package/dist/lib/esm/docs-site/route-data.d.mts +14 -0
  130. package/dist/lib/esm/docs-site/route-data.mjs +23 -0
  131. package/dist/lib/esm/docs-site/satteri-github-alerts.d.mts +31 -0
  132. package/dist/lib/esm/docs-site/satteri-github-alerts.mjs +72 -0
  133. package/dist/lib/esm/docs-site/satteri-relative-links.d.mts +29 -0
  134. package/dist/lib/esm/docs-site/satteri-relative-links.mjs +63 -0
  135. package/dist/lib/esm/docs-site/unrendered-alerts.d.mts +38 -0
  136. package/dist/lib/esm/docs-site/unrendered-alerts.mjs +26 -0
  137. package/dist/lib/esm/index.d.mts +1 -0
  138. package/dist/lib/esm/index.mjs +3 -1
  139. package/dist/lib/esm/library-build.d.mts +2 -2
  140. package/dist/lib/esm/library-build.mjs +1 -1
  141. package/dist/lib/esm/linters/eslint-config.d.mts +1 -7
  142. package/dist/lib/esm/linters/eslint-config.mjs +17 -17
  143. package/dist/lib/esm/linters/eslint-rules/in-house-plugin.d.mts +5 -8
  144. package/dist/lib/esm/linters/eslint-rules/in-house-plugin.mjs +2 -2
  145. package/dist/lib/esm/linters/markdownlint.mjs +4 -1
  146. package/dist/lib/esm/package-manager.mjs +2 -2
  147. package/docs-site/api-doc-constants/package.json +6 -0
  148. package/docs-site/api-doc-jsdoc/package.json +6 -0
  149. package/docs-site/api-doc-link-rendering/package.json +6 -0
  150. package/docs-site/api-doc-package-sites/package.json +6 -0
  151. package/docs-site/api-doc-page-generation/package.json +6 -0
  152. package/docs-site/api-doc-route-segments/package.json +6 -0
  153. package/docs-site/api-doc-settings/package.json +6 -0
  154. package/docs-site/api-doc-source-processing/package.json +6 -0
  155. package/docs-site/api-doc-text-utils/package.json +6 -0
  156. package/docs-site/api-doc-type-merging/package.json +6 -0
  157. package/docs-site/api-doc-types/package.json +6 -0
  158. package/docs-site/api-docs/package.json +6 -0
  159. package/docs-site/astro-config/package.json +6 -0
  160. package/docs-site/docs-links/package.json +6 -0
  161. package/docs-site/docs-site-assets/package.json +6 -0
  162. package/docs-site/docs-site-commands/package.json +6 -0
  163. package/docs-site/docs-site-config/package.json +6 -0
  164. package/docs-site/index/package.json +6 -0
  165. package/docs-site/link-check/package.json +6 -0
  166. package/docs-site/og-image/package.json +6 -0
  167. package/docs-site/og-image-page/package.json +6 -0
  168. package/docs-site/og-images/package.json +6 -0
  169. package/docs-site/package.json +6 -0
  170. package/docs-site/route-data/package.json +6 -0
  171. package/docs-site/satteri-github-alerts/package.json +6 -0
  172. package/docs-site/satteri-relative-links/package.json +6 -0
  173. package/docs-site/unrendered-alerts/package.json +6 -0
  174. package/package.json +74 -4
@@ -97,6 +97,9 @@ async function lint(options) {
97
97
  const rootFolder = (0, import_root.getRootFolder)() ?? process.cwd();
98
98
  const mdFiles = paths?.length ? paths.map((p) => (0, import_node_path.relative)(rootFolder, p).replaceAll("\\", "/") || p) : await getMarkdownFiles();
99
99
  const linkCheckFiles = mdFiles.filter((mdFile) => linkCheckExcludeGlobs.every((excludeGlob) => !(0, import_node_path.matchesGlob)(mdFile, excludeGlob)));
100
+ if (linkCheckFiles.length === 0) {
101
+ return;
102
+ }
100
103
  await (0, import_root.execFromRoot)([
101
104
  ...(0, import_package_manager.resolveToolCommand)({ tool: "linkinator" }),
102
105
  "--retry",
@@ -127,4 +130,4 @@ async function getMarkdownFiles() {
127
130
  0 && (module.exports = {
128
131
  lint
129
132
  });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL21hcmtkb3dubGludC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogTGludCBtYXJrZG93biBkb2N1bWVudGF0aW9uIHVzaW5nIGBtYXJrZG93bmxpbnQtY2xpMmAgYW5kIGBsaW5raW5hdG9yYC5cbiAqL1xuXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3BhdGgnO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgY3AsXG4gIGdsb2Jcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQge1xuICBtYXRjaGVzR2xvYixcbiAgcmVsYXRpdmVcbn0gZnJvbSAnbm9kZTpwYXRoJztcblxuaW1wb3J0IHsgZ2V0Tm9uSWdub3JlZEZpbGVzIH0gZnJvbSAnLi4vZ2l0LnRzJztcbmltcG9ydCB7IHJlc29sdmVUb29sQ29tbWFuZCB9IGZyb20gJy4uL3BhY2thZ2UtbWFuYWdlci50cyc7XG5pbXBvcnQgeyBSZXBvUGF0aHMgfSBmcm9tICcuLi9yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgZ2V0Um9vdEZvbGRlcixcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi4vcm9vdC50cyc7XG5pbXBvcnQge1xuICBjaGVja0lzSW5Ob2RlTW9kdWxlcyxcbiAgTk9ERV9NT0RVTEVTX0lHTk9SRV9HTE9CXG59IGZyb20gJy4vbWFya2Rvd25saW50LWlnbm9yZXMudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHRoZSB7QGxpbmsgbGludH0gZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGludE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBjb3BpZWQgdG8gdGhlIHByb2plY3Qgcm9vdCB3aGVuIHRoZSBwcm9qZWN0IGhhcyBub25lLiBXaXRob3V0IGl0LFxuICAgKiBgbWFya2Rvd25saW50LWNsaTJgIHJ1bnMgd2l0aCBpdHMgb3duIGRlZmF1bHRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBHbG9icywgcmVsYXRpdmUgdG8gdGhlIHJvb3QgZm9sZGVyLCBvZiBtYXJrZG93biBmaWxlcyB0byBsZWF2ZSBvdXQgb2YgdGhlIGBsaW5raW5hdG9yYCBwYXNzIG9ubHk7XG4gICAqIGBtYXJrZG93bmxpbnQtY2xpMmAgc3RpbGwgbGludHMgdGhlbS5cbiAgICpcbiAgICogRm9yIGEgZG9jdW1lbnRhdGlvbiBzaXRlIHdob3NlIHBhZ2VzIGxpbmsgdG8gZWFjaCBvdGhlciBiYXNlLWFic29sdXRlbHkgKGAvPHNpdGUtYmFzZT4vZ3VpZGVzLy4uLmApOiB0aG9zZVxuICAgKiBsaW5rcyByZXNvbHZlIG9ubHkgYWdhaW5zdCB0aGUgQlVJTFQgc2l0ZSwgc28gYGxpbmtpbmF0b3JgIHJlcG9ydHMgZWFjaCBvbmUgYXMgYSA0MDQsIGFuZCB0aGUgc2l0ZSdzIG93blxuICAgKiBidWlsZCBpcyB3aGF0IGNoZWNrcyB0aGVtLlxuICAgKlxuICAgKiBAZXhhbXBsZSBgWydkb2NzLyoqJ11gXG4gICAqL1xuICByZWFkb25seSBsaW5rQ2hlY2tFeGNsdWRlR2xvYnM/OiByZWFkb25seSBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZmlsZSBwYXRocyB0byBsaW50LiBJZiBvbWl0dGVkLCBsaW50cyB0aGUgZW50aXJlIHByb2plY3QuXG4gICAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZpeCBsaW50aW5nIGlzc3VlcyBhdXRvbWF0aWNhbGx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRGaXg/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIExpbnQgbWFya2Rvd24gZG9jdW1lbnRhdGlvbiB1c2luZyBgbWFya2Rvd25saW50LWNsaTJgIGFuZCBgbGlua2luYXRvcmAuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIExpbnRPcHRpb25zfS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpbnQob3B0aW9ucz86IExpbnRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoLCBsaW5rQ2hlY2tFeGNsdWRlR2xvYnMgPSBbXSwgcGF0aHMsIHNob3VsZEZpeCA9IGZhbHNlIH0gPSBvcHRpb25zID8/IHt9O1xuICBjb25zdCBjb25maWdGaWxlcyA9IFtcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ0pzb25jLFxuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDbGkyQ29uZmlnWWFtbCxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ0NqcyxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnSnNvbmMsXG4gICAgUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ0pzb24sXG4gICAgUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ1lhbWwsXG4gICAgUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ1ltbCxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnQ2pzLFxuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDb25maWdNanNcbiAgXTtcblxuICBjb25zdCBkb2VzQ29uZmlnRmlsZUV4aXN0ID0gY29uZmlnRmlsZXMuc29tZSgoY29uZmlnRmlsZSkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ0ZpbGVQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBjb25maWdGaWxlIH0pO1xuICAgIHJldHVybiBleGlzdHNTeW5jKGNvbmZpZ0ZpbGVQYXRoKTtcbiAgfSk7XG5cbiAgaWYgKCFkb2VzQ29uZmlnRmlsZUV4aXN0ICYmIGRlZmF1bHRDb25maWdGaWxlUGF0aCkge1xuICAgIGdldExpYkRlYnVnZ2VyKCdtYXJrZG93bmxpbnQ6bGludCcpKCdtYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlIG5vdCBmb3VuZC4gQ3JlYXRpbmcgZGVmYXVsdCBjb25maWcuLi4nKTtcbiAgICBhd2FpdCBjcChkZWZhdWx0Q29uZmlnRmlsZVBhdGgsIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogYmFzZW5hbWUoZGVmYXVsdENvbmZpZ0ZpbGVQYXRoKSB9KSk7XG4gIH1cblxuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gVGhlIHBhdGhzLXByb3ZpZGVkIGJyYW5jaGVzIGFyZSBvbmx5IGV4ZXJjaXNlZCBieSBjb25zdW1lciBwcm9qZWN0cyBwYXNzaW5nIGZpbGUgbGlzdHMuICovXG4gIGNvbnN0IHRhcmdldHMgPSBwYXRocz8ubGVuZ3RoID8gcGF0aHMgOiBbUmVwb1BhdGhzLkN1cnJlbnRGb2xkZXJdO1xuICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWy4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICdtYXJrZG93bmxpbnQtY2xpMicgfSksIC4uLihzaG91bGRGaXggPyBbJy0tZml4J10gOiBbXSksIHsgYmF0Y2hlZEFyZ3VtZW50czogdGFyZ2V0cyB9XSk7XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIFRoZSBwYXRocy1wcm92aWRlZCBicmFuY2ggaXMgb25seSBleGVyY2lzZWQgYnkgY29uc3VtZXIgcHJvamVjdHMgcGFzc2luZyBmaWxlIGxpc3RzLiAqL1xuICBjb25zdCByb290Rm9sZGVyID0gZ2V0Um9vdEZvbGRlcigpID8/IHByb2Nlc3MuY3dkKCk7XG4gIGNvbnN0IG1kRmlsZXMgPSBwYXRocz8ubGVuZ3RoXG4gICAgPyBwYXRocy5tYXAoKHApID0+IHJlbGF0aXZlKHJvb3RGb2xkZXIsIHApLnJlcGxhY2VBbGwoJ1xcXFwnLCAnLycpIHx8IHApXG4gICAgOiBhd2FpdCBnZXRNYXJrZG93bkZpbGVzKCk7XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gIGNvbnN0IGxpbmtDaGVja0ZpbGVzID0gbWRGaWxlcy5maWx0ZXIoKG1kRmlsZSkgPT4gbGlua0NoZWNrRXhjbHVkZUdsb2JzLmV2ZXJ5KChleGNsdWRlR2xvYikgPT4gIW1hdGNoZXNHbG9iKG1kRmlsZSwgZXhjbHVkZUdsb2IpKSk7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbXG4gICAgLi4ucmVzb2x2ZVRvb2xDb21tYW5kKHsgdG9vbDogJ2xpbmtpbmF0b3InIH0pLFxuICAgICctLXJldHJ5JyxcbiAgICAnLS1yZXRyeS1lcnJvcnMnLFxuICAgICctLXJldHJ5LWVycm9ycy1jb3VudCcsXG4gICAgJzMnLFxuICAgICctLXJldHJ5LWVycm9ycy1qaXR0ZXInLFxuICAgICc1JyxcbiAgICAnLS11cmwtcmV3cml0ZS1zZWFyY2gnLFxuICAgIFN0cmluZy5yYXdgaHR0cHM6Ly93d3dcXC5ucG1qc1xcLmNvbS9wYWNrYWdlL2AsXG4gICAgJy0tdXJsLXJld3JpdGUtcmVwbGFjZScsXG4gICAgJ2h0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnLycsXG4gICAgeyBiYXRjaGVkQXJndW1lbnRzOiBsaW5rQ2hlY2tGaWxlcyB9XG4gIF0pO1xufVxuXG4vKipcbiAqIFRoZSBnaXQgcGF0aHNwZWMgbWF0Y2hpbmcgZXZlcnkgbWFya2Rvd24gZmlsZSBpbiB0aGUgcmVwb3NpdG9yeSwgYXQgYW55IGRlcHRoLlxuICovXG5jb25zdCBNQVJLRE9XTl9QQVRIU1BFQyA9ICcqLm1kJztcblxuLyoqXG4gKiBMaXN0cyB0aGUgbWFya2Rvd24gZmlsZXMgdG8gaGFuZCB0byBgbGlua2luYXRvcmAuXG4gKlxuICogYGxpbmtpbmF0b3JgIHRha2VzIGEgZmlsZSBsaXN0IHJhdGhlciB0aGFuIGFuIGlnbm9yZSBjb25maWd1cmF0aW9uLCBzbyB0aGUgZ2l0aWdub3JlZCBmaWxlcyBoYXZlIHRvIGJlXG4gKiBkcm9wcGVkIGJlZm9yZSBpdCBpcyBpbnZva2VkLiBHaXQgaXRzZWxmIGFuc3dlcnMgdGhhdCAobmVzdGVkIGlnbm9yZSBmaWxlcywgYCFgIG5lZ2F0aW9ucyBhbmQgYWxsKTsgdGhlXG4gKiBoYW5kLW1haW50YWluZWQgZ2xvYiBleGNsdXNpb25zIGJlbG93IGFyZSBvbmx5IHRoZSBmYWxsYmFjayBmb3IgYSBjaGVja291dCB3aXRob3V0IGdpdCwgYW5kIHRoZXkgYXJlIHRoZVxuICogdmVyeSBsaXN0cyB0aGlzIGluZGlyZWN0aW9uIGV4aXN0cyB0byBzdG9wIGZyb20gZHJpZnRpbmcuXG4gKlxuICogVGhlIGBub2RlX21vZHVsZXNgIGZpbHRlciBpcyBhcHBsaWVkIHRvIHRoZSBnaXQtZGVyaXZlZCBsaXN0IHRvbywgYW5kIGRlbGliZXJhdGVseSBzbzogZ2l0IG9ubHkgc2tpcHNcbiAqIHdoYXQgdGhlIHJlcG9zaXRvcnkgYXNrZWQgaXQgdG8gc2tpcCwgYW5kIGEgcmVwb3NpdG9yeSBjYW4gZGVsaWJlcmF0ZWx5IFRSQUNLIGEgdmVuZG9yZWQgYG5vZGVfbW9kdWxlc2BcbiAqIHRyZWUuIFRoYXQgaXMgdGhlIG9uZSBleGNsdXNpb24gYC5naXRpZ25vcmVgIGNhbm5vdCBhbnN3ZXIg4oCUIHNlZSBgbWFya2Rvd25saW50LWlnbm9yZXMudHNgLiBBcHBseWluZyBpdFxuICogaGVyZSBrZWVwcyBgbGlua2luYXRvcmAgaW4gc3RlcCB3aXRoIHRoZSBtYXJrZG93bmxpbnQgaGFsZiwgd2hpY2ggaWdub3JlcyB0aGUgc2FtZSBwYXRocyBieSBnbG9iLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgbWFya2Rvd24gZmlsZSBwYXRocywgcmVsYXRpdmUgdG8gdGhlIHJvb3QgZm9sZGVyLlxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRNYXJrZG93bkZpbGVzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgY29uc3Qgbm9uSWdub3JlZEZpbGVzID0gYXdhaXQgZ2V0Tm9uSWdub3JlZEZpbGVzKHsgcGF0dGVybnM6IFtNQVJLRE9XTl9QQVRIU1BFQ10gfSk7XG4gIHJldHVybiBub25JZ25vcmVkRmlsZXNcbiAgICA/IG5vbklnbm9yZWRGaWxlcy5maWx0ZXIoKHBhdGgpID0+ICFjaGVja0lzSW5Ob2RlTW9kdWxlcyhwYXRoKSlcbiAgICA6IChhd2FpdCB0b0FycmF5KGdsb2IoWycqKi8qLm1kJ10sIHtcbiAgICAgIGV4Y2x1ZGU6IFtcbiAgICAgICAgJy5naXQvKionLFxuICAgICAgICAnZGlzdC8qKicsXG4gICAgICAgIE5PREVfTU9EVUxFU19JR05PUkVfR0xPQlxuICAgICAgXVxuICAgIH0pKSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLG1CQUF3QjtBQUN4QixtQkFBK0I7QUFDL0Isa0JBQXlCO0FBQ3pCLHFCQUEyQjtBQUMzQixzQkFHTztBQUNQLHVCQUdPO0FBRVAsaUJBQW1DO0FBQ25DLDZCQUFtQztBQUNuQyx3QkFBMEI7QUFDMUIsa0JBSU87QUFDUCxrQ0FHTztBQTBDUCxlQUFzQixLQUFLLFNBQXNDO0FBQy9ELFFBQU0sRUFBRSx1QkFBdUIsd0JBQXdCLENBQUMsR0FBRyxPQUFPLFlBQVksTUFBTSxJQUFJLFdBQVcsQ0FBQztBQUNwRyxRQUFNLGNBQWM7QUFBQSxJQUNsQiw0QkFBVTtBQUFBLElBQ1YsNEJBQVU7QUFBQSxJQUNWLDRCQUFVO0FBQUEsSUFDViw0QkFBVTtBQUFBLElBQ1YsNEJBQVU7QUFBQSxJQUNWLDRCQUFVO0FBQUEsSUFDViw0QkFBVTtBQUFBLElBQ1YsNEJBQVU7QUFBQSxJQUNWLDRCQUFVO0FBQUEsSUFDViw0QkFBVTtBQUFBLEVBQ1o7QUFFQSxRQUFNLHNCQUFzQixZQUFZLEtBQUssQ0FBQyxlQUFlO0FBQzNELFVBQU0scUJBQWlCLHFDQUF3QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25FLGVBQU8sMkJBQVcsY0FBYztBQUFBLEVBQ2xDLENBQUM7QUFFRCxNQUFJLENBQUMsdUJBQXVCLHVCQUF1QjtBQUNqRCxxQ0FBZSxtQkFBbUIsRUFBRSx1RUFBdUU7QUFDM0csY0FBTSxvQkFBRywyQkFBdUIscUNBQXdCLEVBQUUsVUFBTSxzQkFBUyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7QUFBQSxFQUNwRztBQUdBLFFBQU0sVUFBVSxPQUFPLFNBQVMsUUFBUSxDQUFDLDRCQUFVLGFBQWE7QUFFaEUsWUFBTSwwQkFBYSxDQUFDLE9BQUcsMkNBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQyxHQUFHLEdBQUksWUFBWSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUksRUFBRSxrQkFBa0IsUUFBUSxDQUFDLENBQUM7QUFHekksUUFBTSxpQkFBYSwyQkFBYyxLQUFLLFFBQVEsSUFBSTtBQUNsRCxRQUFNLFVBQVUsT0FBTyxTQUNuQixNQUFNLElBQUksQ0FBQyxVQUFNLDJCQUFTLFlBQVksQ0FBQyxFQUFFLFdBQVcsTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUNuRSxNQUFNLGlCQUFpQjtBQUUzQixRQUFNLGlCQUFpQixRQUFRLE9BQU8sQ0FBQyxXQUFXLHNCQUFzQixNQUFNLENBQUMsZ0JBQWdCLEtBQUMsOEJBQVksUUFBUSxXQUFXLENBQUMsQ0FBQztBQUNqSSxZQUFNLDBCQUFhO0FBQUEsSUFDakIsT0FBRywyQ0FBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUFBLElBQzVDO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxPQUFPO0FBQUEsSUFDUDtBQUFBLElBQ0E7QUFBQSxJQUNBLEVBQUUsa0JBQWtCLGVBQWU7QUFBQSxFQUNyQyxDQUFDO0FBQ0g7QUFLQSxNQUFNLG9CQUFvQjtBQWlCMUIsZUFBZSxtQkFBc0M7QUFDbkQsUUFBTSxrQkFBa0IsVUFBTSwrQkFBbUIsRUFBRSxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztBQUNsRixTQUFPLGtCQUNILGdCQUFnQixPQUFPLENBQUMsU0FBUyxLQUFDLGtEQUFxQixJQUFJLENBQUMsSUFDM0QsVUFBTSwwQkFBUSxzQkFBSyxDQUFDLFNBQVMsR0FBRztBQUFBLElBQ2pDLFNBQVM7QUFBQSxNQUNQO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsRUFDRixDQUFDLENBQUM7QUFDTjsiLCJuYW1lcyI6W119
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL21hcmtkb3dubGludC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogTGludCBtYXJrZG93biBkb2N1bWVudGF0aW9uIHVzaW5nIGBtYXJrZG93bmxpbnQtY2xpMmAgYW5kIGBsaW5raW5hdG9yYC5cbiAqL1xuXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3BhdGgnO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgY3AsXG4gIGdsb2Jcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQge1xuICBtYXRjaGVzR2xvYixcbiAgcmVsYXRpdmVcbn0gZnJvbSAnbm9kZTpwYXRoJztcblxuaW1wb3J0IHsgZ2V0Tm9uSWdub3JlZEZpbGVzIH0gZnJvbSAnLi4vZ2l0LnRzJztcbmltcG9ydCB7IHJlc29sdmVUb29sQ29tbWFuZCB9IGZyb20gJy4uL3BhY2thZ2UtbWFuYWdlci50cyc7XG5pbXBvcnQgeyBSZXBvUGF0aHMgfSBmcm9tICcuLi9yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgZ2V0Um9vdEZvbGRlcixcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi4vcm9vdC50cyc7XG5pbXBvcnQge1xuICBjaGVja0lzSW5Ob2RlTW9kdWxlcyxcbiAgTk9ERV9NT0RVTEVTX0lHTk9SRV9HTE9CXG59IGZyb20gJy4vbWFya2Rvd25saW50LWlnbm9yZXMudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHRoZSB7QGxpbmsgbGludH0gZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGludE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBjb3BpZWQgdG8gdGhlIHByb2plY3Qgcm9vdCB3aGVuIHRoZSBwcm9qZWN0IGhhcyBub25lLiBXaXRob3V0IGl0LFxuICAgKiBgbWFya2Rvd25saW50LWNsaTJgIHJ1bnMgd2l0aCBpdHMgb3duIGRlZmF1bHRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBHbG9icywgcmVsYXRpdmUgdG8gdGhlIHJvb3QgZm9sZGVyLCBvZiBtYXJrZG93biBmaWxlcyB0byBsZWF2ZSBvdXQgb2YgdGhlIGBsaW5raW5hdG9yYCBwYXNzIG9ubHk7XG4gICAqIGBtYXJrZG93bmxpbnQtY2xpMmAgc3RpbGwgbGludHMgdGhlbS5cbiAgICpcbiAgICogRm9yIGEgZG9jdW1lbnRhdGlvbiBzaXRlIHdob3NlIHBhZ2VzIGxpbmsgdG8gZWFjaCBvdGhlciBiYXNlLWFic29sdXRlbHkgKGAvPHNpdGUtYmFzZT4vZ3VpZGVzLy4uLmApOiB0aG9zZVxuICAgKiBsaW5rcyByZXNvbHZlIG9ubHkgYWdhaW5zdCB0aGUgQlVJTFQgc2l0ZSwgc28gYGxpbmtpbmF0b3JgIHJlcG9ydHMgZWFjaCBvbmUgYXMgYSA0MDQsIGFuZCB0aGUgc2l0ZSdzIG93blxuICAgKiBidWlsZCBpcyB3aGF0IGNoZWNrcyB0aGVtLlxuICAgKlxuICAgKiBAZXhhbXBsZSBgWydkb2NzLyoqJ11gXG4gICAqL1xuICByZWFkb25seSBsaW5rQ2hlY2tFeGNsdWRlR2xvYnM/OiByZWFkb25seSBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZmlsZSBwYXRocyB0byBsaW50LiBJZiBvbWl0dGVkLCBsaW50cyB0aGUgZW50aXJlIHByb2plY3QuXG4gICAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZpeCBsaW50aW5nIGlzc3VlcyBhdXRvbWF0aWNhbGx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRGaXg/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIExpbnQgbWFya2Rvd24gZG9jdW1lbnRhdGlvbiB1c2luZyBgbWFya2Rvd25saW50LWNsaTJgIGFuZCBgbGlua2luYXRvcmAuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIExpbnRPcHRpb25zfS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpbnQob3B0aW9ucz86IExpbnRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoLCBsaW5rQ2hlY2tFeGNsdWRlR2xvYnMgPSBbXSwgcGF0aHMsIHNob3VsZEZpeCA9IGZhbHNlIH0gPSBvcHRpb25zID8/IHt9O1xuICBjb25zdCBjb25maWdGaWxlcyA9IFtcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ0pzb25jLFxuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDbGkyQ29uZmlnWWFtbCxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ0NqcyxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnSnNvbmMsXG4gICAgUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ0pzb24sXG4gICAgUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ1lhbWwsXG4gICAgUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ1ltbCxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnQ2pzLFxuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDb25maWdNanNcbiAgXTtcblxuICBjb25zdCBkb2VzQ29uZmlnRmlsZUV4aXN0ID0gY29uZmlnRmlsZXMuc29tZSgoY29uZmlnRmlsZSkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ0ZpbGVQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBjb25maWdGaWxlIH0pO1xuICAgIHJldHVybiBleGlzdHNTeW5jKGNvbmZpZ0ZpbGVQYXRoKTtcbiAgfSk7XG5cbiAgaWYgKCFkb2VzQ29uZmlnRmlsZUV4aXN0ICYmIGRlZmF1bHRDb25maWdGaWxlUGF0aCkge1xuICAgIGdldExpYkRlYnVnZ2VyKCdtYXJrZG93bmxpbnQ6bGludCcpKCdtYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlIG5vdCBmb3VuZC4gQ3JlYXRpbmcgZGVmYXVsdCBjb25maWcuLi4nKTtcbiAgICBhd2FpdCBjcChkZWZhdWx0Q29uZmlnRmlsZVBhdGgsIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogYmFzZW5hbWUoZGVmYXVsdENvbmZpZ0ZpbGVQYXRoKSB9KSk7XG4gIH1cblxuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gVGhlIHBhdGhzLXByb3ZpZGVkIGJyYW5jaGVzIGFyZSBvbmx5IGV4ZXJjaXNlZCBieSBjb25zdW1lciBwcm9qZWN0cyBwYXNzaW5nIGZpbGUgbGlzdHMuICovXG4gIGNvbnN0IHRhcmdldHMgPSBwYXRocz8ubGVuZ3RoID8gcGF0aHMgOiBbUmVwb1BhdGhzLkN1cnJlbnRGb2xkZXJdO1xuICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWy4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICdtYXJrZG93bmxpbnQtY2xpMicgfSksIC4uLihzaG91bGRGaXggPyBbJy0tZml4J10gOiBbXSksIHsgYmF0Y2hlZEFyZ3VtZW50czogdGFyZ2V0cyB9XSk7XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIFRoZSBwYXRocy1wcm92aWRlZCBicmFuY2ggaXMgb25seSBleGVyY2lzZWQgYnkgY29uc3VtZXIgcHJvamVjdHMgcGFzc2luZyBmaWxlIGxpc3RzLiAqL1xuICBjb25zdCByb290Rm9sZGVyID0gZ2V0Um9vdEZvbGRlcigpID8/IHByb2Nlc3MuY3dkKCk7XG4gIGNvbnN0IG1kRmlsZXMgPSBwYXRocz8ubGVuZ3RoXG4gICAgPyBwYXRocy5tYXAoKHApID0+IHJlbGF0aXZlKHJvb3RGb2xkZXIsIHApLnJlcGxhY2VBbGwoJ1xcXFwnLCAnLycpIHx8IHApXG4gICAgOiBhd2FpdCBnZXRNYXJrZG93bkZpbGVzKCk7XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gIGNvbnN0IGxpbmtDaGVja0ZpbGVzID0gbWRGaWxlcy5maWx0ZXIoKG1kRmlsZSkgPT4gbGlua0NoZWNrRXhjbHVkZUdsb2JzLmV2ZXJ5KChleGNsdWRlR2xvYikgPT4gIW1hdGNoZXNHbG9iKG1kRmlsZSwgZXhjbHVkZUdsb2IpKSk7XG4gIC8vIGBsaW5raW5hdG9yYCB3aXRoIG5vIExPQ0FUSU9OIHByaW50cyBpdHMgdXNhZ2UgYW5kIGV4aXRzIG5vbi16ZXJvLCBzbyBhIGxpc3QgZW1wdGllZCBieSB0aGUgZXhjbHVzaW9ucyBoYXMgbm90aGluZyB0byBjaGVjay5cbiAgaWYgKGxpbmtDaGVja0ZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuICBhd2FpdCBleGVjRnJvbVJvb3QoW1xuICAgIC4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICdsaW5raW5hdG9yJyB9KSxcbiAgICAnLS1yZXRyeScsXG4gICAgJy0tcmV0cnktZXJyb3JzJyxcbiAgICAnLS1yZXRyeS1lcnJvcnMtY291bnQnLFxuICAgICczJyxcbiAgICAnLS1yZXRyeS1lcnJvcnMtaml0dGVyJyxcbiAgICAnNScsXG4gICAgJy0tdXJsLXJld3JpdGUtc2VhcmNoJyxcbiAgICBTdHJpbmcucmF3YGh0dHBzOi8vd3d3XFwubnBtanNcXC5jb20vcGFja2FnZS9gLFxuICAgICctLXVybC1yZXdyaXRlLXJlcGxhY2UnLFxuICAgICdodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8nLFxuICAgIHsgYmF0Y2hlZEFyZ3VtZW50czogbGlua0NoZWNrRmlsZXMgfVxuICBdKTtcbn1cblxuLyoqXG4gKiBUaGUgZ2l0IHBhdGhzcGVjIG1hdGNoaW5nIGV2ZXJ5IG1hcmtkb3duIGZpbGUgaW4gdGhlIHJlcG9zaXRvcnksIGF0IGFueSBkZXB0aC5cbiAqL1xuY29uc3QgTUFSS0RPV05fUEFUSFNQRUMgPSAnKi5tZCc7XG5cbi8qKlxuICogTGlzdHMgdGhlIG1hcmtkb3duIGZpbGVzIHRvIGhhbmQgdG8gYGxpbmtpbmF0b3JgLlxuICpcbiAqIGBsaW5raW5hdG9yYCB0YWtlcyBhIGZpbGUgbGlzdCByYXRoZXIgdGhhbiBhbiBpZ25vcmUgY29uZmlndXJhdGlvbiwgc28gdGhlIGdpdGlnbm9yZWQgZmlsZXMgaGF2ZSB0byBiZVxuICogZHJvcHBlZCBiZWZvcmUgaXQgaXMgaW52b2tlZC4gR2l0IGl0c2VsZiBhbnN3ZXJzIHRoYXQgKG5lc3RlZCBpZ25vcmUgZmlsZXMsIGAhYCBuZWdhdGlvbnMgYW5kIGFsbCk7IHRoZVxuICogaGFuZC1tYWludGFpbmVkIGdsb2IgZXhjbHVzaW9ucyBiZWxvdyBhcmUgb25seSB0aGUgZmFsbGJhY2sgZm9yIGEgY2hlY2tvdXQgd2l0aG91dCBnaXQsIGFuZCB0aGV5IGFyZSB0aGVcbiAqIHZlcnkgbGlzdHMgdGhpcyBpbmRpcmVjdGlvbiBleGlzdHMgdG8gc3RvcCBmcm9tIGRyaWZ0aW5nLlxuICpcbiAqIFRoZSBgbm9kZV9tb2R1bGVzYCBmaWx0ZXIgaXMgYXBwbGllZCB0byB0aGUgZ2l0LWRlcml2ZWQgbGlzdCB0b28sIGFuZCBkZWxpYmVyYXRlbHkgc286IGdpdCBvbmx5IHNraXBzXG4gKiB3aGF0IHRoZSByZXBvc2l0b3J5IGFza2VkIGl0IHRvIHNraXAsIGFuZCBhIHJlcG9zaXRvcnkgY2FuIGRlbGliZXJhdGVseSBUUkFDSyBhIHZlbmRvcmVkIGBub2RlX21vZHVsZXNgXG4gKiB0cmVlLiBUaGF0IGlzIHRoZSBvbmUgZXhjbHVzaW9uIGAuZ2l0aWdub3JlYCBjYW5ub3QgYW5zd2VyIOKAlCBzZWUgYG1hcmtkb3dubGludC1pZ25vcmVzLnRzYC4gQXBwbHlpbmcgaXRcbiAqIGhlcmUga2VlcHMgYGxpbmtpbmF0b3JgIGluIHN0ZXAgd2l0aCB0aGUgbWFya2Rvd25saW50IGhhbGYsIHdoaWNoIGlnbm9yZXMgdGhlIHNhbWUgcGF0aHMgYnkgZ2xvYi5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIG1hcmtkb3duIGZpbGUgcGF0aHMsIHJlbGF0aXZlIHRvIHRoZSByb290IGZvbGRlci5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0TWFya2Rvd25GaWxlcygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIGNvbnN0IG5vbklnbm9yZWRGaWxlcyA9IGF3YWl0IGdldE5vbklnbm9yZWRGaWxlcyh7IHBhdHRlcm5zOiBbTUFSS0RPV05fUEFUSFNQRUNdIH0pO1xuICByZXR1cm4gbm9uSWdub3JlZEZpbGVzXG4gICAgPyBub25JZ25vcmVkRmlsZXMuZmlsdGVyKChwYXRoKSA9PiAhY2hlY2tJc0luTm9kZU1vZHVsZXMocGF0aCkpXG4gICAgOiAoYXdhaXQgdG9BcnJheShnbG9iKFsnKiovKi5tZCddLCB7XG4gICAgICBleGNsdWRlOiBbXG4gICAgICAgICcuZ2l0LyoqJyxcbiAgICAgICAgJ2Rpc3QvKionLFxuICAgICAgICBOT0RFX01PRFVMRVNfSUdOT1JFX0dMT0JcbiAgICAgIF1cbiAgICB9KSkpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxtQkFBd0I7QUFDeEIsbUJBQStCO0FBQy9CLGtCQUF5QjtBQUN6QixxQkFBMkI7QUFDM0Isc0JBR087QUFD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
@@ -247,7 +247,7 @@ function warnAboutSeveralClaimants(params) {
247
247
  const lockfileNames = lockfiles.map((lockfile) => lockfile.fileName).join(", ");
248
248
  const advice = declaredPackageManager === null ? 'Delete the stale lockfile, or declare "packageManager" in package.json, to settle it.' : "Delete the stale lockfile to settle it.";
249
249
  const message = [
250
- `obsidian-dev-utils: more than one package manager claims ${root}.`,
250
+ `typescript-dev-toolkit: more than one package manager claims ${root}.`,
251
251
  `Lockfiles: ${lockfileNames}.`,
252
252
  `package.json "packageManager": ${declaredPackageManager ?? "not set"}.`,
253
253
  `Using ${packageManager}.`,
@@ -266,4 +266,4 @@ function warnAboutSeveralClaimants(params) {
266
266
  getPackageManagerRunCommand,
267
267
  resolveToolCommand
268
268
  });
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWNrYWdlLW1hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFJlc29sdmVzIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wgYmluYXJpZXMgYW5kIHBhY2thZ2Utc2NyaXB0IHJ1bm5lcnMgd2l0aG91dCBhc3N1bWluZyBgbnBtYC5cbiAqXG4gKiBEZWxlZ2F0aW5nIHRvIGBucHhgIHNpbGVudGx5IGFzc3VtZXMgYW4gbnBtLWluc3RhbGxlZCB0cmVlLiBPbiBXaW5kb3dzIHRoYXQgYXNzdW1wdGlvbiBpcyBmYXRhbCB1bmRlclxuICogYGJ1bmA6IGBidW4gaW5zdGFsbGAgd3JpdGVzIGBub2RlX21vZHVsZXMvLmJpbi88dG9vbD4uZXhlYCwgbm90IHRoZSBgPHRvb2w+LmNtZGAgdGhhdCBucG0ncyBgbnB4YCBsb29rc1xuICogZm9yLCBzbyBgbnB4YCBtaXNzZXMgdGhlIGxvY2FsIGluc3RhbGwgZW50aXJlbHkgYW5kIGRvd25sb2FkcyB0aGUgdG9vbCBmcm9tIHRoZSByZWdpc3RyeSBpbnN0ZWFkIOKAlCB3aGljaFxuICogZm9yIGB0c2NgIGlzIHRoZSB3ZWxsLWtub3duIGRlY295IHBhY2thZ2UsIG5vdCBUeXBlU2NyaXB0LiBSZXNvbHZpbmcgdGhlIHNoaW0gZnJvbSBgbm9kZV9tb2R1bGVzLy5iaW5gXG4gKiBvdXJzZWx2ZXMgc2lkZXN0ZXBzIHRoZSB3aG9sZSBzaGltLWZvcm1hdCBxdWVzdGlvbiwgYmVjYXVzZSBldmVyeSBwYWNrYWdlIG1hbmFnZXIgd3JpdGVzIG9uZSB0aGVyZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBhY2thZ2VKc29uIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHtcbiAgZGlybmFtZSxcbiAgam9pbixcbiAgdG9Qb3NpeFBhdGhcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3BhdGgnO1xuaW1wb3J0IHsgZ2V0TWFuZGF0b3J5TmFtZWRHcm91cCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmltcG9ydCB7IGFzc2VydE5ldmVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB7IHJlYWRKc29uU3luYyB9IGZyb20gJy4vanNvbi50cyc7XG5pbXBvcnQgeyBSZXBvUGF0aHMgfSBmcm9tICcuL3JlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHsgZ2V0Um9vdEZvbGRlciB9IGZyb20gJy4vcm9vdC50cyc7XG5cbi8qKlxuICogQSBwYWNrYWdlIG1hbmFnZXIgdGhhdCBjYW4gb3duIGEgcHJvamVjdCdzIGRlcGVuZGVuY3kgdHJlZS5cbiAqL1xuZXhwb3J0IGVudW0gUGFja2FnZU1hbmFnZXIge1xuICAvKipcbiAgICogVGhlIGBidW5gIHBhY2thZ2UgbWFuYWdlci5cbiAgICovXG4gIEJ1biA9ICdidW4nLFxuXG4gIC8qKlxuICAgKiBUaGUgYG5wbWAgcGFja2FnZSBtYW5hZ2VyLlxuICAgKi9cbiAgTnBtID0gJ25wbScsXG5cbiAgLyoqXG4gICAqIFRoZSBgcG5wbWAgcGFja2FnZSBtYW5hZ2VyLlxuICAgKi9cbiAgUG5wbSA9ICdwbnBtJyxcblxuICAvKipcbiAgICogVGhlIGB5YXJuYCBwYWNrYWdlIG1hbmFnZXIuXG4gICAqL1xuICBZYXJuID0gJ3lhcm4nXG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlc29sdmVUb29sQ29tbWFuZH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZVRvb2xDb21tYW5kUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wsIGFzIGl0IGFwcGVhcnMgaW4gYG5vZGVfbW9kdWxlcy8uYmluYC5cbiAgICovXG4gIHJlYWRvbmx5IHRvb2w6IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoaWNoIHBhY2thZ2UgbWFuYWdlciBvd25zIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jeSB0cmVlLlxuICpcbiAqIEV2ZXJ5IHNpZ25hbCBpcyBjb2xsZWN0ZWQgYmVmb3JlIGFueSBvZiB0aGVtIGlzIGJlbGlldmVkLCBiZWNhdXNlIGEgcmVwbyBjYXJyeWluZyB0d28gbG9ja2ZpbGVzIHVzZWQgdG9cbiAqIHJlc29sdmUgdG8gd2hpY2hldmVyIHNhdCBlYXJsaWVyIGluIGEgZml4ZWQgbGlzdCDigJQgc2lsZW50bHkgcmVhc3NpZ25pbmcgZXZlcnkgcGFja2FnZSBzY3JpcHQgYW5kIGV2ZXJ5XG4gKiB0b29sIGludm9jYXRpb24gdG8gYSBtYW5hZ2VyIHRoYXQgbmV2ZXIgaW5zdGFsbGVkIHRoZSB0cmVlLlxuICpcbiAqIFRoZSBvcmRlciBpczpcbiAqXG4gKiAxLiBUaGUgYHBhY2thZ2VNYW5hZ2VyYCBmaWVsZCBvZiBgcGFja2FnZS5qc29uYC4gSXQgaXMgYSBkZWxpYmVyYXRlIGRlY2xhcmF0aW9uIGJ5IHRoZSByZXBvJ3MgYXV0aG9yXG4gKiAgICByYXRoZXIgdGhhbiBhbiBhcnRpZmFjdCBsZWZ0IGJlaGluZCBieSB3aGF0ZXZlciByYW4gbGFzdCwgc28gaXQgb3V0cmFua3MgZXZlcnkgbG9ja2ZpbGUg4oCUIGFuZCBpdCBpc1xuICogICAgdGhlIG9ubHkgc2lnbmFsIHRoYXQgaGVscHMgYXQgYWxsIGJlZm9yZSB0aGUgZmlyc3QgaW5zdGFsbCwgd2hlbiBubyBsb2NrZmlsZSBleGlzdHMgeWV0LlxuICogMi4gVGhlIHNvbGUgbG9ja2ZpbGUsIHdoZW4gZXhhY3RseSBvbmUgbWFuYWdlciBjbGFpbXMgdGhlIHRyZWUuXG4gKiAzLiBBbW9uZyBzZXZlcmFsIGxvY2tmaWxlcywgdGhlIG1hbmFnZXIgdGhhdCBsYXVuY2hlZCB1cyAoYG5wbV9jb25maWdfdXNlcl9hZ2VudGApLCB3aGVuIGl0IG93bnMgb25lIG9mXG4gKiAgICB0aGVtIOKAlCBhIGxpdmUgc2lnbmFsIGJlYXRzIGEgZmlsZSB0aGF0IG1heSBoYXZlIGJlZW4gYWJhbmRvbmVkIG1pZC1taWdyYXRpb24uIE90aGVyd2lzZSB0aGVcbiAqICAgIGRvY3VtZW50ZWQgZmFsbGJhY2sgb3JkZXIgaW4ge0BsaW5rIExPQ0tGSUxFU30gZGVjaWRlcy4gTm90ZSB0aGlzIGlzIGRlbGliZXJhdGVseSBOT1QgXCJ0aGUgbW9zdFxuICogICAgcmVjZW50bHkgbW9kaWZpZWQgbG9ja2ZpbGVcIjogYSBzdHJheSBsb2NrZmlsZSBpcyB0eXBpY2FsbHkgdGhlIG5ld2VzdCBmaWxlLCBzbyBtdGltZSBwaWNrcyBwcmVjaXNlbHlcbiAqICAgIHRoZSB3cm9uZyBvbmUuXG4gKiA0LiBgbnBtX2NvbmZpZ191c2VyX2FnZW50YCBvbiBpdHMgb3duLCB3aGVuIHRoZXJlIGlzIG5vIGxvY2tmaWxlLlxuICogNS4ge0BsaW5rIFBhY2thZ2VNYW5hZ2VyLk5wbX0uXG4gKlxuICogV2hlbmV2ZXIgbW9yZSB0aGFuIG9uZSBtYW5hZ2VyIGNsYWltcyB0aGUgdHJlZSwgdGhlIGRpc2FncmVlbWVudCBpcyByZXBvcnRlZCBvbmNlIHBlciBwcm9qZWN0IHRocm91Z2hcbiAqIHtAbGluayB3YXJuQWJvdXRTZXZlcmFsQ2xhaW1hbnRzfSDigJQgdGhlIHJlc29sdXRpb24gc3RheXMgZGV0ZXJtaW5pc3RpYywgYnV0IGl0IHN0b3BzIGJlaW5nIHNpbGVudC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIGRldGVjdGVkIHBhY2thZ2UgbWFuYWdlciwgb3Ige0BsaW5rIFBhY2thZ2VNYW5hZ2VyLk5wbX0gd2hlbiBub3RoaW5nIGluZGljYXRlcyBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlcihjd2Q/OiBzdHJpbmcpOiBQYWNrYWdlTWFuYWdlciB7XG4gIGNvbnN0IHJvb3QgPSBnZXRTdGFydEZvbGRlcihjd2QpO1xuICBjb25zdCBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyID0gZGV0ZWN0UGFja2FnZU1hbmFnZXJGcm9tUGFja2FnZUpzb24ocm9vdCk7XG4gIGNvbnN0IGxvY2tmaWxlcyA9IExPQ0tGSUxFUy5maWx0ZXIoKGxvY2tmaWxlKSA9PiBleGlzdHNTeW5jKGpvaW4ocm9vdCwgbG9ja2ZpbGUuZmlsZU5hbWUpKSk7XG4gIGNvbnN0IGNsYWltYW50cyA9IG5ldyBTZXQobG9ja2ZpbGVzLm1hcCgobG9ja2ZpbGUpID0+IGxvY2tmaWxlLnBhY2thZ2VNYW5hZ2VyKSk7XG5cbiAgaWYgKGRlY2xhcmVkUGFja2FnZU1hbmFnZXIgIT09IG51bGwpIHtcbiAgICBjbGFpbWFudHMuYWRkKGRlY2xhcmVkUGFja2FnZU1hbmFnZXIpO1xuICB9XG5cbiAgY29uc3QgcGFja2FnZU1hbmFnZXIgPSByZXNvbHZlUGFja2FnZU1hbmFnZXIoe1xuICAgIGNsYWltYW50cyxcbiAgICBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyXG4gIH0pO1xuXG4gIGlmIChjbGFpbWFudHMuc2l6ZSA+IDEpIHtcbiAgICB3YXJuQWJvdXRTZXZlcmFsQ2xhaW1hbnRzKHtcbiAgICAgIGRlY2xhcmVkUGFja2FnZU1hbmFnZXIsXG4gICAgICBsb2NrZmlsZXMsXG4gICAgICBwYWNrYWdlTWFuYWdlcixcbiAgICAgIHJvb3RcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBwYWNrYWdlTWFuYWdlcjtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGNvbW1hbmQgcGFydHMgdGhhdCBydW4gYSBwYWNrYWdlIHNjcmlwdCB0aHJvdWdoIHRoZSBtYW5hZ2VyIHRoYXQgb3ducyB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIGNvbW1hbmQgcGFydHMsIGUuZy4gYFsnYnVuJywgJ3J1biddYC4gVGhlIHNjcmlwdCBuYW1lIGlzIGFwcGVuZGVkIGJ5IHRoZSBjYWxsZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlclJ1bkNvbW1hbmQoY3dkPzogc3RyaW5nKTogc3RyaW5nW10ge1xuICByZXR1cm4gW2dldFBhY2thZ2VNYW5hZ2VyKGN3ZCksICdydW4nXTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGNvbW1hbmQgcGFydHMgdGhhdCBydW4gYSBsb2NhbGx5LWluc3RhbGxlZCB0b29sLCB3aXRoIHRoZSB0b29sIGl0c2VsZiBhbHJlYWR5IGluY2x1ZGVkLlxuICpcbiAqIFByZWZlcnMgdGhlIHNoaW0gaW4gdGhlIG5lYXJlc3QgYG5vZGVfbW9kdWxlcy8uYmluYCwgd2Fsa2luZyB1cCB0aHJvdWdoIGFuY2VzdG9yIGZvbGRlcnMgc28gYSBob2lzdGVkXG4gKiB3b3Jrc3BhY2UgaW5zdGFsbCBpcyBzdGlsbCBmb3VuZC4gRmFsbHMgYmFjayB0byB0aGUgb3duaW5nIG1hbmFnZXIncyBleGVjIGZvcm0gd2hlbiBubyBzaGltIHJlc29sdmVzIOKAlFxuICogd2hpY2ggaXMgYm90aCB0aGUgcHJldmlvdXMgYmVoYXZpb3IgYW5kIHRoZSBvbmx5IHRoaW5nIHRoYXQgd29ya3MgdW5kZXIgeWFybidzIFBsdWcnbidQbGF5LCB3aGVyZVxuICogYG5vZGVfbW9kdWxlcy8uYmluYCBkb2VzIG5vdCBleGlzdCBhdCBhbGwuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVzb2x1dGlvbi5cbiAqIEByZXR1cm5zIFRoZSBjb21tYW5kIHBhcnRzLCBlLmcuIGBbJy9wcm9qZWN0L25vZGVfbW9kdWxlcy8uYmluL3RzYyddYCBvciBgWydidW4nLCAneCcsICd0c2MnXWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVG9vbENvbW1hbmQocGFyYW1zOiBSZXNvbHZlVG9vbENvbW1hbmRQYXJhbXMpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHsgY3dkLCB0b29sIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHNoaW1QYXRoID0gZmluZEJpblNoaW0oeyBjd2QsIHRvb2wgfSk7XG5cbiAgcmV0dXJuIHNoaW1QYXRoID09PSBudWxsID8gWy4uLmdldFBhY2thZ2VNYW5hZ2VyRXhlY0NvbW1hbmQoY3dkKSwgdG9vbF0gOiBbc2hpbVBhdGhdO1xufVxuXG4vKipcbiAqIE1hdGNoZXMgdGhlIGxlYWRpbmcgYDxuYW1lPkBgIHRva2VuIG9mIGEgYHBhY2thZ2UuanNvbmAgYHBhY2thZ2VNYW5hZ2VyYCB2YWx1ZS5cbiAqXG4gKiBUaGUgYEBgIGlzIHJlcXVpcmVkLCBiZWNhdXNlIGNvcmVwYWNrJ3MgZm9ybWF0IGlzIGA8bmFtZT5APHZlcnNpb24+YCDigJQgYSBiYXJlIG5hbWUgaXMgYSBtYWxmb3JtZWRcbiAqIGRlY2xhcmF0aW9uIHJhdGhlciB0aGFuIGEgc2hvcnRoYW5kLCBhbmQgaXMgaWdub3JlZCBpbnN0ZWFkIG9mIGd1ZXNzZWQgYXQuXG4gKi9cbmNvbnN0IERFQ0xBUkFUSU9OX05BTUVfUkVHX0VYUCA9IC9eKD88bmFtZT5bXkBcXHNdKylALztcblxuLyoqXG4gKiBUaGUgbG9ja2ZpbGVzIHRoYXQgaWRlbnRpZnkgYSBwYWNrYWdlIG1hbmFnZXIsIGluIHRoZSBvcmRlciB0aGV5IGRlY2lkZSBhIHRpZSBubyBvdGhlciBzaWduYWwgc2V0dGxlcy5cbiAqXG4gKiBCb3RoIGJ1biBsb2NrZmlsZSBmb3JtYXRzIG1hcCB0byB0aGUgc2FtZSBtYW5hZ2VyLCBzbyBhIHJlcG8gaG9sZGluZyBib3RoIGlzIG9uZSBjbGFpbWFudCwgbm90IHR3by5cbiAqL1xuY29uc3QgTE9DS0ZJTEVTOiBMb2NrZmlsZUNsYWltW10gPSBbXG4gIHsgZmlsZU5hbWU6IFJlcG9QYXRocy5CdW5Mb2NrLCBwYWNrYWdlTWFuYWdlcjogUGFja2FnZU1hbmFnZXIuQnVuIH0sXG4gIHsgZmlsZU5hbWU6IFJlcG9QYXRocy5CdW5Mb2NrYiwgcGFja2FnZU1hbmFnZXI6IFBhY2thZ2VNYW5hZ2VyLkJ1biB9LFxuICB7IGZpbGVOYW1lOiBSZXBvUGF0aHMuUG5wbUxvY2tZYW1sLCBwYWNrYWdlTWFuYWdlcjogUGFja2FnZU1hbmFnZXIuUG5wbSB9LFxuICB7IGZpbGVOYW1lOiBSZXBvUGF0aHMuWWFybkxvY2ssIHBhY2thZ2VNYW5hZ2VyOiBQYWNrYWdlTWFuYWdlci5ZYXJuIH0sXG4gIHsgZmlsZU5hbWU6IFJlcG9QYXRocy5QYWNrYWdlTG9ja0pzb24sIHBhY2thZ2VNYW5hZ2VyOiBQYWNrYWdlTWFuYWdlci5OcG0gfVxuXTtcblxuLyoqXG4gKiBNYXRjaGVzIHRoZSBsZWFkaW5nIGA8bmFtZT4vYCB0b2tlbiBvZiBhbiBgbnBtX2NvbmZpZ191c2VyX2FnZW50YCB2YWx1ZS5cbiAqL1xuY29uc3QgVVNFUl9BR0VOVF9OQU1FX1JFR19FWFAgPSAvXig/PG5hbWU+W14vXFxzXSspXFwvLztcblxuLyoqXG4gKiBUaGUgZGlzYWdyZWVtZW50cyBhbHJlYWR5IHJlcG9ydGVkLCBzbyBhIGJ1aWxkIHRoYXQgcmVzb2x2ZXMgdGhlIG1hbmFnZXIgb25jZSBwZXIgc2NyaXB0IGhvcCBhbmQgb25jZVxuICogcGVyIHRvb2wgaW52b2NhdGlvbiBzdGlsbCBzYXlzIGl0IG9ubHkgb25jZS5cbiAqL1xuY29uc3QgcmVwb3J0ZWREaXNhZ3JlZW1lbnRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZpbmRCaW5TaGltfS5cbiAqL1xuaW50ZXJmYWNlIEZpbmRCaW5TaGltUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wuXG4gICAqL1xuICByZWFkb25seSB0b29sOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBsb2NrZmlsZSBhbmQgdGhlIHBhY2thZ2UgbWFuYWdlciB3aG9zZSBwcmVzZW5jZSBpdCBwcm92ZXMuXG4gKi9cbmludGVyZmFjZSBMb2NrZmlsZUNsYWltIHtcbiAgLyoqXG4gICAqIFRoZSBsb2NrZmlsZSBuYW1lLCBhcyBpdCBhcHBlYXJzIGF0IHRoZSBwcm9qZWN0IHJvb3QuXG4gICAqL1xuICByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFja2FnZSBtYW5hZ2VyIHRoYXQgd3JpdGVzIHRoaXMgbG9ja2ZpbGUuXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlTWFuYWdlcjogUGFja2FnZU1hbmFnZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlc29sdmVQYWNrYWdlTWFuYWdlcn0uXG4gKi9cbmludGVyZmFjZSBSZXNvbHZlUGFja2FnZU1hbmFnZXJQYXJhbXMge1xuICAvKipcbiAgICogRXZlcnkgcGFja2FnZSBtYW5hZ2VyIGNsYWltaW5nIHRoZSB0cmVlIOKAlCB0aGUgbG9ja2ZpbGUgb3duZXJzIGluIHtAbGluayBMT0NLRklMRVN9IG9yZGVyLCBwbHVzIHRoZVxuICAgKiBkZWNsYXJlZCBvbmUuIE9ubHkgY29uc3VsdGVkIHdoZW4gbm90aGluZyBpcyBkZWNsYXJlZCwgaW4gd2hpY2ggY2FzZSBpdCBob2xkcyBleGFjdGx5IHRoZSBsb2NrZmlsZVxuICAgKiBvd25lcnMuXG4gICAqL1xuICByZWFkb25seSBjbGFpbWFudHM6IFJlYWRvbmx5U2V0PFBhY2thZ2VNYW5hZ2VyPjtcblxuICAvKipcbiAgICogVGhlIHBhY2thZ2UgbWFuYWdlciBkZWNsYXJlZCBpbiBgcGFja2FnZS5qc29uYCwgb3IgYG51bGxgIHdoZW4gbm9uZSBpcy5cbiAgICovXG4gIHJlYWRvbmx5IGRlY2xhcmVkUGFja2FnZU1hbmFnZXI6IG51bGwgfCBQYWNrYWdlTWFuYWdlcjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgd2FybkFib3V0U2V2ZXJhbENsYWltYW50c30uXG4gKi9cbmludGVyZmFjZSBXYXJuQWJvdXRTZXZlcmFsQ2xhaW1hbnRzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBwYWNrYWdlIG1hbmFnZXIgZGVjbGFyZWQgaW4gYHBhY2thZ2UuanNvbmAsIG9yIGBudWxsYCB3aGVuIG5vbmUgaXMuXG4gICAqL1xuICByZWFkb25seSBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyOiBudWxsIHwgUGFja2FnZU1hbmFnZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NrZmlsZXMgYWN0dWFsbHkgZm91bmQgYXQgdGhlIHByb2plY3Qgcm9vdC5cbiAgICovXG4gIHJlYWRvbmx5IGxvY2tmaWxlczogcmVhZG9ubHkgTG9ja2ZpbGVDbGFpbVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFja2FnZSBtYW5hZ2VyIHRoYXQgd29uLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZU1hbmFnZXI6IFBhY2thZ2VNYW5hZ2VyO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvamVjdCByb290IHRoZSBsb2NrZmlsZXMgd2VyZSBmb3VuZCBpbi5cbiAgICovXG4gIHJlYWRvbmx5IHJvb3Q6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgcGFja2FnZSBtYW5hZ2VyIG91dCBvZiB0aGUgYHBhY2thZ2VNYW5hZ2VyYCBmaWVsZCBvZiB0aGUgcHJvamVjdCdzIGBwYWNrYWdlLmpzb25gLCB3aGljaCBpc1xuICogY29yZXBhY2sncyBgPG5hbWU+QDx2ZXJzaW9uPmAgZGVjbGFyYXRpb24uXG4gKlxuICogQHBhcmFtIHJvb3QgLSBUaGUgcHJvamVjdCByb290IHRvIHJlYWQgYHBhY2thZ2UuanNvbmAgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSBkZWNsYXJlZCBwYWNrYWdlIG1hbmFnZXIsIG9yIGBudWxsYCB3aGVuIHRoZXJlIGlzIG5vIGBwYWNrYWdlLmpzb25gLCBpdCBjYW5ub3QgYmUgcGFyc2VkLFxuICogdGhlIGZpZWxkIGlzIGFic2VudCBvciBtYWxmb3JtZWQsIG9yIGl0IG5hbWVzIGEgbWFuYWdlciB3ZSBkbyBub3QgaGFuZGxlLlxuICovXG5mdW5jdGlvbiBkZXRlY3RQYWNrYWdlTWFuYWdlckZyb21QYWNrYWdlSnNvbihyb290OiBzdHJpbmcpOiBudWxsIHwgUGFja2FnZU1hbmFnZXIge1xuICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBqb2luKHJvb3QsIFJlcG9QYXRocy5QYWNrYWdlSnNvbik7XG5cbiAgaWYgKCFleGlzdHNTeW5jKHBhY2thZ2VKc29uUGF0aCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGxldCBwYWNrYWdlSnNvbjogUGFja2FnZUpzb247XG5cbiAgdHJ5IHtcbiAgICBwYWNrYWdlSnNvbiA9IHJlYWRKc29uU3luYzxQYWNrYWdlSnNvbj4ocGFja2FnZUpzb25QYXRoKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBkZWNsYXJhdGlvbiA9IHBhY2thZ2VKc29uLnBhY2thZ2VNYW5hZ2VyO1xuXG4gIGlmICghZGVjbGFyYXRpb24pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IG1hdGNoID0gREVDTEFSQVRJT05fTkFNRV9SRUdfRVhQLmV4ZWMoZGVjbGFyYXRpb24pO1xuXG4gIHJldHVybiBtYXRjaCA/IHBhcnNlUGFja2FnZU1hbmFnZXJOYW1lKGdldE1hbmRhdG9yeU5hbWVkR3JvdXAobWF0Y2gsICduYW1lJykpIDogbnVsbDtcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgcGFja2FnZSBtYW5hZ2VyIG91dCBvZiBgbnBtX2NvbmZpZ191c2VyX2FnZW50YCwgd2hpY2ggZXZlcnkgbWFuYWdlciBzZXRzIGZvciB0aGUgcHJvY2Vzc2VzIGl0XG4gKiBsYXVuY2hlcy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgZGV0ZWN0ZWQgcGFja2FnZSBtYW5hZ2VyLCBvciBgbnVsbGAgd2hlbiB0aGUgdmFyaWFibGUgaXMgYWJzZW50LCBtYWxmb3JtZWQsIG9yIG5hbWVzIGFcbiAqIHJ1bnRpbWUgd2UgZG8gbm90IGhhbmRsZS5cbiAqL1xuZnVuY3Rpb24gZGV0ZWN0UGFja2FnZU1hbmFnZXJGcm9tVXNlckFnZW50KCk6IG51bGwgfCBQYWNrYWdlTWFuYWdlciB7XG4gIGNvbnN0IHVzZXJBZ2VudCA9IHByb2Nlc3MuZW52WyducG1fY29uZmlnX3VzZXJfYWdlbnQnXTtcblxuICBpZiAoIXVzZXJBZ2VudCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgbWF0Y2ggPSBVU0VSX0FHRU5UX05BTUVfUkVHX0VYUC5leGVjKHVzZXJBZ2VudCk7XG5cbiAgcmV0dXJuIG1hdGNoID8gcGFyc2VQYWNrYWdlTWFuYWdlck5hbWUoZ2V0TWFuZGF0b3J5TmFtZWRHcm91cChtYXRjaCwgJ25hbWUnKSkgOiBudWxsO1xufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBgbm9kZV9tb2R1bGVzLy5iaW5gIHNoaW0gZm9yIGEgdG9vbCwgd2Fsa2luZyB1cCBmcm9tIHRoZSBwcm9qZWN0IHJvb3QgdGhyb3VnaCBhbmNlc3RvciBmb2xkZXJzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGxvb2t1cC5cbiAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoIG9mIHRoZSBzaGltLCBvciBgbnVsbGAgd2hlbiBub25lIGV4aXN0cy5cbiAqL1xuZnVuY3Rpb24gZmluZEJpblNoaW0ocGFyYW1zOiBGaW5kQmluU2hpbVBhcmFtcyk6IG51bGwgfCBzdHJpbmcge1xuICBjb25zdCB7IGN3ZCwgdG9vbCB9ID0gcGFyYW1zO1xuICBjb25zdCBjYW5kaWRhdGVzID0gZ2V0U2hpbUNhbmRpZGF0ZXModG9vbCk7XG4gIGxldCBjdXJyZW50Rm9sZGVyID0gZ2V0U3RhcnRGb2xkZXIoY3dkKTtcblxuICB3aGlsZSAoXG4gICAgY3VycmVudEZvbGRlciAhPT0gUmVwb1BhdGhzLkN1cnJlbnRGb2xkZXIgYXMgc3RyaW5nXG4gICAgJiYgY3VycmVudEZvbGRlciAhPT0gUmVwb1BhdGhzLlJvb3RGb2xkZXIgYXMgc3RyaW5nXG4gICkge1xuICAgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICAgIGNvbnN0IHNoaW1QYXRoID0gam9pbihjdXJyZW50Rm9sZGVyLCBSZXBvUGF0aHMuTm9kZU1vZHVsZXMsIFJlcG9QYXRocy5CaW4sIGNhbmRpZGF0ZSk7XG4gICAgICBpZiAoZXhpc3RzU3luYyhzaGltUGF0aCkpIHtcbiAgICAgICAgcmV0dXJuIHNoaW1QYXRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIGN1cnJlbnRGb2xkZXIgPSBkaXJuYW1lKGN1cnJlbnRGb2xkZXIpO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBjb21tYW5kIHBhcnRzIHRoYXQgcnVuIGEgb25lLW9mZiB0b29sIHRocm91Z2ggdGhlIG1hbmFnZXIgdGhhdCBvd25zIHRoZSB0cmVlLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB0byByZXNvbHZlIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgY29tbWFuZCBwYXJ0cywgZS5nLiBgWydidW4nLCAneCddYC4gVGhlIHRvb2wgbmFtZSBpcyBhcHBlbmRlZCBieSB0aGUgY2FsbGVyLlxuICovXG5mdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlckV4ZWNDb21tYW5kKGN3ZD86IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgcGFja2FnZU1hbmFnZXIgPSBnZXRQYWNrYWdlTWFuYWdlcihjd2QpO1xuXG4gIHN3aXRjaCAocGFja2FnZU1hbmFnZXIpIHtcbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLkJ1bjoge1xuICAgICAgcmV0dXJuIFsnYnVuJywgJ3gnXTtcbiAgICB9XG4gICAgY2FzZSBQYWNrYWdlTWFuYWdlci5OcG06IHtcbiAgICAgIHJldHVybiBbJ25weCddO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLlBucG06IHtcbiAgICAgIHJldHVybiBbJ3BucG0nLCAnZXhlYyddO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLllhcm46IHtcbiAgICAgIHJldHVybiBbJ3lhcm4nLCAnZXhlYyddO1xuICAgIH1cbiAgICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gRXhoYXVzdGl2ZSBzd2l0Y2ggZ3VhcmQ7IGRlZmF1bHQgYnJhbmNoIGlzIHVucmVhY2hhYmxlLiAqL1xuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBhc3NlcnROZXZlcihwYWNrYWdlTWFuYWdlcik7XG4gICAgfVxuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgfVxufVxuXG4vKipcbiAqIExpc3RzIHRoZSBzaGltIGZpbGUgbmFtZXMgdG8gdHJ5IGZvciBhIHRvb2wsIG1vc3Qgc3BlY2lmaWMgZmlyc3QuXG4gKlxuICogT24gV2luZG93cyBvbmx5IHRoZSBleGVjdXRhYmxlIGZvcm1zIGFyZSB2aWFibGU6IG5wbSBhbmQgcG5wbSBhbHNvIHdyaXRlIGEgc2hpbSB3aXRoIG5vIGV4dGVuc2lvbiwgYnV0XG4gKiB0aGF0IG9uZSBpcyBhIGBzaGAgc2NyaXB0IHRoYXQgYGNtZC5leGVgIGNhbm5vdCBydW4sIHNvIGl0IG11c3QgbmV2ZXIgYmUgY2hvc2VuIHRoZXJlLlxuICpcbiAqIEBwYXJhbSB0b29sIC0gVGhlIG5hbWUgb2YgdGhlIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wuXG4gKiBAcmV0dXJucyBUaGUgY2FuZGlkYXRlIGZpbGUgbmFtZXMsIGluIHRoZSBvcmRlciB0aGV5IHNob3VsZCBiZSB0cmllZC5cbiAqL1xuZnVuY3Rpb24gZ2V0U2hpbUNhbmRpZGF0ZXModG9vbDogc3RyaW5nKTogc3RyaW5nW10ge1xuICByZXR1cm4gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJ1xuICAgID8gW1xuICAgICAgYCR7dG9vbH0ke1JlcG9QYXRocy5Db21tYW5kRXh0ZW5zaW9ufWAsXG4gICAgICBgJHt0b29sfSR7UmVwb1BhdGhzLkV4ZUV4dGVuc2lvbn1gLFxuICAgICAgYCR7dG9vbH0ke1JlcG9QYXRocy5CYXRFeHRlbnNpb259YFxuICAgIF1cbiAgICA6IFt0b29sXTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgZm9sZGVyIHRvIHN0YXJ0IGEgbG9va3VwIGZyb20g4oCUIHRoZSBwcm9qZWN0IHJvb3Qgd2hlbiB0aGVyZSBpcyBvbmUsIHRoZSB3b3JraW5nIGZvbGRlclxuICogb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB0byByZXNvbHZlIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgYWJzb2x1dGUgZm9sZGVyIHRvIHN0YXJ0IGZyb20uXG4gKi9cbmZ1bmN0aW9uIGdldFN0YXJ0Rm9sZGVyKGN3ZD86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRSb290Rm9sZGVyKGN3ZCkgPz8gdG9Qb3NpeFBhdGgoY3dkID8/IHByb2Nlc3MuY3dkKCkpO1xufVxuXG4vKipcbiAqIE1hcHMgdGhlIGJhcmUgbmFtZSBhIGxvY2tmaWxlIGRlY2xhcmF0aW9uIG9yIGEgdXNlciBhZ2VudCByZXBvcnRzIG9udG8gdGhlIHBhY2thZ2UgbWFuYWdlciBpdCBuYW1lcy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSByZXBvcnRlZCBuYW1lLlxuICogQHJldHVybnMgVGhlIG1hdGNoaW5nIHBhY2thZ2UgbWFuYWdlciwgb3IgYG51bGxgIGZvciBhIHJ1bnRpbWUgd2UgZG8gbm90IGhhbmRsZS5cbiAqL1xuZnVuY3Rpb24gcGFyc2VQYWNrYWdlTWFuYWdlck5hbWUobmFtZTogc3RyaW5nKTogbnVsbCB8IFBhY2thZ2VNYW5hZ2VyIHtcbiAgc3dpdGNoIChuYW1lKSB7XG4gICAgY2FzZSBQYWNrYWdlTWFuYWdlci5CdW4gYXMgc3RyaW5nOiB7XG4gICAgICByZXR1cm4gUGFja2FnZU1hbmFnZXIuQnVuO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLk5wbSBhcyBzdHJpbmc6IHtcbiAgICAgIHJldHVybiBQYWNrYWdlTWFuYWdlci5OcG07XG4gICAgfVxuICAgIGNhc2UgUGFja2FnZU1hbmFnZXIuUG5wbSBhcyBzdHJpbmc6IHtcbiAgICAgIHJldHVybiBQYWNrYWdlTWFuYWdlci5QbnBtO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLllhcm4gYXMgc3RyaW5nOiB7XG4gICAgICByZXR1cm4gUGFja2FnZU1hbmFnZXIuWWFybjtcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUGlja3MgdGhlIHdpbm5lciBvdXQgb2YgdGhlIGNvbGxlY3RlZCBzaWduYWxzLCBwZXIgdGhlIG9yZGVyIGRvY3VtZW50ZWQgb24ge0BsaW5rIGdldFBhY2thZ2VNYW5hZ2VyfS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSByZXNvbHV0aW9uLlxuICogQHJldHVybnMgVGhlIHBhY2thZ2UgbWFuYWdlciB0aGF0IG93bnMgdGhlIHRyZWUuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVQYWNrYWdlTWFuYWdlcihwYXJhbXM6IFJlc29sdmVQYWNrYWdlTWFuYWdlclBhcmFtcyk6IFBhY2thZ2VNYW5hZ2VyIHtcbiAgY29uc3Qge1xuICAgIGNsYWltYW50cyxcbiAgICBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyXG4gIH0gPSBwYXJhbXM7XG5cbiAgaWYgKGRlY2xhcmVkUGFja2FnZU1hbmFnZXIgIT09IG51bGwpIHtcbiAgICByZXR1cm4gZGVjbGFyZWRQYWNrYWdlTWFuYWdlcjtcbiAgfVxuXG4gIGNvbnN0IGxvY2tmaWxlT3duZXJzID0gWy4uLmNsYWltYW50c107XG4gIGNvbnN0IFtmaXJzdExvY2tmaWxlT3duZXJdID0gbG9ja2ZpbGVPd25lcnM7XG5cbiAgaWYgKGZpcnN0TG9ja2ZpbGVPd25lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGRldGVjdFBhY2thZ2VNYW5hZ2VyRnJvbVVzZXJBZ2VudCgpID8/IFBhY2thZ2VNYW5hZ2VyLk5wbTtcbiAgfVxuXG4gIGlmIChsb2NrZmlsZU93bmVycy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gZmlyc3RMb2NrZmlsZU93bmVyO1xuICB9XG5cbiAgY29uc3QgbGF1bmNoZWRCeSA9IGRldGVjdFBhY2thZ2VNYW5hZ2VyRnJvbVVzZXJBZ2VudCgpO1xuXG4gIHJldHVybiBsYXVuY2hlZEJ5ICE9PSBudWxsICYmIGNsYWltYW50cy5oYXMobGF1bmNoZWRCeSkgPyBsYXVuY2hlZEJ5IDogZmlyc3RMb2NrZmlsZU93bmVyO1xufVxuXG4vKipcbiAqIFJlcG9ydHMgdGhhdCBzZXZlcmFsIHBhY2thZ2UgbWFuYWdlcnMgY2xhaW0gdGhlIHNhbWUgdHJlZSwgbmFtaW5nIGVhY2ggbG9ja2ZpbGUgZm91bmQsIHdoYXRcbiAqIGBwYWNrYWdlLmpzb25gIGRlY2xhcmVzLCBhbmQgd2hpY2ggbWFuYWdlciB3b24uXG4gKlxuICogYGNvbnNvbGUud2FybmAgcmF0aGVyIHRoYW4gYSBkZWJ1ZyBjaGFubmVsOiB0aGlzIHJ1bnMgaW4gdGhlIGJ1aWxkJ3Mgb3duIHRlcm1pbmFsLCBhbmQgYSBtZXNzYWdlIG5vYm9keVxuICogc2VlcyB1bmxlc3MgdGhleSBhbHJlYWR5IHN1c3BlY3QgdGhlIHByb2JsZW0gbGVhdmVzIHRoZSBmYWlsdXJlIGV4YWN0bHkgYXMgc2lsZW50IGFzIGl0IHdhcy4gRWFjaFxuICogZGlzdGluY3QgbWVzc2FnZSBpcyBwcmludGVkIG9uY2UsIGJlY2F1c2UgdGhlIG1hbmFnZXIgaXMgcmVzb2x2ZWQgb25jZSBwZXIgcGFja2FnZS1zY3JpcHQgaG9wIGFuZCBvbmNlXG4gKiBwZXIgdG9vbCBpbnZvY2F0aW9uLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHJlcG9ydC5cbiAqL1xuZnVuY3Rpb24gd2FybkFib3V0U2V2ZXJhbENsYWltYW50cyhwYXJhbXM6IFdhcm5BYm91dFNldmVyYWxDbGFpbWFudHNQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgIGRlY2xhcmVkUGFja2FnZU1hbmFnZXIsXG4gICAgbG9ja2ZpbGVzLFxuICAgIHBhY2thZ2VNYW5hZ2VyLFxuICAgIHJvb3RcbiAgfSA9IHBhcmFtcztcblxuICBjb25zdCBsb2NrZmlsZU5hbWVzID0gbG9ja2ZpbGVzLm1hcCgobG9ja2ZpbGUpID0+IGxvY2tmaWxlLmZpbGVOYW1lKS5qb2luKCcsICcpO1xuICBjb25zdCBhZHZpY2UgPSBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyID09PSBudWxsXG4gICAgPyAnRGVsZXRlIHRoZSBzdGFsZSBsb2NrZmlsZSwgb3IgZGVjbGFyZSBcInBhY2thZ2VNYW5hZ2VyXCIgaW4gcGFja2FnZS5qc29uLCB0byBzZXR0bGUgaXQuJ1xuICAgIDogJ0RlbGV0ZSB0aGUgc3RhbGUgbG9ja2ZpbGUgdG8gc2V0dGxlIGl0Lic7XG4gIGNvbnN0IG1lc3NhZ2UgPSBbXG4gICAgYG9ic2lkaWFuLWRldi11dGlsczogbW9yZSB0aGFuIG9uZSBwYWNrYWdlIG1hbmFnZXIgY2xhaW1zICR7cm9vdH0uYCxcbiAgICBgTG9ja2ZpbGVzOiAke2xvY2tmaWxlTmFtZXN9LmAsXG4gICAgYHBhY2thZ2UuanNvbiBcInBhY2thZ2VNYW5hZ2VyXCI6ICR7ZGVjbGFyZWRQYWNrYWdlTWFuYWdlciA/PyAnbm90IHNldCd9LmAsXG4gICAgYFVzaW5nICR7cGFja2FnZU1hbmFnZXJ9LmAsXG4gICAgYWR2aWNlXG4gIF0uam9pbignICcpO1xuXG4gIGlmIChyZXBvcnRlZERpc2FncmVlbWVudHMuaGFzKG1lc3NhZ2UpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVwb3J0ZWREaXNhZ3JlZW1lbnRzLmFk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YSxVQUN4QjtBQUFBLElBQ0EsR0FBRyxJQUFJLEdBQUcsNEJBQVUsZ0JBQWdCO0FBQUEsSUFDcEMsR0FBRyxJQUFJLEdBQUcsNEJBQVUsWUFBWTtBQUFBLElBQ2hDLEdBQUcsSUFBSSxHQUFHLDRCQUFVLFlBQVk7QUFBQSxFQUNsQyxJQUNFLENBQUMsSUFBSTtBQUNYO0FBU0EsU0FBUyxlQUFlLEtBQXNCO0FBQzVDLGFBQU8sMkJBQWMsR0FBRyxTQUFLLHlCQUFZLE9BQU8sb0JBQUFBLFFBQVEsSUFBSSxDQUFDO0FBQy9EO0FBUUEsU0FBUyx3QkFBd0IsTUFBcUM7QUFDcEUsVUFBUSxNQUFNO0FBQUEsSUFDWixLQUFLLGlCQUE4QjtBQUNqQyxhQUFPO0FBQUEsSUFDVDtBQUFBLElBQ0EsS0FBSyxpQkFBOEI7QUFDakMsYUFBTztBQUFBLElBQ1Q7QUFBQSxJQUNBLEtBQUssbUJBQStCO0FBQ2xDLGFBQU87QUFBQSxJQUNUO0FBQUEsSUFDQSxLQUFLLG1CQUErQjtBQUNsQyxhQUFPO0FBQUEsSUFDVDtBQUFBLElBQ0EsU0FBUztBQUNQLGFBQU87QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUNGO0FBUUEsU0FBUyxzQkFBc0IsUUFBcUQ7QUFDbEYsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBRUosTUFBSSwyQkFBMkIsTUFBTTtBQUNuQyxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0saUJBQWlCLENBQUMsR0FBRyxTQUFTO0FBQ3BDLFFBQU0sQ0FBQyxrQkFBa0IsSUFBSTtBQUU3QixNQUFJLHVCQUF1QixRQUFXO0FBQ3BDLFdBQU8sa0NBQWtDLEtBQUs7QUFBQSxFQUNoRDtBQUVBLE1BQUksZUFBZSxXQUFXLEdBQUc7QUFDL0IsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLGFBQWEsa0NBQWtDO0FBRXJELFNBQU8sZUFBZSxRQUFRLFVBQVUsSUFBSSxVQUFVLElBQUksYUFBYTtBQUN6RTtBQWFBLFNBQVMsMEJBQTBCLFFBQStDO0FBQ2hGLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBRUosUUFBTSxnQkFBZ0IsVUFBVSxJQUFJLENBQUMsYUFBYSxTQUFTLFFBQVEsRUFBRSxLQUFLLElBQUk7QUFDOUUsUUFBTSxTQUFTLDJCQUEyQixPQUN0QywwRkFDQTtBQUNKLFFBQU0sVUFBVTtBQUFBLElBQ2QsNERBQTRELElBQUk7QUFBQSxJQUNoRSxjQUFjLGFBQWE7QUFBQSxJQUMzQixrQ0FBa0MsMEJBQTBCLFNBQVM7QUFBQSxJQUNyRSxTQUFTLGNBQWM7QUFBQSxJQUN2QjtBQUFBLEVBQ0YsRUFBRSxLQUFLLEdBQUc7QUFFVixNQUFJLHNCQUFzQixJQUFJLE9BQU8sR0FBRztBQUN0QztBQUFBLEVBQ0Y7QUFFQSx3QkFBc0IsSUFBSSxPQUFPO0FBQ2pDLFVBQVEsS0FBSyxPQUFPO0FBQ3RCOyIsIm5hbWVzIjpbIlBhY2thZ2VNYW5hZ2VyIiwicHJvY2VzcyJdfQ==
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWNrYWdlLW1hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFJlc29sdmVzIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wgYmluYXJpZXMgYW5kIHBhY2thZ2Utc2NyaXB0IHJ1bm5lcnMgd2l0aG91dCBhc3N1bWluZyBgbnBtYC5cbiAqXG4gKiBEZWxlZ2F0aW5nIHRvIGBucHhgIHNpbGVudGx5IGFzc3VtZXMgYW4gbnBtLWluc3RhbGxlZCB0cmVlLiBPbiBXaW5kb3dzIHRoYXQgYXNzdW1wdGlvbiBpcyBmYXRhbCB1bmRlclxuICogYGJ1bmA6IGBidW4gaW5zdGFsbGAgd3JpdGVzIGBub2RlX21vZHVsZXMvLmJpbi88dG9vbD4uZXhlYCwgbm90IHRoZSBgPHRvb2w+LmNtZGAgdGhhdCBucG0ncyBgbnB4YCBsb29rc1xuICogZm9yLCBzbyBgbnB4YCBtaXNzZXMgdGhlIGxvY2FsIGluc3RhbGwgZW50aXJlbHkgYW5kIGRvd25sb2FkcyB0aGUgdG9vbCBmcm9tIHRoZSByZWdpc3RyeSBpbnN0ZWFkIOKAlCB3aGljaFxuICogZm9yIGB0c2NgIGlzIHRoZSB3ZWxsLWtub3duIGRlY295IHBhY2thZ2UsIG5vdCBUeXBlU2NyaXB0LiBSZXNvbHZpbmcgdGhlIHNoaW0gZnJvbSBgbm9kZV9tb2R1bGVzLy5iaW5gXG4gKiBvdXJzZWx2ZXMgc2lkZXN0ZXBzIHRoZSB3aG9sZSBzaGltLWZvcm1hdCBxdWVzdGlvbiwgYmVjYXVzZSBldmVyeSBwYWNrYWdlIG1hbmFnZXIgd3JpdGVzIG9uZSB0aGVyZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBhY2thZ2VKc29uIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHtcbiAgZGlybmFtZSxcbiAgam9pbixcbiAgdG9Qb3NpeFBhdGhcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3BhdGgnO1xuaW1wb3J0IHsgZ2V0TWFuZGF0b3J5TmFtZWRHcm91cCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmltcG9ydCB7IGFzc2VydE5ldmVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB7IHJlYWRKc29uU3luYyB9IGZyb20gJy4vanNvbi50cyc7XG5pbXBvcnQgeyBSZXBvUGF0aHMgfSBmcm9tICcuL3JlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHsgZ2V0Um9vdEZvbGRlciB9IGZyb20gJy4vcm9vdC50cyc7XG5cbi8qKlxuICogQSBwYWNrYWdlIG1hbmFnZXIgdGhhdCBjYW4gb3duIGEgcHJvamVjdCdzIGRlcGVuZGVuY3kgdHJlZS5cbiAqL1xuZXhwb3J0IGVudW0gUGFja2FnZU1hbmFnZXIge1xuICAvKipcbiAgICogVGhlIGBidW5gIHBhY2thZ2UgbWFuYWdlci5cbiAgICovXG4gIEJ1biA9ICdidW4nLFxuXG4gIC8qKlxuICAgKiBUaGUgYG5wbWAgcGFja2FnZSBtYW5hZ2VyLlxuICAgKi9cbiAgTnBtID0gJ25wbScsXG5cbiAgLyoqXG4gICAqIFRoZSBgcG5wbWAgcGFja2FnZSBtYW5hZ2VyLlxuICAgKi9cbiAgUG5wbSA9ICdwbnBtJyxcblxuICAvKipcbiAgICogVGhlIGB5YXJuYCBwYWNrYWdlIG1hbmFnZXIuXG4gICAqL1xuICBZYXJuID0gJ3lhcm4nXG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlc29sdmVUb29sQ29tbWFuZH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZVRvb2xDb21tYW5kUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wsIGFzIGl0IGFwcGVhcnMgaW4gYG5vZGVfbW9kdWxlcy8uYmluYC5cbiAgICovXG4gIHJlYWRvbmx5IHRvb2w6IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoaWNoIHBhY2thZ2UgbWFuYWdlciBvd25zIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jeSB0cmVlLlxuICpcbiAqIEV2ZXJ5IHNpZ25hbCBpcyBjb2xsZWN0ZWQgYmVmb3JlIGFueSBvZiB0aGVtIGlzIGJlbGlldmVkLCBiZWNhdXNlIGEgcmVwbyBjYXJyeWluZyB0d28gbG9ja2ZpbGVzIHVzZWQgdG9cbiAqIHJlc29sdmUgdG8gd2hpY2hldmVyIHNhdCBlYXJsaWVyIGluIGEgZml4ZWQgbGlzdCDigJQgc2lsZW50bHkgcmVhc3NpZ25pbmcgZXZlcnkgcGFja2FnZSBzY3JpcHQgYW5kIGV2ZXJ5XG4gKiB0b29sIGludm9jYXRpb24gdG8gYSBtYW5hZ2VyIHRoYXQgbmV2ZXIgaW5zdGFsbGVkIHRoZSB0cmVlLlxuICpcbiAqIFRoZSBvcmRlciBpczpcbiAqXG4gKiAxLiBUaGUgYHBhY2thZ2VNYW5hZ2VyYCBmaWVsZCBvZiBgcGFja2FnZS5qc29uYC4gSXQgaXMgYSBkZWxpYmVyYXRlIGRlY2xhcmF0aW9uIGJ5IHRoZSByZXBvJ3MgYXV0aG9yXG4gKiAgICByYXRoZXIgdGhhbiBhbiBhcnRpZmFjdCBsZWZ0IGJlaGluZCBieSB3aGF0ZXZlciByYW4gbGFzdCwgc28gaXQgb3V0cmFua3MgZXZlcnkgbG9ja2ZpbGUg4oCUIGFuZCBpdCBpc1xuICogICAgdGhlIG9ubHkgc2lnbmFsIHRoYXQgaGVscHMgYXQgYWxsIGJlZm9yZSB0aGUgZmlyc3QgaW5zdGFsbCwgd2hlbiBubyBsb2NrZmlsZSBleGlzdHMgeWV0LlxuICogMi4gVGhlIHNvbGUgbG9ja2ZpbGUsIHdoZW4gZXhhY3RseSBvbmUgbWFuYWdlciBjbGFpbXMgdGhlIHRyZWUuXG4gKiAzLiBBbW9uZyBzZXZlcmFsIGxvY2tmaWxlcywgdGhlIG1hbmFnZXIgdGhhdCBsYXVuY2hlZCB1cyAoYG5wbV9jb25maWdfdXNlcl9hZ2VudGApLCB3aGVuIGl0IG93bnMgb25lIG9mXG4gKiAgICB0aGVtIOKAlCBhIGxpdmUgc2lnbmFsIGJlYXRzIGEgZmlsZSB0aGF0IG1heSBoYXZlIGJlZW4gYWJhbmRvbmVkIG1pZC1taWdyYXRpb24uIE90aGVyd2lzZSB0aGVcbiAqICAgIGRvY3VtZW50ZWQgZmFsbGJhY2sgb3JkZXIgaW4ge0BsaW5rIExPQ0tGSUxFU30gZGVjaWRlcy4gTm90ZSB0aGlzIGlzIGRlbGliZXJhdGVseSBOT1QgXCJ0aGUgbW9zdFxuICogICAgcmVjZW50bHkgbW9kaWZpZWQgbG9ja2ZpbGVcIjogYSBzdHJheSBsb2NrZmlsZSBpcyB0eXBpY2FsbHkgdGhlIG5ld2VzdCBmaWxlLCBzbyBtdGltZSBwaWNrcyBwcmVjaXNlbHlcbiAqICAgIHRoZSB3cm9uZyBvbmUuXG4gKiA0LiBgbnBtX2NvbmZpZ191c2VyX2FnZW50YCBvbiBpdHMgb3duLCB3aGVuIHRoZXJlIGlzIG5vIGxvY2tmaWxlLlxuICogNS4ge0BsaW5rIFBhY2thZ2VNYW5hZ2VyLk5wbX0uXG4gKlxuICogV2hlbmV2ZXIgbW9yZSB0aGFuIG9uZSBtYW5hZ2VyIGNsYWltcyB0aGUgdHJlZSwgdGhlIGRpc2FncmVlbWVudCBpcyByZXBvcnRlZCBvbmNlIHBlciBwcm9qZWN0IHRocm91Z2hcbiAqIHtAbGluayB3YXJuQWJvdXRTZXZlcmFsQ2xhaW1hbnRzfSDigJQgdGhlIHJlc29sdXRpb24gc3RheXMgZGV0ZXJtaW5pc3RpYywgYnV0IGl0IHN0b3BzIGJlaW5nIHNpbGVudC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIGRldGVjdGVkIHBhY2thZ2UgbWFuYWdlciwgb3Ige0BsaW5rIFBhY2thZ2VNYW5hZ2VyLk5wbX0gd2hlbiBub3RoaW5nIGluZGljYXRlcyBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlcihjd2Q/OiBzdHJpbmcpOiBQYWNrYWdlTWFuYWdlciB7XG4gIGNvbnN0IHJvb3QgPSBnZXRTdGFydEZvbGRlcihjd2QpO1xuICBjb25zdCBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyID0gZGV0ZWN0UGFja2FnZU1hbmFnZXJGcm9tUGFja2FnZUpzb24ocm9vdCk7XG4gIGNvbnN0IGxvY2tmaWxlcyA9IExPQ0tGSUxFUy5maWx0ZXIoKGxvY2tmaWxlKSA9PiBleGlzdHNTeW5jKGpvaW4ocm9vdCwgbG9ja2ZpbGUuZmlsZU5hbWUpKSk7XG4gIGNvbnN0IGNsYWltYW50cyA9IG5ldyBTZXQobG9ja2ZpbGVzLm1hcCgobG9ja2ZpbGUpID0+IGxvY2tmaWxlLnBhY2thZ2VNYW5hZ2VyKSk7XG5cbiAgaWYgKGRlY2xhcmVkUGFja2FnZU1hbmFnZXIgIT09IG51bGwpIHtcbiAgICBjbGFpbWFudHMuYWRkKGRlY2xhcmVkUGFja2FnZU1hbmFnZXIpO1xuICB9XG5cbiAgY29uc3QgcGFja2FnZU1hbmFnZXIgPSByZXNvbHZlUGFja2FnZU1hbmFnZXIoe1xuICAgIGNsYWltYW50cyxcbiAgICBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyXG4gIH0pO1xuXG4gIGlmIChjbGFpbWFudHMuc2l6ZSA+IDEpIHtcbiAgICB3YXJuQWJvdXRTZXZlcmFsQ2xhaW1hbnRzKHtcbiAgICAgIGRlY2xhcmVkUGFja2FnZU1hbmFnZXIsXG4gICAgICBsb2NrZmlsZXMsXG4gICAgICBwYWNrYWdlTWFuYWdlcixcbiAgICAgIHJvb3RcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBwYWNrYWdlTWFuYWdlcjtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGNvbW1hbmQgcGFydHMgdGhhdCBydW4gYSBwYWNrYWdlIHNjcmlwdCB0aHJvdWdoIHRoZSBtYW5hZ2VyIHRoYXQgb3ducyB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIGNvbW1hbmQgcGFydHMsIGUuZy4gYFsnYnVuJywgJ3J1biddYC4gVGhlIHNjcmlwdCBuYW1lIGlzIGFwcGVuZGVkIGJ5IHRoZSBjYWxsZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlclJ1bkNvbW1hbmQoY3dkPzogc3RyaW5nKTogc3RyaW5nW10ge1xuICByZXR1cm4gW2dldFBhY2thZ2VNYW5hZ2VyKGN3ZCksICdydW4nXTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGNvbW1hbmQgcGFydHMgdGhhdCBydW4gYSBsb2NhbGx5LWluc3RhbGxlZCB0b29sLCB3aXRoIHRoZSB0b29sIGl0c2VsZiBhbHJlYWR5IGluY2x1ZGVkLlxuICpcbiAqIFByZWZlcnMgdGhlIHNoaW0gaW4gdGhlIG5lYXJlc3QgYG5vZGVfbW9kdWxlcy8uYmluYCwgd2Fsa2luZyB1cCB0aHJvdWdoIGFuY2VzdG9yIGZvbGRlcnMgc28gYSBob2lzdGVkXG4gKiB3b3Jrc3BhY2UgaW5zdGFsbCBpcyBzdGlsbCBmb3VuZC4gRmFsbHMgYmFjayB0byB0aGUgb3duaW5nIG1hbmFnZXIncyBleGVjIGZvcm0gd2hlbiBubyBzaGltIHJlc29sdmVzIOKAlFxuICogd2hpY2ggaXMgYm90aCB0aGUgcHJldmlvdXMgYmVoYXZpb3IgYW5kIHRoZSBvbmx5IHRoaW5nIHRoYXQgd29ya3MgdW5kZXIgeWFybidzIFBsdWcnbidQbGF5LCB3aGVyZVxuICogYG5vZGVfbW9kdWxlcy8uYmluYCBkb2VzIG5vdCBleGlzdCBhdCBhbGwuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVzb2x1dGlvbi5cbiAqIEByZXR1cm5zIFRoZSBjb21tYW5kIHBhcnRzLCBlLmcuIGBbJy9wcm9qZWN0L25vZGVfbW9kdWxlcy8uYmluL3RzYyddYCBvciBgWydidW4nLCAneCcsICd0c2MnXWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVG9vbENvbW1hbmQocGFyYW1zOiBSZXNvbHZlVG9vbENvbW1hbmRQYXJhbXMpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHsgY3dkLCB0b29sIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHNoaW1QYXRoID0gZmluZEJpblNoaW0oeyBjd2QsIHRvb2wgfSk7XG5cbiAgcmV0dXJuIHNoaW1QYXRoID09PSBudWxsID8gWy4uLmdldFBhY2thZ2VNYW5hZ2VyRXhlY0NvbW1hbmQoY3dkKSwgdG9vbF0gOiBbc2hpbVBhdGhdO1xufVxuXG4vKipcbiAqIE1hdGNoZXMgdGhlIGxlYWRpbmcgYDxuYW1lPkBgIHRva2VuIG9mIGEgYHBhY2thZ2UuanNvbmAgYHBhY2thZ2VNYW5hZ2VyYCB2YWx1ZS5cbiAqXG4gKiBUaGUgYEBgIGlzIHJlcXVpcmVkLCBiZWNhdXNlIGNvcmVwYWNrJ3MgZm9ybWF0IGlzIGA8bmFtZT5APHZlcnNpb24+YCDigJQgYSBiYXJlIG5hbWUgaXMgYSBtYWxmb3JtZWRcbiAqIGRlY2xhcmF0aW9uIHJhdGhlciB0aGFuIGEgc2hvcnRoYW5kLCBhbmQgaXMgaWdub3JlZCBpbnN0ZWFkIG9mIGd1ZXNzZWQgYXQuXG4gKi9cbmNvbnN0IERFQ0xBUkFUSU9OX05BTUVfUkVHX0VYUCA9IC9eKD88bmFtZT5bXkBcXHNdKylALztcblxuLyoqXG4gKiBUaGUgbG9ja2ZpbGVzIHRoYXQgaWRlbnRpZnkgYSBwYWNrYWdlIG1hbmFnZXIsIGluIHRoZSBvcmRlciB0aGV5IGRlY2lkZSBhIHRpZSBubyBvdGhlciBzaWduYWwgc2V0dGxlcy5cbiAqXG4gKiBCb3RoIGJ1biBsb2NrZmlsZSBmb3JtYXRzIG1hcCB0byB0aGUgc2FtZSBtYW5hZ2VyLCBzbyBhIHJlcG8gaG9sZGluZyBib3RoIGlzIG9uZSBjbGFpbWFudCwgbm90IHR3by5cbiAqL1xuY29uc3QgTE9DS0ZJTEVTOiBMb2NrZmlsZUNsYWltW10gPSBbXG4gIHsgZmlsZU5hbWU6IFJlcG9QYXRocy5CdW5Mb2NrLCBwYWNrYWdlTWFuYWdlcjogUGFja2FnZU1hbmFnZXIuQnVuIH0sXG4gIHsgZmlsZU5hbWU6IFJlcG9QYXRocy5CdW5Mb2NrYiwgcGFja2FnZU1hbmFnZXI6IFBhY2thZ2VNYW5hZ2VyLkJ1biB9LFxuICB7IGZpbGVOYW1lOiBSZXBvUGF0aHMuUG5wbUxvY2tZYW1sLCBwYWNrYWdlTWFuYWdlcjogUGFja2FnZU1hbmFnZXIuUG5wbSB9LFxuICB7IGZpbGVOYW1lOiBSZXBvUGF0aHMuWWFybkxvY2ssIHBhY2thZ2VNYW5hZ2VyOiBQYWNrYWdlTWFuYWdlci5ZYXJuIH0sXG4gIHsgZmlsZU5hbWU6IFJlcG9QYXRocy5QYWNrYWdlTG9ja0pzb24sIHBhY2thZ2VNYW5hZ2VyOiBQYWNrYWdlTWFuYWdlci5OcG0gfVxuXTtcblxuLyoqXG4gKiBNYXRjaGVzIHRoZSBsZWFkaW5nIGA8bmFtZT4vYCB0b2tlbiBvZiBhbiBgbnBtX2NvbmZpZ191c2VyX2FnZW50YCB2YWx1ZS5cbiAqL1xuY29uc3QgVVNFUl9BR0VOVF9OQU1FX1JFR19FWFAgPSAvXig/PG5hbWU+W14vXFxzXSspXFwvLztcblxuLyoqXG4gKiBUaGUgZGlzYWdyZWVtZW50cyBhbHJlYWR5IHJlcG9ydGVkLCBzbyBhIGJ1aWxkIHRoYXQgcmVzb2x2ZXMgdGhlIG1hbmFnZXIgb25jZSBwZXIgc2NyaXB0IGhvcCBhbmQgb25jZVxuICogcGVyIHRvb2wgaW52b2NhdGlvbiBzdGlsbCBzYXlzIGl0IG9ubHkgb25jZS5cbiAqL1xuY29uc3QgcmVwb3J0ZWREaXNhZ3JlZW1lbnRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZpbmRCaW5TaGltfS5cbiAqL1xuaW50ZXJmYWNlIEZpbmRCaW5TaGltUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wuXG4gICAqL1xuICByZWFkb25seSB0b29sOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBsb2NrZmlsZSBhbmQgdGhlIHBhY2thZ2UgbWFuYWdlciB3aG9zZSBwcmVzZW5jZSBpdCBwcm92ZXMuXG4gKi9cbmludGVyZmFjZSBMb2NrZmlsZUNsYWltIHtcbiAgLyoqXG4gICAqIFRoZSBsb2NrZmlsZSBuYW1lLCBhcyBpdCBhcHBlYXJzIGF0IHRoZSBwcm9qZWN0IHJvb3QuXG4gICAqL1xuICByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFja2FnZSBtYW5hZ2VyIHRoYXQgd3JpdGVzIHRoaXMgbG9ja2ZpbGUuXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlTWFuYWdlcjogUGFja2FnZU1hbmFnZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlc29sdmVQYWNrYWdlTWFuYWdlcn0uXG4gKi9cbmludGVyZmFjZSBSZXNvbHZlUGFja2FnZU1hbmFnZXJQYXJhbXMge1xuICAvKipcbiAgICogRXZlcnkgcGFja2FnZSBtYW5hZ2VyIGNsYWltaW5nIHRoZSB0cmVlIOKAlCB0aGUgbG9ja2ZpbGUgb3duZXJzIGluIHtAbGluayBMT0NLRklMRVN9IG9yZGVyLCBwbHVzIHRoZVxuICAgKiBkZWNsYXJlZCBvbmUuIE9ubHkgY29uc3VsdGVkIHdoZW4gbm90aGluZyBpcyBkZWNsYXJlZCwgaW4gd2hpY2ggY2FzZSBpdCBob2xkcyBleGFjdGx5IHRoZSBsb2NrZmlsZVxuICAgKiBvd25lcnMuXG4gICAqL1xuICByZWFkb25seSBjbGFpbWFudHM6IFJlYWRvbmx5U2V0PFBhY2thZ2VNYW5hZ2VyPjtcblxuICAvKipcbiAgICogVGhlIHBhY2thZ2UgbWFuYWdlciBkZWNsYXJlZCBpbiBgcGFja2FnZS5qc29uYCwgb3IgYG51bGxgIHdoZW4gbm9uZSBpcy5cbiAgICovXG4gIHJlYWRvbmx5IGRlY2xhcmVkUGFja2FnZU1hbmFnZXI6IG51bGwgfCBQYWNrYWdlTWFuYWdlcjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgd2FybkFib3V0U2V2ZXJhbENsYWltYW50c30uXG4gKi9cbmludGVyZmFjZSBXYXJuQWJvdXRTZXZlcmFsQ2xhaW1hbnRzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBwYWNrYWdlIG1hbmFnZXIgZGVjbGFyZWQgaW4gYHBhY2thZ2UuanNvbmAsIG9yIGBudWxsYCB3aGVuIG5vbmUgaXMuXG4gICAqL1xuICByZWFkb25seSBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyOiBudWxsIHwgUGFja2FnZU1hbmFnZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NrZmlsZXMgYWN0dWFsbHkgZm91bmQgYXQgdGhlIHByb2plY3Qgcm9vdC5cbiAgICovXG4gIHJlYWRvbmx5IGxvY2tmaWxlczogcmVhZG9ubHkgTG9ja2ZpbGVDbGFpbVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFja2FnZSBtYW5hZ2VyIHRoYXQgd29uLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZU1hbmFnZXI6IFBhY2thZ2VNYW5hZ2VyO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvamVjdCByb290IHRoZSBsb2NrZmlsZXMgd2VyZSBmb3VuZCBpbi5cbiAgICovXG4gIHJlYWRvbmx5IHJvb3Q6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgcGFja2FnZSBtYW5hZ2VyIG91dCBvZiB0aGUgYHBhY2thZ2VNYW5hZ2VyYCBmaWVsZCBvZiB0aGUgcHJvamVjdCdzIGBwYWNrYWdlLmpzb25gLCB3aGljaCBpc1xuICogY29yZXBhY2sncyBgPG5hbWU+QDx2ZXJzaW9uPmAgZGVjbGFyYXRpb24uXG4gKlxuICogQHBhcmFtIHJvb3QgLSBUaGUgcHJvamVjdCByb290IHRvIHJlYWQgYHBhY2thZ2UuanNvbmAgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSBkZWNsYXJlZCBwYWNrYWdlIG1hbmFnZXIsIG9yIGBudWxsYCB3aGVuIHRoZXJlIGlzIG5vIGBwYWNrYWdlLmpzb25gLCBpdCBjYW5ub3QgYmUgcGFyc2VkLFxuICogdGhlIGZpZWxkIGlzIGFic2VudCBvciBtYWxmb3JtZWQsIG9yIGl0IG5hbWVzIGEgbWFuYWdlciB3ZSBkbyBub3QgaGFuZGxlLlxuICovXG5mdW5jdGlvbiBkZXRlY3RQYWNrYWdlTWFuYWdlckZyb21QYWNrYWdlSnNvbihyb290OiBzdHJpbmcpOiBudWxsIHwgUGFja2FnZU1hbmFnZXIge1xuICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBqb2luKHJvb3QsIFJlcG9QYXRocy5QYWNrYWdlSnNvbik7XG5cbiAgaWYgKCFleGlzdHNTeW5jKHBhY2thZ2VKc29uUGF0aCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGxldCBwYWNrYWdlSnNvbjogUGFja2FnZUpzb247XG5cbiAgdHJ5IHtcbiAgICBwYWNrYWdlSnNvbiA9IHJlYWRKc29uU3luYzxQYWNrYWdlSnNvbj4ocGFja2FnZUpzb25QYXRoKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBkZWNsYXJhdGlvbiA9IHBhY2thZ2VKc29uLnBhY2thZ2VNYW5hZ2VyO1xuXG4gIGlmICghZGVjbGFyYXRpb24pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IG1hdGNoID0gREVDTEFSQVRJT05fTkFNRV9SRUdfRVhQLmV4ZWMoZGVjbGFyYXRpb24pO1xuXG4gIHJldHVybiBtYXRjaCA/IHBhcnNlUGFja2FnZU1hbmFnZXJOYW1lKGdldE1hbmRhdG9yeU5hbWVkR3JvdXAobWF0Y2gsICduYW1lJykpIDogbnVsbDtcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgcGFja2FnZSBtYW5hZ2VyIG91dCBvZiBgbnBtX2NvbmZpZ191c2VyX2FnZW50YCwgd2hpY2ggZXZlcnkgbWFuYWdlciBzZXRzIGZvciB0aGUgcHJvY2Vzc2VzIGl0XG4gKiBsYXVuY2hlcy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgZGV0ZWN0ZWQgcGFja2FnZSBtYW5hZ2VyLCBvciBgbnVsbGAgd2hlbiB0aGUgdmFyaWFibGUgaXMgYWJzZW50LCBtYWxmb3JtZWQsIG9yIG5hbWVzIGFcbiAqIHJ1bnRpbWUgd2UgZG8gbm90IGhhbmRsZS5cbiAqL1xuZnVuY3Rpb24gZGV0ZWN0UGFja2FnZU1hbmFnZXJGcm9tVXNlckFnZW50KCk6IG51bGwgfCBQYWNrYWdlTWFuYWdlciB7XG4gIGNvbnN0IHVzZXJBZ2VudCA9IHByb2Nlc3MuZW52WyducG1fY29uZmlnX3VzZXJfYWdlbnQnXTtcblxuICBpZiAoIXVzZXJBZ2VudCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgbWF0Y2ggPSBVU0VSX0FHRU5UX05BTUVfUkVHX0VYUC5leGVjKHVzZXJBZ2VudCk7XG5cbiAgcmV0dXJuIG1hdGNoID8gcGFyc2VQYWNrYWdlTWFuYWdlck5hbWUoZ2V0TWFuZGF0b3J5TmFtZWRHcm91cChtYXRjaCwgJ25hbWUnKSkgOiBudWxsO1xufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBgbm9kZV9tb2R1bGVzLy5iaW5gIHNoaW0gZm9yIGEgdG9vbCwgd2Fsa2luZyB1cCBmcm9tIHRoZSBwcm9qZWN0IHJvb3QgdGhyb3VnaCBhbmNlc3RvciBmb2xkZXJzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGxvb2t1cC5cbiAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoIG9mIHRoZSBzaGltLCBvciBgbnVsbGAgd2hlbiBub25lIGV4aXN0cy5cbiAqL1xuZnVuY3Rpb24gZmluZEJpblNoaW0ocGFyYW1zOiBGaW5kQmluU2hpbVBhcmFtcyk6IG51bGwgfCBzdHJpbmcge1xuICBjb25zdCB7IGN3ZCwgdG9vbCB9ID0gcGFyYW1zO1xuICBjb25zdCBjYW5kaWRhdGVzID0gZ2V0U2hpbUNhbmRpZGF0ZXModG9vbCk7XG4gIGxldCBjdXJyZW50Rm9sZGVyID0gZ2V0U3RhcnRGb2xkZXIoY3dkKTtcblxuICB3aGlsZSAoXG4gICAgY3VycmVudEZvbGRlciAhPT0gUmVwb1BhdGhzLkN1cnJlbnRGb2xkZXIgYXMgc3RyaW5nXG4gICAgJiYgY3VycmVudEZvbGRlciAhPT0gUmVwb1BhdGhzLlJvb3RGb2xkZXIgYXMgc3RyaW5nXG4gICkge1xuICAgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICAgIGNvbnN0IHNoaW1QYXRoID0gam9pbihjdXJyZW50Rm9sZGVyLCBSZXBvUGF0aHMuTm9kZU1vZHVsZXMsIFJlcG9QYXRocy5CaW4sIGNhbmRpZGF0ZSk7XG4gICAgICBpZiAoZXhpc3RzU3luYyhzaGltUGF0aCkpIHtcbiAgICAgICAgcmV0dXJuIHNoaW1QYXRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIGN1cnJlbnRGb2xkZXIgPSBkaXJuYW1lKGN1cnJlbnRGb2xkZXIpO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBjb21tYW5kIHBhcnRzIHRoYXQgcnVuIGEgb25lLW9mZiB0b29sIHRocm91Z2ggdGhlIG1hbmFnZXIgdGhhdCBvd25zIHRoZSB0cmVlLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB0byByZXNvbHZlIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgY29tbWFuZCBwYXJ0cywgZS5nLiBgWydidW4nLCAneCddYC4gVGhlIHRvb2wgbmFtZSBpcyBhcHBlbmRlZCBieSB0aGUgY2FsbGVyLlxuICovXG5mdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlckV4ZWNDb21tYW5kKGN3ZD86IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgcGFja2FnZU1hbmFnZXIgPSBnZXRQYWNrYWdlTWFuYWdlcihjd2QpO1xuXG4gIHN3aXRjaCAocGFja2FnZU1hbmFnZXIpIHtcbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLkJ1bjoge1xuICAgICAgcmV0dXJuIFsnYnVuJywgJ3gnXTtcbiAgICB9XG4gICAgY2FzZSBQYWNrYWdlTWFuYWdlci5OcG06IHtcbiAgICAgIHJldHVybiBbJ25weCddO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLlBucG06IHtcbiAgICAgIHJldHVybiBbJ3BucG0nLCAnZXhlYyddO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLllhcm46IHtcbiAgICAgIHJldHVybiBbJ3lhcm4nLCAnZXhlYyddO1xuICAgIH1cbiAgICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gRXhoYXVzdGl2ZSBzd2l0Y2ggZ3VhcmQ7IGRlZmF1bHQgYnJhbmNoIGlzIHVucmVhY2hhYmxlLiAqL1xuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBhc3NlcnROZXZlcihwYWNrYWdlTWFuYWdlcik7XG4gICAgfVxuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgfVxufVxuXG4vKipcbiAqIExpc3RzIHRoZSBzaGltIGZpbGUgbmFtZXMgdG8gdHJ5IGZvciBhIHRvb2wsIG1vc3Qgc3BlY2lmaWMgZmlyc3QuXG4gKlxuICogT24gV2luZG93cyBvbmx5IHRoZSBleGVjdXRhYmxlIGZvcm1zIGFyZSB2aWFibGU6IG5wbSBhbmQgcG5wbSBhbHNvIHdyaXRlIGEgc2hpbSB3aXRoIG5vIGV4dGVuc2lvbiwgYnV0XG4gKiB0aGF0IG9uZSBpcyBhIGBzaGAgc2NyaXB0IHRoYXQgYGNtZC5leGVgIGNhbm5vdCBydW4sIHNvIGl0IG11c3QgbmV2ZXIgYmUgY2hvc2VuIHRoZXJlLlxuICpcbiAqIEBwYXJhbSB0b29sIC0gVGhlIG5hbWUgb2YgdGhlIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wuXG4gKiBAcmV0dXJucyBUaGUgY2FuZGlkYXRlIGZpbGUgbmFtZXMsIGluIHRoZSBvcmRlciB0aGV5IHNob3VsZCBiZSB0cmllZC5cbiAqL1xuZnVuY3Rpb24gZ2V0U2hpbUNhbmRpZGF0ZXModG9vbDogc3RyaW5nKTogc3RyaW5nW10ge1xuICByZXR1cm4gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJ1xuICAgID8gW1xuICAgICAgYCR7dG9vbH0ke1JlcG9QYXRocy5Db21tYW5kRXh0ZW5zaW9ufWAsXG4gICAgICBgJHt0b29sfSR7UmVwb1BhdGhzLkV4ZUV4dGVuc2lvbn1gLFxuICAgICAgYCR7dG9vbH0ke1JlcG9QYXRocy5CYXRFeHRlbnNpb259YFxuICAgIF1cbiAgICA6IFt0b29sXTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgZm9sZGVyIHRvIHN0YXJ0IGEgbG9va3VwIGZyb20g4oCUIHRoZSBwcm9qZWN0IHJvb3Qgd2hlbiB0aGVyZSBpcyBvbmUsIHRoZSB3b3JraW5nIGZvbGRlclxuICogb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB0byByZXNvbHZlIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgYWJzb2x1dGUgZm9sZGVyIHRvIHN0YXJ0IGZyb20uXG4gKi9cbmZ1bmN0aW9uIGdldFN0YXJ0Rm9sZGVyKGN3ZD86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRSb290Rm9sZGVyKGN3ZCkgPz8gdG9Qb3NpeFBhdGgoY3dkID8/IHByb2Nlc3MuY3dkKCkpO1xufVxuXG4vKipcbiAqIE1hcHMgdGhlIGJhcmUgbmFtZSBhIGxvY2tmaWxlIGRlY2xhcmF0aW9uIG9yIGEgdXNlciBhZ2VudCByZXBvcnRzIG9udG8gdGhlIHBhY2thZ2UgbWFuYWdlciBpdCBuYW1lcy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSByZXBvcnRlZCBuYW1lLlxuICogQHJldHVybnMgVGhlIG1hdGNoaW5nIHBhY2thZ2UgbWFuYWdlciwgb3IgYG51bGxgIGZvciBhIHJ1bnRpbWUgd2UgZG8gbm90IGhhbmRsZS5cbiAqL1xuZnVuY3Rpb24gcGFyc2VQYWNrYWdlTWFuYWdlck5hbWUobmFtZTogc3RyaW5nKTogbnVsbCB8IFBhY2thZ2VNYW5hZ2VyIHtcbiAgc3dpdGNoIChuYW1lKSB7XG4gICAgY2FzZSBQYWNrYWdlTWFuYWdlci5CdW4gYXMgc3RyaW5nOiB7XG4gICAgICByZXR1cm4gUGFja2FnZU1hbmFnZXIuQnVuO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLk5wbSBhcyBzdHJpbmc6IHtcbiAgICAgIHJldHVybiBQYWNrYWdlTWFuYWdlci5OcG07XG4gICAgfVxuICAgIGNhc2UgUGFja2FnZU1hbmFnZXIuUG5wbSBhcyBzdHJpbmc6IHtcbiAgICAgIHJldHVybiBQYWNrYWdlTWFuYWdlci5QbnBtO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLllhcm4gYXMgc3RyaW5nOiB7XG4gICAgICByZXR1cm4gUGFja2FnZU1hbmFnZXIuWWFybjtcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUGlja3MgdGhlIHdpbm5lciBvdXQgb2YgdGhlIGNvbGxlY3RlZCBzaWduYWxzLCBwZXIgdGhlIG9yZGVyIGRvY3VtZW50ZWQgb24ge0BsaW5rIGdldFBhY2thZ2VNYW5hZ2VyfS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSByZXNvbHV0aW9uLlxuICogQHJldHVybnMgVGhlIHBhY2thZ2UgbWFuYWdlciB0aGF0IG93bnMgdGhlIHRyZWUuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVQYWNrYWdlTWFuYWdlcihwYXJhbXM6IFJlc29sdmVQYWNrYWdlTWFuYWdlclBhcmFtcyk6IFBhY2thZ2VNYW5hZ2VyIHtcbiAgY29uc3Qge1xuICAgIGNsYWltYW50cyxcbiAgICBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyXG4gIH0gPSBwYXJhbXM7XG5cbiAgaWYgKGRlY2xhcmVkUGFja2FnZU1hbmFnZXIgIT09IG51bGwpIHtcbiAgICByZXR1cm4gZGVjbGFyZWRQYWNrYWdlTWFuYWdlcjtcbiAgfVxuXG4gIGNvbnN0IGxvY2tmaWxlT3duZXJzID0gWy4uLmNsYWltYW50c107XG4gIGNvbnN0IFtmaXJzdExvY2tmaWxlT3duZXJdID0gbG9ja2ZpbGVPd25lcnM7XG5cbiAgaWYgKGZpcnN0TG9ja2ZpbGVPd25lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGRldGVjdFBhY2thZ2VNYW5hZ2VyRnJvbVVzZXJBZ2VudCgpID8/IFBhY2thZ2VNYW5hZ2VyLk5wbTtcbiAgfVxuXG4gIGlmIChsb2NrZmlsZU93bmVycy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gZmlyc3RMb2NrZmlsZU93bmVyO1xuICB9XG5cbiAgY29uc3QgbGF1bmNoZWRCeSA9IGRldGVjdFBhY2thZ2VNYW5hZ2VyRnJvbVVzZXJBZ2VudCgpO1xuXG4gIHJldHVybiBsYXVuY2hlZEJ5ICE9PSBudWxsICYmIGNsYWltYW50cy5oYXMobGF1bmNoZWRCeSkgPyBsYXVuY2hlZEJ5IDogZmlyc3RMb2NrZmlsZU93bmVyO1xufVxuXG4vKipcbiAqIFJlcG9ydHMgdGhhdCBzZXZlcmFsIHBhY2thZ2UgbWFuYWdlcnMgY2xhaW0gdGhlIHNhbWUgdHJlZSwgbmFtaW5nIGVhY2ggbG9ja2ZpbGUgZm91bmQsIHdoYXRcbiAqIGBwYWNrYWdlLmpzb25gIGRlY2xhcmVzLCBhbmQgd2hpY2ggbWFuYWdlciB3b24uXG4gKlxuICogYGNvbnNvbGUud2FybmAgcmF0aGVyIHRoYW4gYSBkZWJ1ZyBjaGFubmVsOiB0aGlzIHJ1bnMgaW4gdGhlIGJ1aWxkJ3Mgb3duIHRlcm1pbmFsLCBhbmQgYSBtZXNzYWdlIG5vYm9keVxuICogc2VlcyB1bmxlc3MgdGhleSBhbHJlYWR5IHN1c3BlY3QgdGhlIHByb2JsZW0gbGVhdmVzIHRoZSBmYWlsdXJlIGV4YWN0bHkgYXMgc2lsZW50IGFzIGl0IHdhcy4gRWFjaFxuICogZGlzdGluY3QgbWVzc2FnZSBpcyBwcmludGVkIG9uY2UsIGJlY2F1c2UgdGhlIG1hbmFnZXIgaXMgcmVzb2x2ZWQgb25jZSBwZXIgcGFja2FnZS1zY3JpcHQgaG9wIGFuZCBvbmNlXG4gKiBwZXIgdG9vbCBpbnZvY2F0aW9uLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHJlcG9ydC5cbiAqL1xuZnVuY3Rpb24gd2FybkFib3V0U2V2ZXJhbENsYWltYW50cyhwYXJhbXM6IFdhcm5BYm91dFNldmVyYWxDbGFpbWFudHNQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgIGRlY2xhcmVkUGFja2FnZU1hbmFnZXIsXG4gICAgbG9ja2ZpbGVzLFxuICAgIHBhY2thZ2VNYW5hZ2VyLFxuICAgIHJvb3RcbiAgfSA9IHBhcmFtcztcblxuICBjb25zdCBsb2NrZmlsZU5hbWVzID0gbG9ja2ZpbGVzLm1hcCgobG9ja2ZpbGUpID0+IGxvY2tmaWxlLmZpbGVOYW1lKS5qb2luKCcsICcpO1xuICBjb25zdCBhZHZpY2UgPSBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyID09PSBudWxsXG4gICAgPyAnRGVsZXRlIHRoZSBzdGFsZSBsb2NrZmlsZSwgb3IgZGVjbGFyZSBcInBhY2thZ2VNYW5hZ2VyXCIgaW4gcGFja2FnZS5qc29uLCB0byBzZXR0bGUgaXQuJ1xuICAgIDogJ0RlbGV0ZSB0aGUgc3RhbGUgbG9ja2ZpbGUgdG8gc2V0dGxlIGl0Lic7XG4gIGNvbnN0IG1lc3NhZ2UgPSBbXG4gICAgYHR5cGVzY3JpcHQtZGV2LXRvb2xraXQ6IG1vcmUgdGhhbiBvbmUgcGFja2FnZSBtYW5hZ2VyIGNsYWltcyAke3Jvb3R9LmAsXG4gICAgYExvY2tmaWxlczogJHtsb2NrZmlsZU5hbWVzfS5gLFxuICAgIGBwYWNrYWdlLmpzb24gXCJwYWNrYWdlTWFuYWdlclwiOiAke2RlY2xhcmVkUGFja2FnZU1hbmFnZXIgPz8gJ25vdCBzZXQnfS5gLFxuICAgIGBVc2luZyAke3BhY2thZ2VNYW5hZ2VyfS5gLFxuICAgIGFkdmljZVxuICBdLmpvaW4oJyAnKTtcblxuICBpZiAocmVwb3J0ZWREaXNhZ3JlZW1lbnRzLmhhcyhtZXNzYWdlKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJlcG9ydGVkRGlzYWdyZWVtZW50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LGFBQWEsVUFDeEI7QUFBQSxJQUNBLEdBQUcsSUFBSSxHQUFHLDRCQUFVLGdCQUFnQjtBQUFBLElBQ3BDLEdBQUcsSUFBSSxHQUFHLDRCQUFVLFlBQVk7QUFBQSxJQUNoQyxHQUFHLElBQUksR0FBRyw0QkFBVSxZQUFZO0FBQUEsRUFDbEMsSUFDRSxDQUFDLElBQUk7QUFDWDtBQVNBLFNBQVMsZUFBZSxLQUFzQjtBQUM1QyxhQUFPLDJCQUFjLEdBQUcsU0FBSyx5QkFBWSxPQUFPLG9CQUFBQSxRQUFRLElBQUksQ0FBQztBQUMvRDtBQVFBLFNBQVMsd0JBQXdCLE1BQXFDO0FBQ3BFLFVBQVEsTUFBTTtBQUFBLElBQ1osS0FBSyxpQkFBOEI7QUFDakMsYUFBTztBQUFBLElBQ1Q7QUFBQSxJQUNBLEtBQUssaUJBQThCO0FBQ2pDLGFBQU87QUFBQSxJQUNUO0FBQUEsSUFDQSxLQUFLLG1CQUErQjtBQUNsQyxhQUFPO0FBQUEsSUFDVDtBQUFBLElBQ0EsS0FBSyxtQkFBK0I7QUFDbEMsYUFBTztBQUFBLElBQ1Q7QUFBQSxJQUNBLFNBQVM7QUFDUCxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFDRjtBQVFBLFNBQVMsc0JBQXNCLFFBQXFEO0FBQ2xGLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUVKLE1BQUksMkJBQTJCLE1BQU07QUFDbkMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLGlCQUFpQixDQUFDLEdBQUcsU0FBUztBQUNwQyxRQUFNLENBQUMsa0JBQWtCLElBQUk7QUFFN0IsTUFBSSx1QkFBdUIsUUFBVztBQUNwQyxXQUFPLGtDQUFrQyxLQUFLO0FBQUEsRUFDaEQ7QUFFQSxNQUFJLGVBQWUsV0FBVyxHQUFHO0FBQy9CLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxhQUFhLGtDQUFrQztBQUVyRCxTQUFPLGVBQWUsUUFBUSxVQUFVLElBQUksVUFBVSxJQUFJLGFBQWE7QUFDekU7QUFhQSxTQUFTLDBCQUEwQixRQUErQztBQUNoRixRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUVKLFFBQU0sZ0JBQWdCLFVBQVUsSUFBSSxDQUFDLGFBQWEsU0FBUyxRQUFRLEVBQUUsS0FBSyxJQUFJO0FBQzlFLFFBQU0sU0FBUywyQkFBMkIsT0FDdEMsMEZBQ0E7QUFDSixRQUFNLFVBQVU7QUFBQSxJQUNkLGdFQUFnRSxJQUFJO0FBQUEsSUFDcEUsY0FBYyxhQUFhO0FBQUEsSUFDM0Isa0NBQWtDLDBCQUEwQixTQUFTO0FBQUEsSUFDckUsU0FBUyxjQUFjO0FBQUEsSUFDdkI7QUFBQSxFQUNGLEVBQUUsS0FBSyxHQUFHO0FBRVYsTUFBSSxzQkFBc0IsSUFBSSxPQUFPLEdBQUc7QUFDdEM7QUFBQSxFQUNGO0FBRUEsd0JBQXNCLElBQUksT0FBTztBQUNqQyxVQUFRLEtBQUssT0FBTztBQUN0QjsiLCJuYW1lcyI6WyJQYWNrYWdlTWFuYWdlciIsInByb2Nlc3MiXX0=
@@ -49,7 +49,7 @@ export declare function buildCompileTypeScript(): Promise<void>;
49
49
  *
50
50
  * This function recursively reads the contents of the templates folder and copies each file to the
51
51
  * corresponding path under {@link RepoPaths.DistTemplates}, so consumers can copy the
52
- * templates from `node_modules/obsidian-dev-utils/dist/templates`. A trailing `.template` on a source
52
+ * templates from `node_modules/@mnaoumov/typescript-dev-toolkit/dist/templates`. A trailing `.template` on a source
53
53
  * file name is stripped in the destination (e.g. `eslint.config.mts.template` is copied as
54
54
  * `eslint.config.mts`), so an active config template can live in the repo under a name that the
55
55
  * corresponding tool does not auto-discover.
@@ -153,4 +153,4 @@ export {
153
153
  buildCompileTypeScript,
154
154
  buildTemplates
155
155
  };
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idWlsZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgdG8gaGFuZGxlIHRoZSBidWlsZCBwcm9jZXNzIGZvciBzdGF0aWMgYXNzZXRzIGFuZCBjbGVhbmluZ1xuICogdGhlIGJ1aWxkIG91dHB1dCBmb2xkZXIuIEl0IGluY2x1ZGVzIGZ1bmN0aW9ucyB0byBjb3B5IHN0YXRpYyBmaWxlcyB0byB0aGUgZGlzdHJpYnV0aW9uIGZvbGRlclxuICogYW5kIHRvIHJlbW92ZSB0aGUgZXhpc3RpbmcgYnVpbGQgb3V0cHV0LlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgUGFja2FnZUpzb24sXG4gIFRzQ29uZmlnSnNvblxufSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyB0cmltU3RhcnQgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvc3RyaW5nJztcbmltcG9ydCB7XG4gIGNwLFxuICBnbG9iLFxuICBybVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcblxuaW1wb3J0IHtcbiAgY2hlY2tQcm9qZWN0VHlwZXMsXG4gIHBhcnNlVHNDb25maWcsXG4gIHRvQ2Fub25pY2FsXG59IGZyb20gJy4vY2hlY2stcHJvamVjdC10eXBlcy50cyc7XG5pbXBvcnQgeyByZWFkZGlyUG9zaXggfSBmcm9tICcuL2ZzLnRzJztcbmltcG9ydCB7IHJlYWRKc29uIH0gZnJvbSAnLi9qc29uLnRzJztcbmltcG9ydCB7XG4gIG5wbVJ1bk9wdGlvbmFsLFxuICBOcG1SdW5PcHRpb25hbFJlc3VsdFxufSBmcm9tICcuL25wbS1ydW4udHMnO1xuaW1wb3J0IHsgcmVhZFBhY2thZ2VKc29uIH0gZnJvbSAnLi9ucG0udHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVRvb2xDb21tYW5kIH0gZnJvbSAnLi9wYWNrYWdlLW1hbmFnZXIudHMnO1xuaW1wb3J0IHsgUmVwb1BhdGhzIH0gZnJvbSAnLi9yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgZ2V0Um9vdEZvbGRlcixcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi9yb290LnRzJztcblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBkaXN0cmlidXRpb24gZm9sZGVyIGFuZCBpdHMgY29udGVudHMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSBlbnRpcmUgZGlzdHJpYnV0aW9uIGZvbGRlciB0byBlbnN1cmUgYSBjbGVhbiBidWlsZCBlbnZpcm9ubWVudC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZvbGRlciBoYXMgYmVlbiByZW1vdmVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDbGVhbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcm0oUmVwb1BhdGhzLkRpc3QsIHsgZm9yY2U6IHRydWUsIHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBDb21waWxlcyB0aGUgY29kZS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlKCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoYXdhaXQgbnBtUnVuT3B0aW9uYWwoJ2J1aWxkOmNvbXBpbGU6c3ZlbHRlJykgPT09IE5wbVJ1bk9wdGlvbmFsUmVzdWx0LlNraXBwZWQpIHtcbiAgICBhd2FpdCBidWlsZENvbXBpbGVTdmVsdGUoKTtcbiAgfVxuICBpZiAoYXdhaXQgbnBtUnVuT3B0aW9uYWwoJ2J1aWxkOmNvbXBpbGU6dHlwZXNjcmlwdCcpID09PSBOcG1SdW5PcHRpb25hbFJlc3VsdC5Ta2lwcGVkKSB7XG4gICAgYXdhaXQgYnVpbGRDb21waWxlVHlwZVNjcmlwdCgpO1xuICB9XG59XG5cbi8qKlxuICogQ29tcGlsZXMgdGhlIFN2ZWx0ZSBjb2RlLlxuICpcbiAqIFRoZSBwcm9qZWN0J3MgU3ZlbHRlIGZpbGVzIGFyZSBmb3VuZCBieSBnbG9iYmluZyB0aGUgU3ZlbHRlIGV4dGVuc2lvbnMgZGlyZWN0bHkuIEdsb2JiaW5nIHRoZSB0c2NvbmZpZ1xuICogYGluY2x1ZGVgIHBhdHRlcm5zIGFuZCBmaWx0ZXJpbmcgdGhhdCBsaXN0IHdvdWxkIG5ldmVyIG1hdGNoOiBgaW5jbHVkZWAgbGlzdHMgVHlwZVNjcmlwdCBnbG9ic1xuICogKGAuL3NyYy8qKlxcLyoudHNgLCDigKYpLCBzbyBubyBgLnN2ZWx0ZWAgcGF0aCBjYW4gZXZlciBhcHBlYXIgaW4gaXQgYW5kIHRoZSBjaGVjayB3b3VsZCBhbHdheXMgYmUgc2tpcHBlZC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICogQHRocm93cyBJZiB0aGUgcHJvamVjdCBoYXMgU3ZlbHRlIGZpbGVzIGJ1dCBkb2VzIG5vdCBkZWNsYXJlIGBzdmVsdGUtY2hlY2tgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlU3ZlbHRlKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB0c0NvbmZpZ1BhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IFJlcG9QYXRocy5Uc0NvbmZpZ0pzb24gfSk7XG4gIGNvbnN0IHRzQ29uZmlnID0gYXdhaXQgcmVhZEpzb248VHNDb25maWdKc29uPih0c0NvbmZpZ1BhdGgpO1xuICBjb25zdCBzdmVsdGVGaWxlcyA9IGF3YWl0IHRvQXJyYXkoZ2xvYihTVkVMVEVfRklMRV9QQVRURVJOUywge1xuICAgIGN3ZDogcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBSZXBvUGF0aHMuQ3VycmVudEZvbGRlciB9KSxcbiAgICBleGNsdWRlOiBbLi4uU1ZFTFRFX0ZJTEVfRVhDTFVERV9QQVRURVJOUywgLi4udHNDb25maWcuZXhjbHVkZSA/PyBbXV1cbiAgfSkpO1xuXG4gIGNvbnN0IFtmaXJzdFN2ZWx0ZUZpbGVdID0gc3ZlbHRlRmlsZXM7XG5cbiAgaWYgKGZpcnN0U3ZlbHRlRmlsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZ2V0TGliRGVidWdnZXIoJ2J1aWxkOmJ1aWxkQ29tcGlsZVN2ZWx0ZScpKCdObyBTdmVsdGUgZmlsZXMgZm91bmQgaW4gdGhlIHByb2plY3QsIHNraXBwaW5nIFN2ZWx0ZSBjb21waWxhdGlvbicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKCk7XG5cbiAgaWYgKCFjaGVja1N2ZWx0ZUNoZWNrRGVjbGFyZWQocGFja2FnZUpzb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEZvdW5kIFN2ZWx0ZSBmaWxlKHMpIGluIHRoZSBwcm9qZWN0IChlLmcuICR7Zmlyc3RTdmVsdGVGaWxlfSksIGJ1dCBcXGAke1NWRUxURV9DSEVDS19QQUNLQUdFX05BTUV9XFxgIGlzIG5vdCBkZWNsYXJlZCBpbiBwYWNrYWdlLmpzb24uYFxuICAgICAgICArIGAgQWRkIFxcYCR7U1ZFTFRFX0NIRUNLX1BBQ0tBR0VfTkFNRX1cXGAgYXMgYSBkZXZEZXBlbmRlbmN5IHRvIHR5cGUtY2hlY2sgdGhlIFN2ZWx0ZSBjb2RlLmBcbiAgICApO1xuICB9XG5cbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsuLi5yZXNvbHZlVG9vbENvbW1hbmQoeyB0b29sOiBTVkVMVEVfQ0hFQ0tfUEFDS0FHRV9OQU1FIH0pLCAnLS10c2NvbmZpZycsIFJlcG9QYXRocy5Uc0NvbmZpZ0pzb25dKTtcbn1cblxuLyoqXG4gKiBDb21waWxlcyB0aGUgVHlwZVNjcmlwdCBjb2RlLlxuICpcbiAqIFRoZSBnZW5lcmFsIGB0c2NgIHBhc3MgcnVucyB3aXRoIGBza2lwTGliQ2hlY2s6IHRydWVgIChjb25maWd1cmVkIGluIGB0c2NvbmZpZy5qc29uYCkgc28gaXQgZG9lc1xuICogbm90IGZhaWwgb24gYnJva2VuIHVwc3RyZWFtIGAuZC50c2AgZmlsZXMgd2UgZG8gbm90IGNvbnRyb2wuIEFmdGVyd2FyZHMsIHtAbGluayBhcmVQcm9qZWN0VHlwZXNWYWxpZH1cbiAqIHJlLXJ1bnMgdGhlIHR5cGUtY2hlY2sgaW4tbWVtb3J5IHdpdGggYHNraXBMaWJDaGVjazogZmFsc2VgLCByZXBvcnRpbmcgb25seSBkaWFnbm9zdGljcyBmcm9tIHRoZVxuICogZmlsZXMgd2Ugb3duLCBzbyB0aGUgZGVjbGFyYXRpb25zIHdlIGF1dGhvciBhcmUgc3RpbGwgZnVsbHkgdmFsaWRhdGVkLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29kZSBjb21waWxlcyBzdWNjZXNzZnVsbHkuXG4gKiBAdGhyb3dzIElmIHRoZSBwcm9qZWN0J3Mgb3duIGRlY2xhcmF0aW9ucyBmYWlsIHZhbGlkYXRpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZENvbXBpbGVUeXBlU2NyaXB0KCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWy4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICd0c2MnIH0pLCAnLS1idWlsZCcsICctLWZvcmNlJ10pO1xuXG4gIGlmICghYXJlUHJvamVjdFR5cGVzVmFsaWQoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiB2YWxpZGF0aW9uIGZhaWxlZC4nKTtcbiAgfVxufVxuXG4vKipcbiAqIENvcGllcyBhbGwgdGVtcGxhdGUgZmlsZXMgZnJvbSB0aGUgdGVtcGxhdGVzIGZvbGRlciB0byB0aGUgYHRlbXBsYXRlc2AgZm9sZGVyIHdpdGhpbiB0aGVcbiAqIGRpc3RyaWJ1dGlvbiBmb2xkZXIuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZWN1cnNpdmVseSByZWFkcyB0aGUgY29udGVudHMgb2YgdGhlIHRlbXBsYXRlcyBmb2xkZXIgYW5kIGNvcGllcyBlYWNoIGZpbGUgdG8gdGhlXG4gKiBjb3JyZXNwb25kaW5nIHBhdGggdW5kZXIge0BsaW5rIFJlcG9QYXRocy5EaXN0VGVtcGxhdGVzfSwgc28gY29uc3VtZXJzIGNhbiBjb3B5IHRoZVxuICogdGVtcGxhdGVzIGZyb20gYG5vZGVfbW9kdWxlcy9vYnNpZGlhbi1kZXYtdXRpbHMvZGlzdC90ZW1wbGF0ZXNgLiBBIHRyYWlsaW5nIGAudGVtcGxhdGVgIG9uIGEgc291cmNlXG4gKiBmaWxlIG5hbWUgaXMgc3RyaXBwZWQgaW4gdGhlIGRlc3RpbmF0aW9uIChlLmcuIGBlc2xpbnQuY29uZmlnLm10cy50ZW1wbGF0ZWAgaXMgY29waWVkIGFzXG4gKiBgZXNsaW50LmNvbmZpZy5tdHNgKSwgc28gYW4gYWN0aXZlIGNvbmZpZyB0ZW1wbGF0ZSBjYW4gbGl2ZSBpbiB0aGUgcmVwbyB1bmRlciBhIG5hbWUgdGhhdCB0aGVcbiAqIGNvcnJlc3BvbmRpbmcgdG9vbCBkb2VzIG5vdCBhdXRvLWRpc2NvdmVyLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgZmlsZXMgaGF2ZSBiZWVuIGNvcGllZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkVGVtcGxhdGVzKCk6IFByb21pc2U8dm9pZD4ge1xuICBmb3IgKGNvbnN0IGRpcmVudCBvZiBhd2FpdCByZWFkZGlyUG9zaXgoUmVwb1BhdGhzLlRlbXBsYXRlcywgeyByZWN1cnNpdmU6IHRydWUsIHdpdGhGaWxlVHlwZXM6IHRydWUgfSkpIHtcbiAgICBpZiAoIWRpcmVudC5pc0ZpbGUoKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgcGF0aCA9IHRyaW1TdGFydCh7XG4gICAgICAkc3RyaW5nOiBqb2luKGRpcmVudC5wYXJlbnRQYXRoLCBkaXJlbnQubmFtZSksXG4gICAgICBwcmVmaXg6IGAke1JlcG9QYXRocy5UZW1wbGF0ZXN9L2BcbiAgICB9KTtcbiAgICBjb25zdCBkZXN0aW5hdGlvblBhdGggPSBwYXRoLmVuZHNXaXRoKFRFTVBMQVRFX0ZJTEVfU1VGRklYKSA/IHBhdGguc2xpY2UoMCwgLVRFTVBMQVRFX0ZJTEVfU1VGRklYLmxlbmd0aCkgOiBwYXRoO1xuICAgIGF3YWl0IGNwKGpvaW4oUmVwb1BhdGhzLlRlbXBsYXRlcywgcGF0aCksIGpvaW4oUmVwb1BhdGhzLkRpc3RUZW1wbGF0ZXMsIGRlc3RpbmF0aW9uUGF0aCkpO1xuICB9XG59XG5cbmNvbnN0IFRFTVBMQVRFX0ZJTEVfU1VGRklYID0gJy50ZW1wbGF0ZSc7XG5cbmNvbnN0IE5PREVfTU9EVUxFU19TRUdNRU5UID0gJy9ub2RlX21vZHVsZXMvJztcblxuY29uc3QgU1ZFTFRFX0NIRUNLX1BBQ0tBR0VfTkFNRSA9ICdzdmVsdGUtY2hlY2snO1xuXG5jb25zdCBTVkVMVEVfRklMRV9QQVRURVJOUyA9IFtcbiAgYCR7UmVwb1BhdGhzLkFueVBhdGh9Lyouc3ZlbHRlYCxcbiAgYCR7UmVwb1BhdGhzLkFueVBhdGh9Lyouc3ZlbHRlLmpzYCxcbiAgYCR7UmVwb1BhdGhzLkFueVBhdGh9Lyouc3ZlbHRlLnRzYFxuXTtcblxuLyoqXG4gKiBgbm9kZV9tb2R1bGVzYCBtdXN0IGJlIGxpc3RlZCBleHBsaWNpdGx5OiBhIHRzY29uZmlnIHRoYXQgc2V0cyBgZXhjbHVkZWAgYXQgYWxsICoqcmVwbGFjZXMqKiBUeXBlU2NyaXB0J3NcbiAqIGRlZmF1bHQgYG5vZGVfbW9kdWxlc2AgZXhjbHVzaW9uLCBzbyBpdCBjYW5ub3QgYmUgcmVsaWVkIG9uIHRvIGtlZXAgZGVwZW5kZW5jaWVzIG91dCBvZiB0aGUgZ2xvYi5cbiAqL1xuY29uc3QgU1ZFTFRFX0ZJTEVfRVhDTFVERV9QQVRURVJOUyA9IFtcbiAgYCR7UmVwb1BhdGhzLkFueVBhdGh9LyR7UmVwb1BhdGhzLk5vZGVNb2R1bGVzfS8ke1JlcG9QYXRocy5BbnlQYXRofWAsXG4gIGAke1JlcG9QYXRocy5BbnlQYXRofS8ke1JlcG9QYXRocy5EaXN0fS8ke1JlcG9QYXRocy5BbnlQYXRofWBcbl07XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHNob3VsZEtlZXBQcm9qZWN0RmlsZX0uXG4gKi9cbmludGVyZmFjZSBTaG91bGRLZWVwUHJvamVjdEZpbGVQYXJhbXMge1xuICAvKipcbiAgICogQWJzb2x1dGUgcGF0aCBvZiB0aGUgZmlsZSB1bmRlciBjb25zaWRlcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQWJzb2x1dGUgKGNhbm9uaWNhbCkgcGF0aCBvZiB0aGUgcHJvamVjdCByb290LlxuICAgKi9cbiAgcmVhZG9ubHkgcm9vdENhbm9uaWNhbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlLXJ1bnMgdGhlIHByb2plY3QgdHlwZS1jaGVjayBpbi1tZW1vcnkgd2l0aCBgc2tpcExpYkNoZWNrOiBmYWxzZWAsIHJlcG9ydGluZyBvbmx5IGRpYWdub3N0aWNzXG4gKiB3aG9zZSBzb3VyY2UgZmlsZSBiZWxvbmdzIHRvIHRoZSBwcm9qZWN0ICh1bmRlciB0aGUgcm9vdCBmb2xkZXIsIG91dHNpZGUgYG5vZGVfbW9kdWxlc2ApLlxuICpcbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIHRoZSBwcm9qZWN0J3Mgb3duIGZpbGVzIGhhdmUgbm8gdHlwZSBlcnJvcnMsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICogQHRocm93cyBJZiB0aGUgcm9vdCBmb2xkZXIgY2Fubm90IGJlIGZvdW5kLlxuICovXG5mdW5jdGlvbiBhcmVQcm9qZWN0VHlwZXNWYWxpZCgpOiBib29sZWFuIHtcbiAgY29uc3Qgcm9vdCA9IGdldFJvb3RGb2xkZXIoKTtcblxuICBpZiAoIXJvb3QpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIHJvb3QgZm9sZGVyJyk7XG4gIH1cblxuICBjb25zdCByb290Q2Fub25pY2FsID0gdG9DYW5vbmljYWwocm9vdCk7XG4gIGNvbnN0IHsgZmlsZU5hbWVzLCBvcHRpb25zIH0gPSBwYXJzZVRzQ29uZmlnKGpvaW4ocm9vdCwgUmVwb1BhdGhzLlRzQ29uZmlnSnNvbikpO1xuXG4gIHJldHVybiBjaGVja1Byb2plY3RUeXBlcyh7XG4gICAgb3B0aW9ucyxcbiAgICByb290TmFtZXM6IGZpbGVOYW1lcyxcbiAgICBzaG91bGRLZWVwRmlsZTogKGZpbGVOYW1lKSA9PiBzaG91bGRLZWVwUHJvamVjdEZpbGUoeyBmaWxlTmFtZSwgcm9vdENhbm9uaWNhbCB9KVxuICB9KTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHByb2plY3QgZGVjbGFyZXMgYHN2ZWx0ZS1jaGVja2AuXG4gKlxuICogVGhlIGRlY2xhcmF0aW9uIGlzIHJlYWQgZnJvbSBgcGFja2FnZS5qc29uYCByYXRoZXIgdGhhbiBwcm9iZWQgaW4gYG5vZGVfbW9kdWxlcy8uYmluYCwgYmVjYXVzZVxuICoge0BsaW5rIHJlc29sdmVUb29sQ29tbWFuZH0gZGVsaWJlcmF0ZWx5IGZhbGxzIGJhY2sgdG8gdGhlIHBhY2thZ2UgbWFuYWdlcidzIGV4ZWMgZm9ybSBmb3IgdG9vbHMgdGhhdCBoYXZlXG4gKiBubyBiaW4gc2hpbSDigJQgdGhlIG9ubHkgd2F5IGEgbG9jYWxseSBpbnN0YWxsZWQgdG9vbCByZXNvbHZlcyB1bmRlciB5YXJuIFBuUC4gVHJlYXRpbmcgYSBtaXNzaW5nIHNoaW0gYXMgYVxuICogbWlzc2luZyB0b29sIHdvdWxkIHRoZXJlZm9yZSBicmVhayBQblAgcHJvamVjdHMuXG4gKlxuICogQHBhcmFtIHBhY2thZ2VKc29uIC0gVGhlIHByb2plY3QncyBwYXJzZWQgYHBhY2thZ2UuanNvbmAuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiBgc3ZlbHRlLWNoZWNrYCBpcyBkZWNsYXJlZCBhcyBhIHJlZ3VsYXIsIGRldiwgb3IgcGVlciBkZXBlbmRlbmN5LlxuICovXG5mdW5jdGlvbiBjaGVja1N2ZWx0ZUNoZWNrRGVjbGFyZWQocGFja2FnZUpzb246IFBhY2thZ2VKc29uKTogYm9vbGVhbiB7XG4gIHJldHVybiBbcGFja2FnZUpzb24uZGVwZW5kZW5jaWVzLCBwYWNrYWdlSnNvbi5kZXZEZXBlbmRlbmNpZXMsIHBhY2thZ2VKc29uLnBlZXJEZXBlbmRlbmNpZXNdXG4gICAgLnNvbWUoKGRlcGVuZGVuY2llcykgPT4gZGVwZW5kZW5jaWVzPy5bU1ZFTFRFX0NIRUNLX1BBQ0tBR0VfTkFNRV0gIT09IHVuZGVmaW5lZCk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZmlsZSBiZWxvbmdzIHRvIHRoZSBwcm9qZWN0ICh1bmRlciB0aGUgcm9vdCBmb2xkZXIsIG91dHNpZGUgYG5vZGVfbW9kdWxlc2ApLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIGZpbGUgYmVsb25ncyB0byB0aGUgcHJvamVjdC5cbiAqL1xuZnVuY3Rpb24gc2hvdWxkS2VlcFByb2plY3RGaWxlKHBhcmFtczogU2hvdWxkS2VlcFByb2plY3RGaWxlUGFyYW1zKTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgZmlsZU5hbWUsIHJvb3RDYW5vbmljYWwgfSA9IHBhcmFtcztcbiAgcmV0dXJuIGZpbGVOYW1lLnN0YXJ0c1dpdGgoYCR7cm9vdENhbm9uaWNhbH0vYCkgJiYgIWZpbGVOYW1lLmluY2x1ZGVzKE5PREVfTU9EVUxFU19TRUdN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
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idWlsZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgdG8gaGFuZGxlIHRoZSBidWlsZCBwcm9jZXNzIGZvciBzdGF0aWMgYXNzZXRzIGFuZCBjbGVhbmluZ1xuICogdGhlIGJ1aWxkIG91dHB1dCBmb2xkZXIuIEl0IGluY2x1ZGVzIGZ1bmN0aW9ucyB0byBjb3B5IHN0YXRpYyBmaWxlcyB0byB0aGUgZGlzdHJpYnV0aW9uIGZvbGRlclxuICogYW5kIHRvIHJlbW92ZSB0aGUgZXhpc3RpbmcgYnVpbGQgb3V0cHV0LlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgUGFja2FnZUpzb24sXG4gIFRzQ29uZmlnSnNvblxufSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyB0cmltU3RhcnQgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvc3RyaW5nJztcbmltcG9ydCB7XG4gIGNwLFxuICBnbG9iLFxuICBybVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcblxuaW1wb3J0IHtcbiAgY2hlY2tQcm9qZWN0VHlwZXMsXG4gIHBhcnNlVHNDb25maWcsXG4gIHRvQ2Fub25pY2FsXG59IGZyb20gJy4vY2hlY2stcHJvamVjdC10eXBlcy50cyc7XG5pbXBvcnQgeyByZWFkZGlyUG9zaXggfSBmcm9tICcuL2ZzLnRzJztcbmltcG9ydCB7IHJlYWRKc29uIH0gZnJvbSAnLi9qc29uLnRzJztcbmltcG9ydCB7XG4gIG5wbVJ1bk9wdGlvbmFsLFxuICBOcG1SdW5PcHRpb25hbFJlc3VsdFxufSBmcm9tICcuL25wbS1ydW4udHMnO1xuaW1wb3J0IHsgcmVhZFBhY2thZ2VKc29uIH0gZnJvbSAnLi9ucG0udHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVRvb2xDb21tYW5kIH0gZnJvbSAnLi9wYWNrYWdlLW1hbmFnZXIudHMnO1xuaW1wb3J0IHsgUmVwb1BhdGhzIH0gZnJvbSAnLi9yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgZ2V0Um9vdEZvbGRlcixcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi9yb290LnRzJztcblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBkaXN0cmlidXRpb24gZm9sZGVyIGFuZCBpdHMgY29udGVudHMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSBlbnRpcmUgZGlzdHJpYnV0aW9uIGZvbGRlciB0byBlbnN1cmUgYSBjbGVhbiBidWlsZCBlbnZpcm9ubWVudC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZvbGRlciBoYXMgYmVlbiByZW1vdmVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDbGVhbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcm0oUmVwb1BhdGhzLkRpc3QsIHsgZm9yY2U6IHRydWUsIHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBDb21waWxlcyB0aGUgY29kZS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlKCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoYXdhaXQgbnBtUnVuT3B0aW9uYWwoJ2J1aWxkOmNvbXBpbGU6c3ZlbHRlJykgPT09IE5wbVJ1bk9wdGlvbmFsUmVzdWx0LlNraXBwZWQpIHtcbiAgICBhd2FpdCBidWlsZENvbXBpbGVTdmVsdGUoKTtcbiAgfVxuICBpZiAoYXdhaXQgbnBtUnVuT3B0aW9uYWwoJ2J1aWxkOmNvbXBpbGU6dHlwZXNjcmlwdCcpID09PSBOcG1SdW5PcHRpb25hbFJlc3VsdC5Ta2lwcGVkKSB7XG4gICAgYXdhaXQgYnVpbGRDb21waWxlVHlwZVNjcmlwdCgpO1xuICB9XG59XG5cbi8qKlxuICogQ29tcGlsZXMgdGhlIFN2ZWx0ZSBjb2RlLlxuICpcbiAqIFRoZSBwcm9qZWN0J3MgU3ZlbHRlIGZpbGVzIGFyZSBmb3VuZCBieSBnbG9iYmluZyB0aGUgU3ZlbHRlIGV4dGVuc2lvbnMgZGlyZWN0bHkuIEdsb2JiaW5nIHRoZSB0c2NvbmZpZ1xuICogYGluY2x1ZGVgIHBhdHRlcm5zIGFuZCBmaWx0ZXJpbmcgdGhhdCBsaXN0IHdvdWxkIG5ldmVyIG1hdGNoOiBgaW5jbHVkZWAgbGlzdHMgVHlwZVNjcmlwdCBnbG9ic1xuICogKGAuL3NyYy8qKlxcLyoudHNgLCDigKYpLCBzbyBubyBgLnN2ZWx0ZWAgcGF0aCBjYW4gZXZlciBhcHBlYXIgaW4gaXQgYW5kIHRoZSBjaGVjayB3b3VsZCBhbHdheXMgYmUgc2tpcHBlZC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICogQHRocm93cyBJZiB0aGUgcHJvamVjdCBoYXMgU3ZlbHRlIGZpbGVzIGJ1dCBkb2VzIG5vdCBkZWNsYXJlIGBzdmVsdGUtY2hlY2tgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlU3ZlbHRlKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB0c0NvbmZpZ1BhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IFJlcG9QYXRocy5Uc0NvbmZpZ0pzb24gfSk7XG4gIGNvbnN0IHRzQ29uZmlnID0gYXdhaXQgcmVhZEpzb248VHNDb25maWdKc29uPih0c0NvbmZpZ1BhdGgpO1xuICBjb25zdCBzdmVsdGVGaWxlcyA9IGF3YWl0IHRvQXJyYXkoZ2xvYihTVkVMVEVfRklMRV9QQVRURVJOUywge1xuICAgIGN3ZDogcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBSZXBvUGF0aHMuQ3VycmVudEZvbGRlciB9KSxcbiAgICBleGNsdWRlOiBbLi4uU1ZFTFRFX0ZJTEVfRVhDTFVERV9QQVRURVJOUywgLi4udHNDb25maWcuZXhjbHVkZSA/PyBbXV1cbiAgfSkpO1xuXG4gIGNvbnN0IFtmaXJzdFN2ZWx0ZUZpbGVdID0gc3ZlbHRlRmlsZXM7XG5cbiAgaWYgKGZpcnN0U3ZlbHRlRmlsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZ2V0TGliRGVidWdnZXIoJ2J1aWxkOmJ1aWxkQ29tcGlsZVN2ZWx0ZScpKCdObyBTdmVsdGUgZmlsZXMgZm91bmQgaW4gdGhlIHByb2plY3QsIHNraXBwaW5nIFN2ZWx0ZSBjb21waWxhdGlvbicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKCk7XG5cbiAgaWYgKCFjaGVja1N2ZWx0ZUNoZWNrRGVjbGFyZWQocGFja2FnZUpzb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEZvdW5kIFN2ZWx0ZSBmaWxlKHMpIGluIHRoZSBwcm9qZWN0IChlLmcuICR7Zmlyc3RTdmVsdGVGaWxlfSksIGJ1dCBcXGAke1NWRUxURV9DSEVDS19QQUNLQUdFX05BTUV9XFxgIGlzIG5vdCBkZWNsYXJlZCBpbiBwYWNrYWdlLmpzb24uYFxuICAgICAgICArIGAgQWRkIFxcYCR7U1ZFTFRFX0NIRUNLX1BBQ0tBR0VfTkFNRX1cXGAgYXMgYSBkZXZEZXBlbmRlbmN5IHRvIHR5cGUtY2hlY2sgdGhlIFN2ZWx0ZSBjb2RlLmBcbiAgICApO1xuICB9XG5cbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsuLi5yZXNvbHZlVG9vbENvbW1hbmQoeyB0b29sOiBTVkVMVEVfQ0hFQ0tfUEFDS0FHRV9OQU1FIH0pLCAnLS10c2NvbmZpZycsIFJlcG9QYXRocy5Uc0NvbmZpZ0pzb25dKTtcbn1cblxuLyoqXG4gKiBDb21waWxlcyB0aGUgVHlwZVNjcmlwdCBjb2RlLlxuICpcbiAqIFRoZSBnZW5lcmFsIGB0c2NgIHBhc3MgcnVucyB3aXRoIGBza2lwTGliQ2hlY2s6IHRydWVgIChjb25maWd1cmVkIGluIGB0c2NvbmZpZy5qc29uYCkgc28gaXQgZG9lc1xuICogbm90IGZhaWwgb24gYnJva2VuIHVwc3RyZWFtIGAuZC50c2AgZmlsZXMgd2UgZG8gbm90IGNvbnRyb2wuIEFmdGVyd2FyZHMsIHtAbGluayBhcmVQcm9qZWN0VHlwZXNWYWxpZH1cbiAqIHJlLXJ1bnMgdGhlIHR5cGUtY2hlY2sgaW4tbWVtb3J5IHdpdGggYHNraXBMaWJDaGVjazogZmFsc2VgLCByZXBvcnRpbmcgb25seSBkaWFnbm9zdGljcyBmcm9tIHRoZVxuICogZmlsZXMgd2Ugb3duLCBzbyB0aGUgZGVjbGFyYXRpb25zIHdlIGF1dGhvciBhcmUgc3RpbGwgZnVsbHkgdmFsaWRhdGVkLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29kZSBjb21waWxlcyBzdWNjZXNzZnVsbHkuXG4gKiBAdGhyb3dzIElmIHRoZSBwcm9qZWN0J3Mgb3duIGRlY2xhcmF0aW9ucyBmYWlsIHZhbGlkYXRpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZENvbXBpbGVUeXBlU2NyaXB0KCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWy4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICd0c2MnIH0pLCAnLS1idWlsZCcsICctLWZvcmNlJ10pO1xuXG4gIGlmICghYXJlUHJvamVjdFR5cGVzVmFsaWQoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiB2YWxpZGF0aW9uIGZhaWxlZC4nKTtcbiAgfVxufVxuXG4vKipcbiAqIENvcGllcyBhbGwgdGVtcGxhdGUgZmlsZXMgZnJvbSB0aGUgdGVtcGxhdGVzIGZvbGRlciB0byB0aGUgYHRlbXBsYXRlc2AgZm9sZGVyIHdpdGhpbiB0aGVcbiAqIGRpc3RyaWJ1dGlvbiBmb2xkZXIuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZWN1cnNpdmVseSByZWFkcyB0aGUgY29udGVudHMgb2YgdGhlIHRlbXBsYXRlcyBmb2xkZXIgYW5kIGNvcGllcyBlYWNoIGZpbGUgdG8gdGhlXG4gKiBjb3JyZXNwb25kaW5nIHBhdGggdW5kZXIge0BsaW5rIFJlcG9QYXRocy5EaXN0VGVtcGxhdGVzfSwgc28gY29uc3VtZXJzIGNhbiBjb3B5IHRoZVxuICogdGVtcGxhdGVzIGZyb20gYG5vZGVfbW9kdWxlcy9AbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9kaXN0L3RlbXBsYXRlc2AuIEEgdHJhaWxpbmcgYC50ZW1wbGF0ZWAgb24gYSBzb3VyY2VcbiAqIGZpbGUgbmFtZSBpcyBzdHJpcHBlZCBpbiB0aGUgZGVzdGluYXRpb24gKGUuZy4gYGVzbGludC5jb25maWcubXRzLnRlbXBsYXRlYCBpcyBjb3BpZWQgYXNcbiAqIGBlc2xpbnQuY29uZmlnLm10c2ApLCBzbyBhbiBhY3RpdmUgY29uZmlnIHRlbXBsYXRlIGNhbiBsaXZlIGluIHRoZSByZXBvIHVuZGVyIGEgbmFtZSB0aGF0IHRoZVxuICogY29ycmVzcG9uZGluZyB0b29sIGRvZXMgbm90IGF1dG8tZGlzY292ZXIuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBmaWxlcyBoYXZlIGJlZW4gY29waWVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRUZW1wbGF0ZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGZvciAoY29uc3QgZGlyZW50IG9mIGF3YWl0IHJlYWRkaXJQb3NpeChSZXBvUGF0aHMuVGVtcGxhdGVzLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KSkge1xuICAgIGlmICghZGlyZW50LmlzRmlsZSgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXRoID0gdHJpbVN0YXJ0KHtcbiAgICAgICRzdHJpbmc6IGpvaW4oZGlyZW50LnBhcmVudFBhdGgsIGRpcmVudC5uYW1lKSxcbiAgICAgIHByZWZpeDogYCR7UmVwb1BhdGhzLlRlbXBsYXRlc30vYFxuICAgIH0pO1xuICAgIGNvbnN0IGRlc3RpbmF0aW9uUGF0aCA9IHBhdGguZW5kc1dpdGgoVEVNUExBVEVfRklMRV9TVUZGSVgpID8gcGF0aC5zbGljZSgwLCAtVEVNUExBVEVfRklMRV9TVUZGSVgubGVuZ3RoKSA6IHBhdGg7XG4gICAgYXdhaXQgY3Aoam9pbihSZXBvUGF0aHMuVGVtcGxhdGVzLCBwYXRoKSwgam9pbihSZXBvUGF0aHMuRGlzdFRlbXBsYXRlcywgZGVzdGluYXRpb25QYXRoKSk7XG4gIH1cbn1cblxuY29uc3QgVEVNUExBVEVfRklMRV9TVUZGSVggPSAnLnRlbXBsYXRlJztcblxuY29uc3QgTk9ERV9NT0RVTEVTX1NFR01FTlQgPSAnL25vZGVfbW9kdWxlcy8nO1xuXG5jb25zdCBTVkVMVEVfQ0hFQ0tfUEFDS0FHRV9OQU1FID0gJ3N2ZWx0ZS1jaGVjayc7XG5cbmNvbnN0IFNWRUxURV9GSUxFX1BBVFRFUk5TID0gW1xuICBgJHtSZXBvUGF0aHMuQW55UGF0aH0vKi5zdmVsdGVgLFxuICBgJHtSZXBvUGF0aHMuQW55UGF0aH0vKi5zdmVsdGUuanNgLFxuICBgJHtSZXBvUGF0aHMuQW55UGF0aH0vKi5zdmVsdGUudHNgXG5dO1xuXG4vKipcbiAqIGBub2RlX21vZHVsZXNgIG11c3QgYmUgbGlzdGVkIGV4cGxpY2l0bHk6IGEgdHNjb25maWcgdGhhdCBzZXRzIGBleGNsdWRlYCBhdCBhbGwgKipyZXBsYWNlcyoqIFR5cGVTY3JpcHQnc1xuICogZGVmYXVsdCBgbm9kZV9tb2R1bGVzYCBleGNsdXNpb24sIHNvIGl0IGNhbm5vdCBiZSByZWxpZWQgb24gdG8ga2VlcCBkZXBlbmRlbmNpZXMgb3V0IG9mIHRoZSBnbG9iLlxuICovXG5jb25zdCBTVkVMVEVfRklMRV9FWENMVURFX1BBVFRFUk5TID0gW1xuICBgJHtSZXBvUGF0aHMuQW55UGF0aH0vJHtSZXBvUGF0aHMuTm9kZU1vZHVsZXN9LyR7UmVwb1BhdGhzLkFueVBhdGh9YCxcbiAgYCR7UmVwb1BhdGhzLkFueVBhdGh9LyR7UmVwb1BhdGhzLkRpc3R9LyR7UmVwb1BhdGhzLkFueVBhdGh9YFxuXTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc2hvdWxkS2VlcFByb2plY3RGaWxlfS5cbiAqL1xuaW50ZXJmYWNlIFNob3VsZEtlZXBQcm9qZWN0RmlsZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBBYnNvbHV0ZSBwYXRoIG9mIHRoZSBmaWxlIHVuZGVyIGNvbnNpZGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBYnNvbHV0ZSAoY2Fub25pY2FsKSBwYXRoIG9mIHRoZSBwcm9qZWN0IHJvb3QuXG4gICAqL1xuICByZWFkb25seSByb290Q2Fub25pY2FsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmUtcnVucyB0aGUgcHJvamVjdCB0eXBlLWNoZWNrIGluLW1lbW9yeSB3aXRoIGBza2lwTGliQ2hlY2s6IGZhbHNlYCwgcmVwb3J0aW5nIG9ubHkgZGlhZ25vc3RpY3NcbiAqIHdob3NlIHNvdXJjZSBmaWxlIGJlbG9uZ3MgdG8gdGhlIHByb2plY3QgKHVuZGVyIHRoZSByb290IGZvbGRlciwgb3V0c2lkZSBgbm9kZV9tb2R1bGVzYCkuXG4gKlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIHByb2plY3QncyBvd24gZmlsZXMgaGF2ZSBubyB0eXBlIGVycm9ycywgYGZhbHNlYCBvdGhlcndpc2UuXG4gKiBAdGhyb3dzIElmIHRoZSByb290IGZvbGRlciBjYW5ub3QgYmUgZm91bmQuXG4gKi9cbmZ1bmN0aW9uIGFyZVByb2plY3RUeXBlc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICBjb25zdCByb290ID0gZ2V0Um9vdEZvbGRlcigpO1xuXG4gIGlmICghcm9vdCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgcm9vdCBmb2xkZXInKTtcbiAgfVxuXG4gIGNvbnN0IHJvb3RDYW5vbmljYWwgPSB0b0Nhbm9uaWNhbChyb290KTtcbiAgY29uc3QgeyBmaWxlTmFtZXMsIG9wdGlvbnMgfSA9IHBhcnNlVHNDb25maWcoam9pbihyb290LCBSZXBvUGF0aHMuVHNDb25maWdKc29uKSk7XG5cbiAgcmV0dXJuIGNoZWNrUHJvamVjdFR5cGVzKHtcbiAgICBvcHRpb25zLFxuICAgIHJvb3ROYW1lczogZmlsZU5hbWVzLFxuICAgIHNob3VsZEtlZXBGaWxlOiAoZmlsZU5hbWUpID0+IHNob3VsZEtlZXBQcm9qZWN0RmlsZSh7IGZpbGVOYW1lLCByb290Q2Fub25pY2FsIH0pXG4gIH0pO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciB0aGUgcHJvamVjdCBkZWNsYXJlcyBgc3ZlbHRlLWNoZWNrYC5cbiAqXG4gKiBUaGUgZGVjbGFyYXRpb24gaXMgcmVhZCBmcm9tIGBwYWNrYWdlLmpzb25gIHJhdGhlciB0aGFuIHByb2JlZCBpbiBgbm9kZV9tb2R1bGVzLy5iaW5gLCBiZWNhdXNlXG4gKiB7QGxpbmsgcmVzb2x2ZVRvb2xDb21tYW5kfSBkZWxpYmVyYXRlbHkgZmFsbHMgYmFjayB0byB0aGUgcGFja2FnZSBtYW5hZ2VyJ3MgZXhlYyBmb3JtIGZvciB0b29scyB0aGF0IGhhdmVcbiAqIG5vIGJpbiBzaGltIOKAlCB0aGUgb25seSB3YXkgYSBsb2NhbGx5IGluc3RhbGxlZCB0b29sIHJlc29sdmVzIHVuZGVyIHlhcm4gUG5QLiBUcmVhdGluZyBhIG1pc3Npbmcgc2hpbSBhcyBhXG4gKiBtaXNzaW5nIHRvb2wgd291bGQgdGhlcmVmb3JlIGJyZWFrIFBuUCBwcm9qZWN0cy5cbiAqXG4gKiBAcGFyYW0gcGFja2FnZUpzb24gLSBUaGUgcHJvamVjdCdzIHBhcnNlZCBgcGFja2FnZS5qc29uYC5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIGBzdmVsdGUtY2hlY2tgIGlzIGRlY2xhcmVkIGFzIGEgcmVndWxhciwgZGV2LCBvciBwZWVyIGRlcGVuZGVuY3kuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrU3ZlbHRlQ2hlY2tEZWNsYXJlZChwYWNrYWdlSnNvbjogUGFja2FnZUpzb24pOiBib29sZWFuIHtcbiAgcmV0dXJuIFtwYWNrYWdlSnNvbi5kZXBlbmRlbmNpZXMsIHBhY2thZ2VKc29uLmRldkRlcGVuZGVuY2llcywgcGFja2FnZUpzb24ucGVlckRlcGVuZGVuY2llc11cbiAgICAuc29tZSgoZGVwZW5kZW5jaWVzKSA9PiBkZXBlbmRlbmNpZXM/LltTVkVMVEVfQ0hFQ0tfUEFDS0FHRV9OQU1FXSAhPT0gdW5kZWZpbmVkKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBmaWxlIGJlbG9uZ3MgdG8gdGhlIHByb2plY3QgKHVuZGVyIHRoZSByb290IGZvbGRlciwgb3V0c2lkZSBgbm9kZV9tb2R1bGVzYCkuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgZmlsZSBiZWxvbmdzIHRvIHRoZSBwcm9qZWN0LlxuICovXG5mdW5jdGlvbiBzaG91bGRLZWVwUHJvamVjdEZpbGUocGFyYW1zOiBTaG91bGRLZWVwUHJvamVjdEZpbGVQYXJhbXMpOiBib29sZWFuIHtcbiAgY29uc3QgeyBmaWxlTmFtZSwgcm9vdENhbm9uaWNhbCB9ID0gcGFyYW1zO1xuICByZXR1cm4gZmlsZU5hbWUuc3RhcnRzV2l0aChgJHtyb290Q2Fub25pY2FsfS9gKSAmJiAhZmlsZU5hbWUuaW5jbHVkZXMoTk9E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
@@ -18,7 +18,7 @@ import type { AsyncRule, Plugin, RuleOutcome } from '@commitlint/types';
18
18
  /**
19
19
  * The name the rule is registered under.
20
20
  */
21
- export declare const NO_FORBIDDEN_PATTERNS_RULE_NAME = "obsidian-dev-utils/no-forbidden-patterns";
21
+ export declare const NO_FORBIDDEN_PATTERNS_RULE_NAME = "typescript-dev-toolkit/no-forbidden-patterns";
22
22
  type Commit = Parameters<AsyncRule>[0];
23
23
  /**
24
24
  * Checks the whole commit message — header, body and footer — against the forbidden patterns.
@@ -8,7 +8,7 @@ import {
8
8
  FORBIDDEN_PATTERNS_FILE_ENV_VARIABLE,
9
9
  readForbiddenPatterns
10
10
  } from "./forbidden-patterns.mjs";
11
- const NO_FORBIDDEN_PATTERNS_RULE_NAME = "obsidian-dev-utils/no-forbidden-patterns";
11
+ const NO_FORBIDDEN_PATTERNS_RULE_NAME = "typescript-dev-toolkit/no-forbidden-patterns";
12
12
  async function noForbiddenPatternsRule(commit) {
13
13
  const patterns = await readForbiddenPatterns();
14
14
  const text = [commit.header, commit.body, commit.footer].filter((part) => part !== null).join("\n");
@@ -30,4 +30,4 @@ export {
30
30
  forbiddenPatternsPlugin,
31
31
  noForbiddenPatternsRule
32
32
  };
33
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQSBjb21taXRsaW50IHJ1bGUgdGhhdCByZWZ1c2VzIGEgY29tbWl0IG1lc3NhZ2UgbWF0Y2hpbmcgYSBwYXR0ZXJuIGZyb20gdGhlIFVOUFVCTElTSEVEIGZvcmJpZGRlbi1wYXR0ZXJuc1xuICogbGlzdCBcdTIwMTQgaW4gaXRzIGhlYWRlciwgaXRzIGJvZHkgb3IgaXRzIGZvb3Rlci5cbiAqXG4gKiBUaGUgcmVsZWFzZSBhbHJlYWR5IHJlZnVzZXMgYSBjaGFuZ2Vsb2cgc2VjdGlvbiBjYXJyeWluZyBzdWNoIGEgcGF0dGVybiwgYnV0IGEgY2hhbmdlbG9nIHNlY3Rpb24gaG9sZHMgY29tbWl0XG4gKiBTVUJKRUNUUyBvbmx5LCBzbyBhIGJvZHkgbGluZSB3YXMgbmV2ZXIgc2Nhbm5lZCBieSBhbnl0aGluZzogaXQgcmVhY2hlZCB0aGUgcHVibGljIGhpc3RvcnkgdGhlIG1vbWVudCB0aGVcbiAqIGNvbW1pdCB3YXMgcHVzaGVkLCBhbmQgYSBwdXNoZWQgY29tbWl0IHdpdGggZGVzY2VuZGFudHMgY2Fubm90IGJlIGNsZWFuZWQgd2l0aG91dCByZXdyaXRpbmcgcHVibGlzaGVkIGhpc3RvcnkuXG4gKiBUaGUgY29tbWl0LW1zZyBob29rIGlzIHRoZSBvbmUgcG9pbnQgd2hlcmUgYSBib2R5IGlzIGNoZWNrZWQgYmVmb3JlIGl0IGV4aXN0cyBhbnl3aGVyZSBlbHNlLlxuICpcbiAqIFRoZSBsaXN0IGNvbWVzIGZyb20gdGhlIHNhbWUgcGxhY2UgYXMgdGhlIHJlbGVhc2UnczogdGhlIGZpbGUgbmFtZWQgYnkgdGhlIGBGT1JCSURERU5fUEFUVEVSTlNfRklMRWBcbiAqIGVudmlyb25tZW50IHZhcmlhYmxlIChzZWUgYGZvcmJpZGRlbi1wYXR0ZXJucy50c2ApLiBUaGUgcnVsZSBwYXNzZXMgd2hlbiBub3RoaW5nIGlzIGNvbmZpZ3VyZWQsIHNvIGEgY29uc3VtZXJcbiAqIHdobyBoYXMgbm90IHNldCBpdCBzZWVzIG5vIGNoYW5nZSBhdCBhbGwuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBc3luY1J1bGUsXG4gIFBsdWdpbixcbiAgUnVsZU91dGNvbWVcbn0gZnJvbSAnQGNvbW1pdGxpbnQvdHlwZXMnO1xuXG5pbXBvcnQge1xuICBmaW5kRm9yYmlkZGVuUGF0dGVybk1hdGNoZXMsXG4gIEZPUkJJRERFTl9QQVRURVJOU19GSUxFX0VOVl9WQVJJQUJMRSxcbiAgcmVhZEZvcmJpZGRlblBhdHRlcm5zXG59IGZyb20gJy4vZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcblxuLyoqXG4gKiBUaGUgbmFtZSB0aGUgcnVsZSBpcyByZWdpc3RlcmVkIHVuZGVyLlxuICovXG5leHBvcnQgY29uc3QgTk9fRk9SQklEREVOX1BBVFRFUk5TX1JVTEVfTkFNRSA9ICdvYnNpZGlhbi1kZXYtdXRpbHMvbm8tZm9yYmlkZGVuLXBhdHRlcm5zJztcblxudHlwZSBDb21taXQgPSBQYXJhbWV0ZXJzPEFzeW5jUnVsZT5bMF07XG5cbi8qKlxuICogQ2hlY2tzIHRoZSB3aG9sZSBjb21taXQgbWVzc2FnZSBcdTIwMTQgaGVhZGVyLCBib2R5IGFuZCBmb290ZXIgXHUyMDE0IGFnYWluc3QgdGhlIGZvcmJpZGRlbiBwYXR0ZXJucy5cbiAqXG4gKiBPbmx5IHRoZSBgYWx3YXlzYCBjb25kaXRpb24gaXMgbWVhbmluZ2Z1bDogYG5ldmVyYCB3b3VsZCByZXF1aXJlIGV2ZXJ5IGxpbmUgdG8gY2FycnkgYSBmb3JiaWRkZW4gcGF0dGVybiwgc29cbiAqIGl0IGlzIHRyZWF0ZWQgdGhlIHNhbWUgd2F5IHJhdGhlciB0aGFuIGludmVydGVkLlxuICpcbiAqIEBwYXJhbSBjb21taXQgLSBUaGUgcGFyc2VkIGNvbW1pdC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJ1bGUgb3V0Y29tZSwgbmFtaW5nIGVhY2ggb2ZmZW5kaW5nIGxpbmUgYW5kIHdoYXQgbWF0Y2hlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG5vRm9yYmlkZGVuUGF0dGVybnNSdWxlKGNvbW1pdDogQ29tbWl0KTogUHJvbWlzZTxSdWxlT3V0Y29tZT4ge1xuICBjb25zdCBwYXR0ZXJucyA9IGF3YWl0IHJlYWRGb3JiaWRkZW5QYXR0ZXJucygpO1xuICBjb25zdCB0ZXh0ID0gW2NvbW1pdC5oZWFkZXIsIGNvbW1pdC5ib2R5LCBjb21taXQuZm9vdGVyXS5maWx0ZXIoKHBhcnQpID0+IHBhcnQgIT09IG51bGwpLmpvaW4oJ1xcbicpO1xuICBjb25zdCBtYXRjaGVzID0gZmluZEZvcmJpZGRlblBhdHRlcm5NYXRjaGVzKHRleHQsIHBhdHRlcm5zKTtcblxuICBpZiAobWF0Y2hlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW3RydWVdO1xuICB9XG5cbiAgY29uc3Qgb2ZmZW5kaW5nTGluZXMgPSBtYXRjaGVzLm1hcCgoeyBsaW5lLCBtYXRjaCB9KSA9PiBgJHtsaW5lfSAgICA8LSAke21hdGNofWApLmpvaW4oJ1xcbicpO1xuICByZXR1cm4gW2ZhbHNlLCBgdGhlIGNvbW1pdCBtZXNzYWdlIG1hdGNoZXMgYSBwYXR0ZXJuIGZyb20gdGhlIGZpbGUgJHtGT1JCSURERU5fUEFUVEVSTlNfRklMRV9FTlZfVkFSSUFCTEV9IG5hbWVzOlxcbiR7b2ZmZW5kaW5nTGluZXN9YF07XG59XG5cbi8qKlxuICogVGhlIGNvbW1pdGxpbnQgcGx1Z2luIGNhcnJ5aW5nIHtAbGluayBub0ZvcmJpZGRlblBhdHRlcm5zUnVsZX0uXG4gKi9cbmV4cG9ydCBjb25zdCBmb3JiaWRkZW5QYXR0ZXJuc1BsdWdpbjogUGx1Z2luID0ge1xuICBydWxlczoge1xuICAgIFtOT19GT1JCSURERU5fUEFUVEVSTlNfUlVMRV9OQU1FXTogbm9Gb3JiaWRkZW5QYXR0ZXJuc1J1bGVcbiAgfVxufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBc0JBO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUtBLE1BQU0sa0NBQWtDO0FBYS9DLGVBQXNCLHdCQUF3QixRQUFzQztBQUNsRixRQUFNLFdBQVcsTUFBTSxzQkFBc0I7QUFDN0MsUUFBTSxPQUFPLENBQUMsT0FBTyxRQUFRLE9BQU8sTUFBTSxPQUFPLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUyxTQUFTLElBQUksRUFBRSxLQUFLLElBQUk7QUFDbEcsUUFBTSxVQUFVLDRCQUE0QixNQUFNLFFBQVE7QUFFMUQsTUFBSSxRQUFRLFdBQVcsR0FBRztBQUN4QixXQUFPLENBQUMsSUFBSTtBQUFBLEVBQ2Q7QUFFQSxRQUFNLGlCQUFpQixRQUFRLElBQUksQ0FBQyxFQUFFLE1BQU0sTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEtBQUssRUFBRSxFQUFFLEtBQUssSUFBSTtBQUMzRixTQUFPLENBQUMsT0FBTyxzREFBc0Qsb0NBQW9DO0FBQUEsRUFBWSxjQUFjLEVBQUU7QUFDdkk7QUFLTyxNQUFNLDBCQUFrQztBQUFBLEVBQzdDLE9BQU87QUFBQSxJQUNMLENBQUMsK0JBQStCLEdBQUc7QUFBQSxFQUNyQztBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
33
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQSBjb21taXRsaW50IHJ1bGUgdGhhdCByZWZ1c2VzIGEgY29tbWl0IG1lc3NhZ2UgbWF0Y2hpbmcgYSBwYXR0ZXJuIGZyb20gdGhlIFVOUFVCTElTSEVEIGZvcmJpZGRlbi1wYXR0ZXJuc1xuICogbGlzdCBcdTIwMTQgaW4gaXRzIGhlYWRlciwgaXRzIGJvZHkgb3IgaXRzIGZvb3Rlci5cbiAqXG4gKiBUaGUgcmVsZWFzZSBhbHJlYWR5IHJlZnVzZXMgYSBjaGFuZ2Vsb2cgc2VjdGlvbiBjYXJyeWluZyBzdWNoIGEgcGF0dGVybiwgYnV0IGEgY2hhbmdlbG9nIHNlY3Rpb24gaG9sZHMgY29tbWl0XG4gKiBTVUJKRUNUUyBvbmx5LCBzbyBhIGJvZHkgbGluZSB3YXMgbmV2ZXIgc2Nhbm5lZCBieSBhbnl0aGluZzogaXQgcmVhY2hlZCB0aGUgcHVibGljIGhpc3RvcnkgdGhlIG1vbWVudCB0aGVcbiAqIGNvbW1pdCB3YXMgcHVzaGVkLCBhbmQgYSBwdXNoZWQgY29tbWl0IHdpdGggZGVzY2VuZGFudHMgY2Fubm90IGJlIGNsZWFuZWQgd2l0aG91dCByZXdyaXRpbmcgcHVibGlzaGVkIGhpc3RvcnkuXG4gKiBUaGUgY29tbWl0LW1zZyBob29rIGlzIHRoZSBvbmUgcG9pbnQgd2hlcmUgYSBib2R5IGlzIGNoZWNrZWQgYmVmb3JlIGl0IGV4aXN0cyBhbnl3aGVyZSBlbHNlLlxuICpcbiAqIFRoZSBsaXN0IGNvbWVzIGZyb20gdGhlIHNhbWUgcGxhY2UgYXMgdGhlIHJlbGVhc2UnczogdGhlIGZpbGUgbmFtZWQgYnkgdGhlIGBGT1JCSURERU5fUEFUVEVSTlNfRklMRWBcbiAqIGVudmlyb25tZW50IHZhcmlhYmxlIChzZWUgYGZvcmJpZGRlbi1wYXR0ZXJucy50c2ApLiBUaGUgcnVsZSBwYXNzZXMgd2hlbiBub3RoaW5nIGlzIGNvbmZpZ3VyZWQsIHNvIGEgY29uc3VtZXJcbiAqIHdobyBoYXMgbm90IHNldCBpdCBzZWVzIG5vIGNoYW5nZSBhdCBhbGwuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBc3luY1J1bGUsXG4gIFBsdWdpbixcbiAgUnVsZU91dGNvbWVcbn0gZnJvbSAnQGNvbW1pdGxpbnQvdHlwZXMnO1xuXG5pbXBvcnQge1xuICBmaW5kRm9yYmlkZGVuUGF0dGVybk1hdGNoZXMsXG4gIEZPUkJJRERFTl9QQVRURVJOU19GSUxFX0VOVl9WQVJJQUJMRSxcbiAgcmVhZEZvcmJpZGRlblBhdHRlcm5zXG59IGZyb20gJy4vZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcblxuLyoqXG4gKiBUaGUgbmFtZSB0aGUgcnVsZSBpcyByZWdpc3RlcmVkIHVuZGVyLlxuICovXG5leHBvcnQgY29uc3QgTk9fRk9SQklEREVOX1BBVFRFUk5TX1JVTEVfTkFNRSA9ICd0eXBlc2NyaXB0LWRldi10b29sa2l0L25vLWZvcmJpZGRlbi1wYXR0ZXJucyc7XG5cbnR5cGUgQ29tbWl0ID0gUGFyYW1ldGVyczxBc3luY1J1bGU+WzBdO1xuXG4vKipcbiAqIENoZWNrcyB0aGUgd2hvbGUgY29tbWl0IG1lc3NhZ2UgXHUyMDE0IGhlYWRlciwgYm9keSBhbmQgZm9vdGVyIFx1MjAxNCBhZ2FpbnN0IHRoZSBmb3JiaWRkZW4gcGF0dGVybnMuXG4gKlxuICogT25seSB0aGUgYGFsd2F5c2AgY29uZGl0aW9uIGlzIG1lYW5pbmdmdWw6IGBuZXZlcmAgd291bGQgcmVxdWlyZSBldmVyeSBsaW5lIHRvIGNhcnJ5IGEgZm9yYmlkZGVuIHBhdHRlcm4sIHNvXG4gKiBpdCBpcyB0cmVhdGVkIHRoZSBzYW1lIHdheSByYXRoZXIgdGhhbiBpbnZlcnRlZC5cbiAqXG4gKiBAcGFyYW0gY29tbWl0IC0gVGhlIHBhcnNlZCBjb21taXQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBydWxlIG91dGNvbWUsIG5hbWluZyBlYWNoIG9mZmVuZGluZyBsaW5lIGFuZCB3aGF0IG1hdGNoZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBub0ZvcmJpZGRlblBhdHRlcm5zUnVsZShjb21taXQ6IENvbW1pdCk6IFByb21pc2U8UnVsZU91dGNvbWU+IHtcbiAgY29uc3QgcGF0dGVybnMgPSBhd2FpdCByZWFkRm9yYmlkZGVuUGF0dGVybnMoKTtcbiAgY29uc3QgdGV4dCA9IFtjb21taXQuaGVhZGVyLCBjb21taXQuYm9keSwgY29tbWl0LmZvb3Rlcl0uZmlsdGVyKChwYXJ0KSA9PiBwYXJ0ICE9PSBudWxsKS5qb2luKCdcXG4nKTtcbiAgY29uc3QgbWF0Y2hlcyA9IGZpbmRGb3JiaWRkZW5QYXR0ZXJuTWF0Y2hlcyh0ZXh0LCBwYXR0ZXJucyk7XG5cbiAgaWYgKG1hdGNoZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFt0cnVlXTtcbiAgfVxuXG4gIGNvbnN0IG9mZmVuZGluZ0xpbmVzID0gbWF0Y2hlcy5tYXAoKHsgbGluZSwgbWF0Y2ggfSkgPT4gYCR7bGluZX0gICAgPC0gJHttYXRjaH1gKS5qb2luKCdcXG4nKTtcbiAgcmV0dXJuIFtmYWxzZSwgYHRoZSBjb21taXQgbWVzc2FnZSBtYXRjaGVzIGEgcGF0dGVybiBmcm9tIHRoZSBmaWxlICR7Rk9SQklEREVOX1BBVFRFUk5TX0ZJTEVfRU5WX1ZBUklBQkxFfSBuYW1lczpcXG4ke29mZmVuZGluZ0xpbmVzfWBdO1xufVxuXG4vKipcbiAqIFRoZSBjb21taXRsaW50IHBsdWdpbiBjYXJyeWluZyB7QGxpbmsgbm9Gb3JiaWRkZW5QYXR0ZXJuc1J1bGV9LlxuICovXG5leHBvcnQgY29uc3QgZm9yYmlkZGVuUGF0dGVybnNQbHVnaW46IFBsdWdpbiA9IHtcbiAgcnVsZXM6IHtcbiAgICBbTk9fRk9SQklEREVOX1BBVFRFUk5TX1JVTEVfTkFNRV06IG5vRm9yYmlkZGVuUGF0dGVybnNSdWxlXG4gIH1cbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQXNCQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFLQSxNQUFNLGtDQUFrQztBQWEvQyxlQUFzQix3QkFBd0IsUUFBc0M7QUFDbEYsUUFBTSxXQUFXLE1BQU0sc0JBQXNCO0FBQzdDLFFBQU0sT0FBTyxDQUFDLE9BQU8sUUFBUSxPQUFPLE1BQU0sT0FBTyxNQUFNLEVBQUUsT0FBTyxDQUFDLFNBQVMsU0FBUyxJQUFJLEVBQUUsS0FBSyxJQUFJO0FBQ2xHLFFBQU0sVUFBVSw0QkFBNEIsTUFBTSxRQUFRO0FBRTFELE1BQUksUUFBUSxXQUFXLEdBQUc7QUFDeEIsV0FBTyxDQUFDLElBQUk7QUFBQSxFQUNkO0FBRUEsUUFBTSxpQkFBaUIsUUFBUSxJQUFJLENBQUMsRUFBRSxNQUFNLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxLQUFLLEVBQUUsRUFBRSxLQUFLLElBQUk7QUFDM0YsU0FBTyxDQUFDLE9BQU8sc0RBQXNELG9DQUFvQztBQUFBLEVBQVksY0FBYyxFQUFFO0FBQ3ZJO0FBS08sTUFBTSwwQkFBa0M7QUFBQSxFQUM3QyxPQUFPO0FBQUEsSUFDTCxDQUFDLCtCQUErQixHQUFHO0FBQUEsRUFDckM7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -21,7 +21,7 @@ import type { AsyncRule, Plugin, RuleOutcome } from '@commitlint/types';
21
21
  /**
22
22
  * The name the rule is registered under.
23
23
  */
24
- export declare const SPELLCHECK_HEADER_RULE_NAME = "obsidian-dev-utils/spellcheck-header";
24
+ export declare const SPELLCHECK_HEADER_RULE_NAME = "typescript-dev-toolkit/spellcheck-header";
25
25
  type Commit = Parameters<AsyncRule>[0];
26
26
  /**
27
27
  * Spellchecks the commit header as the changelog bullet it will become.
@@ -7,7 +7,7 @@ import { spellcheckContent } from "./linters/cspell-content.mjs";
7
7
  import { readPackageJson } from "./npm.mjs";
8
8
  import { RepoPaths } from "./repo-paths.mjs";
9
9
  import { resolvePathFromRootSafe } from "./root.mjs";
10
- const SPELLCHECK_HEADER_RULE_NAME = "obsidian-dev-utils/spellcheck-header";
10
+ const SPELLCHECK_HEADER_RULE_NAME = "typescript-dev-toolkit/spellcheck-header";
11
11
  const SPELLCHECK_SCRIPT_NAME = "spellcheck";
12
12
  async function spellcheckHeaderRule(commit) {
13
13
  if (!commit.header) {
@@ -42,4 +42,4 @@ export {
42
42
  spellcheckHeaderPlugin,
43
43
  spellcheckHeaderRule
44
44
  };
45
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1pdGxpbnQtc3BlbGxjaGVjay1oZWFkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBBIGNvbW1pdGxpbnQgcnVsZSB0aGF0IHNwZWxsY2hlY2tzIGEgY29tbWl0IEhFQURFUiB3aXRoIHRoZSBwcm9qZWN0J3Mgb3duIGBzcGVsbGNoZWNrYCBjb25maWd1cmF0aW9uLlxuICpcbiAqIFRoZSBoZWFkZXIgaXMgdGhlIG9uZSBwYXJ0IG9mIGEgY29tbWl0IG1lc3NhZ2UgdGhhdCBzaGlwcyB2ZXJiYXRpbTogYSByZWxlYXNlIHR1cm5zIGV2ZXJ5IGNvbW1pdCBzdWJqZWN0XG4gKiBzaW5jZSB0aGUgbGFzdCB0YWcgaW50byBhIGAtIDxzdWJqZWN0PmAgYnVsbGV0IG9mIHRoZSBuZXcgYENIQU5HRUxPRy5tZGAgc2VjdGlvbiwgYW5kIHNwZWxsY2hlY2tzIHRoYXRcbiAqIHNlY3Rpb24gYmVmb3JlIHdyaXRpbmcgaXQuIFRoYXQgY2hlY2sgd29ya3MsIGJ1dCBpdCBydW5zIGF0IHJlbGVhc2UgdGltZSwgYWZ0ZXIgdGhlIHdob2xlIHByZWZsaWdodCBnYXRlLFxuICogYW5kIHdlZWtzIGFmdGVyIHRoZSBzdWJqZWN0IHdhcyBwdXNoZWQgdG8gdGhlIGRlZmF1bHQgYnJhbmNoLiBBdCB0aGF0IHBvaW50IHRoZSBvbmx5IGZpeGVzIGFyZSByZXdyaXRpbmdcbiAqIHB1Ymxpc2hlZCBoaXN0b3J5IG9yIHN1cHBseWluZyB0aGUgcmVsZWFzZSBub3RlcyBieSBoYW5kLiBUaGUgY29tbWl0LW1zZyBob29rIGlzIHRoZSBsYXN0IHBvaW50IGF0IHdoaWNoXG4gKiB0aGUgd29yZCBjYW4gc3RpbGwgYmUgY2hhbmdlZCBmb3IgZnJlZS5cbiAqXG4gKiBUaGUgaGVhZGVyIGlzIGNoZWNrZWQgQVMgdGhlIGJ1bGxldCBpdCB3aWxsIGJlY29tZSwgYXR0cmlidXRlZCB0byBgQ0hBTkdFTE9HLm1kYCwgc28gdGhlIHZlcmRpY3QgaXMgdGhlIG9uZVxuICogdGhlIHJlbGVhc2Ugd291bGQgZ2l2ZTogdGhlIHNhbWUgYGNzcGVsbGAgY29uZmlndXJhdGlvbiwgdGhlIHNhbWUgYHdvcmRzYCwgdGhlIHNhbWUgYGlnbm9yZVBhdGhzYC4gQW5kIGl0XG4gKiBydW5zIG9ubHkgd2hlcmUgdGhlIHByb2plY3QgZGVmaW5lcyBhIGBzcGVsbGNoZWNrYCBzY3JpcHQsIHdoaWNoIGlzIHRoZSBjb25kaXRpb24gdGhlIHJlbGVhc2UgYXBwbGllcyB0b28uXG4gKiBBIHByb2plY3Qgd2l0aCBubyBzcGVsbGluZyBjb25maWd1cmF0aW9uIHdvdWxkIG90aGVyd2lzZSBoYXZlIGl0cyBjb21taXRzIGp1ZGdlZCBhZ2FpbnN0IHRoZSBzdG9ja1xuICogZGljdGlvbmFyaWVzIGFsb25lLCBhbmQgcmVmdXNlZCBvdmVyIGl0cyBvd24gbmFtZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFzeW5jUnVsZSxcbiAgUGx1Z2luLFxuICBSdWxlT3V0Y29tZVxufSBmcm9tICdAY29tbWl0bGludC90eXBlcyc7XG5cbmltcG9ydCB7IHNwZWxsY2hlY2tDb250ZW50IH0gZnJvbSAnLi9saW50ZXJzL2NzcGVsbC1jb250ZW50LnRzJztcbmltcG9ydCB7IHJlYWRQYWNrYWdlSnNvbiB9IGZyb20gJy4vbnBtLnRzJztcbmltcG9ydCB7IFJlcG9QYXRocyB9IGZyb20gJy4vcmVwby1wYXRocy50cyc7XG5pbXBvcnQgeyByZXNvbHZlUGF0aEZyb21Sb290U2FmZSB9IGZyb20gJy4vcm9vdC50cyc7XG5cbi8qKlxuICogVGhlIG5hbWUgdGhlIHJ1bGUgaXMgcmVnaXN0ZXJlZCB1bmRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IFNQRUxMQ0hFQ0tfSEVBREVSX1JVTEVfTkFNRSA9ICdvYnNpZGlhbi1kZXYtdXRpbHMvc3BlbGxjaGVjay1oZWFkZXInO1xuXG4vKipcbiAqIFRoZSBucG0gc2NyaXB0IHdob3NlIHByZXNlbmNlIG9wdHMgYSBwcm9qZWN0IGludG8gdGhlIGNoZWNrLlxuICovXG5jb25zdCBTUEVMTENIRUNLX1NDUklQVF9OQU1FID0gJ3NwZWxsY2hlY2snO1xuXG50eXBlIENvbW1pdCA9IFBhcmFtZXRlcnM8QXN5bmNSdWxlPlswXTtcblxuLyoqXG4gKiBTcGVsbGNoZWNrcyB0aGUgY29tbWl0IGhlYWRlciBhcyB0aGUgY2hhbmdlbG9nIGJ1bGxldCBpdCB3aWxsIGJlY29tZS5cbiAqXG4gKiBPbmx5IHRoZSBgYWx3YXlzYCBjb25kaXRpb24gaXMgbWVhbmluZ2Z1bDogYG5ldmVyYCB3b3VsZCByZXF1aXJlIHRoZSBoZWFkZXIgdG8gYmUgbWlzc3BlbGxlZCwgc28gaXQgaXNcbiAqIHRyZWF0ZWQgdGhlIHNhbWUgd2F5IHJhdGhlciB0aGFuIGludmVydGVkLlxuICpcbiAqIEBwYXJhbSBjb21taXQgLSBUaGUgcGFyc2VkIGNvbW1pdC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJ1bGUgb3V0Y29tZSwgbmFtaW5nIGVhY2ggdW5rbm93biB3b3JkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3BlbGxjaGVja0hlYWRlclJ1bGUoY29tbWl0OiBDb21taXQpOiBQcm9taXNlPFJ1bGVPdXRjb21lPiB7XG4gIGlmICghY29tbWl0LmhlYWRlcikge1xuICAgIHJldHVybiBbdHJ1ZV07XG4gIH1cblxuICBjb25zdCBwYWNrYWdlSnNvbiA9IGF3YWl0IHJlYWRQYWNrYWdlSnNvbigpO1xuICBpZiAoIU9iamVjdC5rZXlzKHBhY2thZ2VKc29uLnNjcmlwdHMgPz8ge30pLmluY2x1ZGVzKFNQRUxMQ0hFQ0tfU0NSSVBUX05BTUUpKSB7XG4gICAgcmV0dXJuIFt0cnVlXTtcbiAgfVxuXG4gIGNvbnN0IGZpbmRpbmdzID0gYXdhaXQgc3BlbGxjaGVja0NvbnRlbnQoe1xuICAgIGNvbnRlbnQ6IGAtICR7Y29tbWl0LmhlYWRlcn1cXG5gLFxuICAgIGZpbGVQYXRoOiByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IFJlcG9QYXRocy5DaGFuZ2Vsb2dNZCB9KVxuICB9KTtcblxuICBpZiAoZmluZGluZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFt0cnVlXTtcbiAgfVxuXG4gIHJldHVybiBbXG4gICAgZmFsc2UsXG4gICAgYHRoZSBoZWFkZXIgZG9lcyBub3QgcGFzcyBcXGAke1NQRUxMQ0hFQ0tfU0NSSVBUX05BTUV9XFxgLCBhbmQgaXQgc2hpcHMgdmVyYmF0aW0gaW50byB0aGUgbmV4dCByZWxlYXNlJ3MgY2hhbmdlbG9nOlxcbmBcbiAgICArIGAke2ZpbmRpbmdzLmpvaW4oJ1xcbicpfVxcbmBcbiAgICArICdSZXdvcmQgaXQsIG9yLCBmb3IgYSB3b3JkIHRoaXMgcHJvamVjdCByZWFsbHkgZG9lcyB1c2UsIGFkZCBpdCB0byB0aGUgcHJvamVjdFxcJ3MgYGNzcGVsbGAgY29uZmlndXJhdGlvbi4nXG4gIF07XG59XG5cbi8qKlxuICogVGhlIGNvbW1pdGxpbnQgcGx1Z2luIGNhcnJ5aW5nIHtAbGluayBzcGVsbGNoZWNrSGVhZGVyUnVsZX0uXG4gKi9cbmV4cG9ydCBjb25zdCBzcGVsbGNoZWNrSGVhZGVyUGx1Z2luOiBQbHVnaW4gPSB7XG4gIHJ1bGVzOiB7XG4gICAgW1NQRUxMQ0hFQ0tfSEVBREVSX1JVTEVfTkFNRV06IHNwZWxsY2hlY2tIZWFkZXJSdWxlXG4gIH1cbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQXlCQSxTQUFTLHlCQUF5QjtBQUNsQyxTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLGlCQUFpQjtBQUMxQixTQUFTLCtCQUErQjtBQUtqQyxNQUFNLDhCQUE4QjtBQUszQyxNQUFNLHlCQUF5QjtBQWEvQixlQUFzQixxQkFBcUIsUUFBc0M7QUFDL0UsTUFBSSxDQUFDLE9BQU8sUUFBUTtBQUNsQixXQUFPLENBQUMsSUFBSTtBQUFBLEVBQ2Q7QUFFQSxRQUFNLGNBQWMsTUFBTSxnQkFBZ0I7QUFDMUMsTUFBSSxDQUFDLE9BQU8sS0FBSyxZQUFZLFdBQVcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxzQkFBc0IsR0FBRztBQUM1RSxXQUFPLENBQUMsSUFBSTtBQUFBLEVBQ2Q7QUFFQSxRQUFNLFdBQVcsTUFBTSxrQkFBa0I7QUFBQSxJQUN2QyxTQUFTLEtBQUssT0FBTyxNQUFNO0FBQUE7QUFBQSxJQUMzQixVQUFVLHdCQUF3QixFQUFFLE1BQU0sVUFBVSxZQUFZLENBQUM7QUFBQSxFQUNuRSxDQUFDO0FBRUQsTUFBSSxTQUFTLFdBQVcsR0FBRztBQUN6QixXQUFPLENBQUMsSUFBSTtBQUFBLEVBQ2Q7QUFFQSxTQUFPO0FBQUEsSUFDTDtBQUFBLElBQ0EsOEJBQThCLHNCQUFzQjtBQUFBLEVBQy9DLFNBQVMsS0FBSyxJQUFJLENBQUM7QUFBQTtBQUFBLEVBRTFCO0FBQ0Y7QUFLTyxNQUFNLHlCQUFpQztBQUFBLEVBQzVDLE9BQU87QUFBQSxJQUNMLENBQUMsMkJBQTJCLEdBQUc7QUFBQSxFQUNqQztBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
45
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1pdGxpbnQtc3BlbGxjaGVjay1oZWFkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBBIGNvbW1pdGxpbnQgcnVsZSB0aGF0IHNwZWxsY2hlY2tzIGEgY29tbWl0IEhFQURFUiB3aXRoIHRoZSBwcm9qZWN0J3Mgb3duIGBzcGVsbGNoZWNrYCBjb25maWd1cmF0aW9uLlxuICpcbiAqIFRoZSBoZWFkZXIgaXMgdGhlIG9uZSBwYXJ0IG9mIGEgY29tbWl0IG1lc3NhZ2UgdGhhdCBzaGlwcyB2ZXJiYXRpbTogYSByZWxlYXNlIHR1cm5zIGV2ZXJ5IGNvbW1pdCBzdWJqZWN0XG4gKiBzaW5jZSB0aGUgbGFzdCB0YWcgaW50byBhIGAtIDxzdWJqZWN0PmAgYnVsbGV0IG9mIHRoZSBuZXcgYENIQU5HRUxPRy5tZGAgc2VjdGlvbiwgYW5kIHNwZWxsY2hlY2tzIHRoYXRcbiAqIHNlY3Rpb24gYmVmb3JlIHdyaXRpbmcgaXQuIFRoYXQgY2hlY2sgd29ya3MsIGJ1dCBpdCBydW5zIGF0IHJlbGVhc2UgdGltZSwgYWZ0ZXIgdGhlIHdob2xlIHByZWZsaWdodCBnYXRlLFxuICogYW5kIHdlZWtzIGFmdGVyIHRoZSBzdWJqZWN0IHdhcyBwdXNoZWQgdG8gdGhlIGRlZmF1bHQgYnJhbmNoLiBBdCB0aGF0IHBvaW50IHRoZSBvbmx5IGZpeGVzIGFyZSByZXdyaXRpbmdcbiAqIHB1Ymxpc2hlZCBoaXN0b3J5IG9yIHN1cHBseWluZyB0aGUgcmVsZWFzZSBub3RlcyBieSBoYW5kLiBUaGUgY29tbWl0LW1zZyBob29rIGlzIHRoZSBsYXN0IHBvaW50IGF0IHdoaWNoXG4gKiB0aGUgd29yZCBjYW4gc3RpbGwgYmUgY2hhbmdlZCBmb3IgZnJlZS5cbiAqXG4gKiBUaGUgaGVhZGVyIGlzIGNoZWNrZWQgQVMgdGhlIGJ1bGxldCBpdCB3aWxsIGJlY29tZSwgYXR0cmlidXRlZCB0byBgQ0hBTkdFTE9HLm1kYCwgc28gdGhlIHZlcmRpY3QgaXMgdGhlIG9uZVxuICogdGhlIHJlbGVhc2Ugd291bGQgZ2l2ZTogdGhlIHNhbWUgYGNzcGVsbGAgY29uZmlndXJhdGlvbiwgdGhlIHNhbWUgYHdvcmRzYCwgdGhlIHNhbWUgYGlnbm9yZVBhdGhzYC4gQW5kIGl0XG4gKiBydW5zIG9ubHkgd2hlcmUgdGhlIHByb2plY3QgZGVmaW5lcyBhIGBzcGVsbGNoZWNrYCBzY3JpcHQsIHdoaWNoIGlzIHRoZSBjb25kaXRpb24gdGhlIHJlbGVhc2UgYXBwbGllcyB0b28uXG4gKiBBIHByb2plY3Qgd2l0aCBubyBzcGVsbGluZyBjb25maWd1cmF0aW9uIHdvdWxkIG90aGVyd2lzZSBoYXZlIGl0cyBjb21taXRzIGp1ZGdlZCBhZ2FpbnN0IHRoZSBzdG9ja1xuICogZGljdGlvbmFyaWVzIGFsb25lLCBhbmQgcmVmdXNlZCBvdmVyIGl0cyBvd24gbmFtZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFzeW5jUnVsZSxcbiAgUGx1Z2luLFxuICBSdWxlT3V0Y29tZVxufSBmcm9tICdAY29tbWl0bGludC90eXBlcyc7XG5cbmltcG9ydCB7IHNwZWxsY2hlY2tDb250ZW50IH0gZnJvbSAnLi9saW50ZXJzL2NzcGVsbC1jb250ZW50LnRzJztcbmltcG9ydCB7IHJlYWRQYWNrYWdlSnNvbiB9IGZyb20gJy4vbnBtLnRzJztcbmltcG9ydCB7IFJlcG9QYXRocyB9IGZyb20gJy4vcmVwby1wYXRocy50cyc7XG5pbXBvcnQgeyByZXNvbHZlUGF0aEZyb21Sb290U2FmZSB9IGZyb20gJy4vcm9vdC50cyc7XG5cbi8qKlxuICogVGhlIG5hbWUgdGhlIHJ1bGUgaXMgcmVnaXN0ZXJlZCB1bmRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IFNQRUxMQ0hFQ0tfSEVBREVSX1JVTEVfTkFNRSA9ICd0eXBlc2NyaXB0LWRldi10b29sa2l0L3NwZWxsY2hlY2staGVhZGVyJztcblxuLyoqXG4gKiBUaGUgbnBtIHNjcmlwdCB3aG9zZSBwcmVzZW5jZSBvcHRzIGEgcHJvamVjdCBpbnRvIHRoZSBjaGVjay5cbiAqL1xuY29uc3QgU1BFTExDSEVDS19TQ1JJUFRfTkFNRSA9ICdzcGVsbGNoZWNrJztcblxudHlwZSBDb21taXQgPSBQYXJhbWV0ZXJzPEFzeW5jUnVsZT5bMF07XG5cbi8qKlxuICogU3BlbGxjaGVja3MgdGhlIGNvbW1pdCBoZWFkZXIgYXMgdGhlIGNoYW5nZWxvZyBidWxsZXQgaXQgd2lsbCBiZWNvbWUuXG4gKlxuICogT25seSB0aGUgYGFsd2F5c2AgY29uZGl0aW9uIGlzIG1lYW5pbmdmdWw6IGBuZXZlcmAgd291bGQgcmVxdWlyZSB0aGUgaGVhZGVyIHRvIGJlIG1pc3NwZWxsZWQsIHNvIGl0IGlzXG4gKiB0cmVhdGVkIHRoZSBzYW1lIHdheSByYXRoZXIgdGhhbiBpbnZlcnRlZC5cbiAqXG4gKiBAcGFyYW0gY29tbWl0IC0gVGhlIHBhcnNlZCBjb21taXQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBydWxlIG91dGNvbWUsIG5hbWluZyBlYWNoIHVua25vd24gd29yZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNwZWxsY2hlY2tIZWFkZXJSdWxlKGNvbW1pdDogQ29tbWl0KTogUHJvbWlzZTxSdWxlT3V0Y29tZT4ge1xuICBpZiAoIWNvbW1pdC5oZWFkZXIpIHtcbiAgICByZXR1cm4gW3RydWVdO1xuICB9XG5cbiAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24oKTtcbiAgaWYgKCFPYmplY3Qua2V5cyhwYWNrYWdlSnNvbi5zY3JpcHRzID8/IHt9KS5pbmNsdWRlcyhTUEVMTENIRUNLX1NDUklQVF9OQU1FKSkge1xuICAgIHJldHVybiBbdHJ1ZV07XG4gIH1cblxuICBjb25zdCBmaW5kaW5ncyA9IGF3YWl0IHNwZWxsY2hlY2tDb250ZW50KHtcbiAgICBjb250ZW50OiBgLSAke2NvbW1pdC5oZWFkZXJ9XFxuYCxcbiAgICBmaWxlUGF0aDogcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBSZXBvUGF0aHMuQ2hhbmdlbG9nTWQgfSlcbiAgfSk7XG5cbiAgaWYgKGZpbmRpbmdzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbdHJ1ZV07XG4gIH1cblxuICByZXR1cm4gW1xuICAgIGZhbHNlLFxuICAgIGB0aGUgaGVhZGVyIGRvZXMgbm90IHBhc3MgXFxgJHtTUEVMTENIRUNLX1NDUklQVF9OQU1FfVxcYCwgYW5kIGl0IHNoaXBzIHZlcmJhdGltIGludG8gdGhlIG5leHQgcmVsZWFzZSdzIGNoYW5nZWxvZzpcXG5gXG4gICAgKyBgJHtmaW5kaW5ncy5qb2luKCdcXG4nKX1cXG5gXG4gICAgKyAnUmV3b3JkIGl0LCBvciwgZm9yIGEgd29yZCB0aGlzIHByb2plY3QgcmVhbGx5IGRvZXMgdXNlLCBhZGQgaXQgdG8gdGhlIHByb2plY3RcXCdzIGBjc3BlbGxgIGNvbmZpZ3VyYXRpb24uJ1xuICBdO1xufVxuXG4vKipcbiAqIFRoZSBjb21taXRsaW50IHBsdWdpbiBjYXJyeWluZyB7QGxpbmsgc3BlbGxjaGVja0hlYWRlclJ1bGV9LlxuICovXG5leHBvcnQgY29uc3Qgc3BlbGxjaGVja0hlYWRlclBsdWdpbjogUGx1Z2luID0ge1xuICBydWxlczoge1xuICAgIFtTUEVMTENIRUNLX0hFQURFUl9SVUxFX05BTUVdOiBzcGVsbGNoZWNrSGVhZGVyUnVsZVxuICB9XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUF5QkEsU0FBUyx5QkFBeUI7QUFDbEMsU0FBUyx1QkFBdUI7QUFDaEMsU0FBUyxpQkFBaUI7QUFDMUIsU0FBUywrQkFBK0I7QUFLakMsTUFBTSw4QkFBOEI7QUFLM0MsTUFBTSx5QkFBeUI7QUFhL0IsZUFBc0IscUJBQXFCLFFBQXNDO0FBQy9FLE1BQUksQ0FBQyxPQUFPLFFBQVE7QUFDbEIsV0FBTyxDQUFDLElBQUk7QUFBQSxFQUNkO0FBRUEsUUFBTSxjQUFjLE1BQU0sZ0JBQWdCO0FBQzFDLE1BQUksQ0FBQyxPQUFPLEtBQUssWUFBWSxXQUFXLENBQUMsQ0FBQyxFQUFFLFNBQVMsc0JBQXNCLEdBQUc7QUFDNUUsV0FBTyxDQUFDLElBQUk7QUFBQSxFQUNkO0FBRUEsUUFBTSxXQUFXLE1BQU0sa0JBQWtCO0FBQUEsSUFDdkMsU0FBUyxLQUFLLE9BQU8sTUFBTTtBQUFBO0FBQUEsSUFDM0IsVUFBVSx3QkFBd0IsRUFBRSxNQUFNLFVBQVUsWUFBWSxDQUFDO0FBQUEsRUFDbkUsQ0FBQztBQUVELE1BQUksU0FBUyxXQUFXLEdBQUc7QUFDekIsV0FBTyxDQUFDLElBQUk7QUFBQSxFQUNkO0FBRUEsU0FBTztBQUFBLElBQ0w7QUFBQSxJQUNBLDhCQUE4QixzQkFBc0I7QUFBQSxFQUMvQyxTQUFTLEtBQUssSUFBSSxDQUFDO0FBQUE7QUFBQSxFQUUxQjtBQUNGO0FBS08sTUFBTSx5QkFBaUM7QUFBQSxFQUM1QyxPQUFPO0FBQUEsSUFDTCxDQUFDLDJCQUEyQixHQUFHO0FBQUEsRUFDakM7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,18 @@
1
+ /// <reference path="../library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Constants and the generic external-type link maps for the API documentation generator: the TypeScript handbook,
6
+ * MDN and Node. A layer that documents another ecosystem adds its own maps through `externalTypeLinks`.
7
+ */
8
+ /**
9
+ Event-like method names that should be split by string literal first param
10
+ */
11
+ export declare const EVENT_METHODS: Set<string>;
12
+ /**
13
+ Single-letter and common generic type parameter names — not linkable
14
+ */
15
+ export declare const GENERIC_TYPE_PARAMS: Set<string>;
16
+ export declare const TS_PRIMITIVE_TYPES: Record<string, string>;
17
+ export declare const TS_UTILITY_TYPES: Map<string, string>;
18
+ export declare const TS_GLOBAL_TYPES: Record<string, string>;
@@ -0,0 +1,143 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ const EVENT_METHODS = /* @__PURE__ */ new Set(["off", "on", "trigger", "tryTrigger"]);
7
+ const GENERIC_TYPE_PARAMS = /* @__PURE__ */ new Set([
8
+ "Arg",
9
+ "Args",
10
+ // Short identifiers / enum-like values that aren't types
11
+ "ASC",
12
+ "Callback",
13
+ "ComponentType",
14
+ "DESC",
15
+ "DOMContentLoaded",
16
+ "GET",
17
+ "HookCallback",
18
+ "HookName",
19
+ "ID",
20
+ "Input",
21
+ "Instance",
22
+ "Item",
23
+ "K",
24
+ "Key",
25
+ "Marked",
26
+ "O",
27
+ "Output",
28
+ "Owner",
29
+ "P",
30
+ "POST",
31
+ "R",
32
+ "S",
33
+ "Suspects",
34
+ "T",
35
+ "TFunction",
36
+ "TModal",
37
+ "TView",
38
+ "TViewType",
39
+ "U",
40
+ "UserProperties",
41
+ "V",
42
+ "VIEW"
43
+ ]);
44
+ const TS_HANDBOOK = "https://www.typescriptlang.org/docs/handbook";
45
+ const TS_PRIMITIVE_TYPES = {
46
+ any: `${TS_HANDBOOK}/2/everyday-types.html#any`,
47
+ boolean: `${TS_HANDBOOK}/basic-types.html#boolean`,
48
+ never: `${TS_HANDBOOK}/basic-types.html#never`,
49
+ null: `${TS_HANDBOOK}/basic-types.html#null-and-undefined`,
50
+ number: `${TS_HANDBOOK}/basic-types.html#number`,
51
+ object: `${TS_HANDBOOK}/basic-types.html#object`,
52
+ string: `${TS_HANDBOOK}/basic-types.html#string`,
53
+ symbol: `${TS_HANDBOOK}/symbols.html`,
54
+ undefined: `${TS_HANDBOOK}/basic-types.html#null-and-undefined`,
55
+ unknown: `${TS_HANDBOOK}/2/functions.html#unknown`,
56
+ void: `${TS_HANDBOOK}/basic-types.html#void`
57
+ };
58
+ const TS_UTILITY_TYPES = /* @__PURE__ */ new Map([
59
+ ["Awaited", "awaitedtype"],
60
+ ["Capitalize", "capitalizestringtype"],
61
+ ["ConstructorParameters", "constructorparameterstype"],
62
+ ["Exclude", "excludeuniontype-excludedmembers"],
63
+ ["Extract", "extracttype-union"],
64
+ ["InstanceType", "instancetypetype"],
65
+ ["Iterable", "iterable-interface"],
66
+ ["Lowercase", "lowercasestringtype"],
67
+ ["NoInfer", "noinfertype"],
68
+ ["NonNullable", "nonnullabletype"],
69
+ ["Omit", "omittype-keys"],
70
+ ["OmitThisParameter", "omitthisparametertype"],
71
+ ["Parameters", "parameterstype"],
72
+ ["Partial", "partialtype"],
73
+ ["Pick", "picktype-keys"],
74
+ ["Readonly", "readonlytype"],
75
+ ["Record", "recordkeys-type"],
76
+ ["Required", "requiredtype"],
77
+ ["ReturnType", "returntypetype"],
78
+ ["ThisParameterType", "thisparametertypetype"],
79
+ ["ThisType", "thistypetype"],
80
+ ["Uncapitalize", "uncapitalizestringtype"],
81
+ ["Uppercase", "uppercasestringtype"]
82
+ ]);
83
+ const TS_GLOBAL_TYPES = {
84
+ AddEventListenerOptions: "https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener#options",
85
+ AnimationFrameProvider: "https://raw.githubusercontent.com/microsoft/TypeScript/38c3279e29e45c274c408d909394b7bf45c24fdc/src/lib/dom.generated.d.ts#L3756",
86
+ Array: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",
87
+ ArrayBufferLike: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer",
88
+ ArrayLike: "https://www.typescriptlang.org/docs/handbook/2/indexed-access-types.html",
89
+ BodyInit: "https://developer.mozilla.org/docs/Web/API/Request/Request#body",
90
+ Buffer: "https://nodejs.org/api/buffer.html#class-buffer",
91
+ CanvasRenderingContext2DSettings: "https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/getContext#contextattributes",
92
+ DocumentEventMap: "https://developer.mozilla.org/docs/Web/API/Document#events",
93
+ DocumentOrShadowRoot: "https://developer.mozilla.org/docs/Web/API/Document",
94
+ Error: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error",
95
+ EventListenerOptions: "https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener#options",
96
+ EventListenerOrEventListenerObject: "https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener#the_event_listener_callback",
97
+ FSWatcher: "https://nodejs.org/api/fs.html#class-fsfswatcher",
98
+ Function: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function",
99
+ GlobalEventHandlers: "https://raw.githubusercontent.com/microsoft/TypeScript/38c3279e29e45c274c408d909394b7bf45c24fdc/src/lib/dom.generated.d.ts#L16746",
100
+ HeadersInit: "https://developer.mozilla.org/docs/Web/API/Headers/Headers#init",
101
+ HTMLElementEventMap: "https://developer.mozilla.org/docs/Web/API/HTMLElement#events",
102
+ HTMLElementTagNameMap: "https://developer.mozilla.org/docs/Web/API/Document/createElement",
103
+ Iterable: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Iteration_protocols",
104
+ Iterator: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Iterator",
105
+ Map: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Map",
106
+ NonElementParentNode: "https://raw.githubusercontent.com/microsoft/TypeScript/38c3279e29e45c274c408d909394b7bf45c24fdc/src/lib/dom.generated.d.ts#L26373",
107
+ Object: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object",
108
+ ParentNode: "https://developer.mozilla.org/docs/Web/API/ParentNode",
109
+ Promise: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise",
110
+ PromiseLike: "https://github.com/Microsoft/TypeScript/blob/38c3279/src/lib/es5.d.ts#L1519",
111
+ PromiseWithResolvers: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers",
112
+ PropertyDescriptor: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty",
113
+ PropertyDescriptorMap: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties",
114
+ PropertyKey: "https://www.typescriptlang.org/docs/handbook/2/keyof-types.html",
115
+ Proxy: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Proxy",
116
+ RegExp: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RegExp",
117
+ RequestInfo: "https://developer.mozilla.org/docs/Web/API/Request/Request#input",
118
+ RequestInit: "https://developer.mozilla.org/docs/Web/API/Request/Request#options",
119
+ ResponseInit: "https://developer.mozilla.org/docs/Web/API/Response/Response#init",
120
+ Set: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set",
121
+ Stats: "https://nodejs.org/api/fs.html#class-fsstats",
122
+ SVGElementTagNameMap: "https://developer.mozilla.org/docs/Web/API/Document/createElementNS",
123
+ Symbol: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol",
124
+ TypedPropertyDescriptor: "https://www.typescriptlang.org/docs/handbook/decorators.html",
125
+ WeakMap: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/WeakMap",
126
+ WeakRef: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/WeakRef",
127
+ WeakSet: "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/WeakSet",
128
+ WebGLContextAttributes: "https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getContextAttributes",
129
+ WebGLPowerPreference: "https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getContextAttributes",
130
+ WindowEventHandlers: "https://raw.githubusercontent.com/microsoft/TypeScript/38c3279e29e45c274c408d909394b7bf45c24fdc/src/lib/dom.generated.d.ts#L41634",
131
+ WindowEventMap: "https://developer.mozilla.org/docs/Web/API/Window#events",
132
+ WindowLocalStorage: "https://raw.githubusercontent.com/microsoft/TypeScript/38c3279e29e45c274c408d909394b7bf45c24fdc/src/lib/dom.generated.d.ts#L41685",
133
+ WindowOrWorkerGlobalScope: "https://raw.githubusercontent.com/microsoft/TypeScript/38c3279e29e45c274c408d909394b7bf45c24fdc/src/lib/dom.generated.d.ts#L41690",
134
+ WindowSessionStorage: "https://raw.githubusercontent.com/microsoft/TypeScript/38c3279e29e45c274c408d909394b7bf45c24fdc/src/lib/dom.generated.d.ts#L41736"
135
+ };
136
+ export {
137
+ EVENT_METHODS,
138
+ GENERIC_TYPE_PARAMS,
139
+ TS_GLOBAL_TYPES,
140
+ TS_PRIMITIVE_TYPES,
141
+ TS_UTILITY_TYPES
142
+ };
143
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2RvY3Mtc2l0ZS9hcGktZG9jLWNvbnN0YW50cy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnN0YW50cyBhbmQgdGhlIGdlbmVyaWMgZXh0ZXJuYWwtdHlwZSBsaW5rIG1hcHMgZm9yIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3I6IHRoZSBUeXBlU2NyaXB0IGhhbmRib29rLFxuICogTUROIGFuZCBOb2RlLiBBIGxheWVyIHRoYXQgZG9jdW1lbnRzIGFub3RoZXIgZWNvc3lzdGVtIGFkZHMgaXRzIG93biBtYXBzIHRocm91Z2ggYGV4dGVybmFsVHlwZUxpbmtzYC5cbiAqL1xuXG4vKipcbkV2ZW50LWxpa2UgbWV0aG9kIG5hbWVzIHRoYXQgc2hvdWxkIGJlIHNwbGl0IGJ5IHN0cmluZyBsaXRlcmFsIGZpcnN0IHBhcmFtXG4gKi9cbmV4cG9ydCBjb25zdCBFVkVOVF9NRVRIT0RTID0gbmV3IFNldChbJ29mZicsICdvbicsICd0cmlnZ2VyJywgJ3RyeVRyaWdnZXInXSk7XG5cbi8qKlxuU2luZ2xlLWxldHRlciBhbmQgY29tbW9uIGdlbmVyaWMgdHlwZSBwYXJhbWV0ZXIgbmFtZXMgXHUyMDE0IG5vdCBsaW5rYWJsZVxuICovXG5leHBvcnQgY29uc3QgR0VORVJJQ19UWVBFX1BBUkFNUyA9IG5ldyBTZXQoW1xuICAnQXJnJyxcbiAgJ0FyZ3MnLCAvLyBTaG9ydCBpZGVudGlmaWVycyAvIGVudW0tbGlrZSB2YWx1ZXMgdGhhdCBhcmVuJ3QgdHlwZXNcbiAgJ0FTQycsXG4gICdDYWxsYmFjaycsXG4gICdDb21wb25lbnRUeXBlJyxcbiAgJ0RFU0MnLFxuICAnRE9NQ29udGVudExvYWRlZCcsXG4gICdHRVQnLFxuICAnSG9va0NhbGxiYWNrJyxcbiAgJ0hvb2tOYW1lJyxcbiAgJ0lEJyxcbiAgJ0lucHV0JyxcbiAgJ0luc3RhbmNlJyxcbiAgJ0l0ZW0nLFxuICAnSycsXG4gICdLZXknLFxuICAnTWFya2VkJyxcbiAgJ08nLFxuICAnT3V0cHV0JyxcbiAgJ093bmVyJyxcbiAgJ1AnLFxuICAnUE9TVCcsXG4gICdSJyxcbiAgJ1MnLFxuICAnU3VzcGVjdHMnLFxuICAnVCcsXG4gICdURnVuY3Rpb24nLFxuICAnVE1vZGFsJyxcbiAgJ1RWaWV3JyxcbiAgJ1RWaWV3VHlwZScsXG4gICdVJyxcbiAgJ1VzZXJQcm9wZXJ0aWVzJyxcbiAgJ1YnLFxuICAnVklFVydcbl0pO1xuXG5jb25zdCBUU19IQU5EQk9PSyA9ICdodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vayc7XG5cbmV4cG9ydCBjb25zdCBUU19QUklNSVRJVkVfVFlQRVM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGFueTogYCR7VFNfSEFOREJPT0t9LzIvZXZlcnlkYXktdHlwZXMuaHRtbCNhbnlgLFxuICBib29sZWFuOiBgJHtUU19IQU5EQk9PS30vYmFzaWMtdHlwZXMuaHRtbCNib29sZWFuYCxcbiAgbmV2ZXI6IGAke1RTX0hBTkRCT09LfS9iYXNpYy10eXBlcy5odG1sI25ldmVyYCxcbiAgbnVsbDogYCR7VFNfSEFOREJPT0t9L2Jhc2ljLXR5cGVzLmh0bWwjbnVsbC1hbmQtdW5kZWZpbmVkYCxcbiAgbnVtYmVyOiBgJHtUU19IQU5EQk9PS30vYmFzaWMtdHlwZXMuaHRtbCNudW1iZXJgLFxuICBvYmplY3Q6IGAke1RTX0hBTkRCT09LfS9iYXNpYy10eXBlcy5odG1sI29iamVjdGAsXG4gIHN0cmluZzogYCR7VFNfSEFOREJPT0t9L2Jhc2ljLXR5cGVzLmh0bWwjc3RyaW5nYCxcbiAgc3ltYm9sOiBgJHtUU19IQU5EQk9PS30vc3ltYm9scy5odG1sYCxcbiAgdW5kZWZpbmVkOiBgJHtUU19IQU5EQk9PS30vYmFzaWMtdHlwZXMuaHRtbCNudWxsLWFuZC11bmRlZmluZWRgLFxuICB1bmtub3duOiBgJHtUU19IQU5EQk9PS30vMi9mdW5jdGlvbnMuaHRtbCN1bmtub3duYCxcbiAgdm9pZDogYCR7VFNfSEFOREJPT0t9L2Jhc2ljLXR5cGVzLmh0bWwjdm9pZGBcbn07XG5cbi8vIENzcGVsbDpkaXNhYmxlIC0tIFVSTCBmcmFnbWVudHMgYXJlIG5vdCB3b3Jkc1xuZXhwb3J0IGNvbnN0IFRTX1VUSUxJVFlfVFlQRVMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbXG4gIFsnQXdhaXRlZCcsICdhd2FpdGVkdHlwZSddLFxuICBbJ0NhcGl0YWxpemUnLCAnY2FwaXRhbGl6ZXN0cmluZ3R5cGUnXSxcbiAgWydDb25zdHJ1Y3RvclBhcmFtZXRlcnMnLCAnY29uc3RydWN0b3JwYXJhbWV0ZXJzdHlwZSddLFxuICBbJ0V4Y2x1ZGUnLCAnZXhjbHVkZXVuaW9udHlwZS1leGNsdWRlZG1lbWJlcnMnXSxcbiAgWydFeHRyYWN0JywgJ2V4dHJhY3R0eXBlLXVuaW9uJ10sXG4gIFsnSW5zdGFuY2VUeXBlJywgJ2luc3RhbmNldHlwZXR5cGUnXSxcbiAgWydJdGVyYWJsZScsICdpdGVyYWJsZS1pbnRlcmZhY2UnXSxcbiAgWydMb3dlcmNhc2UnLCAnbG93ZXJjYXNlc3RyaW5ndHlwZSddLFxuICBbJ05vSW5mZXInLCAnbm9pbmZlcnR5cGUnXSxcbiAgWydOb25OdWxsYWJsZScsICdub25udWxsYWJsZXR5cGUnXSxcbiAgWydPbWl0JywgJ29taXR0eXBlLWtleXMnXSxcbiAgWydPbWl0VGhpc1BhcmFtZXRlcicsICdvbWl0dGhpc3BhcmFtZXRlcnR5cGUnXSxcbiAgWydQYXJhbWV0ZXJzJywgJ3BhcmFtZXRlcnN0eXBlJ10sXG4gIFsnUGFydGlhbCcsICdwYXJ0aWFsdHlwZSddLFxuICBbJ1BpY2snLCAncGlja3R5cGUta2V5cyddLFxuICBbJ1JlYWRvbmx5JywgJ3JlYWRvbmx5dHlwZSddLFxuICBbJ1JlY29yZCcsICdyZWNvcmRrZXlzLXR5cGUnXSxcbiAgWydSZXF1aXJlZCcsICdyZXF1aXJlZHR5cGUnXSxcbiAgWydSZXR1cm5UeXBlJywgJ3JldHVybnR5cGV0eXBlJ10sXG4gIFsnVGhpc1BhcmFtZXRlclR5cGUnLCAndGhpc3BhcmFtZXRlcnR5cGV0eXBlJ10sXG4gIFsnVGhpc1R5cGUnLCAndGhpc3R5cGV0eXBlJ10sXG4gIFsnVW5jYXBpdGFsaXplJywgJ3VuY2FwaXRhbGl6ZXN0cmluZ3R5cGUnXSxcbiAgWydVcHBlcmNhc2UnLCAndXBwZXJjYXNlc3RyaW5ndHlwZSddXG5dKTtcblxuZXhwb3J0IGNvbnN0IFRTX0dMT0JBTF9UWVBFUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnM6ICdodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvRXZlbnRUYXJnZXQvYWRkRXZlbnRMaXN0ZW5lciNvcHRpb25zJyxcbiAgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC8zOGMzMjc5ZTI5ZTQ1YzI3NGM0MDhkOTA5Mzk0YjdiZjQ1YzI0ZmRjL3NyYy9saWIvZG9tLmdlbmVyYXRlZC5kLnRzI0wzNzU2JyxcbiAgQXJyYXk6ICdodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9BcnJheScsXG4gIEFycmF5QnVmZmVyTGlrZTogJ2h0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5QnVmZmVyJyxcbiAgQXJyYXlMaWtlOiAnaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9pbmRleGVkLWFjY2Vzcy10eXBlcy5odG1sJyxcbiAgQm9keUluaXQ6ICdodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvUmVxdWVzdC9SZXF1ZXN0I2JvZHknLFxuICBCdWZmZXI6ICdodHRwczovL25vZGVqcy5vcmcvYXBpL2J1ZmZlci5odG1sI2NsYXNzLWJ1ZmZlcicsXG4gIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFNldHRpbmdzOiAnaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxDYW52YXNFbGVtZW50L2dldENvbnRleHQjY29udGV4dGF0dHJpYnV0ZXMnLFxuICBEb2N1bWVudEV2ZW50TWFwOiAnaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0RvY3VtZW50I2V2ZW50cycsXG4gIERvY3VtZW50T3JTaGFkb3dSb290OiAnaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0RvY3VtZW50JyxcbiAgRXJyb3I6ICdodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9FcnJvcicsXG4gIEV2ZW50TGlzdGVuZXJPcHRpb25zOiAnaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0V2ZW50VGFyZ2V0L3JlbW92ZUV2ZW50TGlzdGVuZXIjb3B0aW9ucycsXG4gIEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3Q6ICdodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvRXZlbnRUYXJnZXQvYWRkRXZlbnRMaXN0ZW5lciN0aGVfZXZlbnRfbGlzdGVuZXJfY2FsbGJhY2snLFxuICBGU1dhdGNoZXI6ICdodHRwczovL25vZGVqcy5vcmcvYXBpL2ZzLmh0bWwjY2xhc3MtZnNmc3dhdGNoZXInLFxuICBGdW5jdGlvbjogJ2h0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0Z1bmN0aW9uJyxcbiAgR2xvYmFsRXZlbnRIYW5kbGVyczogJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC8zOGMzMjc5ZTI5ZTQ1YzI3NGM0MDhkOTA5Mzk0YjdiZjQ1YzI0ZmRjL3NyYy9saWIvZG9tLmdlbmVyYXRlZC5kLnRzI0wxNjc0NicsXG4gIEhlYWRlcnNJbml0OiAnaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hlYWRlcnMvSGVhZGVycyNpbml0JyxcbiAgSFRNTEVsZW1lbnRFdmVudE1hcDogJ2h0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9IVE1MRWxlbWVudCNldmVudHMnLFxuICBIVE1MRWxlbWVudFRhZ05hbWVNYXA6ICdodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvRG9jdW1lbnQvY3JlYXRlRWxlbWVudCcsXG4gIEl0ZXJhYmxlOiAnaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvSXRlcmF0aW9uX3Byb3RvY29scycsXG4gIEl0ZXJhdG9yOiAnaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvSXRlcmF0b3InLFxuICBNYXA6ICdodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9NYXAnLFxuICBOb25FbGVtZW50UGFyZW50Tm9kZTogJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC8zOGMzMjc5ZTI5ZTQ1YzI3NGM0MDhkOTA5Mzk0YjdiZjQ1YzI0ZmRjL3NyYy9saWIvZG9tLmdlbmVyYXRlZC5kLnRzI0wyNjM3MycsXG4gIE9iamVjdDogJ2h0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL09iamVjdCcsXG4gIFBhcmVudE5vZGU6ICdodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvUGFyZW50Tm9kZScsXG4gIFByb21pc2U6ICdodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9Qcm9taXNlJyxcbiAgUHJvbWlzZUxpa2U6ICdodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvYmxvYi8zOGMzMjc5L3NyYy9saWIvZXM1LmQudHMjTDE1MTknLFxuICBQcm9taXNlV2l0aFJlc29sdmVyczogJ2h0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1Byb21pc2Uvd2l0aFJlc29sdmVycycsXG4gIFByb3BlcnR5RGVzY3JpcHRvcjogJ2h0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL09iamVjdC9kZWZpbmVQcm9wZXJ0eScsXG4gIFByb3BlcnR5RGVzY3JpcHRvck1hcDogJ2h0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL09iamVjdC9kZWZpbmVQcm9wZXJ0aWVzJyxcbiAgUHJvcGVydHlLZXk6ICdodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2tleW9mLXR5cGVzLmh0bWwnLFxuICBQcm94eTogJ2h0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1Byb3h5JyxcbiAgUmVnRXhwOiAnaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvUmVnRXhwJyxcbiAgUmVxdWVzdEluZm86ICdodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvUmVxdWVzdC9SZXF1ZXN0I2lucHV0JyxcbiAgUmVxdWVzdEluaXQ6ICdodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvUmVxdWVzdC9SZXF1ZXN0I29wdGlvbnMnLFxuICBSZXNwb25zZUluaXQ6ICdodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvUmVzcG9uc2UvUmVzcG9uc2UjaW5pdCcsXG4gIFNldDogJ2h0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1NldCcsXG4gIFN0YXRzOiAnaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9mcy5odG1sI2NsYXNzLWZzc3RhdHMnLFxuICBTVkdFbGVtZW50VGFnTmFtZU1hcDogJ2h0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9Eb2N1bWVudC9jcmVhdGVFbGVtZW50TlMnLFxuICBTeW1ib2w6ICdodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9TeW1ib2wnLFxuICBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjogJ2h0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rL2RlY29yYXRvcnMuaHRtbCcsXG4gIFdlYWtNYXA6ICdodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9XZWFrTWFwJyxcbiAgV2Vha1JlZjogJ2h0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1dlYWtSZWYnLFxuICBXZWFrU2V0OiAnaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvV2Vha1NldCcsXG4gIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXM6ICdodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvV2ViR0xSZW5kZXJpbmdDb250ZXh0L2dldENvbnRleHRBdHRyaWJ1dGVzJyxcbiAgV2ViR0xQb3dlclByZWZlcmVuY2U6ICdodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvV2ViR0xSZW5kZXJpbmdDb250ZXh0L2dldENvbnRleHRBdHRyaWJ1dGVzJyxcbiAgV2luZG93RXZlbnRIYW5kbGVyczogJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC8zOGMzMjc5ZTI5ZTQ1YzI3NGM0MDhkOTA5Mzk0YjdiZjQ1YzI0ZmRjL3NyYy9saWIvZG9tLmdlbmVyYXRlZC5kLnRzI0w0MTYzNCcsXG4gIFdpbmRvd0V2ZW50TWFwOiAnaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL1dpbmRvdyNldmVudHMnLFxuICBXaW5kb3dMb2NhbFN0b3JhZ2U6ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvMzhjMzI3OWUyOWU0NWMyNzRjNDA4ZDkwOTM5NGI3YmY0NWMyNGZkYy9zcmMvbGliL2RvbS5nZW5lcmF0ZWQuZC50cyNMNDE2ODUnLFxuICBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0LzM4YzMyNzllMjllNDVjMjc0YzQwOGQ5MDkzOTRiN2JmNDVjMjRmZGMvc3JjL2xpYi9kb20uZ2VuZXJhdGVkLmQudHMjTDQxNjkwJyxcbiAgV2luZG93U2Vzc2lvblN0b3JhZ2U6ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvMzhjMzI3OWUyOWU0NWMyNzRjNDA4ZDkwOTM5NGI3YmY0NWMyNGZkYy9zcmMvbGliL2RvbS5nZW5lcmF0ZWQuZC50cyNMNDE3MzYnXG59O1xuLy8gQ3NwZWxsOmVuYWJsZVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFVTyxNQUFNLGdCQUFnQixvQkFBSSxJQUFJLENBQUMsT0FBTyxNQUFNLFdBQVcsWUFBWSxDQUFDO0FBS3BFLE1BQU0sc0JBQXNCLG9CQUFJLElBQUk7QUFBQSxFQUN6QztBQUFBLEVBQ0E7QUFBQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0YsQ0FBQztBQUVELE1BQU0sY0FBYztBQUViLE1BQU0scUJBQTZDO0FBQUEsRUFDeEQsS0FBSyxHQUFHLFdBQVc7QUFBQSxFQUNuQixTQUFTLEdBQUcsV0FBVztBQUFBLEVBQ3ZCLE9BQU8sR0FBRyxXQUFXO0FBQUEsRUFDckIsTUFBTSxHQUFHLFdBQVc7QUFBQSxFQUNwQixRQUFRLEdBQUcsV0FBVztBQUFBLEVBQ3RCLFFBQVEsR0FBRyxXQUFXO0FBQUEsRUFDdEIsUUFBUSxHQUFHLFdBQVc7QUFBQSxFQUN0QixRQUFRLEdBQUcsV0FBVztBQUFBLEVBQ3RCLFdBQVcsR0FB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