obsidian-dev-utils 96.6.0 → 98.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 (121) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/LICENSE +1 -1
  3. package/dist/integration-test-plugin/main.js +1762 -4197
  4. package/dist/lib/cjs/__merged.cjs +17 -9
  5. package/dist/lib/cjs/__merged.d.cts +3 -1
  6. package/dist/lib/cjs/desktop-zip-extractor.cjs +276 -0
  7. package/dist/lib/cjs/desktop-zip-extractor.d.cts +94 -0
  8. package/dist/lib/cjs/generated-during-build.cjs +1 -1
  9. package/dist/lib/cjs/index.cjs +4 -1
  10. package/dist/lib/cjs/index.d.cts +1 -0
  11. package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.cjs +38 -38
  12. package/dist/lib/cjs/obsidian/demo-vault-naming.cjs +167 -0
  13. package/dist/lib/cjs/obsidian/demo-vault-naming.d.cts +54 -0
  14. package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.cjs +20 -21
  15. package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.d.cts +21 -16
  16. package/dist/lib/cjs/obsidian/desktop-trusted-input.cjs +9 -9
  17. package/dist/lib/cjs/obsidian/desktop-trusted-input.d.cts +23 -4
  18. package/dist/lib/cjs/obsidian/index.cjs +10 -1
  19. package/dist/lib/cjs/obsidian/index.d.cts +3 -0
  20. package/dist/lib/cjs/obsidian/mobile-trusted-input.cjs +195 -0
  21. package/dist/lib/cjs/obsidian/mobile-trusted-input.d.cts +93 -0
  22. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +2 -1
  23. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +4 -0
  24. package/dist/lib/cjs/obsidian/resource-lock.cjs +122 -122
  25. package/dist/lib/cjs/obsidian/trusted-input.cjs +206 -0
  26. package/dist/lib/cjs/obsidian/trusted-input.d.cts +126 -0
  27. package/dist/lib/cjs/script-utils/build.cjs +30 -6
  28. package/dist/lib/cjs/script-utils/build.d.cts +5 -0
  29. package/dist/lib/cjs/script-utils/demo-vault.cjs +26 -6
  30. package/dist/lib/cjs/script-utils/demo-vault.d.cts +12 -8
  31. package/dist/lib/cjs/script-utils/exec.cjs +1 -1
  32. package/dist/lib/cjs/script-utils/formatters/dprint.cjs +3 -2
  33. package/dist/lib/cjs/script-utils/index.cjs +4 -1
  34. package/dist/lib/cjs/script-utils/index.d.cts +1 -0
  35. package/dist/lib/cjs/script-utils/linters/cspell.cjs +3 -3
  36. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +39 -1
  37. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +16 -1
  38. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.d.cts +5 -0
  39. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-description.cjs +254 -0
  40. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-description.d.cts +54 -0
  41. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-helpers.cjs +217 -0
  42. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-helpers.d.cts +141 -0
  43. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-id.cjs +214 -0
  44. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-id.d.cts +32 -0
  45. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-name.cjs +215 -0
  46. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-name.d.cts +30 -0
  47. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-schema.cjs +318 -0
  48. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-schema.d.cts +45 -0
  49. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +9 -1
  50. package/dist/lib/cjs/script-utils/linters/eslint.cjs +3 -2
  51. package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +4 -4
  52. package/dist/lib/cjs/script-utils/npm-run.cjs +4 -3
  53. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +10 -1
  54. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +37 -1
  55. package/dist/lib/cjs/script-utils/package-manager.cjs +287 -0
  56. package/dist/lib/cjs/script-utils/package-manager.d.cts +77 -0
  57. package/dist/lib/cjs/script-utils/version.cjs +21 -9
  58. package/dist/lib/esm/__merged.d.mts +3 -1
  59. package/dist/lib/esm/__merged.mjs +18 -10
  60. package/dist/lib/esm/desktop-zip-extractor.d.mts +94 -0
  61. package/dist/lib/esm/desktop-zip-extractor.mjs +174 -0
  62. package/dist/lib/esm/generated-during-build.mjs +1 -1
  63. package/dist/lib/esm/index.d.mts +1 -0
  64. package/dist/lib/esm/index.mjs +3 -1
  65. package/dist/lib/esm/obsidian/components/rename-delete-handler-component.mjs +38 -38
  66. package/dist/lib/esm/obsidian/demo-vault-naming.d.mts +54 -0
  67. package/dist/lib/esm/obsidian/demo-vault-naming.mjs +61 -0
  68. package/dist/lib/esm/obsidian/desktop-demo-vault-opener.d.mts +21 -16
  69. package/dist/lib/esm/obsidian/desktop-demo-vault-opener.mjs +23 -11
  70. package/dist/lib/esm/obsidian/desktop-trusted-input.d.mts +23 -4
  71. package/dist/lib/esm/obsidian/desktop-trusted-input.mjs +9 -9
  72. package/dist/lib/esm/obsidian/index.d.mts +3 -0
  73. package/dist/lib/esm/obsidian/index.mjs +7 -1
  74. package/dist/lib/esm/obsidian/mobile-trusted-input.d.mts +93 -0
  75. package/dist/lib/esm/obsidian/mobile-trusted-input.mjs +84 -0
  76. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +4 -0
  77. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +2 -1
  78. package/dist/lib/esm/obsidian/resource-lock.mjs +122 -122
  79. package/dist/lib/esm/obsidian/trusted-input.d.mts +126 -0
  80. package/dist/lib/esm/obsidian/trusted-input.mjs +85 -0
  81. package/dist/lib/esm/script-utils/build.d.mts +5 -0
  82. package/dist/lib/esm/script-utils/build.mjs +30 -6
  83. package/dist/lib/esm/script-utils/demo-vault.d.mts +12 -8
  84. package/dist/lib/esm/script-utils/demo-vault.mjs +29 -6
  85. package/dist/lib/esm/script-utils/exec.mjs +1 -1
  86. package/dist/lib/esm/script-utils/formatters/dprint.mjs +3 -2
  87. package/dist/lib/esm/script-utils/index.d.mts +1 -0
  88. package/dist/lib/esm/script-utils/index.mjs +3 -1
  89. package/dist/lib/esm/script-utils/linters/cspell.mjs +3 -3
  90. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +39 -1
  91. package/dist/lib/esm/script-utils/linters/eslint-rules/index.d.mts +5 -0
  92. package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +11 -1
  93. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-description.d.mts +54 -0
  94. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-description.mjs +148 -0
  95. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-helpers.d.mts +141 -0
  96. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-helpers.mjs +92 -0
  97. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-id.d.mts +32 -0
  98. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-id.mjs +111 -0
  99. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-name.d.mts +30 -0
  100. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-name.mjs +112 -0
  101. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-schema.d.mts +45 -0
  102. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-schema.mjs +217 -0
  103. package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +9 -1
  104. package/dist/lib/esm/script-utils/linters/eslint.mjs +3 -2
  105. package/dist/lib/esm/script-utils/linters/markdownlint.mjs +4 -4
  106. package/dist/lib/esm/script-utils/npm-run.mjs +4 -3
  107. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +37 -1
  108. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +10 -1
  109. package/dist/lib/esm/script-utils/package-manager.d.mts +77 -0
  110. package/dist/lib/esm/script-utils/package-manager.mjs +173 -0
  111. package/dist/lib/esm/script-utils/version.mjs +21 -9
  112. package/obsidian/demo-vault-naming/package.json +6 -0
  113. package/obsidian/mobile-trusted-input/package.json +6 -0
  114. package/obsidian/trusted-input/package.json +6 -0
  115. package/package.json +19 -17
  116. package/script-utils/linters/eslint-rules/manifest-description/package.json +6 -0
  117. package/script-utils/linters/eslint-rules/manifest-helpers/package.json +6 -0
  118. package/script-utils/linters/eslint-rules/manifest-id/package.json +6 -0
  119. package/script-utils/linters/eslint-rules/manifest-name/package.json +6 -0
  120. package/script-utils/linters/eslint-rules/manifest-schema/package.json +6 -0
  121. package/script-utils/package-manager/package.json +6 -0
@@ -22,6 +22,7 @@ export * as 'dataview-link' from './dataview-link.mjs';
22
22
  export * as 'dataview' from './dataview.mjs';
23
23
  export * as 'demo-vault-helper-settings' from './demo-vault-helper-settings.mjs';
24
24
  export * as 'demo-vault-helper' from './demo-vault-helper.mjs';
25
+ export * as 'demo-vault-naming' from './demo-vault-naming.mjs';
25
26
  export * as 'desktop-demo-vault-opener' from './desktop-demo-vault-opener.mjs';
26
27
  export * as 'desktop-trusted-input' from './desktop-trusted-input.mjs';
27
28
  export * as 'editor-extension-registrar' from './editor-extension-registrar.mjs';
@@ -50,6 +51,7 @@ export * as 'markdown-view' from './markdown-view.mjs';
50
51
  export * as 'markdown' from './markdown.mjs';
51
52
  export * as 'menu-event-registrar' from './menu-event-registrar.mjs';
52
53
  export * as 'metadata-cache' from './metadata-cache.mjs';
54
+ export * as 'mobile-trusted-input' from './mobile-trusted-input.mjs';
53
55
  export * as 'modals' from './modals/index.mjs';
54
56
  export * as 'note-priority' from './note-priority.mjs';
55
57
  export * as 'notebook-navigator' from './notebook-navigator.mjs';
@@ -72,6 +74,7 @@ export * as 'setting-ex' from './setting-ex.mjs';
72
74
  export * as 'setting-group-ex' from './setting-group-ex.mjs';
73
75
  export * as 'status-bar-item-registrar' from './status-bar-item-registrar.mjs';
74
76
  export * as 'templater' from './templater.mjs';
77
+ export * as 'trusted-input' from './trusted-input.mjs';
75
78
  export * as 'validation' from './validation.mjs';
76
79
  export * as 'vault-delete' from './vault-delete.mjs';
77
80
  export * as 'vault-transaction' from './vault-transaction.mjs';
@@ -64,6 +64,7 @@ import * as dataview_link from "./dataview-link.mjs";
64
64
  import * as dataview from "./dataview.mjs";
65
65
  import * as demo_vault_helper_settings from "./demo-vault-helper-settings.mjs";
66
66
  import * as demo_vault_helper from "./demo-vault-helper.mjs";
67
+ import * as demo_vault_naming from "./demo-vault-naming.mjs";
67
68
  import * as desktop_demo_vault_opener from "./desktop-demo-vault-opener.mjs";
68
69
  import * as desktop_trusted_input from "./desktop-trusted-input.mjs";
69
70
  import * as editor_extension_registrar from "./editor-extension-registrar.mjs";
@@ -92,6 +93,7 @@ import * as markdown_view from "./markdown-view.mjs";
92
93
  import * as markdown from "./markdown.mjs";
93
94
  import * as menu_event_registrar from "./menu-event-registrar.mjs";
94
95
  import * as metadata_cache from "./metadata-cache.mjs";
96
+ import * as mobile_trusted_input from "./mobile-trusted-input.mjs";
95
97
  import * as modals from "./modals/index.mjs";
96
98
  import * as note_priority from "./note-priority.mjs";
97
99
  import * as notebook_navigator from "./notebook-navigator.mjs";
@@ -114,6 +116,7 @@ import * as setting_ex from "./setting-ex.mjs";
114
116
  import * as setting_group_ex from "./setting-group-ex.mjs";
115
117
  import * as status_bar_item_registrar from "./status-bar-item-registrar.mjs";
116
118
  import * as templater from "./templater.mjs";
119
+ import * as trusted_input from "./trusted-input.mjs";
117
120
  import * as validation from "./validation.mjs";
118
121
  import * as vault_delete from "./vault-delete.mjs";
119
122
  import * as vault_transaction from "./vault-transaction.mjs";
