@mnaoumov/obsidian-lib 7.1.0 → 8.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 (346) hide show
  1. package/dist/lib/cjs/__merged.cjs +5 -5
  2. package/dist/lib/cjs/active-file-provider.cjs +6 -6
  3. package/dist/lib/cjs/active-file-provider.d.cts +1 -1
  4. package/dist/lib/cjs/app.cjs +5 -5
  5. package/dist/lib/cjs/async-with-notice.cjs +5 -5
  6. package/dist/lib/cjs/attachment-path.cjs +6 -6
  7. package/dist/lib/cjs/attachment-unit-folder.cjs +5 -5
  8. package/dist/lib/cjs/backlink-index.cjs +13 -19
  9. package/dist/lib/cjs/backlink-index.d.cts +1 -1
  10. package/dist/lib/cjs/backlink.cjs +5 -5
  11. package/dist/lib/cjs/bases-view-registrar.cjs +6 -6
  12. package/dist/lib/cjs/bases-view-registrar.d.cts +1 -1
  13. package/dist/lib/cjs/callout.cjs +5 -5
  14. package/dist/lib/cjs/canvas.cjs +5 -5
  15. package/dist/lib/cjs/case-insensitive-file-index.cjs +5 -5
  16. package/dist/lib/cjs/code-block-markdown-information.cjs +6 -6
  17. package/dist/lib/cjs/code-block-markdown-information.d.cts +9 -9
  18. package/dist/lib/cjs/code-block-reg-exp.cjs +5 -5
  19. package/dist/lib/cjs/codemirror/index.cjs +5 -5
  20. package/dist/lib/cjs/codemirror/state-field-spec.cjs +6 -6
  21. package/dist/lib/cjs/codemirror/state-field-spec.d.cts +6 -6
  22. package/dist/lib/cjs/command-handlers/abstract-file-command-handler.cjs +5 -5
  23. package/dist/lib/cjs/command-handlers/command-handler-component.cjs +5 -5
  24. package/dist/lib/cjs/command-handlers/command-handler.cjs +5 -5
  25. package/dist/lib/cjs/command-handlers/editor-command-handler.cjs +5 -5
  26. package/dist/lib/cjs/command-handlers/file-command-handler.cjs +5 -5
  27. package/dist/lib/cjs/command-handlers/folder-command-handler.cjs +5 -5
  28. package/dist/lib/cjs/command-handlers/global-command-handler.cjs +5 -5
  29. package/dist/lib/cjs/command-handlers/index.cjs +5 -5
  30. package/dist/lib/cjs/command-handlers/open-demo-vault-command-handler.cjs +5 -5
  31. package/dist/lib/cjs/command-handlers/open-settings-command-handler.cjs +5 -5
  32. package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.cjs +5 -5
  33. package/dist/lib/cjs/command-registrar.cjs +6 -6
  34. package/dist/lib/cjs/command-registrar.d.cts +2 -2
  35. package/dist/lib/cjs/community-plugins.cjs +6 -6
  36. package/dist/lib/cjs/components/abort-signal-component.cjs +5 -5
  37. package/dist/lib/cjs/components/all-windows-event-component.cjs +5 -5
  38. package/dist/lib/cjs/components/async-error-handler-component.cjs +5 -5
  39. package/dist/lib/cjs/components/async-events-component.cjs +5 -5
  40. package/dist/lib/cjs/components/case-insensitive-file-index-component.cjs +5 -5
  41. package/dist/lib/cjs/components/component-ex.cjs +5 -5
  42. package/dist/lib/cjs/components/console-debug-component.cjs +5 -5
  43. package/dist/lib/cjs/components/core-plugin-toggle-component.cjs +5 -5
  44. package/dist/lib/cjs/components/disposable-component.cjs +5 -5
  45. package/dist/lib/cjs/components/embed-extensions-component.cjs +5 -5
  46. package/dist/lib/cjs/components/file-explorer-root-menu-component.cjs +13 -16
  47. package/dist/lib/cjs/components/generate-markdown-link-default-params-component.cjs +5 -5
  48. package/dist/lib/cjs/components/incremental-file-index-component.cjs +5 -5
  49. package/dist/lib/cjs/components/index.cjs +5 -5
  50. package/dist/lib/cjs/components/layout-ready-component.cjs +5 -5
  51. package/dist/lib/cjs/components/menu-event-registrar-component.cjs +5 -5
  52. package/dist/lib/cjs/components/monkey-around-component.cjs +5 -5
  53. package/dist/lib/cjs/components/notebook-navigator-menu-event-registrar-component.cjs +5 -5
  54. package/dist/lib/cjs/components/plugin-context-component.cjs +5 -5
  55. package/dist/lib/cjs/components/plugin-gate-component.cjs +5 -5
  56. package/dist/lib/cjs/components/plugin-notice-component.cjs +6 -6
  57. package/dist/lib/cjs/components/plugin-notice-component.d.cts +3 -3
  58. package/dist/lib/cjs/components/plugin-settings-component.cjs +6 -6
  59. package/dist/lib/cjs/components/plugin-settings-component.d.cts +5 -5
  60. package/dist/lib/cjs/components/plugin-settings-tab-component.cjs +5 -5
  61. package/dist/lib/cjs/components/plugin-suggestion-component.cjs +5 -5
  62. package/dist/lib/cjs/components/pointer-position-component.cjs +5 -5
  63. package/dist/lib/cjs/components/registry-component.cjs +5 -5
  64. package/dist/lib/cjs/components/release-notes-component.cjs +5 -5
  65. package/dist/lib/cjs/components/rename-delete-handler-component.cjs +6 -6
  66. package/dist/lib/cjs/components/rename-delete-handler-component.d.cts +10 -10
  67. package/dist/lib/cjs/components/rmdir-guard-component.cjs +5 -5
  68. package/dist/lib/cjs/components/settings-migration-component.cjs +5 -5
  69. package/dist/lib/cjs/components/syntax-highlighting-component.cjs +5 -5
  70. package/dist/lib/cjs/components/templates-language-component.cjs +5 -5
  71. package/dist/lib/cjs/constructors/get-dom-events-handlers-constructor.cjs +5 -5
  72. package/dist/lib/cjs/constructors/index.cjs +5 -5
  73. package/dist/lib/cjs/css-class.cjs +5 -5
  74. package/dist/lib/cjs/data-handler.cjs +6 -6
  75. package/dist/lib/cjs/data-handler.d.cts +2 -2
  76. package/dist/lib/cjs/data-stores/data-store-replica.cjs +5 -5
  77. package/dist/lib/cjs/data-stores/data-store-seeds.cjs +6 -6
  78. package/dist/lib/cjs/data-stores/data-store-transport.cjs +5 -5
  79. package/dist/lib/cjs/data-stores/index.cjs +5 -5
  80. package/dist/lib/cjs/data-stores/local-data-store.cjs +5 -5
  81. package/dist/lib/cjs/data-stores/shared-data-store.cjs +6 -6
  82. package/dist/lib/cjs/dataview-link.cjs +5 -5
  83. package/dist/lib/cjs/dataview.cjs +12 -12
  84. package/dist/lib/cjs/dataview.d.cts +6 -6
  85. package/dist/lib/cjs/debug.cjs +5 -5
  86. package/dist/lib/cjs/demo-vault-helper-settings.cjs +5 -5
  87. package/dist/lib/cjs/demo-vault-helper.cjs +5 -5
  88. package/dist/lib/cjs/demo-vault-naming.cjs +5 -5
  89. package/dist/lib/cjs/desktop-demo-vault-opener.cjs +5 -5
  90. package/dist/lib/cjs/desktop-trusted-input.cjs +6 -6
  91. package/dist/lib/cjs/desktop-trusted-input.d.cts +1 -1
  92. package/dist/lib/cjs/editor-extension-registrar.cjs +6 -6
  93. package/dist/lib/cjs/editor-extension-registrar.d.cts +1 -1
  94. package/dist/lib/cjs/editor-suggest-registrar.cjs +6 -6
  95. package/dist/lib/cjs/editor-suggest-registrar.d.cts +1 -1
  96. package/dist/lib/cjs/editor.cjs +5 -5
  97. package/dist/lib/cjs/events.cjs +5 -5
  98. package/dist/lib/cjs/extensions-registrar.cjs +6 -6
  99. package/dist/lib/cjs/extensions-registrar.d.cts +1 -1
  100. package/dist/lib/cjs/file-change.cjs +6 -6
  101. package/dist/lib/cjs/file-change.d.cts +3 -3
  102. package/dist/lib/cjs/file-explorer.cjs +5 -5
  103. package/dist/lib/cjs/file-manager.cjs +5 -5
  104. package/dist/lib/cjs/file-system.cjs +5 -5
  105. package/dist/lib/cjs/folder-note.cjs +6 -6
  106. package/dist/lib/cjs/folder-note.d.cts +1 -1
  107. package/dist/lib/cjs/frontmatter-formatting.cjs +5 -5
  108. package/dist/lib/cjs/frontmatter-link-cache-with-offsets.cjs +6 -6
  109. package/dist/lib/cjs/frontmatter-link-cache-with-offsets.d.cts +2 -2
  110. package/dist/lib/cjs/frontmatter.cjs +6 -6
  111. package/dist/lib/cjs/frontmatter.d.cts +7 -7
  112. package/dist/lib/cjs/generated-during-build.cjs +7 -7
  113. package/dist/lib/cjs/hover-link-source-registrar.cjs +6 -6
  114. package/dist/lib/cjs/hover-link-source-registrar.d.cts +1 -1
  115. package/dist/lib/cjs/html-element.cjs +5 -5
  116. package/dist/lib/cjs/i18n/custom-type-options.cjs +6 -6
  117. package/dist/lib/cjs/i18n/custom-type-options.d.cts +4 -4
  118. package/dist/lib/cjs/i18n/default-translations.cjs +5 -5
  119. package/dist/lib/cjs/i18n/i18n.cjs +5 -5
  120. package/dist/lib/cjs/i18n/index.cjs +5 -5
  121. package/dist/lib/cjs/i18n/locales/en.cjs +5 -5
  122. package/dist/lib/cjs/i18n/locales/index.cjs +5 -5
  123. package/dist/lib/cjs/i18n/locales/translations-map.cjs +5 -5
  124. package/dist/lib/cjs/index.cjs +5 -5
  125. package/dist/lib/cjs/is-in-obsidian.cjs +5 -5
  126. package/dist/lib/cjs/library-styles.cjs +5 -5
  127. package/dist/lib/cjs/library.cjs +5 -5
  128. package/dist/lib/cjs/link-name.cjs +5 -5
  129. package/dist/lib/cjs/link-update-progress.cjs +5 -5
  130. package/dist/lib/cjs/link.cjs +7 -7
  131. package/dist/lib/cjs/link.d.cts +2 -2
  132. package/dist/lib/cjs/logger.cjs +5 -5
  133. package/dist/lib/cjs/loop.cjs +5 -5
  134. package/dist/lib/cjs/markdown-code-block-processor-registrar.cjs +6 -6
  135. package/dist/lib/cjs/markdown-code-block-processor-registrar.d.cts +1 -1
  136. package/dist/lib/cjs/markdown-code-block-processor.cjs +5 -5
  137. package/dist/lib/cjs/markdown-post-processor-registrar.cjs +6 -6
  138. package/dist/lib/cjs/markdown-post-processor-registrar.d.cts +1 -1
  139. package/dist/lib/cjs/markdown-view.cjs +5 -5
  140. package/dist/lib/cjs/markdown.cjs +5 -5
  141. package/dist/lib/cjs/menu-event-registrar.cjs +6 -6
  142. package/dist/lib/cjs/menu-event-registrar.d.cts +4 -4
  143. package/dist/lib/cjs/metadata-cache.cjs +6 -6
  144. package/dist/lib/cjs/mobile-trusted-input.cjs +6 -6
  145. package/dist/lib/cjs/modals/alert.cjs +5 -5
  146. package/dist/lib/cjs/modals/confirm.cjs +5 -5
  147. package/dist/lib/cjs/modals/index.cjs +5 -5
  148. package/dist/lib/cjs/modals/minimizable-modal.cjs +6 -6
  149. package/dist/lib/cjs/modals/modal-command-builder.cjs +6 -6
  150. package/dist/lib/cjs/modals/modal-command-builder.d.cts +12 -12
  151. package/dist/lib/cjs/modals/modal.cjs +5 -5
  152. package/dist/lib/cjs/modals/prompt.cjs +14 -14
  153. package/dist/lib/cjs/modals/select-item.cjs +5 -5
  154. package/dist/lib/cjs/modals/select-option.cjs +5 -5
  155. package/dist/lib/cjs/modals/suggest-modal-command-builder.cjs +5 -5
  156. package/dist/lib/cjs/note-priority.cjs +5 -5
  157. package/dist/lib/cjs/notebook-navigator.cjs +6 -6
  158. package/dist/lib/cjs/notebook-navigator.d.cts +3 -3
  159. package/dist/lib/cjs/obsidian-lib-state.cjs +6 -6
  160. package/dist/lib/cjs/obsidian-protocol-handler-registrar.cjs +6 -6
  161. package/dist/lib/cjs/obsidian-protocol-handler-registrar.d.cts +1 -1
  162. package/dist/lib/cjs/obsidian-settings.cjs +5 -5
  163. package/dist/lib/cjs/obsidian-word-characters.cjs +6 -6
  164. package/dist/lib/cjs/parse-link.cjs +6 -6
  165. package/dist/lib/cjs/parse-link.d.cts +2 -2
  166. package/dist/lib/cjs/path-settings.cjs +6 -6
  167. package/dist/lib/cjs/pdf.cjs +5 -5
  168. package/dist/lib/cjs/plugin/index.cjs +5 -5
  169. package/dist/lib/cjs/plugin/plugin-api.cjs +6 -6
  170. package/dist/lib/cjs/plugin/plugin-api.d.cts +2 -2
  171. package/dist/lib/cjs/plugin/plugin-context.cjs +6 -6
  172. package/dist/lib/cjs/plugin/plugin-event-source.cjs +6 -6
  173. package/dist/lib/cjs/plugin/plugin-event-source.d.cts +1 -1
  174. package/dist/lib/cjs/plugin/plugin-install-state.cjs +5 -5
  175. package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +5 -5
  176. package/dist/lib/cjs/plugin/plugin-settings-tab.cjs +6 -6
  177. package/dist/lib/cjs/plugin/plugin-settings-tab.d.cts +3 -3
  178. package/dist/lib/cjs/plugin/plugin.cjs +6 -6
  179. package/dist/lib/cjs/plugin/settings-migration-api.cjs +6 -6
  180. package/dist/lib/cjs/plugin/settings-migration-api.d.cts +1 -1
  181. package/dist/lib/cjs/plugin-cli-handler-registrar.cjs +6 -6
  182. package/dist/lib/cjs/plugin-cli-handler-registrar.d.cts +1 -1
  183. package/dist/lib/cjs/popovers/field-popover.cjs +5 -5
  184. package/dist/lib/cjs/popovers/index.cjs +5 -5
  185. package/dist/lib/cjs/popovers/popover-anchor.cjs +5 -5
  186. package/dist/lib/cjs/popovers/popover.cjs +5 -5
  187. package/dist/lib/cjs/property-entry.cjs +5 -5
  188. package/dist/lib/cjs/queue.cjs +6 -6
  189. package/dist/lib/cjs/react/app-context.cjs +5 -5
  190. package/dist/lib/cjs/react/index.cjs +5 -5
  191. package/dist/lib/cjs/reference.cjs +6 -6
  192. package/dist/lib/cjs/reference.d.cts +6 -6
  193. package/dist/lib/cjs/resource-lock.cjs +6 -6
  194. package/dist/lib/cjs/resource-url.cjs +5 -5
  195. package/dist/lib/cjs/ribbon-icon-registrar.cjs +6 -6
  196. package/dist/lib/cjs/ribbon-icon-registrar.d.cts +1 -1
  197. package/dist/lib/cjs/setting-components/checkbox-component.cjs +5 -5
  198. package/dist/lib/cjs/setting-components/code-highlighter-component.cjs +5 -5
  199. package/dist/lib/cjs/setting-components/date-component.cjs +5 -5
  200. package/dist/lib/cjs/setting-components/date-time-component.cjs +5 -5
  201. package/dist/lib/cjs/setting-components/email-component.cjs +5 -5
  202. package/dist/lib/cjs/setting-components/file-component.cjs +5 -5
  203. package/dist/lib/cjs/setting-components/index.cjs +5 -5
  204. package/dist/lib/cjs/setting-components/month-component.cjs +6 -6
  205. package/dist/lib/cjs/setting-components/month-component.d.cts +2 -2
  206. package/dist/lib/cjs/setting-components/multiple-dropdown-component.cjs +5 -5
  207. package/dist/lib/cjs/setting-components/multiple-email-component.cjs +5 -5
  208. package/dist/lib/cjs/setting-components/multiple-file-component.cjs +5 -5
  209. package/dist/lib/cjs/setting-components/multiple-text-component.cjs +5 -5
  210. package/dist/lib/cjs/setting-components/number-component.cjs +5 -5
  211. package/dist/lib/cjs/setting-components/password-component.cjs +5 -5
  212. package/dist/lib/cjs/setting-components/setting-component-wrapper.cjs +5 -5
  213. package/dist/lib/cjs/setting-components/telephone-component.cjs +5 -5
  214. package/dist/lib/cjs/setting-components/text-based-component.cjs +6 -6
  215. package/dist/lib/cjs/setting-components/text-based-component.d.cts +3 -3
  216. package/dist/lib/cjs/setting-components/time-component.cjs +5 -5
  217. package/dist/lib/cjs/setting-components/tri-state-checkbox-component.cjs +5 -5
  218. package/dist/lib/cjs/setting-components/typed-dropdown-component.cjs +5 -5
  219. package/dist/lib/cjs/setting-components/typed-multiple-dropdown-component.cjs +5 -5
  220. package/dist/lib/cjs/setting-components/typed-range-text-component.cjs +5 -5
  221. package/dist/lib/cjs/setting-components/typed-text-component.cjs +5 -5
  222. package/dist/lib/cjs/setting-components/url-component.cjs +5 -5
  223. package/dist/lib/cjs/setting-components/validator-component.cjs +5 -5
  224. package/dist/lib/cjs/setting-components/value-component-with-change-tracking.cjs +6 -6
  225. package/dist/lib/cjs/setting-components/week-component.cjs +6 -6
  226. package/dist/lib/cjs/setting-components/week-component.d.cts +2 -2
  227. package/dist/lib/cjs/setting-ex.cjs +5 -5
  228. package/dist/lib/cjs/setting-group-ex.cjs +5 -5
  229. package/dist/lib/cjs/status-bar-item-registrar.cjs +6 -6
  230. package/dist/lib/cjs/status-bar-item-registrar.d.cts +1 -1
  231. package/dist/lib/cjs/templater.cjs +6 -6
  232. package/dist/lib/cjs/templater.d.cts +9 -9
  233. package/dist/lib/cjs/transformers/duration-transformer.cjs +5 -5
  234. package/dist/lib/cjs/transformers/index.cjs +5 -5
  235. package/dist/lib/cjs/trusted-input.cjs +5 -5
  236. package/dist/lib/cjs/validation.cjs +6 -6
  237. package/dist/lib/cjs/validation.d.cts +1 -1
  238. package/dist/lib/cjs/vault-delete.cjs +5 -5
  239. package/dist/lib/cjs/vault-transaction.cjs +6 -6
  240. package/dist/lib/cjs/vault.cjs +5 -5
  241. package/dist/lib/cjs/view-registrar.cjs +6 -6
  242. package/dist/lib/cjs/view-registrar.d.cts +1 -1
  243. package/dist/lib/cjs/workspace.cjs +5 -5
  244. package/dist/lib/esm/active-file-provider.d.mts +1 -1
  245. package/dist/lib/esm/active-file-provider.mjs +1 -1
  246. package/dist/lib/esm/attachment-path.mjs +1 -1
  247. package/dist/lib/esm/backlink-index.d.mts +1 -1
  248. package/dist/lib/esm/backlink-index.mjs +8 -14
  249. package/dist/lib/esm/bases-view-registrar.d.mts +1 -1
  250. package/dist/lib/esm/bases-view-registrar.mjs +1 -1
  251. package/dist/lib/esm/code-block-markdown-information.d.mts +9 -9
  252. package/dist/lib/esm/codemirror/state-field-spec.d.mts +6 -6
  253. package/dist/lib/esm/command-registrar.d.mts +2 -2
  254. package/dist/lib/esm/command-registrar.mjs +1 -1
  255. package/dist/lib/esm/community-plugins.mjs +1 -1
  256. package/dist/lib/esm/components/file-explorer-root-menu-component.mjs +8 -11
  257. package/dist/lib/esm/components/plugin-notice-component.d.mts +3 -3
  258. package/dist/lib/esm/components/plugin-notice-component.mjs +1 -1
  259. package/dist/lib/esm/components/plugin-settings-component.d.mts +5 -5
  260. package/dist/lib/esm/components/plugin-settings-component.mjs +1 -1
  261. package/dist/lib/esm/components/rename-delete-handler-component.d.mts +10 -10
  262. package/dist/lib/esm/components/rename-delete-handler-component.mjs +1 -1
  263. package/dist/lib/esm/data-handler.d.mts +2 -2
  264. package/dist/lib/esm/data-handler.mjs +1 -1
  265. package/dist/lib/esm/data-stores/data-store-seeds.mjs +1 -1
  266. package/dist/lib/esm/data-stores/shared-data-store.mjs +1 -1
  267. package/dist/lib/esm/dataview.d.mts +6 -6
  268. package/dist/lib/esm/dataview.mjs +7 -7
  269. package/dist/lib/esm/desktop-trusted-input.d.mts +1 -1
  270. package/dist/lib/esm/desktop-trusted-input.mjs +1 -1
  271. package/dist/lib/esm/editor-extension-registrar.d.mts +1 -1
  272. package/dist/lib/esm/editor-extension-registrar.mjs +1 -1
  273. package/dist/lib/esm/editor-suggest-registrar.d.mts +1 -1
  274. package/dist/lib/esm/editor-suggest-registrar.mjs +1 -1
  275. package/dist/lib/esm/extensions-registrar.d.mts +1 -1
  276. package/dist/lib/esm/extensions-registrar.mjs +1 -1
  277. package/dist/lib/esm/file-change.d.mts +3 -3
  278. package/dist/lib/esm/file-change.mjs +1 -1
  279. package/dist/lib/esm/folder-note.d.mts +1 -1
  280. package/dist/lib/esm/folder-note.mjs +1 -1
  281. package/dist/lib/esm/frontmatter-link-cache-with-offsets.d.mts +2 -2
  282. package/dist/lib/esm/frontmatter-link-cache-with-offsets.mjs +1 -1
  283. package/dist/lib/esm/frontmatter.d.mts +7 -7
  284. package/dist/lib/esm/frontmatter.mjs +1 -1
  285. package/dist/lib/esm/generated-during-build.mjs +2 -2
  286. package/dist/lib/esm/hover-link-source-registrar.d.mts +1 -1
  287. package/dist/lib/esm/hover-link-source-registrar.mjs +1 -1
  288. package/dist/lib/esm/i18n/custom-type-options.d.mts +4 -4
  289. package/dist/lib/esm/i18n/custom-type-options.mjs +1 -1
  290. package/dist/lib/esm/link.d.mts +2 -2
  291. package/dist/lib/esm/link.mjs +2 -2
  292. package/dist/lib/esm/markdown-code-block-processor-registrar.d.mts +1 -1
  293. package/dist/lib/esm/markdown-code-block-processor-registrar.mjs +1 -1
  294. package/dist/lib/esm/markdown-post-processor-registrar.d.mts +1 -1
  295. package/dist/lib/esm/markdown-post-processor-registrar.mjs +1 -1
  296. package/dist/lib/esm/menu-event-registrar.d.mts +4 -4
  297. package/dist/lib/esm/metadata-cache.mjs +1 -1
  298. package/dist/lib/esm/mobile-trusted-input.mjs +1 -1
  299. package/dist/lib/esm/modals/minimizable-modal.mjs +1 -1
  300. package/dist/lib/esm/modals/modal-command-builder.d.mts +12 -12
  301. package/dist/lib/esm/modals/modal-command-builder.mjs +1 -1
  302. package/dist/lib/esm/modals/prompt.mjs +9 -9
  303. package/dist/lib/esm/notebook-navigator.d.mts +3 -3
  304. package/dist/lib/esm/notebook-navigator.mjs +1 -1
  305. package/dist/lib/esm/obsidian-lib-state.mjs +1 -1
  306. package/dist/lib/esm/obsidian-protocol-handler-registrar.d.mts +1 -1
  307. package/dist/lib/esm/obsidian-protocol-handler-registrar.mjs +1 -1
  308. package/dist/lib/esm/obsidian-word-characters.mjs +1 -1
  309. package/dist/lib/esm/parse-link.d.mts +2 -2
  310. package/dist/lib/esm/parse-link.mjs +1 -1
  311. package/dist/lib/esm/path-settings.mjs +1 -1
  312. package/dist/lib/esm/plugin/plugin-api.d.mts +2 -2
  313. package/dist/lib/esm/plugin/plugin-api.mjs +1 -1
  314. package/dist/lib/esm/plugin/plugin-context.mjs +1 -1
  315. package/dist/lib/esm/plugin/plugin-event-source.d.mts +1 -1
  316. package/dist/lib/esm/plugin/plugin-event-source.mjs +1 -1
  317. package/dist/lib/esm/plugin/plugin-settings-tab.d.mts +3 -3
  318. package/dist/lib/esm/plugin/plugin-settings-tab.mjs +1 -1
  319. package/dist/lib/esm/plugin/plugin.mjs +1 -1
  320. package/dist/lib/esm/plugin/settings-migration-api.d.mts +1 -1
  321. package/dist/lib/esm/plugin/settings-migration-api.mjs +1 -1
  322. package/dist/lib/esm/plugin-cli-handler-registrar.d.mts +1 -1
  323. package/dist/lib/esm/plugin-cli-handler-registrar.mjs +1 -1
  324. package/dist/lib/esm/queue.mjs +1 -1
  325. package/dist/lib/esm/reference.d.mts +6 -6
  326. package/dist/lib/esm/reference.mjs +1 -1
  327. package/dist/lib/esm/resource-lock.mjs +1 -1
  328. package/dist/lib/esm/ribbon-icon-registrar.d.mts +1 -1
  329. package/dist/lib/esm/ribbon-icon-registrar.mjs +1 -1
  330. package/dist/lib/esm/setting-components/month-component.d.mts +2 -2
  331. package/dist/lib/esm/setting-components/month-component.mjs +1 -1
  332. package/dist/lib/esm/setting-components/text-based-component.d.mts +3 -3
  333. package/dist/lib/esm/setting-components/text-based-component.mjs +1 -1
  334. package/dist/lib/esm/setting-components/week-component.d.mts +2 -2
  335. package/dist/lib/esm/setting-components/week-component.mjs +1 -1
  336. package/dist/lib/esm/status-bar-item-registrar.d.mts +1 -1
  337. package/dist/lib/esm/status-bar-item-registrar.mjs +1 -1
  338. package/dist/lib/esm/templater.d.mts +9 -9
  339. package/dist/lib/esm/templater.mjs +1 -1
  340. package/dist/lib/esm/validation.d.mts +1 -1
  341. package/dist/lib/esm/validation.mjs +1 -1
  342. package/dist/lib/esm/vault-transaction.mjs +1 -1
  343. package/dist/lib/esm/view-registrar.d.mts +1 -1
  344. package/dist/lib/esm/view-registrar.mjs +1 -1
  345. package/dist/styles.css +2 -2
  346. package/package.json +6 -3
