@mnaoumov/obsidian-dev-toolkit 3.1.0 → 3.2.1

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 (97) hide show
  1. package/dist/lib/cjs/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +1 -75
  2. package/dist/lib/cjs/bundlers/esbuild-impl/dependency.cjs +3 -77
  3. package/dist/lib/cjs/bundlers/esbuild-impl/feature-options.cjs +1 -75
  4. package/dist/lib/cjs/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +1 -75
  5. package/dist/lib/cjs/bundlers/esbuild-impl/index.cjs +1 -75
  6. package/dist/lib/cjs/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +1 -75
  7. package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.cjs +3 -76
  8. package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.d.cts +1 -1
  9. package/dist/lib/cjs/bundlers/esbuild-impl/rename-css-plugin.cjs +1 -75
  10. package/dist/lib/cjs/bundlers/esbuild.cjs +1 -75
  11. package/dist/lib/cjs/bundlers/index.cjs +1 -75
  12. package/dist/lib/cjs/bundlers/obsidian-cli-reload.cjs +1 -75
  13. package/dist/lib/cjs/bundlers/obsidian-plugin-build.cjs +1 -75
  14. package/dist/lib/cjs/bundlers/obsidian-plugin-features.cjs +1 -75
  15. package/dist/lib/cjs/bundlers/obsidian-plugin-transforms.cjs +1 -75
  16. package/dist/lib/cjs/bundlers/obsidian-plugin-webpack-loader.cjs +1 -75
  17. package/dist/lib/cjs/bundlers/obsidian-plugins-folder-deployment.cjs +32 -85
  18. package/dist/lib/cjs/bundlers/parcel.cjs +112 -81
  19. package/dist/lib/cjs/bundlers/parcel.d.cts +13 -6
  20. package/dist/lib/cjs/bundlers/rollup-compatible-features.cjs +1 -75
  21. package/dist/lib/cjs/bundlers/rollup-compatible.cjs +1 -75
  22. package/dist/lib/cjs/bundlers/rollup.cjs +1 -75
  23. package/dist/lib/cjs/bundlers/vite.cjs +1 -75
  24. package/dist/lib/cjs/bundlers/webpack.cjs +3 -77
  25. package/dist/lib/cjs/demo-vault-app-json.cjs +1 -75
  26. package/dist/lib/cjs/demo-vault-buttons.cjs +1 -75
  27. package/dist/lib/cjs/demo-vault-cli.cjs +1 -75
  28. package/dist/lib/cjs/demo-vault-coverage.cjs +1 -75
  29. package/dist/lib/cjs/demo-vault.cjs +3 -77
  30. package/dist/lib/cjs/docs-site/index.cjs +1 -75
  31. package/dist/lib/cjs/docs-site/obsidian-external-type-links.cjs +1 -75
  32. package/dist/lib/cjs/formatters/dprint.cjs +1 -75
  33. package/dist/lib/cjs/formatters/index.cjs +1 -75
  34. package/dist/lib/cjs/index.cjs +1 -75
  35. package/dist/lib/cjs/integration-test-setup.cjs +1 -75
  36. package/dist/lib/cjs/integration-test-vitest-global-setup.cjs +1 -75
  37. package/dist/lib/cjs/jest-setup.cjs +1 -75
  38. package/dist/lib/cjs/jest-setup.d.cts +2 -1
  39. package/dist/lib/cjs/linters/eslint-config.cjs +1 -75
  40. package/dist/lib/cjs/linters/eslint-rules/index.cjs +1 -75
  41. package/dist/lib/cjs/linters/eslint-rules/manifest-description.cjs +1 -75
  42. package/dist/lib/cjs/linters/eslint-rules/manifest-helpers.cjs +1 -75
  43. package/dist/lib/cjs/linters/eslint-rules/manifest-id.cjs +1 -75
  44. package/dist/lib/cjs/linters/eslint-rules/manifest-name.cjs +1 -75
  45. package/dist/lib/cjs/linters/eslint-rules/manifest-schema.cjs +1 -75
  46. package/dist/lib/cjs/linters/eslint-rules/no-local-obsidian-internals.cjs +1 -75
  47. package/dist/lib/cjs/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian.cjs +2 -77
  48. package/dist/lib/cjs/linters/eslint-rules/no-untrusted-input-events.cjs +1 -75
  49. package/dist/lib/cjs/linters/eslint-rules/obsidian-dev-toolkit-plugin.cjs +1 -75
  50. package/dist/lib/cjs/linters/eslint-rules/plugin-name-as-code-in-ui.cjs +1 -75
  51. package/dist/lib/cjs/linters/eslint-rules/plugin-name-as-code.cjs +1 -75
  52. package/dist/lib/cjs/linters/eslint-rules/require-component-suffix.cjs +1 -75
  53. package/dist/lib/cjs/linters/eslint-rules/require-plugin-api-contract-schemas.cjs +1 -75
  54. package/dist/lib/cjs/linters/eslint.cjs +1 -75
  55. package/dist/lib/cjs/linters/index.cjs +1 -75
  56. package/dist/lib/cjs/linters/markdownlint-cli2-config.cjs +1 -75
  57. package/dist/lib/cjs/linters/markdownlint-rules/index.cjs +1 -75
  58. package/dist/lib/cjs/linters/markdownlint-rules/plugin-name-as-code.cjs +1 -75
  59. package/dist/lib/cjs/linters/markdownlint.cjs +1 -75
  60. package/dist/lib/cjs/linters/obsidianmd-rule-custom-message.cjs +1 -75
  61. package/dist/lib/cjs/linters/plugin-names.cjs +1 -75
  62. package/dist/lib/cjs/obsidian-plugin-repo-paths.cjs +1 -75
  63. package/dist/lib/cjs/setup.cjs +1 -75
  64. package/dist/lib/cjs/templates.cjs +3 -77
  65. package/dist/lib/cjs/test-runners/coverage-badge-cli.cjs +1 -75
  66. package/dist/lib/cjs/test-runners/coverage-badge.cjs +1 -75
  67. package/dist/lib/cjs/test-runners/e2e-runner-support.cjs +1 -75
  68. package/dist/lib/cjs/test-runners/index.cjs +4 -75
  69. package/dist/lib/cjs/test-runners/index.d.cts +1 -0
  70. package/dist/lib/cjs/test-runners/integration-test-plugin.cjs +3 -77
  71. package/dist/lib/cjs/test-runners/jest-config.cjs +92 -0
  72. package/dist/lib/cjs/test-runners/jest-config.d.cts +50 -0
  73. package/dist/lib/cjs/test-runners/obsidian-test-runner.cjs +1 -75
  74. package/dist/lib/cjs/test-runners/performance-eval-cap.cjs +4 -75
  75. package/dist/lib/cjs/test-runners/performance-eval-cap.d.cts +12 -3
  76. package/dist/lib/cjs/test-runners/stale-build-global-setup.cjs +1 -75
  77. package/dist/lib/cjs/test-runners/vitest-config.cjs +4 -80
  78. package/dist/lib/cjs/test-runners/wdio-obsidian.cjs +1 -75
  79. package/dist/lib/cjs/version.cjs +1 -75
  80. package/dist/lib/cjs/vitest-setup.cjs +1 -75
  81. package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.d.mts +1 -1
  82. package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.mjs +3 -2
  83. package/dist/lib/esm/bundlers/obsidian-plugins-folder-deployment.mjs +32 -15
  84. package/dist/lib/esm/bundlers/parcel.d.mts +13 -6
  85. package/dist/lib/esm/bundlers/parcel.mjs +110 -5
  86. package/dist/lib/esm/jest-setup.d.mts +2 -1
  87. package/dist/lib/esm/jest-setup.mjs +1 -1
  88. package/dist/lib/esm/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian.mjs +2 -2
  89. package/dist/lib/esm/test-runners/index.d.mts +1 -0
  90. package/dist/lib/esm/test-runners/index.mjs +3 -1
  91. package/dist/lib/esm/test-runners/jest-config.d.mts +50 -0
  92. package/dist/lib/esm/test-runners/jest-config.mjs +68 -0
  93. package/dist/lib/esm/test-runners/performance-eval-cap.d.mts +12 -3
  94. package/dist/lib/esm/test-runners/performance-eval-cap.mjs +3 -1
  95. package/dist/lib/esm/test-runners/vitest-config.mjs +4 -5
  96. package/package.json +19 -2
  97. package/test-runners/jest-config/package.json +6 -0
@@ -29,80 +29,6 @@ function ensureBrowserProcess() {
29
29
 
30
30
  ensureBrowserProcess();
31
31
  })();
32
- (function patchObsidianRequire() {
33
- const originalRequire = require;
34
- if (!originalRequire || originalRequire.__isPatched) {
35
- return;
36
- }
37
-
38
- require = Object.assign(
39
- (id) => requirePatched(id),
40
- originalRequire,
41
- {
42
- __isPatched: true
43
- }
44
- );
45
-
46
- function extractDefault(module) {
47
- return module && module.__esModule && 'default' in module ? module.default : module;
48
- }
49
-
50
- const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
51
- '@codemirror/autocomplete',
52
- '@codemirror/collab',
53
- '@codemirror/commands',
54
- '@codemirror/language',
55
- '@codemirror/lint',
56
- '@codemirror/search',
57
- '@codemirror/state',
58
- '@codemirror/text',
59
- '@codemirror/view',
60
- '@lezer/common',
61
- '@lezer/highlight',
62
- '@lezer/lr',
63
- 'obsidian']
64
- );
65
-
66
- const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
67
- '@codemirror/closebrackets',
68
- '@codemirror/comment',
69
- '@codemirror/fold',
70
- '@codemirror/gutter',
71
- '@codemirror/highlight',
72
- '@codemirror/history',
73
- '@codemirror/matchbrackets',
74
- '@codemirror/panel',
75
- '@codemirror/rangeset',
76
- '@codemirror/rectangular-selection',
77
- '@codemirror/stream-parser',
78
- '@codemirror/tooltip']
79
- );
80
-
81
- function requirePatched(id) {
82
- if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
83
- return originalRequire?.(id);
84
- }
85
-
86
- // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
87
- if (globalThis.app.isMobile) {
88
- if (id === 'process' || id === 'node:process') {
89
- // eslint-disable-next-line no-console -- Valid usage.
90
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
91
-
92
- return process;
93
- }
94
- } else {
95
- const module = originalRequire?.(id);
96
- if (module) {
97
- return extractDefault(module);
98
- }
99
- }
100
-
101
- // eslint-disable-next-line no-console -- Valid usage.
102
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
103
- return {};
104
- }
105
- })();
106
32
 
107
33
  "use strict";
108
34
  var __defProp = Object.defineProperty;
@@ -141,4 +67,4 @@ function setup(params) {
141
67
  0 && (module.exports = {
142
68
  setup
143
69
  });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXR1cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogRnJhbWV3b3JrLWFnbm9zdGljIHRlc3Qtc2V0dXAgZW5kcG9pbnQgZm9yIE9ic2lkaWFuIHBsdWdpbnMgYnVpbHQgb24gYEBtbmFvdW1vdi9vYnNpZGlhbi1saWJgLlxuICpcbiAqIERvZXMgZXZlcnl0aGluZyB0aGUgZ2VuZXJpYyBgc2V0dXBgIGZyb20gYEBtbmFvdW1vdi90eXBlc2NyaXB0LXRlc3QtdG9vbGtpdC9zZXR1cGAgZG9lcywgYW5kIGJlZm9yZSBlYWNoXG4gKiB0ZXN0IGFsc28gcmVzZXRzIHRoZSBPYnNpZGlhbiBoYWxmIG9mIHRoZSBzaGFyZWQgc3RhdGU6IHRoZSBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuRGV2VXRpbHNgIGJhZyAocXVldWVzLFxuICogcmVnaXN0ZXJlZCBoYW5kbGVycywgdGhlIHBsdWdpbi1BUEkgcmVnaXN0cnkpIGFuZCB0aGUgaW5qZWN0ZWQgYE9ic2lkaWFuTGlicmFyeWAgY29udGV4dC4gSXQgbGl2ZXMgaGVyZVxuICogcmF0aGVyIHRoYW4gaW4gdGhlIHRlc3QgdG9vbGtpdCBiZWNhdXNlIHRoZSB0ZXN0IHRvb2xraXQgbXVzdCBub3QgZGVwZW5kIG9uIGBAbW5hb3Vtb3Yvb2JzaWRpYW4tbGliYC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFNldHVwUGFyYW1zIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtdGVzdC10b29sa2l0L3NldHVwJztcblxuaW1wb3J0IHsgT2JzaWRpYW5MaWJyYXJ5IH0gZnJvbSAnQG1uYW91bW92L29ic2lkaWFuLWxpYi9saWJyYXJ5JztcbmltcG9ydCB7IHJlc2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlIH0gZnJvbSAnQG1uYW91bW92L29ic2lkaWFuLWxpYi9vYnNpZGlhbi1kZXYtdXRpbHMtc3RhdGUnO1xuaW1wb3J0IHsgc2V0dXAgYXMgc2V0dXBHZW5lcmljIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtdGVzdC10b29sa2l0L3NldHVwJztcblxuLyoqXG4gKiBSZWdpc3RlcnMgdGhlIHBlci10ZXN0IHNldHVwIGZvciBhbiBPYnNpZGlhbiBwbHVnaW4ncyB0ZXN0cyB3aXRoIGEgdGVzdCBmcmFtZXdvcmsncyBsaWZlY3ljbGUgaG9va3MuXG4gKlxuICogVGhlIE9ic2lkaWFuIHJlc2V0IGlzIHJlZ2lzdGVyZWQgZmlyc3QsIHNvIGl0IHJ1bnMgYmVmb3JlIHRoZSBnZW5lcmljIG9uZSBpbiBldmVyeSBgYmVmb3JlRWFjaGAsIGluIHRoZVxuICogc2FtZSBvcmRlciB0aGUgdHdvIHJhbiBpbiBiZWZvcmUgdGhleSB3ZXJlIHNwbGl0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgbGlmZWN5Y2xlIGhvb2sgcmVnaXN0cmFycyB0byB3aXJlIHNldHVwIGludG8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cChwYXJhbXM6IFNldHVwUGFyYW1zKTogdm9pZCB7XG4gIHBhcmFtcy5iZWZvcmVFYWNoKCgpID0+IHtcbiAgICByZXNldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSgpO1xuICAgIE9ic2lkaWFuTGlicmFyeS5yZXNldFRvRGVmYXVsdCgpO1xuICB9KTtcbiAgc2V0dXBHZW5lcmljKHBhcmFtcyk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUEscUJBQWdDO0FBQ2hDLHNDQUEyQztBQUMzQyxtQkFBc0M7QUFVL0IsU0FBUyxNQUFNLFFBQTJCO0FBQy9DLFNBQU8sV0FBVyxNQUFNO0FBQ3RCLG9FQUEyQjtBQUMzQixtQ0FBZ0IsZUFBZTtBQUFBLEVBQ2pDLENBQUM7QUFDRCxtQkFBQUEsT0FBYSxNQUFNO0FBQ3JCOyIsIm5hbWVzIjpbInNldHVwR2VuZXJpYyJdfQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXR1cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogRnJhbWV3b3JrLWFnbm9zdGljIHRlc3Qtc2V0dXAgZW5kcG9pbnQgZm9yIE9ic2lkaWFuIHBsdWdpbnMgYnVpbHQgb24gYEBtbmFvdW1vdi9vYnNpZGlhbi1saWJgLlxuICpcbiAqIERvZXMgZXZlcnl0aGluZyB0aGUgZ2VuZXJpYyBgc2V0dXBgIGZyb20gYEBtbmFvdW1vdi90eXBlc2NyaXB0LXRlc3QtdG9vbGtpdC9zZXR1cGAgZG9lcywgYW5kIGJlZm9yZSBlYWNoXG4gKiB0ZXN0IGFsc28gcmVzZXRzIHRoZSBPYnNpZGlhbiBoYWxmIG9mIHRoZSBzaGFyZWQgc3RhdGU6IHRoZSBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuRGV2VXRpbHNgIGJhZyAocXVldWVzLFxuICogcmVnaXN0ZXJlZCBoYW5kbGVycywgdGhlIHBsdWdpbi1BUEkgcmVnaXN0cnkpIGFuZCB0aGUgaW5qZWN0ZWQgYE9ic2lkaWFuTGlicmFyeWAgY29udGV4dC4gSXQgbGl2ZXMgaGVyZVxuICogcmF0aGVyIHRoYW4gaW4gdGhlIHRlc3QgdG9vbGtpdCBiZWNhdXNlIHRoZSB0ZXN0IHRvb2xraXQgbXVzdCBub3QgZGVwZW5kIG9uIGBAbW5hb3Vtb3Yvb2JzaWRpYW4tbGliYC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFNldHVwUGFyYW1zIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtdGVzdC10b29sa2l0L3NldHVwJztcblxuaW1wb3J0IHsgT2JzaWRpYW5MaWJyYXJ5IH0gZnJvbSAnQG1uYW91bW92L29ic2lkaWFuLWxpYi9saWJyYXJ5JztcbmltcG9ydCB7IHJlc2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlIH0gZnJvbSAnQG1uYW91bW92L29ic2lkaWFuLWxpYi9vYnNpZGlhbi1kZXYtdXRpbHMtc3RhdGUnO1xuaW1wb3J0IHsgc2V0dXAgYXMgc2V0dXBHZW5lcmljIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtdGVzdC10b29sa2l0L3NldHVwJztcblxuLyoqXG4gKiBSZWdpc3RlcnMgdGhlIHBlci10ZXN0IHNldHVwIGZvciBhbiBPYnNpZGlhbiBwbHVnaW4ncyB0ZXN0cyB3aXRoIGEgdGVzdCBmcmFtZXdvcmsncyBsaWZlY3ljbGUgaG9va3MuXG4gKlxuICogVGhlIE9ic2lkaWFuIHJlc2V0IGlzIHJlZ2lzdGVyZWQgZmlyc3QsIHNvIGl0IHJ1bnMgYmVmb3JlIHRoZSBnZW5lcmljIG9uZSBpbiBldmVyeSBgYmVmb3JlRWFjaGAsIGluIHRoZVxuICogc2FtZSBvcmRlciB0aGUgdHdvIHJhbiBpbiBiZWZvcmUgdGhleSB3ZXJlIHNwbGl0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgbGlmZWN5Y2xlIGhvb2sgcmVnaXN0cmFycyB0byB3aXJlIHNldHVwIGludG8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cChwYXJhbXM6IFNldHVwUGFyYW1zKTogdm9pZCB7XG4gIHBhcmFtcy5iZWZvcmVFYWNoKCgpID0+IHtcbiAgICByZXNldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSgpO1xuICAgIE9ic2lkaWFuTGlicmFyeS5yZXNldFRvRGVmYXVsdCgpO1xuICB9KTtcbiAgc2V0dXBHZW5lcmljKHBhcmFtcyk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBLHFCQUFnQztBQUNoQyxzQ0FBMkM7QUFDM0MsbUJBQXNDO0FBVS9CLFNBQVMsTUFBTSxRQUEyQjtBQUMvQyxTQUFPLFdBQVcsTUFBTTtBQUN0QixvRUFBMkI7QUFDM0IsbUNBQWdCLGVBQWU7QUFBQSxFQUNqQyxDQUFDO0FBQ0QsbUJBQUFBLE9BQWEsTUFBTTtBQUNyQjsiLCJuYW1lcyI6WyJzZXR1cEdlbmVyaWMiXX0=
@@ -29,80 +29,6 @@ function ensureBrowserProcess() {
29
29
 
30
30
  ensureBrowserProcess();
31
31
  })();
