obsidian-dev-utils 92.0.0 → 93.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 (87) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/demo-vault-helper/main.js +30 -44
  3. package/dist/integration-test-plugin/main.js +10029 -9743
  4. package/dist/lib/cjs/__merged.cjs +9 -1
  5. package/dist/lib/cjs/__merged.d.cts +2 -2
  6. package/dist/lib/cjs/generated-during-build.cjs +1 -1
  7. package/dist/lib/cjs/obsidian/components/monkey-around-component.cjs +1 -1
  8. package/dist/lib/cjs/obsidian/components/monkey-around-component.d.cts +5 -0
  9. package/dist/lib/cjs/obsidian/components/plugin-notice-component.cjs +118 -36
  10. package/dist/lib/cjs/obsidian/components/plugin-notice-component.d.cts +88 -19
  11. package/dist/lib/cjs/obsidian/demo-vault-helper-settings.cjs +120 -0
  12. package/dist/lib/cjs/obsidian/demo-vault-helper-settings.d.cts +29 -0
  13. package/dist/lib/cjs/obsidian/demo-vault-helper.cjs +31 -32
  14. package/dist/lib/cjs/obsidian/demo-vault-helper.d.cts +7 -3
  15. package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.cjs +4 -2
  16. package/dist/lib/cjs/obsidian/index.cjs +4 -1
  17. package/dist/lib/cjs/obsidian/index.d.cts +1 -0
  18. package/dist/lib/cjs/obsidian/vault.cjs +1 -1
  19. package/dist/lib/cjs/obsidian/vault.d.cts +3 -0
  20. package/dist/lib/cjs/obsidian/workspace.cjs +28 -3
  21. package/dist/lib/cjs/obsidian/workspace.d.cts +50 -0
  22. package/dist/lib/cjs/script-utils/demo-vault.cjs +8 -3
  23. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +1 -1
  24. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.cts +3 -0
  25. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-unused-params-members.cjs +1 -1
  26. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-unused-params-members.d.cts +3 -0
  27. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.cjs +1 -1
  28. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.d.cts +3 -0
  29. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +1 -1
  30. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.d.cts +3 -0
  31. package/dist/lib/cjs/script-utils/linters/eslint-rules/params-options-name-match.cjs +1 -1
  32. package/dist/lib/cjs/script-utils/linters/eslint-rules/params-options-name-match.d.cts +3 -0
  33. package/dist/lib/cjs/script-utils/linters/eslint-rules/prefer-noop-async.cjs +1 -1
  34. package/dist/lib/cjs/script-utils/linters/eslint-rules/prefer-noop-async.d.cts +3 -0
  35. package/dist/lib/cjs/script-utils/linters/eslint-rules/readonly-params-options-result-members.cjs +1 -1
  36. package/dist/lib/cjs/script-utils/linters/eslint-rules/readonly-params-options-result-members.d.cts +3 -0
  37. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.cjs +1 -1
  38. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.d.cts +3 -0
  39. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-method-template.cjs +1 -1
  40. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-method-template.d.cts +3 -0
  41. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-super-call.cjs +1 -1
  42. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-super-call.d.cts +3 -0
  43. package/dist/lib/cjs/script-utils/linters/over-exposure.cjs +1 -1
  44. package/dist/lib/cjs/script-utils/linters/over-exposure.d.cts +12 -0
  45. package/dist/lib/esm/__merged.d.mts +2 -2
  46. package/dist/lib/esm/__merged.mjs +13 -3
  47. package/dist/lib/esm/generated-during-build.mjs +1 -1
  48. package/dist/lib/esm/obsidian/components/monkey-around-component.d.mts +5 -0
  49. package/dist/lib/esm/obsidian/components/monkey-around-component.mjs +1 -1
  50. package/dist/lib/esm/obsidian/components/plugin-notice-component.d.mts +88 -19
  51. package/dist/lib/esm/obsidian/components/plugin-notice-component.mjs +116 -35
  52. package/dist/lib/esm/obsidian/demo-vault-helper-settings.d.mts +29 -0
  53. package/dist/lib/esm/obsidian/demo-vault-helper-settings.mjs +24 -0
  54. package/dist/lib/esm/obsidian/demo-vault-helper.d.mts +7 -3
  55. package/dist/lib/esm/obsidian/demo-vault-helper.mjs +32 -36
  56. package/dist/lib/esm/obsidian/desktop-demo-vault-opener.mjs +4 -2
  57. package/dist/lib/esm/obsidian/index.d.mts +1 -0
  58. package/dist/lib/esm/obsidian/index.mjs +3 -1
  59. package/dist/lib/esm/obsidian/vault.d.mts +3 -0
  60. package/dist/lib/esm/obsidian/vault.mjs +1 -1
  61. package/dist/lib/esm/obsidian/workspace.d.mts +50 -0
  62. package/dist/lib/esm/obsidian/workspace.mjs +24 -2
  63. package/dist/lib/esm/script-utils/demo-vault.mjs +10 -4
  64. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.mts +3 -0
  65. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +1 -1
  66. package/dist/lib/esm/script-utils/linters/eslint-rules/no-unused-params-members.d.mts +3 -0
  67. package/dist/lib/esm/script-utils/linters/eslint-rules/no-unused-params-members.mjs +1 -1
  68. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.d.mts +3 -0
  69. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.mjs +1 -1
  70. package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.d.mts +3 -0
  71. package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +1 -1
  72. package/dist/lib/esm/script-utils/linters/eslint-rules/params-options-name-match.d.mts +3 -0
  73. package/dist/lib/esm/script-utils/linters/eslint-rules/params-options-name-match.mjs +1 -1
  74. package/dist/lib/esm/script-utils/linters/eslint-rules/prefer-noop-async.d.mts +3 -0
  75. package/dist/lib/esm/script-utils/linters/eslint-rules/prefer-noop-async.mjs +1 -1
  76. package/dist/lib/esm/script-utils/linters/eslint-rules/readonly-params-options-result-members.d.mts +3 -0
  77. package/dist/lib/esm/script-utils/linters/eslint-rules/readonly-params-options-result-members.mjs +1 -1
  78. package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.d.mts +3 -0
  79. package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.mjs +1 -1
  80. package/dist/lib/esm/script-utils/linters/eslint-rules/require-method-template.d.mts +3 -0
  81. package/dist/lib/esm/script-utils/linters/eslint-rules/require-method-template.mjs +1 -1
  82. package/dist/lib/esm/script-utils/linters/eslint-rules/require-super-call.d.mts +3 -0
  83. package/dist/lib/esm/script-utils/linters/eslint-rules/require-super-call.mjs +1 -1
  84. package/dist/lib/esm/script-utils/linters/over-exposure.d.mts +12 -0
  85. package/dist/lib/esm/script-utils/linters/over-exposure.mjs +1 -1
  86. package/obsidian/demo-vault-helper-settings/package.json +6 -0
  87. package/package.json +1 -1
@@ -22,11 +22,8 @@ if you want to view the source, please visit the github repository of this plugi
22
22
  })();
23
23
 
24
24
  import { Notice } from "obsidian";