@@ -41,8 +41,8 @@ ensureBrowserProcess();
41
41
  __isPatched: true
42
42
  }
43
43
  );
44
- function extractDefault(module) {
45
- return module && module.__esModule && "default" in module ? module.default : module;
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
46
  }
47
47
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
48
  "@codemirror/autocomplete",
@@ -84,9 +84,9 @@ ensureBrowserProcess();
84
84
  return process;
85
85
  }
86
86
  } else {
87
- const module = originalRequire?.(id);
88
- if (module) {
89
- return extractDefault(module);
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
90
  }
91
91
  }
92
92
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -138,7 +138,7 @@ const ROOT_UNSAFE_ITEM_TITLE_KEYS = [
138
138
  "plugins.file-explorer.menu-opt-rename",
139
139
  "plugins.search.menu-opt-search-in-folder"
140
140
  ];
141
- const SHARED_STATE_KEY = "fileExplorerRootMenuByAppV1";
141
+ const SHARED_STATE_KEY = "fileExplorerRootMenuV1";
142
142
  var FileExplorerRootMenuSpot = /* @__PURE__ */ ((FileExplorerRootMenuSpot2) => {
143
143
  FileExplorerRootMenuSpot2["EmptyArea"] = "empty-area";
144
144
  FileExplorerRootMenuSpot2["VaultName"] = "vault-name";
@@ -173,7 +173,7 @@ class FileExplorerRootMenuComponent extends import_component_ex.ComponentEx {
173
173
  */
174
174
  onload() {
175
175
  super.onload();
176
- const state = getSharedState(this.app);
176
+ const state = getSharedState();
177
177
  const subscription = {
178
178
  handler: this.handler,
179
179
  install: () => installRootMenu(this.app, state),
@@ -216,14 +216,11 @@ function dispatchBeforeShow(state, params) {
216
216
  function getFileExplorerLeaf(app) {
217
217
  return app.workspace.getLeavesOfType(import_implementations.ViewType.FileExplorer)[0] ?? null;
218
218
  }
219
- function getSharedState(app) {
220
- const statesByApp = (0, import_obsidian_lib_state.getObsidianLibState)(SHARED_STATE_KEY, /* @__PURE__ */ new WeakMap()).value;
221
- let state = statesByApp.get(app);
222
- if (!state) {
223
- state = { installation: null, subscriptions: [] };
224
- statesByApp.set(app, state);
225
- }
226
- return state;
219
+ function getSharedState() {
220
+ return (0, import_obsidian_lib_state.getObsidianLibState)(SHARED_STATE_KEY, {
221
+ installation: null,
222
+ subscriptions: []
223
+ }).value;
227
224
  }
228
225
  function installRootMenu(app, state) {
229
226
  let isUninstalled = false;
@@ -340,4 +337,4 @@ function removeRootUnsafeItems(menu) {
340
337
  FileExplorerRootMenuSpot,
341
338
  VAULT_NAME_SELECTORS
342
339
  });
343
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXItcm9vdC1tZW51LWNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogT3BlbnMgYW5kIGV4dGVuZHMgdGhlIGNvcmUgRmlsZSBFeHBsb3JlcidzIGNvbnRleHQgbWVudSBmb3IgdGhlIHZhdWx0IHJvb3QsIGF0IHRoZSB0d28gc3BvdHMgdGhhdCBzdGFuZCBmb3IgaXQ6IHRoZVxuICogdmF1bHQgbmFtZSBhdCB0aGUgdG9wIG9mIHRoZSBsZWZ0IHNpZGViYXIsIGFuZCB0aGUgZW1wdHkgYXJlYSBiZWxvdyB0aGUgZmlsZSBsaXN0LlxuICpcbiAqIE9ic2lkaWFuIGFscmVhZHkgb3BlbnMgYSBtZW51IGZvciB0aGUgZW1wdHkgYXJlYTogdGhlIHZpZXcncyBvd24gYGNvbnRleHRtZW51YCBsaXN0ZW5lciBvbiBpdHMgZmlsZXMgY29udGFpbmVyIGNhbGxzXG4gKiBgb25GaWxlQ29udGV4dE1lbnUoZXZ0LCB2YXVsdC5nZXRSb290KCkpYCwgd2hpY2ggYnVpbGRzIGEge0BsaW5rIE1lbnV9LCB0cmlnZ2VycyBgZmlsZS1tZW51YCB3aXRoIHRoZSByb290IGZvbGRlciBhbmRcbiAqIHRoZSBzb3VyY2UgYGZpbGUtZXhwbG9yZXItY29udGV4dC1tZW51YCwgYW5kIHNob3dzIGl0LiBUaGUgdmF1bHQgbmFtZSAoYC53b3Jrc3BhY2UtZHJhd2VyLXZhdWx0LXN3aXRjaGVyYCBvbiBkZXNrdG9wLFxuICogYC53b3Jrc3BhY2UtZHJhd2VyLWhlYWRlci1uYW1lYCBvbiBtb2JpbGUsIHdoZXJlIE9ic2lkaWFuIGJ1aWxkcyBubyBzd2l0Y2hlcikgb3BlbnMgYSBkaWZmZXJlbnQgbWVudTogb24gZGVza3RvcFxuICogT2JzaWRpYW4gYWRkcyBgU2hvdyBpbiBzeXN0ZW0gZXhwbG9yZXJgIGFuZCBgQ29weSBwYXRoYCB0byB0aGUgcGVyLWV2ZW50IG1lbnUgYE1lbnUuZm9yRXZlbnRgIGhhbmRzIG91dC4gVGhlIGhhbmRsZXJzXG4gKiBnZXQgdGhhdCBtZW51LCBzbyBhIHJpZ2h0LWNsaWNrIHRoZXJlIG5ldmVyIG9wZW5zIGEgc2Vjb25kIG9uZS4gQSBzdWJzY3JpYmVyIHRoYXQgcHJlc2VudHMgdGhlIHJvb3QgYXMgYSBmb2xkZXJcbiAqIHJlcGxhY2VzIGl0IHdpdGggdGhlIHJvb3QncyBmb2xkZXIgbWVudSBpbnN0ZWFkLiBSZWFkIGZyb20gT2JzaWRpYW4gYDEuMTUuMGAuXG4gKlxuICogRXZlcnkgcGx1Z2luIGJ1bmRsZXMgaXRzIG93biBjb3B5IG9mIHRoaXMgbGlicmFyeSwgYW5kIHNldmVyYWwgb2YgdGhlbSBtYXkgd2FudCB0aGlzIG1lbnUuIFR3byBjb3BpZXMgcGF0Y2hpbmcgdGhlXG4gKiBzYW1lIHByb3RvdHlwZSBhbmQgbGlzdGVuaW5nIG9uIHRoZSBzYW1lIGVsZW1lbnQgd291bGQgb3BlbiBpdCB0d2ljZSwgc28gdGhlcmUgaXMgT05FIGluc3RhbGxhdGlvbiBwZXIge0BsaW5rIEFwcH0sXG4gKiBrZXB0IGluIHRoZSBzaGFyZWQtc3RhdGUgYmFnIHVuZGVyIGEgdmVyc2lvbmVkIGtleSBhbmQgb3duZWQgYnkgb25lIHN1YnNjcmliZXIuIFdoZW4gdGhlIG93bmVyIHVubG9hZHMgd2hpbGUgb3RoZXJzXG4gKiByZW1haW4sIHRoZSBuZXh0IHN1YnNjcmliZXIgaW5zdGFsbHMgaXQgYWdhaW4gZnJvbSBpdHMgb3duIGNvcHkuIFdoYXQgY3Jvc3NlcyB0aGF0IGJvdW5kYXJ5IGlzIGEgd2lyZSBmb3JtYXQgYmV0d2VlblxuICogY29waWVzIG9mIGRpZmZlcmVudCB2ZXJzaW9uczogcGxhaW4gb2JqZWN0cyBhbmQgcGxhaW4gZnVuY3Rpb25zIG9ubHksIHJlYWQgc3RydWN0dXJhbGx5LCBhbmQgYSBjaGFuZ2UgdG8gd2hhdCBhIGZpZWxkXG4gKiBtZWFucyBtb3ZlcyB0byBhIG5ldyBrZXkgcmF0aGVyIHRoYW4gcmVpbnRlcnByZXRpbmcgdGhlIG9sZCBvbmUuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBGaWxlRXhwbG9yZXJWaWV3IH0gZnJvbSAnQG9ic2lkaWFuLXR5cGluZ3Mvb2JzaWRpYW4tcHVibGljLWxhdGVzdCc7XG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgVEFic3RyYWN0RmlsZSxcbiAgV29ya3NwYWNlTGVhZlxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGludm9rZUFzeW5jU2FmZWx5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcbmltcG9ydCB7IGdldFByb3RvdHlwZU9mIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL29iamVjdC11dGlscyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJ0BvYnNpZGlhbi10eXBpbmdzL29ic2lkaWFuLXB1YmxpYy1sYXRlc3QvaW1wbGVtZW50YXRpb25zJztcbmltcG9ydCB7XG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBURm9sZGVyXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgZ2V0T2JzaWRpYW5MaWJTdGF0ZSB9IGZyb20gJy4uL29ic2lkaWFuLWxpYi1zdGF0ZS50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vY29tcG9uZW50LWV4LnRzJztcbmltcG9ydCB7IGFyb3VuZCB9IGZyb20gJy4vbW9ua2V5LWFyb3VuZC1jb21wb25lbnQudHMnO1xuXG4vKipcbiAqIFRoZSBlbGVtZW50cyB0aGF0IHN0YW5kIGZvciB0aGUgdmF1bHQgcm9vdCBhdCB0aGUgdG9wIG9mIHRoZSBsZWZ0IHNpZGViYXIsIGluIHByaW9yaXR5IG9yZGVyLiBPYnNpZGlhbiBidWlsZHNcbiAqIGAud29ya3NwYWNlLWRyYXdlci12YXVsdC1zd2l0Y2hlcmAgb25seSBvbiBkZXNrdG9wOyBvbiBtb2JpbGUgdGhlIHZhdWx0IG5hbWUgaXMgdGhlIGRyYXdlciBoZWFkZXIgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFZBVUxUX05BTUVfU0VMRUNUT1JTID0gW1xuICAnLndvcmtzcGFjZS1kcmF3ZXItdmF1bHQtc3dpdGNoZXInLFxuICAnLndvcmtzcGFjZS1kcmF3ZXItaGVhZGVyLW5hbWUnXG5dIGFzIGNvbnN0O1xuXG4vKipcbiAqIFRoZSBgc291cmNlYCBPYnNpZGlhbiBwYXNzZXMgd2l0aCBgZmlsZS1tZW51YCB3aGVuIHRoZSBGaWxlIEV4cGxvcmVyIG9wZW5zIGEgbWVudS5cbiAqL1xuY29uc3QgRklMRV9FWFBMT1JFUl9NRU5VX1NPVVJDRSA9ICdmaWxlLWV4cGxvcmVyLWNvbnRleHQtbWVudSc7XG5cbi8qKlxuICogVGhlIG1lbnUgaXRlbXMgdGhhdCBtdXN0IG5vdCBhY3Qgb24gdGhlIHZhdWx0IHJvb3QsIGJ5IHRoZSBsb2NhbGl6YXRpb24ga2V5IG9mIHRoZWlyIHRpdGxlLiBUaGV5IGFwcGVhciBvbmx5IHdoZW5cbiAqIHRoZSByb290IGlzIHByZXNlbnRlZCBhcyBhbiBvcmRpbmFyeSBmb2xkZXIsIGZyb20gT2JzaWRpYW4gaXRzZWxmIG9yIGZyb20gYW5vdGhlciBwbHVnaW4ncyBgZmlsZS1tZW51YCBoYW5kbGVyLlxuICovXG5jb25zdCBST09UX1VOU0FGRV9JVEVNX1RJVExFX0tFWVMgPSBbXG4gICdwbHVnaW5zLmZpbGUtZXhwbG9yZXIuYWN0aW9uLW1vdmUtZm9sZGVyJyxcbiAgJ3BsdWdpbnMuZmlsZS1leHBsb3Jlci5tZW51LW9wdC1kZWxldGUnLFxuICAncGx1Z2lucy5maWxlLWV4cGxvcmVyLm1lbnUtb3B0LW1ha2UtY29weScsXG4gICdwbHVnaW5zLmZpbGUtZXhwbG9yZXIubWVudS1vcHQtcmVuYW1lJyxcbiAgJ3BsdWdpbnMuc2VhcmNoLm1lbnUtb3B0LXNlYXJjaC1pbi1mb2xkZXInXG5dIGFzIGNvbnN0O1xuXG5jb25zdCBTSEFSRURfU1RBVEVfS0VZID0gJ2ZpbGVFeHBsb3JlclJvb3RNZW51QnlBcHBWMSc7XG5cbi8qKlxuICogV2hpY2ggc3BvdCBvZiB0aGUgRmlsZSBFeHBsb3JlciB0aGUgdmF1bHQtcm9vdCBtZW51IHdhcyBvcGVuZWQgZnJvbS5cbiAqL1xuZXhwb3J0IGVudW0gRmlsZUV4cGxvcmVyUm9vdE1lbnVTcG90IHtcbiAgLyoqXG4gICAqIFRoZSBlbXB0eSBhcmVhIGJlbG93IHRoZSBmaWxlIGxpc3QuXG4gICAqL1xuICBFbXB0eUFyZWEgPSAnZW1wdHktYXJlYScsXG5cbiAgLyoqXG4gICAqIFRoZSB2YXVsdCBuYW1lIGF0IHRoZSB0b3Agb2YgdGhlIGxlZnQgc2lkZWJhci5cbiAgICovXG4gIFZhdWx0TmFtZSA9ICd2YXVsdC1uYW1lJ1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBGaWxlRXhwbG9yZXJSb290TWVudUNvbXBvbmVudH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUV4cGxvcmVyUm9vdE1lbnVDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIENhbGxlZCBlYWNoIHRpbWUgdGhlIHZhdWx0LXJvb3QgbWVudSBpcyBhYm91dCB0byBiZSBzaG93bi5cbiAgICovXG4gIHJlYWRvbmx5IGhhbmRsZXI6IEZpbGVFeHBsb3JlclJvb3RNZW51SGFuZGxlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcm9vdCBpcyBwcmVzZW50ZWQgYXMgYW4gb3JkaW5hcnkgZm9sZGVyIHdoaWxlIGl0cyBtZW51IGlzIGJ1aWx0LCBzbyB0aGF0IE9ic2lkaWFuIGFuZCBvdGhlciBwbHVnaW5zIGFkZFxuICAgKiB0aGUgaXRlbXMgdGhleSBhZGQgdG8gYW55IGZvbGRlci4gVGhlIGl0ZW1zIHRoYXQgbXVzdCBub3QgYWN0IG9uIHRoZSByb290IChyZW5hbWUsIGRlbGV0ZSwgbW92ZSwgbWFrZSBhIGNvcHkgYW5kXG4gICAqIHNlYXJjaCBpbiBmb2xkZXIpIGFyZSByZW1vdmVkIGFnYWluIGJlZm9yZSB0aGUgbWVudSBpcyBzaG93bi4gT24gdGhlIHZhdWx0IG5hbWUsIHRoZSByb290J3MgZm9sZGVyIG1lbnUgdGhlbiByZXBsYWNlc1xuICAgKiBPYnNpZGlhbidzIHZhdWx0IG1lbnUuIEl0IGhvbGRzIHdoaWxlIGFueSBzdWJzY3JpYmVyIGFza3MgZm9yIGl0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRQcmVzZW50Um9vdEFzRm9sZGVyPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBIGhhbmRsZXIgb2YgdGhlIHZhdWx0LXJvb3QgbWVudS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMuXG4gKi9cbmV4cG9ydCB0eXBlIEZpbGVFeHBsb3JlclJvb3RNZW51SGFuZGxlciA9IChwYXJhbXM6IEZpbGVFeHBsb3JlclJvb3RNZW51SGFuZGxlclBhcmFtcykgPT4gdm9pZDtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBhIHtAbGluayBGaWxlRXhwbG9yZXJSb290TWVudUhhbmRsZXJ9LlxuICpcbiAqIFRoZSBzaGFwZSBpcyBwYXJ0IG9mIHRoZSB3aXJlIGZvcm1hdCBiZXR3ZWVuIGNvcGllcyBvZiB0aGlzIGxpYnJhcnk6IGZpZWxkcyBhcmUgb25seSBldmVyIGFkZGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVFeHBsb3JlclJvb3RNZW51SGFuZGxlclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgbWVudSwgYWJvdXQgdG8gYmUgc2hvd246IHRoZSByb290J3MgZm9sZGVyIG1lbnUsIGFmdGVyIGV2ZXJ5IGBmaWxlLW1lbnVgIGhhbmRsZXIgaGFzIHJ1biwgb3Igb24gdGhlIHZhdWx0IG5hbWUgdGhlXG4gICAqIHZhdWx0IG1lbnUgT2JzaWRpYW4gYnVpbGRzIHRoZXJlLiBBIG1lbnUgc3RpbGwgZW1wdHkgYWZ0ZXIgZXZlcnkgaGFuZGxlciBpcyBub3Qgc2hvd24uXG4gICAqL1xuICByZWFkb25seSBtZW51OiBNZW51O1xuXG4gIC8qKlxuICAgKiBUaGUgcmlnaHQtY2xpY2sgb3IgbG9uZy1wcmVzcyB0aGF0IG9wZW5lZCB0aGUgbWVudS5cbiAgICovXG4gIHJlYWRvbmx5IG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSB2YXVsdCByb290LlxuICAgKi9cbiAgcmVhZG9ubHkgcm9vdEZvbGRlcjogVEZvbGRlcjtcblxuICAvKipcbiAgICogV2hpY2ggc3BvdCB0aGUgbWVudSB3YXMgb3BlbmVkIGZyb20uXG4gICAqL1xuICByZWFkb25seSBzcG90OiBGaWxlRXhwbG9yZXJSb290TWVudVNwb3Q7XG59XG5cbmludGVyZmFjZSBGaWxlRXhwbG9yZXJSb290TWVudUluc3RhbGxhdGlvbiB7XG4gIHJlYWRvbmx5IG93bmVyOiBGaWxlRXhwbG9yZXJSb290TWVudVN1YnNjcmlwdGlvbjtcbiAgdW5pbnN0YWxsOiAoKSA9PiB2b2lkO1xufVxuXG5pbnRlcmZhY2UgRmlsZUV4cGxvcmVyUm9vdE1lbnVTaGFyZWRTdGF0ZSB7XG4gIGluc3RhbGxhdGlvbjogRmlsZUV4cGxvcmVyUm9vdE1lbnVJbnN0YWxsYXRpb24gfCBudWxsO1xuICByZWFkb25seSBzdWJzY3JpcHRpb25zOiBGaWxlRXhwbG9yZXJSb290TWVudVN1YnNjcmlwdGlvbltdO1xufVxuXG5pbnRlcmZhY2UgRmlsZUV4cGxvcmVyUm9vdE1lbnVTdWJzY3JpcHRpb24ge1xuICBoYW5kbGVyOiAocGFyYW1zOiBGaWxlRXhwbG9yZXJSb290TWVudUhhbmRsZXJQYXJhbXMpID0+IHZvaWQ7XG4gIGluc3RhbGw6ICgpID0+ICgpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IHNob3VsZFByZXNlbnRSb290QXNGb2xkZXI6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBGaWxlRXhwbG9yZXJWaWV3V2l0aENvbnRleHRNZW51IGV4dGVuZHMgRmlsZUV4cGxvcmVyVmlldyB7XG4gIG9uRmlsZUNvbnRleHRNZW51OiAobW91c2VFdmVudDogTW91c2VFdmVudCwgZmlsZTogVEFic3RyYWN0RmlsZSkgPT4gdm9pZDtcbn1cblxuaW50ZXJmYWNlIE9wZW5Sb290TWVudVBhcmFtcyB7XG4gIHJlYWRvbmx5IG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQ7XG4gIHJlYWRvbmx5IG9wZW5OYXRpdmU6ICgpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IHJvb3RGb2xkZXI6IFRGb2xkZXI7XG4gIHJlYWRvbmx5IHNwb3Q6IEZpbGVFeHBsb3JlclJvb3RNZW51U3BvdDtcbn1cblxuLyoqXG4gKiBIYW5kcyB0aGUgY29yZSBGaWxlIEV4cGxvcmVyJ3MgdmF1bHQtcm9vdCBtZW51IHRvIGEgaGFuZGxlciwgYW5kIG9wZW5zIHRoYXQgbWVudSBmcm9tIHRoZSB2YXVsdCBuYW1lIHRvby5cbiAqXG4gKiBBbnkgbnVtYmVyIG9mIHRoZXNlLCBpbiBhbnkgbnVtYmVyIG9mIHBsdWdpbnMsIHNoYXJlIG9uZSBpbnN0YWxsYXRpb24gcGVyIHtAbGluayBBcHB9LlxuICovXG5leHBvcnQgY2xhc3MgRmlsZUV4cGxvcmVyUm9vdE1lbnVDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRFeCB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgZWFjaCB0aW1lIHRoZSB2YXVsdC1yb290IG1lbnUgaXMgYWJvdXQgdG8gYmUgc2hvd24uXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFuZGxlcjogRmlsZUV4cGxvcmVyUm9vdE1lbnVIYW5kbGVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSByb290IGlzIHByZXNlbnRlZCBhcyBhbiBvcmRpbmFyeSBmb2xkZXIgd2hpbGUgaXRzIG1lbnUgaXMgYnVpbHQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2hvdWxkUHJlc2VudFJvb3RBc0ZvbGRlcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBmaWxlIGV4cGxvcmVyIHJvb3QgbWVudSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycy5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IEZpbGVFeHBsb3JlclJvb3RNZW51Q29tcG9uZW50Q29uc3RydWN0b3JQYXJhbXMpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYXBwID0gcGFyYW1zLmFwcDtcbiAgICB0aGlzLmhhbmRsZXIgPSBwYXJhbXMuaGFuZGxlcjtcbiAgICB0aGlzLnNob3VsZFByZXNlbnRSb290QXNGb2xkZXIgPSBwYXJhbXMuc2hvdWxkUHJlc2VudFJvb3RBc0ZvbGRlciA/PyBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmVzIHRvIHRoZSBzaGFyZWQgaW5zdGFsbGF0aW9uLCBpbnN0YWxsaW5nIGl0IHdoZW4gbm9ib2R5IGhhcyB5ZXQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgb25sb2FkKCk6IHZvaWQge1xuICAgIHN1cGVyLm9ubG9hZCgpO1xuXG4gICAgY29uc3Qgc3RhdGUgPSBnZXRTaGFyZWRTdGF0ZSh0aGlzLmFwcCk7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uOiBGaWxlRXhwbG9yZXJSb290TWVudVN1YnNjcmlwdGlvbiA9IHtcbiAgICAgIGhhbmRsZXI6IHRoaXMuaGFuZGxlcixcbiAgICAgIGluc3RhbGw6ICgpID0+IGluc3RhbGxSb290TWVudSh0aGlzLmFwcCwgc3RhdGUpLFxuICAgICAgc2hvdWxkUHJlc2VudFJvb3RBc0ZvbGRlcjogdGhpcy5zaG91bGRQcmVzZW50Um9vdEFzRm9sZGVyXG4gICAgfTtcbiAgICBzdGF0ZS5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgICBzdGF0ZS5pbnN0YWxsYXRpb24gPz89IHsgb3duZXI6IHN1YnNjcmlwdGlvbiwgdW5pbnN0YWxsOiBzdWJzY3JpcHRpb24uaW5zdGFsbCgpIH07XG5cbiAgICB0aGlzLnJlZ2lzdGVyKCgpID0+IHtcbiAgICAgIHN0YXRlLnN1YnNjcmlwdGlvbnMuc3BsaWNlKHN0YXRlLnN1YnNjcmlwdGlvbnMuaW5kZXhPZihzdWJzY3JpcHRpb24pLCAxKTtcbiAgICAgIGlmIChzdGF0ZS5pbnN0YWxsYXRpb24/Lm93bmVyICE9PSBzdWJzY3JpcHRpb24pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBzdGF0ZS5pbnN0YWxsYXRpb24udW5pbnN0YWxsKCk7XG4gICAgICBjb25zdCBuZXh0T3duZXIgPSBzdGF0ZS5zdWJzY3JpcHRpb25zWzBdO1xuICAgICAgc3RhdGUuaW5zdGFsbGF0aW9uID0gbmV4dE93bmVyID8geyBvd25lcjogbmV4dE93bmVyLCB1bmluc3RhbGw6IG5leHRPd25lci5pbnN0YWxsKCkgfSA6IG51bGw7XG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2goc3RhdGU6IEZpbGVFeHBsb3JlclJvb3RNZW51U2hhcmVkU3RhdGUsIHBhcmFtczogRmlsZUV4cGxvcmVyUm9vdE1lbnVIYW5kbGVyUGFyYW1zKTogdm9pZCB7XG4gIGlmIChzdGF0ZS5zdWJzY3JpcHRpb25zLnNvbWUoKHN1YnNjcmlwdGlvbikgPT4gc3Vic2NyaXB0aW9uLnNob3VsZFByZXNlbnRSb290QXNGb2xkZXIpKSB7XG4gICAgcmVtb3ZlUm9vdFVuc2FmZUl0ZW1zKHBhcmFtcy5tZW51KTtcbiAgfVxuXG4gIC8vIEEgc25hcHNob3Q6IGEgaGFuZGxlciBtYXkgdW5sb2FkIGl0cyBvd24gY29tcG9uZW50LCBvciBhbm90aGVyIG9uZSwgd2hpbGUgdGhlIG1lbnUgaXMgZGlzcGF0Y2hlZC5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbm8tdXNlbGVzcy1zcHJlYWQgLS0gVGhlIGNvcHkgaXMgdGhlIHBvaW50OiB0aGUgbGlzdCBtYXkgY2hhbmdlIGR1cmluZyB0aGUgbG9vcC5cbiAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2YgWy4uLnN0YXRlLnN1YnNjcmlwdGlvbnNdKSB7XG4gICAgdHJ5IHtcbiAgICAgIHN1YnNjcmlwdGlvbi5oYW5kbGVyKHBhcmFtcyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0EgZmlsZSBleHBsb3JlciByb290IG1lbnUgaGFuZGxlciBmYWlsZWQnLCBlcnJvcik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGRpc3BhdGNoQmVmb3JlU2hvdyhzdGF0ZTogRmlsZUV4cGxvcmVyUm9vdE1lbnVTaGFyZWRTdGF0ZSwgcGFyYW1zOiBGaWxlRXhwbG9yZXJSb290TWVudUhhbmRsZXJQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3QgdW5pbnN0YWxsU2hvd1BhdGNoID0gYXJvdW5kKHBhcmFtcy5tZW51LCB7XG4gICAgc2hvd0F0TW91c2VFdmVudDogKG5leHQpID0+XG4gICAgICBmdW5jdGlvbiBwYXRjaGVkU2hvd0F0TW91c2VFdmVudCh0aGlzOiBNZW51LCBzaG93TW91c2VFdmVudDogTW91c2VFdmVudCk6IE1lbnUge1xuICAgICAgICB1bmluc3RhbGxTaG93UGF0Y2goKTtcbiAgICAgICAgZGlzcGF0Y2goc3RhdGUsIHBhcmFtcyk7XG4gICAgICAgIHJldHVybiBwYXJhbXMubWVudS5pdGVtcy5sZW5ndGggPT09IDAgPyB0aGlzIDogbmV4dC5jYWxsKHRoaXMsIHNob3dNb3VzZUV2ZW50KTtcbiAgICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldEZpbGVFeHBsb3JlckxlYWYoYXBwOiBBcHApOiBudWxsIHwgV29ya3NwYWNlTGVhZiB7XG4gIHJldHVybiBhcHAud29ya3NwYWNlLmdldExlYXZlc09mVHlwZShWaWV3VHlwZS5GaWxlRXhwbG9yZXIpWzBdID8/IG51bGw7XG59XG5cbmZ1bmN0aW9uIGdldFNoYXJlZFN0YXRlKGFwcDogQXBwKTogRmlsZUV4cGxvcmVyUm9vdE1lbnVTaGFyZWRTdGF0ZSB7XG4gIGNvbnN0IHN0YXRlc0J5QXBwID0gZ2V0T2JzaWRpYW5MaWJTdGF0ZShTSEFSRURfU1RBVEVfS0VZLCBuZXcgV2Vha01hcDxBcHAsIEZpbGVFeHBsb3JlclJvb3RNZW51U2hhcmVkU3RhdGU+KCkpLnZhbHVlO1xuICBsZXQgc3RhdGUgPSBzdGF0ZXNCeUFwcC5nZXQoYXBwKTtcbiAgaWYgKCFzdGF0ZSkge1xuICAgIHN0YXRlID0geyBpbnN0YWxsYXRpb246IG51bGwsIHN1YnNjcmlwdGlvbnM6IFtdIH07XG4gICAgc3RhdGVzQnlBcHAuc2V0KGFwcCwgc3RhdGUpO1xuICB9XG4gIHJldHVybiBzdGF0ZTtcbn1cblxuZnVuY3Rpb24gaW5zdGFsbFJvb3RNZW51KGFwcDogQXBwLCBzdGF0ZTogRmlsZUV4cGxvcmVyUm9vdE1lbnVTaGFyZWRTdGF0ZSk6ICgpID0+IHZvaWQge1xuICBsZXQgaXNVbmluc3RhbGxlZCA9IGZhbHNlO1xuICBsZXQgcGVuZGluZ1Nwb3Q6IEZpbGVFeHBsb3JlclJvb3RNZW51U3BvdCB8IG51bGwgPSBudWxsO1xuICBsZXQgdW5pbnN0YWxsUGF0Y2g6ICgoKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuXG4gIGZ1bmN0aW9uIHRyeVBhdGNoKCk6IHZvaWQge1xuICAgIGlmIChpc1VuaW5zdGFsbGVkIHx8IHVuaW5zdGFsbFBhdGNoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmlldyA9IGdldEZpbGVFeHBsb3JlckxlYWYoYXBwKT8udmlldztcbiAgICBpZiAoIWlzRmlsZUV4cGxvcmVyVmlldyh2aWV3KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHVuaW5zdGFsbFBhdGNoID0gYXJvdW5kKGdldFByb3RvdHlwZU9mKHZpZXcpLCB7XG4gICAgICBvbkZpbGVDb250ZXh0TWVudTogKG5leHQpID0+XG4gICAgICAgIGZ1bmN0aW9uIHBhdGNoZWRPbkZpbGVDb250ZXh0TWVudSh0aGlzOiBGaWxlRXhwbG9yZXJWaWV3V2l0aENvbnRleHRNZW51LCBtb3VzZUV2ZW50OiBNb3VzZUV2ZW50LCBmaWxlOiBUQWJzdHJhY3RGaWxlKTogdm9pZCB7XG4gICAgICAgICAgaWYgKCEoZmlsZSBpbnN0YW5jZW9mIFRGb2xkZXIpIHx8ICFmaWxlLmlzUm9vdCgpKSB7XG4gICAgICAgICAgICBuZXh0LmNhbGwodGhpcywgbW91c2VFdmVudCwgZmlsZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgb3BlblJvb3RNZW51KHtcbiAgICAgICAgICAgIG1vdXNlRXZlbnQsXG4gICAgICAgICAgICBvcGVuTmF0aXZlOiAoKSA9PiB7XG4gICAgICAgICAgICAgIG5leHQuY2FsbCh0aGlzLCBtb3VzZUV2ZW50LCBmaWxlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByb290Rm9sZGVyOiBmaWxlLFxuICAgICAgICAgICAgc3BvdDogcGVuZGluZ1Nwb3QgPz8gRmlsZUV4cGxvcmVyUm9vdE1lbnVTcG90LkVtcHR5QXJlYVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBvcGVuUm9vdE1lbnUocGFyYW1zOiBPcGVuUm9vdE1lbnVQYXJhbXMpOiB2b2lkIHtcbiAgICBjb25zdCB7IG1vdXNlRXZlbnQsIG9wZW5OYXRpdmUsIHJvb3RGb2xkZXIsIHNwb3QgfSA9IHBhcmFtcztcbiAgICBjb25zdCBldmVudFJlZiA9IGFwcC53b3Jrc3BhY2Uub24oJ2ZpbGUtbWVudScsIChtZW51LCBmaWxlLCBzb3VyY2UpID0+IHtcbiAgICAgIGlmIChmaWxlICE9PSByb290Rm9sZGVyIHx8IHNvdXJjZSAhPT0gRklMRV9FWFBMT1JFUl9NRU5VX1NPVVJDRSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGFwcC53b3Jrc3BhY2Uub2ZmcmVmKGV2ZW50UmVmKTtcbiAgICAgIGRpc3BhdGNoQmVmb3JlU2hvdyhzdGF0ZSwgeyBtZW51LCBtb3VzZUV2ZW50LCByb290Rm9sZGVyLCBzcG90IH0pO1xuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzdG9yZUlzUm9vdCA9IHN0YXRlLnN1YnNjcmlwdGlvbnMuc29tZSgoc3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24uc2hvdWxkUHJlc2VudFJvb3RBc0ZvbGRlcilcbiAgICAgID8gcHJlc2VudEFzRm9sZGVyKHJvb3RGb2xkZXIpXG4gICAgICA6IG51bGw7XG5cbiAgICB0cnkge1xuICAgICAgb3Blbk5hdGl2ZSgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICByZXN0b3JlSXNSb290Py4oKTtcbiAgICAgIGFwcC53b3Jrc3BhY2Uub2ZmcmVmKGV2ZW50UmVmKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBvcGVuRnJvbVZhdWx0TmFtZShtb3VzZUV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaXNPblZhdWx0TmFtZSA9IG1vdXNlRXZlbnQuY29tcG9zZWRQYXRoKCkuc29tZSgodGFyZ2V0KSA9PiB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiBWQVVMVF9OQU1FX1NFTEVDVE9SUy5zb21lKChzZWxlY3RvcikgPT4gdGFyZ2V0Lm1hdGNoZXMoc2VsZWN0b3IpKSk7XG4gICAgaWYgKCFpc09uVmF1bHROYW1lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gYE1lbnUuZm9yRXZlbnRgIGhhbmRzIGV2ZXJ5IGxpc3RlbmVyIG9mIG9uZSBldmVudCB0aGUgc2FtZSBtZW51IGFuZCBzaG93cyBpdCBvbiB0aGUgbmV4dCB0YXNrLiBPYnNpZGlhbidzIG93blxuICAgIC8vIGxpc3RlbmVyIG9uIHRoZSB2YXVsdCBuYW1lIGFkZHMgaXRzIHZhdWx0IGl0ZW1zIHRvIGl0IGFmdGVyIHRoaXMgY2FwdHVyZS1waGFzZSBvbmUgaGFzIHJ1bi5cbiAgICBjb25zdCB2YXVsdE1lbnUgPSBNZW51LmZvckV2ZW50KG1vdXNlRXZlbnQpO1xuICAgIGNvbnN0IHJvb3RGb2xkZXIgPSBhcHAudmF1bHQuZ2V0Um9vdCgpO1xuICAgIGNvbnN0IGxlYWYgPSBnZXRGaWxlRXhwbG9yZXJMZWFmKGFwcCk7XG4gICAgaWYgKCFsZWFmIHx8IHN0YXRlLnN1YnNjcmlwdGlvbnMuZXZlcnkoKHN1YnNjcmlwdGlvbikgPT4gIXN1YnNjcmlwdGlvbi5zaG91bGRQcmVzZW50Um9vdEFzRm9sZGVyKSkge1xuICAgICAgZGlzcGF0Y2hCZWZvcmVTaG93KHN0YXRlLCB7IG1lbnU6IHZhdWx0TWVudSwgbW91c2VFdmVudCwgcm9vdEZvbGRlciwgc3BvdDogRmlsZUV4cGxvcmVyUm9vdE1lbnVTcG90LlZhdWx0TmFtZSB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBQcmVzZW50ZWQgYXMgYSBmb2xkZXIsIHRoZSByb290J3MgZm9sZGVyIG1lbnUgcmVwbGFjZXMgdGhlIHZhdWx0IG1lbnUgcmF0aGVyIHRoYW4gb3BlbmluZyBvbiB0b3Agb2YgaXQuXG4gICAgZnVuY3Rpb24gc3VwcHJlc3NWYXVsdE1lbnVTaG93KCk6IE1lbnUge1xuICAgICAgdW5pbnN0YWxsVmF1bHRNZW51U2hvd1BhdGNoKCk7XG4gICAgICByZXR1cm4gdmF1bHRNZW51O1xuICAgIH1cbiAgICBjb25zdCB1bmluc3RhbGxWYXVsdE1lbnVTaG93UGF0Y2ggPSBhcm91bmQodmF1bHRNZW51LCB7IHNob3dBdE1vdXNlRXZlbnQ6ICgpID0+IHN1cHByZXNzVmF1bHRNZW51U2hvdyB9KTtcbiAgICBpbnZva2VBc3luY1NhZmVseShhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBsZWFmLmxvYWRJZkRlZmVycmVkKCk7XG4gICAgICBjb25zdCB2aWV3ID0gbGVhZi52aWV3O1xuICAgICAgaWYgKGlzVW5pbnN0YWxsZWQgfHwgIWlzRmlsZUV4cGxvcmVyVmlldyh2aWV3KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRyeVBhdGNoKCk7XG4gICAgICB2aWV3LnRyZWUuY2xlYXJTZWxlY3RlZERvbXMoKTtcbiAgICAgIHBlbmRpbmdTcG90ID0gRmlsZUV4cGxvcmVyUm9vdE1lbnVTcG90LlZhdWx0TmFtZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZpZXcub25GaWxlQ29udGV4dE1lbnUobW91c2VFdmVudCwgcm9vdEZvbGRlcik7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBwZW5kaW5nU3BvdCA9IG51bGw7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB0cnlQYXRjaCgpO1xuICBjb25zdCBsYXlvdXRDaGFuZ2VFdmVudFJlZiA9IGFwcC53b3Jrc3BhY2Uub24oJ2xheW91dC1jaGFuZ2UnLCB0cnlQYXRjaCk7XG4gIGFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeSh0cnlQYXRjaCk7XG4gIGNvbnN0IGRvYyA9IGFwcC53b3Jrc3BhY2UuY29udGFpbmVyRWwuZG9jO1xuICBkb2MuYWRkRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCBvcGVuRnJvbVZhdWx0TmFtZSwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuXG4gIHJldHVybiAoKSA9PiB7XG4gICAgaXNVbmluc3RhbGxlZCA9IHRydWU7XG4gICAgdW5pbnN0YWxsUGF0Y2g/LigpO1xuICAgIGFwcC53b3Jrc3BhY2Uub2ZmcmVmKGxheW91dENoYW5nZUV2ZW50UmVmKTtcbiAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCBvcGVuRnJvbVZhdWx0TmFtZSwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICB9O1xufVxuXG5mdW5jdGlvbiBpc0ZpbGVFeHBsb3JlclZpZXcodmlldzogdW5rbm93bik6IHZpZXcgaXMgRmlsZUV4cGxvcmVyVmlld1dpdGhDb250ZXh0TWVudSB7XG4gIHJldHVybiB0eXBlb2YgKHZpZXcgYXMgUGFydGlhbDxGaWxlRXhwbG9yZXJWaWV3V2l0aENvbnRleHRNZW51PiB8IHVuZGVmaW5lZCk/Lm9uRmlsZUNvbnRleHRNZW51ID09PSAnZnVuY3Rpb24nO1xufVxuXG5mdW5jdGlvbiBwcmVzZW50QXNGb2xkZXIocm9vdEZvbGRlcjogVEZvbGRlcik6ICgpID0+IHZvaWQge1xuICBjb25zdCBvd25Jc1Jvb3REZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyb290Rm9sZGVyLCAnaXNSb290Jyk7XG4gIHJvb3RGb2xkZXIuaXNSb290ID0gKCk6IGJvb2xlYW4gPT4gZmFsc2U7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgaWYgKG93bklzUm9vdERlc2NyaXB0b3IpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyb290Rm9sZGVyLCAnaXNSb290Jywgb3duSXNSb290RGVzY3JpcHRvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSAocm9vdEZvbGRlciBhcyBQYXJ0aWFsPFRGb2xkZXI+KS5pc1Jvb3Q7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiByZW1vdmVSb290VW5zYWZlSXRlbXMobWVudTogTWVudSk6IHZvaWQge1xuICBjb25zdCB1bnNhZmVUaXRsZXMgPSBuZXcgU2V0PG51bGwgfCBzdHJpbmc+KFJPT1RfVU5TQUZFX0lURU1fVElUTEVfS0VZUy5tYXAoKGtleSkgPT4gYWN0aXZlV2luZG93LmkxOG5leHQudChrZXkpKSk7XG4gIG1lbnUuaXRlbXMgPSBtZW51Lml0ZW1zLmZpbHRlcigoaXRlbSkgPT4gIShpdGVtIGluc3RhbmNlb2YgTWVudUl0ZW0pIHx8ICF1bnNhZmVUaXRsZXMuaGFzKGl0ZW0udGl0bGVFbC50ZXh0Q29udGVudCkpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTZCQSxtQkFBa0M7QUFDbEMsMEJBQStCO0FBQy9CLDZCQUF5QjtBQUN6QixzQkFJTztBQUVQLGdDQUFvQztBQUNwQywwQkFB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
340
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXItcm9vdC1tZW51LWNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogT3BlbnMgYW5kIGV4dGVuZHMgdGhlIGNvcmUgRmlsZSBFeHBsb3JlcidzIGNvbnRleHQgbWVudSBmb3IgdGhlIHZhdWx0IHJvb3QsIGF0IHRoZSB0d28gc3BvdHMgdGhhdCBzdGFuZCBmb3IgaXQ6IHRoZVxuICogdmF1bHQgbmFtZSBhdCB0aGUgdG9wIG9mIHRoZSBsZWZ0IHNpZGViYXIsIGFuZCB0aGUgZW1wdHkgYXJlYSBiZWxvdyB0aGUgZmlsZSBsaXN0LlxuICpcbiAqIE9ic2lkaWFuIGFscmVhZHkgb3BlbnMgYSBtZW51IGZvciB0aGUgZW1wdHkgYXJlYTogdGhlIHZpZXcncyBvd24gYGNvbnRleHRtZW51YCBsaXN0ZW5lciBvbiBpdHMgZmlsZXMgY29udGFpbmVyIGNhbGxzXG4gKiBgb25GaWxlQ29udGV4dE1lbnUoZXZ0LCB2YXVsdC5nZXRSb290KCkpYCwgd2hpY2ggYnVpbGRzIGEge0BsaW5rIE1lbnV9LCB0cmlnZ2VycyBgZmlsZS1tZW51YCB3aXRoIHRoZSByb290IGZvbGRlciBhbmRcbiAqIHRoZSBzb3VyY2UgYGZpbGUtZXhwbG9yZXItY29udGV4dC1tZW51YCwgYW5kIHNob3dzIGl0LiBUaGUgdmF1bHQgbmFtZSAoYC53b3Jrc3BhY2UtZHJhd2VyLXZhdWx0LXN3aXRjaGVyYCBvbiBkZXNrdG9wLFxuICogYC53b3Jrc3BhY2UtZHJhd2VyLWhlYWRlci1uYW1lYCBvbiBtb2JpbGUsIHdoZXJlIE9ic2lkaWFuIGJ1aWxkcyBubyBzd2l0Y2hlcikgb3BlbnMgYSBkaWZmZXJlbnQgbWVudTogb24gZGVza3RvcFxuICogT2JzaWRpYW4gYWRkcyBgU2hvdyBpbiBzeXN0ZW0gZXhwbG9yZXJgIGFuZCBgQ29weSBwYXRoYCB0byB0aGUgcGVyLWV2ZW50IG1lbnUgYE1lbnUuZm9yRXZlbnRgIGhhbmRzIG91dC4gVGhlIGhhbmRsZXJzXG4gKiBnZXQgdGhhdCBtZW51LCBzbyBhIHJpZ2h0LWNsaWNrIHRoZXJlIG5ldmVyIG9wZW5zIGEgc2Vjb25kIG9uZS4gQSBzdWJzY3JpYmVyIHRoYXQgcHJlc2VudHMgdGhlIHJvb3QgYXMgYSBmb2xkZXJcbiAqIHJlcGxhY2VzIGl0IHdpdGggdGhlIHJvb3QncyBmb2xkZXIgbWVudSBpbnN0ZWFkLiBSZWFkIGZyb20gT2JzaWRpYW4gYDEuMTUuMGAuXG4gKlxuICogRXZlcnkgcGx1Z2luIGJ1bmRsZXMgaXRzIG93biBjb3B5IG9mIHRoaXMgbGlicmFyeSwgYW5kIHNldmVyYWwgb2YgdGhlbSBtYXkgd2FudCB0aGlzIG1lbnUuIFR3byBjb3BpZXMgcGF0Y2hpbmcgdGhlXG4gKiBzYW1lIHByb3RvdHlwZSBhbmQgbGlzdGVuaW5nIG9uIHRoZSBzYW1lIGVsZW1lbnQgd291bGQgb3BlbiBpdCB0d2ljZSwgc28gdGhlcmUgaXMgT05FIGluc3RhbGxhdGlvbiBwZXIge0BsaW5rIEFwcH0sXG4gKiBrZXB0IGluIHRoZSBzaGFyZWQtc3RhdGUgYmFnIHVuZGVyIGEgdmVyc2lvbmVkIGtleSBhbmQgb3duZWQgYnkgb25lIHN1YnNjcmliZXIuIFdoZW4gdGhlIG93bmVyIHVubG9hZHMgd2hpbGUgb3RoZXJzXG4gKiByZW1haW4sIHRoZSBuZXh0IHN1YnNjcmliZXIgaW5zdGFsbHMgaXQgYWdhaW4gZnJvbSBpdHMgb3duIGNvcHkuIFdoYXQgY3Jvc3NlcyB0aGF0IGJvdW5kYXJ5IGlzIGEgd2lyZSBmb3JtYXQgYmV0d2VlblxuICogY29waWVzIG9mIGRpZmZlcmVudCB2ZXJzaW9uczogcGxhaW4gb2JqZWN0cyBhbmQgcGxhaW4gZnVuY3Rpb25zIG9ubHksIHJlYWQgc3RydWN0dXJhbGx5LCBhbmQgYSBjaGFuZ2UgdG8gd2hhdCBhIGZpZWxkXG4gKiBtZWFucyBtb3ZlcyB0byBhIG5ldyBrZXkgcmF0aGVyIHRoYW4gcmVpbnRlcnByZXRpbmcgdGhlIG9sZCBvbmUuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBGaWxlRXhwbG9yZXJWaWV3IH0gZnJvbSAnQG9ic2lkaWFuLXR5cGluZ3Mvb2JzaWRpYW4tcHVibGljLWxhdGVzdCc7XG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgVEFic3RyYWN0RmlsZSxcbiAgV29ya3NwYWNlTGVhZlxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGludm9rZUFzeW5jU2FmZWx5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcbmltcG9ydCB7IGdldFByb3RvdHlwZU9mIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL29iamVjdC11dGlscyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJ0BvYnNpZGlhbi10eXBpbmdzL29ic2lkaWFuLXB1YmxpYy1sYXRlc3QvaW1wbGVtZW50YXRpb25zJztcbmltcG9ydCB7XG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBURm9sZGVyXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgZ2V0T2JzaWRpYW5MaWJTdGF0ZSB9IGZyb20gJy4uL29ic2lkaWFuLWxpYi1zdGF0ZS50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vY29tcG9uZW50LWV4LnRzJztcbmltcG9ydCB7IGFyb3VuZCB9IGZyb20gJy4vbW9ua2V5LWFyb3VuZC1jb21wb25lbnQudHMnO1xuXG4vKipcbiAqIFRoZSBlbGVtZW50cyB0aGF0IHN0YW5kIGZvciB0aGUgdmF1bHQgcm9vdCBhdCB0aGUgdG9wIG9mIHRoZSBsZWZ0IHNpZGViYXIsIGluIHByaW9yaXR5IG9yZGVyLiBPYnNpZGlhbiBidWlsZHNcbiAqIGAud29ya3NwYWNlLWRyYXdlci12YXVsdC1zd2l0Y2hlcmAgb25seSBvbiBkZXNrdG9wOyBvbiBtb2JpbGUgdGhlIHZhdWx0IG5hbWUgaXMgdGhlIGRyYXdlciBoZWFkZXIgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFZBVUxUX05BTUVfU0VMRUNUT1JTID0gW1xuICAnLndvcmtzcGFjZS1kcmF3ZXItdmF1bHQtc3dpdGNoZXInLFxuICAnLndvcmtzcGFjZS1kcmF3ZXItaGVhZGVyLW5hbWUnXG5dIGFzIGNvbnN0O1xuXG4vKipcbiAqIFRoZSBgc291cmNlYCBPYnNpZGlhbiBwYXNzZXMgd2l0aCBgZmlsZS1tZW51YCB3aGVuIHRoZSBGaWxlIEV4cGxvcmVyIG9wZW5zIGEgbWVudS5cbiAqL1xuY29uc3QgRklMRV9FWFBMT1JFUl9NRU5VX1NPVVJDRSA9ICdmaWxlLWV4cGxvcmVyLWNvbnRleHQtbWVudSc7XG5cbi8qKlxuICogVGhlIG1lbnUgaXRlbXMgdGhhdCBtdXN0IG5vdCBhY3Qgb24gdGhlIHZhdWx0IHJvb3QsIGJ5IHRoZSBsb2NhbGl6YXRpb24ga2V5IG9mIHRoZWlyIHRpdGxlLiBUaGV5IGFwcGVhciBvbmx5IHdoZW5cbiAqIHRoZSByb290IGlzIHByZXNlbnRlZCBhcyBhbiBvcmRpbmFyeSBmb2xkZXIsIGZyb20gT2JzaWRpYW4gaXRzZWxmIG9yIGZyb20gYW5vdGhlciBwbHVnaW4ncyBgZmlsZS1tZW51YCBoYW5kbGVyLlxuICovXG5jb25zdCBST09UX1VOU0FGRV9JVEVNX1RJVExFX0tFWVMgPSBbXG4gICdwbHVnaW5zLmZpbGUtZXhwbG9yZXIuYWN0aW9uLW1vdmUtZm9sZGVyJyxcbiAgJ3BsdWdpbnMuZmlsZS1leHBsb3Jlci5tZW51LW9wdC1kZWxldGUnLFxuICAncGx1Z2lucy5maWxlLWV4cGxvcmVyLm1lbnUtb3B0LW1ha2UtY29weScsXG4gICdwbHVnaW5zLmZpbGUtZXhwbG9yZXIubWVudS1vcHQtcmVuYW1lJyxcbiAgJ3BsdWdpbnMuc2VhcmNoLm1lbnUtb3B0LXNlYXJjaC1pbi1mb2xkZXInXG5dIGFzIGNvbnN0O1xuXG5jb25zdCBTSEFSRURfU1RBVEVfS0VZID0gJ2ZpbGVFeHBsb3JlclJvb3RNZW51VjEnO1xuXG4vKipcbiAqIFdoaWNoIHNwb3Qgb2YgdGhlIEZpbGUgRXhwbG9yZXIgdGhlIHZhdWx0LXJvb3QgbWVudSB3YXMgb3BlbmVkIGZyb20uXG4gKi9cbmV4cG9ydCBlbnVtIEZpbGVFeHBsb3JlclJvb3RNZW51U3BvdCB7XG4gIC8qKlxuICAgKiBUaGUgZW1wdHkgYXJlYSBiZWxvdyB0aGUgZmlsZSBsaXN0LlxuICAgKi9cbiAgRW1wdHlBcmVhID0gJ2VtcHR5LWFyZWEnLFxuXG4gIC8qKlxuICAgKiBUaGUgdmF1bHQgbmFtZSBhdCB0aGUgdG9wIG9mIHRoZSBsZWZ0IHNpZGViYXIuXG4gICAqL1xuICBWYXVsdE5hbWUgPSAndmF1bHQtbmFtZSdcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgRmlsZUV4cGxvcmVyUm9vdE1lbnVDb21wb25lbnR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVFeHBsb3JlclJvb3RNZW51Q29tcG9uZW50Q29uc3RydWN0b3JQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgZWFjaCB0aW1lIHRoZSB2YXVsdC1yb290IG1lbnUgaXMgYWJvdXQgdG8gYmUgc2hvd24uXG4gICAqL1xuICByZWFkb25seSBoYW5kbGVyOiBGaWxlRXhwbG9yZXJSb290TWVudUhhbmRsZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJvb3QgaXMgcHJlc2VudGVkIGFzIGFuIG9yZGluYXJ5IGZvbGRlciB3aGlsZSBpdHMgbWVudSBpcyBidWlsdCwgc28gdGhhdCBPYnNpZGlhbiBhbmQgb3RoZXIgcGx1Z2lucyBhZGRcbiAgICogdGhlIGl0ZW1zIHRoZXkgYWRkIHRvIGFueSBmb2xkZXIuIFRoZSBpdGVtcyB0aGF0IG11c3Qgbm90IGFjdCBvbiB0aGUgcm9vdCAocmVuYW1lLCBkZWxldGUsIG1vdmUsIG1ha2UgYSBjb3B5IGFuZFxuICAgKiBzZWFyY2ggaW4gZm9sZGVyKSBhcmUgcmVtb3ZlZCBhZ2FpbiBiZWZvcmUgdGhlIG1lbnUgaXMgc2hvd24uIE9uIHRoZSB2YXVsdCBuYW1lLCB0aGUgcm9vdCdzIGZvbGRlciBtZW51IHRoZW4gcmVwbGFjZXNcbiAgICogT2JzaWRpYW4ncyB2YXVsdCBtZW51LiBJdCBob2xkcyB3aGlsZSBhbnkgc3Vic2NyaWJlciBhc2tzIGZvciBpdC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUHJlc2VudFJvb3RBc0ZvbGRlcj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSBoYW5kbGVyIG9mIHRoZSB2YXVsdC1yb290IG1lbnUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzLlxuICovXG5leHBvcnQgdHlwZSBGaWxlRXhwbG9yZXJSb290TWVudUhhbmRsZXIgPSAocGFyYW1zOiBGaWxlRXhwbG9yZXJSb290TWVudUhhbmRsZXJQYXJhbXMpID0+IHZvaWQ7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgYSB7QGxpbmsgRmlsZUV4cGxvcmVyUm9vdE1lbnVIYW5kbGVyfS5cbiAqXG4gKiBUaGUgc2hhcGUgaXMgcGFydCBvZiB0aGUgd2lyZSBmb3JtYXQgYmV0d2VlbiBjb3BpZXMgb2YgdGhpcyBsaWJyYXJ5OiBmaWVsZHMgYXJlIG9ubHkgZXZlciBhZGRlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlRXhwbG9yZXJSb290TWVudUhhbmRsZXJQYXJhbXMge1xuICAvKipcbiAgICogVGhlIG1lbnUsIGFib3V0IHRvIGJlIHNob3duOiB0aGUgcm9vdCdzIGZvbGRlciBtZW51LCBhZnRlciBldmVyeSBgZmlsZS1tZW51YCBoYW5kbGVyIGhhcyBydW4sIG9yIG9uIHRoZSB2YXVsdCBuYW1lIHRoZVxuICAgKiB2YXVsdCBtZW51IE9ic2lkaWFuIGJ1aWxkcyB0aGVyZS4gQSBtZW51IHN0aWxsIGVtcHR5IGFmdGVyIGV2ZXJ5IGhhbmRsZXIgaXMgbm90IHNob3duLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVudTogTWVudTtcblxuICAvKipcbiAgICogVGhlIHJpZ2h0LWNsaWNrIG9yIGxvbmctcHJlc3MgdGhhdCBvcGVuZWQgdGhlIG1lbnUuXG4gICAqL1xuICByZWFkb25seSBtb3VzZUV2ZW50OiBNb3VzZUV2ZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgdmF1bHQgcm9vdC5cbiAgICovXG4gIHJlYWRvbmx5IHJvb3RGb2xkZXI6IFRGb2xkZXI7XG5cbiAgLyoqXG4gICAqIFdoaWNoIHNwb3QgdGhlIG1lbnUgd2FzIG9wZW5lZCBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgc3BvdDogRmlsZUV4cGxvcmVyUm9vdE1lbnVTcG90O1xufVxuXG5pbnRlcmZhY2UgRmlsZUV4cGxvcmVyUm9vdE1lbnVJbnN0YWxsYXRpb24ge1xuICByZWFkb25seSBvd25lcjogRmlsZUV4cGxvcmVyUm9vdE1lbnVTdWJzY3JpcHRpb247XG4gIHJlYWRvbmx5IHVuaW5zdGFsbDogKCkgPT4gdm9pZDtcbn1cblxuaW50ZXJmYWNlIEZpbGVFeHBsb3JlclJvb3RNZW51U2hhcmVkU3RhdGUge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9yZWFkb25seS1pbnRlcmZhY2UtbWVtYmVycyAtLSBTdWJzY3JpYmVyIGNoYW5nZXMgcmVwbGFjZSBvciBjbGVhciB0aGUgc2hhcmVkIG1lbnUgaW5zdGFsbGF0aW9uLlxuICBpbnN0YWxsYXRpb246IEZpbGVFeHBsb3JlclJvb3RNZW51SW5zdGFsbGF0aW9uIHwgbnVsbDtcbiAgcmVhZG9ubHkgc3Vic2NyaXB0aW9uczogRmlsZUV4cGxvcmVyUm9vdE1lbnVTdWJzY3JpcHRpb25bXTtcbn1cblxuaW50ZXJmYWNlIEZpbGVFeHBsb3JlclJvb3RNZW51U3Vic2NyaXB0aW9uIHtcbiAgcmVhZG9ubHkgaGFuZGxlcjogKHBhcmFtczogRmlsZUV4cGxvcmVyUm9vdE1lbnVIYW5kbGVyUGFyYW1zKSA9PiB2b2lkO1xuICByZWFkb25seSBpbnN0YWxsOiAoKSA9PiAoKSA9PiB2b2lkO1xuICByZWFkb25seSBzaG91bGRQcmVzZW50Um9vdEFzRm9sZGVyOiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgRmlsZUV4cGxvcmVyVmlld1dpdGhDb250ZXh0TWVudSBleHRlbmRzIEZpbGVFeHBsb3JlclZpZXcge1xuICByZWFkb25seSBvbkZpbGVDb250ZXh0TWVudTogKG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQsIGZpbGU6IFRBYnN0cmFjdEZpbGUpID0+IHZvaWQ7XG59XG5cbmludGVyZmFjZSBPcGVuUm9vdE1lbnVQYXJhbXMge1xuICByZWFkb25seSBtb3VzZUV2ZW50OiBNb3VzZUV2ZW50O1xuICByZWFkb25seSBvcGVuTmF0aXZlOiAoKSA9PiB2b2lkO1xuICByZWFkb25seSByb290Rm9sZGVyOiBURm9sZGVyO1xuICByZWFkb25seSBzcG90OiBGaWxlRXhwbG9yZXJSb290TWVudVNwb3Q7XG59XG5cbi8qKlxuICogSGFuZHMgdGhlIGNvcmUgRmlsZSBFeHBsb3JlcidzIHZhdWx0LXJvb3QgbWVudSB0byBhIGhhbmRsZXIsIGFuZCBvcGVucyB0aGF0IG1lbnUgZnJvbSB0aGUgdmF1bHQgbmFtZSB0b28uXG4gKlxuICogQW55IG51bWJlciBvZiB0aGVzZSwgaW4gYW55IG51bWJlciBvZiBwbHVnaW5zLCBzaGFyZSBvbmUgaW5zdGFsbGF0aW9uIHBlciB7QGxpbmsgQXBwfS5cbiAqL1xuZXhwb3J0IGNsYXNzIEZpbGVFeHBsb3JlclJvb3RNZW51Q29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50RXgge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogQ2FsbGVkIGVhY2ggdGltZSB0aGUgdmF1bHQtcm9vdCBtZW51IGlzIGFib3V0IHRvIGJlIHNob3duLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhbmRsZXI6IEZpbGVFeHBsb3JlclJvb3RNZW51SGFuZGxlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcm9vdCBpcyBwcmVzZW50ZWQgYXMgYW4gb3JkaW5hcnkgZm9sZGVyIHdoaWxlIGl0cyBtZW51IGlzIGJ1aWx0LlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3VsZFByZXNlbnRSb290QXNGb2xkZXI6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZmlsZSBleHBsb3JlciByb290IG1lbnUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1zOiBGaWxlRXhwbG9yZXJSb290TWVudUNvbXBvbmVudENvbnN0cnVjdG9yUGFyYW1zKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFwcCA9IHBhcmFtcy5hcHA7XG4gICAgdGhpcy5oYW5kbGVyID0gcGFyYW1zLmhhbmRsZXI7XG4gICAgdGhpcy5zaG91bGRQcmVzZW50Um9vdEFzRm9sZGVyID0gcGFyYW1zLnNob3VsZFByZXNlbnRSb290QXNGb2xkZXIgPz8gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlcyB0byB0aGUgc2hhcmVkIGluc3RhbGxhdGlvbiwgaW5zdGFsbGluZyBpdCB3aGVuIG5vYm9keSBoYXMgeWV0LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIG9ubG9hZCgpOiB2b2lkIHtcbiAgICBzdXBlci5vbmxvYWQoKTtcblxuICAgIGNvbnN0IHN0YXRlID0gZ2V0U2hhcmVkU3RhdGUoKTtcbiAgICBjb25zdCBzdWJzY3JpcHRpb246IEZpbGVFeHBsb3JlclJvb3RNZW51U3Vic2NyaXB0aW9uID0ge1xuICAgICAgaGFuZGxlcjogdGhpcy5oYW5kbGVyLFxuICAgICAgaW5zdGFsbDogKCkgPT4gaW5zdGFsbFJvb3RNZW51KHRoaXMuYXBwLCBzdGF0ZSksXG4gICAgICBzaG91bGRQcmVzZW50Um9vdEFzRm9sZGVyOiB0aGlzLnNob3VsZFByZXNlbnRSb290QXNGb2xkZXJcbiAgICB9O1xuICAgIHN0YXRlLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xuICAgIHN0YXRlLmluc3RhbGxhdGlvbiA/Pz0geyBvd25lcjogc3Vic2NyaXB0aW9uLCB1bmluc3RhbGw6IHN1YnNjcmlwdGlvbi5pbnN0YWxsKCkgfTtcblxuICAgIHRoaXMucmVnaXN0ZXIoKCkgPT4ge1xuICAgICAgc3RhdGUuc3Vic2NyaXB0aW9ucy5zcGxpY2Uoc3RhdGUuc3Vic2NyaXB0aW9ucy5pbmRleE9mKHN1YnNjcmlwdGlvbiksIDEpO1xuICAgICAgaWYgKHN0YXRlLmluc3RhbGxhdGlvbj8ub3duZXIgIT09IHN1YnNjcmlwdGlvbikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHN0YXRlLmluc3RhbGxhdGlvbi51bmluc3RhbGwoKTtcbiAgICAgIGNvbnN0IG5leHRPd25lciA9IHN0YXRlLnN1YnNjcmlwdGlvbnNbMF07XG4gICAgICBzdGF0ZS5pbnN0YWxsYXRpb24gPSBuZXh0T3duZXIgPyB7IG93bmVyOiBuZXh0T3duZXIsIHVuaW5zdGFsbDogbmV4dE93bmVyLmluc3RhbGwoKSB9IDogbnVsbDtcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkaXNwYXRjaChzdGF0ZTogRmlsZUV4cGxvcmVyUm9vdE1lbnVTaGFyZWRTdGF0ZSwgcGFyYW1zOiBGaWxlRXhwbG9yZXJSb290TWVudUhhbmRsZXJQYXJhbXMpOiB2b2lkIHtcbiAgaWYgKHN0YXRlLnN1YnNjcmlwdGlvbnMuc29tZSgoc3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24uc2hvdWxkUHJlc2VudFJvb3RBc0ZvbGRlcikpIHtcbiAgICByZW1vdmVSb290VW5zYWZlSXRlbXMocGFyYW1zLm1lbnUpO1xuICB9XG5cbiAgLy8gQSBzbmFwc2hvdDogYSBoYW5kbGVyIG1heSB1bmxvYWQgaXRzIG93biBjb21wb25lbnQsIG9yIGFub3RoZXIgb25lLCB3aGlsZSB0aGUgbWVudSBpcyBkaXNwYXRjaGVkLlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uby11c2VsZXNzLXNwcmVhZCAtLSBUaGUgY29weSBpcyB0aGUgcG9pbnQ6IHRoZSBsaXN0IG1heSBjaGFuZ2UgZHVyaW5nIHRoZSBsb29wLlxuICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBbLi4uc3RhdGUuc3Vic2NyaXB0aW9uc10pIHtcbiAgICB0cnkge1xuICAgICAgc3Vic2NyaXB0aW9uLmhhbmRsZXIocGFyYW1zKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignQSBmaWxlIGV4cGxvcmVyIHJvb3QgbWVudSBoYW5kbGVyIGZhaWxlZCcsIGVycm9yKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hCZWZvcmVTaG93KHN0YXRlOiBGaWxlRXhwbG9yZXJSb290TWVudVNoYXJlZFN0YXRlLCBwYXJhbXM6IEZpbGVFeHBsb3JlclJvb3RNZW51SGFuZGxlclBhcmFtcyk6IHZvaWQge1xuICBjb25zdCB1bmluc3RhbGxTaG93UGF0Y2ggPSBhcm91bmQocGFyYW1zLm1lbnUsIHtcbiAgICBzaG93QXRNb3VzZUV2ZW50OiAobmV4dCkgPT5cbiAgICAgIGZ1bmN0aW9uIHBhdGNoZWRTaG93QXRNb3VzZUV2ZW50KHRoaXM6IE1lbnUsIHNob3dNb3VzZUV2ZW50OiBNb3VzZUV2ZW50KTogTWVudSB7XG4gICAgICAgIHVuaW5zdGFsbFNob3dQYXRjaCgpO1xuICAgICAgICBkaXNwYXRjaChzdGF0ZSwgcGFyYW1zKTtcbiAgICAgICAgcmV0dXJuIHBhcmFtcy5tZW51Lml0ZW1zLmxlbmd0aCA9PT0gMCA/IHRoaXMgOiBuZXh0LmNhbGwodGhpcywgc2hvd01vdXNlRXZlbnQpO1xuICAgICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0RmlsZUV4cGxvcmVyTGVhZihhcHA6IEFwcCk6IG51bGwgfCBXb3Jrc3BhY2VMZWFmIHtcbiAgcmV0dXJuIGFwcC53b3Jrc3BhY2UuZ2V0TGVhdmVzT2ZUeXBlKFZpZXdUeXBlLkZpbGVFeHBsb3JlcilbMF0gPz8gbnVsbDtcbn1cblxuZnVuY3Rpb24gZ2V0U2hhcmVkU3RhdGUoKTogRmlsZUV4cGxvcmVyUm9vdE1lbnVTaGFyZWRTdGF0ZSB7XG4gIHJldHVybiBnZXRPYnNpZGlhbkxpYlN0YXRlPEZpbGVFeHBsb3JlclJvb3RNZW51U2hhcmVkU3RhdGU+KFNIQVJFRF9TVEFURV9LRVksIHtcbiAgICBpbnN0YWxsYXRpb246IG51bGwsXG4gICAgc3Vic2NyaXB0aW9uczogW11cbiAgfSkudmFsdWU7XG59XG5mdW5jdGlvbiBpbnN0YWxsUm9vdE1lbnUoYXBwOiBBcHAsIHN0YXRlOiBGaWxlRXhwbG9yZXJSb290TWVudVNoYXJlZFN0YXRlKTogKCkgPT4gdm9pZCB7XG4gIGxldCBpc1VuaW5zdGFsbGVkID0gZmFsc2U7XG4gIGxldCBwZW5kaW5nU3BvdDogRmlsZUV4cGxvcmVyUm9vdE1lbnVTcG90IHwgbnVsbCA9IG51bGw7XG4gIGxldCB1bmluc3RhbGxQYXRjaDogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG5cbiAgZnVuY3Rpb24gdHJ5UGF0Y2goKTogdm9pZCB7XG4gICAgaWYgKGlzVW5pbnN0YWxsZWQgfHwgdW5pbnN0YWxsUGF0Y2gpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB2aWV3ID0gZ2V0RmlsZUV4cGxvcmVyTGVhZihhcHApPy52aWV3O1xuICAgIGlmICghaXNGaWxlRXhwbG9yZXJWaWV3KHZpZXcpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdW5pbnN0YWxsUGF0Y2ggPSBhcm91bmQoZ2V0UHJvdG90eXBlT2YodmlldyksIHtcbiAgICAgIG9uRmlsZUNvbnRleHRNZW51OiAobmV4dCkgPT5cbiAgICAgICAgZnVuY3Rpb24gcGF0Y2hlZE9uRmlsZUNvbnRleHRNZW51KHRoaXM6IEZpbGVFeHBsb3JlclZpZXdXaXRoQ29udGV4dE1lbnUsIG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQsIGZpbGU6IFRBYnN0cmFjdEZpbGUpOiB2b2lkIHtcbiAgICAgICAgICBpZiAoIShmaWxlIGluc3RhbmNlb2YgVEZvbGRlcikgfHwgIWZpbGUuaXNSb290KCkpIHtcbiAgICAgICAgICAgIG5leHQuY2FsbCh0aGlzLCBtb3VzZUV2ZW50LCBmaWxlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBvcGVuUm9vdE1lbnUoe1xuICAgICAgICAgICAgbW91c2VFdmVudCxcbiAgICAgICAgICAgIG9wZW5OYXRpdmU6ICgpID0+IHtcbiAgICAgICAgICAgICAgbmV4dC5jYWxsKHRoaXMsIG1vdXNlRXZlbnQsIGZpbGUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJvb3RGb2xkZXI6IGZpbGUsXG4gICAgICAgICAgICBzcG90OiBwZW5kaW5nU3BvdCA/PyBGaWxlRXhwbG9yZXJSb290TWVudVNwb3QuRW1wdHlBcmVhXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG9wZW5Sb290TWVudShwYXJhbXM6IE9wZW5Sb290TWVudVBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IHsgbW91c2VFdmVudCwgb3Blbk5hdGl2ZSwgcm9vdEZvbGRlciwgc3BvdCB9ID0gcGFyYW1zO1xuICAgIGNvbnN0IGV2ZW50UmVmID0gYXBwLndvcmtzcGFjZS5vbignZmlsZS1tZW51JywgKG1lbnUsIGZpbGUsIHNvdXJjZSkgPT4ge1xuICAgICAgaWYgKGZpbGUgIT09IHJvb3RGb2xkZXIgfHwgc291cmNlICE9PSBGSUxFX0VYUExPUkVSX01FTlVfU09VUkNFKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgYXBwLndvcmtzcGFjZS5vZmZyZWYoZXZlbnRSZWYpO1xuICAgICAgZGlzcGF0Y2hCZWZvcmVTaG93KHN0YXRlLCB7IG1lbnUsIG1vdXNlRXZlbnQsIHJvb3RGb2xkZXIsIHNwb3QgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCByZXN0b3JlSXNSb290ID0gc3RhdGUuc3Vic2NyaXB0aW9ucy5zb21lKChzdWJzY3JpcHRpb24pID0+IHN1YnNjcmlwdGlvbi5zaG91bGRQcmVzZW50Um9vdEFzRm9sZGVyKVxuICAgICAgPyBwcmVzZW50QXNGb2xkZXIocm9vdEZvbGRlcilcbiAgICAgIDogbnVsbDtcblxuICAgIHRyeSB7XG4gICAgICBvcGVuTmF0aXZlKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHJlc3RvcmVJc1Jvb3Q/LigpO1xuICAgICAgYXBwLndvcmtzcGFjZS5vZmZyZWYoZXZlbnRSZWYpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIG9wZW5Gcm9tVmF1bHROYW1lKG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpc09uVmF1bHROYW1lID0gbW91c2VFdmVudC5jb21wb3NlZFBhdGgoKS5zb21lKCh0YXJnZXQpID0+IHRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIFZBVUxUX05BTUVfU0VMRUNUT1JTLnNvbWUoKHNlbGVjdG9yKSA9PiB0YXJnZXQubWF0Y2hlcyhzZWxlY3RvcikpKTtcbiAgICBpZiAoIWlzT25WYXVsdE5hbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBgTWVudS5mb3JFdmVudGAgaGFuZHMgZXZlcnkgbGlzdGVuZXIgb2Ygb25lIGV2ZW50IHRoZSBzYW1lIG1lbnUgYW5kIHNob3dzIGl0IG9uIHRoZSBuZXh0IHRhc2suIE9ic2lkaWFuJ3Mgb3duXG4gICAgLy8gbGlzdGVuZXIgb24gdGhlIHZhdWx0IG5hbWUgYWRkcyBpdHMgdmF1bHQgaXRlbXMgdG8gaXQgYWZ0ZXIgdGhpcyBjYXB0dXJlLXBoYXNlIG9uZSBoYXMgcnVuLlxuICAgIGNvbnN0IHZhdWx0TWVudSA9IE1lbnUuZm9yRXZlbnQobW91c2VFdmVudCk7XG4gICAgY29uc3Qgcm9vdEZvbGRlciA9IGFwcC52YXVsdC5nZXRSb290KCk7XG4gICAgY29uc3QgbGVhZiA9IGdldEZpbGVFeHBsb3JlckxlYWYoYXBwKTtcbiAgICBpZiAoIWxlYWYgfHwgc3RhdGUuc3Vic2NyaXB0aW9ucy5ldmVyeSgoc3Vic2NyaXB0aW9uKSA9PiAhc3Vic2NyaXB0aW9uLnNob3VsZFByZXNlbnRSb290QXNGb2xkZXIpKSB7XG4gICAgICBkaXNwYXRjaEJlZm9yZVNob3coc3RhdGUsIHsgbWVudTogdmF1bHRNZW51LCBtb3VzZUV2ZW50LCByb290Rm9sZGVyLCBzcG90OiBGaWxlRXhwbG9yZXJSb290TWVudVNwb3QuVmF1bHROYW1lIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFByZXNlbnRlZCBhcyBhIGZvbGRlciwgdGhlIHJvb3QncyBmb2xkZXIgbWVudSByZXBsYWNlcyB0aGUgdmF1bHQgbWVudSByYXRoZXIgdGhhbiBvcGVuaW5nIG9uIHRvcCBvZiBpdC5cbiAgICBmdW5jdGlvbiBzdXBwcmVzc1ZhdWx0TWVudVNob3coKTogTWVudSB7XG4gICAgICB1bmluc3RhbGxWYXVsdE1lbnVTaG93UGF0Y2goKTtcbiAgICAgIHJldHVybiB2YXVsdE1lbnU7XG4gICAgfVxuICAgIGNvbnN0IHVuaW5zdGFsbFZhdWx0TWVudVNob3dQYXRjaCA9IGFyb3VuZCh2YXVsdE1lbnUsIHsgc2hvd0F0TW91c2VFdmVudDogKCkgPT4gc3VwcHJlc3NWYXVsdE1lbnVTaG93IH0pO1xuICAgIGludm9rZUFzeW5jU2FmZWx5KGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IGxlYWYubG9hZElmRGVmZXJyZWQoKTtcbiAgICAgIGNvbnN0IHZpZXcgPSBsZWFmLnZpZXc7XG4gICAgICBpZiAoaXNVbmluc3RhbGxlZCB8fCAhaXNGaWxlRXhwbG9yZXJWaWV3KHZpZXcpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdHJ5UGF0Y2goKTtcbiAgICAgIHZpZXcudHJlZS5jbGVhclNlbGVjdGVkRG9tcygpO1xuICAgICAgcGVuZGluZ1Nwb3QgPSBGaWxlRXhwbG9yZXJSb290TWVudVNwb3QuVmF1bHROYW1lO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmlldy5vbkZpbGVDb250ZXh0TWVudShtb3VzZUV2ZW50LCByb290Rm9sZGVyKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHBlbmRpbmdTcG90ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHRyeVBhdGNoKCk7XG4gIGNvbnN0IGxheW91dENoYW5nZUV2ZW50UmVmID0gYXBwLndvcmtzcGFjZS5vbignbGF5b3V0LWNoYW5nZScsIHRyeVBhdGNoKTtcbiAgYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KHRyeVBhdGNoKTtcbiAgY29uc3QgZG9jID0gYXBwLndvcmtzcGFjZS5jb250YWluZXJFbC5kb2M7XG4gIGRvYy5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIG9wZW5Gcm9tVmF1bHROYW1lLCB7IGNhcHR1cmU6IHRydWUgfSk7XG5cbiAgcmV0dXJuICgpID0+IHtcbiAgICBpc1VuaW5zdGFsbGVkID0gdHJ1ZTtcbiAgICB1bmluc3RhbGxQYXRjaD8uKCk7XG4gICAgYXBwLndvcmtzcGFjZS5vZmZyZWYobGF5b3V0Q2hhbmdlRXZlbnRSZWYpO1xuICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIG9wZW5Gcm9tVmF1bHROYW1lLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzRmlsZUV4cGxvcmVyVmlldyh2aWV3OiB1bmtub3duKTogdmlldyBpcyBGaWxlRXhwbG9yZXJWaWV3V2l0aENvbnRleHRNZW51IHtcbiAgcmV0dXJuIHR5cGVvZiAodmlldyBhcyBQYXJ0aWFsPEZpbGVFeHBsb3JlclZpZXdXaXRoQ29udGV4dE1lbnU+IHwgdW5kZWZpbmVkKT8ub25GaWxlQ29udGV4dE1lbnUgPT09ICdmdW5jdGlvbic7XG59XG5cbmZ1bmN0aW9uIHByZXNlbnRBc0ZvbGRlcihyb290Rm9sZGVyOiBURm9sZGVyKTogKCkgPT4gdm9pZCB7XG4gIGNvbnN0IG93bklzUm9vdERlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHJvb3RGb2xkZXIsICdpc1Jvb3QnKTtcbiAgcm9vdEZvbGRlci5pc1Jvb3QgPSAoKTogYm9vbGVhbiA9PiBmYWxzZTtcbiAgcmV0dXJuICgpID0+IHtcbiAgICBpZiAob3duSXNSb290RGVzY3JpcHRvcikge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJvb3RGb2xkZXIsICdpc1Jvb3QnLCBvd25Jc1Jvb3REZXNjcmlwdG9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIChyb290Rm9sZGVyIGFzIFBhcnRpYWw8VEZvbGRlcj4pLmlzUm9vdDtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVJvb3RVbnNhZmVJdGVtcyhtZW51OiBNZW51KTogdm9pZCB7XG4gIGNvbnN0IHVuc2FmZVRpdGxlcyA9IG5ldyBTZXQ8bnVsbCB8IHN0cmluZz4oUk9PVF9VTlNBRkVfSVRFTV9USVRMRV9LRVlTLm1hcCgoa2V5KSA9PiBhY3RpdmVXaW5kb3cuaTE4bmV4dC50KGtleSkpKTtcbiAgbWVudS5pdGVtcyA9IG1lbnUuaXRlbXMuZmlsdGVyKChpdGVtKSA9PiAhKGl0ZW0gaW5zdGFuY2VvZiBNZW51SXRlbSkgfHwgIXVuc2FmZVRpdGxlcy5oYXMoaXRlbS50aXRsZUVsLnRleHRDb250ZW50KSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNkJBLG1CQUFrQztBQUNsQywwQkFBK0I7QUFDL0IsNkJBQXlCO0FBQ3pCLHNCQUlPO0FB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
@@ -14,8 +14,8 @@ if you want to view the source, please visit the github repository of this plugi
14
14
  __isPatched: true
15
15
  }
16
16
  );
17
- function extractDefault(module) {
18
- return module && module.__esModule && "default" in module ? module.default : module;
17
+ function extractDefault($module) {
18
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
19
19
  }
20
20
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
21
21
  "@codemirror/autocomplete",
@@ -57,9 +57,9 @@ if you want to view the source, please visit the github repository of this plugi
57
57
  return process;
58
58
  }
59
59
  } else {
60
- const module = originalRequire?.(id);
61
- if (module) {
62
- return extractDefault(module);
60
+ const $module = originalRequire?.(id);
61
+ if ($module) {
62
+ return extractDefault($module);
63
63
  }
64
64
  }
65
65
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -41,8 +41,8 @@ ensureBrowserProcess();
41
41
  __isPatched: true
42
42
  }
43
43
  );
44
- function extractDefault(module) {
45
- return module && module.__esModule && "default" in module ? module.default : module;
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
46
  }
47
47
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
48
  "@codemirror/autocomplete",
@@ -84,9 +84,9 @@ ensureBrowserProcess();
84
84
  return process;
85
85
  }
86
86
  } else {
87
- const module = originalRequire?.(id);
88
- if (module) {
89
- return extractDefault(module);
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
90
  }
91
91
  }
92
92
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -14,8 +14,8 @@ if you want to view the source, please visit the github repository of this plugi
14
14
  __isPatched: true
15
15
  }