32
- (function patchObsidianRequire() {
33
- const originalRequire = require;
34
- if (!originalRequire || originalRequire.__isPatched) {
35
- return;
36
- }
37
-
38
- require = Object.assign(
39
- (id) => requirePatched(id),
40
- originalRequire,
41
- {
42
- __isPatched: true
43
- }
44
- );
45
-
46
- function extractDefault(module) {
47
- return module && module.__esModule && 'default' in module ? module.default : module;
48
- }
49
-
50
- const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
51
- '@codemirror/autocomplete',
52
- '@codemirror/collab',
53
- '@codemirror/commands',
54
- '@codemirror/language',
55
- '@codemirror/lint',
56
- '@codemirror/search',
57
- '@codemirror/state',
58
- '@codemirror/text',
59
- '@codemirror/view',
60
- '@lezer/common',
61
- '@lezer/highlight',
62
- '@lezer/lr',
63
- 'obsidian']
64
- );
65
-
66
- const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
67
- '@codemirror/closebrackets',
68
- '@codemirror/comment',
69
- '@codemirror/fold',
70
- '@codemirror/gutter',
71
- '@codemirror/highlight',
72
- '@codemirror/history',
73
- '@codemirror/matchbrackets',
74
- '@codemirror/panel',
75
- '@codemirror/rangeset',
76
- '@codemirror/rectangular-selection',
77
- '@codemirror/stream-parser',
78
- '@codemirror/tooltip']
79
- );
80
-
81
- function requirePatched(id) {
82
- if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
83
- return originalRequire?.(id);
84
- }
85
-
86
- // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
87
- if (globalThis.app.isMobile) {
88
- if (id === 'process' || id === 'node:process') {
89
- // eslint-disable-next-line no-console -- Valid usage.
90
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
91
-
92
- return process;
93
- }
94
- } else {
95
- const module = originalRequire?.(id);
96
- if (module) {
97
- return extractDefault(module);
98
- }
99
- }
100
-
101
- // eslint-disable-next-line no-console -- Valid usage.
102
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
103
- return {};
104
- }
105
- })();
106
32
 
107
33
  "use strict";
108
34
  var __defProp = Object.defineProperty;
@@ -131,7 +57,7 @@ var import_repo_paths = require('@mnaoumov/typescript-dev-toolkit/repo-paths');
131
57
  var import_root = require('@mnaoumov/typescript-dev-toolkit/root');
132
58
  var import_path = require('@mnaoumov/typescript-lib/path');
133
59
  var import_type_guards = require('@mnaoumov/typescript-lib/type-guards');
134
- var __import_meta_url = globalThis["import.meta.url"] ?? (function getObsidianCjsImportMetaUrl() {
60
+ var __import_meta_url = globalThis["import.meta.url"] ?? (function getCjsImportMetaUrl() {
135
61
  if (typeof __filename === "string") {
136
62
  const localRequire = require;
137
63
  const url = localRequire("node:url");
@@ -139,7 +65,7 @@ var __import_meta_url = globalThis["import.meta.url"] ?? (function getObsidianCj
139
65
  return url.pathToFileURL(__filename).href;
140
66
  }
141
67
  }
142
- return typeof window === "undefined" ? "" : activeWindow.location.href;
68
+ return globalThis.location?.href ?? "";
143
69
  })();
144
70
  function getTemplateFilePath(name) {
145
71
  const packageFolder = (0, import_root.getRootFolder)((0, import_path.getFolderName)(__import_meta_url));
@@ -150,4 +76,4 @@ function getTemplateFilePath(name) {
150
76
  0 && (module.exports = {
151
77
  getTemplateFilePath
152
78
  });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9faW1wb3J0X21ldGFfdXJsID0gZ2xvYmFsVGhpc1snaW1wb3J0Lm1ldGEudXJsJ10gPz8gKGZ1bmN0aW9uIGdldE9ic2lkaWFuQ2pzSW1wb3J0TWV0YVVybCgpIHtcbiAgaWYgKHR5cGVvZiBfX2ZpbGVuYW1lID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGxvY2FsUmVxdWlyZSA9IHJlcXVpcmU7XG4gICAgY29uc3QgdXJsID0gbG9jYWxSZXF1aXJlKCdub2RlOnVybCcpO1xuICAgIGlmICh0eXBlb2YgdXJsLnBhdGhUb0ZpbGVVUkwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiB1cmwucGF0aFRvRmlsZVVSTChfX2ZpbGVuYW1lKS5ocmVmO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZhbGxiYWNrIHRvIGFuIGVtcHR5IHN0cmluZyBpZiB0aGUgZW52aXJvbm1lbnQgaXMgdW5rbm93blxuICByZXR1cm4gdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgPyAnJyA6IGFjdGl2ZVdpbmRvdy5sb2NhdGlvbi5ocmVmO1xufSkoKTtcbi8qKlxuICogQGZpbGVcbiAqXG4gKiBMb2NhdGVzIHRoZSBjb25zdW1lci1mYWNpbmcgdGVtcGxhdGVzIHRoaXMgcGFja2FnZSBzaGlwcyBpbiBgZGlzdC90ZW1wbGF0ZXNgLlxuICovXG5cbmltcG9ydCB7IFJlcG9QYXRocyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0L3JlcG8tcGF0aHMnO1xuaW1wb3J0IHsgZ2V0Um9vdEZvbGRlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0L3Jvb3QnO1xuaW1wb3J0IHtcbiAgZ2V0Rm9sZGVyTmFtZSxcbiAgam9pblxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBhc3NlcnROb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYWJzb2x1dGUgcGF0aCBvZiBhIHRlbXBsYXRlIHRoaXMgcGFja2FnZSBzaGlwcy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSB0ZW1wbGF0ZSdzIGZpbGUgbmFtZSB3aXRoaW4gYGRpc3QvdGVtcGxhdGVzYCwgZS5nLiBgZXNsaW50LmNvbmZpZy5tdHNgLlxuICogQHJldHVybnMgVGhlIGFic29sdXRlIHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZW1wbGF0ZUZpbGVQYXRoKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHBhY2thZ2VGb2xkZXIgPSBnZXRSb290Rm9sZGVyKGdldEZvbGRlck5hbWUoaW1wb3J0Lm1ldGEudXJsKSk7XG4gIGFzc2VydE5vbk51bGxhYmxlKHBhY2thZ2VGb2xkZXIsICdQYWNrYWdlIGZvbGRlciBub3QgZm91bmQnKTtcbiAgcmV0dXJuIGpvaW4ocGFja2FnZUZvbGRlciwgUmVwb1BhdGhzLkRpc3RUZW1wbGF0ZXMsIG5hbWUpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWtCQSx3QkFBMEI7QUFDMUIsa0JBQThCO0FBQzlCLGtCQUdPO0FBQ1AseUJBQWtDO0FBeEJsQyxJQUFJLG9CQUFvQixXQUFXLGlCQUFpQixNQUFNLFNBQVMsOEJBQThCO0FBQy9GLE1BQUksT0FBTyxlQUFlLFVBQVU7QUFDbEMsVUFBTSxlQUFlO0FBQ3JCLFVBQU0sTUFBTSxhQUFhLFVBQVU7QUFDbkMsUUFBSSxPQUFPLElBQUksa0JBQWtCLFlBQVk7QUFDM0MsYUFBTyxJQUFJLGNBQWMsVUFBVSxFQUFFO0FBQUEsSUFDdkM7QUFBQSxFQUNGO0FBR0EsU0FBTyxPQUFPLFdBQVcsY0FBYyxLQUFLLGFBQWEsU0FBUztBQUNwRSxHQUFHO0FBcUJJLFNBQVMsb0JBQW9CLE1BQXNCO0FBQ3hELFFBQU0sb0JBQWdCLCtCQUFjLDJCQUFjLGlCQUFlLENBQUM7QUFDbEUsNENBQWtCLGVBQWUsMEJBQTBCO0FBQzNELGFBQU8sa0JBQUssZUFBZSw0QkFBVSxlQUFlLElBQUk7QUFDMUQ7IiwibmFtZXMiOltdfQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9faW1wb3J0X21ldGFfdXJsID0gZ2xvYmFsVGhpc1snaW1wb3J0Lm1ldGEudXJsJ10gPz8gKGZ1bmN0aW9uIGdldENqc0ltcG9ydE1ldGFVcmwoKSB7XG4gIGlmICh0eXBlb2YgX19maWxlbmFtZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIGNvbnN0IGxvY2FsUmVxdWlyZSA9IHJlcXVpcmU7XG4gICAgY29uc3QgdXJsID0gbG9jYWxSZXF1aXJlKFwibm9kZTp1cmxcIik7XG4gICAgaWYgKHR5cGVvZiB1cmwucGF0aFRvRmlsZVVSTCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm4gdXJsLnBhdGhUb0ZpbGVVUkwoX19maWxlbmFtZSkuaHJlZjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGdsb2JhbFRoaXMubG9jYXRpb24/LmhyZWYgPz8gXCJcIjtcbn0pKCk7XG4vKipcbiAqIEBmaWxlXG4gKlxuICogTG9jYXRlcyB0aGUgY29uc3VtZXItZmFjaW5nIHRlbXBsYXRlcyB0aGlzIHBhY2thZ2Ugc2hpcHMgaW4gYGRpc3QvdGVtcGxhdGVzYC5cbiAqL1xuXG5pbXBvcnQgeyBSZXBvUGF0aHMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9yZXBvLXBhdGhzJztcbmltcG9ydCB7IGdldFJvb3RGb2xkZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9yb290JztcbmltcG9ydCB7XG4gIGdldEZvbGRlck5hbWUsXG4gIGpvaW5cbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3BhdGgnO1xuaW1wb3J0IHsgYXNzZXJ0Tm9uTnVsbGFibGUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZS1ndWFyZHMnO1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGFic29sdXRlIHBhdGggb2YgYSB0ZW1wbGF0ZSB0aGlzIHBhY2thZ2Ugc2hpcHMuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgdGVtcGxhdGUncyBmaWxlIG5hbWUgd2l0aGluIGBkaXN0L3RlbXBsYXRlc2AsIGUuZy4gYGVzbGludC5jb25maWcubXRzYC5cbiAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGVtcGxhdGVGaWxlUGF0aChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBwYWNrYWdlRm9sZGVyID0gZ2V0Um9vdEZvbGRlcihnZXRGb2xkZXJOYW1lKGltcG9ydC5tZXRhLnVybCkpO1xuICBhc3NlcnROb25OdWxsYWJsZShwYWNrYWdlRm9sZGVyLCAnUGFja2FnZSBmb2xkZXIgbm90IGZvdW5kJyk7XG4gIHJldHVybiBqb2luKHBhY2thZ2VGb2xkZXIsIFJlcG9QYXRocy5EaXN0VGVtcGxhdGVzLCBuYW1lKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JBLHdCQUEwQjtBQUMxQixrQkFBOEI7QUFDOUIsa0JBR087QUFDUCx5QkFBa0M7QUF0QmxDLElBQUksb0JBQW9CLFdBQVcsaUJBQWlCLE1BQU0sU0FBUyxzQkFBc0I7QUFDdkYsTUFBSSxPQUFPLGVBQWUsVUFBVTtBQUNsQyxVQUFNLGVBQWU7QUFDckIsVUFBTSxNQUFNLGFBQWEsVUFBVTtBQUNuQyxRQUFJLE9BQU8sSUFBSSxrQkFBa0IsWUFBWTtBQUMzQyxhQUFPLElBQUksY0FBYyxVQUFVLEVBQUU7QUFBQSxJQUN2QztBQUFBLEVBQ0Y7QUFDQSxTQUFPLFdBQVcsVUFBVSxRQUFRO0FBQ3RDLEdBQUc7QUFxQkksU0FBUyxvQkFBb0IsTUFBc0I7QUFDeEQsUUFBTSxvQkFBZ0IsK0JBQWMsMkJBQWMsaUJBQWUsQ0FBQztBQUNsRSw0Q0FBa0IsZUFBZSwwQkFBMEI7QUFDM0QsYUFBTyxrQkFBSyxlQUFlLDRCQUFVLGVBQWUsSUFBSTtBQUMxRDsiLCJuYW1lcyI6W119
@@ -2,80 +2,6 @@
2
2
  THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
3
  if you want to view the source, please visit the github repository of this plugin
4
4
  */
5
- (function patchObsidianRequire() {
6
- const originalRequire = require;
7
- if (!originalRequire || originalRequire.__isPatched) {
8
- return;
9
- }
10
-
11
- require = Object.assign(
12
- (id) => requirePatched(id),
13
- originalRequire,
14
- {
15
- __isPatched: true
16
- }
17
- );
18
-
19
- function extractDefault(module) {
20
- return module && module.__esModule && 'default' in module ? module.default : module;
21
- }
22
-
23
- const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
24
- '@codemirror/autocomplete',
25
- '@codemirror/collab',
26
- '@codemirror/commands',
27
- '@codemirror/language',
28
- '@codemirror/lint',
29
- '@codemirror/search',
30
- '@codemirror/state',
31
- '@codemirror/text',
32
- '@codemirror/view',
33
- '@lezer/common',
34
- '@lezer/highlight',
35
- '@lezer/lr',
36
- 'obsidian']
37
- );
38
-
39
- const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
40
- '@codemirror/closebrackets',
41
- '@codemirror/comment',
42
- '@codemirror/fold',
43
- '@codemirror/gutter',
44
- '@codemirror/highlight',
45
- '@codemirror/history',
46
- '@codemirror/matchbrackets',
47
- '@codemirror/panel',
48
- '@codemirror/rangeset',
49
- '@codemirror/rectangular-selection',
50
- '@codemirror/stream-parser',
51
- '@codemirror/tooltip']
52
- );
53
-
54
- function requirePatched(id) {
55
- if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
56
- return originalRequire?.(id);
57
- }
58
-
59
- // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
60
- if (globalThis.app.isMobile) {
61
- if (id === 'process' || id === 'node:process') {
62
- // eslint-disable-next-line no-console -- Valid usage.
63
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
64
-
65
- return process;
66
- }
67
- } else {
68
- const module = originalRequire?.(id);
69
- if (module) {
70
- return extractDefault(module);
71
- }
72
- }
73
-
74
- // eslint-disable-next-line no-console -- Valid usage.
75
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
76
- return {};
77
- }
78
- })();
79
5
 