@@ -144,6 +147,7 @@ export {
144
147
  dataview_link as "dataview-link",
145
148
  demo_vault_helper as "demo-vault-helper",
146
149
  demo_vault_helper_settings as "demo-vault-helper-settings",
150
+ demo_vault_naming as "demo-vault-naming",
147
151
  desktop_demo_vault_opener as "desktop-demo-vault-opener",
148
152
  desktop_trusted_input as "desktop-trusted-input",
149
153
  editor,
@@ -172,6 +176,7 @@ export {
172
176
  markdown_view as "markdown-view",
173
177
  menu_event_registrar as "menu-event-registrar",
174
178
  metadata_cache as "metadata-cache",
179
+ mobile_trusted_input as "mobile-trusted-input",
175
180
  modals,
176
181
  note_priority as "note-priority",
177
182
  notebook_navigator as "notebook-navigator",
@@ -194,6 +199,7 @@ export {
194
199
  setting_group_ex as "setting-group-ex",
195
200
  status_bar_item_registrar as "status-bar-item-registrar",
196
201
  templater,
202
+ trusted_input as "trusted-input",
197
203
  validation,
198
204
  vault,
199
205
  vault_delete as "vault-delete",
@@ -201,4 +207,4 @@ export {
201
207
  view_registrar as "view-registrar",
202
208
  workspace
203
209
  };
204
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2FjdGl2ZS1maWxlLXByb3ZpZGVyJyBmcm9tICcuL2FjdGl2ZS1maWxlLXByb3ZpZGVyLnRzJztcbmV4cG9ydCAqIGFzICdhcHAnIGZyb20gJy4vYXBwLnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy13aXRoLW5vdGljZScgZnJvbSAnLi9hc3luYy13aXRoLW5vdGljZS50cyc7XG5leHBvcnQgKiBhcyAnYXR0YWNobWVudC1wYXRoJyBmcm9tICcuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQgKiBhcyAnYXR0YWNobWVudC11bml0LWZvbGRlcicgZnJvbSAnLi9hdHRhY2htZW50LXVuaXQtZm9sZGVyLnRzJztcbmV4cG9ydCAqIGFzICdiYWNrbGluaycgZnJvbSAnLi9iYWNrbGluay50cyc7XG5leHBvcnQgKiBhcyAnYmFzZXMtdmlldy1yZWdpc3RyYXInIGZyb20gJy4vYmFzZXMtdmlldy1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2NhbGxvdXQnIGZyb20gJy4vY2FsbG91dC50cyc7XG5leHBvcnQgKiBhcyAnY2FudmFzJyBmcm9tICcuL2NhbnZhcy50cyc7XG5leHBvcnQgKiBhcyAnY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4JyBmcm9tICcuL2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbicgZnJvbSAnLi9jb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uLnRzJztcbmV4cG9ydCAqIGFzICdjb2RlLWJsb2NrLXJlZy1leHAnIGZyb20gJy4vY29kZS1ibG9jay1yZWctZXhwLnRzJztcbmV4cG9ydCAqIGFzICdjb21tYW5kLWhhbmRsZXJzJyBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1hbmQtcmVnaXN0cmFyJyBmcm9tICcuL2NvbW1hbmQtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdjb21tdW5pdHktcGx1Z2lucycgZnJvbSAnLi9jb21tdW5pdHktcGx1Z2lucy50cyc7XG5leHBvcnQgKiBhcyAnY29tcG9uZW50cycgZnJvbSAnLi9jb21wb25lbnRzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjb25zdHJ1Y3RvcnMnIGZyb20gJy4vY29uc3RydWN0b3JzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjc3MtY2xhc3MnIGZyb20gJy4vY3NzLWNsYXNzLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhLWhhbmRsZXInIGZyb20gJy4vZGF0YS1oYW5kbGVyLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhdmlldy1saW5rJyBmcm9tICcuL2RhdGF2aWV3LWxpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2RhdGF2aWV3JyBmcm9tICcuL2RhdGF2aWV3LnRzJztcbmV4cG9ydCAqIGFzICdkZW1vLXZhdWx0LWhlbHBlci1zZXR0aW5ncycgZnJvbSAnLi9kZW1vLXZhdWx0LWhlbHBlci1zZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyAnZGVtby12YXVsdC1oZWxwZXInIGZyb20gJy4vZGVtby12YXVsdC1oZWxwZXIudHMnO1xuZXhwb3J0ICogYXMgJ2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXInIGZyb20gJy4vZGVza3RvcC1kZW1vLXZhdWx0LW9wZW5lci50cyc7XG5leHBvcnQgKiBhcyAnZGVza3RvcC10cnVzdGVkLWlucHV0JyBmcm9tICcuL2Rlc2t0b3AtdHJ1c3RlZC1pbnB1dC50cyc7XG5leHBvcnQgKiBhcyAnZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXInIGZyb20gJy4vZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvci1zdWdnZXN0LXJlZ2lzdHJhcicgZnJvbSAnLi9lZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvcicgZnJvbSAnLi9lZGl0b3IudHMnO1xuZXhwb3J0ICogYXMgJ2V2ZW50cycgZnJvbSAnLi9ldmVudHMudHMnO1xuZXhwb3J0ICogYXMgJ2V4dGVuc2lvbnMtcmVnaXN0cmFyJyBmcm9tICcuL2V4dGVuc2lvbnMtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLWNoYW5nZScgZnJvbSAnLi9maWxlLWNoYW5nZS50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1tYW5hZ2VyJyBmcm9tICcuL2ZpbGUtbWFuYWdlci50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1zeXN0ZW0nIGZyb20gJy4vZmlsZS1zeXN0ZW0udHMnO1xuZXhwb3J0ICogYXMgJ2ZvbGRlci1ub3RlJyBmcm9tICcuL2ZvbGRlci1ub3RlLnRzJztcbmV4cG9ydCAqIGFzICdmcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cycgZnJvbSAnLi9mcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cy50cyc7XG5leHBvcnQgKiBhcyAnZnJvbnRtYXR0ZXInIGZyb20gJy4vZnJvbnRtYXR0ZXIudHMnO1xuZXhwb3J0ICogYXMgJ2hvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhcicgZnJvbSAnLi9ob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2h0bWwtZWxlbWVudCcgZnJvbSAnLi9odG1sLWVsZW1lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2kxOG4nIGZyb20gJy4vaTE4bi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnaXMtaW4tb2JzaWRpYW4nIGZyb20gJy4vaXMtaW4tb2JzaWRpYW4udHMnO1xuZXhwb3J0ICogYXMgJ2xpbmstdXBkYXRlLXByb2dyZXNzJyBmcm9tICcuL2xpbmstdXBkYXRlLXByb2dyZXNzLnRzJztcbmV4cG9ydCAqIGFzICdsaW5rJyBmcm9tICcuL2xpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2xvZ2dlcicgZnJvbSAnLi9sb2dnZXIudHMnO1xuZXhwb3J0ICogYXMgJ2xvb3AnIGZyb20gJy4vbG9vcC50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyJyBmcm9tICcuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3InIGZyb20gJy4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhcicgZnJvbSAnLi9tYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLXZpZXcnIGZyb20gJy4vbWFya2Rvd24tdmlldy50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24nIGZyb20gJy4vbWFya2Rvd24udHMnO1xuZXhwb3J0ICogYXMgJ21lbnUtZXZlbnQtcmVnaXN0cmFyJyBmcm9tICcuL21lbnUtZXZlbnQtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdtZXRhZGF0YS1jYWNoZScgZnJvbSAnLi9tZXRhZGF0YS1jYWNoZS50cyc7XG5leHBvcnQgKiBhcyAnbW9kYWxzJyBmcm9tICcuL21vZGFscy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnbm90ZS1wcmlvcml0eScgZnJvbSAnLi9ub3RlLXByaW9yaXR5LnRzJztcbmV4cG9ydCAqIGFzICdub3RlYm9vay1uYXZpZ2F0b3InIGZyb20gJy4vbm90ZWJvb2stbmF2aWdhdG9yLnRzJztcbmV4cG9ydCAqIGFzICdvYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhcicgZnJvbSAnLi9vYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnb2JzaWRpYW4tc2V0dGluZ3MnIGZyb20gJy4vb2JzaWRpYW4tc2V0dGluZ3MudHMnO1xuZXhwb3J0ICogYXMgJ3BhcnNlLWxpbmsnIGZyb20gJy4vcGFyc2UtbGluay50cyc7XG5leHBvcnQgKiBhcyAncGF0aC1zZXR0aW5ncycgZnJvbSAnLi9wYXRoLXNldHRpbmdzLnRzJztcbmV4cG9ydCAqIGFzICdwZGYnIGZyb20gJy4vcGRmLnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4nIGZyb20gJy4vcGx1Z2luL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tY2xpLWhhbmRsZXItcmVnaXN0cmFyJyBmcm9tICcuL3BsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3BvcG92ZXJzJyBmcm9tICcuL3BvcG92ZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdxdWV1ZScgZnJvbSAnLi9xdWV1ZS50cyc7XG5leHBvcnQgKiBhcyAncmVhY3QnIGZyb20gJy4vcmVhY3QvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3JlZmVyZW5jZScgZnJvbSAnLi9yZWZlcmVuY2UudHMnO1xuZXhwb3J0ICogYXMgJ3Jlc291cmNlLWxvY2snIGZyb20gJy4vcmVzb3VyY2UtbG9jay50cyc7XG5leHBvcnQgKiBhcyAncmVzb3VyY2UtdXJsJyBmcm9tICcuL3Jlc291cmNlLXVybC50cyc7XG5leHBvcnQgKiBhcyAncmliYm9uLWljb24tcmVnaXN0cmFyJyBmcm9tICcuL3JpYmJvbi1pY29uLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZy1jb21wb25lbnRzJyBmcm9tICcuL3NldHRpbmctY29tcG9uZW50cy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZy1leCcgZnJvbSAnLi9zZXR0aW5nLWV4LnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5nLWdyb3VwLWV4JyBmcm9tICcuL3NldHRpbmctZ3JvdXAtZXgudHMnO1xuZXhwb3J0ICogYXMgJ3N0YXR1cy1iYXItaXRlbS1yZWdpc3RyYXInIGZyb20gJy4vc3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAndGVtcGxhdGVyJyBmcm9tICcuL3RlbXBsYXRlci50cyc7XG5leHBvcnQgKiBhcyAndmFsaWRhdGlvbicgZnJvbSAnLi92YWxpZGF0aW9uLnRzJztcbmV4cG9ydCAqIGFzICd2YXVsdC1kZWxldGUnIGZyb20gJy4vdmF1bHQtZGVsZXRlLnRzJztcbmV4cG9ydCAqIGFzICd2YXVsdC10cmFuc2FjdGlvbicgZnJvbSAnLi92YXVsdC10cmFuc2FjdGlvbi50cyc7XG5leHBvcnQgKiBhcyAndmF1bHQnIGZyb20gJy4vdmF1bHQudHMnO1xuZXhwb3J0ICogYXMgJ3ZpZXctcmVnaXN0cmFyJyBmcm9tICcuL3ZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICd3b3Jrc3BhY2UnIGZyb20gJy4vd29ya3NwYWNlLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxZQUFZQSwwQkFBNEI7QUFDeEMsWUFBWSxTQUFXO0FBQ3ZCLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyxxQkFBdUI7QUFDbkMsWUFBWUMsNEJBQThCO0FBQzFDLFlBQVksY0FBZ0I7QUFDNUIsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVksYUFBZTtBQUMzQixZQUFZLFlBQWM7QUFDMUIsWUFBWUMsaUNBQW1DO0FBQy9DLFlBQVlDLHFDQUF1QztBQUNuRCxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsc0JBQXdCO0FBQ3BDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWSxnQkFBa0I7QUFDOUIsWUFBWSxrQkFBb0I7QUFDaEMsWUFBWUMsZUFBaUI7QUFDN0IsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZLGNBQWdCO0FBQzVCLFlBQVlDLGdDQUFrQztBQUM5QyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsK0JBQWlDO0FBQzdDLFlBQVlDLDJCQUE2QjtBQUN6QyxZQUFZQyxnQ0FBa0M7QUFDOUMsWUFBWUMsOEJBQWdDO0FBQzVDLFlBQVksWUFBYztBQUMxQixZQUFZLFlBQWM7QUFDMUIsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVlDLGlCQUFtQjtBQUMvQixZQUFZQyxrQkFBb0I7QUFDaEMsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLGlCQUFtQjtBQUMvQixZQUFZQyx5Q0FBMkM7QUFDdkQsWUFBWSxpQkFBbUI7QUFDL0IsWUFBWUMsaUNBQW1DO0FBQy9DLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZLFVBQVk7QUFDeEIsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZLFVBQVk7QUFDeEIsWUFBWSxZQUFjO0FBQzFCLFlBQVksVUFBWTtBQUN4QixZQUFZQyw2Q0FBK0M7QUFDM0QsWUFBWUMsbUNBQXFDO0FBQ2pELFlBQVlDLHVDQUF5QztBQUNyRCxZQUFZQyxtQkFBcUI7QUFDakMsWUFBWSxjQUFnQjtBQUM1QixZQUFZQywwQkFBNEI7QUFDeEMsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksWUFBYztBQUMxQixZQUFZQyxtQkFBcUI7QUFDakMsWUFBWUMsd0JBQTBCO0FBQ3RDLFlBQVlDLHlDQUEyQztBQUN2RCxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZLFNBQVc7QUFDdkIsWUFBWSxZQUFjO0FBQzFCLFlBQVlDLGtDQUFvQztBQUNoRCxZQUFZLGNBQWdCO0FBQzVCLFlBQVksV0FBYTtBQUN6QixZQUFZLFdBQWE7QUFDekIsWUFBWSxlQUFpQjtBQUM3QixZQUFZQyxtQkFBcUI7QUFDakMsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLDJCQUE2QjtBQUN6QyxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLHNCQUF3QjtBQUNwQyxZQUFZQywrQkFBaUM7QUFDN0MsWUFBWSxlQUFpQjtBQUM3QixZQUFZLGdCQUFrQjtBQUM5QixZQUFZQyxrQkFBb0I7QUFDaEMsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVksV0FBYTtBQUN6QixZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWSxlQUFpQjsiLAogICJuYW1lcyI6IFsiYWN0aXZlLWZpbGUtcHJvdmlkZXIiLCAiYXN5bmMtd2l0aC1ub3RpY2UiLCAiYXR0YWNobWVudC1wYXRoIiwgImF0dGFjaG1lbnQtdW5pdC1mb2xkZXIiLCAiYmFzZXMtdmlldy1yZWdpc3RyYXIiLCAiY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4IiwgImNvZGUtYmxvY2stbWFya2Rvd24taW5mb3JtYXRpb24iLCAiY29kZS1ibG9jay1yZWctZXhwIiwgImNvbW1hbmQtaGFuZGxlcnMiLCAiY29tbWFuZC1yZWdpc3RyYXIiLCAiY29tbXVuaXR5LXBsdWdpbnMiLCAiY3NzLWNsYXNzIiwgImRhdGEtaGFuZGxlciIsICJkYXRhdmlldy1saW5rIiwgImRlbW8tdmF1bHQtaGVscGVyLXNldHRpbmdzIiwgImRlbW8tdmF1bHQtaGVscGVyIiwgImRlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIiLCAiZGVza3RvcC10cnVzdGVkLWlucHV0IiwgImVkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyIiwgImVkaXRvci1zdWdnZXN0LXJlZ2lzdHJhciIsICJleHRlbnNpb25zLXJlZ2lzdHJhciIsICJmaWxlLWNoYW5nZSIsICJmaWxlLW1hbmFnZXIiLCAiZmlsZS1zeXN0ZW0iLCAiZm9sZGVyLW5vdGUiLCAiZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMiLCAiaG92ZXItbGluay1zb3VyY2UtcmVnaXN0cmFyIiwgImh0bWwtZWxlbWVudCIsICJpcy1pbi1vYnNpZGlhbiIsICJsaW5rLXVwZGF0ZS1wcm9ncmVzcyIsICJtYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci1yZWdpc3RyYXIiLCAibWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IiLCAibWFya2Rvd24tcG9zdC1wcm9jZXNzb3ItcmVnaXN0cmFyIiwgIm1hcmtkb3duLXZpZXciLCAibWVudS1ldmVudC1yZWdpc3RyYXIiLCAibWV0YWRhdGEtY2FjaGUiLCAibm90ZS1wcmlvcml0eSIsICJub3RlYm9vay1uYXZpZ2F0b3IiLCAib2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXIiLCAib2JzaWRpYW4tc2V0dGluZ3MiLCAicGFyc2UtbGluayIsICJwYXRoLXNldHRpbmdzIiwgInBsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXIiLCAicmVzb3VyY2UtbG9jayIsICJyZXNvdXJjZS11cmwiLCAicmliYm9uLWljb24tcmVnaXN0cmFyIiwgInNldHRpbmctY29tcG9uZW50cyIsICJzZXR0aW5nLWV4IiwgInNldHRpbmctZ3JvdXAtZXgiLCAic3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhciIsICJ2YXVsdC1kZWxldGUiLCAidmF1bHQtdHJhbnNhY3Rpb24iLCAidmlldy1yZWdpc3RyYXIiXQp9Cg==
210
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2FjdGl2ZS1maWxlLXByb3ZpZGVyJyBmcm9tICcuL2FjdGl2ZS1maWxlLXByb3ZpZGVyLnRzJztcbmV4cG9ydCAqIGFzICdhcHAnIGZyb20gJy4vYXBwLnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy13aXRoLW5vdGljZScgZnJvbSAnLi9hc3luYy13aXRoLW5vdGljZS50cyc7XG5leHBvcnQgKiBhcyAnYXR0YWNobWVudC1wYXRoJyBmcm9tICcuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQgKiBhcyAnYXR0YWNobWVudC11bml0LWZvbGRlcicgZnJvbSAnLi9hdHRhY2htZW50LXVuaXQtZm9sZGVyLnRzJztcbmV4cG9ydCAqIGFzICdiYWNrbGluaycgZnJvbSAnLi9iYWNrbGluay50cyc7XG5leHBvcnQgKiBhcyAnYmFzZXMtdmlldy1yZWdpc3RyYXInIGZyb20gJy4vYmFzZXMtdmlldy1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2NhbGxvdXQnIGZyb20gJy4vY2FsbG91dC50cyc7XG5leHBvcnQgKiBhcyAnY2FudmFzJyBmcm9tICcuL2NhbnZhcy50cyc7XG5leHBvcnQgKiBhcyAnY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4JyBmcm9tICcuL2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbicgZnJvbSAnLi9jb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uLnRzJztcbmV4cG9ydCAqIGFzICdjb2RlLWJsb2NrLXJlZy1leHAnIGZyb20gJy4vY29kZS1ibG9jay1yZWctZXhwLnRzJztcbmV4cG9ydCAqIGFzICdjb21tYW5kLWhhbmRsZXJzJyBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1hbmQtcmVnaXN0cmFyJyBmcm9tICcuL2NvbW1hbmQtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdjb21tdW5pdHktcGx1Z2lucycgZnJvbSAnLi9jb21tdW5pdHktcGx1Z2lucy50cyc7XG5leHBvcnQgKiBhcyAnY29tcG9uZW50cycgZnJvbSAnLi9jb21wb25lbnRzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjb25zdHJ1Y3RvcnMnIGZyb20gJy4vY29uc3RydWN0b3JzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjc3MtY2xhc3MnIGZyb20gJy4vY3NzLWNsYXNzLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhLWhhbmRsZXInIGZyb20gJy4vZGF0YS1oYW5kbGVyLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhdmlldy1saW5rJyBmcm9tICcuL2RhdGF2aWV3LWxpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2RhdGF2aWV3JyBmcm9tICcuL2RhdGF2aWV3LnRzJztcbmV4cG9ydCAqIGFzICdkZW1vLXZhdWx0LWhlbHBlci1zZXR0aW5ncycgZnJvbSAnLi9kZW1vLXZhdWx0LWhlbHBlci1zZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyAnZGVtby12YXVsdC1oZWxwZXInIGZyb20gJy4vZGVtby12YXVsdC1oZWxwZXIudHMnO1xuZXhwb3J0ICogYXMgJ2RlbW8tdmF1bHQtbmFtaW5nJyBmcm9tICcuL2RlbW8tdmF1bHQtbmFtaW5nLnRzJztcbmV4cG9ydCAqIGFzICdkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyJyBmcm9tICcuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMnO1xuZXhwb3J0ICogYXMgJ2Rlc2t0b3AtdHJ1c3RlZC1pbnB1dCcgZnJvbSAnLi9kZXNrdG9wLXRydXN0ZWQtaW5wdXQudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyJyBmcm9tICcuL2VkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdlZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXInIGZyb20gJy4vZWRpdG9yLXN1Z2dlc3QtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdlZGl0b3InIGZyb20gJy4vZWRpdG9yLnRzJztcbmV4cG9ydCAqIGFzICdldmVudHMnIGZyb20gJy4vZXZlbnRzLnRzJztcbmV4cG9ydCAqIGFzICdleHRlbnNpb25zLXJlZ2lzdHJhcicgZnJvbSAnLi9leHRlbnNpb25zLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1jaGFuZ2UnIGZyb20gJy4vZmlsZS1jaGFuZ2UudHMnO1xuZXhwb3J0ICogYXMgJ2ZpbGUtbWFuYWdlcicgZnJvbSAnLi9maWxlLW1hbmFnZXIudHMnO1xuZXhwb3J0ICogYXMgJ2ZpbGUtc3lzdGVtJyBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmV4cG9ydCAqIGFzICdmb2xkZXItbm90ZScgZnJvbSAnLi9mb2xkZXItbm90ZS50cyc7XG5leHBvcnQgKiBhcyAnZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMnIGZyb20gJy4vZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMudHMnO1xuZXhwb3J0ICogYXMgJ2Zyb250bWF0dGVyJyBmcm9tICcuL2Zyb250bWF0dGVyLnRzJztcbmV4cG9ydCAqIGFzICdob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXInIGZyb20gJy4vaG92ZXItbGluay1zb3VyY2UtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdodG1sLWVsZW1lbnQnIGZyb20gJy4vaHRtbC1lbGVtZW50LnRzJztcbmV4cG9ydCAqIGFzICdpMThuJyBmcm9tICcuL2kxOG4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2lzLWluLW9ic2lkaWFuJyBmcm9tICcuL2lzLWluLW9ic2lkaWFuLnRzJztcbmV4cG9ydCAqIGFzICdsaW5rLXVwZGF0ZS1wcm9ncmVzcycgZnJvbSAnLi9saW5rLXVwZGF0ZS1wcm9ncmVzcy50cyc7XG5leHBvcnQgKiBhcyAnbGluaycgZnJvbSAnLi9saW5rLnRzJztcbmV4cG9ydCAqIGFzICdsb2dnZXInIGZyb20gJy4vbG9nZ2VyLnRzJztcbmV4cG9ydCAqIGFzICdsb29wJyBmcm9tICcuL2xvb3AudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhcicgZnJvbSAnLi9tYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yJyBmcm9tICcuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXInIGZyb20gJy4vbWFya2Rvd24tcG9zdC1wcm9jZXNzb3ItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bi12aWV3JyBmcm9tICcuL21hcmtkb3duLXZpZXcudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duJyBmcm9tICcuL21hcmtkb3duLnRzJztcbmV4cG9ydCAqIGFzICdtZW51LWV2ZW50LXJlZ2lzdHJhcicgZnJvbSAnLi9tZW51LWV2ZW50LXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnbWV0YWRhdGEtY2FjaGUnIGZyb20gJy4vbWV0YWRhdGEtY2FjaGUudHMnO1xuZXhwb3J0ICogYXMgJ21vYmlsZS10cnVzdGVkLWlucHV0JyBmcm9tICcuL21vYmlsZS10cnVzdGVkLWlucHV0LnRzJztcbmV4cG9ydCAqIGFzICdtb2RhbHMnIGZyb20gJy4vbW9kYWxzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdub3RlLXByaW9yaXR5JyBmcm9tICcuL25vdGUtcHJpb3JpdHkudHMnO1xuZXhwb3J0ICogYXMgJ25vdGVib29rLW5hdmlnYXRvcicgZnJvbSAnLi9ub3RlYm9vay1uYXZpZ2F0b3IudHMnO1xuZXhwb3J0ICogYXMgJ29ic2lkaWFuLXByb3RvY29sLWhhbmRsZXItcmVnaXN0cmFyJyBmcm9tICcuL29ic2lkaWFuLXByb3RvY29sLWhhbmRsZXItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdvYnNpZGlhbi1zZXR0aW5ncycgZnJvbSAnLi9vYnNpZGlhbi1zZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyAncGFyc2UtbGluaycgZnJvbSAnLi9wYXJzZS1saW5rLnRzJztcbmV4cG9ydCAqIGFzICdwYXRoLXNldHRpbmdzJyBmcm9tICcuL3BhdGgtc2V0dGluZ3MudHMnO1xuZXhwb3J0ICogYXMgJ3BkZicgZnJvbSAnLi9wZGYudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbicgZnJvbSAnLi9wbHVnaW4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXInIGZyb20gJy4vcGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAncG9wb3ZlcnMnIGZyb20gJy4vcG9wb3ZlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3F1ZXVlJyBmcm9tICcuL3F1ZXVlLnRzJztcbmV4cG9ydCAqIGFzICdyZWFjdCcgZnJvbSAnLi9yZWFjdC9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAncmVmZXJlbmNlJyBmcm9tICcuL3JlZmVyZW5jZS50cyc7XG5leHBvcnQgKiBhcyAncmVzb3VyY2UtbG9jaycgZnJvbSAnLi9yZXNvdXJjZS1sb2NrLnRzJztcbmV4cG9ydCAqIGFzICdyZXNvdXJjZS11cmwnIGZyb20gJy4vcmVzb3VyY2UtdXJsLnRzJztcbmV4cG9ydCAqIGFzICdyaWJib24taWNvbi1yZWdpc3RyYXInIGZyb20gJy4vcmliYm9uLWljb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5nLWNvbXBvbmVudHMnIGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5nLWV4JyBmcm9tICcuL3NldHRpbmctZXgudHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmctZ3JvdXAtZXgnIGZyb20gJy4vc2V0dGluZy1ncm91cC1leC50cyc7XG5leHBvcnQgKiBhcyAnc3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhcicgZnJvbSAnLi9zdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICd0ZW1wbGF0ZXInIGZyb20gJy4vdGVtcGxhdGVyLnRzJztcbmV4cG9ydCAqIGFzICd0cnVzdGVkLWlucHV0JyBmcm9tICcuL3RydXN0ZWQtaW5wdXQudHMnO1xuZXhwb3J0ICogYXMgJ3ZhbGlkYXRpb24nIGZyb20gJy4vdmFsaWRhdGlvbi50cyc7XG5leHBvcnQgKiBhcyAndmF1bHQtZGVsZXRlJyBmcm9tICcuL3ZhdWx0LWRlbGV0ZS50cyc7XG5leHBvcnQgKiBhcyAndmF1bHQtdHJhbnNhY3Rpb24nIGZyb20gJy4vdmF1bHQtdHJhbnNhY3Rpb24udHMnO1xuZXhwb3J0ICogYXMgJ3ZhdWx0JyBmcm9tICcuL3ZhdWx0LnRzJztcbmV4cG9ydCAqIGFzICd2aWV3LXJlZ2lzdHJhcicgZnJvbSAnLi92aWV3LXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnd29ya3NwYWNlJyBmcm9tICcuL3dvcmtzcGFjZS50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsWUFBWUEsMEJBQTRCO0FBQ3hDLFlBQVksU0FBVztBQUN2QixZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMscUJBQXVCO0FBQ25DLFlBQVlDLDRCQUE4QjtBQUMxQyxZQUFZLGNBQWdCO0FBQzVCLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZLGFBQWU7QUFDM0IsWUFBWSxZQUFjO0FBQzFCLFlBQVlDLGlDQUFtQztBQUMvQyxZQUFZQyxxQ0FBdUM7QUFDbkQsWUFBWUMsd0JBQTBCO0FBQ3RDLFlBQVlDLHNCQUF3QjtBQUNwQyxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVksZ0JBQWtCO0FBQzlCLFlBQVksa0JBQW9CO0FBQ2hDLFlBQVlDLGVBQWlCO0FBQzdCLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQyxtQkFBcUI7QUFDakMsWUFBWSxjQUFnQjtBQUM1QixZQUFZQyxnQ0FBa0M7QUFDOUMsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQywrQkFBaUM7QUFDN0MsWUFBWUMsMkJBQTZCO0FBQ3pDLFlBQVlDLGdDQUFrQztBQUM5QyxZQUFZQyw4QkFBZ0M7QUFDNUMsWUFBWSxZQUFjO0FBQzFCLFlBQVksWUFBYztBQUMxQixZQUFZQywwQkFBNEI7QUFDeEMsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQyxpQkFBbUI7QUFDL0IsWUFBWUMsaUJBQW1CO0FBQy9CLFlBQVlDLHlDQUEyQztBQUN2RCxZQUFZLGlCQUFtQjtBQUMvQixZQUFZQyxpQ0FBbUM7QUFDL0MsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVksVUFBWTtBQUN4QixZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVksVUFBWTtBQUN4QixZQUFZLFlBQWM7QUFDMUIsWUFBWSxVQUFZO0FBQ3hCLFlBQVlDLDZDQUErQztBQUMzRCxZQUFZQyxtQ0FBcUM7QUFDakQsWUFBWUMsdUNBQXlDO0FBQ3JELFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZLGNBQWdCO0FBQzVCLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVksWUFBYztBQUMxQixZQUFZQyxtQkFBcUI7QUFDakMsWUFBWUMsd0JBQTBCO0FBQ3RDLFlBQVlDLHlDQUEyQztBQUN2RCxZQUFZQyx1QkFBeUI7QUFDckMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZLFNBQVc7QUFDdkIsWUFBWSxZQUFjO0FBQzFCLFlBQVlDLGtDQUFvQztBQUNoRCxZQUFZLGNBQWdCO0FBQzVCLFlBQVksV0FBYTtBQUN6QixZQUFZLFdBQWE7QUFDekIsWUFBWSxlQUFpQjtBQUM3QixZQUFZQyxtQkFBcUI7QUFDakMsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLDJCQUE2QjtBQUN6QyxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVlDLHNCQUF3QjtBQUNwQyxZQUFZQywrQkFBaUM7QUFDN0MsWUFBWSxlQUFpQjtBQUM3QixZQUFZQyxtQkFBcUI7QUFDakMsWUFBWSxnQkFBa0I7QUFDOUIsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZLFdBQWE7QUFDekIsWUFBWUMsb0JBQXNCO0FBQ2xDLFlBQVksZUFBaUI7IiwKICAibmFtZXMiOiBbImFjdGl2ZS1maWxlLXByb3ZpZGVyIiwgImFzeW5jLXdpdGgtbm90aWNlIiwgImF0dGFjaG1lbnQtcGF0aCIsICJhdHRhY2htZW50LXVuaXQtZm9sZGVyIiwgImJhc2VzLXZpZXctcmVnaXN0cmFyIiwgImNhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleCIsICJjb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uIiwgImNvZGUtYmxvY2stcmVnLWV4cCIsICJjb21tYW5kLWhhbmRsZXJzIiwgImNvbW1hbmQtcmVnaXN0cmFyIiwgImNvbW11bml0eS1wbHVnaW5zIiwgImNzcy1jbGFzcyIsICJkYXRhLWhhbmRsZXIiLCAiZGF0YXZpZXctbGluayIsICJkZW1vLXZhdWx0LWhlbHBlci1zZXR0aW5ncyIsICJkZW1vLXZhdWx0LWhlbHBlciIsICJkZW1vLXZhdWx0LW5hbWluZyIsICJkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyIiwgImRlc2t0b3AtdHJ1c3RlZC1pbnB1dCIsICJlZGl0b3ItZXh0ZW5zaW9uLXJlZ2lzdHJhciIsICJlZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIiLCAiZXh0ZW5zaW9ucy1yZWdpc3RyYXIiLCAiZmlsZS1jaGFuZ2UiLCAiZmlsZS1tYW5hZ2VyIiwgImZpbGUtc3lzdGVtIiwgImZvbGRlci1ub3RlIiwgImZyb250bWF0dGVyLWxpbmstY2FjaGUtd2l0aC1vZmZzZXRzIiwgImhvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhciIsICJodG1sLWVsZW1lbnQiLCAiaXMtaW4tb2JzaWRpYW4iLCAibGluay11cGRhdGUtcHJvZ3Jlc3MiLCAibWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyIiwgIm1hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yIiwgIm1hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhciIsICJtYXJrZG93bi12aWV3IiwgIm1lbnUtZXZlbnQtcmVnaXN0cmFyIiwgIm1ldGFkYXRhLWNhY2hlIiwgIm1vYmlsZS10cnVzdGVkLWlucHV0IiwgIm5vdGUtcHJpb3JpdHkiLCAibm90ZWJvb2stbmF2aWdhdG9yIiwgIm9ic2lkaWFuLXByb3RvY29sLWhhbmRsZXItcmVnaXN0cmFyIiwgIm9ic2lkaWFuLXNldHRpbmdzIiwgInBhcnNlLWxpbmsiLCAicGF0aC1zZXR0aW5ncyIsICJwbHVnaW4tY2xpLWhhbmRsZXItcmVnaXN0cmFyIiwgInJlc291cmNlLWxvY2siLCAicmVzb3VyY2UtdXJsIiwgInJpYmJvbi1pY29uLXJlZ2lzdHJhciIsICJzZXR0aW5nLWNvbXBvbmVudHMiLCAic2V0dGluZy1leCIsICJzZXR0aW5nLWdyb3VwLWV4IiwgInN0YXR1cy1iYXItaXRlbS1yZWdpc3RyYXIiLCAidHJ1c3RlZC1pbnB1dCIsICJ2YXVsdC1kZWxldGUiLCAidmF1bHQtdHJhbnNhY3Rpb24iLCAidmlldy1yZWdpc3RyYXIiXQp9Cg==
@@ -0,0 +1,93 @@
1
+ /// <reference path="../library.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Mobile-only trusted input helpers. There is no in-renderer route to a trusted event on a phone —
6
+ * `webContents.sendInputEvent` is Electron-only and a dispatched event is untrusted — so the injection
7
+ * has to be a round-trip: the request goes to the host over the `obsidian-integration-testing` harness's
8
+ * binding channel, and the host injects it into the WebView over CDP.
9
+ *
10
+ * That channel is installed by the harness's Appium transport, so these helpers **delegate** to the
11
+ * harness rather than reimplementing the wire format: they call
12
+ * `window.__obsidianIntegrationTesting.trustedInput.*`, which holds the very function objects the harness
13
+ * seeds into an `evalInObsidian` closure's `lib` bag. Delegating is what keeps the mobile semantics —
14
+ * tap, long-press for `button: 'right'`, a throw for `'middle'`, the `pressKey` key set, and the throws
15
+ * for the `:hover` helpers — identical to the harness's own copy for free, instead of a second
16
+ * implementation to hand-sync (see the project `AGENTS.md` **L4**).
17
+ *
18
+ * The namespace shape is declared **locally**: the harness must never be a dependency of this library, in
19
+ * either direction, at runtime or in types.
20
+ *
21
+ * **Consequence, and it is deliberate:** these helpers only work inside an app the harness bootstrapped.
22
+ * Outside one they throw a message saying so, rather than silently doing nothing — a no-op would recreate
23
+ * exactly the false-confidence failure trusted input exists to end. Consumers wanting the platform-correct
24
+ * helper should import the {@link ../trusted-input.ts | trusted-input} facade instead of this module.
25
+ */
26
+ import type { ClickElementParams, ClickMouseParams, HoverElementParams, MoveMouseParams, PressKeyParams, TypeIntoEditorParams, UnhoverElementParams } from './desktop-trusted-input.mjs';
27
+ /**
28
+ * Clicks the center of an element using **trusted** touch input — a CDP tap in the WebView, injected by
29
+ * the host.
30
+ *
31
+ * The element-relative counterpart of {@link clickMouse}. `button: 'right'` is the long-press that opens
32
+ * Obsidian Mobile's context menu; `'middle'` throws, because touch has no gesture for it and inventing
33
+ * one would be worse than saying so.
34
+ *
35
+ * @param params - The element to click, the button to press and any modifiers to hold.
36
+ * @returns A {@link Promise} that resolves once the click has been injected.
37
+ */
38
+ export declare function clickElement(params: ClickElementParams): Promise<void>;
39
+ /**
40
+ * Clicks at the given viewport coordinates using **trusted** touch input, injected by the host over CDP.
41
+ *
42
+ * The coordinates are CSS pixels in the WebView's own viewport — which is what CDP takes — so
43
+ * `devicePixelRatio` never enters the picture.
44
+ *
45
+ * @param params - The viewport coordinates to click at, the button to press and any modifiers to hold.
46
+ * @returns A {@link Promise} that resolves once the click has been injected.
47
+ */
48
+ export declare function clickMouse(params: ClickMouseParams): Promise<void>;
49
+ /**
50
+ * Always throws: `:hover` has no touch equivalent.
51
+ *
52
+ * A silent no-op here would let a hover test pass on a phone without hovering anything, so the mobile arm
53
+ * refuses instead. Gate the assertion on `Platform.isDesktopApp`, or drive the element with
54
+ * {@link clickElement}.
55
+ *
56
+ * @param params - The element to hover.
57
+ * @returns A {@link Promise} that never resolves — the call throws.
58
+ */
59
+ export declare function hoverElement(params: HoverElementParams): Promise<void>;
60
+ /**
61
+ * Always throws: a touch screen has no persistent pointer to move.
62
+ *
63
+ * @param params - The viewport coordinates to move to.
64
+ * @returns A {@link Promise} that never resolves — the call throws.
65
+ */
66
+ export declare function moveMouse(params: MoveMouseParams): Promise<void>;
67
+ /**
68
+ * Presses a single key using **trusted** keyboard input, injected by the host over CDP.
69
+ *
70
+ * Named keys (`'Enter'`, `'Escape'`, `'Tab'`, `'Backspace'`, `'Delete'`, the arrows) and single printable
71
+ * characters are supported; anything else throws rather than pressing nothing.
72
+ *
73
+ * @param params - The key to press and any modifiers to hold.
74
+ * @returns A {@link Promise} that resolves once the key press has been injected.
75
+ */
76
+ export declare function pressKey(params: PressKeyParams): Promise<void>;
77
+ /**
78
+ * Types text into a CodeMirror editor using **trusted** keyboard input, injected by the host over CDP.
79
+ *
80
+ * Focuses the editor (caret to the end), presses every code point of the text, then polls until the
81
+ * document reflects the input or a bounded timeout elapses.
82
+ *
83
+ * @param params - The editor to type into and the text to type.
84
+ * @returns A {@link Promise} that resolves once the keystrokes have settled.
85
+ */
86
+ export declare function typeIntoEditor(params: TypeIntoEditorParams): Promise<void>;
87
+ /**
88
+ * Always throws, for the same reason as {@link hoverElement}: there is no `:hover` state to clear.
89
+ *
90
+ * @param params - The element to move the pointer away from.
91
+ * @returns A {@link Promise} that never resolves — the call throws.
92
+ */
93
+ export declare function unhoverElement(params: UnhoverElementParams): Promise<void>;
@@ -0,0 +1,84 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function () {
7
+ function ensureBrowserProcess() {
8
+ const browserProcess = {
9
+ browser: true,
10
+ cwd() {
11
+ return '/';
12
+ },
13
+ env: {},
14
+ platform: 'android'
15
+ };
16
+
17
+ // eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
18
+ const existingProcess = globalThis.process;
19
+
20
+ if (!existingProcess) {
21
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
22
+ globalThis.process = browserProcess;
23
+ return;
24
+ }
25
+
26
+ if (existingProcess.versions?.node) {
27
+ return;
28
+ }
29
+
30
+ const existingProcessRecord = existingProcess;
31
+
32
+ for (const [key, value] of Object.entries(browserProcess)) {
33
+ existingProcessRecord[key] ??= value;
34
+ }
35
+
36
+ existingProcessRecord['browser'] = true;
37
+ }
38
+
39
+ (function initEsm() {
40
+ ensureBrowserProcess();
41
+ })();
42
+ })();
43
+
44
+ async function clickElement(params) {
45
+ await getSeamFunction("clickElement")(params);
46
+ }
47
+ async function clickMouse(params) {
48
+ await getSeamFunction("clickMouse")(params);
49
+ }
50
+ async function hoverElement(params) {
51
+ await getSeamFunction("hoverElement")(params);
52
+ }
53
+ async function moveMouse(params) {
54
+ await getSeamFunction("moveMouse")(params);
55
+ }
56
+ async function pressKey(params) {
57
+ await getSeamFunction("pressKey")(params);
58
+ }
59
+ async function typeIntoEditor(params) {
60
+ await getSeamFunction("typeIntoEditor")(params);
61
+ }
62
+ async function unhoverElement(params) {
63
+ await getSeamFunction("unhoverElement")(params);
64
+ }
65
+ function getSeamFunction(name) {
66
+ const holder = globalThis;
67
+ const seamFunction = holder.__obsidianIntegrationTesting?.trustedInput?.[name];
68
+ if (!seamFunction) {
69
+ throw new Error(
70
+ `Trusted input is unavailable on mobile: \`window.__obsidianIntegrationTesting.trustedInput.${name}\` is not installed. A phone has no in-renderer route to a trusted event, so the injection is a round-trip to the host over the \`obsidian-integration-testing\` Appium transport's channel \u2014 which means these helpers only work inside an app that harness bootstrapped.`
71
+ );
72
+ }
73
+ return seamFunction;
74
+ }
75
+ export {
76
+ clickElement,
77
+ clickMouse,
78
+ hoverElement,
79
+ moveMouse,
80
+ pressKey,
81
+ typeIntoEditor,
82
+ unhoverElement
83
+ };
84
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21vYmlsZS10cnVzdGVkLWlucHV0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogTW9iaWxlLW9ubHkgdHJ1c3RlZCBpbnB1dCBoZWxwZXJzLiBUaGVyZSBpcyBubyBpbi1yZW5kZXJlciByb3V0ZSB0byBhIHRydXN0ZWQgZXZlbnQgb24gYSBwaG9uZSBcdTIwMTRcbiAqIGB3ZWJDb250ZW50cy5zZW5kSW5wdXRFdmVudGAgaXMgRWxlY3Ryb24tb25seSBhbmQgYSBkaXNwYXRjaGVkIGV2ZW50IGlzIHVudHJ1c3RlZCBcdTIwMTQgc28gdGhlIGluamVjdGlvblxuICogaGFzIHRvIGJlIGEgcm91bmQtdHJpcDogdGhlIHJlcXVlc3QgZ29lcyB0byB0aGUgaG9zdCBvdmVyIHRoZSBgb2JzaWRpYW4taW50ZWdyYXRpb24tdGVzdGluZ2AgaGFybmVzcydzXG4gKiBiaW5kaW5nIGNoYW5uZWwsIGFuZCB0aGUgaG9zdCBpbmplY3RzIGl0IGludG8gdGhlIFdlYlZpZXcgb3ZlciBDRFAuXG4gKlxuICogVGhhdCBjaGFubmVsIGlzIGluc3RhbGxlZCBieSB0aGUgaGFybmVzcydzIEFwcGl1bSB0cmFuc3BvcnQsIHNvIHRoZXNlIGhlbHBlcnMgKipkZWxlZ2F0ZSoqIHRvIHRoZVxuICogaGFybmVzcyByYXRoZXIgdGhhbiByZWltcGxlbWVudGluZyB0aGUgd2lyZSBmb3JtYXQ6IHRoZXkgY2FsbFxuICogYHdpbmRvdy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nLnRydXN0ZWRJbnB1dC4qYCwgd2hpY2ggaG9sZHMgdGhlIHZlcnkgZnVuY3Rpb24gb2JqZWN0cyB0aGUgaGFybmVzc1xuICogc2VlZHMgaW50byBhbiBgZXZhbEluT2JzaWRpYW5gIGNsb3N1cmUncyBgbGliYCBiYWcuIERlbGVnYXRpbmcgaXMgd2hhdCBrZWVwcyB0aGUgbW9iaWxlIHNlbWFudGljcyBcdTIwMTRcbiAqIHRhcCwgbG9uZy1wcmVzcyBmb3IgYGJ1dHRvbjogJ3JpZ2h0J2AsIGEgdGhyb3cgZm9yIGAnbWlkZGxlJ2AsIHRoZSBgcHJlc3NLZXlgIGtleSBzZXQsIGFuZCB0aGUgdGhyb3dzXG4gKiBmb3IgdGhlIGA6aG92ZXJgIGhlbHBlcnMgXHUyMDE0IGlkZW50aWNhbCB0byB0aGUgaGFybmVzcydzIG93biBjb3B5IGZvciBmcmVlLCBpbnN0ZWFkIG9mIGEgc2Vjb25kXG4gKiBpbXBsZW1lbnRhdGlvbiB0byBoYW5kLXN5bmMgKHNlZSB0aGUgcHJvamVjdCBgQUdFTlRTLm1kYCAqKkw0KiopLlxuICpcbiAqIFRoZSBuYW1lc3BhY2Ugc2hhcGUgaXMgZGVjbGFyZWQgKipsb2NhbGx5Kio6IHRoZSBoYXJuZXNzIG11c3QgbmV2ZXIgYmUgYSBkZXBlbmRlbmN5IG9mIHRoaXMgbGlicmFyeSwgaW5cbiAqIGVpdGhlciBkaXJlY3Rpb24sIGF0IHJ1bnRpbWUgb3IgaW4gdHlwZXMuXG4gKlxuICogKipDb25zZXF1ZW5jZSwgYW5kIGl0IGlzIGRlbGliZXJhdGU6KiogdGhlc2UgaGVscGVycyBvbmx5IHdvcmsgaW5zaWRlIGFuIGFwcCB0aGUgaGFybmVzcyBib290c3RyYXBwZWQuXG4gKiBPdXRzaWRlIG9uZSB0aGV5IHRocm93IGEgbWVzc2FnZSBzYXlpbmcgc28sIHJhdGhlciB0aGFuIHNpbGVudGx5IGRvaW5nIG5vdGhpbmcgXHUyMDE0IGEgbm8tb3Agd291bGQgcmVjcmVhdGVcbiAqIGV4YWN0bHkgdGhlIGZhbHNlLWNvbmZpZGVuY2UgZmFpbHVyZSB0cnVzdGVkIGlucHV0IGV4aXN0cyB0byBlbmQuIENvbnN1bWVycyB3YW50aW5nIHRoZSBwbGF0Zm9ybS1jb3JyZWN0XG4gKiBoZWxwZXIgc2hvdWxkIGltcG9ydCB0aGUge0BsaW5rIC4uL3RydXN0ZWQtaW5wdXQudHMgfCB0cnVzdGVkLWlucHV0fSBmYWNhZGUgaW5zdGVhZCBvZiB0aGlzIG1vZHVsZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIENsaWNrRWxlbWVudFBhcmFtcyxcbiAgQ2xpY2tNb3VzZVBhcmFtcyxcbiAgSG92ZXJFbGVtZW50UGFyYW1zLFxuICBNb3ZlTW91c2VQYXJhbXMsXG4gIFByZXNzS2V5UGFyYW1zLFxuICBUeXBlSW50b0VkaXRvclBhcmFtcyxcbiAgVW5ob3ZlckVsZW1lbnRQYXJhbXNcbiAgLy8gVGhlIHBhcmFtZXRlciBjb250cmFjdHMgbGl2ZSB3aXRoIHRoZSBkZXNrdG9wIHR3aW4gYW5kIGFyZSBzaGFyZWQgdmVyYmF0aW0sIHNvIHRoZSB0d28gcGxhdGZvcm1zXG4gIC8vIENhbm5vdCBkcmlmdCBhcGFydCBvbiB3aGF0IGEgY2FsbGVyIHBhc3Nlcy4gQSB0eXBlLW9ubHkgaW1wb3J0IGxvYWRzIG5vdGhpbmcgKEw1KS5cbn0gZnJvbSAnLi9kZXNrdG9wLXRydXN0ZWQtaW5wdXQudHMnO1xuXG4vKipcbiAqIFRoZSBnbG9iYWwgdGhlIGhhcm5lc3MgYm9vdHN0cmFwcyBpdHMgbmFtZXNwYWNlIG9udG8uXG4gKi9cbmludGVyZmFjZSBPYnNpZGlhbkludGVncmF0aW9uVGVzdGluZ0hvbGRlciB7XG4gIF9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3Rpbmc6IE9ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nTmFtZXNwYWNlO1xufVxuXG4vKipcbiAqIFRoZSBwYXJ0IG9mIHRoZSBoYXJuZXNzIG5hbWVzcGFjZSB0aGlzIG1vZHVsZSByZWFkcy4gRXZlcnl0aGluZyBlbHNlIG9uIGl0IGlzIG5vbmUgb2YgdGhpcyBtb2R1bGUnc1xuICogYnVzaW5lc3MuXG4gKi9cbmludGVyZmFjZSBPYnNpZGlhbkludGVncmF0aW9uVGVzdGluZ05hbWVzcGFjZSB7XG4gIHRydXN0ZWRJbnB1dD86IFBhcnRpYWw8VHJ1c3RlZElucHV0U2VhbT47XG59XG5cbi8qKlxuICogVGhlIHRydXN0ZWQtaW5wdXQgc2VhbSB0aGUgYG9ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmdgIGhhcm5lc3MgcHVibGlzaGVzIG9uIGl0cyBuYW1lc3BhY2UuXG4gKlxuICogRGVjbGFyZWQgaGVyZSByYXRoZXIgdGhhbiBpbXBvcnRlZDogdGhlIGhhcm5lc3MgaXMgbm90IGEgZGVwZW5kZW5jeSBvZiB0aGlzIGxpYnJhcnkuIEl0IG1pcnJvcnNcbiAqIGBuYW1lc3BhY2UtYm9vdHN0cmFwLnRzYCdzIGB0cnVzdGVkSW5wdXRgIG9iamVjdCwgYW5kIHRoZSBtaXJyb3JpbmcgaXMgYnkgaGFuZCBcdTIwMTQgdGhlIHNhbWVcbiAqIGJlaGF2aW9yYWwtc3luYyBvYmxpZ2F0aW9uIHRoZSBkZXNrdG9wIHR3aW4gY2Fycmllcy5cbiAqL1xuaW50ZXJmYWNlIFRydXN0ZWRJbnB1dFNlYW0ge1xuICBjbGlja0VsZW1lbnQocGFyYW1zOiBDbGlja0VsZW1lbnRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+O1xuICBjbGlja01vdXNlKHBhcmFtczogQ2xpY2tNb3VzZVBhcmFtcyk6IFByb21pc2U8dm9pZD47XG4gIGhvdmVyRWxlbWVudChwYXJhbXM6IEhvdmVyRWxlbWVudFBhcmFtcyk6IFByb21pc2U8dm9pZD47XG4gIG1vdmVNb3VzZShwYXJhbXM6IE1vdmVNb3VzZVBhcmFtcyk6IFByb21pc2U8dm9pZD47XG4gIHByZXNzS2V5KHBhcmFtczogUHJlc3NLZXlQYXJhbXMpOiBQcm9taXNlPHZvaWQ+O1xuICB0eXBlSW50b0VkaXRvcihwYXJhbXM6IFR5cGVJbnRvRWRpdG9yUGFyYW1zKTogUHJvbWlzZTx2b2lkPjtcbiAgdW5ob3ZlckVsZW1lbnQocGFyYW1zOiBVbmhvdmVyRWxlbWVudFBhcmFtcyk6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogQ2xpY2tzIHRoZSBjZW50ZXIgb2YgYW4gZWxlbWVudCB1c2luZyAqKnRydXN0ZWQqKiB0b3VjaCBpbnB1dCBcdTIwMTQgYSBDRFAgdGFwIGluIHRoZSBXZWJWaWV3LCBpbmplY3RlZCBieVxuICogdGhlIGhvc3QuXG4gKlxuICogVGhlIGVsZW1lbnQtcmVsYXRpdmUgY291bnRlcnBhcnQgb2Yge0BsaW5rIGNsaWNrTW91c2V9LiBgYnV0dG9uOiAncmlnaHQnYCBpcyB0aGUgbG9uZy1wcmVzcyB0aGF0IG9wZW5zXG4gKiBPYnNpZGlhbiBNb2JpbGUncyBjb250ZXh0IG1lbnU7IGAnbWlkZGxlJ2AgdGhyb3dzLCBiZWNhdXNlIHRvdWNoIGhhcyBubyBnZXN0dXJlIGZvciBpdCBhbmQgaW52ZW50aW5nXG4gKiBvbmUgd291bGQgYmUgd29yc2UgdGhhbiBzYXlpbmcgc28uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBlbGVtZW50IHRvIGNsaWNrLCB0aGUgYnV0dG9uIHRvIHByZXNzIGFuZCBhbnkgbW9kaWZpZXJzIHRvIGhvbGQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgdGhlIGNsaWNrIGhhcyBiZWVuIGluamVjdGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2xpY2tFbGVtZW50KHBhcmFtczogQ2xpY2tFbGVtZW50UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGdldFNlYW1GdW5jdGlvbignY2xpY2tFbGVtZW50JykocGFyYW1zKTtcbn1cblxuLyoqXG4gKiBDbGlja3MgYXQgdGhlIGdpdmVuIHZpZXdwb3J0IGNvb3JkaW5hdGVzIHVzaW5nICoqdHJ1c3RlZCoqIHRvdWNoIGlucHV0LCBpbmplY3RlZCBieSB0aGUgaG9zdCBvdmVyIENEUC5cbiAqXG4gKiBUaGUgY29vcmRpbmF0ZXMgYXJlIENTUyBwaXhlbHMgaW4gdGhlIFdlYlZpZXcncyBvd24gdmlld3BvcnQgXHUyMDE0IHdoaWNoIGlzIHdoYXQgQ0RQIHRha2VzIFx1MjAxNCBzb1xuICogYGRldmljZVBpeGVsUmF0aW9gIG5ldmVyIGVudGVycyB0aGUgcGljdHVyZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHZpZXdwb3J0IGNvb3JkaW5hdGVzIHRvIGNsaWNrIGF0LCB0aGUgYnV0dG9uIHRvIHByZXNzIGFuZCBhbnkgbW9kaWZpZXJzIHRvIGhvbGQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgdGhlIGNsaWNrIGhhcyBiZWVuIGluamVjdGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2xpY2tNb3VzZShwYXJhbXM6IENsaWNrTW91c2VQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZ2V0U2VhbUZ1bmN0aW9uKCdjbGlja01vdXNlJykocGFyYW1zKTtcbn1cblxuLyoqXG4gKiBBbHdheXMgdGhyb3dzOiBgOmhvdmVyYCBoYXMgbm8gdG91Y2ggZXF1aXZhbGVudC5cbiAqXG4gKiBBIHNpbGVudCBuby1vcCBoZXJlIHdvdWxkIGxldCBhIGhvdmVyIHRlc3QgcGFzcyBvbiBhIHBob25lIHdpdGhvdXQgaG92ZXJpbmcgYW55dGhpbmcsIHNvIHRoZSBtb2JpbGUgYXJtXG4gKiByZWZ1c2VzIGluc3RlYWQuIEdhdGUgdGhlIGFzc2VydGlvbiBvbiBgUGxhdGZvcm0uaXNEZXNrdG9wQXBwYCwgb3IgZHJpdmUgdGhlIGVsZW1lbnQgd2l0aFxuICoge0BsaW5rIGNsaWNrRWxlbWVudH0uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBlbGVtZW50IHRvIGhvdmVyLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCBuZXZlciByZXNvbHZlcyBcdTIwMTQgdGhlIGNhbGwgdGhyb3dzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaG92ZXJFbGVtZW50KHBhcmFtczogSG92ZXJFbGVtZW50UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGdldFNlYW1GdW5jdGlvbignaG92ZXJFbGVtZW50JykocGFyYW1zKTtcbn1cblxuLyoqXG4gKiBBbHdheXMgdGhyb3dzOiBhIHRvdWNoIHNjcmVlbiBoYXMgbm8gcGVyc2lzdGVudCBwb2ludGVyIHRvIG1vdmUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB2aWV3cG9ydCBjb29yZGluYXRlcyB0byBtb3ZlIHRvLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCBuZXZlciByZXNvbHZlcyBcdTIwMTQgdGhlIGNhbGwgdGhyb3dzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbW92ZU1vdXNlKHBhcmFtczogTW92ZU1vdXNlUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGdldFNlYW1GdW5jdGlvbignbW92ZU1vdXNlJykocGFyYW1zKTtcbn1cblxuLyoqXG4gKiBQcmVzc2VzIGEgc2luZ2xlIGtleSB1c2luZyAqKnRydXN0ZWQqKiBrZXlib2FyZCBpbnB1dCwgaW5qZWN0ZWQgYnkgdGhlIGhvc3Qgb3ZlciBDRFAuXG4gKlxuICogTmFtZWQga2V5cyAoYCdFbnRlcidgLCBgJ0VzY2FwZSdgLCBgJ1RhYidgLCBgJ0JhY2tzcGFjZSdgLCBgJ0RlbGV0ZSdgLCB0aGUgYXJyb3dzKSBhbmQgc2luZ2xlIHByaW50YWJsZVxuICogY2hhcmFjdGVycyBhcmUgc3VwcG9ydGVkOyBhbnl0aGluZyBlbHNlIHRocm93cyByYXRoZXIgdGhhbiBwcmVzc2luZyBub3RoaW5nLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUga2V5IHRvIHByZXNzIGFuZCBhbnkgbW9kaWZpZXJzIHRvIGhvbGQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgdGhlIGtleSBwcmVzcyBoYXMgYmVlbiBpbmplY3RlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByZXNzS2V5KHBhcmFtczogUHJlc3NLZXlQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZ2V0U2VhbUZ1bmN0aW9uKCdwcmVzc0tleScpKHBhcmFtcyk7XG59XG5cbi8qKlxuICogVHlwZXMgdGV4dCBpbnRvIGEgQ29kZU1pcnJvciBlZGl0b3IgdXNpbmcgKip0cnVzdGVkKioga2V5Ym9hcmQgaW5wdXQsIGluamVjdGVkIGJ5IHRoZSBob3N0IG92ZXIgQ0RQLlxuICpcbiAqIEZvY3VzZXMgdGhlIGVkaXRvciAoY2FyZXQgdG8gdGhlIGVuZCksIHByZXNzZXMgZXZlcnkgY29kZSBwb2ludCBvZiB0aGUgdGV4dCwgdGhlbiBwb2xscyB1bnRpbCB0aGVcbiAqIGRvY3VtZW50IHJlZmxlY3RzIHRoZSBpbnB1dCBvciBhIGJvdW5kZWQgdGltZW91dCBlbGFwc2VzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgZWRpdG9yIHRvIHR5cGUgaW50byBhbmQgdGhlIHRleHQgdG8gdHlwZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUga2V5c3Ryb2tlcyBoYXZlIHNldHRsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0eXBlSW50b0VkaXRvcihwYXJhbXM6IFR5cGVJbnRvRWRpdG9yUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGdldFNlYW1GdW5jdGlvbigndHlwZUludG9FZGl0b3InKShwYXJhbXMpO1xufVxuXG4vKipcbiAqIEFsd2F5cyB0aHJvd3MsIGZvciB0aGUgc2FtZSByZWFzb24gYXMge0BsaW5rIGhvdmVyRWxlbWVudH06IHRoZXJlIGlzIG5vIGA6aG92ZXJgIHN0YXRlIHRvIGNsZWFyLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgZWxlbWVudCB0byBtb3ZlIHRoZSBwb2ludGVyIGF3YXkgZnJvbS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgbmV2ZXIgcmVzb2x2ZXMgXHUyMDE0IHRoZSBjYWxsIHRocm93cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVuaG92ZXJFbGVtZW50KHBhcmFtczogVW5ob3ZlckVsZW1lbnRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZ2V0U2VhbUZ1bmN0aW9uKCd1bmhvdmVyRWxlbWVudCcpKHBhcmFtcyk7XG59XG5cbmZ1bmN0aW9uIGdldFNlYW1GdW5jdGlvbjxLZXkgZXh0ZW5kcyBrZXlvZiBUcnVzdGVkSW5wdXRTZWFtPihuYW1lOiBLZXkpOiBUcnVzdGVkSW5wdXRTZWFtW0tleV0ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW5tZC9uby1nbG9iYWwtdGhpcyAtLSBUaGUgaGFybmVzcyBpbnN0YWxscyBpdHMgbmFtZXNwYWNlIG9uIHRoZSByZWFsbSBnbG9iYWw7IHRoZXJlIGlzIG5vd2hlcmUgZWxzZSB0byByZWFkIGl0IGZyb20uXG4gIGNvbnN0IGhvbGRlciA9IGdsb2JhbFRoaXMgYXMgUGFydGlhbDxPYnNpZGlhbkludGVncmF0aW9uVGVzdGluZ0hvbGRlcj47XG4gIGNvbnN0IHNlYW1GdW5jdGlvbiA9IGhvbGRlci5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nPy50cnVzdGVkSW5wdXQ/LltuYW1lXTtcbiAgaWYgKCFzZWFtRnVuY3Rpb24pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVHJ1c3RlZCBpbnB1dCBpcyB1bmF2YWlsYWJsZSBvbiBtb2JpbGU6IFxcYHdpbmRvdy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nLnRydXN0ZWRJbnB1dC4ke25hbWV9XFxgIGlzIG5vdCBpbnN0YWxsZWQuIGBcbiAgICAgICAgKyAnQSBwaG9uZSBoYXMgbm8gaW4tcmVuZGVyZXIgcm91dGUgdG8gYSB0cnVzdGVkIGV2ZW50LCBzbyB0aGUgaW5qZWN0aW9uIGlzIGEgcm91bmQtdHJpcCB0byB0aGUgaG9zdCBvdmVyIHRoZSAnXG4gICAgICAgICsgJ2BvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nYCBBcHBpdW0gdHJhbnNwb3J0XFwncyBjaGFubmVsIFx1MjAxNCB3aGljaCBtZWFucyB0aGVzZSBoZWxwZXJzIG9ubHkgd29yayBpbnNpZGUgYW4gYXBwIHRoYXQgJ1xuICAgICAgICArICdoYXJuZXNzIGJvb3RzdHJhcHBlZC4nXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBzZWFtRnVuY3Rpb247XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0ZBLGVBQXNCLGFBQWEsUUFBMkM7QUFDNUUsUUFBTSxnQkFBZ0IsY0FBYyxFQUFFLE1BQU07QUFDOUM7QUFXQSxlQUFzQixXQUFXLFFBQXlDO0FBQ3hFLFFBQU0sZ0JBQWdCLFlBQVksRUFBRSxNQUFNO0FBQzVDO0FBWUEsZUFBc0IsYUFBYSxRQUEyQztBQUM1RSxRQUFNLGdCQUFnQixjQUFjLEVBQUUsTUFBTTtBQUM5QztBQVFBLGVBQXNCLFVBQVUsUUFBd0M7QUFDdEUsUUFBTSxnQkFBZ0IsV0FBVyxFQUFFLE1BQU07QUFDM0M7QUFXQSxlQUFzQixTQUFTLFFBQXVDO0FBQ3BFLFFBQU0sZ0JBQWdCLFVBQVUsRUFBRSxNQUFNO0FBQzFDO0FBV0EsZUFBc0IsZUFBZSxRQUE2QztBQUNoRixRQUFNLGdCQUFnQixnQkFBZ0IsRUFBRSxNQUFNO0FBQ2hEO0FBUUEsZUFBc0IsZUFBZSxRQUE2QztBQUNoRixRQUFNLGdCQUFnQixnQkFBZ0IsRUFBRSxNQUFNO0FBQ2hEO0FBRUEsU0FBUyxnQkFBb0QsTUFBa0M7QUFFN0YsUUFBTSxTQUFTO0FBQ2YsUUFBTSxlQUFlLE9BQU8sOEJBQThCLGVBQWUsSUFBSTtBQUM3RSxNQUFJLENBQUMsY0FBYztBQUNqQixVQUFNLElBQUk7QUFBQSxNQUNSLDhGQUE4RixJQUFJO0FBQUEsSUFJcEc7QUFBQSxFQUNGO0FBRUEsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -113,6 +113,10 @@ export declare enum ObsidianPluginRepoPaths {
113
113
  */
114
114
  HotReload = ".hotreload",
115
115
  /**
116
+ License file.
117
+ */
118
+ License = "LICENSE",
119
+ /**
116
120
  Main CSS file.
117
121
  */
118
122
  MainCss = "main.css",
@@ -68,6 +68,7 @@ var ObsidianPluginRepoPaths = /* @__PURE__ */ ((ObsidianPluginRepoPaths2) => {
68
68
  ObsidianPluginRepoPaths2["EslintConfigMts"] = "eslint.config.mts";
69
69
  ObsidianPluginRepoPaths2["EslintConfigTs"] = "eslint.config.ts";
70
70
  ObsidianPluginRepoPaths2["HotReload"] = ".hotreload";
71
+ ObsidianPluginRepoPaths2["License"] = "LICENSE";
71
72
  ObsidianPluginRepoPaths2["MainCss"] = "main.css";
72
73
  ObsidianPluginRepoPaths2["MainJs"] = "main.js";
73
74
  ObsidianPluginRepoPaths2["MainTs"] = "main.ts";
@@ -102,4 +103,4 @@ var ObsidianPluginRepoPaths = /* @__PURE__ */ ((ObsidianPluginRepoPaths2) => {
102
103
  export {
103
104
  ObsidianPluginRepoPaths
104
105
  };
105
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIGFuIGVudW1lcmF0aW9uIGZvciBjb21tb24gZmlsZSBhbmQgZm9sZGVyIHBhdGhzIHVzZWQgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5cbi8qKlxuICogRW51bWVyYXRpb24gb2YgY29tbW9ubHkgdXNlZCBmaWxlIGFuZCBmb2xkZXIgcGF0aHMgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5leHBvcnQgZW51bSBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB7XG4gIC8qKlxuICBBbnkgQW5kcm9pZCBjYXB0dXJlIGludGVncmF0aW9uLXRlc3QgVHlwZVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55QW5kcm9pZENhcHR1cmVJbnRlZ3JhdGlvblRlc3RUcyA9ICcqLmFuZHJvaWQtY2FwdHVyZS5pbnRlZ3JhdGlvbi50ZXN0LnRzJyxcblxuICAvKipcbiAgQW55IEFuZHJvaWQgaW50ZWdyYXRpb24tdGVzdCBUeXBlU2NyaXB0IGZpbGUuXG4gICAqL1xuICBBbnlBbmRyb2lkSW50ZWdyYXRpb25UZXN0VHMgPSAnKi5hbmRyb2lkLmludGVncmF0aW9uLnRlc3QudHMnLFxuXG4gIC8qKlxuICBDb21tb25KUyBmaWxlLlxuICAgKi9cbiAgQW55Q2pzID0gJyouY2pzJyxcblxuICAvKipcbiAgQW55IGludGVncmF0aW9uLXRlc3QgVHlwZVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55SW50ZWdyYXRpb25UZXN0VHMgPSAnKi5pbnRlZ3JhdGlvbi50ZXN0LnRzJyxcblxuICAvKipcbiAgSmF2YVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55SnMgPSAnKi5qcycsXG5cbiAgLyoqXG4gIEVTTSBKYXZhU2NyaXB0IGZpbGUuXG4gICAqL1xuICBBbnlNanMgPSAnKi5tanMnLFxuXG4gIC8qKlxuICBBbnkgcGF0aCByZWN1cnNpdmVseS5cbiAgICovXG4gIEFueVBhdGggPSAnKionLFxuXG4gIC8qKlxuICBBbnkgdGVzdCBUeXBlU2NyaXB0IGZpbGUuXG4gICAqL1xuICBBbnlUZXN0VHMgPSAnKi50ZXN0LnRzJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55VHMgPSAnKi50cycsXG5cbiAgLyoqXG4gIFJlYWN0SlMgVHlwZVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55VHN4ID0gJyoudHN4JyxcblxuICAvKipcbiAgT2JzaWRpYW4gYXBwbGljYXRpb24gc2V0dGluZ3MgZmlsZSB3aXRoaW4gYW4gT2JzaWRpYW4gY29uZmlndXJhdGlvbiBmb2xkZXIuXG4gICAqL1xuICBBcHBKc29uID0gJ2FwcC5qc29uJyxcblxuICAvKipcbiAgQ2hhbmdlbG9nIGZpbGUuXG4gICAqL1xuICBDaGFuZ2Vsb2dNZCA9ICdDSEFOR0VMT0cubWQnLFxuXG4gIC8qKlxuICBDb21taXRsaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIENvbW1pdGxpbnRDb25maWdUcyA9ICdjb21taXRsaW50LmNvbmZpZy50cycsXG5cbiAgLyoqXG4gIEN1cnJlbnQgZm9sZGVyLlxuICAgKi9cbiAgQ3VycmVudEZvbGRlciA9ICcuJyxcblxuICAvKipcbiAgRGVtbyB2YXVsdCBmb2xkZXIgc2hpcHBlZCBpbiBhIHBsdWdpbiByZXBvIHJvb3QuXG4gICAqL1xuICBEZW1vVmF1bHQgPSAnZGVtby12YXVsdCcsXG5cbiAgLyoqXG4gIERpc3RyaWJ1dGlvbiBmb2xkZXIuXG4gICAqL1xuICBEaXN0ID0gJ2Rpc3QnLFxuXG4gIC8qKlxuICBCdWlsZCBmb2xkZXIgd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLlxuICAgKi9cbiAgRGlzdEJ1aWxkID0gJ2Rpc3QvYnVpbGQnLFxuXG4gIC8qKlxuICBEZXZlbG9wbWVudCBmb2xkZXIgd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLlxuICAgKi9cbiAgRGlzdERldiA9ICdkaXN0L2RldicsXG5cbiAgLyoqXG4gIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24gZm9sZGVyIHdpdGhpbiBhIHZhdWx0LlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFubWQvaGFyZGNvZGVkLWNvbmZpZy1wYXRoIC0tIFRoaXMgaXMgdGhlIGRlZmF1bHQgY29uZmlnIGZvbGRlciBuYW1lIGJha2VkIGludG8gYSBzaGlwcGVkIGRlbW8tdmF1bHQgc2tlbGV0b24sIG5vdCBhIGxvb2t1cCBhZ2FpbnN0IGEgbGl2ZSB2YXVsdC5cbiAgRG90T2JzaWRpYW4gPSAnLm9ic2lkaWFuJyxcblxuICAvKipcbiAgQ29tbW9uSlMgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ0NqcyA9ICdlc2xpbnQuY29uZmlnLmNqcycsXG5cbiAgLyoqXG4gIENvbW1vbkpTIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ0N0cyA9ICdlc2xpbnQuY29uZmlnLmN0cycsXG5cbiAgLyoqXG4gIEphdmFTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ0pzID0gJ2VzbGludC5jb25maWcuanMnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBFU0xpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgRXNsaW50Q29uZmlnTWpzID0gJ2VzbGludC5jb25maWcubWpzJyxcblxuICAvKipcbiAgRVNNIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqXG4gIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ1RzID0gJ2VzbGludC5jb25maWcudHMnLFxuXG4gIC8qKlxuICBIb3QgcmVsb2FkIGZpbGUuXG4gICAqL1xuICBIb3RSZWxvYWQgPSAnLmhvdHJlbG9hZCcsXG5cbiAgLyoqXG4gIE1haW4gQ1NTIGZpbGUuXG4gICAqL1xuICBNYWluQ3NzID0gJ21haW4uY3NzJyxcblxuICAvKipcbiAgTWFpbiBKYXZhU2NyaXB0IGZpbGUuXG4gICAqL1xuICBNYWluSnMgPSAnbWFpbi5qcycsXG5cbiAgLyoqXG4gIE1haW4gVHlwZVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgTWFpblRzID0gJ21haW4udHMnLFxuXG4gIC8qKlxuICBNYW5pZmVzdCBmaWxlIGZvciBiZXRhIHJlbGVhc2VzLlxuICAgKi9cbiAgTWFuaWZlc3RCZXRhSnNvbiA9ICdtYW5pZmVzdC1iZXRhLmpzb24nLFxuXG4gIC8qKlxuICBNYW5pZmVzdCBmaWxlLlxuICAgKi9cbiAgTWFuaWZlc3RKc29uID0gJ21hbmlmZXN0Lmpzb24nLFxuXG4gIC8qKlxuICBDb21tb25KUyBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnQ2pzID0gJy5tYXJrZG93bmxpbnQtY2xpMi5janMnLFxuXG4gIC8qKlxuICBKU09OQyBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnSnNvbmMgPSAnLm1hcmtkb3dubGludC1jbGkyLmpzb25jJyxcblxuICAvKipcbiAgRVNNIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIE1hcmtkb3dubGludENsaTJDb25maWdNanMgPSAnLm1hcmtkb3dubGludC1jbGkyLm1qcycsXG5cbiAgLyoqXG4gIFlBTUwgTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ1lhbWwgPSAnLm1hcmtkb3dubGludC1jbGkyLnlhbWwnLFxuXG4gIC8qKlxuICBDb21tb25KUyBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnQ2pzID0gJy5tYXJrZG93bmxpbnQuY2pzJyxcblxuICAvKipcbiAgSlNPTiBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnSnNvbiA9ICcubWFya2Rvd25saW50Lmpzb24nLFxuXG4gIC8qKlxuICBKU09OQyBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnSnNvbmMgPSAnLm1hcmtkb3dubGludC5qc29uYycsXG5cbiAgLyoqXG4gIEVTTSBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnTWpzID0gJy5tYXJrZG93bmxpbnQubWpzJyxcblxuICAvKipcbiAgWUFNTCBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnWWFtbCA9ICcubWFya2Rvd25saW50LnlhbWwnLFxuXG4gIC8qKlxuICBZQU1MIE1hcmtkb3dubGludCBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBNYXJrZG93bmxpbnRDb25maWdZbWwgPSAnLm1hcmtkb3dubGludC55bWwnLFxuXG4gIC8qKlxuICBNb2NrcyBmb2xkZXIuXG4gICAqL1xuICBNb2NrcyA9ICdzcmMvdGVzdC1oZWxwZXJzJyxcblxuICAvKipcbiAgTm9kZSBtb2R1bGVzIGZvbGRlci5cbiAgICovXG4gIE5vZGVNb2R1bGVzID0gJ25vZGVfbW9kdWxlcycsXG5cbiAgLyoqXG4gIE5QTSBzaHJpbmt3cmFwIGZpbGUuXG4gICAqL1xuICBOcG1TaHJpbmt3cmFwSnNvbiA9ICducG0tc2hyaW5rd3JhcC5qc29uJyxcblxuICAvKipcbiAgUGFja2FnZSBKU09OIGZpbGUuXG4gICAqL1xuICBQYWNrYWdlSnNvbiA9ICdwYWNrYWdlLmpzb24nLFxuXG4gIC8qKlxuICBQYWNrYWdlLWxvY2sgSlNPTiBmaWxlLlxuICAgKi9cbiAgUGFja2FnZUxvY2tKc29uID0gJ3BhY2thZ2UtbG9jay5qc29uJyxcblxuICAvKipcbiAgUGx1Z2lucyBmb2xkZXIgd2l0aGluIGFuIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24gZm9sZGVyLlxuICAgKi9cbiAgUGx1Z2lucyA9ICdwbHVnaW5zJyxcblxuICAvKipcbiAgU2NyaXB0cyBmb2xkZXIuXG4gICAqL1xuICBTY3JpcHRzID0gJ3NjcmlwdHMnLFxuXG4gIC8qKlxuICBTY3JpcHQgdXRpbGl0aWVzIGZvbGRlciAoZGV2LW9ubHkgdG9vbGluZyB0aGF0IHJ1bnMgaW4gdGhlIGNvbnN1bWVyJ3MgTm9kZSBlbnZpcm9ubWVudCwgbm90IHRoZSBPYnNpZGlhbiBydW50aW1lKS5cbiAgICovXG4gIFNjcmlwdFV0aWxzID0gJ3NyYy9zY3JpcHQtdXRpbHMnLFxuXG4gIC8qKlxuICBTb3VyY2UgZm9sZGVyLlxuICAgKi9cbiAgU3JjID0gJ3NyYycsXG5cbiAgLyoqXG4gIFN0eWxlcyBDU1MgZmlsZS5cbiAgICovXG4gIFN0eWxlc0NzcyA9ICdzdHlsZXMuY3NzJyxcblxuICAvKipcbiAgVGVzdHMgZm9sZGVyLlxuICAgKi9cbiAgVGVzdHMgPSAnX190ZXN0c19fJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBUc0NvbmZpZ0pzb24gPSAndHNjb25maWcuanNvbicsXG5cbiAgLyoqXG4gIFZlcnNpb25zIEpTT04gZmlsZS5cbiAgICovXG4gIFZlcnNpb25zSnNvbiA9ICd2ZXJzaW9ucy5qc29uJyxcblxuICAvKipcbiAgVml0ZXN0IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIFZpdGVzdENvbmZpZ1RzID0gJ3ZpdGVzdC5jb25maWcudHMnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU08sSUFBSywwQkFBTCxrQkFBS0EsNkJBQUw7QUFJTCxFQUFBQSx5QkFBQSx3Q0FBcUM7QUFLckMsRUFBQUEseUJBQUEsaUNBQThCO0FBSzlCLEVBQUFBLHlCQUFBLFlBQVM7QUFLVCxFQUFBQSx5QkFBQSwwQkFBdUI7QUFLdkIsRUFBQUEseUJBQUEsV0FBUTtBQUtSLEVBQUFBLHlCQUFBLFlBQVM7QUFLVCxFQUFBQSx5QkFBQSxhQUFVO0FBS1YsRUFBQUEseUJBQUEsZUFBWTtBQUtaLEVBQUFBLHlCQUFBLFdBQVE7QUFLUixFQUFBQSx5QkFBQSxZQUFTO0FBS1QsRUFBQUEseUJBQUEsYUFBVTtBQUtWLEVBQUFBLHlCQUFBLGlCQUFjO0FBS2QsRUFBQUEseUJBQUEsd0JBQXFCO0FBS3JCLEVBQUFBLHlCQUFBLG1CQUFnQjtBQUtoQixFQUFBQSx5QkFBQSxlQUFZO0FBS1osRUFBQUEseUJBQUEsVUFBTztBQUtQLEVBQUFBLHlCQUFBLGVBQVk7QUFLWixFQUFBQSx5QkFBQSxhQUFVO0FBTVYsRUFBQUEseUJBQUEsaUJBQWM7QUFLZCxFQUFBQSx5QkFBQSxxQkFBa0I7QUFLbEIsRUFBQUEseUJBQUEscUJBQWtCO0FBS2xCLEVBQUFBLHlCQUFBLG9CQUFpQjtBQUtqQixFQUFBQSx5QkFBQSxxQkFBa0I7QUFLbEIsRUFBQUEseUJBQUEscUJBQWtCO0FBS2xCLEVBQUFBLHlCQUFBLG9CQUFpQjtBQUtqQixFQUFBQSx5QkFBQSxlQUFZO0FBS1osRUFBQUEseUJBQUEsYUFBVTtBQUtWLEVBQUFBLHlCQUFBLFlBQVM7QUFLVCxFQUFBQSx5QkFBQSxZQUFTO0FBS1QsRUFBQUEseUJBQUEsc0JBQW1CO0FBS25CLEVBQUFBLHlCQUFBLGtCQUFlO0FBS2YsRUFBQUEseUJBQUEsK0JBQTRCO0FBSzVCLEVBQUFBLHlCQUFBLGlDQUE4QjtBQUs5QixFQUFBQSx5QkFBQSwrQkFBNEI7QUFLNUIsRUFBQUEseUJBQUEsZ0NBQTZCO0FBSzdCLEVBQUFBLHlCQUFBLDJCQUF3QjtBQUt4QixFQUFBQSx5QkFBQSw0QkFBeUI7QUFLekIsRUFBQUEseUJBQUEsNkJBQTBCO0FBSzFCLEVBQUFBLHlCQUFBLDJCQUF3QjtBQUt4QixFQUFBQSx5QkFBQSw0QkFBeUI7QUFLekIsRUFBQUEseUJBQUEsMkJBQXdCO0FBS3hCLEVBQUFBLHlCQUFBLFdBQVE7QUFLUixFQUFBQSx5QkFBQSxpQkFBYztBQUtkLEVBQUFBLHlCQUFBLHVCQUFvQjtBQUtwQixFQUFBQSx5QkFBQSxpQkFBYztBQUtkLEVBQUFBLHlCQUFBLHFCQUFrQjtBQUtsQixFQUFBQSx5QkFBQSxhQUFVO0FBS1YsRUFBQUEseUJBQUEsYUFBVTtBQUtWLEVBQUFBLHlCQUFBLGlCQUFjO0FBS2QsRUFBQUEseUJBQUEsU0FBTTtBQUtOLEVBQUFBLHlCQUFBLGVBQVk7QUFLWixFQUFBQSx5QkFBQSxXQUFRO0FBS1IsRUFBQUEseUJBQUEsa0JBQWU7QUFLZixFQUFBQSx5QkFBQSxrQkFBZTtBQUtmLEVBQUFBLHlCQUFBLG9CQUFpQjtBQW5SUCxTQUFBQTtBQUFBLEdBQUE7IiwKICAibmFtZXMiOiBbIk9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIl0KfQo=
106
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIGFuIGVudW1lcmF0aW9uIGZvciBjb21tb24gZmlsZSBhbmQgZm9sZGVyIHBhdGhzIHVzZWQgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5cbi8qKlxuICogRW51bWVyYXRpb24gb2YgY29tbW9ubHkgdXNlZCBmaWxlIGFuZCBmb2xkZXIgcGF0aHMgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5leHBvcnQgZW51bSBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB7XG4gIC8qKlxuICBBbnkgQW5kcm9pZCBjYXB0dXJlIGludGVncmF0aW9uLXRlc3QgVHlwZVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55QW5kcm9pZENhcHR1cmVJbnRlZ3JhdGlvblRlc3RUcyA9ICcqLmFuZHJvaWQtY2FwdHVyZS5pbnRlZ3JhdGlvbi50ZXN0LnRzJyxcblxuICAvKipcbiAgQW55IEFuZHJvaWQgaW50ZWdyYXRpb24tdGVzdCBUeXBlU2NyaXB0IGZpbGUuXG4gICAqL1xuICBBbnlBbmRyb2lkSW50ZWdyYXRpb25UZXN0VHMgPSAnKi5hbmRyb2lkLmludGVncmF0aW9uLnRlc3QudHMnLFxuXG4gIC8qKlxuICBDb21tb25KUyBmaWxlLlxuICAgKi9cbiAgQW55Q2pzID0gJyouY2pzJyxcblxuICAvKipcbiAgQW55IGludGVncmF0aW9uLXRlc3QgVHlwZVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55SW50ZWdyYXRpb25UZXN0VHMgPSAnKi5pbnRlZ3JhdGlvbi50ZXN0LnRzJyxcblxuICAvKipcbiAgSmF2YVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55SnMgPSAnKi5qcycsXG5cbiAgLyoqXG4gIEVTTSBKYXZhU2NyaXB0IGZpbGUuXG4gICAqL1xuICBBbnlNanMgPSAnKi5tanMnLFxuXG4gIC8qKlxuICBBbnkgcGF0aCByZWN1cnNpdmVseS5cbiAgICovXG4gIEFueVBhdGggPSAnKionLFxuXG4gIC8qKlxuICBBbnkgdGVzdCBUeXBlU2NyaXB0IGZpbGUuXG4gICAqL1xuICBBbnlUZXN0VHMgPSAnKi50ZXN0LnRzJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55VHMgPSAnKi50cycsXG5cbiAgLyoqXG4gIFJlYWN0SlMgVHlwZVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55VHN4ID0gJyoudHN4JyxcblxuICAvKipcbiAgT2JzaWRpYW4gYXBwbGljYXRpb24gc2V0dGluZ3MgZmlsZSB3aXRoaW4gYW4gT2JzaWRpYW4gY29uZmlndXJhdGlvbiBmb2xkZXIuXG4gICAqL1xuICBBcHBKc29uID0gJ2FwcC5qc29uJyxcblxuICAvKipcbiAgQ2hhbmdlbG9nIGZpbGUuXG4gICAqL1xuICBDaGFuZ2Vsb2dNZCA9ICdDSEFOR0VMT0cubWQnLFxuXG4gIC8qKlxuICBDb21taXRsaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIENvbW1pdGxpbnRDb25maWdUcyA9ICdjb21taXRsaW50LmNvbmZpZy50cycsXG5cbiAgLyoqXG4gIEN1cnJlbnQgZm9sZGVyLlxuICAgKi9cbiAgQ3VycmVudEZvbGRlciA9ICcuJyxcblxuICAvKipcbiAgRGVtbyB2YXVsdCBmb2xkZXIgc2hpcHBlZCBpbiBhIHBsdWdpbiByZXBvIHJvb3QuXG4gICAqL1xuICBEZW1vVmF1bHQgPSAnZGVtby12YXVsdCcsXG5cbiAgLyoqXG4gIERpc3RyaWJ1dGlvbiBmb2xkZXIuXG4gICAqL1xuICBEaXN0ID0gJ2Rpc3QnLFxuXG4gIC8qKlxuICBCdWlsZCBmb2xkZXIgd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLlxuICAgKi9cbiAgRGlzdEJ1aWxkID0gJ2Rpc3QvYnVpbGQnLFxuXG4gIC8qKlxuICBEZXZlbG9wbWVudCBmb2xkZXIgd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLlxuICAgKi9cbiAgRGlzdERldiA9ICdkaXN0L2RldicsXG5cbiAgLyoqXG4gIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24gZm9sZGVyIHdpdGhpbiBhIHZhdWx0LlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFubWQvaGFyZGNvZGVkLWNvbmZpZy1wYXRoIC0tIFRoaXMgaXMgdGhlIGRlZmF1bHQgY29uZmlnIGZvbGRlciBuYW1lIGJha2VkIGludG8gYSBzaGlwcGVkIGRlbW8tdmF1bHQgc2tlbGV0b24sIG5vdCBhIGxvb2t1cCBhZ2FpbnN0IGEgbGl2ZSB2YXVsdC5cbiAgRG90T2JzaWRpYW4gPSAnLm9ic2lkaWFuJyxcblxuICAvKipcbiAgQ29tbW9uSlMgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ0NqcyA9ICdlc2xpbnQuY29uZmlnLmNqcycsXG5cbiAgLyoqXG4gIENvbW1vbkpTIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ0N0cyA9ICdlc2xpbnQuY29uZmlnLmN0cycsXG5cbiAgLyoqXG4gIEphdmFTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ0pzID0gJ2VzbGludC5jb25maWcuanMnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBFU0xpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgRXNsaW50Q29uZmlnTWpzID0gJ2VzbGludC5jb25maWcubWpzJyxcblxuICAvKipcbiAgRVNNIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqXG4gIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ1RzID0gJ2VzbGludC5jb25maWcudHMnLFxuXG4gIC8qKlxuICBIb3QgcmVsb2FkIGZpbGUuXG4gICAqL1xuICBIb3RSZWxvYWQgPSAnLmhvdHJlbG9hZCcsXG5cbiAgLyoqXG4gIExpY2Vuc2UgZmlsZS5cbiAgICovXG4gIExpY2Vuc2UgPSAnTElDRU5TRScsXG5cbiAgLyoqXG4gIE1haW4gQ1NTIGZpbGUuXG4gICAqL1xuICBNYWluQ3NzID0gJ21haW4uY3NzJyxcblxuICAvKipcbiAgTWFpbiBKYXZhU2NyaXB0IGZpbGUuXG4gICAqL1xuICBNYWluSnMgPSAnbWFpbi5qcycsXG5cbiAgLyoqXG4gIE1haW4gVHlwZVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgTWFpblRzID0gJ21haW4udHMnLFxuXG4gIC8qKlxuICBNYW5pZmVzdCBmaWxlIGZvciBiZXRhIHJlbGVhc2VzLlxuICAgKi9cbiAgTWFuaWZlc3RCZXRhSnNvbiA9ICdtYW5pZmVzdC1iZXRhLmpzb24nLFxuXG4gIC8qKlxuICBNYW5pZmVzdCBmaWxlLlxuICAgKi9cbiAgTWFuaWZlc3RKc29uID0gJ21hbmlmZXN0Lmpzb24nLFxuXG4gIC8qKlxuICBDb21tb25KUyBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnQ2pzID0gJy5tYXJrZG93bmxpbnQtY2xpMi5janMnLFxuXG4gIC8qKlxuICBKU09OQyBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnSnNvbmMgPSAnLm1hcmtkb3dubGludC1jbGkyLmpzb25jJyxcblxuICAvKipcbiAgRVNNIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIE1hcmtkb3dubGludENsaTJDb25maWdNanMgPSAnLm1hcmtkb3dubGludC1jbGkyLm1qcycsXG5cbiAgLyoqXG4gIFlBTUwgTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ1lhbWwgPSAnLm1hcmtkb3dubGludC1jbGkyLnlhbWwnLFxuXG4gIC8qKlxuICBDb21tb25KUyBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnQ2pzID0gJy5tYXJrZG93bmxpbnQuY2pzJyxcblxuICAvKipcbiAgSlNPTiBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnSnNvbiA9ICcubWFya2Rvd25saW50Lmpzb24nLFxuXG4gIC8qKlxuICBKU09OQyBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnSnNvbmMgPSAnLm1hcmtkb3dubGludC5qc29uYycsXG5cbiAgLyoqXG4gIEVTTSBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnTWpzID0gJy5tYXJrZG93bmxpbnQubWpzJyxcblxuICAvKipcbiAgWUFNTCBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnWWFtbCA9ICcubWFya2Rvd25saW50LnlhbWwnLFxuXG4gIC8qKlxuICBZQU1MIE1hcmtkb3dubGludCBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBNYXJrZG93bmxpbnRDb25maWdZbWwgPSAnLm1hcmtkb3dubGludC55bWwnLFxuXG4gIC8qKlxuICBNb2NrcyBmb2xkZXIuXG4gICAqL1xuICBNb2NrcyA9ICdzcmMvdGVzdC1oZWxwZXJzJyxcblxuICAvKipcbiAgTm9kZSBtb2R1bGVzIGZvbGRlci5cbiAgICovXG4gIE5vZGVNb2R1bGVzID0gJ25vZGVfbW9kdWxlcycsXG5cbiAgLyoqXG4gIE5QTSBzaHJpbmt3cmFwIGZpbGUuXG4gICAqL1xuICBOcG1TaHJpbmt3cmFwSnNvbiA9ICducG0tc2hyaW5rd3JhcC5qc29uJyxcblxuICAvKipcbiAgUGFja2FnZSBKU09OIGZpbGUuXG4gICAqL1xuICBQYWNrYWdlSnNvbiA9ICdwYWNrYWdlLmpzb24nLFxuXG4gIC8qKlxuICBQYWNrYWdlLWxvY2sgSlNPTiBmaWxlLlxuICAgKi9cbiAgUGFja2FnZUxvY2tKc29uID0gJ3BhY2thZ2UtbG9jay5qc29uJyxcblxuICAvKipcbiAgUGx1Z2lucyBmb2xkZXIgd2l0aGluIGFuIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24gZm9sZGVyLlxuICAgKi9cbiAgUGx1Z2lucyA9ICdwbHVnaW5zJyxcblxuICAvKipcbiAgU2NyaXB0cyBmb2xkZXIuXG4gICAqL1xuICBTY3JpcHRzID0gJ3NjcmlwdHMnLFxuXG4gIC8qKlxuICBTY3JpcHQgdXRpbGl0aWVzIGZvbGRlciAoZGV2LW9ubHkgdG9vbGluZyB0aGF0IHJ1bnMgaW4gdGhlIGNvbnN1bWVyJ3MgTm9kZSBlbnZpcm9ubWVudCwgbm90IHRoZSBPYnNpZGlhbiBydW50aW1lKS5cbiAgICovXG4gIFNjcmlwdFV0aWxzID0gJ3NyYy9zY3JpcHQtdXRpbHMnLFxuXG4gIC8qKlxuICBTb3VyY2UgZm9sZGVyLlxuICAgKi9cbiAgU3JjID0gJ3NyYycsXG5cbiAgLyoqXG4gIFN0eWxlcyBDU1MgZmlsZS5cbiAgICovXG4gIFN0eWxlc0NzcyA9ICdzdHlsZXMuY3NzJyxcblxuICAvKipcbiAgVGVzdHMgZm9sZGVyLlxuICAgKi9cbiAgVGVzdHMgPSAnX190ZXN0c19fJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBUc0NvbmZpZ0pzb24gPSAndHNjb25maWcuanNvbicsXG5cbiAgLyoqXG4gIFZlcnNpb25zIEpTT04gZmlsZS5cbiAgICovXG4gIFZlcnNpb25zSnNvbiA9ICd2ZXJzaW9ucy5qc29uJyxcblxuICAvKipcbiAgVml0ZXN0IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIFZpdGVzdENvbmZpZ1RzID0gJ3ZpdGVzdC5jb25maWcudHMnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU08sSUFBSywwQkFBTCxrQkFBS0EsNkJBQUw7QUFJTCxFQUFBQSx5QkFBQSx3Q0FBcUM7QUFLckMsRUFBQUEseUJBQUEsaUNBQThCO0FBSzlCLEVBQUFBLHlCQUFBLFlBQVM7QUFLVCxFQUFBQSx5QkFBQSwwQkFBdUI7QUFLdkIsRUFBQUEseUJBQUEsV0FBUTtBQUtSLEVBQUFBLHlCQUFBLFlBQVM7QUFLVCxFQUFBQSx5QkFBQSxhQUFVO0FBS1YsRUFBQUEseUJBQUEsZUFBWTtBQUtaLEVBQUFBLHlCQUFBLFdBQVE7QUFLUixFQUFBQSx5QkFBQSxZQUFTO0FBS1QsRUFBQUEseUJBQUEsYUFBVTtBQUtWLEVBQUFBLHlCQUFBLGlCQUFjO0FBS2QsRUFBQUEseUJBQUEsd0JBQXFCO0FBS3JCLEVBQUFBLHlCQUFBLG1CQUFnQjtBQUtoQixFQUFBQSx5QkFBQSxlQUFZO0FBS1osRUFBQUEseUJBQUEsVUFBTztBQUtQLEVBQUFBLHlCQUFBLGVBQVk7QUFLWixFQUFBQSx5QkFBQSxhQUFVO0FBTVYsRUFBQUEseUJBQUEsaUJBQWM7QUFLZCxFQUFBQSx5QkFBQSxxQkFBa0I7QUFLbEIsRUFBQUEseUJBQUEscUJBQWtCO0FBS2xCLEVBQUFBLHlCQUFBLG9CQUFpQjtBQUtqQixFQUFBQSx5QkFBQSxxQkFBa0I7QUFLbEIsRUFBQUEseUJBQUEscUJBQWtCO0FBS2xCLEVBQUFBLHlCQUFBLG9CQUFpQjtBQUtqQixFQUFBQSx5QkFBQSxlQUFZO0FBS1osRUFBQUEseUJBQUEsYUFBVTtBQUtWLEVBQUFBLHlCQUFBLGFBQVU7QUFLVixFQUFBQSx5QkFBQSxZQUFTO0FBS1QsRUFBQUEseUJBQUEsWUFBUztBQUtULEVBQUFBLHlCQUFBLHNCQUFtQjtBQUtuQixFQUFBQSx5QkFBQSxrQkFBZTtBQUtmLEVBQUFBLHlCQUFBLCtCQUE0QjtBQUs1QixFQUFBQSx5QkFBQSxpQ0FBOEI7QUFLOUIsRUFBQUEseUJBQUEsK0JBQTRCO0FBSzVCLEVBQUFBLHlCQUFBLGdDQUE2QjtBQUs3QixFQUFBQSx5QkFBQSwyQkFBd0I7QUFLeEIsRUFBQUEseUJBQUEsNEJBQXlCO0FBS3pCLEVBQUFBLHlCQUFBLDZCQUEwQjtBQUsxQixFQUFBQSx5QkFBQSwyQkFBd0I7QUFLeEIsRUFBQUEseUJBQUEsNEJBQXlCO0FBS3pCLEVBQUFBLHlCQUFBLDJCQUF3QjtBQUt4QixFQUFBQSx5QkFBQSxXQUFRO0FBS1IsRUFBQUEseUJBQUEsaUJBQWM7QUFLZCxFQUFBQSx5QkFBQSx1QkFBb0I7QUFLcEIsRUFBQUEseUJBQUEsaUJBQWM7QUFLZCxFQUFBQSx5QkFBQSxxQkFBa0I7QUFLbEIsRUFBQUEseUJBQUEsYUFBVTtBQUtWLEVBQUFBLHlCQUFBLGFBQVU7QUFLVixFQUFBQSx5QkFBQSxpQkFBYztBQUtkLEVBQUFBLHlCQUFBLFNBQU07QUFLTixFQUFBQSx5QkFBQSxlQUFZO0FBS1osRUFBQUEseUJBQUEsV0FBUTtBQUtSLEVBQUFBLHlCQUFBLGtCQUFlO0FBS2YsRUFBQUEseUJBQUEsa0JBQWU7QUFLZixFQUFBQSx5QkFBQSxvQkFBaUI7QUF4UlAsU0FBQUE7QUFBQSxHQUFBOyIsCiAgIm5hbWVzIjogWyJPYnNpZGlhblBsdWdpblJlcG9QYXRocyJdCn0K