16
16
  );
17
- function extractDefault(module) {
18
- return module && module.__esModule && "default" in module ? module.default : module;
17
+ function extractDefault($module) {
18
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
19
19
  }
20
20
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
21
21
  "@codemirror/autocomplete",
@@ -57,9 +57,9 @@ if you want to view the source, please visit the github repository of this plugi
57
57
  return process;
58
58
  }
59
59
  } else {
60
- const module = originalRequire?.(id);
61
- if (module) {
62
- return extractDefault(module);
60
+ const $module = originalRequire?.(id);
61
+ if ($module) {
62
+ return extractDefault($module);
63
63
  }
64
64
  }
65
65
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -41,8 +41,8 @@ ensureBrowserProcess();
41
41
  __isPatched: true
42
42
  }
43
43
  );
44
- function extractDefault(module) {
45
- return module && module.__esModule && "default" in module ? module.default : module;
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
46
  }
47
47
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
48
  "@codemirror/autocomplete",
@@ -84,9 +84,9 @@ ensureBrowserProcess();
84
84
  return process;
85
85
  }
86
86
  } else {
87
- const module = originalRequire?.(id);
88
- if (module) {
89
- return extractDefault(module);
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
90
  }
91
91
  }
92
92
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -14,8 +14,8 @@ if you want to view the source, please visit the github repository of this plugi
14
14
  __isPatched: true