80
6
  "use strict";
81
7
  var __create = Object.create;
@@ -157,4 +83,4 @@ function isCoverageBadgeMetric(value) {
157
83
  parseCoverageBadgeArguments,
158
84
  runCoverageBadgeCli
159
85
  });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90ZXN0LXJ1bm5lcnMvY292ZXJhZ2UtYmFkZ2UtY2xpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGUgYGdlbmVyYXRlLWNvdmVyYWdlLWJhZGdlYCBjb21tYW5kOiByZWFkcyBpdHMgYXJndW1lbnRzLCBydW5zIHtAbGluayBnZW5lcmF0ZUNvdmVyYWdlQmFkZ2V9IGFuZCB0dXJucyB0aGUgcmVzdWx0XG4gKiBpbnRvIGFuIGV4aXQgY29kZS4gVGhlIGBvYnNpZGlhbi1wbHVnaW4tY2kueW1sYCByZXVzYWJsZSB3b3JrZmxvdyBydW5zIGl0IGFmdGVyIHRoZSBnYXRlLlxuICovXG5cbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQgeyBwYXJzZUFyZ3MgfSBmcm9tICdub2RlOnV0aWwnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIENvdmVyYWdlQmFkZ2VNZXRyaWMsXG4gIEdlbmVyYXRlQ292ZXJhZ2VCYWRnZU9wdGlvbnNcbn0gZnJvbSAnLi9jb3ZlcmFnZS1iYWRnZS50cyc7XG5cbmltcG9ydCB7IGdlbmVyYXRlQ292ZXJhZ2VCYWRnZSB9IGZyb20gJy4vY292ZXJhZ2UtYmFkZ2UudHMnO1xuXG5jb25zdCBNRVRSSUNTOiByZWFkb25seSBDb3ZlcmFnZUJhZGdlTWV0cmljW10gPSBbJ2JyYW5jaGVzJywgJ2Z1bmN0aW9ucycsICdsaW5lcycsICdsb3dlc3QnXTtcblxuLyoqXG4gKiBQYXJzZXMgdGhlIGNvbW1hbmQgbGluZSBvZiBgZ2VuZXJhdGUtY292ZXJhZ2UtYmFkZ2VgOiBgLS1sY292PTxwYXRoPmAsIGAtLW91dHB1dD08cGF0aD5gLCBgLS1tZXRyaWM9PG1ldHJpYz5gIGFuZFxuICogYC0tbGFiZWw9PHRleHQ+YCwgZWFjaCBvcHRpb25hbC5cbiAqXG4gKiBAcGFyYW0gJGFyZ3VtZW50cyAtIFRoZSBhcmd1bWVudHMsIHdpdGhvdXQgdGhlIG5vZGUgYW5kIHNjcmlwdCBwYXRocy5cbiAqIEByZXR1cm5zIFRoZSB7QGxpbmsgR2VuZXJhdGVDb3ZlcmFnZUJhZGdlT3B0aW9uc30uXG4gKiBAdGhyb3dzIFdoZW4gYW4gYXJndW1lbnQgaXMgdW5rbm93biwgb3IgYC0tbWV0cmljYCBpcyBub3QgYSB7QGxpbmsgQ292ZXJhZ2VCYWRnZU1ldHJpY30uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNvdmVyYWdlQmFkZ2VBcmd1bWVudHMoJGFyZ3VtZW50czogc3RyaW5nW10pOiBHZW5lcmF0ZUNvdmVyYWdlQmFkZ2VPcHRpb25zIHtcbiAgY29uc3QgeyB2YWx1ZXMgfSA9IHBhcnNlQXJncyh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbmFtZS1yZXBsYWNlbWVudHMgLS0gYGFyZ3NgIGlzIHRoZSBvcHRpb24gbmFtZSBOb2RlJ3MgYHBhcnNlQXJnc2AgcmVhZHMuXG4gICAgYXJnczogJGFyZ3VtZW50cyxcbiAgICBvcHRpb25zOiB7XG4gICAgICBsYWJlbDogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgbGNvdjogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgbWV0cmljOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICBvdXRwdXQ6IHsgdHlwZTogJ3N0cmluZycgfVxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgeyBsYWJlbCwgbGNvdiwgbWV0cmljLCBvdXRwdXQgfSA9IHZhbHVlcztcbiAgaWYgKG1ldHJpYyAhPT0gdW5kZWZpbmVkICYmICFpc0NvdmVyYWdlQmFkZ2VNZXRyaWMobWV0cmljKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biAtLW1ldHJpYyAnJHttZXRyaWN9Jy4gVXNlIG9uZSBvZjogJHtNRVRSSUNTLmpvaW4oJywgJyl9LmApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi4obGFiZWwgIT09IHVuZGVmaW5lZCAmJiB7IGxhYmVsIH0pLFxuICAgIC4uLihsY292ICE9PSB1bmRlZmluZWQgJiYgeyBsY292UGF0aDogbGNvdiB9KSxcbiAgICAuLi4obWV0cmljICE9PSB1bmRlZmluZWQgJiYgeyBtZXRyaWMgfSksXG4gICAgLi4uKG91dHB1dCAhPT0gdW5kZWZpbmVkICYmIHsgb3V0cHV0UGF0aDogb3V0cHV0IH0pXG4gIH07XG59XG5cbi8qKlxuICogUnVucyBgZ2VuZXJhdGUtY292ZXJhZ2UtYmFkZ2VgLlxuICpcbiAqIEBwYXJhbSAkYXJndW1lbnRzIC0gVGhlIGFyZ3VtZW50cywgd2l0aG91dCB0aGUgbm9kZSBhbmQgc2NyaXB0IHBhdGhzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgZXhpdCBjb2RlOiBgMGAgb25jZSB0aGUgYmFkZ2UgaXMgd3JpdHRlbiwgYDFgIG9uIGFueSBmYWlsdXJlLCB3aGljaFxuICogICBpcyBwcmludGVkIHRvIHN0ZGVyci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkNvdmVyYWdlQmFkZ2VDbGkoJGFyZ3VtZW50czogc3RyaW5nW10pOiBQcm9taXNlPG51bWJlcj4ge1xuICB0cnkge1xuICAgIGNvbnN0IHsgb3V0cHV0UGF0aCwgcGVyY2VudCB9ID0gYXdhaXQgZ2VuZXJhdGVDb3ZlcmFnZUJhZGdlKHBhcnNlQ292ZXJhZ2VCYWRnZUFyZ3VtZW50cygkYXJndW1lbnRzKSk7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYFdyb3RlIHRoZSBjb3ZlcmFnZSBiYWRnZSAoJHtTdHJpbmcocGVyY2VudCl9JSkgdG8gJHtvdXRwdXRQYXRofVxcbmApO1xuICAgIHJldHVybiAwO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1cXG5gKTtcbiAgICByZXR1cm4gMTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0NvdmVyYWdlQmFkZ2VNZXRyaWModmFsdWU6IHN0cmluZyk6IHZhbHVlIGlzIENvdmVyYWdlQmFkZ2VNZXRyaWMge1xuICByZXR1cm4gKE1FVFJJQ1MgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKHZhbHVlKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQSwwQkFBb0I7QUFDcEIsdUJBQTBCO0FBTzFCLDRCQUFzQztBQUV0QyxNQUFNLFVBQTBDLENBQUMsWUFBWSxhQUFhLFNBQVMsUUFBUTtBQVVwRixTQUFTLDRCQUE0QixZQUFvRDtBQUM5RixRQUFNLEVBQUUsT0FBTyxRQUFJLDRCQUFVO0FBQUE7QUFBQSxJQUUzQixNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsTUFDUCxPQUFPLEVBQUUsTUFBTSxTQUFTO0FBQUEsTUFDeEIsTUFBTSxFQUFFLE1BQU0sU0FBUztBQUFBLE1BQ3ZCLFFBQVEsRUFBRSxNQUFNLFNBQVM7QUFBQSxNQUN6QixRQUFRLEVBQUUsTUFBTSxTQUFTO0FBQUEsSUFDM0I7QUFBQSxFQUNGLENBQUM7QUFFRCxRQUFNLEVBQUUsT0FBTyxNQUFNLFFBQVEsT0FBTyxJQUFJO0FBQ3hDLE1BQUksV0FBVyxVQUFhLENBQUMsc0JBQXNCLE1BQU0sR0FBRztBQUMxRCxVQUFNLElBQUksTUFBTSxxQkFBcUIsTUFBTSxrQkFBa0IsUUFBUSxLQUFLLElBQUksQ0FBQyxHQUFHO0FBQUEsRUFDcEY7QUFFQSxTQUFPO0FBQUEsSUFDTCxHQUFJLFVBQVUsVUFBYSxFQUFFLE1BQU07QUFBQSxJQUNuQyxHQUFJLFNBQVMsVUFBYSxFQUFFLFVBQVUsS0FBSztBQUFBLElBQzNDLEdBQUksV0FBVyxVQUFhLEVBQUUsT0FBTztBQUFBLElBQ3JDLEdBQUksV0FBVyxVQUFhLEVBQUUsWUFBWSxPQUFPO0FBQUEsRUFDbkQ7QUFDRjtBQVNBLGVBQXNCLG9CQUFvQixZQUF1QztBQUMvRSxNQUFJO0FBQ0YsVUFBTSxFQUFFLFlBQVksUUFBUSxJQUFJLFVBQU0sNkNBQXNCLDRCQUE0QixVQUFVLENBQUM7QUFDbkcsd0JBQUFBLFFBQVEsT0FBTyxNQUFNLDZCQUE2QixPQUFPLE9BQU8sQ0FBQyxTQUFTLFVBQVU7QUFBQSxDQUFJO0FBQ3hGLFdBQU87QUFBQSxFQUNULFNBQVMsT0FBTztBQUNkLHdCQUFBQSxRQUFRLE9BQU8sTUFBTSxHQUFHLGlCQUFpQixRQUFRLE1BQU0sVUFBVSxPQUFPLEtBQUssQ0FBQztBQUFBLENBQUk7QUFDbEYsV0FBTztBQUFBLEVBQ1Q7QUFDRjtBQUVBLFNBQVMsc0JBQXNCLE9BQTZDO0FBQzFFLFNBQVEsUUFBOEIsU0FBUyxLQUFLO0FBQ3REOyIsIm5hbWVzIjpbInByb2Nlc3MiXX0=
86
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVubmVycy9jb3ZlcmFnZS1iYWRnZS1jbGkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGUgYGdlbmVyYXRlLWNvdmVyYWdlLWJhZGdlYCBjb21tYW5kOiByZWFkcyBpdHMgYXJndW1lbnRzLCBydW5zIHtAbGluayBnZW5lcmF0ZUNvdmVyYWdlQmFkZ2V9IGFuZCB0dXJucyB0aGUgcmVzdWx0XG4gKiBpbnRvIGFuIGV4aXQgY29kZS4gVGhlIGBvYnNpZGlhbi1wbHVnaW4tY2kueW1sYCByZXVzYWJsZSB3b3JrZmxvdyBydW5zIGl0IGFmdGVyIHRoZSBnYXRlLlxuICovXG5cbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQgeyBwYXJzZUFyZ3MgfSBmcm9tICdub2RlOnV0aWwnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIENvdmVyYWdlQmFkZ2VNZXRyaWMsXG4gIEdlbmVyYXRlQ292ZXJhZ2VCYWRnZU9wdGlvbnNcbn0gZnJvbSAnLi9jb3ZlcmFnZS1iYWRnZS50cyc7XG5cbmltcG9ydCB7IGdlbmVyYXRlQ292ZXJhZ2VCYWRnZSB9IGZyb20gJy4vY292ZXJhZ2UtYmFkZ2UudHMnO1xuXG5jb25zdCBNRVRSSUNTOiByZWFkb25seSBDb3ZlcmFnZUJhZGdlTWV0cmljW10gPSBbJ2JyYW5jaGVzJywgJ2Z1bmN0aW9ucycsICdsaW5lcycsICdsb3dlc3QnXTtcblxuLyoqXG4gKiBQYXJzZXMgdGhlIGNvbW1hbmQgbGluZSBvZiBgZ2VuZXJhdGUtY292ZXJhZ2UtYmFkZ2VgOiBgLS1sY292PTxwYXRoPmAsIGAtLW91dHB1dD08cGF0aD5gLCBgLS1tZXRyaWM9PG1ldHJpYz5gIGFuZFxuICogYC0tbGFiZWw9PHRleHQ+YCwgZWFjaCBvcHRpb25hbC5cbiAqXG4gKiBAcGFyYW0gJGFyZ3VtZW50cyAtIFRoZSBhcmd1bWVudHMsIHdpdGhvdXQgdGhlIG5vZGUgYW5kIHNjcmlwdCBwYXRocy5cbiAqIEByZXR1cm5zIFRoZSB7QGxpbmsgR2VuZXJhdGVDb3ZlcmFnZUJhZGdlT3B0aW9uc30uXG4gKiBAdGhyb3dzIFdoZW4gYW4gYXJndW1lbnQgaXMgdW5rbm93biwgb3IgYC0tbWV0cmljYCBpcyBub3QgYSB7QGxpbmsgQ292ZXJhZ2VCYWRnZU1ldHJpY30uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNvdmVyYWdlQmFkZ2VBcmd1bWVudHMoJGFyZ3VtZW50czogc3RyaW5nW10pOiBHZW5lcmF0ZUNvdmVyYWdlQmFkZ2VPcHRpb25zIHtcbiAgY29uc3QgeyB2YWx1ZXMgfSA9IHBhcnNlQXJncyh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbmFtZS1yZXBsYWNlbWVudHMgLS0gYGFyZ3NgIGlzIHRoZSBvcHRpb24gbmFtZSBOb2RlJ3MgYHBhcnNlQXJnc2AgcmVhZHMuXG4gICAgYXJnczogJGFyZ3VtZW50cyxcbiAgICBvcHRpb25zOiB7XG4gICAgICBsYWJlbDogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgbGNvdjogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgbWV0cmljOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICBvdXRwdXQ6IHsgdHlwZTogJ3N0cmluZycgfVxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgeyBsYWJlbCwgbGNvdiwgbWV0cmljLCBvdXRwdXQgfSA9IHZhbHVlcztcbiAgaWYgKG1ldHJpYyAhPT0gdW5kZWZpbmVkICYmICFpc0NvdmVyYWdlQmFkZ2VNZXRyaWMobWV0cmljKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biAtLW1ldHJpYyAnJHttZXRyaWN9Jy4gVXNlIG9uZSBvZjogJHtNRVRSSUNTLmpvaW4oJywgJyl9LmApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi4obGFiZWwgIT09IHVuZGVmaW5lZCAmJiB7IGxhYmVsIH0pLFxuICAgIC4uLihsY292ICE9PSB1bmRlZmluZWQgJiYgeyBsY292UGF0aDogbGNvdiB9KSxcbiAgICAuLi4obWV0cmljICE9PSB1bmRlZmluZWQgJiYgeyBtZXRyaWMgfSksXG4gICAgLi4uKG91dHB1dCAhPT0gdW5kZWZpbmVkICYmIHsgb3V0cHV0UGF0aDogb3V0cHV0IH0pXG4gIH07XG59XG5cbi8qKlxuICogUnVucyBgZ2VuZXJhdGUtY292ZXJhZ2UtYmFkZ2VgLlxuICpcbiAqIEBwYXJhbSAkYXJndW1lbnRzIC0gVGhlIGFyZ3VtZW50cywgd2l0aG91dCB0aGUgbm9kZSBhbmQgc2NyaXB0IHBhdGhzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgZXhpdCBjb2RlOiBgMGAgb25jZSB0aGUgYmFkZ2UgaXMgd3JpdHRlbiwgYDFgIG9uIGFueSBmYWlsdXJlLCB3aGljaFxuICogICBpcyBwcmludGVkIHRvIHN0ZGVyci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkNvdmVyYWdlQmFkZ2VDbGkoJGFyZ3VtZW50czogc3RyaW5nW10pOiBQcm9taXNlPG51bWJlcj4ge1xuICB0cnkge1xuICAgIGNvbnN0IHsgb3V0cHV0UGF0aCwgcGVyY2VudCB9ID0gYXdhaXQgZ2VuZXJhdGVDb3ZlcmFnZUJhZGdlKHBhcnNlQ292ZXJhZ2VCYWRnZUFyZ3VtZW50cygkYXJndW1lbnRzKSk7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYFdyb3RlIHRoZSBjb3ZlcmFnZSBiYWRnZSAoJHtTdHJpbmcocGVyY2VudCl9JSkgdG8gJHtvdXRwdXRQYXRofVxcbmApO1xuICAgIHJldHVybiAwO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1cXG5gKTtcbiAgICByZXR1cm4gMTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0NvdmVyYWdlQmFkZ2VNZXRyaWModmFsdWU6IHN0cmluZyk6IHZhbHVlIGlzIENvdmVyYWdlQmFkZ2VNZXRyaWMge1xuICByZXR1cm4gKE1FVFJJQ1MgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKHZhbHVlKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BLDBCQUFvQjtBQUNwQix1QkFBMEI7QUFPMUIsNEJBQXNDO0FBRXRDLE1BQU0sVUFBMEMsQ0FBQyxZQUFZLGFBQWEsU0FBUyxRQUFRO0FBVXBGLFNBQVMsNEJBQTRCLFlBQW9EO0FBQzlGLFFBQU0sRUFBRSxPQUFPLFFBQUksNEJBQVU7QUFBQTtBQUFBLElBRTNCLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxNQUNQLE9BQU8sRUFBRSxNQUFNLFNBQVM7QUFBQSxNQUN4QixNQUFNLEVBQUUsTUFBTSxTQUFTO0FBQUEsTUFDdkIsUUFBUSxFQUFFLE1BQU0sU0FBUztBQUFBLE1BQ3pCLFFBQVEsRUFBRSxNQUFNLFNBQVM7QUFBQSxJQUMzQjtBQUFBLEVBQ0YsQ0FBQztBQUVELFFBQU0sRUFBRSxPQUFPLE1BQU0sUUFBUSxPQUFPLElBQUk7QUFDeEMsTUFBSSxXQUFXLFVBQWEsQ0FBQyxzQkFBc0IsTUFBTSxHQUFHO0FBQzFELFVBQU0sSUFBSSxNQUFNLHFCQUFxQixNQUFNLGtCQUFrQixRQUFRLEtBQUssSUFBSSxDQUFDLEdBQUc7QUFBQSxFQUNwRjtBQUVBLFNBQU87QUFBQSxJQUNMLEdBQUksVUFBVSxVQUFhLEVBQUUsTUFBTTtBQUFBLElBQ25DLEdBQUksU0FBUyxVQUFhLEVBQUUsVUFBVSxLQUFLO0FBQUEsSUFDM0MsR0FBSSxXQUFXLFVBQWEsRUFBRSxPQUFPO0FBQUEsSUFDckMsR0FBSSxXQUFXLFVBQWEsRUFBRSxZQUFZLE9BQU87QUFBQSxFQUNuRDtBQUNGO0FBU0EsZUFBc0Isb0JBQW9CLFlBQXVDO0FBQy9FLE1BQUk7QUFDRixVQUFNLEVBQUUsWUFBWSxRQUFRLElBQUksVUFBTSw2Q0FBc0IsNEJBQTRCLFVBQVUsQ0FBQztBQUNuRyx3QkFBQUEsUUFBUSxPQUFPLE1BQU0sNkJBQTZCLE9BQU8sT0FBTyxDQUFDLFNBQVMsVUFBVTtBQUFBLENBQUk7QUFDeEYsV0FBTztBQUFBLEVBQ1QsU0FBUyxPQUFPO0FBQ2Qsd0JBQUFBLFFBQVEsT0FBTyxNQUFNLEdBQUcsaUJBQWlCLFFBQVEsTUFBTSxVQUFVLE9BQU8sS0FBSyxDQUFDO0FBQUEsQ0FBSTtBQUNsRixXQUFPO0FBQUEsRUFDVDtBQUNGO0FBRUEsU0FBUyxzQkFBc0IsT0FBNkM7QUFDMUUsU0FBUSxRQUE4QixTQUFTLEtBQUs7QUFDdEQ7IiwKICAibmFtZXMiOiBbInByb2Nlc3MiXQp9Cg==
@@ -29,80 +29,6 @@ function ensureBrowserProcess() {
29
29
 
30
30
  ensureBrowserProcess();
31
31
  })();