25
- import {
26
- basename,
27
- join
28
- } from "../path.mjs";
29
- import { ensureNonNullable } from "../type-guards.mjs";
25
+ import { join } from "../path.mjs";
26
+ import { EMPTY } from "../string.mjs";
30
27
  import {
31
28
  configureCommunityPlugin,
32
29
  ConfigureCommunityPluginResult,
@@ -45,6 +42,8 @@ const CODE_SCRIPT_TOOLKIT_SETTINGS = {
45
42
  };
46
43
  const DEMO_VAULT_HELPER_PLUGIN_ID = "demo-vault-helper";
47
44
  const PLUGINS_FOLDER_NAME = "plugins";
45
+ const DATA_JSON_FILE_NAME = "data.json";
46
+ const INVALID_DEMO_VAULT_ERROR_MESSAGE = "Invalid demo vault";
48
47
  const OPEN_DEMO_VAULT_COMMAND_NAME = "Open demo vault";
49
48
  const SANDBOX_NOTICE_DURATION_IN_MILLISECONDS = 0;
50
49
  async function bootstrapDemoVault(params) {
@@ -65,23 +64,17 @@ async function bootstrapDemoVault(params) {
65
64
  }
66
65
  showSandboxNotice(app, demoedPluginId);
67
66
  }
68
- function buildSandboxNoticeFragment(pluginName, basePath) {
67
+ function buildSandboxNoticeFragment(pluginName) {
69
68
  return createFragment((fragment) => {
70
- if (pluginName === null) {
71
- fragment.appendText("This is a demo vault.");
72
- } else {
73
- fragment.appendText("This is a demo vault for ");
74
- fragment.createEl("b", { text: pluginName });
75
- fragment.appendText(".");
76
- }
77
- fragment.appendText(" It is a temporary sandbox");
78
- if (basePath !== null) {
79
- fragment.appendText(" at ");
80
- fragment.createEl("code", { text: basePath });
81
- }
82
- fragment.appendText(", cleaned up automatically about a day after you last use it \u2014 copy anything you want to keep into your own vault. Running ");
83
- fragment.createEl("b", { text: pluginName === null ? OPEN_DEMO_VAULT_COMMAND_NAME : `${pluginName}: ${OPEN_DEMO_VAULT_COMMAND_NAME}` });
84
- fragment.appendText(" again creates a new copy with the latest plugin version, so your notes will not appear in it.");
69
+ fragment.appendText("This is a demo vault for ");
70
+ fragment.createEl("b", { text: pluginName });
71
+ fragment.appendText(".");
72
+ fragment.createEl("br");
73
+ fragment.appendText("It is a temporary sandbox, cleaned up automatically about a day after you last use it.");
74
+ fragment.createEl("br");
75
+ fragment.appendText("Executing ");
76
+ fragment.createEl("b", { text: `${pluginName}: ${OPEN_DEMO_VAULT_COMMAND_NAME}` });
77
+ fragment.appendText(" command again creates a new copy with the latest plugin version, so your notes will not appear in it.");
85
78
  });
86
79
  }
87
80
  async function ensureInvocableScriptsFolder(app) {
@@ -91,26 +84,29 @@ async function ensureInvocableScriptsFolder(app) {
91
84
  }
92
85
  }
93
86
  async function getDemoedPluginId(app) {
94
- const pluginsFolderPath = join(app.vault.configDir, PLUGINS_FOLDER_NAME);
95
- if (!await app.vault.adapter.exists(pluginsFolderPath)) {
96
- return null;
87
+ const settingsPath = join(app.vault.configDir, PLUGINS_FOLDER_NAME, DEMO_VAULT_HELPER_PLUGIN_ID, DATA_JSON_FILE_NAME);
88
+ if (!await app.vault.adapter.exists(settingsPath)) {
89
+ throw new Error(INVALID_DEMO_VAULT_ERROR_MESSAGE);
97
90
  }
98
- const listedFiles = await app.vault.adapter.list(pluginsFolderPath);
99
- const demoedPluginIds = listedFiles.folders.map((folderPath) => basename(folderPath)).filter((pluginId) => pluginId !== DEMO_VAULT_HELPER_PLUGIN_ID);
100
- return demoedPluginIds.length === 1 ? ensureNonNullable(demoedPluginIds[0]) : null;
101
- }
102
- function getVaultBasePath(app) {
103
- return isBasePathAdapter(app.vault.adapter) ? app.vault.adapter.getBasePath() : null;
104
- }
105
- function isBasePathAdapter(adapter) {
106
- return typeof Reflect.get(adapter, "getBasePath") === "function";
91
+ let parsed;
92
+ try {
93
+ parsed = JSON.parse(await app.vault.adapter.read(settingsPath));
94
+ } catch (error) {
95
+ throw new Error(INVALID_DEMO_VAULT_ERROR_MESSAGE, { cause: error });
96
+ }
97
+ const demoedPluginId = parsed?.demoedPluginId;
98
+ if (typeof demoedPluginId !== "string" || demoedPluginId === EMPTY) {
99
+ throw new Error(INVALID_DEMO_VAULT_ERROR_MESSAGE);
100
+ }
101
+ return demoedPluginId;
107
102
  }
108
103
  function showSandboxNotice(app, demoedPluginId) {
109
- const pluginName = demoedPluginId === null ? null : app.plugins.manifests[demoedPluginId]?.name ?? demoedPluginId;
110
- const fragment = buildSandboxNoticeFragment(pluginName, getVaultBasePath(app));
104
+ const pluginName = app.plugins.manifests[demoedPluginId]?.name ?? demoedPluginId;
105
+ const fragment = buildSandboxNoticeFragment(pluginName);
106
+ app.setting.close();
111
107
  new Notice(fragment, SANDBOX_NOTICE_DURATION_IN_MILLISECONDS);
112
108
  }
113
109
  export {
114
110
  bootstrapDemoVault
115
111
  };
116
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2RlbW8tdmF1bHQtaGVscGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQm9vdHN0cmFwcyBhIGRlbW8gdmF1bHQgYnkgaW5zdGFsbGluZywgY29uZmlndXJpbmcsIGFuZCBlbmFibGluZyBDb2RlU2NyaXB0IFRvb2xraXQuXG4gKlxuICogQSBwbHVnaW4ncyBkZW1vIHZhdWx0IHNob3djYXNlcyB0aGUgcGx1Z2luIHRocm91Z2ggbm90ZXMgd2hvc2UgYGNvZGUtYnV0dG9uYHMgcnVuIFR5cGVTY3JpcHQgdmlhXG4gKiBDb2RlU2NyaXB0IFRvb2xraXQuIEEgZGVtbyB2YXVsdCB0aGF0IGRvZXMgbm90IGl0c2VsZiBzaGlwIENvZGVTY3JpcHQgVG9vbGtpdCB0aGVyZWZvcmUgbmVlZHMgaXRcbiAqIGluc3RhbGxlZCwgY29uZmlndXJlZCwgYW5kIGVuYWJsZWQgYmVmb3JlIHRob3NlIGJ1dHRvbnMgd29yay4ge0BsaW5rIGJvb3RzdHJhcERlbW9WYXVsdH0gZG9lcyBleGFjdGx5XG4gKiB0aGF0IHdpdGggbm8gY29tbWl0dGVkIENvZGVTY3JpcHQgVG9vbGtpdCBjb25maWcgYW5kIG5vIG1hbnVhbCBzZXR1cCwgc28gaXQgY2FuIGJlIGRyaXZlbiBmcm9tIGEgdGlueVxuICogY29tbWl0dGVkIGJvb3RzdHJhcCBwbHVnaW4gKGBkZW1vLXZhdWx0LWhlbHBlcmApIHRoYXQgaXMgaW5qZWN0ZWQgaW50byBldmVyeSBkZW1vIHZhdWx0IGF0IHJlbGVhc2VcbiAqIHRpbWUuXG4gKlxuICogSXQgd3JpdGVzIENvZGVTY3JpcHQgVG9vbGtpdCdzIHNldHRpbmdzIEJFRk9SRSBlbmFibGluZyBpdCwgc28gdGhlIHBsdWdpbiBsb2FkcyBhbHJlYWR5IGNvbmZpZ3VyZWQgXHUyMDE0XG4gKiBubyByZWxvYWQuIENvZGVTY3JpcHQgVG9vbGtpdCB0aGVuIHJ1bnMgdGhlIHZhdWx0J3MgYHN0YXJ0dXAudHNgICh2aWEgaXRzIGBzdGFydHVwU2NyaXB0UGF0aGBcbiAqIHNldHRpbmcpLCB3aGljaCBpcyB3aGVyZSBlYWNoIHZhdWx0IG9wZW5zIGl0cyBzdGFydCBub3RlIGFuZCBkb2VzIGFueSBwbHVnaW4tc3BlY2lmaWMgc2V0dXAuXG4gKlxuICogSXQgYWxzbyBjcmVhdGVzIENvZGVTY3JpcHQgVG9vbGtpdCdzIGludm9jYWJsZS1zY3JpcHRzIGZvbGRlciBpZiBpdCBpcyBtaXNzaW5nLCBzbyBldmVyeSBkZW1vIHZhdWx0XG4gKiBoYXMgdGhlIHNhbWUgbGF5b3V0IGV2ZW4gd2hlbiB0aGUgdmF1bHQgc2hpcHMgbm8gaW52b2NhYmxlIHNjcmlwdHMgXHUyMDE0IHRoZSB2YXVsdHMgdGhlbXNlbHZlcyBjb21taXQgbm9cbiAqIGVtcHR5IGZvbGRlciBmb3IgaXQuXG4gKlxuICogRmluYWxseSBpdCByYWlzZXMgdGhlIHNhbmRib3ggbm90aWNlIGV4cGxhaW5pbmcgdGhhdCB0aGUgb3BlbmVkIHZhdWx0IGlzIGEgdGhyb3dhd2F5IGNvcHksIHNvIGEgdXNlclxuICogd2hvIHdyaXRlcyB0aGVpciBvd24gbm90ZXMgaW4gaXQgaXMgbmV2ZXIgc3VycHJpc2VkIGJ5IHRoZW0gYmVpbmcgYWJzZW50IGZyb20gdGhlIG5leHQgY29weS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgRGF0YUFkYXB0ZXJcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBOb3RpY2UgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7XG4gIGJhc2VuYW1lLFxuICBqb2luXG59IGZyb20gJy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICcuLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQge1xuICBjb25maWd1cmVDb21tdW5pdHlQbHVnaW4sXG4gIENvbmZpZ3VyZUNvbW11bml0eVBsdWdpblJlc3VsdCxcbiAgZGlzYWJsZUNvbW11bml0eVBsdWdpbixcbiAgZW5hYmxlQ29tbXVuaXR5UGx1Z2luLFxuICBpbnN0YWxsQ29tbXVuaXR5UGx1Z2luXG59IGZyb20gJy4vY29tbXVuaXR5LXBsdWdpbnMudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBib290c3RyYXBEZW1vVmF1bHR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJvb3RzdHJhcERlbW9WYXVsdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG59XG5cbi8qKlxuICogVGhlIHNsaWNlIG9mIHRoZSBkZXNrdG9wIHZhdWx0IGFkYXB0ZXIgdGhhdCBrbm93cyB0aGUgdmF1bHQncyBhYnNvbHV0ZSBwYXRoLlxuICovXG5pbnRlcmZhY2UgQmFzZVBhdGhBZGFwdGVyIHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGFic29sdXRlIHBhdGggb2YgdGhlIHZhdWx0IGZvbGRlci5cbiAgICovXG4gIGdldEJhc2VQYXRoKCk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb2RlU2NyaXB0IFRvb2xraXQncyBzZXR0aW5ncywgd3JpdHRlbiBpbnRvIGl0cyBgZGF0YS5qc29uYCBiZWZvcmUgaXQgaXMgZW5hYmxlZC5cbiAqL1xuaW50ZXJmYWNlIENvZGVTY3JpcHRUb29sa2l0U2V0dGluZ3Mge1xuICAvKipcbiAgICogVGhlIFlBTUwgZnJvbnRtYXR0ZXIgbWVyZ2VkIGludG8gZXZlcnkgYGNvZGUtYnV0dG9uYCBibG9jaydzIG93biBjb25maWcsIHVzZWQgaGVyZSB0byB0dXJuIHRoZVxuICAgKiBzb3VyY2Ugdmlld2VyIG9uIGZvciBldmVyeSBidXR0b24gaW4gZXZlcnkgZGVtbyB2YXVsdCB3aXRob3V0IGVkaXRpbmcgYSBzaW5nbGUgbm90ZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRDb2RlQnV0dG9uQ29uZmlnOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgKHVuZGVyIHtAbGluayBDb2RlU2NyaXB0VG9vbGtpdFNldHRpbmdzLm1vZHVsZXNSb290fSkgaG9sZGluZyBpbnZvY2FibGUgc2NyaXB0cy5cbiAgICovXG4gIHJlYWRvbmx5IGludm9jYWJsZVNjcmlwdHNGb2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIGZvbGRlciB0aGF0IGByZXF1aXJlKCcvXHUyMDI2JylgIHJlc29sdmVzIG1vZHVsZSBwYXRocyBhZ2FpbnN0LlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kdWxlc1Jvb3Q6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBDb2RlU2NyaXB0IFRvb2xraXQgaGFuZGxlcyBgb2JzaWRpYW46Ly9gIHByb3RvY29sIFVSTHMuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRIYW5kbGVQcm90b2NvbFVybHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoICh1bmRlciB7QGxpbmsgQ29kZVNjcmlwdFRvb2xraXRTZXR0aW5ncy5tb2R1bGVzUm9vdH0pIG9mIHRoZSBzY3JpcHQgcnVuIG9uIGxvYWQuXG4gICAqL1xuICByZWFkb25seSBzdGFydHVwU2NyaXB0UGF0aDogc3RyaW5nO1xufVxuXG5jb25zdCBDT0RFX1NDUklQVF9UT09MS0lUX1BMVUdJTl9JRCA9ICdmaXgtcmVxdWlyZS1tb2R1bGVzJztcbmNvbnN0IENPREVfU0NSSVBUX1RPT0xLSVRfTU9EVUxFU19ST09UID0gJ19hc3NldHMvQ29kZVNjcmlwdFRvb2xraXQnO1xuY29uc3QgQ09ERV9TQ1JJUFRfVE9PTEtJVF9TRVRUSU5HUzogQ29kZVNjcmlwdFRvb2xraXRTZXR0aW5ncyA9IHtcbiAgZGVmYXVsdENvZGVCdXR0b25Db25maWc6ICctLS1cXG5zb3VyY2VWaXNpYmlsaXR5OiBjb2xsYXBzZWRcXG4tLS0nLFxuICBpbnZvY2FibGVTY3JpcHRzRm9sZGVyOiAnSW52b2NhYmxlcycsXG4gIG1vZHVsZXNSb290OiBDT0RFX1NDUklQVF9UT09MS0lUX01PRFVMRVNfUk9PVCxcbiAgc2hvdWxkSGFuZGxlUHJvdG9jb2xVcmxzOiB0cnVlLFxuICBzdGFydHVwU2NyaXB0UGF0aDogJ3N0YXJ0dXAudHMnXG59O1xuXG5jb25zdCBERU1PX1ZBVUxUX0hFTFBFUl9QTFVHSU5fSUQgPSAnZGVtby12YXVsdC1oZWxwZXInO1xuY29uc3QgUExVR0lOU19GT0xERVJfTkFNRSA9ICdwbHVnaW5zJztcbmNvbnN0IE9QRU5fREVNT19WQVVMVF9DT01NQU5EX05BTUUgPSAnT3BlbiBkZW1vIHZhdWx0Jztcbi8vIGAwYCBhc2tzIE9ic2lkaWFuIHRvIGtlZXAgdGhlIG5vdGljZSB1cCB1bnRpbCB0aGUgdXNlciBjbGlja3MgaXQgXHUyMDE0IHRoZSBzYW1lIHRyZWF0bWVudCBPYnNpZGlhbiBnaXZlc1xuLy8gSXRzIG93biBzYW5kYm94LXZhdWx0IG5vdGljZSwgYW5kIHdoYXQgdGhlIGRlbW8tdmF1bHQgbm90aWNlIGlzIG1vZGVsbGVkIG9uLlxuY29uc3QgU0FOREJPWF9OT1RJQ0VfRFVSQVRJT05fSU5fTUlMTElTRUNPTkRTID0gMDtcblxuLyoqXG4gKiBCb290c3RyYXBzIGEgZGVtbyB2YXVsdCBzbyBpdHMgbm90ZXMnIGBjb2RlLWJ1dHRvbmBzIHdvcmsgd2l0aCBubyBtYW51YWwgc2V0dXA6IGluc3RhbGxzIENvZGVTY3JpcHRcbiAqIFRvb2xraXQgZnJvbSB0aGUgY29tbXVuaXR5IHN0b3JlIChpZiBpdCBpcyBub3QgYWxyZWFkeSBpbnN0YWxsZWQpLCB3cml0ZXMgaXRzIHNldHRpbmdzLCB0aGVuIGVuYWJsZXNcbiAqIGl0IFx1MjAxNCB3cml0aW5nIHRoZSBzZXR0aW5ncyBCRUZPUkUgZW5hYmxpbmcgc28gYSBmcmVzaCBlbmFibGUgbG9hZHMgaXQgYWxyZWFkeSBjb25maWd1cmVkLCB3aXRoIG5vXG4gKiByZWxvYWQuIElmIENvZGVTY3JpcHQgVG9vbGtpdCBpcyBhbHJlYWR5IGVuYWJsZWQgYnV0IHRoZSBzZXR0aW5ncyBqdXN0IGNoYW5nZWQsIGl0IGlzIHJlbG9hZGVkXG4gKiAoZGlzYWJsZWQgdGhlbiBlbmFibGVkKSBzbyBpdCByZS1yZWFkcyBgZGF0YS5qc29uYDsgd2hlbiB0aGUgc2V0dGluZ3Mgd2VyZSBhbHJlYWR5IGluIHBsYWNlLCBub3RoaW5nIGlzXG4gKiByZWxvYWRlZCAoc28gYSByb3V0aW5lIHZhdWx0IHJlLW9wZW4gZG9lcyBub3QgcmUtcnVuIENvZGVTY3JpcHQgVG9vbGtpdCdzIHN0YXJ0dXApLiBDb2RlU2NyaXB0IFRvb2xraXRcbiAqIHRoZW4gcnVucyB0aGUgdmF1bHQncyBgc3RhcnR1cC50c2AuIEZpbmFsbHkgaXQgcmFpc2VzIHRoZSBzYW5kYm94IG5vdGljZSBkZXNjcmliaW5nIHRoZSBvcGVuZWQgdmF1bHRcbiAqIGFzIGEgdGhyb3dhd2F5IGNvcHkuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgQm9vdHN0cmFwRGVtb1ZhdWx0UGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSBDb2RlU2NyaXB0IFRvb2xraXQgaXMgaW5zdGFsbGVkLCBjb25maWd1cmVkLCBhbmQgZW5hYmxlZFxuICogYW5kIHRoZSBzYW5kYm94IG5vdGljZSBoYXMgYmVlbiBzaG93bi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJvb3RzdHJhcERlbW9WYXVsdChwYXJhbXM6IEJvb3RzdHJhcERlbW9WYXVsdFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGFwcCB9ID0gcGFyYW1zO1xuICAvLyBSZXNvbHZlZCBCRUZPUkUgQ29kZVNjcmlwdCBUb29sa2l0IGlzIGluc3RhbGxlZC4gQXQgcmVsZWFzZSB0aW1lIHRoZSB2YXVsdCBjYXJyaWVzIGV4YWN0bHkgdHdvXG4gIC8vIFBsdWdpbiBmb2xkZXJzIFx1MjAxNCB0aGlzIGhlbHBlciBhbmQgdGhlIHBsdWdpbiBiZWluZyBkZW1vbnN0cmF0ZWQgXHUyMDE0IHNvIGRyb3BwaW5nIHRoZSBoZWxwZXIgbGVhdmVzIHRoZVxuICAvLyBEZW1vbnN0cmF0ZWQgb25lLiBSZWFkaW5nIHRoZSBmb2xkZXIgbGF0ZXIgd291bGQgYWxzbyBzZWUgQ29kZVNjcmlwdCBUb29sa2l0IGFuZCBhbnl0aGluZyBhIGRlbW9cbiAgLy8gTm90ZSdzIHByZXJlcXVpc2l0ZXMgaW5zdGFsbGVkLCBsZWF2aW5nIG5vIHdheSB0byB0ZWxsIHdoaWNoIHBsdWdpbiB0aGUgdmF1bHQgaXMgZm9yLlxuICBjb25zdCBkZW1vZWRQbHVnaW5JZCA9IGF3YWl0IGdldERlbW9lZFBsdWdpbklkKGFwcCk7XG4gIGF3YWl0IGluc3RhbGxDb21tdW5pdHlQbHVnaW4oeyBhcHAsIHBsdWdpbklkOiBDT0RFX1NDUklQVF9UT09MS0lUX1BMVUdJTl9JRCB9KTtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY29uZmlndXJlQ29tbXVuaXR5UGx1Z2luKHtcbiAgICBhcHAsXG4gICAgcGx1Z2luSWQ6IENPREVfU0NSSVBUX1RPT0xLSVRfUExVR0lOX0lELFxuICAgIHNldHRpbmdzOiBDT0RFX1NDUklQVF9UT09MS0lUX1NFVFRJTkdTXG4gIH0pO1xuICBhd2FpdCBlbnN1cmVJbnZvY2FibGVTY3JpcHRzRm9sZGVyKGFwcCk7XG5cbiAgaWYgKCFhcHAucGx1Z2lucy5lbmFibGVkUGx1Z2lucy5oYXMoQ09ERV9TQ1JJUFRfVE9PTEtJVF9QTFVHSU5fSUQpKSB7XG4gICAgYXdhaXQgZW5hYmxlQ29tbXVuaXR5UGx1Z2luKHsgYXBwLCBwbHVnaW5JZDogQ09ERV9TQ1JJUFRfVE9PTEtJVF9QTFVHSU5fSUQgfSk7XG4gIH0gZWxzZSBpZiAocmVzdWx0ID09PSBDb25maWd1cmVDb21tdW5pdHlQbHVnaW5SZXN1bHQuU3VjY2Vzcykge1xuICAgIC8vIEFscmVhZHkgZW5hYmxlZCB3aXRoIHN0YWxlIHNldHRpbmdzIFx1MjAxNCByZWxvYWQgc28gQ29kZVNjcmlwdCBUb29sa2l0IHJlLXJlYWRzIHRoZSBmcmVzaGx5IHdyaXR0ZW4gZGF0YS5qc29uLlxuICAgIGF3YWl0IGRpc2FibGVDb21tdW5pdHlQbHVnaW4oeyBhcHAsIHBsdWdpbklkOiBDT0RFX1NDUklQVF9UT09MS0lUX1BMVUdJTl9JRCB9KTtcbiAgICBhd2FpdCBlbmFibGVDb21tdW5pdHlQbHVnaW4oeyBhcHAsIHBsdWdpbklkOiBDT0RFX1NDUklQVF9UT09MS0lUX1BMVUdJTl9JRCB9KTtcbiAgfVxuXG4gIHNob3dTYW5kYm94Tm90aWNlKGFwcCwgZGVtb2VkUGx1Z2luSWQpO1xufVxuXG4vLyBCdWlsZHMgdGhlIHNhbmRib3ggbm90aWNlIGNvbnRlbnQ6IHdoYXQgdGhpcyB2YXVsdCBpcywgd2hlcmUgaXQgbGl2ZXMsIGhvdyBsb25nIGl0IGxpdmVzLCBhbmQgd2h5XG4vLyBSZS1ydW5uaW5nIHRoZSBjb21tYW5kIHByb2R1Y2VzIGEgdmF1bHQgd2l0aG91dCB0aGUgbm90ZXMganVzdCB3cml0dGVuIGhlcmUuXG4vL1xuLy8gRXZlcnkgY2xhaW0gaGFzIHRvIHN0YXkgdHJ1ZSBvZiB0aGUgb3BlbmVyIChgZGVza3RvcC1kZW1vLXZhdWx0LW9wZW5lci50c2ApOiBpdCBleHRyYWN0cyBhIEZSRVNIIGNvcHlcbi8vIEludG8gaXRzIG93biBmb2xkZXIgb24gZXZlcnkgb3BlbiwgYW5kIGRlbGV0ZXMgZXh0cmFjdGVkIGZvbGRlcnMgb2xkZXIgdGhhbiBhIGRheSBvbiBlYWNoIGxhdGVyIG9wZW4uXG4vLyBTbyB0aGUgdmF1bHQgaXMgYSB0ZW1wb3Jhcnkgc2FuZGJveCBcdTIwMTQgaXQgbXVzdCBuZXZlciBiZSBkZXNjcmliZWQgYXMgYSBwbGFjZSB3b3JrIGNhbiBiZSBsZWZ0LlxuZnVuY3Rpb24gYnVpbGRTYW5kYm94Tm90aWNlRnJhZ21lbnQocGx1Z2luTmFtZTogbnVsbCB8IHN0cmluZywgYmFzZVBhdGg6IG51bGwgfCBzdHJpbmcpOiBEb2N1bWVudEZyYWdtZW50IHtcbiAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50KChmcmFnbWVudCkgPT4ge1xuICAgIGlmIChwbHVnaW5OYW1lID09PSBudWxsKSB7XG4gICAgICBmcmFnbWVudC5hcHBlbmRUZXh0KCdUaGlzIGlzIGEgZGVtbyB2YXVsdC4nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZnJhZ21lbnQuYXBwZW5kVGV4dCgnVGhpcyBpcyBhIGRlbW8gdmF1bHQgZm9yICcpO1xuICAgICAgZnJhZ21lbnQuY3JlYXRlRWwoJ2InLCB7IHRleHQ6IHBsdWdpbk5hbWUgfSk7XG4gICAgICBmcmFnbWVudC5hcHBlbmRUZXh0KCcuJyk7XG4gICAgfVxuXG4gICAgZnJhZ21lbnQuYXBwZW5kVGV4dCgnIEl0IGlzIGEgdGVtcG9yYXJ5IHNhbmRib3gnKTtcbiAgICBpZiAoYmFzZVBhdGggIT09IG51bGwpIHtcbiAgICAgIGZyYWdtZW50LmFwcGVuZFRleHQoJyBhdCAnKTtcbiAgICAgIGZyYWdtZW50LmNyZWF0ZUVsKCdjb2RlJywgeyB0ZXh0OiBiYXNlUGF0aCB9KTtcbiAgICB9XG4gICAgZnJhZ21lbnQuYXBwZW5kVGV4dCgnLCBjbGVhbmVkIHVwIGF1dG9tYXRpY2FsbHkgYWJvdXQgYSBkYXkgYWZ0ZXIgeW91IGxhc3QgdXNlIGl0IFx1MjAxNCBjb3B5IGFueXRoaW5nIHlvdSB3YW50IHRvIGtlZXAgaW50byB5b3VyIG93biB2YXVsdC4gUnVubmluZyAnKTtcbiAgICBmcmFnbWVudC5jcmVhdGVFbCgnYicsIHsgdGV4dDogcGx1Z2luTmFtZSA9PT0gbnVsbCA/IE9QRU5fREVNT19WQVVMVF9DT01NQU5EX05BTUUgOiBgJHtwbHVnaW5OYW1lfTogJHtPUEVOX0RFTU9fVkFVTFRfQ09NTUFORF9OQU1FfWAgfSk7XG4gICAgZnJhZ21lbnQuYXBwZW5kVGV4dCgnIGFnYWluIGNyZWF0ZXMgYSBuZXcgY29weSB3aXRoIHRoZSBsYXRlc3QgcGx1Z2luIHZlcnNpb24sIHNvIHlvdXIgbm90ZXMgd2lsbCBub3QgYXBwZWFyIGluIGl0LicpO1xuICB9KTtcbn1cblxuLy8gQ3JlYXRlcyBDb2RlU2NyaXB0IFRvb2xraXQncyBpbnZvY2FibGUtc2NyaXB0cyBmb2xkZXIgKHVuZGVyIGBtb2R1bGVzUm9vdGApIGlmIGl0IGlzIG1pc3NpbmcuXG4vLyBFdmVyeSBkZW1vIHZhdWx0IHRoZW4gaGFzIHRoZSBzYW1lIENvZGVTY3JpcHQgVG9vbGtpdCBsYXlvdXQgZXZlbiB3aGVuIGl0IHNoaXBzIG5vIGludm9jYWJsZSBzY3JpcHRzLlxuLy8gVGhlIGNvbW1pdHRlZCB2YXVsdCB0aGVyZWZvcmUgY2FycmllcyBubyBvdGhlcndpc2UtZW1wdHkgcGxhY2Vob2xkZXIgZm9sZGVyLlxuYXN5bmMgZnVuY3Rpb24gZW5zdXJlSW52b2NhYmxlU2NyaXB0c0ZvbGRlcihhcHA6IEFwcCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBpbnZvY2FibGVTY3JpcHRzRm9sZGVyUGF0aCA9IGpvaW4oQ09ERV9TQ1JJUFRfVE9PTEtJVF9NT0RVTEVTX1JPT1QsIENPREVfU0NSSVBUX1RPT0xLSVRfU0VUVElOR1MuaW52b2NhYmxlU2NyaXB0c0ZvbGRlcik7XG4gIGlmICghYXdhaXQgYXBwLnZhdWx0LmFkYXB0ZXIuZXhpc3RzKGludm9jYWJsZVNjcmlwdHNGb2xkZXJQYXRoKSkge1xuICAgIGF3YWl0IGFwcC52YXVsdC5hZGFwdGVyLm1rZGlyKGludm9jYWJsZVNjcmlwdHNGb2xkZXJQYXRoKTtcbiAgfVxufVxuXG4vLyBJZGVudGlmaWVzIHRoZSBwbHVnaW4gdGhlIHZhdWx0IGRlbW9uc3RyYXRlcyBhcyB0aGUgb25seSBpbnN0YWxsZWQgcGx1Z2luIHRoYXQgaXMgbm90IHRoaXMgaGVscGVyLlxuLy8gQ2FsbCBpdCBCRUZPUkUgYW55dGhpbmcgZWxzZSBpcyBpbnN0YWxsZWQgKHNlZSBgYm9vdHN0cmFwRGVtb1ZhdWx0YCkuIEFueSBvdGhlciBjb3VudCBcdTIwMTQgYSB2YXVsdFxuLy8gT3BlbmVkIGFmdGVyIHRoZSBwbHVnaW4gZm9sZGVyIHdhcyBoYW5kLWVkaXRlZCwgb3Igb25lIHRoYXQgc2hpcHMgbm90aGluZyBidXQgdGhlIGhlbHBlciBcdTIwMTQgaXNcbi8vIEFtYmlndW91cywgYW5kIGFuIGFtYmlndW91cyBhbnN3ZXIgYmVjb21lcyBnZW5lcmljIG5vdGljZSB3b3JkaW5nIHJhdGhlciB0aGFuIGEgd3JvbmcgcGx1Z2luIG5hbWUuXG5hc3luYyBmdW5jdGlvbiBnZXREZW1vZWRQbHVnaW5JZChhcHA6IEFwcCk6IFByb21pc2U8bnVsbCB8IHN0cmluZz4ge1xuICBjb25zdCBwbHVnaW5zRm9sZGVyUGF0aCA9IGpvaW4oYXBwLnZhdWx0LmNvbmZpZ0RpciwgUExVR0lOU19GT0xERVJfTkFNRSk7XG4gIGlmICghYXdhaXQgYXBwLnZhdWx0LmFkYXB0ZXIuZXhpc3RzKHBsdWdpbnNGb2xkZXJQYXRoKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgbGlzdGVkRmlsZXMgPSBhd2FpdCBhcHAudmF1bHQuYWRhcHRlci5saXN0KHBsdWdpbnNGb2xkZXJQYXRoKTtcbiAgY29uc3QgZGVtb2VkUGx1Z2luSWRzID0gbGlzdGVkRmlsZXMuZm9sZGVyc1xuICAgIC5tYXAoKGZvbGRlclBhdGgpID0+IGJhc2VuYW1lKGZvbGRlclBhdGgpKVxuICAgIC5maWx0ZXIoKHBsdWdpbklkKSA9PiBwbHVnaW5JZCAhPT0gREVNT19WQVVMVF9IRUxQRVJfUExVR0lOX0lEKTtcbiAgcmV0dXJuIGRlbW9lZFBsdWdpbklkcy5sZW5ndGggPT09IDEgPyBlbnN1cmVOb25OdWxsYWJsZShkZW1vZWRQbHVnaW5JZHNbMF0pIDogbnVsbDtcbn1cblxuLy8gUmVzb2x2ZXMgdGhlIHZhdWx0J3MgYWJzb2x1dGUgcGF0aCBmb3IgdGhlIG5vdGljZS4gT25seSB0aGUgZGVza3RvcCBhZGFwdGVyIGtub3dzIGl0OiBgRGF0YUFkYXB0ZXJgXG4vLyBEb2VzIG5vdCBkZWNsYXJlIGBnZXRCYXNlUGF0aGAsIGFuZCBgRmlsZVN5c3RlbUFkYXB0ZXJgIGlzIGEgZGVza3RvcC1vbmx5IGNsYXNzIHRoYXQgaXMgbm90IGd1YXJhbnRlZWRcbi8vIFRvIGV4aXN0IGVsc2V3aGVyZSBcdTIwMTQgc28gYGluc3RhbmNlb2ZgIHdvdWxkIHRocm93IHJhdGhlciB0aGFuIGFuc3dlci4gSXQgaXMgcmVhY2hlZCBpbnN0ZWFkIHRocm91Z2ggYVxuLy8gTmFycm93IGhhbmQtZGVjbGFyZWQgc2hhcGUgcGx1cyBhIHJ1bnRpbWUgY2hlY2sgKHNlZSBMOSkuIEFuIGFkYXB0ZXIgd2l0aG91dCBpdCB5aWVsZHMgbm8gcGF0aCwgYW5kXG4vLyBUaGUgbm90aWNlIHRoZW4gb21pdHMgdGhlIHNlbnRlbmNlIG5hbWluZyBpdCByYXRoZXIgdGhhbiByZW5kZXJpbmcgYHVuZGVmaW5lZGAuXG5mdW5jdGlvbiBnZXRWYXVsdEJhc2VQYXRoKGFwcDogQXBwKTogbnVsbCB8IHN0cmluZyB7XG4gIHJldHVybiBpc0Jhc2VQYXRoQWRhcHRlcihhcHAudmF1bHQuYWRhcHRlcikgPyBhcHAudmF1bHQuYWRhcHRlci5nZXRCYXNlUGF0aCgpIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gaXNCYXNlUGF0aEFkYXB0ZXIoYWRhcHRlcjogRGF0YUFkYXB0ZXIpOiBhZGFwdGVyIGlzIEJhc2VQYXRoQWRhcHRlciAmIERhdGFBZGFwdGVyIHtcbiAgcmV0dXJuIHR5cGVvZiBSZWZsZWN0LmdldChhZGFwdGVyLCAnZ2V0QmFzZVBhdGgnKSA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuLy8gVGVsbHMgdGhlIHVzZXIgdGhpcyB2YXVsdCBpcyBhIHNhbmRib3gsIHVzaW5nIE9ic2lkaWFuJ3Mgb3duIHNhbmRib3gtdmF1bHQgdHJlYXRtZW50OiBhbiBpbmZpbml0ZVxuLy8gRHVyYXRpb24sIGRpc21pc3NlZCBieSBjbGlja2luZyBpdC4gUmFpc2VkIGxhc3QsIHNvIGl0IGlzIHRoZSBuZXdlc3Qgbm90aWNlIG9uIHNjcmVlbiBvbmNlXG4vLyBDb2RlU2NyaXB0IFRvb2xraXQncyBzdGFydHVwIHNjcmlwdCBoYXMgZG9uZSBpdHMgb3duIHdvcmsuXG5mdW5jdGlvbiBzaG93U2FuZGJveE5vdGljZShhcHA6IEFwcCwgZGVtb2VkUGx1Z2luSWQ6IG51bGwgfCBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgcGx1Z2luTmFtZSA9IGRlbW9lZFBsdWdpbklkID09PSBudWxsID8gbnVsbCA6IGFwcC5wbHVnaW5zLm1hbmlmZXN0c1tkZW1vZWRQbHVnaW5JZF0/Lm5hbWUgPz8gZGVtb2VkUGx1Z2luSWQ7XG4gIGNvbnN0IGZyYWdtZW50ID0gYnVpbGRTYW5kYm94Tm90aWNlRnJhZ21lbnQocGx1Z2luTmFtZSwgZ2V0VmF1bHRCYXNlUGF0aChhcHApKTtcbiAgbmV3IE5vdGljZShmcmFnbWVudCwgU0FOREJPWF9OT1RJQ0VfRFVSQVRJT05fSU5fTUlMTElTRUNPTkRTKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNkJBLFNBQVMsY0FBYztBQUV2QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMseUJBQXlCO0FBQ2xDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBcURQLE1BQU0sZ0NBQWdDO0FBQ3RDLE1BQU0sbUNBQW1DO0FBQ3pDLE1BQU0sK0JBQTBEO0FBQUEsRUFDOUQseUJBQXlCO0FBQUEsRUFDekIsd0JBQXdCO0FBQUEsRUFDeEIsYUFBYTtBQUFBLEVBQ2IsMEJBQTBCO0FBQUEsRUFDMUIsbUJBQW1CO0FBQ3JCO0FBRUEsTUFBTSw4QkFBOEI7QUFDcEMsTUFBTSxzQkFBc0I7QUFDNUIsTUFBTSwrQkFBK0I7QUFHckMsTUFBTSwwQ0FBMEM7QUFnQmhELGVBQXNCLG1CQUFtQixRQUFpRDtBQUN4RixRQUFNLEVBQUUsSUFBSSxJQUFJO0FBS2hCLFFBQU0saUJBQWlCLE1BQU0sa0JBQWtCLEdBQUc7QUFDbEQsUUFBTSx1QkFBdUIsRUFBRSxLQUFLLFVBQVUsOEJBQThCLENBQUM7QUFDN0UsUUFBTSxTQUFTLE1BQU0seUJBQXlCO0FBQUEsSUFDNUM7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxFQUNaLENB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
112
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2RlbW8tdmF1bHQtaGVscGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQm9vdHN0cmFwcyBhIGRlbW8gdmF1bHQgYnkgaW5zdGFsbGluZywgY29uZmlndXJpbmcsIGFuZCBlbmFibGluZyBDb2RlU2NyaXB0IFRvb2xraXQuXG4gKlxuICogQSBwbHVnaW4ncyBkZW1vIHZhdWx0IHNob3djYXNlcyB0aGUgcGx1Z2luIHRocm91Z2ggbm90ZXMgd2hvc2UgYGNvZGUtYnV0dG9uYHMgcnVuIFR5cGVTY3JpcHQgdmlhXG4gKiBDb2RlU2NyaXB0IFRvb2xraXQuIEEgZGVtbyB2YXVsdCB0aGF0IGRvZXMgbm90IGl0c2VsZiBzaGlwIENvZGVTY3JpcHQgVG9vbGtpdCB0aGVyZWZvcmUgbmVlZHMgaXRcbiAqIGluc3RhbGxlZCwgY29uZmlndXJlZCwgYW5kIGVuYWJsZWQgYmVmb3JlIHRob3NlIGJ1dHRvbnMgd29yay4ge0BsaW5rIGJvb3RzdHJhcERlbW9WYXVsdH0gZG9lcyBleGFjdGx5XG4gKiB0aGF0IHdpdGggbm8gY29tbWl0dGVkIENvZGVTY3JpcHQgVG9vbGtpdCBjb25maWcgYW5kIG5vIG1hbnVhbCBzZXR1cCwgc28gaXQgY2FuIGJlIGRyaXZlbiBmcm9tIGEgdGlueVxuICogY29tbWl0dGVkIGJvb3RzdHJhcCBwbHVnaW4gKGBkZW1vLXZhdWx0LWhlbHBlcmApIHRoYXQgaXMgaW5qZWN0ZWQgaW50byBldmVyeSBkZW1vIHZhdWx0IGF0IHJlbGVhc2VcbiAqIHRpbWUuXG4gKlxuICogVGhlIHBsdWdpbiB0aGUgdmF1bHQgZGVtb25zdHJhdGVzIGlzIHJlYWQgZnJvbSB0aGUgaGVscGVyJ3Mgb3duIGBkYXRhLmpzb25gLCB3cml0dGVuIGJ5IHRoZSBwYWNrYWdpbmdcbiAqIHN0ZXAgKHtAbGluayBEZW1vVmF1bHRIZWxwZXJTZXR0aW5nc30pOyBhIHZhdWx0IHdpdGhvdXQgdGhhdCBtYXJrZXIgaXMgcmVmdXNlZCBhcyBub3QgYSBkZW1vIHZhdWx0LlxuICpcbiAqIEl0IHdyaXRlcyBDb2RlU2NyaXB0IFRvb2xraXQncyBzZXR0aW5ncyBCRUZPUkUgZW5hYmxpbmcgaXQsIHNvIHRoZSBwbHVnaW4gbG9hZHMgYWxyZWFkeSBjb25maWd1cmVkIFx1MjAxNFxuICogbm8gcmVsb2FkLiBDb2RlU2NyaXB0IFRvb2xraXQgdGhlbiBydW5zIHRoZSB2YXVsdCdzIGBzdGFydHVwLnRzYCAodmlhIGl0cyBgc3RhcnR1cFNjcmlwdFBhdGhgXG4gKiBzZXR0aW5nKSwgd2hpY2ggaXMgd2hlcmUgZWFjaCB2YXVsdCBvcGVucyBpdHMgc3RhcnQgbm90ZSBhbmQgZG9lcyBhbnkgcGx1Z2luLXNwZWNpZmljIHNldHVwLlxuICpcbiAqIEl0IGFsc28gY3JlYXRlcyBDb2RlU2NyaXB0IFRvb2xraXQncyBpbnZvY2FibGUtc2NyaXB0cyBmb2xkZXIgaWYgaXQgaXMgbWlzc2luZywgc28gZXZlcnkgZGVtbyB2YXVsdFxuICogaGFzIHRoZSBzYW1lIGxheW91dCBldmVuIHdoZW4gdGhlIHZhdWx0IHNoaXBzIG5vIGludm9jYWJsZSBzY3JpcHRzIFx1MjAxNCB0aGUgdmF1bHRzIHRoZW1zZWx2ZXMgY29tbWl0IG5vXG4gKiBlbXB0eSBmb2xkZXIgZm9yIGl0LlxuICpcbiAqIEZpbmFsbHkgaXQgcmFpc2VzIHRoZSBzYW5kYm94IG5vdGljZSBleHBsYWluaW5nIHRoYXQgdGhlIG9wZW5lZCB2YXVsdCBpcyBhIHRocm93YXdheSBjb3B5LCBzbyBhIHVzZXJcbiAqIHdobyB3cml0ZXMgdGhlaXIgb3duIG5vdGVzIGluIGl0IGlzIG5ldmVyIHN1cnByaXNlZCBieSB0aGVtIGJlaW5nIGFic2VudCBmcm9tIHRoZSBuZXh0IGNvcHkuIFNldHRpbmdzXG4gKiBpcyBjbG9zZWQgZmlyc3QsIHNvIHRoZSBub3RpY2UgbGFuZHMgaW4gdGhlIHZhdWx0J3MgbWFpbiB3aW5kb3cgcmF0aGVyIHRoYW4gaW4gdGhlIHNldHRpbmdzIHBvcG91dC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgTm90aWNlIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IERlbW9WYXVsdEhlbHBlclNldHRpbmdzIH0gZnJvbSAnLi9kZW1vLXZhdWx0LWhlbHBlci1zZXR0aW5ncy50cyc7XG5cbmltcG9ydCB7IGpvaW4gfSBmcm9tICcuLi9wYXRoLnRzJztcbmltcG9ydCB7IEVNUFRZIH0gZnJvbSAnLi4vc3RyaW5nLnRzJztcbmltcG9ydCB7XG4gIGNvbmZpZ3VyZUNvbW11bml0eVBsdWdpbixcbiAgQ29uZmlndXJlQ29tbXVuaXR5UGx1Z2luUmVzdWx0LFxuICBkaXNhYmxlQ29tbXVuaXR5UGx1Z2luLFxuICBlbmFibGVDb21tdW5pdHlQbHVnaW4sXG4gIGluc3RhbGxDb21tdW5pdHlQbHVnaW5cbn0gZnJvbSAnLi9jb21tdW5pdHktcGx1Z2lucy50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGJvb3RzdHJhcERlbW9WYXVsdH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwRGVtb1ZhdWx0UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcbn1cblxuLyoqXG4gKiBDb2RlU2NyaXB0IFRvb2xraXQncyBzZXR0aW5ncywgd3JpdHRlbiBpbnRvIGl0cyBgZGF0YS5qc29uYCBiZWZvcmUgaXQgaXMgZW5hYmxlZC5cbiAqL1xuaW50ZXJmYWNlIENvZGVTY3JpcHRUb29sa2l0U2V0dGluZ3Mge1xuICAvKipcbiAgICogVGhlIFlBTUwgZnJvbnRtYXR0ZXIgbWVyZ2VkIGludG8gZXZlcnkgYGNvZGUtYnV0dG9uYCBibG9jaydzIG93biBjb25maWcsIHVzZWQgaGVyZSB0byB0dXJuIHRoZVxuICAgKiBzb3VyY2Ugdmlld2VyIG9uIGZvciBldmVyeSBidXR0b24gaW4gZXZlcnkgZGVtbyB2YXVsdCB3aXRob3V0IGVkaXRpbmcgYSBzaW5nbGUgbm90ZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRDb2RlQnV0dG9uQ29uZmlnOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgKHVuZGVyIHtAbGluayBDb2RlU2NyaXB0VG9vbGtpdFNldHRpbmdzLm1vZHVsZXNSb290fSkgaG9sZGluZyBpbnZvY2FibGUgc2NyaXB0cy5cbiAgICovXG4gIHJlYWRvbmx5IGludm9jYWJsZVNjcmlwdHNGb2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIGZvbGRlciB0aGF0IGByZXF1aXJlKCcvXHUyMDI2JylgIHJlc29sdmVzIG1vZHVsZSBwYXRocyBhZ2FpbnN0LlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kdWxlc1Jvb3Q6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBDb2RlU2NyaXB0IFRvb2xraXQgaGFuZGxlcyBgb2JzaWRpYW46Ly9gIHByb3RvY29sIFVSTHMuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRIYW5kbGVQcm90b2NvbFVybHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoICh1bmRlciB7QGxpbmsgQ29kZVNjcmlwdFRvb2xraXRTZXR0aW5ncy5tb2R1bGVzUm9vdH0pIG9mIHRoZSBzY3JpcHQgcnVuIG9uIGxvYWQuXG4gICAqL1xuICByZWFkb25seSBzdGFydHVwU2NyaXB0UGF0aDogc3RyaW5nO1xufVxuXG5jb25zdCBDT0RFX1NDUklQVF9UT09MS0lUX1BMVUdJTl9JRCA9ICdmaXgtcmVxdWlyZS1tb2R1bGVzJztcbmNvbnN0IENPREVfU0NSSVBUX1RPT0xLSVRfTU9EVUxFU19ST09UID0gJ19hc3NldHMvQ29kZVNjcmlwdFRvb2xraXQnO1xuY29uc3QgQ09ERV9TQ1JJUFRfVE9PTEtJVF9TRVRUSU5HUzogQ29kZVNjcmlwdFRvb2xraXRTZXR0aW5ncyA9IHtcbiAgZGVmYXVsdENvZGVCdXR0b25Db25maWc6ICctLS1cXG5zb3VyY2VWaXNpYmlsaXR5OiBjb2xsYXBzZWRcXG4tLS0nLFxuICBpbnZvY2FibGVTY3JpcHRzRm9sZGVyOiAnSW52b2NhYmxlcycsXG4gIG1vZHVsZXNSb290OiBDT0RFX1NDUklQVF9UT09MS0lUX01PRFVMRVNfUk9PVCxcbiAgc2hvdWxkSGFuZGxlUHJvdG9jb2xVcmxzOiB0cnVlLFxuICBzdGFydHVwU2NyaXB0UGF0aDogJ3N0YXJ0dXAudHMnXG59O1xuXG5jb25zdCBERU1PX1ZBVUxUX0hFTFBFUl9QTFVHSU5fSUQgPSAnZGVtby12YXVsdC1oZWxwZXInO1xuY29uc3QgUExVR0lOU19GT0xERVJfTkFNRSA9ICdwbHVnaW5zJztcbmNvbnN0IERBVEFfSlNPTl9GSUxFX05BTUUgPSAnZGF0YS5qc29uJztcbmNvbnN0IElOVkFMSURfREVNT19WQVVMVF9FUlJPUl9NRVNTQUdFID0gJ0ludmFsaWQgZGVtbyB2YXVsdCc7XG5jb25zdCBPUEVOX0RFTU9fVkFVTFRfQ09NTUFORF9OQU1FID0gJ09wZW4gZGVtbyB2YXVsdCc7XG4vLyBgMGAgYXNrcyBPYnNpZGlhbiB0byBrZWVwIHRoZSBub3RpY2UgdXAgdW50aWwgdGhlIHVzZXIgY2xpY2tzIGl0IFx1MjAxNCB0aGUgc2FtZSB0cmVhdG1lbnQgT2JzaWRpYW4gZ2l2ZXNcbi8vIEl0cyBvd24gc2FuZGJveC12YXVsdCBub3RpY2UsIGFuZCB3aGF0IHRoZSBkZW1vLXZhdWx0IG5vdGljZSBpcyBtb2RlbGxlZCBvbi5cbmNvbnN0IFNBTkRCT1hfTk9USUNFX0RVUkFUSU9OX0lOX01JTExJU0VDT05EUyA9IDA7XG5cbi8qKlxuICogQm9vdHN0cmFwcyBhIGRlbW8gdmF1bHQgc28gaXRzIG5vdGVzJyBgY29kZS1idXR0b25gcyB3b3JrIHdpdGggbm8gbWFudWFsIHNldHVwOiBpbnN0YWxscyBDb2RlU2NyaXB0XG4gKiBUb29sa2l0IGZyb20gdGhlIGNvbW11bml0eSBzdG9yZSAoaWYgaXQgaXMgbm90IGFscmVhZHkgaW5zdGFsbGVkKSwgd3JpdGVzIGl0cyBzZXR0aW5ncywgdGhlbiBlbmFibGVzXG4gKiBpdCBcdTIwMTQgd3JpdGluZyB0aGUgc2V0dGluZ3MgQkVGT1JFIGVuYWJsaW5nIHNvIGEgZnJlc2ggZW5hYmxlIGxvYWRzIGl0IGFscmVhZHkgY29uZmlndXJlZCwgd2l0aCBub1xuICogcmVsb2FkLiBJZiBDb2RlU2NyaXB0IFRvb2xraXQgaXMgYWxyZWFkeSBlbmFibGVkIGJ1dCB0aGUgc2V0dGluZ3MganVzdCBjaGFuZ2VkLCBpdCBpcyByZWxvYWRlZFxuICogKGRpc2FibGVkIHRoZW4gZW5hYmxlZCkgc28gaXQgcmUtcmVhZHMgYGRhdGEuanNvbmA7IHdoZW4gdGhlIHNldHRpbmdzIHdlcmUgYWxyZWFkeSBpbiBwbGFjZSwgbm90aGluZyBpc1xuICogcmVsb2FkZWQgKHNvIGEgcm91dGluZSB2YXVsdCByZS1vcGVuIGRvZXMgbm90IHJlLXJ1biBDb2RlU2NyaXB0IFRvb2xraXQncyBzdGFydHVwKS4gQ29kZVNjcmlwdCBUb29sa2l0XG4gKiB0aGVuIHJ1bnMgdGhlIHZhdWx0J3MgYHN0YXJ0dXAudHNgLiBGaW5hbGx5IGl0IGNsb3NlcyBTZXR0aW5ncyAoc28gdGhlIG5vdGljZSBjYW5ub3QgYmUgcmFpc2VkIGluc2lkZVxuICogdGhlIHNldHRpbmdzIHBvcG91dCkgYW5kIHJhaXNlcyB0aGUgc2FuZGJveCBub3RpY2UgZGVzY3JpYmluZyB0aGUgb3BlbmVkIHZhdWx0IGFzIGEgdGhyb3dhd2F5IGNvcHkuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgQm9vdHN0cmFwRGVtb1ZhdWx0UGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSBDb2RlU2NyaXB0IFRvb2xraXQgaXMgaW5zdGFsbGVkLCBjb25maWd1cmVkLCBhbmQgZW5hYmxlZFxuICogYW5kIHRoZSBzYW5kYm94IG5vdGljZSBoYXMgYmVlbiBzaG93bi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJvb3RzdHJhcERlbW9WYXVsdChwYXJhbXM6IEJvb3RzdHJhcERlbW9WYXVsdFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGFwcCB9ID0gcGFyYW1zO1xuICAvLyBSZXNvbHZlZCBmaXJzdCwgc28gYSB2YXVsdCB0aGF0IGlzIG5vdCBhIGRlbW8gdmF1bHQgaXMgcmVmdXNlZCBiZWZvcmUgYW55dGhpbmcgaXMgaW5zdGFsbGVkIGludG8gaXQuXG4gIGNvbnN0IGRlbW9lZFBsdWdpbklkID0gYXdhaXQgZ2V0RGVtb2VkUGx1Z2luSWQoYXBwKTtcbiAgYXdhaXQgaW5zdGFsbENvbW11bml0eVBsdWdpbih7IGFwcCwgcGx1Z2luSWQ6IENPREVfU0NSSVBUX1RPT0xLSVRfUExVR0lOX0lEIH0pO1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb25maWd1cmVDb21tdW5pdHlQbHVnaW4oe1xuICAgIGFwcCxcbiAgICBwbHVnaW5JZDogQ09ERV9TQ1JJUFRfVE9PTEtJVF9QTFVHSU5fSUQsXG4gICAgc2V0dGluZ3M6IENPREVfU0NSSVBUX1RPT0xLSVRfU0VUVElOR1NcbiAgfSk7XG4gIGF3YWl0IGVuc3VyZUludm9jYWJsZVNjcmlwdHNGb2xkZXIoYXBwKTtcblxuICBpZiAoIWFwcC5wbHVnaW5zLmVuYWJsZWRQbHVnaW5zLmhhcyhDT0RFX1NDUklQVF9UT09MS0lUX1BMVUdJTl9JRCkpIHtcbiAgICBhd2FpdCBlbmFibGVDb21tdW5pdHlQbHVnaW4oeyBhcHAsIHBsdWdpbklkOiBDT0RFX1NDUklQVF9UT09MS0lUX1BMVUdJTl9JRCB9KTtcbiAgfSBlbHNlIGlmIChyZXN1bHQgPT09IENvbmZpZ3VyZUNvbW11bml0eVBsdWdpblJlc3VsdC5TdWNjZXNzKSB7XG4gICAgLy8gQWxyZWFkeSBlbmFibGVkIHdpdGggc3RhbGUgc2V0dGluZ3MgXHUyMDE0IHJlbG9hZCBzbyBDb2RlU2NyaXB0IFRvb2xraXQgcmUtcmVhZHMgdGhlIGZyZXNobHkgd3JpdHRlbiBkYXRhLmpzb24uXG4gICAgYXdhaXQgZGlzYWJsZUNvbW11bml0eVBsdWdpbih7IGFwcCwgcGx1Z2luSWQ6IENPREVfU0NSSVBUX1RPT0xLSVRfUExVR0lOX0lEIH0pO1xuICAgIGF3YWl0IGVuYWJsZUNvbW11bml0eVBsdWdpbih7IGFwcCwgcGx1Z2luSWQ6IENPREVfU0NSSVBUX1RPT0xLSVRfUExVR0lOX0lEIH0pO1xuICB9XG5cbiAgc2hvd1NhbmRib3hOb3RpY2UoYXBwLCBkZW1vZWRQbHVnaW5JZCk7XG59XG5cbi8vIEJ1aWxkcyB0aGUgc2FuZGJveCBub3RpY2UgY29udGVudDogd2hhdCB0aGlzIHZhdWx0IGlzLCB3aGVyZSBpdCBsaXZlcywgaG93IGxvbmcgaXQgbGl2ZXMsIGFuZCB3aHlcbi8vIFJlLXJ1bm5pbmcgdGhlIGNvbW1hbmQgcHJvZHVjZXMgYSB2YXVsdCB3aXRob3V0IHRoZSBub3RlcyBqdXN0IHdyaXR0ZW4gaGVyZS5cbi8vXG4vLyBFdmVyeSBjbGFpbSBoYXMgdG8gc3RheSB0cnVlIG9mIHRoZSBvcGVuZXIgKGBkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyLnRzYCk6IGl0IGV4dHJhY3RzIGEgRlJFU0ggY29weVxuLy8gSW50byBpdHMgb3duIGZvbGRlciBvbiBldmVyeSBvcGVuLCBhbmQgZGVsZXRlcyBleHRyYWN0ZWQgZm9sZGVycyBvbGRlciB0aGFuIGEgZGF5IG9uIGVhY2ggbGF0ZXIgb3Blbi5cbi8vIFNvIHRoZSB2YXVsdCBpcyBhIHRlbXBvcmFyeSBzYW5kYm94IFx1MjAxNCBpdCBtdXN0IG5ldmVyIGJlIGRlc2NyaWJlZCBhcyBhIHBsYWNlIHdvcmsgY2FuIGJlIGxlZnQuXG5mdW5jdGlvbiBidWlsZFNhbmRib3hOb3RpY2VGcmFnbWVudChwbHVnaW5OYW1lOiBzdHJpbmcpOiBEb2N1bWVudEZyYWdtZW50IHtcbiAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50KChmcmFnbWVudCkgPT4ge1xuICAgIGZyYWdtZW50LmFwcGVuZFRleHQoJ1RoaXMgaXMgYSBkZW1vIHZhdWx0IGZvciAnKTtcbiAgICBmcmFnbWVudC5jcmVhdGVFbCgnYicsIHsgdGV4dDogcGx1Z2luTmFtZSB9KTtcbiAgICBmcmFnbWVudC5hcHBlbmRUZXh0KCcuJyk7XG5cbiAgICBmcmFnbWVudC5jcmVhdGVFbCgnYnInKTtcbiAgICBmcmFnbWVudC5hcHBlbmRUZXh0KCdJdCBpcyBhIHRlbXBvcmFyeSBzYW5kYm94LCBjbGVhbmVkIHVwIGF1dG9tYXRpY2FsbHkgYWJvdXQgYSBkYXkgYWZ0ZXIgeW91IGxhc3QgdXNlIGl0LicpO1xuXG4gICAgZnJhZ21lbnQuY3JlYXRlRWwoJ2JyJyk7XG4gICAgZnJhZ21lbnQuYXBwZW5kVGV4dCgnRXhlY3V0aW5nICcpO1xuICAgIGZyYWdtZW50LmNyZWF0ZUVsKCdiJywgeyB0ZXh0OiBgJHtwbHVnaW5OYW1lfTogJHtPUEVOX0RFTU9fVkFVTFRfQ09NTUFORF9OQU1FfWAgfSk7XG4gICAgZnJhZ21lbnQuYXBwZW5kVGV4dCgnIGNvbW1hbmQgYWdhaW4gY3JlYXRlcyBhIG5ldyBjb3B5IHdpdGggdGhlIGxhdGVzdCBwbHVnaW4gdmVyc2lvbiwgc28geW91ciBub3RlcyB3aWxsIG5vdCBhcHBlYXIgaW4gaXQuJyk7XG4gIH0pO1xufVxuXG4vLyBDcmVhdGVzIENvZGVTY3JpcHQgVG9vbGtpdCdzIGludm9jYWJsZS1zY3JpcHRzIGZvbGRlciAodW5kZXIgYG1vZHVsZXNSb290YCkgaWYgaXQgaXMgbWlzc2luZy5cbi8vIEV2ZXJ5IGRlbW8gdmF1bHQgdGhlbiBoYXMgdGhlIHNhbWUgQ29kZVNjcmlwdCBUb29sa2l0IGxheW91dCBldmVuIHdoZW4gaXQgc2hpcHMgbm8gaW52b2NhYmxlIHNjcmlwdHMuXG4vLyBUaGUgY29tbWl0dGVkIHZhdWx0IHRoZXJlZm9yZSBjYXJyaWVzIG5vIG90aGVyd2lzZS1lbXB0eSBwbGFjZWhvbGRlciBmb2xkZXIuXG5hc3luYyBmdW5jdGlvbiBlbnN1cmVJbnZvY2FibGVTY3JpcHRzRm9sZGVyKGFwcDogQXBwKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGludm9jYWJsZVNjcmlwdHNGb2xkZXJQYXRoID0gam9pbihDT0RFX1NDUklQVF9UT09MS0lUX01PRFVMRVNfUk9PVCwgQ09ERV9TQ1JJUFRfVE9PTEtJVF9TRVRUSU5HUy5pbnZvY2FibGVTY3JpcHRzRm9sZGVyKTtcbiAgaWYgKCFhd2FpdCBhcHAudmF1bHQuYWRhcHRlci5leGlzdHMoaW52b2NhYmxlU2NyaXB0c0ZvbGRlclBhdGgpKSB7XG4gICAgYXdhaXQgYXBwLnZhdWx0LmFkYXB0ZXIubWtkaXIoaW52b2NhYmxlU2NyaXB0c0ZvbGRlclBhdGgpO1xuICB9XG59XG5cbi8vIFJlYWRzIHRoZSBwbHVnaW4gdGhlIHZhdWx0IGRlbW9uc3RyYXRlcyBvdXQgb2YgdGhpcyBoZWxwZXIncyBvd24gYGRhdGEuanNvbmAsIHdyaXR0ZW4gYnkgdGhlXG4vLyBQYWNrYWdpbmcgc3RlcCAoc2VlIGBEZW1vVmF1bHRIZWxwZXJTZXR0aW5nc2ApLiBBIHZhdWx0IHdpdGhvdXQgYSByZWFkYWJsZSBtYXJrZXIgd2FzIG5vdCBwcm9kdWNlZCBieVxuLy8gVGhhdCBzdGVwIFx1MjAxNCBoYW5kLWFzc2VtYmxlZCwgb3IgdW5wYWNrZWQgZnJvbSBzb21ldGhpbmcgdGhhdCBpcyBub3QgYSBkZW1vIHZhdWx0IFx1MjAxNCBzbyBpdCBpcyByZWZ1c2VkXG4vLyBSYXRoZXIgdGhhbiBib290c3RyYXBwZWQgYWdhaW5zdCBhIGd1ZXNzLlxuYXN5bmMgZnVuY3Rpb24gZ2V0RGVtb2VkUGx1Z2luSWQoYXBwOiBBcHApOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBzZXR0aW5nc1BhdGggPSBqb2luKGFwcC52YXVsdC5jb25maWdEaXIsIFBMVUdJTlNfRk9MREVSX05BTUUsIERFTU9fVkFVTFRfSEVMUEVSX1BMVUdJTl9JRCwgREFUQV9KU09OX0ZJTEVfTkFNRSk7XG4gIGlmICghYXdhaXQgYXBwLnZhdWx0LmFkYXB0ZXIuZXhpc3RzKHNldHRpbmdzUGF0aCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoSU5WQUxJRF9ERU1PX1ZBVUxUX0VSUk9SX01FU1NBR0UpO1xuICB9XG5cbiAgbGV0IHBhcnNlZDogdW5rbm93bjtcbiAgdHJ5IHtcbiAgICBwYXJzZWQgPSBKU09OLnBhcnNlKGF3YWl0IGFwcC52YXVsdC5hZGFwdGVyLnJlYWQoc2V0dGluZ3NQYXRoKSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKElOVkFMSURfREVNT19WQVVMVF9FUlJPUl9NRVNTQUdFLCB7IGNhdXNlOiBlcnJvciB9KTtcbiAgfVxuXG4gIGNvbnN0IGRlbW9lZFBsdWdpbklkID0gKHBhcnNlZCBhcyBudWxsIHwgUGFydGlhbDxEZW1vVmF1bHRIZWxwZXJTZXR0aW5ncz4pPy5kZW1vZWRQbHVnaW5JZDtcbiAgaWYgKHR5cGVvZiBkZW1vZWRQbHVnaW5JZCAhPT0gJ3N0cmluZycgfHwgZGVtb2VkUGx1Z2luSWQgPT09IEVNUFRZKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKElOVkFMSURfREVNT19WQVVMVF9FUlJPUl9NRVNTQUdFKTtcbiAgfVxuICByZXR1cm4gZGVtb2VkUGx1Z2luSWQ7XG59XG5cbi8vIFRlbGxzIHRoZSB1c2VyIHRoaXMgdmF1bHQgaXMgYSBzYW5kYm94LCB1c2luZyBPYnNpZGlhbidzIG93biBzYW5kYm94LXZhdWx0IHRyZWF0bWVudDogYW4gaW5maW5pdGVcbi8vIER1cmF0aW9uLCBkaXNtaXNzZWQgYnkgY2xpY2tpbmcgaXQuIFJhaXNlZCBsYXN0LCBzbyBpdCBpcyB0aGUgbmV3ZXN0IG5vdGljZSBvbiBzY3JlZW4gb25jZVxuLy8gQ29kZVNjcmlwdCBUb29sa2l0J3Mgc3RhcnR1cCBzY3JpcHQgaGFzIGRvbmUgaXRzIG93biB3b3JrLlxuLy9cbi8vIEEgYE5vdGljZWAgaXMgYnVpbHQgaW5zaWRlIHdoYXRldmVyIHdpbmRvdyBpcyBhY3RpdmUgYXQgdGhhdCBtb21lbnQsIGFuZCBTZXR0aW5ncyBpcyBhIFBPUE9VVCBXSU5ET1dcbi8vICh2ZXJpZmllZCBvbiAxLjEzLjYpIHRoYXQgYmVjb21lcyB0aGUgYWN0aXZlIG9uZSB3aGlsZSBpdCBpcyBvcGVuIFx1MjAxNCBzbyBhIG5vdGljZSByYWlzZWQgdGhlbiB3b3VsZCBiZVxuLy8gQ3JlYXRlZCBpbiB0aGUgc2V0dGluZ3Mgd2luZG93IGFuZCB2YW5pc2ggd2l0aCBpdC4gU2V0dGluZ3MgaXMgdGhlcmVmb3JlIGNsb3NlZCBmaXJzdDogT2JzaWRpYW4gaGFuZHNcbi8vIFRoZSBtYWluIHdpbmRvdyBiYWNrIGFzIHRoZSBwb3BvdXQgZ29lcyBhd2F5IChzeW5jaHJvbm91c2x5LCBiZWZvcmUgdGhlIG5vdGljZSBpcyBidWlsdCksIGFuZCBhIHVzZXJcbi8vIFdobyBoYXMganVzdCBvcGVuZWQgYSBkZW1vIHZhdWx0IHdhbnRzIHRvIHNlZSB0aGUgdmF1bHQgcmF0aGVyIHRoYW4gYSBzZXR0aW5ncyB3aW5kb3cgYW55d2F5LiBDbG9zaW5nXG4vLyBBbiBhbHJlYWR5LWNsb3NlZCBTZXR0aW5ncyBpcyBhIG5vLW9wLCBzbyBubyBvcGVuLXN0YXRlIHByb2JlIGlzIG5lZWRlZC5cbmZ1bmN0aW9uIHNob3dTYW5kYm94Tm90aWNlKGFwcDogQXBwLCBkZW1vZWRQbHVnaW5JZDogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IHBsdWdpbk5hbWUgPSBhcHAucGx1Z2lucy5tYW5pZmVzdHNbZGVtb2VkUGx1Z2luSWRdPy5uYW1lID8/IGRlbW9lZFBsdWdpbklkO1xuICBjb25zdCBmcmFnbWVudCA9IGJ1aWxkU2FuZGJveE5vdGljZUZyYWdtZW50KHBsdWdpbk5hbWUpO1xuICBhcHAuc2V0dGluZy5jbG9zZSgpO1xuICBuZXcgTm90aWNlKGZyYWdtZW50LCBTQU5EQk9YX05PVElDRV9EVVJBVElPTl9JTl9NSUxMSVNFQ09ORFMpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4QkEsU0FBUyxjQUFjO0FBSXZCLFNBQVMsWUFBWTtBQUNyQixTQUFTLGFBQWE7QUFDdEI7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
@@ -86,6 +86,7 @@ import {
86
86
  getCommunityPluginRepo,
87
87
  getLatestReleaseVersion
88
88
  } from "./community-plugins.mjs";
89
+ import { PluginNoticeMode } from "./components/plugin-notice-component.mjs";
89
90
  import { selectOption } from "./modals/select-option.mjs";
90
91
  const DEMO_VAULTS_CACHE_FOLDER = "obsidian-demo-vaults";
91
92
  const ARCHIVES_SUBFOLDER = "archives";
@@ -104,7 +105,8 @@ async function openDemoVault(params) {
104
105
  } = params;
105
106
  const progressNotice = __using(_stack, pluginNoticeComponent.showNoticeAfterDelay({
106
107
  content: `Opening demo vault for ${pluginName}\u2026`,
107
- delayInMilliseconds: 0
108
+ delayInMilliseconds: 0,
109
+ mode: PluginNoticeMode.Separate
108
110
  }));
109
111
  const repo = await getCommunityPluginRepo(pluginId);
110
112
  if (!repo) {
@@ -231,4 +233,4 @@ async function resolveDemoVaultArchive(params) {
231
233
  export {
232
234
  openDemoVault
233
235
  };
234
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBEb3dubG9hZHMgYW5kIG9wZW5zIGEgcGx1Z2luJ3Mgc2hpcHBlZCBkZW1vIHZhdWx0IGluIGEgbmV3IE9ic2lkaWFuIHdpbmRvdyAoZGVza3RvcCBvbmx5KS5cbiAqXG4gKiBBIHBsdWdpbiBjYW4gYXR0YWNoIGEgYDxwbHVnaW4taWQ+LWRlbW8tdmF1bHQtPHZlcnNpb24+LnppcGAgYXJjaGl2ZSB0byBlYWNoIEdpdEh1YiByZWxlYXNlIChzZWVcbiAqIGBhcmNoaXZlUGx1Z2luRGVtb1ZhdWx0YCBpbiBgc2NyaXB0LXV0aWxzL2RlbW8tdmF1bHQudHNgKS4gVGhpcyByZXNvbHZlcyB0aGUgcGx1Z2luJ3MgcmVwb3NpdG9yeVxuICogZnJvbSBPYnNpZGlhbidzIGNvbW11bml0eSByZWdpc3RyeSwgZG93bmxvYWRzIHRoZSBhcmNoaXZlIGZvciB0aGUgY2hvc2VuIHZlcnNpb24sIGFuZCBvcGVucyBpdCBhcyBhXG4gKiB2YXVsdCBpbiBhIG5ldyB3aW5kb3cuIFdoZW4gdGhlIGluc3RhbGxlZCBwbHVnaW4gdmVyc2lvbiBpcyBiZWhpbmQgdGhlIGxhdGVzdCByZWxlYXNlLCB0aGUgdXNlciBpc1xuICogb2ZmZXJlZCBhIGNob2ljZSBiZXR3ZWVuIHRoZSB0d28gdmVyc2lvbnMuXG4gKlxuICogQSBwcm9ncmVzcyBub3RpY2UgaXMgc2hvd24gaW1tZWRpYXRlbHkgKGRvd25sb2FkICsgZXh0cmFjdGlvbiBjYW4gdGFrZSBhIHdoaWxlLCBzbyB0aGUgdXNlciBtdXN0IHNlZVxuICogc29tZXRoaW5nIGlzIGhhcHBlbmluZyByaWdodCBhd2F5KS4gT25seSB0aGUgZG93bmxvYWRlZCBBUkNISVZFIGlzIGNhY2hlZCAodW5kZXIgdGhlIE9TIHRlbXBcbiAqIGRpcmVjdG9yeSk7IGV2ZXJ5IGludm9jYXRpb24gZXh0cmFjdHMgYSBGUkVTSCBjb3B5IGludG8gaXRzIG93biB0ZW1wb3JhcnkgZm9sZGVyIGFuZCBvcGVucyB0aGF0LCBzbyBhXG4gKiBwcmV2aW91cyBzZXNzaW9uJ3MgZWRpdHMgbmV2ZXIgbGVhayBpbnRvIGEgbmV3IG9uZS4gVGhlIGV4dHJhY3RlZCB2YXVsdCBmb2xkZXIgaXMgbmFtZWRcbiAqIGA8cGx1Z2luLWlkPi08dmVyc2lvbj4uZGVtby12YXVsdGAgc28gaXQgcmVhZHMgbmljZWx5IGluIE9ic2lkaWFuJ3MgdmF1bHQgc3dpdGNoZXIuIE9ycGhhbmVkXG4gKiBleHRyYWN0ZWQgZm9sZGVycyBsZWZ0IG92ZXIgZnJvbSBlYXJsaWVyIHNlc3Npb25zIGFyZSBjbGVhbmVkIHVwIChiZXN0LWVmZm9ydCkgb24gZWFjaCBvcGVuLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgQWRtWmlwIGZyb20gJ2FkbS16aXAnO1xuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSAnY29tcGFyZS12ZXJzaW9ucyc7XG4vKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlcyAtLSBEZXNrdG9wLW9ubHkgZmVhdHVyZSBnYXRlZCBieSBgUGxhdGZvcm0uaXNEZXNrdG9wQXBwYDsgdGhlIGNvbW1hbmQgaXMgaGlkZGVuIG9uIG1vYmlsZSBzbyB0aGVzZSBOb2RlIEFQSXMgYXJlIG5ldmVyIHJlYWNoZWQgdGhlcmUuICovXG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdub2RlOmJ1ZmZlcic7XG5pbXBvcnQge1xuICBleGlzdHNTeW5jLFxuICBta2RpclN5bmMsXG4gIG1rZHRlbXBTeW5jLFxuICByZWFkZGlyU3luYyxcbiAgcmVhZEZpbGVTeW5jLFxuICBybVN5bmMsXG4gIHN0YXRTeW5jLFxuICB3cml0ZUZpbGVTeW5jXG59IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG4vKiBlc2xpbnQtZW5hYmxlIGltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzIC0tIERlc2t0b3Atb25seSBmZWF0dXJlIGdhdGVkIGJ5IGBQbGF0Zm9ybS5pc0Rlc2t0b3BBcHBgOyB0aGUgY29tbWFuZCBpcyBoaWRkZW4gb24gbW9iaWxlIHNvIHRoZXNlIE5vZGUgQVBJcyBhcmUgbmV2ZXIgcmVhY2hlZCB0aGVyZS4gKi9cbmltcG9ydCB7IHJlcXVlc3RVcmwgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgUGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICBQbHVnaW5Ob3RpY2VDb21wb25lbnREZWxheWVkTm90aWNlXG59IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5cbmltcG9ydCB7IGpvaW4gfSBmcm9tICcuLi9wYXRoLnRzJztcbmltcG9ydCB7XG4gIGdldENvbW11bml0eVBsdWdpblJlcG8sXG4gIGdldExhdGVzdFJlbGVhc2VWZXJzaW9uXG59IGZyb20gJy4vY29tbXVuaXR5LXBsdWdpbnMudHMnO1xuaW1wb3J0IHsgc2VsZWN0T3B0aW9uIH0gZnJvbSAnLi9tb2RhbHMvc2VsZWN0LW9wdGlvbi50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIG9wZW5EZW1vVmF1bHR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5EZW1vVmF1bHRQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luIGlkLCB1c2VkIHRvIGxvY2F0ZSB0aGUgR2l0SHViIHJlcG9zaXRvcnksIHRvIG5hbWUgdGhlIGFyY2hpdmUgYXNzZXQsIGFuZCB0byBuYW1lIHRoZVxuICAgKiBjYWNoZWQgYXJjaGl2ZSBhbmQgdGhlIGV4dHJhY3RlZCB2YXVsdCBmb2xkZXIuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luIGRpc3BsYXkgbmFtZSwgdXNlZCB0byBsYWJlbCB0aGUgbm90aWNlcyBhbmQgdGhlIHZlcnNpb24tY2hvaWNlIGRpYWxvZy5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5vdGljZSBjb21wb25lbnQgdXNlZCB0byByZXBvcnQgcHJvZ3Jlc3MgYW5kIHByb2JsZW1zIChwbHVnaW4gbm90IGluIHRoZSByZWdpc3RyeSwgbWlzc2luZ1xuICAgKiBhcmNoaXZlKS5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5vdGljZUNvbXBvbmVudDogUGx1Z2luTm90aWNlQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IGluc3RhbGxlZCBwbHVnaW4gdmVyc2lvbiwgb2ZmZXJlZCBhcyBvbmUgb2YgdGhlIHZlcnNpb24gY2hvaWNlcy5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpblZlcnNpb246IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEV4dHJhY3REZW1vVmF1bHRUb0ZyZXNoRm9sZGVyUGFyYW1zIHtcbiAgcmVhZG9ubHkgYXJjaGl2ZTogQnVmZmVyO1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBSZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZVBhcmFtcyB7XG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcGx1Z2luTm90aWNlQ29tcG9uZW50OiBQbHVnaW5Ob3RpY2VDb21wb25lbnQ7XG4gIHJlYWRvbmx5IHByb2dyZXNzTm90aWNlOiBQbHVnaW5Ob3RpY2VDb21wb25lbnREZWxheWVkTm90aWNlO1xuICByZWFkb25seSByZXBvOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuY29uc3QgREVNT19WQVVMVFNfQ0FDSEVfRk9MREVSID0gJ29ic2lkaWFuLWRlbW8tdmF1bHRzJztcbmNvbnN0IEFSQ0hJVkVTX1NVQkZPTERFUiA9ICdhcmNoaXZlcyc7XG5jb25zdCBFWFRSQUNURURfVkFVTFRTX1NVQkZPTERFUiA9ICdleHRyYWN0ZWQnO1xuY29uc3QgSFRUUF9TVEFUVVNfT0sgPSAyMDA7XG4vLyBPbmUgZGF5IGluIG1pbGxpc2Vjb25kcyAoMjQgKiA2MCAqIDYwICogMTAwMCkuXG5jb25zdCBPUlBIQU5FRF9FWFRSQUNURURfVkFVTFRfTUFYX0FHRV9JTl9NSUxMSVNFQ09ORFMgPSA4Nl80MDBfMDAwO1xuXG4vKipcbiAqIERvd25sb2FkcyBhbmQgb3BlbnMgdGhlIHBsdWdpbidzIGRlbW8gdmF1bHQgaW4gYSBuZXcgT2JzaWRpYW4gd2luZG93LiBEZXNrdG9wIG9ubHkuXG4gKlxuICogSWYgdGhlIGluc3RhbGxlZCBwbHVnaW4gdmVyc2lvbiBpcyB0aGUgbGF0ZXN0IChvciBuZXdlciksIGl0cyBkZW1vIHZhdWx0IG9wZW5zIGRpcmVjdGx5OyBvdGhlcndpc2VcbiAqIHRoZSB1c2VyIGNob29zZXMgYmV0d2VlbiB0aGUgbGF0ZXN0IGFuZCB0aGUgY3VycmVudGx5LWluc3RhbGxlZCB2ZXJzaW9uLiBBIHByb2dyZXNzIG5vdGljZSBpcyBzaG93blxuICogaW1tZWRpYXRlbHkuIFRoZSBjaG9zZW4gdmVyc2lvbidzIGFyY2hpdmUgaXMgZG93bmxvYWRlZCBvbmNlICh0aGVuIHJldXNlZCBmcm9tIHRoZSBhcmNoaXZlIGNhY2hlKSxcbiAqIGJ1dCBhIGZyZXNoIGNvcHkgaXMgZXh0cmFjdGVkIGludG8gaXRzIG93biB0ZW1wb3JhcnkgZm9sZGVyIG9uIGV2ZXJ5IG9wZW4gXHUyMDE0IHRoZSB2YXVsdCBpcyBuZXZlciByZXVzZWRcbiAqIGFjcm9zcyBzZXNzaW9ucy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBPcGVuRGVtb1ZhdWx0UGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgdmF1bHQgaGFzIGJlZW4gb3BlbmVkLCBvciBvbmNlIHRoZSBvcGVyYXRpb24gaGFzXG4gKiBiZWVuIHJlcG9ydGVkIGFzIG5vdCBwb3NzaWJsZSAobm90aWNlIHNob3duKSBvciBjYW5jZWxsZWQgYnkgdGhlIHVzZXIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvcGVuRGVtb1ZhdWx0KHBhcmFtczogT3BlbkRlbW9WYXVsdFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIHBsdWdpbklkLFxuICAgIHBsdWdpbk5hbWUsXG4gICAgcGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICAgIHBsdWdpblZlcnNpb25cbiAgfSA9IHBhcmFtcztcblxuICAvLyBTaG93biBpbW1lZGlhdGVseSAoYGRlbGF5SW5NaWxsaXNlY29uZHM6IDBgKTogcmVzb2x2aW5nIHRoZSByZWxlYXNlLCBkb3dubG9hZGluZyBhbmQgZXh0cmFjdGluZyBjYW5cbiAgLy8gRWFjaCB0YWtlIGEgd2hpbGUsIHNvIHRoZSB1c2VyIG11c3Qgc2VlIHByb2dyZXNzIHRoZSBtb21lbnQgdGhlIGNvbW1hbmQgaXMgaW52b2tlZC5cbiAgdXNpbmcgcHJvZ3Jlc3NOb3RpY2UgPSBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZUFmdGVyRGVsYXkoe1xuICAgIGNvbnRlbnQ6IGBPcGVuaW5nIGRlbW8gdmF1bHQgZm9yICR7cGx1Z2luTmFtZX1cdTIwMjZgLFxuICAgIGRlbGF5SW5NaWxsaXNlY29uZHM6IDBcbiAgfSk7XG5cbiAgY29uc3QgcmVwbyA9IGF3YWl0IGdldENvbW11bml0eVBsdWdpblJlcG8ocGx1Z2luSWQpO1xuICBpZiAoIXJlcG8pIHtcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZShgQ291bGQgbm90IGZpbmQgcGx1Z2luICR7cGx1Z2luTmFtZX0gaW4gdGhlIGNvbW11bml0eSBwbHVnaW5zIHJlZ2lzdHJ5LmApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gcGx1Z2luVmVyc2lvbjtcbiAgY29uc3QgbGF0ZXN0VmVyc2lvbiA9IGF3YWl0IGdldExhdGVzdFJlbGVhc2VWZXJzaW9uKHJlcG8pO1xuXG4gIGxldCB2ZXJzaW9uVG9PcGVuOiBzdHJpbmc7XG4gIGlmIChjb21wYXJlVmVyc2lvbnMoY3VycmVudFZlcnNpb24sIGxhdGVzdFZlcnNpb24pID49IDApIHtcbiAgICB2ZXJzaW9uVG9PcGVuID0gY3VycmVudFZlcnNpb247XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY2hvc2VuVmVyc2lvbiA9IGF3YWl0IHNlbGVjdE9wdGlvbjxudWxsIHwgc3RyaW5nPih7XG4gICAgICBhcHAsXG4gICAgICBtZXNzYWdlOiBgQ3VycmVudCB2ZXJzaW9uIG9mIHBsdWdpbiAke3BsdWdpbk5hbWV9IHYke2N1cnJlbnRWZXJzaW9ufSBpcyBub3QgdGhlIGxhdGVzdCAodiR7bGF0ZXN0VmVyc2lvbn0pYCxcbiAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlzQ3RhOiB0cnVlLFxuICAgICAgICAgIHRleHQ6IGBPcGVuIGRlbW8gdmF1bHQgZm9yIGxhdGVzdCB2ZXJzaW9uICh2JHtsYXRlc3RWZXJzaW9ufSlgLFxuICAgICAgICAgIHZhbHVlOiBsYXRlc3RWZXJzaW9uXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiBgT3BlbiBkZW1vIHZhdWx0IGZvciBjdXJyZW50IHZlcnNpb24gKHYke2N1cnJlbnRWZXJzaW9ufSlgLFxuICAgICAgICAgIHZhbHVlOiBjdXJyZW50VmVyc2lvblxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogJ0NhbmNlbCcsXG4gICAgICAgICAgdmFsdWU6IG51bGxcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIHRpdGxlOiBwbHVnaW5OYW1lXG4gICAgfSk7XG4gICAgaWYgKGNob3NlblZlcnNpb24gPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmVyc2lvblRvT3BlbiA9IGNob3NlblZlcnNpb247XG4gIH1cblxuICBjb25zdCBhcmNoaXZlID0gYXdhaXQgcmVzb2x2ZURlbW9WYXVsdEFyY2hpdmUoe1xuICAgIHBsdWdpbklkLFxuICAgIHBsdWdpbk5hbWUsXG4gICAgcGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICAgIHByb2dyZXNzTm90aWNlLFxuICAgIHJlcG8sXG4gICAgdmVyc2lvbjogdmVyc2lvblRvT3BlblxuICB9KTtcbiAgaWYgKCFhcmNoaXZlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHJvZ3Jlc3NOb3RpY2Uuc2V0Q29udGVudChgRXh0cmFjdGluZyBkZW1vIHZhdWx0IGZvciAke3BsdWdpbk5hbWV9IHYke3ZlcnNpb25Ub09wZW59XHUyMDI2YCk7XG4gIGNsZWFudXBPcnBoYW5lZEV4dHJhY3RlZFZhdWx0cygpO1xuICBjb25zdCB2YXVsdERpcmVjdG9yeSA9IGV4dHJhY3REZW1vVmF1bHRUb0ZyZXNoRm9sZGVyKHtcbiAgICBhcmNoaXZlLFxuICAgIHBsdWdpbklkLFxuICAgIHZlcnNpb246IHZlcnNpb25Ub09wZW5cbiAgfSk7XG5cbiAgd2luZG93LmVsZWN0cm9uLmlwY1JlbmRlcmVyLnNlbmRTeW5jKCd2YXVsdC1vcGVuJywgdmF1bHREaXJlY3RvcnksIGZhbHNlKTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIGV4dHJhY3RlZCBkZW1vLXZhdWx0IGZvbGRlcnMgbGVmdCBvdmVyIGZyb20gZWFybGllciBzZXNzaW9ucyAoYmVzdC1lZmZvcnQpLlxuICpcbiAqIEV2ZXJ5IG9wZW4gZXh0cmFjdHMgYSBmcmVzaCBjb3B5IGludG8gaXRzIG93biBmb2xkZXIgYW5kIG5ldmVyIGRlbGV0ZXMgaXQgYWZ0ZXJ3YXJkcyAodGhlIHZhdWx0IHN0YXlzXG4gKiBvcGVuIGluIGl0cyB3aW5kb3cpLCBzbyB0aGVzZSBhY2N1bXVsYXRlLiBUaGlzIGRyb3BzIGZvbGRlcnMgb2xkZXIgdGhhblxuICoge0BsaW5rIE9SUEhBTkVEX0VYVFJBQ1RFRF9WQVVMVF9NQVhfQUdFX0lOX01JTExJU0VDT05EU30uIEEgZm9sZGVyIHdob3NlIHZhdWx0IGlzIHN0aWxsIG9wZW4gaW4gYW5vdGhlclxuICogd2luZG93IGlzIGxvY2tlZCBvbiBXaW5kb3dzIGFuZCBjYW5ub3QgYmUgcmVtb3ZlZCBcdTIwMTQgdGhlIHJlbW92YWwgaXMgd3JhcHBlZCBzbyBzdWNoIGEgZm9sZGVyIGlzIHNpbXBseVxuICogc2tpcHBlZCBhbmQgcmV0cmllZCBvbiBhIGxhdGVyIG9wZW4uXG4gKi9cbmZ1bmN0aW9uIGNsZWFudXBPcnBoYW5lZEV4dHJhY3RlZFZhdWx0cygpOiB2b2lkIHtcbiAgY29uc3QgZXh0cmFjdGVkVmF1bHRzUm9vdCA9IGpvaW4odG1wZGlyKCksIERFTU9fVkFVTFRTX0NBQ0hFX0ZPTERFUiwgRVhUUkFDVEVEX1ZBVUxUU19TVUJGT0xERVIpO1xuICBpZiAoIWV4aXN0c1N5bmMoZXh0cmFjdGVkVmF1bHRzUm9vdCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICBmb3IgKGNvbnN0IGVudHJ5TmFtZSBvZiByZWFkZGlyU3luYyhleHRyYWN0ZWRWYXVsdHNSb290KSkge1xuICAgIGNvbnN0IGVudHJ5UGF0aCA9IGpvaW4oZXh0cmFjdGVkVmF1bHRzUm9vdCwgZW50cnlOYW1lKTtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RhdHMgPSBzdGF0U3luYyhlbnRyeVBhdGgpO1xuICAgICAgaWYgKG5vdyAtIHN0YXRzLm10aW1lTXMgPCBPUlBIQU5FRF9FWFRSQUNURURfVkFVTFRfTUFYX0FHRV9JTl9NSUxMSVNFQ09ORFMpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBybVN5bmMoZW50cnlQYXRoLCB7IGZvcmNlOiB0cnVlLCByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBCZXN0LWVmZm9ydCBjbGVhbnVwOiBhbiBvcnBoYW4gd2hvc2UgdmF1bHQgaXMgc3RpbGwgb3BlbiAobG9ja2VkIG9uIFdpbmRvd3MpIGNhbm5vdCBiZSByZW1vdmVkOyBza2lwIGl0IGFuZCByZXRyeSBvbiBhIGxhdGVyIG9wZW4uXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogRXh0cmFjdHMgYSBkb3dubG9hZGVkIGRlbW8tdmF1bHQgYXJjaGl2ZSB0byBkaXNrLlxuICpcbiAqIEVsZWN0cm9uJ3MgYXNhciBsYXllciBpbnRlcmNlcHRzIGBmc2Agb3BlcmF0aW9ucyBvbiBhbnkgcGF0aCBjb250YWluaW5nIGAuYXNhcmAgYW5kIHRocm93cyBgRU5PRU5UYFxuICogd2hlbiBgY2htb2RgLWluZyBhbiBgLmFzYXJgIGZpbGUgKGl0IHRyZWF0cyBpdCBhcyBhbiBhcmNoaXZlIHJvb3QgcmF0aGVyIHRoYW4gYSBwbGFpbiBmaWxlKS4gQSBkZW1vXG4gKiB2YXVsdCBtYXkgc2hpcCBzdWNoIGEgZmlsZSAoZS5nLiBgX2Fzc2V0cy9Db2RlU2NyaXB0VG9vbGtpdC9tb2R1bGUuYXNhcmAgZGVtb25zdHJhdGluZyB0aGUgQVNBUlxuICogcmVxdWlyZSBmZWF0dXJlKSwgYW5kIGFkbS16aXAgYGNobW9kYHMgZXZlcnkgZXh0cmFjdGVkIGZpbGUsIHNvIGV4dHJhY3Rpb24gd291bGQgb3RoZXJ3aXNlIGNyYXNoLlxuICogSGFuZCBhZG0temlwIEVsZWN0cm9uJ3MgYG9yaWdpbmFsLWZzYCBcdTIwMTQgdGhlIHJlYWwgYGZzYCB3aXRoIGFzYXIgaW50ZXJjZXB0aW9uIGRpc2FibGVkIFx1MjAxNCBzbyB0aGVcbiAqIGAuYXNhcmAgZmlsZSBpcyB0cmVhdGVkIGFzIGEgcGxhaW4gZmlsZSBhbmQgYGNobW9kYCBzdWNjZWVkcy4gSXQgaXMgYSBkZXNrdG9wLW9ubHkgRWxlY3Ryb24gbW9kdWxlXG4gKiB3aXRoIG5vIGJ1bmRsZWQgdHlwZXMsIHNvIGl0IGlzIGxvYWRlZCB2aWEgYHdpbmRvdy5yZXF1aXJlYCBhbmQgdHlwZWQgYXMgYG5vZGU6ZnNgJ3Mgc2hhcGUuXG4gKlxuICogQHBhcmFtIGFyY2hpdmUgLSBUaGUgcmF3IHppcCBhcmNoaXZlIGJ5dGVzLlxuICogQHBhcmFtIHRhcmdldERpcmVjdG9yeSAtIFRoZSBkaXJlY3RvcnkgdG8gZXh0cmFjdCBpbnRvLlxuICovXG5mdW5jdGlvbiBleHRyYWN0RGVtb1ZhdWx0QXJjaGl2ZShhcmNoaXZlOiBCdWZmZXIsIHRhcmdldERpcmVjdG9yeTogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IG9yaWdpbmFsRnMgPSB3aW5kb3cucmVxdWlyZSgnbm9kZTpvcmlnaW5hbC1mcycpIGFzIHR5cGVvZiBpbXBvcnQoJ25vZGU6ZnMnKTtcbiAgY29uc3QgemlwID0gbmV3IEFkbVppcChhcmNoaXZlLCB7IGZzOiBvcmlnaW5hbEZzIH0pO1xuICB6aXAuZXh0cmFjdEFsbFRvKHRhcmdldERpcmVjdG9yeSwgdHJ1ZSk7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIGFyY2hpdmUgaW50byBhIGZyZXNoLCB1bmlxdWVseS1uYW1lZCB0ZW1wb3JhcnkgZm9sZGVyIGFuZCByZXR1cm5zIHRoZSB2YXVsdCBwYXRoLlxuICpcbiAqIEEgdW5pcXVlIHBhcmVudCBmb2xkZXIgKGBta2R0ZW1wU3luY2ApIGd1YXJhbnRlZXMgYSBicmFuZC1uZXcgZXh0cmFjdGlvbiBldmVyeSB0aW1lIFx1MjAxNCB0aGUgZGVtbyB2YXVsdFxuICogaXMgbmV2ZXIgcmV1c2VkIGFjcm9zcyBvcGVucywgc28gYSBwcmV2aW91cyBzZXNzaW9uJ3MgZWRpdHMgbmV2ZXIgbGVhayBpbi4gSW5zaWRlIGl0LCB0aGUgdmF1bHQgZm9sZGVyXG4gKiBpcyBuYW1lZCBgPHBsdWdpbi1pZD4tPHZlcnNpb24+LmRlbW8tdmF1bHRgIHNvIE9ic2lkaWFuJ3MgdmF1bHQgc3dpdGNoZXIgc2hvd3MgYSBmcmllbmRseSBuYW1lIChpdHNcbiAqIGJhc2VuYW1lKSByYXRoZXIgdGhhbiB0aGUgcmFuZG9tIHRlbXAgaWQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgRXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXJQYXJhbXN9LlxuICogQHJldHVybnMgVGhlIGFic29sdXRlIHBhdGggb2YgdGhlIGZyZXNobHkgZXh0cmFjdGVkIHZhdWx0IGZvbGRlci5cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXIocGFyYW1zOiBFeHRyYWN0RGVtb1ZhdWx0VG9GcmVzaEZvbGRlclBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHsgYXJjaGl2ZSwgcGx1Z2luSWQsIHZlcnNpb24gfSA9IHBhcmFtcztcbiAgY29uc3QgZXh0cmFjdGVkVmF1bHRzUm9vdCA9IGpvaW4odG1wZGlyKCksIERFTU9fVkFVTFRTX0NBQ0hFX0ZPTERFUiwgRVhUUkFDVEVEX1ZBVUxUU19TVUJGT0xERVIpO1xuICBta2RpclN5bmMoZXh0cmFjdGVkVmF1bHRzUm9vdCwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIGNvbnN0IHVuaXF1ZVBhcmVudERpcmVjdG9yeSA9IG1rZHRlbXBTeW5jKGpvaW4oZXh0cmFjdGVkVmF1bHRzUm9vdCwgYCR7cGx1Z2luSWR9LSR7dmVyc2lvbn0tYCkpO1xuICBjb25zdCB2YXVsdERpcmVjdG9yeSA9IGpvaW4odW5pcXVlUGFyZW50RGlyZWN0b3J5LCBgJHtwbHVnaW5JZH0tJHt2ZXJzaW9ufS5kZW1vLXZhdWx0YCk7XG4gIGV4dHJhY3REZW1vVmF1bHRBcmNoaXZlKGFyY2hpdmUsIHZhdWx0RGlyZWN0b3J5KTtcbiAgcmV0dXJuIHZhdWx0RGlyZWN0b3J5O1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBkZW1vLXZhdWx0IGFyY2hpdmUgYnl0ZXMgZm9yIGEgdmVyc2lvbiwgZG93bmxvYWRpbmcgYW5kIGNhY2hpbmcgdGhlbSBvbiBmaXJzdCB1c2UuXG4gKlxuICogT25seSB0aGUgYXJjaGl2ZSBpcyBjYWNoZWQgKGtleWVkIGJ5IHBsdWdpbiBpZCArIHZlcnNpb24pOyB0aGUgZXh0cmFjdGVkIHZhdWx0IGlzIG5vdC4gQSBjYWNoZSBoaXQgaXNcbiAqIHJldHVybmVkIHdpdGhvdXQgYW55IG5ldHdvcmsgcmVxdWVzdDsgYSBtaXNzIGRvd25sb2FkcyB0aGUgcmVsZWFzZSBhc3NldCwgd3JpdGVzIGl0IHRvIHRoZSBhcmNoaXZlXG4gKiBjYWNoZSwgYW5kIHJldHVybnMgdGhlIGZyZXNobHkgZG93bmxvYWRlZCBieXRlcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBSZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZVBhcmFtc30uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSByZXNvbHZpbmcgdG8gdGhlIGFyY2hpdmUgYnl0ZXMsIG9yIGBudWxsYCB3aGVuIG5vIGFyY2hpdmUgaXMgYXZhaWxhYmxlIGZvclxuICogdGhlIHZlcnNpb24gKGEgbm90aWNlIGhhcyBiZWVuIHNob3duKS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZURlbW9WYXVsdEFyY2hpdmUocGFyYW1zOiBSZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZVBhcmFtcyk6IFByb21pc2U8QnVmZmVyIHwgbnVsbD4ge1xuICBjb25zdCB7XG4gICAgcGx1Z2luSWQsXG4gICAgcGx1Z2luTmFtZSxcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQsXG4gICAgcHJvZ3Jlc3NOb3RpY2UsXG4gICAgcmVwbyxcbiAgICB2ZXJzaW9uXG4gIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgYXJjaGl2ZXNEaXJlY3RvcnkgPSBqb2luKHRtcGRpcigpLCBERU1PX1ZBVUxUU19DQUNIRV9GT0xERVIsIEFSQ0hJVkVTX1NVQkZPTERFUik7XG4gIGNvbnN0IGFyY2hpdmVQYXRoID0gam9pbihhcmNoaXZlc0RpcmVjdG9yeSwgYCR7cGx1Z2luSWR9LSR7dmVyc2lvbn0uemlwYCk7XG4gIGlmIChleGlzdHNTeW5jKGFyY2hpdmVQYXRoKSkge1xuICAgIHJldHVybiByZWFkRmlsZVN5bmMoYXJjaGl2ZVBhdGgpO1xuICB9XG5cbiAgcHJvZ3Jlc3NOb3RpY2Uuc2V0Q29udGVudChgRG93bmxvYWRpbmcgZGVtbyB2YXVsdCBmb3IgJHtwbHVnaW5OYW1lfSB2JHt2ZXJzaW9ufVx1MjAyNmApO1xuICBjb25zdCBhc3NldFVybCA9IGBodHRwczovL2dpdGh1Yi5jb20vJHtyZXBvfS9yZWxlYXNlcy9kb3dubG9hZC8ke3ZlcnNpb259LyR7cGx1Z2luSWR9LWRlbW8tdmF1bHQtJHt2ZXJzaW9ufS56aXBgO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcXVlc3RVcmwoe1xuICAgIHRocm93OiBmYWxzZSxcbiAgICB1cmw6IGFzc2V0VXJsXG4gIH0pO1xuICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSBIVFRQX1NUQVRVU19PSykge1xuICAgIHBsdWdpbk5vdGljZUNvbXBvbmVudC5zaG93Tm90aWNlKGBObyBkZW1vIHZhdWx0IGlzIGF2YWlsYWJsZSBmb3IgcGx1Z2luICR7cGx1Z2luTmFtZX0gdiR7dmVyc2lvbn0uYCk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBhcmNoaXZlID0gQnVmZmVyLmZyb20ocmVzcG9uc2UuYXJyYXlCdWZmZXIpO1xuICBta2RpclN5bmMoYXJjaGl2ZXNEaXJlY3RvcnksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICB3cml0ZUZpbGVTeW5jKGFyY2hpdmVQYXRoLCBhcmNoaXZlKTtcbiAgcmV0dXJuIGFyY2hpdmU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCQSxPQUFPLFlBQVk7QUFDbkIsU0FBUyx1QkFBdUI7QUFFaEMsU0FBUyxVQUFBQSxlQUFjO0FBQ3ZCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxjQUFjO0FBRXZCLFNBQVMsa0JBQWtCO0FBTzNCLFNBQVMsWUFBWTtBQUNyQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsb0JBQW9CO0FBaUQ3QixNQUFNLDJCQUEyQjtBQUNqQyxNQUFNLHFCQUFxQjtBQUMzQixNQUFNLDZCQUE2QjtBQUNuQyxNQUFNLGlCQUFpQjtBQUV2QixNQUFNLG1EQUFtRDtBQWV6RCxlQUFzQixjQUFjLFFBQTRDO0FBVzlFO0FBQUE7QUFWQSxVQUFNO0FBQUEsTUFDSjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGLElBQUk7QUFJSixVQUFNLGlCQUFpQixzQ0FBc0IscUJBQXFCO0FBQUEsTUFDaEUsU0FBUywwQkFBMEIsVUFBVTtBQUFBLE1BQzdDLHFCQUFxQjtBQUFBLElBQ3ZCLENBQUM7QUFFRCxVQUFNLE9BQU8sTUFBTSx1QkFBdUIsUUFBUTtBQUNsRCxRQUFJLENBQUMsTUFBTTtBQUNULDRCQUFzQixXQUFXLHlCQUF5QixVQUFVLHFDQUFxQztBQUN6RztBQUFBLElBQ0Y7QUFFQSxVQUFNLGlCQUFpQjtBQUN2QixVQUFNLGdCQUFnQixNQUFNLHdCQUF3QixJQUFJO0FBRXhELFFBQUk7QUFDSixRQUFJLGdCQUFnQixnQkFBZ0IsYUFBYSxLQUFLLEdBQUc7QUFDdkQsc0JBQWdCO0FBQUEsSUFDbEIsT0FBTztBQUNMLFlBQU0sZ0JBQWdCLE1BQU0sYUFBNEI7QUFBQSxRQUN0RDtBQUFBLFFBQ0EsU0FBUyw2QkFBNkIsVUFBVSxLQUFLLGNBQWMsd0JBQXdCLGFBQWE7QUFBQSxRQUN4RyxTQUFTO0FBQUEsVUFDUDtBQUFBLFlBQ0UsT0FBTztBQUFBLFlBQ1AsTUFBTSx3Q0FBd0MsYUFBYTtBQUFBLFlBQzNELE9BQU87QUFBQSxVQUNUO0FBQUEsVUFDQTtBQUFBLFlBQ0UsTUFBTSx5Q0FBeUMsY0FBYztBQUFBLFlBQzdELE9BQU87QUFBQSxVQUNUO0FBQUEsVUFDQTtBQUFBLFlBQ0UsTUFBTTtBQUFBLFlBQ04sT0FBTztBQUFBLFVBQ1Q7QUFBQSxRQUNGO0FBQUEsUUFDQSxPQUFPO0FBQUEsTUFDVCxDQUFDO0FBQ0QsVUFBSSxrQkFBa0IsTUFBTTtBQUMxQjtBQUFBLE1BQ0Y7QUFDQSxzQkFBZ0I7QUFBQSxJQUNsQjtBQUVBLFVBQU0sVUFBVSxNQUFNLHdCQUF3QjtBQUFBLE1BQzVDO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0EsU0FBUztBQUFBLElBQ1gsQ0FBQztBQUNELFFBQUksQ0FBQyxTQUFTO0FBQ1o7QUFBQSxJQUNGO0FBRUEsbUJBQWUsV0FBVyw2QkFBNkIsVUFBVSxLQUFLLGFBQWEsUUFBRztBQUN0RixtQ0FBK0I7QUFDL0IsVUFBTSxpQkFBaUIsOEJBQThCO0FBQUEsTUFDbkQ7QUFBQSxNQUNBO0FBQUEsTUFDQSxTQUFTO0FBQUEsSUFDWCxDQUFDO0FBRUQsV0FBTyxTQUFTLFlBQVksU0FBUyxjQUFjLGdCQUFnQixLQUFLO0FBQUEsV0FoRXhFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpRUY7QUFXQSxTQUFTLGlDQUF1QztBQUM5QyxRQUFNLHNCQUFzQixLQUFLLE9BQU8sR0FBRywwQkFBMEIsMEJBQTBCO0FBQy9GLE1BQUksQ0FBQyxXQUFXLG1CQUFtQixHQUFHO0FBQ3BDO0FBQUEsRUFDRjtBQUVBLFFBQU0sTUFBTSxLQUFLLElBQUk7QUFDckIsYUFBVyxhQUFhLFlBQVksbUJBQW1CLEdBQUc7QUFDeEQsVUFBTSxZQUFZLEtBQUsscUJBQXFCLFNBQVM7QUFDckQsUUFBSTtBQUNGLFlBQU0sUUFBUSxTQUFTLFNBQVM7QUFDaEMsVUFBSSxNQUFNLE1BQU0sVUFBVSxrREFBa0Q7QUFDMUU7QUFBQSxNQUNGO0FBQ0EsYUFBTyxXQUFXLEVBQUUsT0FBTyxNQUFNLFdBQVcsS0FBSyxDQUFDO0FBQUEsSUFDcEQsUUFBUTtBQUFBLElBRVI7QUFBQSxFQUNGO0FBQ0Y7QUFnQkEsU0FBUyx3QkFBd0IsU0FBaUIsaUJBQStCO0FBQy9FLFFBQU0sYUFBYSxPQUFPLFFBQVEsa0JBQWtCO0FBQ3BELFFBQU0sTUFBTSxJQUFJLE9BQU8sU0FBUyxFQUFFLElBQUksV0FBVyxDQUFDO0FBQ2xELE1BQUksYUFBYSxpQkFBaUIsSUFBSTtBQUN4QztBQWFBLFNBQVMsOEJBQThCLFFBQXFEO0FBQzFGLFFBQU0sRUFBRSxTQUFTLFVBQVUsUUFBUSxJQUFJO0FBQ3ZDLFFBQU0sc0JBQXNCLEtBQUssT0FBTyxHQUFHLDBCQUEwQiwwQkFBMEI7QUFDL0YsWUFBVSxxQkFBcUIsRUFBRSxXQUFXLEtBQUssQ0FBQztBQUNsRCxRQUFNLHdCQUF3QixZQUFZLEtBQUsscUJBQXFCLEdBQUcsUUFBUSxJQUFJLE9BQU8sR0FBRyxDQUFDO0FBQzlGLFFBQU0saUJBQWlCLEtBQUssdUJBQXVCLEdBQUcsUUFBUSxJQUFJLE9BQU8sYUFBYTtBQUN0RiwwQkFBd0IsU0FBUyxjQUFjO0FBQy9DLFNBQU87QUFDVDtBQWFBLGVBQWUsd0JBQXdCLFFBQStEO0FBQ3BHLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixRQUFNLG9CQUFvQixLQUFLLE9BQU8sR0FBRywwQkFBMEIsa0JBQWtCO0FBQ3JGLFFBQU0sY0FBYyxLQUFLLG1CQUFtQixHQUFHLFFBQVEsSUFBSSxPQUFPLE1BQU07QUFDeEUsTUFBSSxXQUFXLFdBQVcsR0FBRztBQUMzQixXQUFPLGFBQWEsV0FBVztBQUFBLEVBQ2pDO0FBRUEsaUJBQWUsV0FBVyw4QkFBOEIsVUFBVSxLQUFLLE9BQU8sUUFBRztBQUNqRixRQUFNLFdBQVcsc0JBQXNCLElBQUksc0JBQXNCLE9BQU8sSUFBSSxRQUFRLGVBQWUsT0FBTztBQUMxRyxRQUFNLFdBQVcsTUFBTSxXQUFXO0FBQUEsSUFDaEMsT0FBTztBQUFBLElBQ1AsS0FBSztBQUFBLEVBQ1AsQ0FBQztBQUNELE1BQUksU0FBUyxXQUFXLGdCQUFnQjtBQUN0QywwQkFBc0IsV0FBVyx5Q0FBeUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUNuRyxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sVUFBVUMsUUFBTyxLQUFLLFNBQVMsV0FBVztBQUNoRCxZQUFVLG1CQUFtQixFQUFFLFdBQVcsS0FBSyxDQUFDO0FBQ2hELGdCQUFjLGFBQWEsT0FBTztBQUNsQyxTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbIkJ1ZmZlciIsICJCdWZmZXIiXQp9Cg==
236
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBEb3dubG9hZHMgYW5kIG9wZW5zIGEgcGx1Z2luJ3Mgc2hpcHBlZCBkZW1vIHZhdWx0IGluIGEgbmV3IE9ic2lkaWFuIHdpbmRvdyAoZGVza3RvcCBvbmx5KS5cbiAqXG4gKiBBIHBsdWdpbiBjYW4gYXR0YWNoIGEgYDxwbHVnaW4taWQ+LWRlbW8tdmF1bHQtPHZlcnNpb24+LnppcGAgYXJjaGl2ZSB0byBlYWNoIEdpdEh1YiByZWxlYXNlIChzZWVcbiAqIGBhcmNoaXZlUGx1Z2luRGVtb1ZhdWx0YCBpbiBgc2NyaXB0LXV0aWxzL2RlbW8tdmF1bHQudHNgKS4gVGhpcyByZXNvbHZlcyB0aGUgcGx1Z2luJ3MgcmVwb3NpdG9yeVxuICogZnJvbSBPYnNpZGlhbidzIGNvbW11bml0eSByZWdpc3RyeSwgZG93bmxvYWRzIHRoZSBhcmNoaXZlIGZvciB0aGUgY2hvc2VuIHZlcnNpb24sIGFuZCBvcGVucyBpdCBhcyBhXG4gKiB2YXVsdCBpbiBhIG5ldyB3aW5kb3cuIFdoZW4gdGhlIGluc3RhbGxlZCBwbHVnaW4gdmVyc2lvbiBpcyBiZWhpbmQgdGhlIGxhdGVzdCByZWxlYXNlLCB0aGUgdXNlciBpc1xuICogb2ZmZXJlZCBhIGNob2ljZSBiZXR3ZWVuIHRoZSB0d28gdmVyc2lvbnMuXG4gKlxuICogQSBwcm9ncmVzcyBub3RpY2UgaXMgc2hvd24gaW1tZWRpYXRlbHkgKGRvd25sb2FkICsgZXh0cmFjdGlvbiBjYW4gdGFrZSBhIHdoaWxlLCBzbyB0aGUgdXNlciBtdXN0IHNlZVxuICogc29tZXRoaW5nIGlzIGhhcHBlbmluZyByaWdodCBhd2F5KS4gT25seSB0aGUgZG93bmxvYWRlZCBBUkNISVZFIGlzIGNhY2hlZCAodW5kZXIgdGhlIE9TIHRlbXBcbiAqIGRpcmVjdG9yeSk7IGV2ZXJ5IGludm9jYXRpb24gZXh0cmFjdHMgYSBGUkVTSCBjb3B5IGludG8gaXRzIG93biB0ZW1wb3JhcnkgZm9sZGVyIGFuZCBvcGVucyB0aGF0LCBzbyBhXG4gKiBwcmV2aW91cyBzZXNzaW9uJ3MgZWRpdHMgbmV2ZXIgbGVhayBpbnRvIGEgbmV3IG9uZS4gVGhlIGV4dHJhY3RlZCB2YXVsdCBmb2xkZXIgaXMgbmFtZWRcbiAqIGA8cGx1Z2luLWlkPi08dmVyc2lvbj4uZGVtby12YXVsdGAgc28gaXQgcmVhZHMgbmljZWx5IGluIE9ic2lkaWFuJ3MgdmF1bHQgc3dpdGNoZXIuIE9ycGhhbmVkXG4gKiBleHRyYWN0ZWQgZm9sZGVycyBsZWZ0IG92ZXIgZnJvbSBlYXJsaWVyIHNlc3Npb25zIGFyZSBjbGVhbmVkIHVwIChiZXN0LWVmZm9ydCkgb24gZWFjaCBvcGVuLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgQWRtWmlwIGZyb20gJ2FkbS16aXAnO1xuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSAnY29tcGFyZS12ZXJzaW9ucyc7XG4vKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlcyAtLSBEZXNrdG9wLW9ubHkgZmVhdHVyZSBnYXRlZCBieSBgUGxhdGZvcm0uaXNEZXNrdG9wQXBwYDsgdGhlIGNvbW1hbmQgaXMgaGlkZGVuIG9uIG1vYmlsZSBzbyB0aGVzZSBOb2RlIEFQSXMgYXJlIG5ldmVyIHJlYWNoZWQgdGhlcmUuICovXG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdub2RlOmJ1ZmZlcic7XG5pbXBvcnQge1xuICBleGlzdHNTeW5jLFxuICBta2RpclN5bmMsXG4gIG1rZHRlbXBTeW5jLFxuICByZWFkZGlyU3luYyxcbiAgcmVhZEZpbGVTeW5jLFxuICBybVN5bmMsXG4gIHN0YXRTeW5jLFxuICB3cml0ZUZpbGVTeW5jXG59IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG4vKiBlc2xpbnQtZW5hYmxlIGltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzIC0tIERlc2t0b3Atb25seSBmZWF0dXJlIGdhdGVkIGJ5IGBQbGF0Zm9ybS5pc0Rlc2t0b3BBcHBgOyB0aGUgY29tbWFuZCBpcyBoaWRkZW4gb24gbW9iaWxlIHNvIHRoZXNlIE5vZGUgQVBJcyBhcmUgbmV2ZXIgcmVhY2hlZCB0aGVyZS4gKi9cbmltcG9ydCB7IHJlcXVlc3RVcmwgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgUGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICBQbHVnaW5Ob3RpY2VDb21wb25lbnREZWxheWVkTm90aWNlXG59IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5cbmltcG9ydCB7IGpvaW4gfSBmcm9tICcuLi9wYXRoLnRzJztcbmltcG9ydCB7XG4gIGdldENvbW11bml0eVBsdWdpblJlcG8sXG4gIGdldExhdGVzdFJlbGVhc2VWZXJzaW9uXG59IGZyb20gJy4vY29tbXVuaXR5LXBsdWdpbnMudHMnO1xuaW1wb3J0IHsgUGx1Z2luTm90aWNlTW9kZSB9IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBzZWxlY3RPcHRpb24gfSBmcm9tICcuL21vZGFscy9zZWxlY3Qtb3B0aW9uLnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgb3BlbkRlbW9WYXVsdH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkRlbW9WYXVsdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gaWQsIHVzZWQgdG8gbG9jYXRlIHRoZSBHaXRIdWIgcmVwb3NpdG9yeSwgdG8gbmFtZSB0aGUgYXJjaGl2ZSBhc3NldCwgYW5kIHRvIG5hbWUgdGhlXG4gICAqIGNhY2hlZCBhcmNoaXZlIGFuZCB0aGUgZXh0cmFjdGVkIHZhdWx0IGZvbGRlci5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gZGlzcGxheSBuYW1lLCB1c2VkIHRvIGxhYmVsIHRoZSBub3RpY2VzIGFuZCB0aGUgdmVyc2lvbi1jaG9pY2UgZGlhbG9nLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbm90aWNlIGNvbXBvbmVudCB1c2VkIHRvIHJlcG9ydCBwcm9ncmVzcyBhbmQgcHJvYmxlbXMgKHBsdWdpbiBub3QgaW4gdGhlIHJlZ2lzdHJ5LCBtaXNzaW5nXG4gICAqIGFyY2hpdmUpLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTm90aWNlQ29tcG9uZW50OiBQbHVnaW5Ob3RpY2VDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50bHkgaW5zdGFsbGVkIHBsdWdpbiB2ZXJzaW9uLCBvZmZlcmVkIGFzIG9uZSBvZiB0aGUgdmVyc2lvbiBjaG9pY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luVmVyc2lvbjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXJQYXJhbXMge1xuICByZWFkb25seSBhcmNoaXZlOiBCdWZmZXI7XG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFJlc29sdmVEZW1vVmF1bHRBcmNoaXZlUGFyYW1zIHtcbiAgcmVhZG9ubHkgcGx1Z2luSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwbHVnaW5Ob3RpY2VDb21wb25lbnQ6IFBsdWdpbk5vdGljZUNvbXBvbmVudDtcbiAgcmVhZG9ubHkgcHJvZ3Jlc3NOb3RpY2U6IFBsdWdpbk5vdGljZUNvbXBvbmVudERlbGF5ZWROb3RpY2U7XG4gIHJlYWRvbmx5IHJlcG86IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG5jb25zdCBERU1PX1ZBVUxUU19DQUNIRV9GT0xERVIgPSAnb2JzaWRpYW4tZGVtby12YXVsdHMnO1xuY29uc3QgQVJDSElWRVNfU1VCRk9MREVSID0gJ2FyY2hpdmVzJztcbmNvbnN0IEVYVFJBQ1RFRF9WQVVMVFNfU1VCRk9MREVSID0gJ2V4dHJhY3RlZCc7XG5jb25zdCBIVFRQX1NUQVRVU19PSyA9IDIwMDtcbi8vIE9uZSBkYXkgaW4gbWlsbGlzZWNvbmRzICgyNCAqIDYwICogNjAgKiAxMDAwKS5cbmNvbnN0IE9SUEhBTkVEX0VYVFJBQ1RFRF9WQVVMVF9NQVhfQUdFX0lOX01JTExJU0VDT05EUyA9IDg2XzQwMF8wMDA7XG5cbi8qKlxuICogRG93bmxvYWRzIGFuZCBvcGVucyB0aGUgcGx1Z2luJ3MgZGVtbyB2YXVsdCBpbiBhIG5ldyBPYnNpZGlhbiB3aW5kb3cuIERlc2t0b3Agb25seS5cbiAqXG4gKiBJZiB0aGUgaW5zdGFsbGVkIHBsdWdpbiB2ZXJzaW9uIGlzIHRoZSBsYXRlc3QgKG9yIG5ld2VyKSwgaXRzIGRlbW8gdmF1bHQgb3BlbnMgZGlyZWN0bHk7IG90aGVyd2lzZVxuICogdGhlIHVzZXIgY2hvb3NlcyBiZXR3ZWVuIHRoZSBsYXRlc3QgYW5kIHRoZSBjdXJyZW50bHktaW5zdGFsbGVkIHZlcnNpb24uIEEgcHJvZ3Jlc3Mgbm90aWNlIGlzIHNob3duXG4gKiBpbW1lZGlhdGVseS4gVGhlIGNob3NlbiB2ZXJzaW9uJ3MgYXJjaGl2ZSBpcyBkb3dubG9hZGVkIG9uY2UgKHRoZW4gcmV1c2VkIGZyb20gdGhlIGFyY2hpdmUgY2FjaGUpLFxuICogYnV0IGEgZnJlc2ggY29weSBpcyBleHRyYWN0ZWQgaW50byBpdHMgb3duIHRlbXBvcmFyeSBmb2xkZXIgb24gZXZlcnkgb3BlbiBcdTIwMTQgdGhlIHZhdWx0IGlzIG5ldmVyIHJldXNlZFxuICogYWNyb3NzIHNlc3Npb25zLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIE9wZW5EZW1vVmF1bHRQYXJhbXN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSB2YXVsdCBoYXMgYmVlbiBvcGVuZWQsIG9yIG9uY2UgdGhlIG9wZXJhdGlvbiBoYXNcbiAqIGJlZW4gcmVwb3J0ZWQgYXMgbm90IHBvc3NpYmxlIChub3RpY2Ugc2hvd24pIG9yIGNhbmNlbGxlZCBieSB0aGUgdXNlci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9wZW5EZW1vVmF1bHQocGFyYW1zOiBPcGVuRGVtb1ZhdWx0UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgcGx1Z2luSWQsXG4gICAgcGx1Z2luTmFtZSxcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQsXG4gICAgcGx1Z2luVmVyc2lvblxuICB9ID0gcGFyYW1zO1xuXG4gIC8vIFNob3duIGltbWVkaWF0ZWx5IChgZGVsYXlJbk1pbGxpc2Vjb25kczogMGApOiByZXNvbHZpbmcgdGhlIHJlbGVhc2UsIGRvd25sb2FkaW5nIGFuZCBleHRyYWN0aW5nIGNhblxuICAvLyBFYWNoIHRha2UgYSB3aGlsZSwgc28gdGhlIHVzZXIgbXVzdCBzZWUgcHJvZ3Jlc3MgdGhlIG1vbWVudCB0aGUgY29tbWFuZCBpcyBpbnZva2VkLlxuICAvL1xuICAvLyBLZXB0IG91dCBvZiB0aGUgc2hhcmVkIHNsb3QgKGBTZXBhcmF0ZWApLCBiZWNhdXNlIHRoaXMgdmVyeSBmdW5jdGlvbiByYWlzZXMgb3JkaW5hcnkgbm90aWNlcyB3aGlsZVxuICAvLyBUaGUgb3BlcmF0aW9uIGlzIHN0aWxsIHJ1bm5pbmcgXHUyMDE0IFwibm90IGluIHRoZSByZWdpc3RyeVwiLCBcIm5vIGRlbW8gdmF1bHQgZm9yIHRoaXMgdmVyc2lvblwiIFx1MjAxNCBhbmQgYVxuICAvLyBTbG90IG5vdGljZSB3b3VsZCBoaWRlIHRoZSBwcm9ncmVzcyBub3RpY2UgcmF0aGVyIHRoYW4gYXBwZWFyIGJlc2lkZSBpdC5cbiAgdXNpbmcgcHJvZ3Jlc3NOb3RpY2UgPSBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZUFmdGVyRGVsYXkoe1xuICAgIGNvbnRlbnQ6IGBPcGVuaW5nIGRlbW8gdmF1bHQgZm9yICR7cGx1Z2luTmFtZX1cdTIwMjZgLFxuICAgIGRlbGF5SW5NaWxsaXNlY29uZHM6IDAsXG4gICAgbW9kZTogUGx1Z2luTm90aWNlTW9kZS5TZXBhcmF0ZVxuICB9KTtcblxuICBjb25zdCByZXBvID0gYXdhaXQgZ2V0Q29tbXVuaXR5UGx1Z2luUmVwbyhwbHVnaW5JZCk7XG4gIGlmICghcmVwbykge1xuICAgIHBsdWdpbk5vdGljZUNvbXBvbmVudC5zaG93Tm90aWNlKGBDb3VsZCBub3QgZmluZCBwbHVnaW4gJHtwbHVnaW5OYW1lfSBpbiB0aGUgY29tbXVuaXR5IHBsdWdpbnMgcmVnaXN0cnkuYCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY3VycmVudFZlcnNpb24gPSBwbHVnaW5WZXJzaW9uO1xuICBjb25zdCBsYXRlc3RWZXJzaW9uID0gYXdhaXQgZ2V0TGF0ZXN0UmVsZWFzZVZlcnNpb24ocmVwbyk7XG5cbiAgbGV0IHZlcnNpb25Ub09wZW46IHN0cmluZztcbiAgaWYgKGNvbXBhcmVWZXJzaW9ucyhjdXJyZW50VmVyc2lvbiwgbGF0ZXN0VmVyc2lvbikgPj0gMCkge1xuICAgIHZlcnNpb25Ub09wZW4gPSBjdXJyZW50VmVyc2lvbjtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBjaG9zZW5WZXJzaW9uID0gYXdhaXQgc2VsZWN0T3B0aW9uPG51bGwgfCBzdHJpbmc+KHtcbiAgICAgIGFwcCxcbiAgICAgIG1lc3NhZ2U6IGBDdXJyZW50IHZlcnNpb24gb2YgcGx1Z2luICR7cGx1Z2luTmFtZX0gdiR7Y3VycmVudFZlcnNpb259IGlzIG5vdCB0aGUgbGF0ZXN0ICh2JHtsYXRlc3RWZXJzaW9ufSlgLFxuICAgICAgb3B0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgaXNDdGE6IHRydWUsXG4gICAgICAgICAgdGV4dDogYE9wZW4gZGVtbyB2YXVsdCBmb3IgbGF0ZXN0IHZlcnNpb24gKHYke2xhdGVzdFZlcnNpb259KWAsXG4gICAgICAgICAgdmFsdWU6IGxhdGVzdFZlcnNpb25cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6IGBPcGVuIGRlbW8gdmF1bHQgZm9yIGN1cnJlbnQgdmVyc2lvbiAodiR7Y3VycmVudFZlcnNpb259KWAsXG4gICAgICAgICAgdmFsdWU6IGN1cnJlbnRWZXJzaW9uXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiAnQ2FuY2VsJyxcbiAgICAgICAgICB2YWx1ZTogbnVsbFxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgdGl0bGU6IHBsdWdpbk5hbWVcbiAgICB9KTtcbiAgICBpZiAoY2hvc2VuVmVyc2lvbiA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2ZXJzaW9uVG9PcGVuID0gY2hvc2VuVmVyc2lvbjtcbiAgfVxuXG4gIGNvbnN0IGFyY2hpdmUgPSBhd2FpdCByZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZSh7XG4gICAgcGx1Z2luSWQsXG4gICAgcGx1Z2luTmFtZSxcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQsXG4gICAgcHJvZ3Jlc3NOb3RpY2UsXG4gICAgcmVwbyxcbiAgICB2ZXJzaW9uOiB2ZXJzaW9uVG9PcGVuXG4gIH0pO1xuICBpZiAoIWFyY2hpdmUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBwcm9ncmVzc05vdGljZS5zZXRDb250ZW50KGBFeHRyYWN0aW5nIGRlbW8gdmF1bHQgZm9yICR7cGx1Z2luTmFtZX0gdiR7dmVyc2lvblRvT3Blbn1cdTIwMjZgKTtcbiAgY2xlYW51cE9ycGhhbmVkRXh0cmFjdGVkVmF1bHRzKCk7XG4gIGNvbnN0IHZhdWx0RGlyZWN0b3J5ID0gZXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXIoe1xuICAgIGFyY2hpdmUsXG4gICAgcGx1Z2luSWQsXG4gICAgdmVyc2lvbjogdmVyc2lvblRvT3BlblxuICB9KTtcblxuICB3aW5kb3cuZWxlY3Ryb24uaXBjUmVuZGVyZXIuc2VuZFN5bmMoJ3ZhdWx0LW9wZW4nLCB2YXVsdERpcmVjdG9yeSwgZmFsc2UpO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgZXh0cmFjdGVkIGRlbW8tdmF1bHQgZm9sZGVycyBsZWZ0IG92ZXIgZnJvbSBlYXJsaWVyIHNlc3Npb25zIChiZXN0LWVmZm9ydCkuXG4gKlxuICogRXZlcnkgb3BlbiBleHRyYWN0cyBhIGZyZXNoIGNvcHkgaW50byBpdHMgb3duIGZvbGRlciBhbmQgbmV2ZXIgZGVsZXRlcyBpdCBhZnRlcndhcmRzICh0aGUgdmF1bHQgc3RheXNcbiAqIG9wZW4gaW4gaXRzIHdpbmRvdyksIHNvIHRoZXNlIGFjY3VtdWxhdGUuIFRoaXMgZHJvcHMgZm9sZGVycyBvbGRlciB0aGFuXG4gKiB7QGxpbmsgT1JQSEFORURfRVhUUkFDVEVEX1ZBVUxUX01BWF9BR0VfSU5fTUlMTElTRUNPTkRTfS4gQSBmb2xkZXIgd2hvc2UgdmF1bHQgaXMgc3RpbGwgb3BlbiBpbiBhbm90aGVyXG4gKiB3aW5kb3cgaXMgbG9ja2VkIG9uIFdpbmRvd3MgYW5kIGNhbm5vdCBiZSByZW1vdmVkIFx1MjAxNCB0aGUgcmVtb3ZhbCBpcyB3cmFwcGVkIHNvIHN1Y2ggYSBmb2xkZXIgaXMgc2ltcGx5XG4gKiBza2lwcGVkIGFuZCByZXRyaWVkIG9uIGEgbGF0ZXIgb3Blbi5cbiAqL1xuZnVuY3Rpb24gY2xlYW51cE9ycGhhbmVkRXh0cmFjdGVkVmF1bHRzKCk6IHZvaWQge1xuICBjb25zdCBleHRyYWN0ZWRWYXVsdHNSb290ID0gam9pbih0bXBkaXIoKSwgREVNT19WQVVMVFNfQ0FDSEVfRk9MREVSLCBFWFRSQUNURURfVkFVTFRTX1NVQkZPTERFUik7XG4gIGlmICghZXhpc3RzU3luYyhleHRyYWN0ZWRWYXVsdHNSb290KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gIGZvciAoY29uc3QgZW50cnlOYW1lIG9mIHJlYWRkaXJTeW5jKGV4dHJhY3RlZFZhdWx0c1Jvb3QpKSB7XG4gICAgY29uc3QgZW50cnlQYXRoID0gam9pbihleHRyYWN0ZWRWYXVsdHNSb290LCBlbnRyeU5hbWUpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGF0cyA9IHN0YXRTeW5jKGVudHJ5UGF0aCk7XG4gICAgICBpZiAobm93IC0gc3RhdHMubXRpbWVNcyA8IE9SUEhBTkVEX0VYVFJBQ1RFRF9WQVVMVF9NQVhfQUdFX0lOX01JTExJU0VDT05EUykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHJtU3luYyhlbnRyeVBhdGgsIHsgZm9yY2U6IHRydWUsIHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIEJlc3QtZWZmb3J0IGNsZWFudXA6IGFuIG9ycGhhbiB3aG9zZSB2YXVsdCBpcyBzdGlsbCBvcGVuIChsb2NrZWQgb24gV2luZG93cykgY2Fubm90IGJlIHJlbW92ZWQ7IHNraXAgaXQgYW5kIHJldHJ5IG9uIGEgbGF0ZXIgb3Blbi5cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBFeHRyYWN0cyBhIGRvd25sb2FkZWQgZGVtby12YXVsdCBhcmNoaXZlIHRvIGRpc2suXG4gKlxuICogRWxlY3Ryb24ncyBhc2FyIGxheWVyIGludGVyY2VwdHMgYGZzYCBvcGVyYXRpb25zIG9uIGFueSBwYXRoIGNvbnRhaW5pbmcgYC5hc2FyYCBhbmQgdGhyb3dzIGBFTk9FTlRgXG4gKiB3aGVuIGBjaG1vZGAtaW5nIGFuIGAuYXNhcmAgZmlsZSAoaXQgdHJlYXRzIGl0IGFzIGFuIGFyY2hpdmUgcm9vdCByYXRoZXIgdGhhbiBhIHBsYWluIGZpbGUpLiBBIGRlbW9cbiAqIHZhdWx0IG1heSBzaGlwIHN1Y2ggYSBmaWxlIChlLmcuIGBfYXNzZXRzL0NvZGVTY3JpcHRUb29sa2l0L21vZHVsZS5hc2FyYCBkZW1vbnN0cmF0aW5nIHRoZSBBU0FSXG4gKiByZXF1aXJlIGZlYXR1cmUpLCBhbmQgYWRtLXppcCBgY2htb2RgcyBldmVyeSBleHRyYWN0ZWQgZmlsZSwgc28gZXh0cmFjdGlvbiB3b3VsZCBvdGhlcndpc2UgY3Jhc2guXG4gKiBIYW5kIGFkbS16aXAgRWxlY3Ryb24ncyBgb3JpZ2luYWwtZnNgIFx1MjAxNCB0aGUgcmVhbCBgZnNgIHdpdGggYXNhciBpbnRlcmNlcHRpb24gZGlzYWJsZWQgXHUyMDE0IHNvIHRoZVxuICogYC5hc2FyYCBmaWxlIGlzIHRyZWF0ZWQgYXMgYSBwbGFpbiBmaWxlIGFuZCBgY2htb2RgIHN1Y2NlZWRzLiBJdCBpcyBhIGRlc2t0b3Atb25seSBFbGVjdHJvbiBtb2R1bGVcbiAqIHdpdGggbm8gYnVuZGxlZCB0eXBlcywgc28gaXQgaXMgbG9hZGVkIHZpYSBgd2luZG93LnJlcXVpcmVgIGFuZCB0eXBlZCBhcyBgbm9kZTpmc2AncyBzaGFwZS5cbiAqXG4gKiBAcGFyYW0gYXJjaGl2ZSAtIFRoZSByYXcgemlwIGFyY2hpdmUgYnl0ZXMuXG4gKiBAcGFyYW0gdGFyZ2V0RGlyZWN0b3J5IC0gVGhlIGRpcmVjdG9yeSB0byBleHRyYWN0IGludG8uXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3REZW1vVmF1bHRBcmNoaXZlKGFyY2hpdmU6IEJ1ZmZlciwgdGFyZ2V0RGlyZWN0b3J5OiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3Qgb3JpZ2luYWxGcyA9IHdpbmRvdy5yZXF1aXJlKCdub2RlOm9yaWdpbmFsLWZzJykgYXMgdHlwZW9mIGltcG9ydCgnbm9kZTpmcycpO1xuICBjb25zdCB6aXAgPSBuZXcgQWRtWmlwKGFyY2hpdmUsIHsgZnM6IG9yaWdpbmFsRnMgfSk7XG4gIHppcC5leHRyYWN0QWxsVG8odGFyZ2V0RGlyZWN0b3J5LCB0cnVlKTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgYXJjaGl2ZSBpbnRvIGEgZnJlc2gsIHVuaXF1ZWx5LW5hbWVkIHRlbXBvcmFyeSBmb2xkZXIgYW5kIHJldHVybnMgdGhlIHZhdWx0IHBhdGguXG4gKlxuICogQSB1bmlxdWUgcGFyZW50IGZvbGRlciAoYG1rZHRlbXBTeW5jYCkgZ3VhcmFudGVlcyBhIGJyYW5kLW5ldyBleHRyYWN0aW9uIGV2ZXJ5IHRpbWUgXHUyMDE0IHRoZSBkZW1vIHZhdWx0XG4gKiBpcyBuZXZlciByZXVzZWQgYWNyb3NzIG9wZW5zLCBzbyBhIHByZXZpb3VzIHNlc3Npb24ncyBlZGl0cyBuZXZlciBsZWFrIGluLiBJbnNpZGUgaXQsIHRoZSB2YXVsdCBmb2xkZXJcbiAqIGlzIG5hbWVkIGA8cGx1Z2luLWlkPi08dmVyc2lvbj4uZGVtby12YXVsdGAgc28gT2JzaWRpYW4ncyB2YXVsdCBzd2l0Y2hlciBzaG93cyBhIGZyaWVuZGx5IG5hbWUgKGl0c1xuICogYmFzZW5hbWUpIHJhdGhlciB0aGFuIHRoZSByYW5kb20gdGVtcCBpZC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBFeHRyYWN0RGVtb1ZhdWx0VG9GcmVzaEZvbGRlclBhcmFtc30uXG4gKiBAcmV0dXJucyBUaGUgYWJzb2x1dGUgcGF0aCBvZiB0aGUgZnJlc2hseSBleHRyYWN0ZWQgdmF1bHQgZm9sZGVyLlxuICovXG5mdW5jdGlvbiBleHRyYWN0RGVtb1ZhdWx0VG9GcmVzaEZvbGRlcihwYXJhbXM6IEV4dHJhY3REZW1vVmF1bHRUb0ZyZXNoRm9sZGVyUGFyYW1zKTogc3RyaW5nIHtcbiAgY29uc3QgeyBhcmNoaXZlLCBwbHVnaW5JZCwgdmVyc2lvbiB9ID0gcGFyYW1zO1xuICBjb25zdCBleHRyYWN0ZWRWYXVsdHNSb290ID0gam9pbih0bXBkaXIoKSwgREVNT19WQVVMVFNfQ0FDSEVfRk9MREVSLCBFWFRSQUNURURfVkFVTFRTX1NVQkZPTERFUik7XG4gIG1rZGlyU3luYyhleHRyYWN0ZWRWYXVsdHNSb290LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgY29uc3QgdW5pcXVlUGFyZW50RGlyZWN0b3J5ID0gbWtkdGVtcFN5bmMoam9pbihleHRyYWN0ZWRWYXVsdHNSb290LCBgJHtwbHVnaW5JZH0tJHt2ZXJzaW9ufS1gKSk7XG4gIGNvbnN0IHZhdWx0RGlyZWN0b3J5ID0gam9pbih1bmlxdWVQYXJlbnREaXJlY3RvcnksIGAke3BsdWdpbklkfS0ke3ZlcnNpb259LmRlbW8tdmF1bHRgKTtcbiAgZXh0cmFjdERlbW9WYXVsdEFyY2hpdmUoYXJjaGl2ZSwgdmF1bHREaXJlY3RvcnkpO1xuICByZXR1cm4gdmF1bHREaXJlY3Rvcnk7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIGRlbW8tdmF1bHQgYXJjaGl2ZSBieXRlcyBmb3IgYSB2ZXJzaW9uLCBkb3dubG9hZGluZyBhbmQgY2FjaGluZyB0aGVtIG9uIGZpcnN0IHVzZS5cbiAqXG4gKiBPbmx5IHRoZSBhcmNoaXZlIGlzIGNhY2hlZCAoa2V5ZWQgYnkgcGx1Z2luIGlkICsgdmVyc2lvbik7IHRoZSBleHRyYWN0ZWQgdmF1bHQgaXMgbm90LiBBIGNhY2hlIGhpdCBpc1xuICogcmV0dXJuZWQgd2l0aG91dCBhbnkgbmV0d29yayByZXF1ZXN0OyBhIG1pc3MgZG93bmxvYWRzIHRoZSByZWxlYXNlIGFzc2V0LCB3cml0ZXMgaXQgdG8gdGhlIGFyY2hpdmVcbiAqIGNhY2hlLCBhbmQgcmV0dXJucyB0aGUgZnJlc2hseSBkb3dubG9hZGVkIGJ5dGVzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIFJlc29sdmVEZW1vVmF1bHRBcmNoaXZlUGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHJlc29sdmluZyB0byB0aGUgYXJjaGl2ZSBieXRlcywgb3IgYG51bGxgIHdoZW4gbm8gYXJjaGl2ZSBpcyBhdmFpbGFibGUgZm9yXG4gKiB0aGUgdmVyc2lvbiAoYSBub3RpY2UgaGFzIGJlZW4gc2hvd24pLlxuICovXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZShwYXJhbXM6IFJlc29sdmVEZW1vVmF1bHRBcmNoaXZlUGFyYW1zKTogUHJvbWlzZTxCdWZmZXIgfCBudWxsPiB7XG4gIGNvbnN0IHtcbiAgICBwbHVnaW5JZCxcbiAgICBwbHVnaW5OYW1lLFxuICAgIHBsdWdpbk5vdGljZUNvbXBvbmVudCxcbiAgICBwcm9ncmVzc05vdGljZSxcbiAgICByZXBvLFxuICAgIHZlcnNpb25cbiAgfSA9IHBhcmFtcztcblxuICBjb25zdCBhcmNoaXZlc0RpcmVjdG9yeSA9IGpvaW4odG1wZGlyKCksIERFTU9fVkFVTFRTX0NBQ0hFX0ZPTERFUiwgQVJDSElWRVNfU1VCRk9MREVSKTtcbiAgY29uc3QgYXJjaGl2ZVBhdGggPSBqb2luKGFyY2hpdmVzRGlyZWN0b3J5LCBgJHtwbHVnaW5JZH0tJHt2ZXJzaW9ufS56aXBgKTtcbiAgaWYgKGV4aXN0c1N5bmMoYXJjaGl2ZVBhdGgpKSB7XG4gICAgcmV0dXJuIHJlYWRGaWxlU3luYyhhcmNoaXZlUGF0aCk7XG4gIH1cblxuICBwcm9ncmVzc05vdGljZS5zZXRDb250ZW50KGBEb3dubG9hZGluZyBkZW1vIHZhdWx0IGZvciAke3BsdWdpbk5hbWV9IHYke3ZlcnNpb259XHUyMDI2YCk7XG4gIGNvbnN0IGFzc2V0VXJsID0gYGh0dHBzOi8vZ2l0aHViLmNvbS8ke3JlcG99L3JlbGVhc2VzL2Rvd25sb2FkLyR7dmVyc2lvbn0vJHtwbHVnaW5JZH0tZGVtby12YXVsdC0ke3ZlcnNpb259LnppcGA7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxdWVzdFVybCh7XG4gICAgdGhyb3c6IGZhbHNlLFxuICAgIHVybDogYXNzZXRVcmxcbiAgfSk7XG4gIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IEhUVFBfU1RBVFVTX09LKSB7XG4gICAgcGx1Z2luTm90aWNlQ29tcG9uZW50LnNob3dOb3RpY2UoYE5vIGRlbW8gdmF1bHQgaXMgYXZhaWxhYmxlIGZvciBwbHVnaW4gJHtwbHVnaW5OYW1lfSB2JHt2ZXJzaW9ufS5gKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGFyY2hpdmUgPSBCdWZmZXIuZnJvbShyZXNwb25zZS5hcnJheUJ1ZmZlcik7XG4gIG1rZGlyU3luYyhhcmNoaXZlc0RpcmVjdG9yeSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIHdyaXRlRmlsZVN5bmMoYXJjaGl2ZVBhdGgsIGFyY2hpdmUpO1xuICByZXR1cm4gYXJjaGl2ZTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUJBLE9BQU8sWUFBWTtBQUNuQixTQUFTLHVCQUF1QjtBQUVoQyxTQUFTLFVBQUFBLGVBQWM7QUFDdkI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGNBQWM7QUFFdkIsU0FBUyxrQkFBa0I7QUFPM0IsU0FBUyxZQUFZO0FBQ3JCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyx3QkFBd0I7QUFDakMsU0FBUyxvQkFBb0I7QUFpRDdCLE1BQU0sMkJBQTJCO0FBQ2pDLE1BQU0scUJBQXFCO0FBQzNCLE1BQU0sNkJBQTZCO0FBQ25DLE1BQU0saUJBQWlCO0FBRXZCLE1BQU0sbURBQW1EO0FBZXpELGVBQXNCLGNBQWMsUUFBNEM7QUFlOUU7QUFBQTtBQWRBLFVBQU07QUFBQSxNQUNKO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0YsSUFBSTtBQVFKLFVBQU0saUJBQWlCLHNDQUFzQixxQkFBcUI7QUFBQSxNQUNoRSxTQUFTLDBCQUEwQixVQUFVO0FBQUEsTUFDN0MscUJBQXFCO0FBQUEsTUFDckIsTUFBTSxpQkFBaUI7QUFBQSxJQUN6QixDQUFDO0FBRUQsVUFB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
@@ -19,6 +19,7 @@ export * as 'css-class' from './css-class.mjs';
19
19
  export * as 'data-handler' from './data-handler.mjs';
20
20
  export * as 'dataview-link' from './dataview-link.mjs';
21
21
  export * as 'dataview' from './dataview.mjs';
22
+ export * as 'demo-vault-helper-settings' from './demo-vault-helper-settings.mjs';
22
23
  export * as 'demo-vault-helper' from './demo-vault-helper.mjs';
23
24
  export * as 'desktop-demo-vault-opener' from './desktop-demo-vault-opener.mjs';
24
25
  export * as 'desktop-trusted-input' from './desktop-trusted-input.mjs';
@@ -41,6 +41,7 @@ import * as css_class from "./css-class.mjs";
41
41
  import * as data_handler from "./data-handler.mjs";
42
42
  import * as dataview_link from "./dataview-link.mjs";
43
43
  import * as dataview from "./dataview.mjs";
44
+ import * as demo_vault_helper_settings from "./demo-vault-helper-settings.mjs";
44
45
  import * as demo_vault_helper from "./demo-vault-helper.mjs";
45
46
  import * as desktop_demo_vault_opener from "./desktop-demo-vault-opener.mjs";
46
47
  import * as desktop_trusted_input from "./desktop-trusted-input.mjs";
@@ -117,6 +118,7 @@ export {
117
118
  dataview,
118
119
  dataview_link as "dataview-link",
119
120
  demo_vault_helper as "demo-vault-helper",
121
+ demo_vault_helper_settings as "demo-vault-helper-settings",
120
122
  desktop_demo_vault_opener as "desktop-demo-vault-opener",
121
123
  desktop_trusted_input as "desktop-trusted-input",
122
124
  editor,
@@ -171,4 +173,4 @@ export {
171
173
  view_registrar as "view-registrar",
172
174
  workspace
173
175
  };
174
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2FjdGl2ZS1maWxlLXByb3ZpZGVyJyBmcm9tICcuL2FjdGl2ZS1maWxlLXByb3ZpZGVyLnRzJztcbmV4cG9ydCAqIGFzICdhcHAnIGZyb20gJy4vYXBwLnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy13aXRoLW5vdGljZScgZnJvbSAnLi9hc3luYy13aXRoLW5vdGljZS50cyc7XG5leHBvcnQgKiBhcyAnYXR0YWNobWVudC1wYXRoJyBmcm9tICcuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQgKiBhcyAnYmFja2xpbmsnIGZyb20gJy4vYmFja2xpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2Jhc2VzLXZpZXctcmVnaXN0cmFyJyBmcm9tICcuL2Jhc2VzLXZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdjYWxsb3V0JyBmcm9tICcuL2NhbGxvdXQudHMnO1xuZXhwb3J0ICogYXMgJ2NhbnZhcycgZnJvbSAnLi9jYW52YXMudHMnO1xuZXhwb3J0ICogYXMgJ2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleCcgZnJvbSAnLi9jYXNlLWluc2Vuc2l0aXZlLWZpbGUtaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NvZGUtYmxvY2stbWFya2Rvd24taW5mb3JtYXRpb24nIGZyb20gJy4vY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbi50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1ibG9jay1yZWctZXhwJyBmcm9tICcuL2NvZGUtYmxvY2stcmVnLWV4cC50cyc7XG5leHBvcnQgKiBhcyAnY29tbWFuZC1oYW5kbGVycycgZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjb21tYW5kLXJlZ2lzdHJhcicgZnJvbSAnLi9jb21tYW5kLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnY29tbXVuaXR5LXBsdWdpbnMnIGZyb20gJy4vY29tbXVuaXR5LXBsdWdpbnMudHMnO1xuZXhwb3J0ICogYXMgJ2NvbXBvbmVudHMnIGZyb20gJy4vY29tcG9uZW50cy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY29uc3RydWN0b3JzJyBmcm9tICcuL2NvbnN0cnVjdG9ycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY3NzLWNsYXNzJyBmcm9tICcuL2Nzcy1jbGFzcy50cyc7XG5leHBvcnQgKiBhcyAnZGF0YS1oYW5kbGVyJyBmcm9tICcuL2RhdGEtaGFuZGxlci50cyc7XG5leHBvcnQgKiBhcyAnZGF0YXZpZXctbGluaycgZnJvbSAnLi9kYXRhdmlldy1saW5rLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhdmlldycgZnJvbSAnLi9kYXRhdmlldy50cyc7XG5leHBvcnQgKiBhcyAnZGVtby12YXVsdC1oZWxwZXInIGZyb20gJy4vZGVtby12YXVsdC1oZWxwZXIudHMnO1xuZXhwb3J0ICogYXMgJ2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXInIGZyb20gJy4vZGVza3RvcC1kZW1vLXZhdWx0LW9wZW5lci50cyc7XG5leHBvcnQgKiBhcyAnZGVza3RvcC10cnVzdGVkLWlucHV0JyBmcm9tICcuL2Rlc2t0b3AtdHJ1c3RlZC1pbnB1dC50cyc7XG5leHBvcnQgKiBhcyAnZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXInIGZyb20gJy4vZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvci1zdWdnZXN0LXJlZ2lzdHJhcicgZnJvbSAnLi9lZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvcicgZnJvbSAnLi9lZGl0b3IudHMnO1xuZXhwb3J0ICogYXMgJ2V2ZW50cycgZnJvbSAnLi9ldmVudHMudHMnO1xuZXhwb3J0ICogYXMgJ2V4dGVuc2lvbnMtcmVnaXN0cmFyJyBmcm9tICcuL2V4dGVuc2lvbnMtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLWNoYW5nZScgZnJvbSAnLi9maWxlLWNoYW5nZS50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1tYW5hZ2VyJyBmcm9tICcuL2ZpbGUtbWFuYWdlci50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1zeXN0ZW0nIGZyb20gJy4vZmlsZS1zeXN0ZW0udHMnO1xuZXhwb3J0ICogYXMgJ2Zyb250bWF0dGVyLWxpbmstY2FjaGUtd2l0aC1vZmZzZXRzJyBmcm9tICcuL2Zyb250bWF0dGVyLWxpbmstY2FjaGUtd2l0aC1vZmZzZXRzLnRzJztcbmV4cG9ydCAqIGFzICdmcm9udG1hdHRlcicgZnJvbSAnLi9mcm9udG1hdHRlci50cyc7XG5leHBvcnQgKiBhcyAnaG92ZXItbGluay1zb3VyY2UtcmVnaXN0cmFyJyBmcm9tICcuL2hvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnaHRtbC1lbGVtZW50JyBmcm9tICcuL2h0bWwtZWxlbWVudC50cyc7XG5leHBvcnQgKiBhcyAnaTE4bicgZnJvbSAnLi9pMThuL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdpcy1pbi1vYnNpZGlhbicgZnJvbSAnLi9pcy1pbi1vYnNpZGlhbi50cyc7XG5leHBvcnQgKiBhcyAnbGluay11cGRhdGUtcHJvZ3Jlc3MnIGZyb20gJy4vbGluay11cGRhdGUtcHJvZ3Jlc3MudHMnO1xuZXhwb3J0ICogYXMgJ2xpbmsnIGZyb20gJy4vbGluay50cyc7XG5leHBvcnQgKiBhcyAnbG9nZ2VyJyBmcm9tICcuL2xvZ2dlci50cyc7XG5leHBvcnQgKiBhcyAnbG9vcCcgZnJvbSAnLi9sb29wLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci1yZWdpc3RyYXInIGZyb20gJy4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3NvcicgZnJvbSAnLi9tYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tcG9zdC1wcm9jZXNzb3ItcmVnaXN0cmFyJyBmcm9tICcuL21hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tdmlldycgZnJvbSAnLi9tYXJrZG93bi12aWV3LnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bicgZnJvbSAnLi9tYXJrZG93bi50cyc7XG5leHBvcnQgKiBhcyAnbWVudS1ldmVudC1yZWdpc3RyYXInIGZyb20gJy4vbWVudS1ldmVudC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ21ldGFkYXRhLWNhY2hlJyBmcm9tICcuL21ldGFkYXRhLWNhY2hlLnRzJztcbmV4cG9ydCAqIGFzICdtb2RhbHMnIGZyb20gJy4vbW9kYWxzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdub3RlYm9vay1uYXZpZ2F0b3InIGZyb20gJy4vbm90ZWJvb2stbmF2aWdhdG9yLnRzJztcbmV4cG9ydCAqIGFzICdvYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhcicgZnJvbSAnLi9vYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnb2JzaWRpYW4tc2V0dGluZ3MnIGZyb20gJy4vb2JzaWRpYW4tc2V0dGluZ3MudHMnO1xuZXhwb3J0ICogYXMgJ3BhcnNlLWxpbmsnIGZyb20gJy4vcGFyc2UtbGluay50cyc7XG5leHBvcnQgKiBhcyAncGF0aC1zZXR0aW5ncycgZnJvbSAnLi9wYXRoLXNldHRpbmdzLnRzJztcbmV4cG9ydCAqIGFzICdwZGYnIGZyb20gJy4vcGRmLnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4nIGZyb20gJy4vcGx1Z2luL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tY2xpLWhhbmRsZXItcmVnaXN0cmFyJyBmcm9tICcuL3BsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3BvcG92ZXJzJyBmcm9tICcuL3BvcG92ZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdxdWV1ZScgZnJvbSAnLi9xdWV1ZS50cyc7XG5leHBvcnQgKiBhcyAncmVhY3QnIGZyb20gJy4vcmVhY3QvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3JlZmVyZW5jZScgZnJvbSAnLi9yZWZlcmVuY2UudHMnO1xuZXhwb3J0ICogYXMgJ3Jlc291cmNlLWxvY2snIGZyb20gJy4vcmVzb3VyY2UtbG9jay50cyc7XG5leHBvcnQgKiBhcyAncmVzb3VyY2UtdXJsJyBmcm9tICcuL3Jlc291cmNlLXVybC50cyc7XG5leHBvcnQgKiBhcyAncmliYm9uLWljb24tcmVnaXN0cmFyJyBmcm9tICcuL3JpYmJvbi1pY29uLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZy1jb21wb25lbnRzJyBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZy1leCcgZnJvbSAnLi9zZXR0aW5nLWV4LnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5nLWdyb3VwLWV4JyBmcm9tICcuL3NldHRpbmctZ3JvdXAtZXgudHMnO1xuZXhwb3J0ICogYXMgJ3N0YXR1cy1iYXItaXRlbS1yZWdpc3RyYXInIGZyb20gJy4vc3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAndmFsaWRhdGlvbicgZnJvbSAnLi92YWxpZGF0aW9uLnRzJztcbmV4cG9ydCAqIGFzICd2YXVsdC1kZWxldGUnIGZyb20gJy4vdmF1bHQtZGVsZXRlLnRzJztcbmV4cG9ydCAqIGFzICd2YXVsdC10cmFuc2FjdGlvbicgZnJvbSAnLi92YXVsdC10cmFuc2FjdGlvbi50cyc7XG5leHBvcnQgKiBhcyAndmF1bHQnIGZyb20gJy4vdmF1bHQudHMnO1xuZXhwb3J0ICogYXMgJ3ZpZXctcmVnaXN0cmFyJyBmcm9tICcuL3ZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICd3b3Jrc3BhY2UnIGZyb20gJy4vd29ya3NwYWNlLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsWUFBWUEsMEJBQTRCO0FBQ3hDLFlBQVksU0FBVztBQUN2QixZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMscUJBQXVCO0FBQ25DLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVksYUFBZTtBQUMzQixZQUFZLFlBQWM7QUFDMUIsWUFBWUMsaUNBQW1DO0FBQy9DLFlBQVlDLHFDQUF1QztBQUNuRCxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsc0JBQXdCO0FBQ3BDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWSxnQkFBa0I7QUFDOUIsWUFBWSxrQkFBb0I7QUFDaEMsWUFBWUMsZUFBaUI7QUFDN0IsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZLGNBQWdCO0FBQzVCLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQywrQkFBaUM7QUFDN0MsWUFBWUMsMkJBQTZCO0FBQ3pDLFlBQVlDLGdDQUFrQztBQUM5QyxZQUFZQyw4QkFBZ0M7QUFDNUMsWUFBWSxZQUFjO0FBQzFCLFlBQVksWUFBYztBQUMxQixZQUFZQywwQkFBNEI7QUFDeEMsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQyxpQkFBbUI7QUFDL0IsWUFBWUMseUNBQTJDO0FBQ3ZELFlBQVksaUJBQW1CO0FBQy9CLFlBQVlDLGlDQUFtQztBQUMvQyxZQUFZQyxrQkFBb0I7QUFDaEMsWUFBWSxVQUFZO0FBQ3hCLFlBQVlDLG9CQUFzQjtBQUNsQyxZQUFZQywwQkFBNEI7QUFDeEMsWUFBWSxVQUFZO0FBQ3hCLFlBQVksWUFBYztBQUMxQixZQUFZLFVBQVk7QUFDeEIsWUFBWUMsNkNBQStDO0FBQzNELFlBQVlDLG1DQUFxQztBQUNqRCxZQUFZQyx1Q0FBeUM7QUFDckQsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVlDLG9CQUFzQjtBQUNsQyxZQUFZLFlBQWM7QUFDMUIsWUFBWUMsd0JBQTBCO0FBQ3RDLFlBQVlDLHlDQUEyQztBQUN2RCxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZLFNBQVc7QUFDdkIsWUFBWSxZQUFjO0FBQzFCLFlBQVlDLGtDQUFvQztBQUNoRCxZQUFZLGNBQWdCO0FBQzVCLFlBQVksV0FBYTtBQUN6QixZQUFZLFdBQWE7QUFDekIsWUFBWSxlQUFpQjtBQUM3QixZQUFZQyxtQkFBcUI7QUFDakMsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLDJCQUE2QjtBQUN6QyxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLHNCQUF3QjtBQUNwQyxZQUFZQywrQkFBaUM7QUFDN0MsWUFBWSxnQkFBa0I7QUFDOUIsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZLFdBQWE7QUFDekIsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksZUFBaUI7IiwKICAibmFtZXMiOiBbImFjdGl2ZS1maWxlLXByb3ZpZGVyIiwgImFzeW5jLXdpdGgtbm90aWNlIiwgImF0dGFjaG1lbnQtcGF0aCIsICJiYXNlcy12aWV3LXJlZ2lzdHJhciIsICJjYXNlLWluc2Vuc2l0aXZlLWZpbGUtaW5kZXgiLCAiY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbiIsICJjb2RlLWJsb2NrLXJlZy1leHAiLCAiY29tbWFuZC1oYW5kbGVycyIsICJjb21tYW5kLXJlZ2lzdHJhciIsICJjb21tdW5pdHktcGx1Z2lucyIsICJjc3MtY2xhc3MiLCAiZGF0YS1oYW5kbGVyIiwgImRhdGF2aWV3LWxpbmsiLCAiZGVtby12YXVsdC1oZWxwZXIiLCAiZGVza3RvcC1kZW1vLXZhdWx0LW9wZW5lciIsICJkZXNrdG9wLXRydXN0ZWQtaW5wdXQiLCAiZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXIiLCAiZWRpdG9yLXN1Z2dlc3QtcmVnaXN0cmFyIiwgImV4dGVuc2lvbnMtcmVnaXN0cmFyIiwgImZpbGUtY2hhbmdlIiwgImZpbGUtbWFuYWdlciIsICJmaWxlLXN5c3RlbSIsICJmcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cyIsICJob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXIiLCAiaHRtbC1lbGVtZW50IiwgImlzLWluLW9ic2lkaWFuIiwgImxpbmstdXBkYXRlLXByb2dyZXNzIiwgIm1hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhciIsICJtYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3NvciIsICJtYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXIiLCAibWFya2Rvd24tdmlldyIsICJtZW51LWV2ZW50LXJlZ2lzdHJhciIsICJtZXRhZGF0YS1jYWNoZSIsICJub3RlYm9vay1uYXZpZ2F0b3IiLCAib2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXIiLCAib2JzaWRpYW4tc2V0dGluZ3MiLCAicGFyc2UtbGluayIsICJwYXRoLXNldHRpbmdzIiwgInBsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXIiLCAicmVzb3VyY2UtbG9jayIsICJyZXNvdXJjZS11cmwiLCAicmliYm9uLWljb24tcmVnaXN0cmFyIiwgInNldHRpbmctY29tcG9uZW50cyIsICJzZXR0aW5nLWV4IiwgInNldHRpbmctZ3JvdXAtZXgiLCAic3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhciIsICJ2YXVsdC1kZWxldGUiLCAidmF1bHQtdHJhbnNhY3Rpb24iLCAidmlldy1yZWdpc3RyYXIiXQp9Cg==
176
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2FjdGl2ZS1maWxlLXByb3ZpZGVyJyBmcm9tICcuL2FjdGl2ZS1maWxlLXByb3ZpZGVyLnRzJztcbmV4cG9ydCAqIGFzICdhcHAnIGZyb20gJy4vYXBwLnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy13aXRoLW5vdGljZScgZnJvbSAnLi9hc3luYy13aXRoLW5vdGljZS50cyc7XG5leHBvcnQgKiBhcyAnYXR0YWNobWVudC1wYXRoJyBmcm9tICcuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQgKiBhcyAnYmFja2xpbmsnIGZyb20gJy4vYmFja2xpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2Jhc2VzLXZpZXctcmVnaXN0cmFyJyBmcm9tICcuL2Jhc2VzLXZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdjYWxsb3V0JyBmcm9tICcuL2NhbGxvdXQudHMnO1xuZXhwb3J0ICogYXMgJ2NhbnZhcycgZnJvbSAnLi9jYW52YXMudHMnO1xuZXhwb3J0ICogYXMgJ2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleCcgZnJvbSAnLi9jYXNlLWluc2Vuc2l0aXZlLWZpbGUtaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NvZGUtYmxvY2stbWFya2Rvd24taW5mb3JtYXRpb24nIGZyb20gJy4vY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbi50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1ibG9jay1yZWctZXhwJyBmcm9tICcuL2NvZGUtYmxvY2stcmVnLWV4cC50cyc7XG5leHBvcnQgKiBhcyAnY29tbWFuZC1oYW5kbGVycycgZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjb21tYW5kLXJlZ2lzdHJhcicgZnJvbSAnLi9jb21tYW5kLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnY29tbXVuaXR5LXBsdWdpbnMnIGZyb20gJy4vY29tbXVuaXR5LXBsdWdpbnMudHMnO1xuZXhwb3J0ICogYXMgJ2NvbXBvbmVudHMnIGZyb20gJy4vY29tcG9uZW50cy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY29uc3RydWN0b3JzJyBmcm9tICcuL2NvbnN0cnVjdG9ycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY3NzLWNsYXNzJyBmcm9tICcuL2Nzcy1jbGFzcy50cyc7XG5leHBvcnQgKiBhcyAnZGF0YS1oYW5kbGVyJyBmcm9tICcuL2RhdGEtaGFuZGxlci50cyc7XG5leHBvcnQgKiBhcyAnZGF0YXZpZXctbGluaycgZnJvbSAnLi9kYXRhdmlldy1saW5rLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhdmlldycgZnJvbSAnLi9kYXRhdmlldy50cyc7XG5leHBvcnQgKiBhcyAnZGVtby12YXVsdC1oZWxwZXItc2V0dGluZ3MnIGZyb20gJy4vZGVtby12YXVsdC1oZWxwZXItc2V0dGluZ3MudHMnO1xuZXhwb3J0ICogYXMgJ2RlbW8tdmF1bHQtaGVscGVyJyBmcm9tICcuL2RlbW8tdmF1bHQtaGVscGVyLnRzJztcbmV4cG9ydCAqIGFzICdkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyJyBmcm9tICcuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMnO1xuZXhwb3J0ICogYXMgJ2Rlc2t0b3AtdHJ1c3RlZC1pbnB1dCcgZnJvbSAnLi9kZXNrdG9wLXRydXN0ZWQtaW5wdXQudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyJyBmcm9tICcuL2VkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdlZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXInIGZyb20gJy4vZWRpdG9yLXN1Z2dlc3QtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdlZGl0b3InIGZyb20gJy4vZWRpdG9yLnRzJztcbmV4cG9ydCAqIGFzICdldmVudHMnIGZyb20gJy4vZXZlbnRzLnRzJztcbmV4cG9ydCAqIGFzICdleHRlbnNpb25zLXJlZ2lzdHJhcicgZnJvbSAnLi9leHRlbnNpb25zLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1jaGFuZ2UnIGZyb20gJy4vZmlsZS1jaGFuZ2UudHMnO1xuZXhwb3J0ICogYXMgJ2ZpbGUtbWFuYWdlcicgZnJvbSAnLi9maWxlLW1hbmFnZXIudHMnO1xuZXhwb3J0ICogYXMgJ2ZpbGUtc3lzdGVtJyBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmV4cG9ydCAqIGFzICdmcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cycgZnJvbSAnLi9mcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cy50cyc7XG5leHBvcnQgKiBhcyAnZnJvbnRtYXR0ZXInIGZyb20gJy4vZnJvbnRtYXR0ZXIudHMnO1xuZXhwb3J0ICogYXMgJ2hvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhcicgZnJvbSAnLi9ob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2h0bWwtZWxlbWVudCcgZnJvbSAnLi9odG1sLWVsZW1lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2kxOG4nIGZyb20gJy4vaTE4bi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnaXMtaW4tb2JzaWRpYW4nIGZyb20gJy4vaXMtaW4tb2JzaWRpYW4udHMnO1xuZXhwb3J0ICogYXMgJ2xpbmstdXBkYXRlLXByb2dyZXNzJyBmcm9tICcuL2xpbmstdXBkYXRlLXByb2dyZXNzLnRzJztcbmV4cG9ydCAqIGFzICdsaW5rJyBmcm9tICcuL2xpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2xvZ2dlcicgZnJvbSAnLi9sb2dnZXIudHMnO1xuZXhwb3J0ICogYXMgJ2xvb3AnIGZyb20gJy4vbG9vcC50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyJyBmcm9tICcuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3InIGZyb20gJy4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhcicgZnJvbSAnLi9tYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLXZpZXcnIGZyb20gJy4vbWFya2Rvd24tdmlldy50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24nIGZyb20gJy4vbWFya2Rvd24udHMnO1xuZXhwb3J0ICogYXMgJ21lbnUtZXZlbnQtcmVnaXN0cmFyJyBmcm9tICcuL21lbnUtZXZlbnQtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdtZXRhZGF0YS1jYWNoZScgZnJvbSAnLi9tZXRhZGF0YS1jYWNoZS50cyc7XG5leHBvcnQgKiBhcyAnbW9kYWxzJyBmcm9tICcuL21vZGFscy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnbm90ZWJvb2stbmF2aWdhdG9yJyBmcm9tICcuL25vdGVib29rLW5hdmlnYXRvci50cyc7XG5leHBvcnQgKiBhcyAnb2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXInIGZyb20gJy4vb2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ29ic2lkaWFuLXNldHRpbmdzJyBmcm9tICcuL29ic2lkaWFuLXNldHRpbmdzLnRzJztcbmV4cG9ydCAqIGFzICdwYXJzZS1saW5rJyBmcm9tICcuL3BhcnNlLWxpbmsudHMnO1xuZXhwb3J0ICogYXMgJ3BhdGgtc2V0dGluZ3MnIGZyb20gJy4vcGF0aC1zZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyAncGRmJyBmcm9tICcuL3BkZi50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luJyBmcm9tICcuL3BsdWdpbi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhcicgZnJvbSAnLi9wbHVnaW4tY2xpLWhhbmRsZXItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdwb3BvdmVycycgZnJvbSAnLi9wb3BvdmVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAncXVldWUnIGZyb20gJy4vcXVldWUudHMnO1xuZXhwb3J0ICogYXMgJ3JlYWN0JyBmcm9tICcuL3JlYWN0L2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdyZWZlcmVuY2UnIGZyb20gJy4vcmVmZXJlbmNlLnRzJztcbmV4cG9ydCAqIGFzICdyZXNvdXJjZS1sb2NrJyBmcm9tICcuL3Jlc291cmNlLWxvY2sudHMnO1xuZXhwb3J0ICogYXMgJ3Jlc291cmNlLXVybCcgZnJvbSAnLi9yZXNvdXJjZS11cmwudHMnO1xuZXhwb3J0ICogYXMgJ3JpYmJvbi1pY29uLXJlZ2lzdHJhcicgZnJvbSAnLi9yaWJib24taWNvbi1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmctY29tcG9uZW50cycgZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmctZXgnIGZyb20gJy4vc2V0dGluZy1leC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZy1ncm91cC1leCcgZnJvbSAnLi9zZXR0aW5nLWdyb3VwLWV4LnRzJztcbmV4cG9ydCAqIGFzICdzdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyJyBmcm9tICcuL3N0YXR1cy1iYXItaXRlbS1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3ZhbGlkYXRpb24nIGZyb20gJy4vdmFsaWRhdGlvbi50cyc7XG5leHBvcnQgKiBhcyAndmF1bHQtZGVsZXRlJyBmcm9tICcuL3ZhdWx0LWRlbGV0ZS50cyc7XG5leHBvcnQgKiBhcyAndmF1bHQtdHJhbnNhY3Rpb24nIGZyb20gJy4vdmF1bHQtdHJhbnNhY3Rpb24udHMnO1xuZXhwb3J0ICogYXMgJ3ZhdWx0JyBmcm9tICcuL3ZhdWx0LnRzJztcbmV4cG9ydCAqIGFzICd2aWV3LXJlZ2lzdHJhcicgZnJvbSAnLi92aWV3LXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnd29ya3NwYWNlJyBmcm9tICcuL3dvcmtzcGFjZS50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLFlBQVlBLDBCQUE0QjtBQUN4QyxZQUFZLFNBQVc7QUFDdkIsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVlDLHFCQUF1QjtBQUNuQyxZQUFZLGNBQWdCO0FBQzVCLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZLGFBQWU7QUFDM0IsWUFBWSxZQUFjO0FBQzFCLFlBQVlDLGlDQUFtQztBQUMvQyxZQUFZQyxxQ0FBdUM7QUFDbkQsWUFBWUMsd0JBQTBCO0FBQ3RDLFlBQVlDLHNCQUF3QjtBQUNwQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVksZ0JBQWtCO0FBQzlCLFlBQVksa0JBQW9CO0FBQ2hDLFlBQVlDLGVBQWlCO0FBQzdCLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQyxtQkFBcUI7QUFDakMsWUFBWSxjQUFnQjtBQUM1QixZQUFZQyxnQ0FBa0M7QUFDOUMsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVlDLCtCQUFpQztBQUM3QyxZQUFZQywyQkFBNkI7QUFDekMsWUFBWUMsZ0NBQWtDO0FBQzlDLFlBQVlDLDhCQUFnQztBQUM1QyxZQUFZLFlBQWM7QUFDMUIsWUFBWSxZQUFjO0FBQzFCLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZQyxpQkFBbUI7QUFDL0IsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLGlCQUFtQjtBQUMvQixZQUFZQyx5Q0FBMkM7QUFDdkQsWUFBWSxpQkFBbUI7QUFDL0IsWUFBWUMsaUNBQW1DO0FBQy9DLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZLFVBQVk7QUFDeEIsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZLFVBQVk7QUFDeEIsWUFBWSxZQUFjO0FBQzFCLFlBQVksVUFBWTtBQUN4QixZQUFZQyw2Q0FBK0M7QUFDM0QsWUFBWUMsbUNBQXFDO0FBQ2pELFlBQVlDLHVDQUF5QztBQUNyRCxZQUFZQyxtQkFBcUI7QUFDakMsWUFBWSxjQUFnQjtBQUM1QixZQUFZQywwQkFBNEI7QUFDeEMsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksWUFBYztBQUMxQixZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMseUNBQTJDO0FBQ3ZELFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyxnQkFBa0I7QUFDOUIsWUFBWUMsbUJBQXFCO0FBQ2pDLFlBQVksU0FBVztBQUN2QixZQUFZLFlBQWM7QUFDMUIsWUFBWUMsa0NBQW9DO0FBQ2hELFlBQVksY0FBZ0I7QUFDNUIsWUFBWSxXQUFhO0FBQ3pCLFlBQVksV0FBYTtBQUN6QixZQUFZLGVBQWlCO0FBQzdCLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZQyxrQkFBb0I7QUFDaEMsWUFBWUMsMkJBQTZCO0FBQ3pDLFlBQVlDLHdCQUEwQjtBQUN0QyxZQUFZQyxnQkFBa0I7QUFDOUIsWUFBWUMsc0JBQXdCO0FBQ3BDLFlBQVlDLCtCQUFpQztBQUM3QyxZQUFZLGdCQUFrQjtBQUM5QixZQUFZQyxrQkFBb0I7QUFDaEMsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVksV0FBYTtBQUN6QixZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWSxlQUFpQjsiLAogICJuYW1lcyI6IFsiYWN0aXZlLWZpbGUtcHJvdmlkZXIiLCAiYXN5bmMtd2l0aC1ub3RpY2UiLCAiYXR0YWNobWVudC1wYXRoIiwgImJhc2VzLXZpZXctcmVnaXN0cmFyIiwgImNhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleCIsICJjb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uIiwgImNvZGUtYmxvY2stcmVnLWV4cCIsICJjb21tYW5kLWhhbmRsZXJzIiwgImNvbW1hbmQtcmVnaXN0cmFyIiwgImNvbW11bml0eS1wbHVnaW5zIiwgImNzcy1jbGFzcyIsICJkYXRhLWhhbmRsZXIiLCAiZGF0YXZpZXctbGluayIsICJkZW1vLXZhdWx0LWhlbHBlci1zZXR0aW5ncyIsICJkZW1vLXZhdWx0LWhlbHBlciIsICJkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyIiwgImRlc2t0b3AtdHJ1c3RlZC1pbnB1dCIsICJlZGl0b3ItZXh0ZW5zaW9uLXJlZ2lzdHJhciIsICJlZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIiLCAiZXh0ZW5zaW9ucy1yZWdpc3RyYXIiLCAiZmlsZS1jaGFuZ2UiLCAiZmlsZS1tYW5hZ2VyIiwgImZpbGUtc3lzdGVtIiwgImZyb250bWF0dGVyLWxpbmstY2FjaGUtd2l0aC1vZmZzZXRzIiwgImhvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhciIsICJodG1sLWVsZW1lbnQiLCAiaXMtaW4tb2JzaWRpYW4iLCAibGluay11cGRhdGUtcHJvZ3Jlc3MiLCAibWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyIiwgIm1hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yIiwgIm1hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhciIsICJtYXJrZG93bi12aWV3IiwgIm1lbnUtZXZlbnQtcmVnaXN0cmFyIiwgIm1ldGFkYXRhLWNhY2hlIiwgIm5vdGVib29rLW5hdmlnYXRvciIsICJvYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhciIsICJvYnNpZGlhbi1zZXR0aW5ncyIsICJwYXJzZS1saW5rIiwgInBhdGgtc2V0dGluZ3MiLCAicGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhciIsICJyZXNvdXJjZS1sb2NrIiwgInJlc291cmNlLXVybCIsICJyaWJib24taWNvbi1yZWdpc3RyYXIiLCAic2V0dGluZy1jb21wb25lbnRzIiwgInNldHRpbmctZXgiLCAic2V0dGluZy1ncm91cC1leCIsICJzdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyIiwgInZhdWx0LWRlbGV0ZSIsICJ2YXVsdC10cmFuc2FjdGlvbiIsICJ2aWV3LXJlZ2lzdHJhciJdCn0K
@@ -70,6 +70,9 @@ export interface CleanupEmptyFoldersParams {
70
70
  * Arguments for {@link process}.
71
71
  */
72
72
  export interface ContentArguments {
73
+ /**
74
+ * The current content of the file.
75
+ */
73
76
  readonly content: string;
74
77
  }
75
78
  /**