15
15
  }
16
16
  );
17
- function extractDefault(module) {
18
- return module && module.__esModule && "default" in module ? module.default : module;
17
+ function extractDefault($module) {
18
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
19
19
  }
20
20
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
21
21
  "@codemirror/autocomplete",
@@ -57,9 +57,9 @@ if you want to view the source, please visit the github repository of this plugi
57
57
  return process;
58
58
  }
59
59
  } else {
60
- const module = originalRequire?.(id);
61
- if (module) {
62
- return extractDefault(module);
60
+ const $module = originalRequire?.(id);
61
+ if ($module) {
62
+ return extractDefault($module);
63
63
  }
64
64
  }
65
65
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -41,8 +41,8 @@ ensureBrowserProcess();
41
41
  __isPatched: true
42
42
  }
43
43
  );
44
- function extractDefault(module) {
45
- return module && module.__esModule && "default" in module ? module.default : module;
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
46
  }
47
47
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
48
  "@codemirror/autocomplete",
@@ -84,9 +84,9 @@ ensureBrowserProcess();
84
84
  return process;
85
85
  }
86
86
  } else {
87
- const module = originalRequire?.(id);
88
- if (module) {
89
- return extractDefault(module);
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
90
  }
91
91
  }
92
92
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -41,8 +41,8 @@ ensureBrowserProcess();
41
41
  __isPatched: true