32
- (function patchObsidianRequire() {
33
- const originalRequire = require;
34
- if (!originalRequire || originalRequire.__isPatched) {
35
- return;
36
- }
37
-
38
- require = Object.assign(
39
- (id) => requirePatched(id),
40
- originalRequire,
41
- {
42
- __isPatched: true
43
- }
44
- );
45
-
46
- function extractDefault(module) {
47
- return module && module.__esModule && 'default' in module ? module.default : module;
48
- }
49
-
50
- const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
51
- '@codemirror/autocomplete',
52
- '@codemirror/collab',
53
- '@codemirror/commands',
54
- '@codemirror/language',
55
- '@codemirror/lint',
56
- '@codemirror/search',
57
- '@codemirror/state',
58
- '@codemirror/text',
59
- '@codemirror/view',
60
- '@lezer/common',
61
- '@lezer/highlight',
62
- '@lezer/lr',
63
- 'obsidian']
64
- );
65
-
66
- const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
67
- '@codemirror/closebrackets',
68
- '@codemirror/comment',
69
- '@codemirror/fold',
70
- '@codemirror/gutter',
71
- '@codemirror/highlight',
72
- '@codemirror/history',
73
- '@codemirror/matchbrackets',
74
- '@codemirror/panel',
75
- '@codemirror/rangeset',
76
- '@codemirror/rectangular-selection',
77
- '@codemirror/stream-parser',
78
- '@codemirror/tooltip']
79
- );
80
-
81
- function requirePatched(id) {
82
- if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
83
- return originalRequire?.(id);
84
- }
85
-
86
- // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
87
- if (globalThis.app.isMobile) {
88
- if (id === 'process' || id === 'node:process') {
89
- // eslint-disable-next-line no-console -- Valid usage.
90
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
91
-
92
- return process;
93
- }
94
- } else {
95
- const module = originalRequire?.(id);
96
- if (module) {
97
- return extractDefault(module);
98
- }
99
- }
100
-
101
- // eslint-disable-next-line no-console -- Valid usage.
102
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
103
- return {};
104
- }
105
- })();
106
32
 
107
33
  "use strict";
108
34
  var __defProp = Object.defineProperty;
@@ -276,4 +202,4 @@ function toPercent(count) {
276
202
  parseLcovTotals,
277
203
  renderCoverageBadgeSvg
278
204
  });