42
42
  }
43
43
  );
44
- function extractDefault(module) {
45
- return module && module.__esModule && "default" in module ? module.default : module;
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
46
  }
47
47
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
48
  "@codemirror/autocomplete",
@@ -84,9 +84,9 @@ ensureBrowserProcess();
84
84
  return process;
85
85
  }
86
86
  } else {
87
- const module = originalRequire?.(id);
88
- if (module) {
89
- return extractDefault(module);
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
90
  }
91
91
  }
92
92
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -41,8 +41,8 @@ ensureBrowserProcess();
41
41
  __isPatched: true
42
42
  }
43
43
  );
44
- function extractDefault(module) {
45
- return module && module.__esModule && "default" in module ? module.default : module;
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
46
  }
47
47
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
48
  "@codemirror/autocomplete",
@@ -84,9 +84,9 @@ ensureBrowserProcess();
84
84
  return process;
85
85
  }
86
86
  } else {
87
- const module = originalRequire?.(id);
88
- if (module) {
89
- return extractDefault(module);
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
90
  }
91
91
  }
92
92
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
@@ -41,8 +41,8 @@ ensureBrowserProcess();
41
41
  __isPatched: true
42
42
  }
43
43
  );
44
- function extractDefault(module) {
45
- return module && module.__esModule && "default" in module ? module.default : module;
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
46
  }
47
47
  const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
48
  "@codemirror/autocomplete",
@@ -84,9 +84,9 @@ ensureBrowserProcess();
84
84
  return process;
85
85
  }
86
86
  } else {
87
- const module = originalRequire?.(id);
88
- if (module) {
89
- return extractDefault(module);
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
90
  }
91
91
  }
92
92
  console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);