279
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90ZXN0LXJ1bm5lcnMvY292ZXJhZ2UtYmFkZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFJlbmRlcnMgYSBjb3ZlcmFnZSBiYWRnZSBmcm9tIHRoZSBgY292ZXJhZ2UvbGNvdi5pbmZvYCByZXBvcnQgYHRlc3RDb3ZlcmFnZWAgd3JpdGVzLCBhcyBhIHNlbGYtY29udGFpbmVkIFNWRyBpblxuICogdGhlIHNoaWVsZHMuaW8gZmxhdCBzdHlsZSwgc28gYSBSRUFETUUgY2FuIHNob3cgdGhlIG1lYXN1cmVkIGNvdmVyYWdlIHdpdGggbm8gZXh0ZXJuYWwgc2VydmljZS4gVGhlXG4gKiBgb2JzaWRpYW4tcGx1Z2luLWNpLnltbGAgcmV1c2FibGUgd29ya2Zsb3cgcHVibGlzaGVzIGl0IHRvIGEgYGJhZGdlc2AgYnJhbmNoOyBzZWUgdGhlIENJIGFuZCByZWxlYXNlIGd1aWRlLlxuICovXG5cbmltcG9ydCB7IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXQvcm9vdCc7XG5pbXBvcnQge1xuICBta2RpcixcbiAgcmVhZEZpbGUsXG4gIHdyaXRlRmlsZVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCB7IGRpcm5hbWUgfSBmcm9tICdub2RlOnBhdGgnO1xuXG4vKipcbiAqIFdoaWNoIGNvdmVyYWdlIGZpZ3VyZSB0aGUgYmFkZ2Ugc2hvd3MuXG4gKlxuICogLSBgbGluZXNgOiB0aGUgc2hhcmUgb2YgbGluZXMgY292ZXJlZCwgdGhlIGZpZ3VyZSBtb3N0IGNvdmVyYWdlIHNlcnZpY2VzIHNob3cuXG4gKiAtIGBmdW5jdGlvbnNgOiB0aGUgc2hhcmUgb2YgZnVuY3Rpb25zIGNvdmVyZWQuXG4gKiAtIGBicmFuY2hlc2A6IHRoZSBzaGFyZSBvZiBicmFuY2hlcyBjb3ZlcmVkLlxuICogLSBgbG93ZXN0YDogdGhlIGxvd2VzdCBvZiB0aGUgdGhyZWUsIHNvIHRoZSBiYWRnZSBuZXZlciBzaG93cyBhIGZpZ3VyZSBvbmUgb2YgdGhlIG90aGVycyBmYWxscyBiZWxvdy5cbiAqL1xuZXhwb3J0IHR5cGUgQ292ZXJhZ2VCYWRnZU1ldHJpYyA9ICdicmFuY2hlcycgfCAnZnVuY3Rpb25zJyB8ICdsaW5lcycgfCAnbG93ZXN0JztcblxuLyoqXG4gKiBBIGNvdmVyZWQgYW5kIGEgdG90YWwgY291bnQgb2Ygb25lIGtpbmQgb2YgY292ZXJhZ2UgaXRlbS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3ZlcmFnZUNvdW50IHtcbiAgLyoqXG4gICAqIEhvdyBtYW55IGl0ZW1zIGFyZSBjb3ZlcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY292ZXJlZDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBIb3cgbWFueSBpdGVtcyB0aGVyZSBhcmUuXG4gICAqL1xuICByZWFkb25seSB0b3RhbDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSBjb3ZlcmFnZSB0b3RhbHMgb2YgYSB3aG9sZSBsY292IHJlcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3ZlcmFnZVRvdGFscyB7XG4gIC8qKlxuICAgKiBUaGUgYnJhbmNoZXMgKGBCUkZgIC8gYEJSSGApLlxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoZXM6IENvdmVyYWdlQ291bnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbnMgKGBGTkZgIC8gYEZOSGApLlxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb25zOiBDb3ZlcmFnZUNvdW50O1xuXG4gIC8qKlxuICAgKiBUaGUgbGluZXMgKGBMRmAgLyBgTEhgKS5cbiAgICovXG4gIHJlYWRvbmx5IGxpbmVzOiBDb3ZlcmFnZUNvdW50O1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBnZW5lcmF0ZUNvdmVyYWdlQmFkZ2V9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlQ292ZXJhZ2VCYWRnZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHRleHQgb24gdGhlIGxlZnQgaGFsZiBvZiB0aGUgYmFkZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnY292ZXJhZ2UnYFxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsY292IHJlcG9ydCB0byByZWFkLCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCByb290LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJ2NvdmVyYWdlL2xjb3YuaW5mbydgXG4gICAqL1xuICByZWFkb25seSBsY292UGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogV2hpY2ggY292ZXJhZ2UgZmlndXJlIHRoZSBiYWRnZSBzaG93cy5cbiAgICpcbiAgICogQGRlZmF1bHQgYCdsaW5lcydgXG4gICAqL1xuICByZWFkb25seSBtZXRyaWM/OiBDb3ZlcmFnZUJhZGdlTWV0cmljO1xuXG4gIC8qKlxuICAgKiBXaGVyZSB0byB3cml0ZSB0aGUgU1ZHLCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCByb290LiBUaGUgZGVmYXVsdCBzaXRzIGJlc2lkZSB0aGUgcmVwb3J0LCBpbiBhIGZvbGRlciBhXG4gICAqIHByb2plY3QgaWdub3Jlcywgc28gYSBsb2NhbCBjb3ZlcmFnZSBydW4gbmV2ZXIgbGVhdmVzIGEgY2hhbmdlZCBmaWxlIGJlaGluZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYCdjb3ZlcmFnZS9jb3ZlcmFnZS1iYWRnZS5zdmcnYFxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0UGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgcmVzdWx0IG9mIHtAbGluayBnZW5lcmF0ZUNvdmVyYWdlQmFkZ2V9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlQ292ZXJhZ2VCYWRnZVJlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgYWJzb2x1dGUgcGF0aCBvZiB0aGUgU1ZHIHdyaXR0ZW4uXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb3ZlcmFnZSBmaWd1cmUgdGhlIGJhZGdlIHNob3dzLCBpbiBwZXJjZW50cywgcm91bmRlZCBkb3duIHRvIG9uZSBkZWNpbWFsLlxuICAgKi9cbiAgcmVhZG9ubHkgcGVyY2VudDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZW5kZXJDb3ZlcmFnZUJhZGdlU3ZnfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJDb3ZlcmFnZUJhZGdlU3ZnUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSB0ZXh0IG9uIHRoZSBsZWZ0IGhhbGYgb2YgdGhlIGJhZGdlLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvdmVyYWdlIGZpZ3VyZSwgaW4gcGVyY2VudHMuXG4gICAqL1xuICByZWFkb25seSBwZXJjZW50OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBCYWRnZUNvbG9yVGhyZXNob2xkIHtcbiAgcmVhZG9ubHkgY29sb3I6IHN0cmluZztcbiAgcmVhZG9ubHkgbWluUGVyY2VudDogbnVtYmVyO1xufVxuXG5jb25zdCBERUZBVUxUX0xBQkVMID0gJ2NvdmVyYWdlJztcbmNvbnN0IERFRkFVTFRfTENPVl9QQVRIID0gJ2NvdmVyYWdlL2xjb3YuaW5mbyc7XG5jb25zdCBERUZBVUxUX09VVFBVVF9QQVRIID0gJ2NvdmVyYWdlL2NvdmVyYWdlLWJhZGdlLnN2Zyc7XG5jb25zdCBGVUxMX1BFUkNFTlQgPSAxMDA7XG5jb25zdCBQRVJDRU5UX1BSRUNJU0lPTiA9IDEwO1xuXG5jb25zdCBHUkVFTl9NSU5fUEVSQ0VOVCA9IDkwO1xuY29uc3QgWUVMTE9XX0dSRUVOX01JTl9QRVJDRU5UID0gODA7XG5jb25zdCBZRUxMT1dfTUlOX1BFUkNFTlQgPSA3MDtcbmNvbnN0IE9SQU5HRV9NSU5fUEVSQ0VOVCA9IDYwO1xuY29uc3QgUkVEID0gJyNlMDVkNDQnO1xuXG4vLyBUaGUgc2hpZWxkcy5pbyBjb2xvciBzY2FsZSwgZnJvbSB0aGUgdG9wIGRvd247IHRoZSBsYXN0IGVudHJ5IGNhdGNoZXMgZXZlcnl0aGluZyBiZWxvdyBpdC5cbmNvbnN0IEJBREdFX0NPTE9SX1RIUkVTSE9MRFM6IHJlYWRvbmx5IEJhZGdlQ29sb3JUaHJlc2hvbGRbXSA9IFtcbiAgeyBjb2xvcjogJyM0YzEnLCBtaW5QZXJjZW50OiBGVUxMX1BFUkNFTlQgfSxcbiAgeyBjb2xvcjogJyM5N2NhMDAnLCBtaW5QZXJjZW50OiBHUkVFTl9NSU5fUEVSQ0VOVCB9LFxuICB7IGNvbG9yOiAnI2E0YTYxZCcsIG1pblBlcmNlbnQ6IFlFTExPV19HUkVFTl9NSU5fUEVSQ0VOVCB9LFxuICB7IGNvbG9yOiAnI2RmYjMxNycsIG1pblBlcmNlbnQ6IFlFTExPV19NSU5fUEVSQ0VOVCB9LFxuICB7IGNvbG9yOiAnI2ZlN2QzNycsIG1pblBlcmNlbnQ6IE9SQU5HRV9NSU5fUEVSQ0VOVCB9LFxuICB7IGNvbG9yOiBSRUQsIG1pblBlcmNlbnQ6IDAgfVxuXTtcblxuY29uc3QgQkFER0VfSEVJR0hUID0gMjA7XG4vLyBUaGUgcGFkZGluZyBvbiBib3RoIHNpZGVzIG9mIGEgdGV4dCB0b2dldGhlci5cbmNvbnN0IFRFWFRfUEFERElORyA9IDEyO1xuY29uc3QgSEFMRiA9IDAuNTtcbmNvbnN0IFRFWFRfQkFTRUxJTkUgPSAxNDtcbmNvbnN0IFRFWFRfU0hBRE9XX0JBU0VMSU5FID0gMTU7XG5cbi8vIEFwcHJveGltYXRlIGFkdmFuY2Ugd2lkdGhzIG9mIDExcHggVmVyZGFuYSwgdGhlIGZhY2Ugc2hpZWxkcy5pbyBtZWFzdXJlcyB3aXRoLiBUaGUgcmVuZGVyZWQgdGV4dCBpcyBzdHJldGNoZWQgdG9cbi8vIHRoZSBjb21wdXRlZCB3aWR0aCB0aHJvdWdoIGB0ZXh0TGVuZ3RoYCwgc28gYW4gZXN0aW1hdGUgYSBwaXhlbCBvZmYgbW92ZXMgdGhlIHBhZGRpbmcsIG5ldmVyIGNsaXBzIHRoZSB0ZXh0LlxuY29uc3QgTkFSUk9XX0NIQVJBQ1RFUl9XSURUSCA9IDMuOTtcbmNvbnN0IERFRkFVTFRfQ0hBUkFDVEVSX1dJRFRIID0gNztcbmNvbnN0IFdJREVfQ0hBUkFDVEVSX1dJRFRIID0gOS41O1xuY29uc3QgUEVSQ0VOVF9TSUdOX1dJRFRIID0gMTEuOTtcbmNvbnN0IE5BUlJPV19DSEFSQUNURVJTID0gbmV3IFNldChbJyAnLCAnLScsICcsJywgJzsnLCAnOicsICchJywgJy4nLCAnXFwnJywgJygnLCAnKScsICcvJywgJ2YnLCAnSScsICdpJywgJ2onLCAnbCcsICdyJywgJ3QnXSk7XG5jb25zdCBXSURFX0NIQVJBQ1RFUlMgPSBuZXcgU2V0KFsnTScsICdtJywgJ1cnLCAndyddKTtcblxuLyoqXG4gKiBSZWFkcyB0aGUgbGNvdiByZXBvcnQsIHJlbmRlcnMgdGhlIGJhZGdlIGFuZCB3cml0ZXMgaXQuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIEdlbmVyYXRlQ292ZXJhZ2VCYWRnZU9wdGlvbnN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUge0BsaW5rIEdlbmVyYXRlQ292ZXJhZ2VCYWRnZVJlc3VsdH0uXG4gKiBAdGhyb3dzIFdoZW4gdGhlIGxjb3YgcmVwb3J0IGNhbm5vdCBiZSByZWFkOyBydW4gdGhlIHRlc3RzIHdpdGggY292ZXJhZ2UgZmlyc3QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUNvdmVyYWdlQmFkZ2Uob3B0aW9uczogR2VuZXJhdGVDb3ZlcmFnZUJhZGdlT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxHZW5lcmF0ZUNvdmVyYWdlQmFkZ2VSZXN1bHQ+IHtcbiAgY29uc3Qge1xuICAgIGxhYmVsID0gREVGQVVMVF9MQUJFTCxcbiAgICBsY292UGF0aCA9IERFRkFVTFRfTENPVl9QQVRILFxuICAgIG1ldHJpYyA9ICdsaW5lcycsXG4gICAgb3V0cHV0UGF0aCA9IERFRkFVTFRfT1VUUFVUX1BBVEhcbiAgfSA9IG9wdGlvbnM7XG5cbiAgY29uc3QgcmVzb2x2ZWRMY292UGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogbGNvdlBhdGggfSk7XG4gIGxldCBsY292OiBzdHJpbmc7XG4gIHRyeSB7XG4gICAgbGNvdiA9IGF3YWl0IHJlYWRGaWxlKHJlc29sdmVkTGNvdlBhdGgsICd1dGYtOCcpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IHJlYWQgdGhlIGxjb3YgcmVwb3J0ICcke3Jlc29sdmVkTGNvdlBhdGh9Jy4gUnVuIHRoZSB0ZXN0cyB3aXRoIGNvdmVyYWdlIGZpcnN0LmAsIHsgY2F1c2U6IGVycm9yIH0pO1xuICB9XG5cbiAgY29uc3QgcGVyY2VudCA9IGdldENvdmVyYWdlUGVyY2VudChwYXJzZUxjb3ZUb3RhbHMobGNvdiksIG1ldHJpYyk7XG4gIGNvbnN0IHJlc29sdmVkT3V0cHV0UGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogb3V0cHV0UGF0aCB9KTtcbiAgYXdhaXQgbWtkaXIoZGlybmFtZShyZXNvbHZlZE91dHB1dFBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgYXdhaXQgd3JpdGVGaWxlKHJlc29sdmVkT3V0cHV0UGF0aCwgcmVuZGVyQ292ZXJhZ2VCYWRnZVN2Zyh7IGxhYmVsLCBwZXJjZW50IH0pKTtcbiAgcmV0dXJuIHsgb3V0cHV0UGF0aDogcmVzb2x2ZWRPdXRwdXRQYXRoLCBwZXJjZW50IH07XG59XG5cbi8qKlxuICogUGlja3MgdGhlIGJhZGdlIGNvbG9yIG9mIGEgY292ZXJhZ2UgZmlndXJlLCBvbiB0aGUgc2hpZWxkcy5pbyBzY2FsZS5cbiAqXG4gKiBAcGFyYW0gcGVyY2VudCAtIFRoZSBjb3ZlcmFnZSBmaWd1cmUsIGluIHBlcmNlbnRzLlxuICogQHJldHVybnMgVGhlIGNvbG9yLCBhcyBhIENTUyBoZXggY29sb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb3ZlcmFnZUJhZGdlQ29sb3IocGVyY2VudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3QgdGhyZXNob2xkID0gQkFER0VfQ09MT1JfVEhSRVNIT0xEUy5maW5kKChjYW5kaWRhdGUpID0+IHBlcmNlbnQgPj0gY2FuZGlkYXRlLm1pblBlcmNlbnQpO1xuICByZXR1cm4gdGhyZXNob2xkPy5jb2xvciA/PyBSRUQ7XG59XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIGZpZ3VyZSBhIGJhZGdlIHNob3dzLlxuICpcbiAqIEEga2luZCB3aXRoIG5vdGhpbmcgdG8gY292ZXIgY291bnRzIGFzIGZ1bGx5IGNvdmVyZWQsIGFzIHZpdGVzdCdzIG93biBzdW1tYXJ5IHJlcG9ydHMgaXQuIFRoZSBmaWd1cmUgaXMgcm91bmRlZFxuICogRE9XTiB0byBvbmUgZGVjaW1hbCwgc28gYSBwcm9qZWN0IGF0IDk5Ljk2JSBuZXZlciBzaG93cyAxMDAlLlxuICpcbiAqIEBwYXJhbSB0b3RhbHMgLSBUaGUge0BsaW5rIENvdmVyYWdlVG90YWxzfS5cbiAqIEBwYXJhbSBtZXRyaWMgLSBUaGUge0BsaW5rIENvdmVyYWdlQmFkZ2VNZXRyaWN9LlxuICogQHJldHVybnMgVGhlIGNvdmVyYWdlIGZpZ3VyZSwgaW4gcGVyY2VudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb3ZlcmFnZVBlcmNlbnQodG90YWxzOiBDb3ZlcmFnZVRvdGFscywgbWV0cmljOiBDb3ZlcmFnZUJhZGdlTWV0cmljKTogbnVtYmVyIHtcbiAgY29uc3QgcGVyY2VudHMgPSB7XG4gICAgYnJhbmNoZXM6IHRvUGVyY2VudCh0b3RhbHMuYnJhbmNoZXMpLFxuICAgIGZ1bmN0aW9uczogdG9QZXJjZW50KHRvdGFscy5mdW5jdGlvbnMpLFxuICAgIGxpbmVzOiB0b1BlcmNlbnQodG90YWxzLmxpbmVzKVxuICB9O1xuICBjb25zdCBwZXJjZW50ID0gbWV0cmljID09PSAnbG93ZXN0JyA/IE1hdGgubWluKHBlcmNlbnRzLmJyYW5jaGVzLCBwZXJjZW50cy5mdW5jdGlvbnMsIHBlcmNlbnRzLmxpbmVzKSA6IHBlcmNlbnRzW21ldHJpY107XG4gIHJldHVybiBNYXRoLmZsb29yKHBlcmNlbnQgKiBQRVJDRU5UX1BSRUNJU0lPTikgLyBQRVJDRU5UX1BSRUNJU0lPTjtcbn1cblxuLyoqXG4gKiBTdW1zIHRoZSBwZXItZmlsZSBjb3VudHMgb2YgYW4gbGNvdiByZXBvcnQuXG4gKlxuICogQHBhcmFtIGxjb3YgLSBUaGUgdGV4dCBvZiB0aGUgcmVwb3J0LlxuICogQHJldHVybnMgVGhlIHtAbGluayBDb3ZlcmFnZVRvdGFsc30uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUxjb3ZUb3RhbHMobGNvdjogc3RyaW5nKTogQ292ZXJhZ2VUb3RhbHMge1xuICBjb25zdCBzdW1zID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbiAgZm9yIChjb25zdCBsaW5lIG9mIGxjb3Yuc3BsaXQoL1xccj9cXG4vdSkpIHtcbiAgICBjb25zdCBtYXRjaCA9IC9eKD88a2V5PkJSRnxCUkh8Rk5GfEZOSHxMRnxMSCk6KD88dmFsdWU+XFxkKykkL3UuZXhlYyhsaW5lLnRyaW0oKSk7XG4gICAgaWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgeyBrZXkgPSAnJywgdmFsdWUgPSAnJyB9ID0gbWF0Y2guZ3JvdXBzO1xuICAgIHN1bXMuc2V0KGtleSwgKHN1bXMuZ2V0KGtleSkgPz8gMCkgKyBOdW1iZXIodmFsdWUpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNvdW50KGNvdmVyZWRLZXk6IHN0cmluZywgdG90YWxLZXk6IHN0cmluZyk6IENvdmVyYWdlQ291bnQge1xuICAgIHJldHVybiB7IGNvdmVyZWQ6IHN1bXMuZ2V0KGNvdmVyZWRLZXkpID8/IDAsIHRvdGFsOiBzdW1zLmdldCh0b3RhbEtleSkgPz8gMCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBicmFuY2hlczogY291bnQoJ0JSSCcsICdCUkYnKSxcbiAgICBmdW5jdGlvbnM6IGNvdW50KCdGTkgnLCAnRk5GJyksXG4gICAgbGluZXM6IGNvdW50KCdMSCcsICdMRicpXG4gIH07XG59XG5cbi8qKlxuICogUmVuZGVycyBhIGNvdmVyYWdlIGJhZGdlIGluIHRoZSBzaGllbGRzLmlvIGZsYXQgc3R5bGUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgUmVuZGVyQ292ZXJhZ2VCYWRnZVN2Z1BhcmFtc30uXG4gKiBAcmV0dXJucyBUaGUgU1ZHIHRleHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJDb3ZlcmFnZUJhZGdlU3ZnKHBhcmFtczogUmVuZGVyQ292ZXJhZ2VCYWRnZVN2Z1BhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHsgbGFiZWwsIHBlcmNlbnQgfSA9IHBhcmFtcztcbiAgY29uc3QgdmFsdWUgPSBgJHtTdHJpbmcocGVyY2VudCl9JWA7XG4gIGNvbnN0IGxhYmVsVGV4dFdpZHRoID0gbWVhc3VyZVRleHQobGFiZWwpO1xuICBjb25zdCB2YWx1ZVRleHRXaWR0aCA9IG1lYXN1cmVUZXh0KHZhbHVlKTtcbiAgY29uc3QgbGFiZWxXaWR0aCA9IGxhYmVsVGV4dFdpZHRoICsgVEVYVF9QQURESU5HO1xuICBjb25zdCB2YWx1ZVdpZHRoID0gdmFsdWVUZXh0V2lkdGggKyBURVhUX1BBRERJTkc7XG4gIGNvbnN0IHdpZHRoID0gbGFiZWxXaWR0aCArIHZhbHVlV2lkdGg7XG4gIGNvbnN0IGxhYmVsQ2VudGVyID0gbGFiZWxXaWR0aCAqIEhBTEY7XG4gIGNvbnN0IHZhbHVlQ2VudGVyID0gbGFiZWxXaWR0aCArIHZhbHVlV2lkdGggKiBIQUxGO1xuICBjb25zdCBjb2xvciA9IGdldENvdmVyYWdlQmFkZ2VDb2xvcihwZXJjZW50KTtcbiAgY29uc3QgdGl0bGUgPSBlc2NhcGVYbWwoYCR7bGFiZWx9OiAke3ZhbHVlfWApO1xuICBjb25zdCBlc2NhcGVkTGFiZWwgPSBlc2NhcGVYbWwobGFiZWwpO1xuXG4gIHJldHVybiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIke1N0cmluZyh3aWR0aCl9XCIgaGVpZ2h0PVwiJHtTdHJpbmcoQkFER0VfSEVJR0hUKX1cIiByb2xlPVwiaW1nXCIgYXJpYS1sYWJlbD1cIiR7dGl0bGV9XCI+XG4gIDx0aXRsZT4ke3RpdGxlfTwvdGl0bGU+XG4gIDxsaW5lYXJHcmFkaWVudCBpZD1cInNcIiB4Mj1cIjBcIiB5Mj1cIjEwMCVcIj48c3RvcCBvZmZzZXQ9XCIwXCIgc3RvcC1jb2xvcj1cIiNiYmJcIiBzdG9wLW9wYWNpdHk9XCIuMVwiLz48c3RvcCBvZmZzZXQ9XCIxXCIgc3RvcC1vcGFjaXR5PVwiLjFcIi8+PC9saW5lYXJHcmFkaWVudD5cbiAgPGNsaXBQYXRoIGlkPVwiclwiPjxyZWN0IHdpZHRoPVwiJHtTdHJpbmcod2lkdGgpfVwiIGhlaWdodD1cIiR7U3RyaW5nKEJBREdFX0hFSUdIVCl9XCIgcng9XCIzXCIgZmlsbD1cIiNmZmZcIi8+PC9jbGlwUGF0aD5cbiAgPGcgY2xpcC1wYXRoPVwidXJsKCNyKVwiPlxuICAgIDxyZWN0IHdpZHRoPVwiJHtTdHJpbmcobGFiZWxXaWR0aCl9XCIgaGVpZ2h0PVwiJHtTdHJpbmcoQkFER0VfSEVJR0hUKX1cIiBmaWxsPVwiIzU1NVwiLz5cbiAgICA8cmVjdCB4PVwiJHtTdHJpbmcobGFiZWxXaWR0aCl9XCIgd2lkdGg9XCIke1N0cmluZyh2YWx1ZVdpZHRoKX1cIiBoZWlnaHQ9XCIke1N0cmluZyhCQURHRV9IRUlHSFQpfVwiIGZpbGw9XCIke2NvbG9yfVwiLz5cbiAgICA8cmVjdCB3aWR0aD1cIiR7U3RyaW5nKHdpZHRoKX1cIiBoZWlnaHQ9XCIke1N0cmluZyhCQURHRV9IRUlHSFQpfVwiIGZpbGw9XCJ1cmwoI3MpXCIvPlxuICA8L2c+XG4gIDxnIGZpbGw9XCIjZmZmXCIgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiBmb250LWZhbWlseT1cIlZlcmRhbmEsR2VuZXZhLERlamFWdSBTYW5zLHNhbnMtc2VyaWZcIiBmb250LXNpemU9XCIxMVwiIHRleHQtcmVuZGVyaW5nPVwiZ2VvbWV0cmljUHJlY2lzaW9uXCI+XG4gICAgPHRleHQgeD1cIiR7U3RyaW5nKGxhYmVsQ2VudGVyKX1cIiB5PVwiJHtTdHJpbmcoVEVYVF9TSEFET1dfQkFTRUxJTkUpfVwiIGZpbGw9XCIjMDEwMTAxXCIgZmlsbC1vcGFjaXR5PVwiLjNcIiB0ZXh0TGVuZ3RoPVwiJHtTdHJpbmcobGFiZWxUZXh0V2lkdGgpfVwiPiR7ZXNjYXBlZExhYmVsfTwvdGV4dD5cbiAgICA8dGV4dCB4PVwiJHtTdHJpbmcobGFiZWxDZW50ZXIpfVwiIHk9XCIke1N0cmluZyhURVhUX0JBU0VMSU5FKX1cIiB0ZXh0TGVuZ3RoPVwiJHtTdHJpbmcobGFiZWxUZXh0V2lkdGgpfVwiPiR7ZXNjYXBlZExhYmVsfTwvdGV4dD5cbiAgICA8dGV4dCB4PVwiJHtTdHJpbmcodmFsdWVDZW50ZXIpfVwiIHk9XCIke1N0cmluZyhURVhUX1NIQURPV19CQVNFTElORSl9XCIgZmlsbD1cIiMwMTAxMDFcIiBmaWxsLW9wYWNpdHk9XCIuM1wiIHRleHRMZW5ndGg9XCIke1N0cmluZyh2YWx1ZVRleHRXaWR0aCl9XCI+JHt2YWx1ZX08L3RleHQ+XG4gICAgPHRleHQgeD1cIiR7U3RyaW5nKHZhbHVlQ2VudGVyKX1cIiB5PVwiJHtTdHJpbmcoVEVYVF9CQVNFTElORSl9XCIgdGV4dExlbmd0aD1cIiR7U3RyaW5nKHZhbHVlVGV4dFdpZHRoKX1cIj4ke3ZhbHVlfTwvdGV4dD5cbiAgPC9nPlxuPC9zdmc+XG5gO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVYbWwodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRleHQucmVwbGFjZUFsbCgnJicsICcmYW1wOycpLnJlcGxhY2VBbGwoJzwnLCAnJmx0OycpLnJlcGxhY2VBbGwoJz4nLCAnJmd0OycpLnJlcGxhY2VBbGwoJ1wiJywgJyZxdW90OycpO1xufVxuXG5mdW5jdGlvbiBtZWFzdXJlQ2hhcmFjdGVyKGNoYXJhY3Rlcjogc3RyaW5nKTogbnVtYmVyIHtcbiAgaWYgKGNoYXJhY3RlciA9PT0gJyUnKSB7XG4gICAgcmV0dXJuIFBFUkNFTlRfU0lHTl9XSURUSDtcbiAgfVxuICBpZiAoTkFSUk9XX0NIQVJBQ1RFUlMuaGFzKGNoYXJhY3RlcikpIHtcbiAgICByZXR1cm4gTkFSUk9XX0NIQVJBQ1RFUl9XSURUSDtcbiAgfVxuICByZXR1cm4gV0lERV9DSEFSQUNURVJTLmhhcyhjaGFyYWN0ZXIpID8gV0lERV9DSEFSQUNURVJfV0lEVEggOiBERUZBVUxUX0NIQVJBQ1RFUl9XSURUSDtcbn1cblxuZnVuY3Rpb24gbWVhc3VyZVRleHQodGV4dDogc3RyaW5nKTogbnVtYmVyIHtcbiAgbGV0IHdpZHRoID0gMDtcbiAgZm9yIChjb25zdCBjaGFyYWN0ZXIgb2YgdGV4dCkge1xuICAgIHdpZHRoICs9IG1lYXN1cmVDaGFyYWN0ZXIoY2hhcmFjdGVyKTtcbiAgfVxuICByZXR1cm4gTWF0aC5yb3VuZCh3aWR0aCk7XG59XG5cbmZ1bmN0aW9uIHRvUGVyY2VudChjb3VudDogQ292ZXJhZ2VDb3VudCk6IG51bWJlciB7XG4gIHJldHVybiBjb3VudC50b3RhbCA9PT0gMCA/IEZVTExfUEVSQ0VOVCA6IGNvdW50LmNvdmVyZWQgLyBjb3VudC50b3RhbCAqIEZVTExfUEVSQ0VOVDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLGtCQUF3QztBQUN4QyxzQkFJTztBQUNQLHVCQUF3QjtBQW9IeEIsTUFBTSxnQkFBZ0I7QUFDdEIsTUFBTSxvQkFBb0I7QUFDMUIsTUFBTSxzQkFBc0I7QUFDNUIsTUFBTSxlQUFlO0FBQ3JCLE1BQU0sb0JBQW9CO0FBRTFCLE1BQU0sb0JBQW9CO0FB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
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90ZXN0LXJ1bm5lcnMvY292ZXJhZ2UtYmFkZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFJlbmRlcnMgYSBjb3ZlcmFnZSBiYWRnZSBmcm9tIHRoZSBgY292ZXJhZ2UvbGNvdi5pbmZvYCByZXBvcnQgYHRlc3RDb3ZlcmFnZWAgd3JpdGVzLCBhcyBhIHNlbGYtY29udGFpbmVkIFNWRyBpblxuICogdGhlIHNoaWVsZHMuaW8gZmxhdCBzdHlsZSwgc28gYSBSRUFETUUgY2FuIHNob3cgdGhlIG1lYXN1cmVkIGNvdmVyYWdlIHdpdGggbm8gZXh0ZXJuYWwgc2VydmljZS4gVGhlXG4gKiBgb2JzaWRpYW4tcGx1Z2luLWNpLnltbGAgcmV1c2FibGUgd29ya2Zsb3cgcHVibGlzaGVzIGl0IHRvIGEgYGJhZGdlc2AgYnJhbmNoOyBzZWUgdGhlIENJIGFuZCByZWxlYXNlIGd1aWRlLlxuICovXG5cbmltcG9ydCB7IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXQvcm9vdCc7XG5pbXBvcnQge1xuICBta2RpcixcbiAgcmVhZEZpbGUsXG4gIHdyaXRlRmlsZVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCB7IGRpcm5hbWUgfSBmcm9tICdub2RlOnBhdGgnO1xuXG4vKipcbiAqIFdoaWNoIGNvdmVyYWdlIGZpZ3VyZSB0aGUgYmFkZ2Ugc2hvd3MuXG4gKlxuICogLSBgbGluZXNgOiB0aGUgc2hhcmUgb2YgbGluZXMgY292ZXJlZCwgdGhlIGZpZ3VyZSBtb3N0IGNvdmVyYWdlIHNlcnZpY2VzIHNob3cuXG4gKiAtIGBmdW5jdGlvbnNgOiB0aGUgc2hhcmUgb2YgZnVuY3Rpb25zIGNvdmVyZWQuXG4gKiAtIGBicmFuY2hlc2A6IHRoZSBzaGFyZSBvZiBicmFuY2hlcyBjb3ZlcmVkLlxuICogLSBgbG93ZXN0YDogdGhlIGxvd2VzdCBvZiB0aGUgdGhyZWUsIHNvIHRoZSBiYWRnZSBuZXZlciBzaG93cyBhIGZpZ3VyZSBvbmUgb2YgdGhlIG90aGVycyBmYWxscyBiZWxvdy5cbiAqL1xuZXhwb3J0IHR5cGUgQ292ZXJhZ2VCYWRnZU1ldHJpYyA9ICdicmFuY2hlcycgfCAnZnVuY3Rpb25zJyB8ICdsaW5lcycgfCAnbG93ZXN0JztcblxuLyoqXG4gKiBBIGNvdmVyZWQgYW5kIGEgdG90YWwgY291bnQgb2Ygb25lIGtpbmQgb2YgY292ZXJhZ2UgaXRlbS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3ZlcmFnZUNvdW50IHtcbiAgLyoqXG4gICAqIEhvdyBtYW55IGl0ZW1zIGFyZSBjb3ZlcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY292ZXJlZDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBIb3cgbWFueSBpdGVtcyB0aGVyZSBhcmUuXG4gICAqL1xuICByZWFkb25seSB0b3RhbDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSBjb3ZlcmFnZSB0b3RhbHMgb2YgYSB3aG9sZSBsY292IHJlcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3ZlcmFnZVRvdGFscyB7XG4gIC8qKlxuICAgKiBUaGUgYnJhbmNoZXMgKGBCUkZgIC8gYEJSSGApLlxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoZXM6IENvdmVyYWdlQ291bnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbnMgKGBGTkZgIC8gYEZOSGApLlxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb25zOiBDb3ZlcmFnZUNvdW50O1xuXG4gIC8qKlxuICAgKiBUaGUgbGluZXMgKGBMRmAgLyBgTEhgKS5cbiAgICovXG4gIHJlYWRvbmx5IGxpbmVzOiBDb3ZlcmFnZUNvdW50O1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBnZW5lcmF0ZUNvdmVyYWdlQmFkZ2V9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlQ292ZXJhZ2VCYWRnZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHRleHQgb24gdGhlIGxlZnQgaGFsZiBvZiB0aGUgYmFkZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnY292ZXJhZ2UnYFxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsY292IHJlcG9ydCB0byByZWFkLCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCByb290LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJ2NvdmVyYWdlL2xjb3YuaW5mbydgXG4gICAqL1xuICByZWFkb25seSBsY292UGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogV2hpY2ggY292ZXJhZ2UgZmlndXJlIHRoZSBiYWRnZSBzaG93cy5cbiAgICpcbiAgICogQGRlZmF1bHQgYCdsaW5lcydgXG4gICAqL1xuICByZWFkb25seSBtZXRyaWM/OiBDb3ZlcmFnZUJhZGdlTWV0cmljO1xuXG4gIC8qKlxuICAgKiBXaGVyZSB0byB3cml0ZSB0aGUgU1ZHLCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCByb290LiBUaGUgZGVmYXVsdCBzaXRzIGJlc2lkZSB0aGUgcmVwb3J0LCBpbiBhIGZvbGRlciBhXG4gICAqIHByb2plY3QgaWdub3Jlcywgc28gYSBsb2NhbCBjb3ZlcmFnZSBydW4gbmV2ZXIgbGVhdmVzIGEgY2hhbmdlZCBmaWxlIGJlaGluZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYCdjb3ZlcmFnZS9jb3ZlcmFnZS1iYWRnZS5zdmcnYFxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0UGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgcmVzdWx0IG9mIHtAbGluayBnZW5lcmF0ZUNvdmVyYWdlQmFkZ2V9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlQ292ZXJhZ2VCYWRnZVJlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgYWJzb2x1dGUgcGF0aCBvZiB0aGUgU1ZHIHdyaXR0ZW4uXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb3ZlcmFnZSBmaWd1cmUgdGhlIGJhZGdlIHNob3dzLCBpbiBwZXJjZW50cywgcm91bmRlZCBkb3duIHRvIG9uZSBkZWNpbWFsLlxuICAgKi9cbiAgcmVhZG9ubHkgcGVyY2VudDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZW5kZXJDb3ZlcmFnZUJhZGdlU3ZnfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJDb3ZlcmFnZUJhZGdlU3ZnUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSB0ZXh0IG9uIHRoZSBsZWZ0IGhhbGYgb2YgdGhlIGJhZGdlLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvdmVyYWdlIGZpZ3VyZSwgaW4gcGVyY2VudHMuXG4gICAqL1xuICByZWFkb25seSBwZXJjZW50OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBCYWRnZUNvbG9yVGhyZXNob2xkIHtcbiAgcmVhZG9ubHkgY29sb3I6IHN0cmluZztcbiAgcmVhZG9ubHkgbWluUGVyY2VudDogbnVtYmVyO1xufVxuXG5jb25zdCBERUZBVUxUX0xBQkVMID0gJ2NvdmVyYWdlJztcbmNvbnN0IERFRkFVTFRfTENPVl9QQVRIID0gJ2NvdmVyYWdlL2xjb3YuaW5mbyc7XG5jb25zdCBERUZBVUxUX09VVFBVVF9QQVRIID0gJ2NvdmVyYWdlL2NvdmVyYWdlLWJhZGdlLnN2Zyc7XG5jb25zdCBGVUxMX1BFUkNFTlQgPSAxMDA7XG5jb25zdCBQRVJDRU5UX1BSRUNJU0lPTiA9IDEwO1xuXG5jb25zdCBHUkVFTl9NSU5fUEVSQ0VOVCA9IDkwO1xuY29uc3QgWUVMTE9XX0dSRUVOX01JTl9QRVJDRU5UID0gODA7XG5jb25zdCBZRUxMT1dfTUlOX1BFUkNFTlQgPSA3MDtcbmNvbnN0IE9SQU5HRV9NSU5fUEVSQ0VOVCA9IDYwO1xuY29uc3QgUkVEID0gJyNlMDVkNDQnO1xuXG4vLyBUaGUgc2hpZWxkcy5pbyBjb2xvciBzY2FsZSwgZnJvbSB0aGUgdG9wIGRvd247IHRoZSBsYXN0IGVudHJ5IGNhdGNoZXMgZXZlcnl0aGluZyBiZWxvdyBpdC5cbmNvbnN0IEJBREdFX0NPTE9SX1RIUkVTSE9MRFM6IHJlYWRvbmx5IEJhZGdlQ29sb3JUaHJlc2hvbGRbXSA9IFtcbiAgeyBjb2xvcjogJyM0YzEnLCBtaW5QZXJjZW50OiBGVUxMX1BFUkNFTlQgfSxcbiAgeyBjb2xvcjogJyM5N2NhMDAnLCBtaW5QZXJjZW50OiBHUkVFTl9NSU5fUEVSQ0VOVCB9LFxuICB7IGNvbG9yOiAnI2E0YTYxZCcsIG1pblBlcmNlbnQ6IFlFTExPV19HUkVFTl9NSU5fUEVSQ0VOVCB9LFxuICB7IGNvbG9yOiAnI2RmYjMxNycsIG1pblBlcmNlbnQ6IFlFTExPV19NSU5fUEVSQ0VOVCB9LFxuICB7IGNvbG9yOiAnI2ZlN2QzNycsIG1pblBlcmNlbnQ6IE9SQU5HRV9NSU5fUEVSQ0VOVCB9LFxuICB7IGNvbG9yOiBSRUQsIG1pblBlcmNlbnQ6IDAgfVxuXTtcblxuY29uc3QgQkFER0VfSEVJR0hUID0gMjA7XG4vLyBUaGUgcGFkZGluZyBvbiBib3RoIHNpZGVzIG9mIGEgdGV4dCB0b2dldGhlci5cbmNvbnN0IFRFWFRfUEFERElORyA9IDEyO1xuY29uc3QgSEFMRiA9IDAuNTtcbmNvbnN0IFRFWFRfQkFTRUxJTkUgPSAxNDtcbmNvbnN0IFRFWFRfU0hBRE9XX0JBU0VMSU5FID0gMTU7XG5cbi8vIEFwcHJveGltYXRlIGFkdmFuY2Ugd2lkdGhzIG9mIDExcHggVmVyZGFuYSwgdGhlIGZhY2Ugc2hpZWxkcy5pbyBtZWFzdXJlcyB3aXRoLiBUaGUgcmVuZGVyZWQgdGV4dCBpcyBzdHJldGNoZWQgdG9cbi8vIHRoZSBjb21wdXRlZCB3aWR0aCB0aHJvdWdoIGB0ZXh0TGVuZ3RoYCwgc28gYW4gZXN0aW1hdGUgYSBwaXhlbCBvZmYgbW92ZXMgdGhlIHBhZGRpbmcsIG5ldmVyIGNsaXBzIHRoZSB0ZXh0LlxuY29uc3QgTkFSUk9XX0NIQVJBQ1RFUl9XSURUSCA9IDMuOTtcbmNvbnN0IERFRkFVTFRfQ0hBUkFDVEVSX1dJRFRIID0gNztcbmNvbnN0IFdJREVfQ0hBUkFDVEVSX1dJRFRIID0gOS41O1xuY29uc3QgUEVSQ0VOVF9TSUdOX1dJRFRIID0gMTEuOTtcbmNvbnN0IE5BUlJPV19DSEFSQUNURVJTID0gbmV3IFNldChbJyAnLCAnLScsICcsJywgJzsnLCAnOicsICchJywgJy4nLCAnXFwnJywgJygnLCAnKScsICcvJywgJ2YnLCAnSScsICdpJywgJ2onLCAnbCcsICdyJywgJ3QnXSk7XG5jb25zdCBXSURFX0NIQVJBQ1RFUlMgPSBuZXcgU2V0KFsnTScsICdtJywgJ1cnLCAndyddKTtcblxuLyoqXG4gKiBSZWFkcyB0aGUgbGNvdiByZXBvcnQsIHJlbmRlcnMgdGhlIGJhZGdlIGFuZCB3cml0ZXMgaXQuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIEdlbmVyYXRlQ292ZXJhZ2VCYWRnZU9wdGlvbnN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUge0BsaW5rIEdlbmVyYXRlQ292ZXJhZ2VCYWRnZVJlc3VsdH0uXG4gKiBAdGhyb3dzIFdoZW4gdGhlIGxjb3YgcmVwb3J0IGNhbm5vdCBiZSByZWFkOyBydW4gdGhlIHRlc3RzIHdpdGggY292ZXJhZ2UgZmlyc3QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUNvdmVyYWdlQmFkZ2Uob3B0aW9uczogR2VuZXJhdGVDb3ZlcmFnZUJhZGdlT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxHZW5lcmF0ZUNvdmVyYWdlQmFkZ2VSZXN1bHQ+IHtcbiAgY29uc3Qge1xuICAgIGxhYmVsID0gREVGQVVMVF9MQUJFTCxcbiAgICBsY292UGF0aCA9IERFRkFVTFRfTENPVl9QQVRILFxuICAgIG1ldHJpYyA9ICdsaW5lcycsXG4gICAgb3V0cHV0UGF0aCA9IERFRkFVTFRfT1VUUFVUX1BBVEhcbiAgfSA9IG9wdGlvbnM7XG5cbiAgY29uc3QgcmVzb2x2ZWRMY292UGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogbGNvdlBhdGggfSk7XG4gIGxldCBsY292OiBzdHJpbmc7XG4gIHRyeSB7XG4gICAgbGNvdiA9IGF3YWl0IHJlYWRGaWxlKHJlc29sdmVkTGNvdlBhdGgsICd1dGYtOCcpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IHJlYWQgdGhlIGxjb3YgcmVwb3J0ICcke3Jlc29sdmVkTGNvdlBhdGh9Jy4gUnVuIHRoZSB0ZXN0cyB3aXRoIGNvdmVyYWdlIGZpcnN0LmAsIHsgY2F1c2U6IGVycm9yIH0pO1xuICB9XG5cbiAgY29uc3QgcGVyY2VudCA9IGdldENvdmVyYWdlUGVyY2VudChwYXJzZUxjb3ZUb3RhbHMobGNvdiksIG1ldHJpYyk7XG4gIGNvbnN0IHJlc29sdmVkT3V0cHV0UGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogb3V0cHV0UGF0aCB9KTtcbiAgYXdhaXQgbWtkaXIoZGlybmFtZShyZXNvbHZlZE91dHB1dFBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgYXdhaXQgd3JpdGVGaWxlKHJlc29sdmVkT3V0cHV0UGF0aCwgcmVuZGVyQ292ZXJhZ2VCYWRnZVN2Zyh7IGxhYmVsLCBwZXJjZW50IH0pKTtcbiAgcmV0dXJuIHsgb3V0cHV0UGF0aDogcmVzb2x2ZWRPdXRwdXRQYXRoLCBwZXJjZW50IH07XG59XG5cbi8qKlxuICogUGlja3MgdGhlIGJhZGdlIGNvbG9yIG9mIGEgY292ZXJhZ2UgZmlndXJlLCBvbiB0aGUgc2hpZWxkcy5pbyBzY2FsZS5cbiAqXG4gKiBAcGFyYW0gcGVyY2VudCAtIFRoZSBjb3ZlcmFnZSBmaWd1cmUsIGluIHBlcmNlbnRzLlxuICogQHJldHVybnMgVGhlIGNvbG9yLCBhcyBhIENTUyBoZXggY29sb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb3ZlcmFnZUJhZGdlQ29sb3IocGVyY2VudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3QgdGhyZXNob2xkID0gQkFER0VfQ09MT1JfVEhSRVNIT0xEUy5maW5kKChjYW5kaWRhdGUpID0+IHBlcmNlbnQgPj0gY2FuZGlkYXRlLm1pblBlcmNlbnQpO1xuICByZXR1cm4gdGhyZXNob2xkPy5jb2xvciA/PyBSRUQ7XG59XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIGZpZ3VyZSBhIGJhZGdlIHNob3dzLlxuICpcbiAqIEEga2luZCB3aXRoIG5vdGhpbmcgdG8gY292ZXIgY291bnRzIGFzIGZ1bGx5IGNvdmVyZWQsIGFzIHZpdGVzdCdzIG93biBzdW1tYXJ5IHJlcG9ydHMgaXQuIFRoZSBmaWd1cmUgaXMgcm91bmRlZFxuICogRE9XTiB0byBvbmUgZGVjaW1hbCwgc28gYSBwcm9qZWN0IGF0IDk5Ljk2JSBuZXZlciBzaG93cyAxMDAlLlxuICpcbiAqIEBwYXJhbSB0b3RhbHMgLSBUaGUge0BsaW5rIENvdmVyYWdlVG90YWxzfS5cbiAqIEBwYXJhbSBtZXRyaWMgLSBUaGUge0BsaW5rIENvdmVyYWdlQmFkZ2VNZXRyaWN9LlxuICogQHJldHVybnMgVGhlIGNvdmVyYWdlIGZpZ3VyZSwgaW4gcGVyY2VudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb3ZlcmFnZVBlcmNlbnQodG90YWxzOiBDb3ZlcmFnZVRvdGFscywgbWV0cmljOiBDb3ZlcmFnZUJhZGdlTWV0cmljKTogbnVtYmVyIHtcbiAgY29uc3QgcGVyY2VudHMgPSB7XG4gICAgYnJhbmNoZXM6IHRvUGVyY2VudCh0b3RhbHMuYnJhbmNoZXMpLFxuICAgIGZ1bmN0aW9uczogdG9QZXJjZW50KHRvdGFscy5mdW5jdGlvbnMpLFxuICAgIGxpbmVzOiB0b1BlcmNlbnQodG90YWxzLmxpbmVzKVxuICB9O1xuICBjb25zdCBwZXJjZW50ID0gbWV0cmljID09PSAnbG93ZXN0JyA/IE1hdGgubWluKHBlcmNlbnRzLmJyYW5jaGVzLCBwZXJjZW50cy5mdW5jdGlvbnMsIHBlcmNlbnRzLmxpbmVzKSA6IHBlcmNlbnRzW21ldHJpY107XG4gIHJldHVybiBNYXRoLmZsb29yKHBlcmNlbnQgKiBQRVJDRU5UX1BSRUNJU0lPTikgLyBQRVJDRU5UX1BSRUNJU0lPTjtcbn1cblxuLyoqXG4gKiBTdW1zIHRoZSBwZXItZmlsZSBjb3VudHMgb2YgYW4gbGNvdiByZXBvcnQuXG4gKlxuICogQHBhcmFtIGxjb3YgLSBUaGUgdGV4dCBvZiB0aGUgcmVwb3J0LlxuICogQHJldHVybnMgVGhlIHtAbGluayBDb3ZlcmFnZVRvdGFsc30uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUxjb3ZUb3RhbHMobGNvdjogc3RyaW5nKTogQ292ZXJhZ2VUb3RhbHMge1xuICBjb25zdCBzdW1zID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbiAgZm9yIChjb25zdCBsaW5lIG9mIGxjb3Yuc3BsaXQoL1xccj9cXG4vdSkpIHtcbiAgICBjb25zdCBtYXRjaCA9IC9eKD88a2V5PkJSRnxCUkh8Rk5GfEZOSHxMRnxMSCk6KD88dmFsdWU+XFxkKykkL3UuZXhlYyhsaW5lLnRyaW0oKSk7XG4gICAgaWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgeyBrZXkgPSAnJywgdmFsdWUgPSAnJyB9ID0gbWF0Y2guZ3JvdXBzO1xuICAgIHN1bXMuc2V0KGtleSwgKHN1bXMuZ2V0KGtleSkgPz8gMCkgKyBOdW1iZXIodmFsdWUpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNvdW50KGNvdmVyZWRLZXk6IHN0cmluZywgdG90YWxLZXk6IHN0cmluZyk6IENvdmVyYWdlQ291bnQge1xuICAgIHJldHVybiB7IGNvdmVyZWQ6IHN1bXMuZ2V0KGNvdmVyZWRLZXkpID8/IDAsIHRvdGFsOiBzdW1zLmdldCh0b3RhbEtleSkgPz8gMCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBicmFuY2hlczogY291bnQoJ0JSSCcsICdCUkYnKSxcbiAgICBmdW5jdGlvbnM6IGNvdW50KCdGTkgnLCAnRk5GJyksXG4gICAgbGluZXM6IGNvdW50KCdMSCcsICdMRicpXG4gIH07XG59XG5cbi8qKlxuICogUmVuZGVycyBhIGNvdmVyYWdlIGJhZGdlIGluIHRoZSBzaGllbGRzLmlvIGZsYXQgc3R5bGUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgUmVuZGVyQ292ZXJhZ2VCYWRnZVN2Z1BhcmFtc30uXG4gKiBAcmV0dXJucyBUaGUgU1ZHIHRleHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJDb3ZlcmFnZUJhZGdlU3ZnKHBhcmFtczogUmVuZGVyQ292ZXJhZ2VCYWRnZVN2Z1BhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHsgbGFiZWwsIHBlcmNlbnQgfSA9IHBhcmFtcztcbiAgY29uc3QgdmFsdWUgPSBgJHtTdHJpbmcocGVyY2VudCl9JWA7XG4gIGNvbnN0IGxhYmVsVGV4dFdpZHRoID0gbWVhc3VyZVRleHQobGFiZWwpO1xuICBjb25zdCB2YWx1ZVRleHRXaWR0aCA9IG1lYXN1cmVUZXh0KHZhbHVlKTtcbiAgY29uc3QgbGFiZWxXaWR0aCA9IGxhYmVsVGV4dFdpZHRoICsgVEVYVF9QQURESU5HO1xuICBjb25zdCB2YWx1ZVdpZHRoID0gdmFsdWVUZXh0V2lkdGggKyBURVhUX1BBRERJTkc7XG4gIGNvbnN0IHdpZHRoID0gbGFiZWxXaWR0aCArIHZhbHVlV2lkdGg7XG4gIGNvbnN0IGxhYmVsQ2VudGVyID0gbGFiZWxXaWR0aCAqIEhBTEY7XG4gIGNvbnN0IHZhbHVlQ2VudGVyID0gbGFiZWxXaWR0aCArIHZhbHVlV2lkdGggKiBIQUxGO1xuICBjb25zdCBjb2xvciA9IGdldENvdmVyYWdlQmFkZ2VDb2xvcihwZXJjZW50KTtcbiAgY29uc3QgdGl0bGUgPSBlc2NhcGVYbWwoYCR7bGFiZWx9OiAke3ZhbHVlfWApO1xuICBjb25zdCBlc2NhcGVkTGFiZWwgPSBlc2NhcGVYbWwobGFiZWwpO1xuXG4gIHJldHVybiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIke1N0cmluZyh3aWR0aCl9XCIgaGVpZ2h0PVwiJHtTdHJpbmcoQkFER0VfSEVJR0hUKX1cIiByb2xlPVwiaW1nXCIgYXJpYS1sYWJlbD1cIiR7dGl0bGV9XCI+XG4gIDx0aXRsZT4ke3RpdGxlfTwvdGl0bGU+XG4gIDxsaW5lYXJHcmFkaWVudCBpZD1cInNcIiB4Mj1cIjBcIiB5Mj1cIjEwMCVcIj48c3RvcCBvZmZzZXQ9XCIwXCIgc3RvcC1jb2xvcj1cIiNiYmJcIiBzdG9wLW9wYWNpdHk9XCIuMVwiLz48c3RvcCBvZmZzZXQ9XCIxXCIgc3RvcC1vcGFjaXR5PVwiLjFcIi8+PC9saW5lYXJHcmFkaWVudD5cbiAgPGNsaXBQYXRoIGlkPVwiclwiPjxyZWN0IHdpZHRoPVwiJHtTdHJpbmcod2lkdGgpfVwiIGhlaWdodD1cIiR7U3RyaW5nKEJBREdFX0hFSUdIVCl9XCIgcng9XCIzXCIgZmlsbD1cIiNmZmZcIi8+PC9jbGlwUGF0aD5cbiAgPGcgY2xpcC1wYXRoPVwidXJsKCNyKVwiPlxuICAgIDxyZWN0IHdpZHRoPVwiJHtTdHJpbmcobGFiZWxXaWR0aCl9XCIgaGVpZ2h0PVwiJHtTdHJpbmcoQkFER0VfSEVJR0hUKX1cIiBmaWxsPVwiIzU1NVwiLz5cbiAgICA8cmVjdCB4PVwiJHtTdHJpbmcobGFiZWxXaWR0aCl9XCIgd2lkdGg9XCIke1N0cmluZyh2YWx1ZVdpZHRoKX1cIiBoZWlnaHQ9XCIke1N0cmluZyhCQURHRV9IRUlHSFQpfVwiIGZpbGw9XCIke2NvbG9yfVwiLz5cbiAgICA8cmVjdCB3aWR0aD1cIiR7U3RyaW5nKHdpZHRoKX1cIiBoZWlnaHQ9XCIke1N0cmluZyhCQURHRV9IRUlHSFQpfVwiIGZpbGw9XCJ1cmwoI3MpXCIvPlxuICA8L2c+XG4gIDxnIGZpbGw9XCIjZmZmXCIgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiBmb250LWZhbWlseT1cIlZlcmRhbmEsR2VuZXZhLERlamFWdSBTYW5zLHNhbnMtc2VyaWZcIiBmb250LXNpemU9XCIxMVwiIHRleHQtcmVuZGVyaW5nPVwiZ2VvbWV0cmljUHJlY2lzaW9uXCI+XG4gICAgPHRleHQgeD1cIiR7U3RyaW5nKGxhYmVsQ2VudGVyKX1cIiB5PVwiJHtTdHJpbmcoVEVYVF9TSEFET1dfQkFTRUxJTkUpfVwiIGZpbGw9XCIjMDEwMTAxXCIgZmlsbC1vcGFjaXR5PVwiLjNcIiB0ZXh0TGVuZ3RoPVwiJHtTdHJpbmcobGFiZWxUZXh0V2lkdGgpfVwiPiR7ZXNjYXBlZExhYmVsfTwvdGV4dD5cbiAgICA8dGV4dCB4PVwiJHtTdHJpbmcobGFiZWxDZW50ZXIpfVwiIHk9XCIke1N0cmluZyhURVhUX0JBU0VMSU5FKX1cIiB0ZXh0TGVuZ3RoPVwiJHtTdHJpbmcobGFiZWxUZXh0V2lkdGgpfVwiPiR7ZXNjYXBlZExhYmVsfTwvdGV4dD5cbiAgICA8dGV4dCB4PVwiJHtTdHJpbmcodmFsdWVDZW50ZXIpfVwiIHk9XCIke1N0cmluZyhURVhUX1NIQURPV19CQVNFTElORSl9XCIgZmlsbD1cIiMwMTAxMDFcIiBmaWxsLW9wYWNpdHk9XCIuM1wiIHRleHRMZW5ndGg9XCIke1N0cmluZyh2YWx1ZVRleHRXaWR0aCl9XCI+JHt2YWx1ZX08L3RleHQ+XG4gICAgPHRleHQgeD1cIiR7U3RyaW5nKHZhbHVlQ2VudGVyKX1cIiB5PVwiJHtTdHJpbmcoVEVYVF9CQVNFTElORSl9XCIgdGV4dExlbmd0aD1cIiR7U3RyaW5nKHZhbHVlVGV4dFdpZHRoKX1cIj4ke3ZhbHVlfTwvdGV4dD5cbiAgPC9nPlxuPC9zdmc+XG5gO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVYbWwodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRleHQucmVwbGFjZUFsbCgnJicsICcmYW1wOycpLnJlcGxhY2VBbGwoJzwnLCAnJmx0OycpLnJlcGxhY2VBbGwoJz4nLCAnJmd0OycpLnJlcGxhY2VBbGwoJ1wiJywgJyZxdW90OycpO1xufVxuXG5mdW5jdGlvbiBtZWFzdXJlQ2hhcmFjdGVyKGNoYXJhY3Rlcjogc3RyaW5nKTogbnVtYmVyIHtcbiAgaWYgKGNoYXJhY3RlciA9PT0gJyUnKSB7XG4gICAgcmV0dXJuIFBFUkNFTlRfU0lHTl9XSURUSDtcbiAgfVxuICBpZiAoTkFSUk9XX0NIQVJBQ1RFUlMuaGFzKGNoYXJhY3RlcikpIHtcbiAgICByZXR1cm4gTkFSUk9XX0NIQVJBQ1RFUl9XSURUSDtcbiAgfVxuICByZXR1cm4gV0lERV9DSEFSQUNURVJTLmhhcyhjaGFyYWN0ZXIpID8gV0lERV9DSEFSQUNURVJfV0lEVEggOiBERUZBVUxUX0NIQVJBQ1RFUl9XSURUSDtcbn1cblxuZnVuY3Rpb24gbWVhc3VyZVRleHQodGV4dDogc3RyaW5nKTogbnVtYmVyIHtcbiAgbGV0IHdpZHRoID0gMDtcbiAgZm9yIChjb25zdCBjaGFyYWN0ZXIgb2YgdGV4dCkge1xuICAgIHdpZHRoICs9IG1lYXN1cmVDaGFyYWN0ZXIoY2hhcmFjdGVyKTtcbiAgfVxuICByZXR1cm4gTWF0aC5yb3VuZCh3aWR0aCk7XG59XG5cbmZ1bmN0aW9uIHRvUGVyY2VudChjb3VudDogQ292ZXJhZ2VDb3VudCk6IG51bWJlciB7XG4gIHJldHVybiBjb3VudC50b3RhbCA9PT0gMCA/IEZVTExfUEVSQ0VOVCA6IGNvdW50LmNvdmVyZWQgLyBjb3VudC50b3RhbCAqIEZVTExfUEVSQ0VOVDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQSxrQkFBd0M7QUFDeEMsc0JBSU87QUFDUCx1QkFBd0I7QUFvSHhCLE1BQU0sZ0JBQWdCO0FBQ3RCLE1BQU0sb0JBQW9CO0FBQzFCLE1BQU0sc0JBQXNCO0FBQzVCLE1BQU0sZUFBZTtBQUNyQixNQUFNLG9CQUFvQjtBQUUxQixNQUFNLG9CQUFvQjtBQUMxQixNQUFNLDJCQUEyQjtBQUNqQyxNQUFNLHFCQUFxQjtBQUMzQixNQUFNLHFCQUFxQjtBQUMzQixNQUFNLE1BQU07QUFHWixN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
@@ -29,80 +29,6 @@ function ensureBrowserProcess() {
29
29
 
30
30
  ensureBrowserProcess();
31
31
  })();
32
- (function patchObsidianRequire() {
33
- const originalRequire = require;
34
- if (!originalRequire || originalRequire.__isPatched) {
35
- return;
36
- }
37
-
38
- require = Object.assign(
39
- (id) => requirePatched(id),
40
- originalRequire,
41
- {
42
- __isPatched: true
43
- }
44
- );
45
-
46
- function extractDefault(module) {
47
- return module && module.__esModule && 'default' in module ? module.default : module;
48
- }
49
-
50
- const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
51
- '@codemirror/autocomplete',
52
- '@codemirror/collab',
53
- '@codemirror/commands',
54
- '@codemirror/language',
55
- '@codemirror/lint',
56
- '@codemirror/search',
57
- '@codemirror/state',
58
- '@codemirror/text',
59
- '@codemirror/view',
60
- '@lezer/common',
61
- '@lezer/highlight',
62
- '@lezer/lr',
63
- 'obsidian']
64
- );
65
-
66
- const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
67
- '@codemirror/closebrackets',
68
- '@codemirror/comment',
69
- '@codemirror/fold',
70
- '@codemirror/gutter',
71
- '@codemirror/highlight',
72
- '@codemirror/history',
73
- '@codemirror/matchbrackets',
74
- '@codemirror/panel',
75
- '@codemirror/rangeset',
76
- '@codemirror/rectangular-selection',
77
- '@codemirror/stream-parser',
78
- '@codemirror/tooltip']
79
- );
80
-
81
- function requirePatched(id) {
82
- if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
83
- return originalRequire?.(id);
84
- }
85
-
86
- // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
87
- if (globalThis.app.isMobile) {
88
- if (id === 'process' || id === 'node:process') {
89
- // eslint-disable-next-line no-console -- Valid usage.
90
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
91
-
92
- return process;
93
- }
94
- } else {
95
- const module = originalRequire?.(id);
96
- if (module) {
97
- return extractDefault(module);
98
- }
99
- }
100
-
101
- // eslint-disable-next-line no-console -- Valid usage.
102
- console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
103
- return {};
104
- }
105
- })();
106
32
 
107
33
  "use strict";
108
34
  var __create = Object.create;
@@ -167,4 +93,4 @@ function isPackageInstalled(require2, packageName) {
167
93
  DEFAULT_END_TO_END_SPECS,
168
94
  assertProjectPackagesInstalled
169
95
  });
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90ZXN0LXJ1bm5lcnMvZTJlLXJ1bm5lci1zdXBwb3J0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBXaGF0IHRoZSBlbmQtdG8tZW5kIHJ1bm5lcnMgc2hhcmU6IHdoZXJlIHRoZSBzcGVjcyBsaXZlLCBhbmQgdGhlIGNoZWNrIHRoYXQgdGhlIHBhY2thZ2VzIGEgcnVubmVyIGRyaXZlcyBhcmVcbiAqIGluc3RhbGxlZCBpbiB0aGUgcHJvamVjdCwgc28gYSBtaXNzaW5nIG9uZSBpcyByZXBvcnRlZCB3aXRoIHRoZSBgbnBtIGluc3RhbGxgIGxpbmUgdGhhdCBmaXhlcyBpdCBpbnN0ZWFkIG9mIGFzIGFcbiAqIHNoZWxsJ3MgYGNvbW1hbmQgbm90IGZvdW5kYC5cbiAqL1xuXG5pbXBvcnQgeyBnZXRSb290Rm9sZGVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXQvcm9vdCc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3BhdGgnO1xuaW1wb3J0IHsgY3JlYXRlUmVxdWlyZSB9IGZyb20gJ25vZGU6bW9kdWxlJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbi8qKlxuICogVGhlIHNwZWMgZmlsZXMgdGhlIGVuZC10by1lbmQgcnVubmVycyBydW4gYnkgZGVmYXVsdC5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRU5EX1RPX0VORF9TUEVDUyA9ICcuL2UyZS8qKi8qLnNwZWMudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBhc3NlcnRQcm9qZWN0UGFja2FnZXNJbnN0YWxsZWR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2VydFByb2plY3RQYWNrYWdlc0luc3RhbGxlZFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgcGFja2FnZXMgdGhlIHJ1bm5lciBuZWVkcy5cbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VOYW1lczogcmVhZG9ubHkgc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgd2hvc2UgYG5vZGVfbW9kdWxlc2AgdGhlIHBhY2thZ2VzIGFyZSByZXNvbHZlZCBmcm9tLiBEZWZhdWx0cyB0byB0aGUgcHJvamVjdCByb290LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdEZvbGRlcj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hhdCBuZWVkcyB0aGUgcGFja2FnZXMsIGFzIHRoZSBlcnJvciBtZXNzYWdlIG5hbWVzIGl0LCBlLmcuIGB0ZXN0RW5kVG9FbmRXaXRoV2Rpb09ic2lkaWFuKClgLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdGVyOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhyb3dzIHdoZW4gYW55IG9mIHRoZSBwYWNrYWdlcyBpcyBub3QgaW5zdGFsbGVkIGluIHRoZSBwcm9qZWN0LCBuYW1pbmcgdGhlIGBucG0gaW5zdGFsbGAgbGluZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBBc3NlcnRQcm9qZWN0UGFja2FnZXNJbnN0YWxsZWRQYXJhbXN9LlxuICogQHRocm93cyBXaGVuIGEgcGFja2FnZSBpcyBtaXNzaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0UHJvamVjdFBhY2thZ2VzSW5zdGFsbGVkKHBhcmFtczogQXNzZXJ0UHJvamVjdFBhY2thZ2VzSW5zdGFsbGVkUGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHByb2plY3RGb2xkZXIgPSBwYXJhbXMucHJvamVjdEZvbGRlciA/PyBnZXRSb290Rm9sZGVyKCkgPz8gcHJvY2Vzcy5jd2QoKTtcbiAgY29uc3QgcmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoam9pbihwcm9qZWN0Rm9sZGVyLCAncGFja2FnZS5qc29uJykpO1xuICBjb25zdCBtaXNzaW5nUGFja2FnZU5hbWVzID0gcGFyYW1zLnBhY2thZ2VOYW1lcy5maWx0ZXIoKHBhY2thZ2VOYW1lKSA9PiAhaXNQYWNrYWdlSW5zdGFsbGVkKHJlcXVpcmUsIHBhY2thZ2VOYW1lKSk7XG4gIGlmIChtaXNzaW5nUGFja2FnZU5hbWVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBgJHtwYXJhbXMucmVxdWVzdGVyfSBuZWVkcyAke21pc3NpbmdQYWNrYWdlTmFtZXMubWFwKChwYWNrYWdlTmFtZSkgPT4gYFxcYCR7cGFja2FnZU5hbWV9XFxgYCkuam9pbignLCAnKX0sIHdoaWNoIHRoZSBwcm9qZWN0IGRvZXMgbm90IGhhdmUuIGBcbiAgICAgICsgYEluc3RhbGwgd2l0aDogbnBtIGluc3RhbGwgLS1zYXZlLWRldiAke21pc3NpbmdQYWNrYWdlTmFtZXMuam9pbignICcpfWBcbiAgKTtcbn1cblxuZnVuY3Rpb24gaXNQYWNrYWdlSW5zdGFsbGVkKHJlcXVpcmU6IE5vZGVKUy5SZXF1aXJlLCBwYWNrYWdlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgcmVxdWlyZS5yZXNvbHZlKGAke3BhY2thZ2VOYW1lfS9wYWNrYWdlLmpzb25gKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBBIHBhY2thZ2Ugd2hvc2UgYGV4cG9ydHNgIG1hcCBkb2VzIG5vdCBsaXN0IGAuL3BhY2thZ2UuanNvbmAgaXMgaW5zdGFsbGVkIGFsbCB0aGUgc2FtZS5cbiAgICByZXR1cm4gKGVycm9yIGFzIE5vZGVKUy5FcnJub0V4Y2VwdGlvbikuY29kZSA9PT0gJ0VSUl9QQUNLQUdFX1BBVEhfTk9UX0VYUE9SVEVEJztcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLGtCQUE4QjtBQUM5QixrQkFBcUI7QUFDckIseUJBQThCO0FBQzlCLDBCQUFvQjtBQUtiLE1BQU0sMkJBQTJCO0FBNEJqQyxTQUFTLCtCQUErQixRQUFvRDtBQUNqRyxRQUFNLGdCQUFnQixPQUFPLHFCQUFpQiwyQkFBYyxLQUFLLG9CQUFBQSxRQUFRLElBQUk7QUFDN0UsUUFBTUMsZUFBVSxzQ0FBYyxrQkFBSyxlQUFlLGNBQWMsQ0FBQztBQUNqRSxRQUFNLHNCQUFzQixPQUFPLGFBQWEsT0FBTyxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQkEsVUFBUyxXQUFXLENBQUM7QUFDakgsTUFBSSxvQkFBb0IsV0FBVyxHQUFHO0FBQ3BDO0FBQUEsRUFDRjtBQUVBLFFBQU0sSUFBSTtBQUFBLElBQ1IsR0FBRyxPQUFPLFNBQVMsVUFBVSxvQkFBb0IsSUFBSSxDQUFDLGdCQUFnQixLQUFLLFdBQVcsSUFBSSxFQUFFLEtBQUssSUFBSSxDQUFDLDJFQUMxRCxvQkFBb0IsS0FBSyxHQUFHLENBQUM7QUFBQSxFQUMzRTtBQUNGO0FBRUEsU0FBUyxtQkFBbUJBLFVBQXlCLGFBQThCO0FBQ2pGLE1BQUk7QUFDRixJQUFBQSxTQUFRLFFBQVEsR0FBRyxXQUFXLGVBQWU7QUFDN0MsV0FBTztBQUFBLEVBQ1QsU0FBUyxPQUFPO0FBRWQsV0FBUSxNQUFnQyxTQUFTO0FBQUEsRUFDbkQ7QUFDRjsiLCJuYW1lcyI6WyJwcm9jZXNzIiwicmVxdWlyZSJdfQ==
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90ZXN0LXJ1bm5lcnMvZTJlLXJ1bm5lci1zdXBwb3J0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBXaGF0IHRoZSBlbmQtdG8tZW5kIHJ1bm5lcnMgc2hhcmU6IHdoZXJlIHRoZSBzcGVjcyBsaXZlLCBhbmQgdGhlIGNoZWNrIHRoYXQgdGhlIHBhY2thZ2VzIGEgcnVubmVyIGRyaXZlcyBhcmVcbiAqIGluc3RhbGxlZCBpbiB0aGUgcHJvamVjdCwgc28gYSBtaXNzaW5nIG9uZSBpcyByZXBvcnRlZCB3aXRoIHRoZSBgbnBtIGluc3RhbGxgIGxpbmUgdGhhdCBmaXhlcyBpdCBpbnN0ZWFkIG9mIGFzIGFcbiAqIHNoZWxsJ3MgYGNvbW1hbmQgbm90IGZvdW5kYC5cbiAqL1xuXG5pbXBvcnQgeyBnZXRSb290Rm9sZGVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXQvcm9vdCc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3BhdGgnO1xuaW1wb3J0IHsgY3JlYXRlUmVxdWlyZSB9IGZyb20gJ25vZGU6bW9kdWxlJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbi8qKlxuICogVGhlIHNwZWMgZmlsZXMgdGhlIGVuZC10by1lbmQgcnVubmVycyBydW4gYnkgZGVmYXVsdC5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRU5EX1RPX0VORF9TUEVDUyA9ICcuL2UyZS8qKi8qLnNwZWMudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBhc3NlcnRQcm9qZWN0UGFja2FnZXNJbnN0YWxsZWR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2VydFByb2plY3RQYWNrYWdlc0luc3RhbGxlZFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgcGFja2FnZXMgdGhlIHJ1bm5lciBuZWVkcy5cbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VOYW1lczogcmVhZG9ubHkgc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgd2hvc2UgYG5vZGVfbW9kdWxlc2AgdGhlIHBhY2thZ2VzIGFyZSByZXNvbHZlZCBmcm9tLiBEZWZhdWx0cyB0byB0aGUgcHJvamVjdCByb290LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdEZvbGRlcj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hhdCBuZWVkcyB0aGUgcGFja2FnZXMsIGFzIHRoZSBlcnJvciBtZXNzYWdlIG5hbWVzIGl0LCBlLmcuIGB0ZXN0RW5kVG9FbmRXaXRoV2Rpb09ic2lkaWFuKClgLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdGVyOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhyb3dzIHdoZW4gYW55IG9mIHRoZSBwYWNrYWdlcyBpcyBub3QgaW5zdGFsbGVkIGluIHRoZSBwcm9qZWN0LCBuYW1pbmcgdGhlIGBucG0gaW5zdGFsbGAgbGluZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBBc3NlcnRQcm9qZWN0UGFja2FnZXNJbnN0YWxsZWRQYXJhbXN9LlxuICogQHRocm93cyBXaGVuIGEgcGFja2FnZSBpcyBtaXNzaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0UHJvamVjdFBhY2thZ2VzSW5zdGFsbGVkKHBhcmFtczogQXNzZXJ0UHJvamVjdFBhY2thZ2VzSW5zdGFsbGVkUGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHByb2plY3RGb2xkZXIgPSBwYXJhbXMucHJvamVjdEZvbGRlciA/PyBnZXRSb290Rm9sZGVyKCkgPz8gcHJvY2Vzcy5jd2QoKTtcbiAgY29uc3QgcmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoam9pbihwcm9qZWN0Rm9sZGVyLCAncGFja2FnZS5qc29uJykpO1xuICBjb25zdCBtaXNzaW5nUGFja2FnZU5hbWVzID0gcGFyYW1zLnBhY2thZ2VOYW1lcy5maWx0ZXIoKHBhY2thZ2VOYW1lKSA9PiAhaXNQYWNrYWdlSW5zdGFsbGVkKHJlcXVpcmUsIHBhY2thZ2VOYW1lKSk7XG4gIGlmIChtaXNzaW5nUGFja2FnZU5hbWVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBgJHtwYXJhbXMucmVxdWVzdGVyfSBuZWVkcyAke21pc3NpbmdQYWNrYWdlTmFtZXMubWFwKChwYWNrYWdlTmFtZSkgPT4gYFxcYCR7cGFja2FnZU5hbWV9XFxgYCkuam9pbignLCAnKX0sIHdoaWNoIHRoZSBwcm9qZWN0IGRvZXMgbm90IGhhdmUuIGBcbiAgICAgICsgYEluc3RhbGwgd2l0aDogbnBtIGluc3RhbGwgLS1zYXZlLWRldiAke21pc3NpbmdQYWNrYWdlTmFtZXMuam9pbignICcpfWBcbiAgKTtcbn1cblxuZnVuY3Rpb24gaXNQYWNrYWdlSW5zdGFsbGVkKHJlcXVpcmU6IE5vZGVKUy5SZXF1aXJlLCBwYWNrYWdlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgcmVxdWlyZS5yZXNvbHZlKGAke3BhY2thZ2VOYW1lfS9wYWNrYWdlLmpzb25gKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBBIHBhY2thZ2Ugd2hvc2UgYGV4cG9ydHNgIG1hcCBkb2VzIG5vdCBsaXN0IGAuL3BhY2thZ2UuanNvbmAgaXMgaW5zdGFsbGVkIGFsbCB0aGUgc2FtZS5cbiAgICByZXR1cm4gKGVycm9yIGFzIE5vZGVKUy5FcnJub0V4Y2VwdGlvbikuY29kZSA9PT0gJ0VSUl9QQUNLQUdFX1BBVEhfTk9UX0VYUE9SVEVEJztcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQSxrQkFBOEI7QUFDOUIsa0JBQXFCO0FBQ3JCLHlCQUE4QjtBQUM5QiwwQkFBb0I7QUFLYixNQUFNLDJCQUEyQjtBQTRCakMsU0FBUywrQkFBK0IsUUFBb0Q7QUFDakcsUUFBTSxnQkFBZ0IsT0FBTyxxQkFBaUIsMkJBQWMsS0FBSyxvQkFBQUEsUUFBUSxJQUFJO0FBQzdFLFFBQU1DLGVBQVUsc0NBQWMsa0JBQUssZUFBZSxjQUFjLENBQUM7QUFDakUsUUFBTSxzQkFBc0IsT0FBTyxhQUFhLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUJBLFVBQVMsV0FBVyxDQUFDO0FBQ2pILE1BQUksb0JBQW9CLFdBQVcsR0FBRztBQUNwQztBQUFBLEVBQ0Y7QUFFQSxRQUFNLElBQUk7QUFBQSxJQUNSLEdBQUcsT0FBTyxTQUFTLFVBQVUsb0JBQW9CLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxXQUFXLElBQUksRUFBRSxLQUFLLElBQUksQ0FBQywyRUFDMUQsb0JBQW9CLEtBQUssR0FBRyxDQUFDO0FBQUEsRUFDM0U7QUFDRjtBQUVBLFNBQVMsbUJBQW1CQSxVQUF5QixhQUE4QjtBQUNqRixNQUFJO0FBQ0YsSUFBQUEsU0FBUSxRQUFRLEdBQUcsV0FBVyxlQUFlO0FBQzdDLFdBQU87QUFBQSxFQUNULFNBQVMsT0FBTztBQUVkLFdBQVEsTUFBZ0MsU0FBUztBQUFBLEVBQ25EO0FBQ0Y7IiwibmFtZXMiOlsicHJvY2VzcyIsInJlcXVpcmUiXX0=