@mnaoumov/obsidian-lib 10.5.1 → 10.7.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.
- package/codemirror/inline-token-widgets/package.json +6 -0
- package/codemirror/settings-facet/package.json +6 -0
- package/command-handlers/open-discussion-command-handler/package.json +6 -0
- package/command-handlers/open-feature-request-command-handler/package.json +6 -0
- package/command-handlers/open-git-hub-command-handler/package.json +6 -0
- package/components/settings-facet-component/package.json +6 -0
- package/components/style-sheet-component/package.json +6 -0
- package/dist/lib/cjs/__merged.cjs +137 -1
- package/dist/lib/cjs/__merged.d.cts +26 -0
- package/dist/lib/cjs/anchored-suggest.cjs +232 -0
- package/dist/lib/cjs/anchored-suggest.d.cts +116 -0
- package/dist/lib/cjs/broken-link-candidates.cjs +366 -0
- package/dist/lib/cjs/broken-link-candidates.d.cts +181 -0
- package/dist/lib/cjs/bug-report.cjs +4 -2
- package/dist/lib/cjs/bug-report.d.cts +1 -1
- package/dist/lib/cjs/code-block-render-handoff.cjs +272 -0
- package/dist/lib/cjs/code-block-render-handoff.d.cts +131 -0
- package/dist/lib/cjs/codemirror/index.cjs +7 -1
- package/dist/lib/cjs/codemirror/index.d.cts +2 -0
- package/dist/lib/cjs/codemirror/inline-token-widgets.cjs +250 -0
- package/dist/lib/cjs/codemirror/inline-token-widgets.d.cts +109 -0
- package/dist/lib/cjs/codemirror/settings-facet.cjs +132 -0
- package/dist/lib/cjs/codemirror/settings-facet.d.cts +19 -0
- package/dist/lib/cjs/command-handlers/index.cjs +10 -1
- package/dist/lib/cjs/command-handlers/index.d.cts +3 -0
- package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.cjs +9 -12
- package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.d.cts +6 -8
- package/dist/lib/cjs/command-handlers/open-discussion-command-handler.cjs +127 -0
- package/dist/lib/cjs/command-handlers/open-discussion-command-handler.d.cts +45 -0
- package/dist/lib/cjs/command-handlers/open-feature-request-command-handler.cjs +119 -0
- package/dist/lib/cjs/command-handlers/open-feature-request-command-handler.d.cts +33 -0
- package/dist/lib/cjs/command-handlers/open-git-hub-command-handler.cjs +121 -0
- package/dist/lib/cjs/command-handlers/open-git-hub-command-handler.d.cts +43 -0
- package/dist/lib/cjs/components/index.cjs +7 -1
- package/dist/lib/cjs/components/index.d.cts +2 -0
- package/dist/lib/cjs/components/settings-facet-component.cjs +136 -0
- package/dist/lib/cjs/components/settings-facet-component.d.cts +68 -0
- package/dist/lib/cjs/components/style-sheet-component.cjs +198 -0
- package/dist/lib/cjs/components/style-sheet-component.d.cts +79 -0
- package/dist/lib/cjs/css-class.cjs +8 -1
- package/dist/lib/cjs/css-class.d.cts +28 -0
- package/dist/lib/cjs/data-stores/data-store-transport.cjs +7 -4
- package/dist/lib/cjs/data-stores/data-store-transport.d.cts +1 -1
- package/dist/lib/cjs/data-stores/shared-data-store.cjs +1 -1
- package/dist/lib/cjs/data-stores/shared-data-store.d.cts +1 -1
- package/dist/lib/cjs/desktop-git-runner.cjs +117 -0
- package/dist/lib/cjs/desktop-git-runner.d.cts +17 -0
- package/dist/lib/cjs/desktop-request-url-stream.cjs +258 -0
- package/dist/lib/cjs/desktop-request-url-stream.d.cts +22 -0
- package/dist/lib/cjs/editor-suggest-registrar.cjs +8 -2
- package/dist/lib/cjs/editor-suggest-registrar.d.cts +14 -2
- package/dist/lib/cjs/editor-suggest.cjs +197 -0
- package/dist/lib/cjs/editor-suggest.d.cts +103 -0
- package/dist/lib/cjs/feature-request.cjs +115 -0
- package/dist/lib/cjs/feature-request.d.cts +54 -0
- package/dist/lib/cjs/generated-during-build.cjs +2 -2
- package/dist/lib/cjs/git-hub-discussion.cjs +101 -0
- package/dist/lib/cjs/git-hub-discussion.d.cts +28 -0
- package/dist/lib/cjs/git-rename-history.cjs +148 -0
- package/dist/lib/cjs/git-rename-history.d.cts +43 -0
- package/dist/lib/cjs/hotkey.cjs +185 -0
- package/dist/lib/cjs/hotkey.d.cts +59 -0
- package/dist/lib/cjs/i18n/locales/en.cjs +13 -1
- package/dist/lib/cjs/i18n/locales/en.d.cts +12 -0
- package/dist/lib/cjs/i18n/locales/translations-map.d.cts +12 -0
- package/dist/lib/cjs/index.cjs +46 -1
- package/dist/lib/cjs/index.d.cts +15 -0
- package/dist/lib/cjs/inline-token-renderer.cjs +145 -0
- package/dist/lib/cjs/inline-token-renderer.d.cts +88 -0
- package/dist/lib/cjs/link-and-tag-input-suggest.cjs +325 -0
- package/dist/lib/cjs/link-and-tag-input-suggest.d.cts +229 -0
- package/dist/lib/cjs/markdown-code-block-processor.cjs +13 -1
- package/dist/lib/cjs/markdown-code-block-processor.d.cts +18 -0
- package/dist/lib/cjs/markdown.cjs +6 -1
- package/dist/lib/cjs/markdown.d.cts +10 -1
- package/dist/lib/cjs/rendered-markdown.cjs +306 -0
- package/dist/lib/cjs/rendered-markdown.d.cts +77 -0
- package/dist/lib/cjs/request-url.cjs +523 -0
- package/dist/lib/cjs/request-url.d.cts +233 -0
- package/dist/lib/cjs/setting-components/folder-list-component.cjs +216 -0
- package/dist/lib/cjs/setting-components/folder-list-component.d.cts +73 -0
- package/dist/lib/cjs/setting-components/hotkey-component.cjs +260 -0
- package/dist/lib/cjs/setting-components/hotkey-component.d.cts +85 -0
- package/dist/lib/cjs/setting-components/index.cjs +13 -1
- package/dist/lib/cjs/setting-components/index.d.cts +4 -0
- package/dist/lib/cjs/setting-components/list-component.cjs +291 -0
- package/dist/lib/cjs/setting-components/list-component.d.cts +106 -0
- package/dist/lib/cjs/setting-components/tag-list-component.cjs +220 -0
- package/dist/lib/cjs/setting-components/tag-list-component.d.cts +82 -0
- package/dist/lib/cjs/setting-ex.cjs +51 -1
- package/dist/lib/cjs/setting-ex.d.cts +35 -1
- package/dist/lib/cjs/settings-tabs.cjs +258 -0
- package/dist/lib/cjs/settings-tabs.d.cts +101 -0
- package/dist/lib/cjs/vault.cjs +2 -2
- package/dist/lib/cjs/vault.d.cts +3 -1
- package/dist/lib/esm/__merged.d.mts +26 -0
- package/dist/lib/esm/__merged.mjs +139 -1
- package/dist/lib/esm/anchored-suggest.d.mts +116 -0
- package/dist/lib/esm/anchored-suggest.mjs +144 -0
- package/dist/lib/esm/broken-link-candidates.d.mts +181 -0
- package/dist/lib/esm/broken-link-candidates.mjs +275 -0
- package/dist/lib/esm/bug-report.d.mts +1 -1
- package/dist/lib/esm/bug-report.mjs +4 -2
- package/dist/lib/esm/code-block-render-handoff.d.mts +131 -0
- package/dist/lib/esm/code-block-render-handoff.mjs +183 -0
- package/dist/lib/esm/codemirror/index.d.mts +2 -0
- package/dist/lib/esm/codemirror/index.mjs +5 -1
- package/dist/lib/esm/codemirror/inline-token-widgets.d.mts +109 -0
- package/dist/lib/esm/codemirror/inline-token-widgets.mjs +167 -0
- package/dist/lib/esm/codemirror/settings-facet.d.mts +19 -0
- package/dist/lib/esm/codemirror/settings-facet.mjs +44 -0
- package/dist/lib/esm/command-handlers/index.d.mts +3 -0
- package/dist/lib/esm/command-handlers/index.mjs +7 -1
- package/dist/lib/esm/command-handlers/open-bug-report-command-handler.d.mts +6 -8
- package/dist/lib/esm/command-handlers/open-bug-report-command-handler.mjs +9 -12
- package/dist/lib/esm/command-handlers/open-discussion-command-handler.d.mts +45 -0
- package/dist/lib/esm/command-handlers/open-discussion-command-handler.mjs +39 -0
- package/dist/lib/esm/command-handlers/open-feature-request-command-handler.d.mts +33 -0
- package/dist/lib/esm/command-handlers/open-feature-request-command-handler.mjs +31 -0
- package/dist/lib/esm/command-handlers/open-git-hub-command-handler.d.mts +43 -0
- package/dist/lib/esm/command-handlers/open-git-hub-command-handler.mjs +33 -0
- package/dist/lib/esm/components/index.d.mts +2 -0
- package/dist/lib/esm/components/index.mjs +5 -1
- package/dist/lib/esm/components/settings-facet-component.d.mts +68 -0
- package/dist/lib/esm/components/settings-facet-component.mjs +48 -0
- package/dist/lib/esm/components/style-sheet-component.d.mts +79 -0
- package/dist/lib/esm/components/style-sheet-component.mjs +109 -0
- package/dist/lib/esm/css-class.d.mts +28 -0
- package/dist/lib/esm/css-class.mjs +8 -1
- package/dist/lib/esm/data-stores/data-store-transport.d.mts +1 -1
- package/dist/lib/esm/data-stores/data-store-transport.mjs +7 -4
- package/dist/lib/esm/data-stores/shared-data-store.d.mts +1 -1
- package/dist/lib/esm/data-stores/shared-data-store.mjs +1 -1
- package/dist/lib/esm/desktop-git-runner.d.mts +17 -0
- package/dist/lib/esm/desktop-git-runner.mjs +19 -0
- package/dist/lib/esm/desktop-request-url-stream.d.mts +22 -0
- package/dist/lib/esm/desktop-request-url-stream.mjs +170 -0
- package/dist/lib/esm/editor-suggest-registrar.d.mts +14 -2
- package/dist/lib/esm/editor-suggest-registrar.mjs +8 -2
- package/dist/lib/esm/editor-suggest.d.mts +103 -0
- package/dist/lib/esm/editor-suggest.mjs +108 -0
- package/dist/lib/esm/feature-request.d.mts +54 -0
- package/dist/lib/esm/feature-request.mjs +25 -0
- package/dist/lib/esm/generated-during-build.mjs +2 -2
- package/dist/lib/esm/git-hub-discussion.d.mts +28 -0
- package/dist/lib/esm/git-hub-discussion.mjs +13 -0
- package/dist/lib/esm/git-rename-history.d.mts +43 -0
- package/dist/lib/esm/git-rename-history.mjs +59 -0
- package/dist/lib/esm/hotkey.d.mts +59 -0
- package/dist/lib/esm/hotkey.mjs +95 -0
- package/dist/lib/esm/i18n/locales/en.d.mts +12 -0
- package/dist/lib/esm/i18n/locales/en.mjs +13 -1
- package/dist/lib/esm/i18n/locales/translations-map.d.mts +12 -0
- package/dist/lib/esm/index.d.mts +15 -0
- package/dist/lib/esm/index.mjs +31 -1
- package/dist/lib/esm/inline-token-renderer.d.mts +88 -0
- package/dist/lib/esm/inline-token-renderer.mjs +59 -0
- package/dist/lib/esm/link-and-tag-input-suggest.d.mts +229 -0
- package/dist/lib/esm/link-and-tag-input-suggest.mjs +239 -0
- package/dist/lib/esm/markdown-code-block-processor.d.mts +18 -0
- package/dist/lib/esm/markdown-code-block-processor.mjs +16 -1
- package/dist/lib/esm/markdown.d.mts +10 -1
- package/dist/lib/esm/markdown.mjs +9 -1
- package/dist/lib/esm/rendered-markdown.d.mts +77 -0
- package/dist/lib/esm/rendered-markdown.mjs +219 -0
- package/dist/lib/esm/request-url.d.mts +233 -0
- package/dist/lib/esm/request-url.mjs +428 -0
- package/dist/lib/esm/setting-components/folder-list-component.d.mts +73 -0
- package/dist/lib/esm/setting-components/folder-list-component.mjs +131 -0
- package/dist/lib/esm/setting-components/hotkey-component.d.mts +85 -0
- package/dist/lib/esm/setting-components/hotkey-component.mjs +178 -0
- package/dist/lib/esm/setting-components/index.d.mts +4 -0
- package/dist/lib/esm/setting-components/index.mjs +9 -1
- package/dist/lib/esm/setting-components/list-component.d.mts +106 -0
- package/dist/lib/esm/setting-components/list-component.mjs +206 -0
- package/dist/lib/esm/setting-components/tag-list-component.d.mts +82 -0
- package/dist/lib/esm/setting-components/tag-list-component.mjs +131 -0
- package/dist/lib/esm/setting-ex.d.mts +35 -1
- package/dist/lib/esm/setting-ex.mjs +51 -1
- package/dist/lib/esm/settings-tabs.d.mts +101 -0
- package/dist/lib/esm/settings-tabs.mjs +170 -0
- package/dist/lib/esm/vault.d.mts +3 -1
- package/dist/lib/esm/vault.mjs +2 -2
- package/dist/styles.css +83 -1
- package/package.json +2 -2
- package/setting-components/folder-list-component/package.json +6 -0
- package/setting-components/hotkey-component/package.json +6 -0
- package/setting-components/list-component/package.json +6 -0
- package/setting-components/tag-list-component/package.json +6 -0
|
@@ -102,9 +102,14 @@ var CssClass = /* @__PURE__ */ ((CssClass2) => {
|
|
|
102
102
|
CssClass2["DateTimeComponent"] = "datetime-component";
|
|
103
103
|
CssClass2["EmailComponent"] = "email-component";
|
|
104
104
|
CssClass2["FileComponent"] = "file-component";
|
|
105
|
+
CssClass2["FoldableMarkdown"] = "foldable-markdown";
|
|
106
|
+
CssClass2["FolderListComponent"] = "folder-list-component";
|
|
107
|
+
CssClass2["HotkeyComponent"] = "hotkey-component";
|
|
108
|
+
CssClass2["InlineToken"] = "inline-token";
|
|
105
109
|
CssClass2["IsActive"] = "is-active";
|
|
106
110
|
CssClass2["IsPlaceholder"] = "is-placeholder";
|
|
107
111
|
CssClass2["LibraryName"] = "obsidian-lib";
|
|
112
|
+
CssClass2["ListComponent"] = "list-component";
|
|
108
113
|
CssClass2["MarkdownRendered"] = "markdown-rendered";
|
|
109
114
|
CssClass2["MinimizableModal"] = "minimizable-modal";
|
|
110
115
|
CssClass2["MinimizeButton"] = "minimize-button";
|
|
@@ -143,6 +148,8 @@ var CssClass = /* @__PURE__ */ ((CssClass2) => {
|
|
|
143
148
|
CssClass2["SelectItemModal"] = "select-item-modal";
|
|
144
149
|
CssClass2["SelectOptionModal"] = "select-option-modal";
|
|
145
150
|
CssClass2["SettingComponentWrapper"] = "setting-component-wrapper";
|
|
151
|
+
CssClass2["SettingsTabs"] = "settings-tabs";
|
|
152
|
+
CssClass2["TagListComponent"] = "tag-list-component";
|
|
146
153
|
CssClass2["TelephoneComponent"] = "telephone-component";
|
|
147
154
|
CssClass2["TextBox"] = "text-box";
|
|
148
155
|
CssClass2["TimeComponent"] = "time-component";
|
|
@@ -161,4 +168,4 @@ var CssClass = /* @__PURE__ */ ((CssClass2) => {
|
|
|
161
168
|
0 && (module.exports = {
|
|
162
169
|
CssClass
|
|
163
170
|
});
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jc3MtY2xhc3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENTUyBjbGFzc2VzIHVzZWQgYnkgdGhlIGBAbW5hb3Vtb3Yvb2JzaWRpYW4tbGliYCBsaWJyYXJ5LlxuICovXG5cbi8qKlxuICogQ1NTIGNsYXNzZXMgdXNlZCBieSB0aGUgYEBtbmFvdW1vdi9vYnNpZGlhbi1saWJgIGxpYnJhcnkuXG4gKi9cbmV4cG9ydCBlbnVtIENzc0NsYXNzIHtcbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgYWxlcnQgbW9kYWwuXG4gICAqL1xuICBBbGVydE1vZGFsID0gJ2FsZXJ0LW1vZGFsJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBjYW5jZWwgYnV0dG9uLlxuICAgKi9cbiAgQ2FuY2VsQnV0dG9uID0gJ2NhbmNlbC1idXR0b24nLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIGNoZWNrYm94IGNvbXBvbmVudC5cbiAgICovXG4gIENoZWNrYm94Q29tcG9uZW50ID0gJ2NoZWNrYm94LWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIE9ic2lkaWFuJ3MgY2xhc3MgZm9yIGEgY2xpY2thYmxlIGljb24gYnV0dG9uLCBnaXZpbmcgaXQgdGhlIGhvdmVyIGJhY2tncm91bmQgYW5kIGljb24tY29sb3IgdHJlYXRtZW50LlxuICAgKi9cbiAgQ2xpY2thYmxlSWNvbiA9ICdjbGlja2FibGUtaWNvbicsXG5cbiAgLyoqXG4gICAqIE9ic2lkaWFuJ3MgY2xhc3MgZm9yIGFuIGlubGluZSBjb2RlIGVsZW1lbnQgKHVzZWQgYnkgYGFwcGVuZENvZGVCbG9ja2ApLlxuICAgKi9cbiAgQ29kZSA9ICdjb2RlJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBjb2RlIGhpZ2hsaWdodGVyIGNvbXBvbmVudC5cbiAgICovXG4gIENvZGVIaWdobGlnaHRlckNvbXBvbmVudCA9ICdjb2RlLWhpZ2hsaWdodGVyLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgY29uZmlybSBtb2RhbC5cbiAgICovXG4gIENvbmZpcm1Nb2RhbCA9ICdjb25maXJtLW1vZGFsJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBkYXRlIGNvbXBvbmVudC5cbiAgICovXG4gIERhdGVDb21wb25lbnQgPSAnZGF0ZS1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIGRhdGUgYW5kIHRpbWUgY29tcG9uZW50LlxuICAgKi9cbiAgRGF0ZVRpbWVDb21wb25lbnQgPSAnZGF0ZXRpbWUtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBlbWFpbCBjb21wb25lbnQuXG4gICAqL1xuICBFbWFpbENvbXBvbmVudCA9ICdlbWFpbC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIGZpbGUgY29tcG9uZW50LlxuICAgKi9cbiAgRmlsZUNvbXBvbmVudCA9ICdmaWxlLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIE9ic2lkaWFuJ3MgY2xhc3MgZm9yIGEgY29udHJvbCB0aGF0IGlzIGN1cnJlbnRseSBPTiwgcmV1c2VkIHNvIGEgcHJlc3NlZCBjb21tYW5kIGJ1dHRvbiBtYXRjaGVzIHRoZVxuICAgKiBhcHAncyBvd24gdG9nZ2xlZCBjb250cm9scy5cbiAgICovXG4gIElzQWN0aXZlID0gJ2lzLWFjdGl2ZScsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgcGxhY2Vob2xkZXIuXG4gICAqL1xuICBJc1BsYWNlaG9sZGVyID0gJ2lzLXBsYWNlaG9sZGVyJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBsaWJyYXJ5IG5hbWUsIHNldCBvbiBldmVyeSBlbGVtZW50IHRoZSBsaWJyYXJ5IGJ1aWxkcy5cbiAgICovXG4gIExpYnJhcnlOYW1lID0gJ29ic2lkaWFuLWxpYicsXG5cbiAgLyoqXG4gICAqIE9ic2lkaWFuJ3MgY2xhc3MgbWFya2luZyByZW5kZXJlZC1tYXJrZG93biBjb250ZW50ICh1c2VkIGJ5IGBhcHBlbmRDb2RlQmxvY2tgKS5cbiAgICovXG4gIE1hcmtkb3duUmVuZGVyZWQgPSAnbWFya2Rvd24tcmVuZGVyZWQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIG1pbmltaXphYmxlIG1vZGFsLlxuICAgKi9cbiAgTWluaW1pemFibGVNb2RhbCA9ICdtaW5pbWl6YWJsZS1tb2RhbCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbWluaW1pemUgYnV0dG9uIG9mIHRoZSBtaW5pbWl6YWJsZSBtb2RhbC5cbiAgICovXG4gIE1pbmltaXplQnV0dG9uID0gJ21pbmltaXplLWJ1dHRvbicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbWluaW1pemVkIGJhciBvZiB0aGUgbWluaW1pemFibGUgbW9kYWwuXG4gICAqL1xuICBNaW5pbWl6ZWRNb2RhbEJhciA9ICdtaW5pbWl6ZWQtbW9kYWwtYmFyJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBvbmUtc2hvdCBhdHRlbnRpb24gZmxhc2ggb2YgdGhlIG1pbmltaXplZCBiYXIsIHBsYXllZCB3aGVuIHRoZSB1c2VyIGF0dGVtcHRzIGFcbiAgICogYmxvY2tlZCBhY3Rpb24gKGEga2V5c3Ryb2tlLCByaWdodC1jbGljaywgb3Igb3BlbmluZyBhbm90aGVyIG1vZGFsKSB3aGlsZSB0aGUgbW9kYWwgaXMgbWluaW1pemVkLlxuICAgKi9cbiAgTWluaW1pemVkTW9kYWxCYXJBdHRlbnRpb24gPSAnbWluaW1pemVkLW1vZGFsLWJhci1hdHRlbnRpb24nLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHRpdGxlIG9mIHRoZSBtaW5pbWl6ZWQgYmFyIG9mIHRoZSBtaW5pbWl6YWJsZSBtb2RhbC5cbiAgICovXG4gIE1pbmltaXplZE1vZGFsQmFyVGl0bGUgPSAnbWluaW1pemVkLW1vZGFsLWJhci10aXRsZScsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciBvbmUgYnV0dG9uIGluIGEgbW9kYWwncyBjb21tYW5kIHN0cmlwLlxuICAgKi9cbiAgTW9kYWxDb21tYW5kID0gJ21vZGFsLWNvbW1hbmQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgYSBjb250cm9sIGluamVjdGVkIGludG8gYW4gaW5zdHJ1Y3Rpb24ncyBwdXJwb3NlIHRleHQg4oCUIGEgY2hlY2tib3gsIGEgZHJvcGRvd24uXG4gICAqIE9ic2lkaWFuJ3Mgb3duIGluc3RydWN0aW9uIGJhciBuZXZlciBjb250YWlucyBvbmUsIHNvIG5vdGhpbmcgdXBzdHJlYW0gc2VwYXJhdGVzIGl0IGZyb20gdGhlIGxhYmVsXG4gICAqIGl0IGJlbG9uZ3MgdG8uXG4gICAqL1xuICBNb2RhbENvbW1hbmRDb250cm9sID0gJ21vZGFsLWNvbW1hbmQtY29udHJvbCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgaG90a2V5IGhpbnQgaW5zaWRlIGEgbW9kYWwgY29tbWFuZCBidXR0b24uXG4gICAqL1xuICBNb2RhbENvbW1hbmRIb3RrZXkgPSAnbW9kYWwtY29tbWFuZC1ob3RrZXknLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHN0cmlwIG9mIGNvbW1hbmRzIGEgbW9kYWwgcmVuZGVycyBhbG9uZyBpdHMgYm90dG9tIGVkZ2UuXG4gICAqL1xuICBNb2RhbENvbW1hbmRzID0gJ21vZGFsLWNvbW1hbmRzJyxcblxuICAvKipcbiAgICogT2JzaWRpYW4ncyBjbGFzcyBmb3IgYSBtb2RhbCBoZWFkZXIgYnV0dG9uIChlLmcuIHRoZSBtb2RhbCBjbG9zZSBidXR0b24pLCByZXVzZWQgdG8gbWF0Y2ggdGhlXG4gICAqIG5hdGl2ZSBtb2RhbCBjbG9zZSBidXR0b24ncyBib3ggYW5kIGhvdmVyLlxuICAgKi9cbiAgTW9kYWxIZWFkZXJCdXR0b24gPSAnbW9kYWwtaGVhZGVyLWJ1dHRvbicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbW9udGggY29tcG9uZW50LlxuICAgKi9cbiAgTW9udGhDb21wb25lbnQgPSAnbW9udGgtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBtdWx0aXBsZSBkcm9wZG93biBjb21wb25lbnQuXG4gICAqL1xuICBNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50ID0gJ211bHRpcGxlLWRyb3Bkb3duLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbXVsdGlwbGUgZW1haWwgY29tcG9uZW50LlxuICAgKi9cbiAgTXVsdGlwbGVFbWFpbENvbXBvbmVudCA9ICdtdWx0aXBsZS1lbWFpbC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIG11bHRpcGxlIGZpbGUgY29tcG9uZW50LlxuICAgKi9cbiAgTXVsdGlwbGVGaWxlQ29tcG9uZW50ID0gJ211bHRpcGxlLWZpbGUtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBtdWx0aXBsZSB0ZXh0IGNvbXBvbmVudC5cbiAgICovXG4gIE11bHRpcGxlVGV4dENvbXBvbmVudCA9ICdtdWx0aXBsZS10ZXh0LWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbnVtYmVyIGNvbXBvbmVudC5cbiAgICovXG4gIE51bWJlckNvbXBvbmVudCA9ICdudW1iZXItY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBvayBidXR0b24uXG4gICAqL1xuICBPa0J1dHRvbiA9ICdvay1idXR0b24nLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIG92ZXJsYXkgdmFsaWRhdG9yLlxuICAgKi9cbiAgT3ZlcmxheVZhbGlkYXRvciA9ICdvdmVybGF5LXZhbGlkYXRvcicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgcGFzc3dvcmQgY29tcG9uZW50LlxuICAgKi9cbiAgUGFzc3dvcmRDb21wb25lbnQgPSAncGFzc3dvcmQtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBiYW5uZXIgbmFtaW5nIGEgcGx1Z2luIHRoaXMgb25lIHJlZnVzZXMsIG9yIHdhcm5zIGFib3V0LCBydW5uaW5nIGJlc2lkZS5cbiAgICovXG4gIFBsdWdpbkNvbmZsaWN0QmFubmVyID0gJ3BsdWdpbi1jb25mbGljdC1iYW5uZXInLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIGJhbm5lciBhIGJsb2NrZWQgcGx1Z2luIHJlbmRlcnMgaW4gcGxhY2Ugb2YgaXRzIHNldHRpbmdzLCBuYW1pbmcgdGhlIG1hbmRhdG9yeVxuICAgKiBkZXBlbmRlbmN5IGl0IGlzIHdhaXRpbmcgZm9yLlxuICAgKi9cbiAgUGx1Z2luRGVwZW5kZW5jeUJhbm5lciA9ICdwbHVnaW4tZGVwZW5kZW5jeS1iYW5uZXInLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIGNsb3NlIGJ1dHRvbiBvZiBhIG5vdGljZSB0aGF0IHJlcXVpcmVzIGNsb3NlIGNvbmZpcm1hdGlvbi5cbiAgICovXG4gIFBsdWdpbk5vdGljZUNsb3NlQnV0dG9uID0gJ3BsdWdpbi1ub3RpY2UtY2xvc2UtYnV0dG9uJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBjb250YWluZXIgd3JhcHBpbmcgYSBub3RpY2UncyBjb250ZW50LCB1c2VkIHRvIGtlZXAgdGhlIG5vdGljZSBvcGVuIHdoZW4gYW5cbiAgICogaW50ZXJhY3RpdmUgZWxlbWVudCBpbnNpZGUgaXQgaXMgY2xpY2tlZC5cbiAgICovXG4gIFBsdWdpbk5vdGljZUNvbnRlbnQgPSAncGx1Z2luLW5vdGljZS1jb250ZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBwbHVnaW4gbmFtZSBzaG93biBhcyB0aGUgcHJlZml4IG9mIGEgbm90aWNlLlxuICAgKi9cbiAgUGx1Z2luTm90aWNlTmFtZSA9ICdwbHVnaW4tbm90aWNlLW5hbWUnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBhcHBsaWVkIHRvIHRoZSBub3RpY2UgZWxlbWVudCBvZiBhIG5vdGljZSB0aGF0IHJlcXVpcmVzIGFuIGV4cGxpY2l0IGNsb3NlLCB1c2VkIHRvIG1ha2VcbiAgICogaXRzIHdob2xlIGFyZWEgbm9uLWRpc21pc3NpYmxlLlxuICAgKi9cbiAgUGx1Z2luTm90aWNlUmVxdWlyZXNFeHBsaWNpdENsb3NlID0gJ3BsdWdpbi1ub3RpY2UtcmVxdWlyZXMtZXhwbGljaXQtY2xvc2UnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHBsdWdpbiBzZXR0aW5ncyB0YWIuXG4gICAqL1xuICBQbHVnaW5TZXR0aW5nc1RhYiA9ICdwbHVnaW4tc2V0dGluZ3MtdGFiJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBiYW5uZXIgYSBwbHVnaW4tc3VnZ2VzdGlvbiByZW5kZXJzIGludG8gYSBzZXR0aW5ncyB0YWIuXG4gICAqL1xuICBQbHVnaW5TdWdnZXN0aW9uQmFubmVyID0gJ3BsdWdpbi1zdWdnZXN0aW9uLWJhbm5lcicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgcm93IG9mIGJ1dHRvbnMgaW4gYSBwbHVnaW4tc3VnZ2VzdGlvbiBub3RpY2UsIHdoaWNoIHNwYWNlcyB0aGUgYWN0aW9uIGJ1dHRvbiBhcGFydCBmcm9tXG4gICAqIHRoZSBkZWNsaW5lIGJ1dHRvbi5cbiAgICovXG4gIFBsdWdpblN1Z2dlc3Rpb25Ob3RpY2VCdXR0b25zID0gJ3BsdWdpbi1zdWdnZXN0aW9uLW5vdGljZS1idXR0b25zJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgUG9wb3ZlciA9ICdwb3BvdmVyJyxcblxuICAvKipcbiAgICogT2JzaWRpYW4ncyBjbGFzcyBmb3Igb25lIHJvdyBvZiBpdHMgbW9kYWwgaW5zdHJ1Y3Rpb24gYmFyLCByZXVzZWQgc28gYSBzZWxmLWNyZWF0ZWQgYmFyIGluaGVyaXRzIHRoZVxuICAgKiBhcHAncyBvd24gaW5zdHJ1Y3Rpb24gc3R5bGluZy5cbiAgICovXG4gIFByb21wdEluc3RydWN0aW9uID0gJ3Byb21wdC1pbnN0cnVjdGlvbicsXG5cbiAgLyoqXG4gICAqIE9ic2lkaWFuJ3MgY2xhc3MgZm9yIHRoZSBrZXktaGludCBoYWxmIG9mIG9uZSBpbnN0cnVjdGlvbiByb3cuIEl0IGlzIHRoZSBvbmx5IHRoaW5nIGNhcnJ5aW5nIHRoYXRcbiAgICogaGludCdzIGJvbGQgd2VpZ2h0IGFuZCB0aGUgYG1hcmdpbi1pbmxpbmUtZW5kYCB0aGF0IHNlcGFyYXRlcyBpdCBmcm9tIHRoZSBwdXJwb3NlIHRleHQsIHNvIGFcbiAgICogc2VsZi1jcmVhdGVkIGJhciB0aGF0IG9taXRzIGl0IHJlbmRlcnMgYGFsdCAxS2VlcCB0aGUgb2xkIHRpdGxlYCB3ZWxkZWQgdG9nZXRoZXIuIFJldXNlZCByYXRoZXJcbiAgICogdGhhbiByZS1pbXBsZW1lbnRlZDogdGhlIGFwcCdzIHJ1bGUgZm9yIGl0IGlzIHVuc2NvcGVkLCBzbyBpdCByZWFjaGVzIGEgcGxhaW4gYE1vZGFsYCB0b28sIGFuZFxuICAgKiBzaGFyaW5nIHRoZSBjbGFzcyBrZWVwcyB0aGUgc2VsZi1jcmVhdGVkIGJhciBhbmQgYHNldEluc3RydWN0aW9uc2AgZnJvbSBldmVyIGRyaWZ0aW5nIGFwYXJ0LlxuICAgKi9cbiAgUHJvbXB0SW5zdHJ1Y3Rpb25Db21tYW5kID0gJ3Byb21wdC1pbnN0cnVjdGlvbi1jb21tYW5kJyxcblxuICAvKipcbiAgICogT2JzaWRpYW4ncyBjbGFzcyBmb3IgaXRzIG1vZGFsIGluc3RydWN0aW9uIGJhciwgcmV1c2VkIHNvIGEgc2VsZi1jcmVhdGVkIGJhciBpbmhlcml0cyB0aGUgYXBwJ3Mgb3duXG4gICAqIGluc3RydWN0aW9uIHN0eWxpbmcuXG4gICAqL1xuICBQcm9tcHRJbnN0cnVjdGlvbnMgPSAncHJvbXB0LWluc3RydWN0aW9ucycsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgcHJvbXB0IG1vZGFsLlxuICAgKi9cbiAgUHJvbXB0TW9kYWwgPSAncHJvbXB0LW1vZGFsJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSByZXN0b3JlIGJ1dHRvbiBvZiB0aGUgbWluaW1pemVkIG1vZGFsIGJhci5cbiAgICovXG4gIFJlc3RvcmVCdXR0b24gPSAncmVzdG9yZS1idXR0b24nLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHNlbGVjdCBpdGVtIG1vZGFsLlxuICAgKi9cbiAgU2VsZWN0SXRlbU1vZGFsID0gJ3NlbGVjdC1pdGVtLW1vZGFsJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBzZWxlY3Qgb3B0aW9uIG1vZGFsLlxuICAgKi9cbiAgU2VsZWN0T3B0aW9uTW9kYWwgPSAnc2VsZWN0LW9wdGlvbi1tb2RhbCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgc2V0dGluZyBjb21wb25lbnQgd3JhcHBlci5cbiAgICovXG4gIFNldHRpbmdDb21wb25lbnRXcmFwcGVyID0gJ3NldHRpbmctY29tcG9uZW50LXdyYXBwZXInLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHRlbGVwaG9uZSBjb21wb25lbnQuXG4gICAqL1xuICBUZWxlcGhvbmVDb21wb25lbnQgPSAndGVsZXBob25lLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgdGV4dCBib3guXG4gICAqL1xuICBUZXh0Qm94ID0gJ3RleHQtYm94JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB0aW1lIGNvbXBvbmVudC5cbiAgICovXG4gIFRpbWVDb21wb25lbnQgPSAndGltZS1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHRvb2x0aXAuXG4gICAqL1xuICBUb29sdGlwID0gJ3Rvb2x0aXAnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHRvb2x0aXAgYXJyb3cuXG4gICAqL1xuICBUb29sdGlwQXJyb3cgPSAndG9vbHRpcC1hcnJvdycsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgdG9vbHRpcCB2YWxpZGF0b3IuXG4gICAqL1xuICBUb29sdGlwVmFsaWRhdG9yID0gJ3Rvb2x0aXAtdmFsaWRhdG9yJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB0cmktc3RhdGUgY2hlY2tib3ggY29tcG9uZW50LlxuICAgKi9cbiAgVHJpU3RhdGVDaGVja2JveENvbXBvbmVudCA9ICd0cmktc3RhdGUtY2hlY2tib3gtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB0eXBlZCBkcm9wZG93biBjb21wb25lbnQuXG4gICAqL1xuICBUeXBlZERyb3Bkb3duQ29tcG9uZW50ID0gJ3R5cGVkLWRyb3Bkb3duLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgdHlwZWQgbXVsdGlwbGUgZHJvcGRvd24gY29tcG9uZW50LlxuICAgKi9cbiAgVHlwZWRNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50ID0gJ3R5cGVkLW11bHRpcGxlLWRyb3Bkb3duLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciBhbiBpbnB1dCB0aGUgdXNlciBoYXMgbm90IGludGVyYWN0ZWQgd2l0aCB5ZXQsIHVzZWQgdG8gZGVmZXIgdGhlIGludmFsaWQgc3R5bGluZyB1bnRpbFxuICAgKiB0aGUgaW5wdXQgaXMgdG91Y2hlZC5cbiAgICovXG4gIFVudG91Y2hlZCA9ICd1bnRvdWNoZWQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHVybCBjb21wb25lbnQuXG4gICAqL1xuICBVcmxDb21wb25lbnQgPSAndXJsLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgd2VlayBjb21wb25lbnQuXG4gICAqL1xuICBXZWVrQ29tcG9uZW50ID0gJ3dlZWstY29tcG9uZW50J1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU08sSUFBSyxXQUFMLGtCQUFLQSxjQUFMO0FBSUwsRUFBQUEsVUFBQSxnQkFBYTtBQUtiLEVBQUFBLFVBQUEsa0JBQWU7QUFLZixFQUFBQSxVQUFBLHVCQUFvQjtBQUtwQixFQUFBQSxVQUFBLG1CQUFnQjtBQUtoQixFQUFBQSxVQUFBLFVBQU87QUFLUCxFQUFBQSxVQUFBLDhCQUEyQjtBQUszQixFQUFBQSxVQUFBLGtCQUFlO0FBS2YsRUFBQUEsVUFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsVUFBQSx1QkFBb0I7QUFLcEIsRUFBQUEsVUFBQSxvQkFBaUI7QUFLakIsRUFBQUEsVUFBQSxtQkFBZ0I7QUFNaEIsRUFBQUEsVUFBQSxjQUFXO0FBS1gsRUFBQUEsVUFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsVUFBQSxpQkFBYztBQUtkLEVBQUFBLFVBQUEsc0JBQW1CO0FBS25CLEVBQUFBLFVBQUEsc0JBQW1CO0FBS25CLEVBQUFBLFVBQUEsb0JBQWlCO0FBS2pCLEVBQUFBLFVBQUEsdUJBQW9CO0FBTXBCLEVBQUFBLFVBQUEsZ0NBQTZCO0FBSzdCLEVBQUFBLFVBQUEsNEJBQXlCO0FBS3pCLEVBQUFBLFVBQUEsa0JBQWU7QUFPZixFQUFBQSxVQUFBLHlCQUFzQjtBQUt0QixFQUFBQSxVQUFBLHdCQUFxQjtBQUtyQixFQUFBQSxVQUFBLG1CQUFnQjtBQU1oQixFQUFBQSxVQUFBLHVCQUFvQjtBQUtwQixFQUFBQSxVQUFBLG9CQUFpQjtBQUtqQixFQUFBQSxVQUFBLCtCQUE0QjtBQUs1QixFQUFBQSxVQUFBLDRCQUF5QjtBQUt6QixFQUFBQSxVQUFBLDJCQUF3QjtBQUt4QixFQUFBQSxVQUFBLDJCQUF3QjtBQUt4QixFQUFBQSxVQUFBLHFCQUFrQjtBQUtsQixFQUFBQSxVQUFBLGNBQVc7QUFLWCxFQUFBQSxVQUFBLHNCQUFtQjtBQUtuQixFQUFBQSxVQUFBLHVCQUFvQjtBQUtwQixFQUFBQSxVQUFBLDBCQUF1QjtBQU12QixFQUFBQSxVQUFBLDRCQUF5QjtBQUt6QixFQUFBQSxVQUFBLDZCQUEwQjtBQU0xQixFQUFBQSxVQUFBLHlCQUFzQjtBQUt0QixFQUFBQSxVQUFBLHNCQUFtQjtBQU1uQixFQUFBQSxVQUFBLHVDQUFvQztBQUtwQyxFQUFBQSxVQUFBLHVCQUFvQjtBQUtwQixFQUFBQSxVQUFBLDRCQUF5QjtBQU16QixFQUFBQSxVQUFBLG1DQUFnQztBQUtoQyxFQUFBQSxVQUFBLGFBQVU7QUFNVixFQUFBQSxVQUFBLHVCQUFvQjtBQVNwQixFQUFBQSxVQUFBLDhCQUEyQjtBQU0zQixFQUFBQSxVQUFBLHdCQUFxQjtBQUtyQixFQUFBQSxVQUFBLGlCQUFjO0FBS2QsRUFBQUEsVUFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsVUFBQSxxQkFBa0I7QUFLbEIsRUFBQUEsVUFBQSx1QkFBb0I7QUFLcEIsRUFBQUEsVUFBQSw2QkFBMEI7QUFLMUIsRUFBQUEsVUFBQSx3QkFBcUI7QUFLckIsRUFBQUEsVUFBQSxhQUFVO0FBS1YsRUFBQUEsVUFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsVUFBQSxhQUFVO0FBS1YsRUFBQUEsVUFBQSxrQkFBZTtBQUtmLEVBQUFBLFVBQUEsc0JBQW1CO0FBS25CLEVBQUFBLFVBQUEsK0JBQTRCO0FBSzVCLEVBQUFBLFVBQUEsNEJBQXlCO0FBS3pCLEVBQUFBLFVBQUEsb0NBQWlDO0FBTWpDLEVBQUFBLFVBQUEsZUFBWTtBQUtaLEVBQUFBLFVBQUEsa0JBQWU7QUFLZixFQUFBQSxVQUFBLG1CQUFnQjtBQS9VTixTQUFBQTtBQUFBLEdBQUE7IiwibmFtZXMiOlsiQ3NzQ2xhc3MiXX0=
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jc3MtY2xhc3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENTUyBjbGFzc2VzIHVzZWQgYnkgdGhlIGBAbW5hb3Vtb3Yvb2JzaWRpYW4tbGliYCBsaWJyYXJ5LlxuICovXG5cbi8qKlxuICogQ1NTIGNsYXNzZXMgdXNlZCBieSB0aGUgYEBtbmFvdW1vdi9vYnNpZGlhbi1saWJgIGxpYnJhcnkuXG4gKi9cbmV4cG9ydCBlbnVtIENzc0NsYXNzIHtcbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgYWxlcnQgbW9kYWwuXG4gICAqL1xuICBBbGVydE1vZGFsID0gJ2FsZXJ0LW1vZGFsJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBjYW5jZWwgYnV0dG9uLlxuICAgKi9cbiAgQ2FuY2VsQnV0dG9uID0gJ2NhbmNlbC1idXR0b24nLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIGNoZWNrYm94IGNvbXBvbmVudC5cbiAgICovXG4gIENoZWNrYm94Q29tcG9uZW50ID0gJ2NoZWNrYm94LWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIE9ic2lkaWFuJ3MgY2xhc3MgZm9yIGEgY2xpY2thYmxlIGljb24gYnV0dG9uLCBnaXZpbmcgaXQgdGhlIGhvdmVyIGJhY2tncm91bmQgYW5kIGljb24tY29sb3IgdHJlYXRtZW50LlxuICAgKi9cbiAgQ2xpY2thYmxlSWNvbiA9ICdjbGlja2FibGUtaWNvbicsXG5cbiAgLyoqXG4gICAqIE9ic2lkaWFuJ3MgY2xhc3MgZm9yIGFuIGlubGluZSBjb2RlIGVsZW1lbnQgKHVzZWQgYnkgYGFwcGVuZENvZGVCbG9ja2ApLlxuICAgKi9cbiAgQ29kZSA9ICdjb2RlJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBjb2RlIGhpZ2hsaWdodGVyIGNvbXBvbmVudC5cbiAgICovXG4gIENvZGVIaWdobGlnaHRlckNvbXBvbmVudCA9ICdjb2RlLWhpZ2hsaWdodGVyLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgY29uZmlybSBtb2RhbC5cbiAgICovXG4gIENvbmZpcm1Nb2RhbCA9ICdjb25maXJtLW1vZGFsJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBkYXRlIGNvbXBvbmVudC5cbiAgICovXG4gIERhdGVDb21wb25lbnQgPSAnZGF0ZS1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIGRhdGUgYW5kIHRpbWUgY29tcG9uZW50LlxuICAgKi9cbiAgRGF0ZVRpbWVDb21wb25lbnQgPSAnZGF0ZXRpbWUtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBlbWFpbCBjb21wb25lbnQuXG4gICAqL1xuICBFbWFpbENvbXBvbmVudCA9ICdlbWFpbC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIGZpbGUgY29tcG9uZW50LlxuICAgKi9cbiAgRmlsZUNvbXBvbmVudCA9ICdmaWxlLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciByZW5kZXJlZCBtYXJrZG93biB3aG9zZSBoZWFkaW5ncyBhbmQgbGlzdHMgYHJlZ2lzdGVyRm9sZEhhbmRsZXJzYCBtYWRlIGZvbGRhYmxlLlxuICAgKi9cbiAgRm9sZGFibGVNYXJrZG93biA9ICdmb2xkYWJsZS1tYXJrZG93bicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgZm9sZGVyIGxpc3QgY29tcG9uZW50LlxuICAgKi9cbiAgRm9sZGVyTGlzdENvbXBvbmVudCA9ICdmb2xkZXItbGlzdC1jb21wb25lbnQnLFxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBob3RrZXkgY29tcG9uZW50LlxuICAgKi9cbiAgSG90a2V5Q29tcG9uZW50ID0gJ2hvdGtleS1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIGVsZW1lbnQgYW4gaW5saW5lIHRva2VuIHJlbmRlcnMgaW50bywgaW4gUmVhZGluZyB2aWV3IGFuZCBpbiBMaXZlIFByZXZpZXcuXG4gICAqL1xuICBJbmxpbmVUb2tlbiA9ICdpbmxpbmUtdG9rZW4nLFxuXG4gIC8qKlxuICAgKiBPYnNpZGlhbidzIGNsYXNzIGZvciBhIGNvbnRyb2wgdGhhdCBpcyBjdXJyZW50bHkgT04sIHJldXNlZCBzbyBhIHByZXNzZWQgY29tbWFuZCBidXR0b24gbWF0Y2hlcyB0aGVcbiAgICogYXBwJ3Mgb3duIHRvZ2dsZWQgY29udHJvbHMuXG4gICAqL1xuICBJc0FjdGl2ZSA9ICdpcy1hY3RpdmUnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHBsYWNlaG9sZGVyLlxuICAgKi9cbiAgSXNQbGFjZWhvbGRlciA9ICdpcy1wbGFjZWhvbGRlcicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbGlicmFyeSBuYW1lLCBzZXQgb24gZXZlcnkgZWxlbWVudCB0aGUgbGlicmFyeSBidWlsZHMuXG4gICAqL1xuICBMaWJyYXJ5TmFtZSA9ICdvYnNpZGlhbi1saWInLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHJlb3JkZXJhYmxlIGxpc3QgY29tcG9uZW50LlxuICAgKi9cbiAgTGlzdENvbXBvbmVudCA9ICdsaXN0LWNvbXBvbmVudCcsXG4gIC8qKlxuICAgKiBPYnNpZGlhbidzIGNsYXNzIG1hcmtpbmcgcmVuZGVyZWQtbWFya2Rvd24gY29udGVudCAodXNlZCBieSBgYXBwZW5kQ29kZUJsb2NrYCkuXG4gICAqL1xuICBNYXJrZG93blJlbmRlcmVkID0gJ21hcmtkb3duLXJlbmRlcmVkJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBtaW5pbWl6YWJsZSBtb2RhbC5cbiAgICovXG4gIE1pbmltaXphYmxlTW9kYWwgPSAnbWluaW1pemFibGUtbW9kYWwnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIG1pbmltaXplIGJ1dHRvbiBvZiB0aGUgbWluaW1pemFibGUgbW9kYWwuXG4gICAqL1xuICBNaW5pbWl6ZUJ1dHRvbiA9ICdtaW5pbWl6ZS1idXR0b24nLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIG1pbmltaXplZCBiYXIgb2YgdGhlIG1pbmltaXphYmxlIG1vZGFsLlxuICAgKi9cbiAgTWluaW1pemVkTW9kYWxCYXIgPSAnbWluaW1pemVkLW1vZGFsLWJhcicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgb25lLXNob3QgYXR0ZW50aW9uIGZsYXNoIG9mIHRoZSBtaW5pbWl6ZWQgYmFyLCBwbGF5ZWQgd2hlbiB0aGUgdXNlciBhdHRlbXB0cyBhXG4gICAqIGJsb2NrZWQgYWN0aW9uIChhIGtleXN0cm9rZSwgcmlnaHQtY2xpY2ssIG9yIG9wZW5pbmcgYW5vdGhlciBtb2RhbCkgd2hpbGUgdGhlIG1vZGFsIGlzIG1pbmltaXplZC5cbiAgICovXG4gIE1pbmltaXplZE1vZGFsQmFyQXR0ZW50aW9uID0gJ21pbmltaXplZC1tb2RhbC1iYXItYXR0ZW50aW9uJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB0aXRsZSBvZiB0aGUgbWluaW1pemVkIGJhciBvZiB0aGUgbWluaW1pemFibGUgbW9kYWwuXG4gICAqL1xuICBNaW5pbWl6ZWRNb2RhbEJhclRpdGxlID0gJ21pbmltaXplZC1tb2RhbC1iYXItdGl0bGUnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3Igb25lIGJ1dHRvbiBpbiBhIG1vZGFsJ3MgY29tbWFuZCBzdHJpcC5cbiAgICovXG4gIE1vZGFsQ29tbWFuZCA9ICdtb2RhbC1jb21tYW5kJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIGEgY29udHJvbCBpbmplY3RlZCBpbnRvIGFuIGluc3RydWN0aW9uJ3MgcHVycG9zZSB0ZXh0IOKAlCBhIGNoZWNrYm94LCBhIGRyb3Bkb3duLlxuICAgKiBPYnNpZGlhbidzIG93biBpbnN0cnVjdGlvbiBiYXIgbmV2ZXIgY29udGFpbnMgb25lLCBzbyBub3RoaW5nIHVwc3RyZWFtIHNlcGFyYXRlcyBpdCBmcm9tIHRoZSBsYWJlbFxuICAgKiBpdCBiZWxvbmdzIHRvLlxuICAgKi9cbiAgTW9kYWxDb21tYW5kQ29udHJvbCA9ICdtb2RhbC1jb21tYW5kLWNvbnRyb2wnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIGhvdGtleSBoaW50IGluc2lkZSBhIG1vZGFsIGNvbW1hbmQgYnV0dG9uLlxuICAgKi9cbiAgTW9kYWxDb21tYW5kSG90a2V5ID0gJ21vZGFsLWNvbW1hbmQtaG90a2V5JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBzdHJpcCBvZiBjb21tYW5kcyBhIG1vZGFsIHJlbmRlcnMgYWxvbmcgaXRzIGJvdHRvbSBlZGdlLlxuICAgKi9cbiAgTW9kYWxDb21tYW5kcyA9ICdtb2RhbC1jb21tYW5kcycsXG5cbiAgLyoqXG4gICAqIE9ic2lkaWFuJ3MgY2xhc3MgZm9yIGEgbW9kYWwgaGVhZGVyIGJ1dHRvbiAoZS5nLiB0aGUgbW9kYWwgY2xvc2UgYnV0dG9uKSwgcmV1c2VkIHRvIG1hdGNoIHRoZVxuICAgKiBuYXRpdmUgbW9kYWwgY2xvc2UgYnV0dG9uJ3MgYm94IGFuZCBob3Zlci5cbiAgICovXG4gIE1vZGFsSGVhZGVyQnV0dG9uID0gJ21vZGFsLWhlYWRlci1idXR0b24nLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIG1vbnRoIGNvbXBvbmVudC5cbiAgICovXG4gIE1vbnRoQ29tcG9uZW50ID0gJ21vbnRoLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbXVsdGlwbGUgZHJvcGRvd24gY29tcG9uZW50LlxuICAgKi9cbiAgTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudCA9ICdtdWx0aXBsZS1kcm9wZG93bi1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIG11bHRpcGxlIGVtYWlsIGNvbXBvbmVudC5cbiAgICovXG4gIE11bHRpcGxlRW1haWxDb21wb25lbnQgPSAnbXVsdGlwbGUtZW1haWwtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBtdWx0aXBsZSBmaWxlIGNvbXBvbmVudC5cbiAgICovXG4gIE11bHRpcGxlRmlsZUNvbXBvbmVudCA9ICdtdWx0aXBsZS1maWxlLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgbXVsdGlwbGUgdGV4dCBjb21wb25lbnQuXG4gICAqL1xuICBNdWx0aXBsZVRleHRDb21wb25lbnQgPSAnbXVsdGlwbGUtdGV4dC1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIG51bWJlciBjb21wb25lbnQuXG4gICAqL1xuICBOdW1iZXJDb21wb25lbnQgPSAnbnVtYmVyLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgb2sgYnV0dG9uLlxuICAgKi9cbiAgT2tCdXR0b24gPSAnb2stYnV0dG9uJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBvdmVybGF5IHZhbGlkYXRvci5cbiAgICovXG4gIE92ZXJsYXlWYWxpZGF0b3IgPSAnb3ZlcmxheS12YWxpZGF0b3InLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHBhc3N3b3JkIGNvbXBvbmVudC5cbiAgICovXG4gIFBhc3N3b3JkQ29tcG9uZW50ID0gJ3Bhc3N3b3JkLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgYmFubmVyIG5hbWluZyBhIHBsdWdpbiB0aGlzIG9uZSByZWZ1c2VzLCBvciB3YXJucyBhYm91dCwgcnVubmluZyBiZXNpZGUuXG4gICAqL1xuICBQbHVnaW5Db25mbGljdEJhbm5lciA9ICdwbHVnaW4tY29uZmxpY3QtYmFubmVyJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBiYW5uZXIgYSBibG9ja2VkIHBsdWdpbiByZW5kZXJzIGluIHBsYWNlIG9mIGl0cyBzZXR0aW5ncywgbmFtaW5nIHRoZSBtYW5kYXRvcnlcbiAgICogZGVwZW5kZW5jeSBpdCBpcyB3YWl0aW5nIGZvci5cbiAgICovXG4gIFBsdWdpbkRlcGVuZGVuY3lCYW5uZXIgPSAncGx1Z2luLWRlcGVuZGVuY3ktYmFubmVyJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBjbG9zZSBidXR0b24gb2YgYSBub3RpY2UgdGhhdCByZXF1aXJlcyBjbG9zZSBjb25maXJtYXRpb24uXG4gICAqL1xuICBQbHVnaW5Ob3RpY2VDbG9zZUJ1dHRvbiA9ICdwbHVnaW4tbm90aWNlLWNsb3NlLWJ1dHRvbicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgY29udGFpbmVyIHdyYXBwaW5nIGEgbm90aWNlJ3MgY29udGVudCwgdXNlZCB0byBrZWVwIHRoZSBub3RpY2Ugb3BlbiB3aGVuIGFuXG4gICAqIGludGVyYWN0aXZlIGVsZW1lbnQgaW5zaWRlIGl0IGlzIGNsaWNrZWQuXG4gICAqL1xuICBQbHVnaW5Ob3RpY2VDb250ZW50ID0gJ3BsdWdpbi1ub3RpY2UtY29udGVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgcGx1Z2luIG5hbWUgc2hvd24gYXMgdGhlIHByZWZpeCBvZiBhIG5vdGljZS5cbiAgICovXG4gIFBsdWdpbk5vdGljZU5hbWUgPSAncGx1Z2luLW5vdGljZS1uYW1lJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgYXBwbGllZCB0byB0aGUgbm90aWNlIGVsZW1lbnQgb2YgYSBub3RpY2UgdGhhdCByZXF1aXJlcyBhbiBleHBsaWNpdCBjbG9zZSwgdXNlZCB0byBtYWtlXG4gICAqIGl0cyB3aG9sZSBhcmVhIG5vbi1kaXNtaXNzaWJsZS5cbiAgICovXG4gIFBsdWdpbk5vdGljZVJlcXVpcmVzRXhwbGljaXRDbG9zZSA9ICdwbHVnaW4tbm90aWNlLXJlcXVpcmVzLWV4cGxpY2l0LWNsb3NlJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBwbHVnaW4gc2V0dGluZ3MgdGFiLlxuICAgKi9cbiAgUGx1Z2luU2V0dGluZ3NUYWIgPSAncGx1Z2luLXNldHRpbmdzLXRhYicsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgYmFubmVyIGEgcGx1Z2luLXN1Z2dlc3Rpb24gcmVuZGVycyBpbnRvIGEgc2V0dGluZ3MgdGFiLlxuICAgKi9cbiAgUGx1Z2luU3VnZ2VzdGlvbkJhbm5lciA9ICdwbHVnaW4tc3VnZ2VzdGlvbi1iYW5uZXInLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHJvdyBvZiBidXR0b25zIGluIGEgcGx1Z2luLXN1Z2dlc3Rpb24gbm90aWNlLCB3aGljaCBzcGFjZXMgdGhlIGFjdGlvbiBidXR0b24gYXBhcnQgZnJvbVxuICAgKiB0aGUgZGVjbGluZSBidXR0b24uXG4gICAqL1xuICBQbHVnaW5TdWdnZXN0aW9uTm90aWNlQnV0dG9ucyA9ICdwbHVnaW4tc3VnZ2VzdGlvbi1ub3RpY2UtYnV0dG9ucycsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgcG9wb3Zlci5cbiAgICovXG4gIFBvcG92ZXIgPSAncG9wb3ZlcicsXG5cbiAgLyoqXG4gICAqIE9ic2lkaWFuJ3MgY2xhc3MgZm9yIG9uZSByb3cgb2YgaXRzIG1vZGFsIGluc3RydWN0aW9uIGJhciwgcmV1c2VkIHNvIGEgc2VsZi1jcmVhdGVkIGJhciBpbmhlcml0cyB0aGVcbiAgICogYXBwJ3Mgb3duIGluc3RydWN0aW9uIHN0eWxpbmcuXG4gICAqL1xuICBQcm9tcHRJbnN0cnVjdGlvbiA9ICdwcm9tcHQtaW5zdHJ1Y3Rpb24nLFxuXG4gIC8qKlxuICAgKiBPYnNpZGlhbidzIGNsYXNzIGZvciB0aGUga2V5LWhpbnQgaGFsZiBvZiBvbmUgaW5zdHJ1Y3Rpb24gcm93LiBJdCBpcyB0aGUgb25seSB0aGluZyBjYXJyeWluZyB0aGF0XG4gICAqIGhpbnQncyBib2xkIHdlaWdodCBhbmQgdGhlIGBtYXJnaW4taW5saW5lLWVuZGAgdGhhdCBzZXBhcmF0ZXMgaXQgZnJvbSB0aGUgcHVycG9zZSB0ZXh0LCBzbyBhXG4gICAqIHNlbGYtY3JlYXRlZCBiYXIgdGhhdCBvbWl0cyBpdCByZW5kZXJzIGBhbHQgMUtlZXAgdGhlIG9sZCB0aXRsZWAgd2VsZGVkIHRvZ2V0aGVyLiBSZXVzZWQgcmF0aGVyXG4gICAqIHRoYW4gcmUtaW1wbGVtZW50ZWQ6IHRoZSBhcHAncyBydWxlIGZvciBpdCBpcyB1bnNjb3BlZCwgc28gaXQgcmVhY2hlcyBhIHBsYWluIGBNb2RhbGAgdG9vLCBhbmRcbiAgICogc2hhcmluZyB0aGUgY2xhc3Mga2VlcHMgdGhlIHNlbGYtY3JlYXRlZCBiYXIgYW5kIGBzZXRJbnN0cnVjdGlvbnNgIGZyb20gZXZlciBkcmlmdGluZyBhcGFydC5cbiAgICovXG4gIFByb21wdEluc3RydWN0aW9uQ29tbWFuZCA9ICdwcm9tcHQtaW5zdHJ1Y3Rpb24tY29tbWFuZCcsXG5cbiAgLyoqXG4gICAqIE9ic2lkaWFuJ3MgY2xhc3MgZm9yIGl0cyBtb2RhbCBpbnN0cnVjdGlvbiBiYXIsIHJldXNlZCBzbyBhIHNlbGYtY3JlYXRlZCBiYXIgaW5oZXJpdHMgdGhlIGFwcCdzIG93blxuICAgKiBpbnN0cnVjdGlvbiBzdHlsaW5nLlxuICAgKi9cbiAgUHJvbXB0SW5zdHJ1Y3Rpb25zID0gJ3Byb21wdC1pbnN0cnVjdGlvbnMnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHByb21wdCBtb2RhbC5cbiAgICovXG4gIFByb21wdE1vZGFsID0gJ3Byb21wdC1tb2RhbCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgcmVzdG9yZSBidXR0b24gb2YgdGhlIG1pbmltaXplZCBtb2RhbCBiYXIuXG4gICAqL1xuICBSZXN0b3JlQnV0dG9uID0gJ3Jlc3RvcmUtYnV0dG9uJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBzZWxlY3QgaXRlbSBtb2RhbC5cbiAgICovXG4gIFNlbGVjdEl0ZW1Nb2RhbCA9ICdzZWxlY3QtaXRlbS1tb2RhbCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgc2VsZWN0IG9wdGlvbiBtb2RhbC5cbiAgICovXG4gIFNlbGVjdE9wdGlvbk1vZGFsID0gJ3NlbGVjdC1vcHRpb24tbW9kYWwnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHNldHRpbmcgY29tcG9uZW50IHdyYXBwZXIuXG4gICAqL1xuICBTZXR0aW5nQ29tcG9uZW50V3JhcHBlciA9ICdzZXR0aW5nLWNvbXBvbmVudC13cmFwcGVyJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSBzZXR0aW5ncyB0YWJzLlxuICAgKi9cbiAgU2V0dGluZ3NUYWJzID0gJ3NldHRpbmdzLXRhYnMnLFxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB0YWcgbGlzdCBjb21wb25lbnQuXG4gICAqL1xuICBUYWdMaXN0Q29tcG9uZW50ID0gJ3RhZy1saXN0LWNvbXBvbmVudCcsXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHRlbGVwaG9uZSBjb21wb25lbnQuXG4gICAqL1xuICBUZWxlcGhvbmVDb21wb25lbnQgPSAndGVsZXBob25lLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgdGV4dCBib3guXG4gICAqL1xuICBUZXh0Qm94ID0gJ3RleHQtYm94JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB0aW1lIGNvbXBvbmVudC5cbiAgICovXG4gIFRpbWVDb21wb25lbnQgPSAndGltZS1jb21wb25lbnQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHRvb2x0aXAuXG4gICAqL1xuICBUb29sdGlwID0gJ3Rvb2x0aXAnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHRvb2x0aXAgYXJyb3cuXG4gICAqL1xuICBUb29sdGlwQXJyb3cgPSAndG9vbHRpcC1hcnJvdycsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgdG9vbHRpcCB2YWxpZGF0b3IuXG4gICAqL1xuICBUb29sdGlwVmFsaWRhdG9yID0gJ3Rvb2x0aXAtdmFsaWRhdG9yJyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB0cmktc3RhdGUgY2hlY2tib3ggY29tcG9uZW50LlxuICAgKi9cbiAgVHJpU3RhdGVDaGVja2JveENvbXBvbmVudCA9ICd0cmktc3RhdGUtY2hlY2tib3gtY29tcG9uZW50JyxcblxuICAvKipcbiAgICogQSBDU1MgY2xhc3MgZm9yIHRoZSB0eXBlZCBkcm9wZG93biBjb21wb25lbnQuXG4gICAqL1xuICBUeXBlZERyb3Bkb3duQ29tcG9uZW50ID0gJ3R5cGVkLWRyb3Bkb3duLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgdHlwZWQgbXVsdGlwbGUgZHJvcGRvd24gY29tcG9uZW50LlxuICAgKi9cbiAgVHlwZWRNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50ID0gJ3R5cGVkLW11bHRpcGxlLWRyb3Bkb3duLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciBhbiBpbnB1dCB0aGUgdXNlciBoYXMgbm90IGludGVyYWN0ZWQgd2l0aCB5ZXQsIHVzZWQgdG8gZGVmZXIgdGhlIGludmFsaWQgc3R5bGluZyB1bnRpbFxuICAgKiB0aGUgaW5wdXQgaXMgdG91Y2hlZC5cbiAgICovXG4gIFVudG91Y2hlZCA9ICd1bnRvdWNoZWQnLFxuXG4gIC8qKlxuICAgKiBBIENTUyBjbGFzcyBmb3IgdGhlIHVybCBjb21wb25lbnQuXG4gICAqL1xuICBVcmxDb21wb25lbnQgPSAndXJsLWNvbXBvbmVudCcsXG5cbiAgLyoqXG4gICAqIEEgQ1NTIGNsYXNzIGZvciB0aGUgd2VlayBjb21wb25lbnQuXG4gICAqL1xuICBXZWVrQ29tcG9uZW50ID0gJ3dlZWstY29tcG9uZW50J1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU08sSUFBSyxXQUFMLGtCQUFLQSxjQUFMO0FBSUwsRUFBQUEsVUFBQSxnQkFBYTtBQUtiLEVBQUFBLFVBQUEsa0JBQWU7QUFLZixFQUFBQSxVQUFBLHVCQUFvQjtBQUtwQixFQUFBQSxVQUFBLG1CQUFnQjtBQUtoQixFQUFBQSxVQUFBLFVBQU87QUFLUCxFQUFBQSxVQUFBLDhCQUEyQjtBQUszQixFQUFBQSxVQUFBLGtCQUFlO0FBS2YsRUFBQUEsVUFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsVUFBQSx1QkFBb0I7QUFLcEIsRUFBQUEsVUFBQSxvQkFBaUI7QUFLakIsRUFBQUEsVUFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsVUFBQSxzQkFBbUI7QUFLbkIsRUFBQUEsVUFBQSx5QkFBc0I7QUFJdEIsRUFBQUEsVUFBQSxxQkFBa0I7QUFLbEIsRUFBQUEsVUFBQSxpQkFBYztBQU1kLEVBQUFBLFVBQUEsY0FBVztBQUtYLEVBQUFBLFVBQUEsbUJBQWdCO0FBS2hCLEVBQUFBLFVBQUEsaUJBQWM7QUFLZCxFQUFBQSxVQUFBLG1CQUFnQjtBQUloQixFQUFBQSxVQUFBLHNCQUFtQjtBQUtuQixFQUFBQSxVQUFBLHNCQUFtQjtBQUtuQixFQUFBQSxVQUFBLG9CQUFpQjtBQUtqQixFQUFBQSxVQUFBLHVCQUFvQjtBQU1wQixFQUFBQSxVQUFBLGdDQUE2QjtBQUs3QixFQUFBQSxVQUFBLDRCQUF5QjtBQUt6QixFQUFBQSxVQUFBLGtCQUFlO0FBT2YsRUFBQUEsVUFBQSx5QkFBc0I7QUFLdEIsRUFBQUEsVUFBQSx3QkFBcUI7QUFLckIsRUFBQUEsVUFBQSxtQkFBZ0I7QUFNaEIsRUFBQUEsVUFBQSx1QkFBb0I7QUFLcEIsRUFBQUEsVUFBQSxvQkFBaUI7QUFLakIsRUFBQUEsVUFBQSwrQkFBNEI7QUFLNUIsRUFBQUEsVUFBQSw0QkFBeUI7QUFLekIsRUFBQUEsVUFBQSwyQkFBd0I7QUFLeEIsRUFBQUEsVUFBQSwyQkFBd0I7QUFLeEIsRUFBQUEsVUFBQSxxQkFBa0I7QUFLbEIsRUFBQUEsVUFBQSxjQUFXO0FBS1gsRUFBQUEsVUFBQSxzQkFBbUI7QUFLbkIsRUFBQUEsVUFBQSx1QkFBb0I7QUFLcEIsRUFBQUEsVUFBQSwwQkFBdUI7QUFNdkIsRUFBQUEsVUFBQSw0QkFBeUI7QUFLekIsRUFBQUEsVUFBQSw2QkFBMEI7QUFNMUIsRUFBQUEsVUFBQSx5QkFBc0I7QUFLdEIsRUFBQUEsVUFBQSxzQkFBbUI7QUFNbkIsRUFBQUEsVUFBQSx1Q0FBb0M7QUFLcEMsRUFBQUEsVUFBQSx1QkFBb0I7QUFLcEIsRUFBQUEsVUFBQSw0QkFBeUI7QUFNekIsRUFBQUEsVUFBQSxtQ0FBZ0M7QUFLaEMsRUFBQUEsVUFBQSxhQUFVO0FBTVYsRUFBQUEsVUFBQSx1QkFBb0I7QUFTcEIsRUFBQUEsVUFBQSw4QkFBMkI7QUFNM0IsRUFBQUEsVUFBQSx3QkFBcUI7QUFLckIsRUFBQUEsVUFBQSxpQkFBYztBQUtkLEVBQUFBLFVBQUEsbUJBQWdCO0FBS2hCLEVBQUFBLFVBQUEscUJBQWtCO0FBS2xCLEVBQUFBLFVBQUEsdUJBQW9CO0FBS3BCLEVBQUFBLFVBQUEsNkJBQTBCO0FBSzFCLEVBQUFBLFVBQUEsa0JBQWU7QUFJZixFQUFBQSxVQUFBLHNCQUFtQjtBQUluQixFQUFBQSxVQUFBLHdCQUFxQjtBQUtyQixFQUFBQSxVQUFBLGFBQVU7QUFLVixFQUFBQSxVQUFBLG1CQUFnQjtBQUtoQixFQUFBQSxVQUFBLGFBQVU7QUFLVixFQUFBQSxVQUFBLGtCQUFlO0FBS2YsRUFBQUEsVUFBQSxzQkFBbUI7QUFLbkIsRUFBQUEsVUFBQSwrQkFBNEI7QUFLNUIsRUFBQUEsVUFBQSw0QkFBeUI7QUFLekIsRUFBQUEsVUFBQSxvQ0FBaUM7QUFNakMsRUFBQUEsVUFBQSxlQUFZO0FBS1osRUFBQUEsVUFBQSxrQkFBZTtBQUtmLEVBQUFBLFVBQUEsbUJBQWdCO0FBOVdOLFNBQUFBO0FBQUEsR0FBQTsiLCJuYW1lcyI6WyJDc3NDbGFzcyJdfQ==
|
|
@@ -52,6 +52,22 @@ export declare enum CssClass {
|
|
|
52
52
|
* A CSS class for the file component.
|
|
53
53
|
*/
|
|
54
54
|
FileComponent = "file-component",
|
|
55
|
+
/**
|
|
56
|
+
* A CSS class for rendered markdown whose headings and lists `registerFoldHandlers` made foldable.
|
|
57
|
+
*/
|
|
58
|
+
FoldableMarkdown = "foldable-markdown",
|
|
59
|
+
/**
|
|
60
|
+
* A CSS class for the folder list component.
|
|
61
|
+
*/
|
|
62
|
+
FolderListComponent = "folder-list-component",
|
|
63
|
+
/**
|
|
64
|
+
* A CSS class for the hotkey component.
|
|
65
|
+
*/
|
|
66
|
+
HotkeyComponent = "hotkey-component",
|
|
67
|
+
/**
|
|
68
|
+
* A CSS class for the element an inline token renders into, in Reading view and in Live Preview.
|
|
69
|
+
*/
|
|
70
|
+
InlineToken = "inline-token",
|
|
55
71
|
/**
|
|
56
72
|
* Obsidian's class for a control that is currently ON, reused so a pressed command button matches the
|
|
57
73
|
* app's own toggled controls.
|
|
@@ -65,6 +81,10 @@ export declare enum CssClass {
|
|
|
65
81
|
* A CSS class for the library name, set on every element the library builds.
|
|
66
82
|
*/
|
|
67
83
|
LibraryName = "obsidian-lib",
|
|
84
|
+
/**
|
|
85
|
+
* A CSS class for the reorderable list component.
|
|
86
|
+
*/
|
|
87
|
+
ListComponent = "list-component",
|
|
68
88
|
/**
|
|
69
89
|
* Obsidian's class marking rendered-markdown content (used by `appendCodeBlock`).
|
|
70
90
|
*/
|
|
@@ -231,6 +251,14 @@ export declare enum CssClass {
|
|
|
231
251
|
* A CSS class for the setting component wrapper.
|
|
232
252
|
*/
|
|
233
253
|
SettingComponentWrapper = "setting-component-wrapper",
|
|
254
|
+
/**
|
|
255
|
+
* A CSS class for the settings tabs.
|
|
256
|
+
*/
|
|
257
|
+
SettingsTabs = "settings-tabs",
|
|
258
|
+
/**
|
|
259
|
+
* A CSS class for the tag list component.
|
|
260
|
+
*/
|
|
261
|
+
TagListComponent = "tag-list-component",
|
|
234
262
|
/**
|
|
235
263
|
* A CSS class for the telephone component.
|
|
236
264
|
*/
|
|
@@ -138,8 +138,8 @@ class DataStoreTransport {
|
|
|
138
138
|
this.params = params;
|
|
139
139
|
this.adapter = params.adapter;
|
|
140
140
|
const folder = params.folder ?? "Plugin data";
|
|
141
|
-
if (!folder
|
|
142
|
-
throw new Error("Data store requires a
|
|
141
|
+
if (!isSafeVaultPath(folder) || !/^[\w-]+$/.test(params.pluginId) || !/^[\w-]+$/.test(params.storeId)) {
|
|
142
|
+
throw new Error("Data store requires a safe vault-relative folder and safe plugin/store ids");
|
|
143
143
|
}
|
|
144
144
|
this.root = `${folder}/${params.pluginId}/${params.storeId}`;
|
|
145
145
|
this.maxFileBytes = params.maxFileBytes ?? DEFAULT_MAX_FILE_BYTES;
|
|
@@ -314,7 +314,7 @@ class DataStoreTransport {
|
|
|
314
314
|
await this.write(`${params.base}.md`, manifest);
|
|
315
315
|
}
|
|
316
316
|
checkPath(path) {
|
|
317
|
-
if (!path.startsWith(`${this.root}/`) ||
|
|
317
|
+
if (!path.startsWith(`${this.root}/`) || !isSafeVaultPath(path)) {
|
|
318
318
|
throw new Error("Data-store path leaves its configured folder");
|
|
319
319
|
}
|
|
320
320
|
}
|
|
@@ -340,8 +340,11 @@ async function digest(text) {
|
|
|
340
340
|
const hash = await window.crypto.subtle.digest("SHA-256", new TextEncoder().encode(text));
|
|
341
341
|
return [...new Uint8Array(hash)].map((byte) => byte.toString(HEX_RADIX).padStart(HEX_BYTE_LENGTH, "0")).join("");
|
|
342
342
|
}
|
|
343
|
+
function isSafeVaultPath(path) {
|
|
344
|
+
return path.split("/").every((part) => part.length > 0 && part !== "." && part !== ".." && !/[<>:"\\|?*\p{Control}]|[. ]$/u.test(part));
|
|
345
|
+
}
|
|
343
346
|
// Annotate the CommonJS export names for ESM import in node:
|
|
344
347
|
0 && (module.exports = {
|
|
345
348
|
DataStoreTransport
|
|
346
349
|
});
|
|
347
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRhLXN0b3Jlcy9kYXRhLXN0b3JlLXRyYW5zcG9ydC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL25vZGUtYnVpbHRpbnMgLS0gVGhlc2UgYXJlIE9ic2lkaWFuIHJlbmRlcmVyIFdlYiBBUElzLCBub3QgTm9kZSBidWlsdGlucy4gKi9cbi8qKlxuICogQGZpbGVcbiAqXG4gKiBTaXplLWJvdW5kZWQgTWFya2Rvd24gdHJhbnNwb3J0IGNhcnJpZWQgYnkgdmF1bHQgc3luY2hyb25pemF0aW9uIHdpdGggZGVmYXVsdCBmaWxlIHR5cGVzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgRGF0YUFkYXB0ZXIgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGVuc3VyZU5vbk51bGxhYmxlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcbmltcG9ydCB7IE5vdGljZSB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgZ2V0T2JzaWRpYW5MaWJEZWJ1Z2dlciB9IGZyb20gJy4uL2RlYnVnLnRzJztcblxuY29uc3QgREVGQVVMVF9NQVhfRklMRV9CWVRFUyA9IDFfMDAwXzAwMDtcbmNvbnN0IE1JTl9GSUxFX0JZVEVTID0gMjU2O1xuY29uc3QgTUFYX0ZJTEVfQllURVMgPSA0XzAwMF8wMDA7XG5jb25zdCBET0NVTUVOVF9QUkVGSVggPSAnYGBganNvblxcbic7XG5jb25zdCBET0NVTUVOVF9TVUZGSVggPSAnXFxuYGBgXFxuJztcbmNvbnN0IEJJU0VDVElPTl9ESVZJU09SID0gMjtcbmNvbnN0IEhFWF9SQURJWCA9IDE2O1xuY29uc3QgSEVYX0JZVEVfTEVOR1RIID0gMjtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUgc2hhcmVkLXN0b3JlIHZhdWx0IHRyYW5zcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhU3RvcmVUcmFuc3BvcnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBWYXVsdCBhZGFwdGVyOyBubyBkZXNrdG9wIGZpbGVzeXN0ZW0gQVBJcyBhcmUgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFkYXB0ZXI6IERhdGFBZGFwdGVyO1xuICAvKipcbiAgICogQ29uZmlndXJhYmxlIG5vbi1kb3QgdmF1bHQgZm9sZGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJ1BsdWdpbiBkYXRhJ2BcbiAgICovXG4gIHJlYWRvbmx5IGZvbGRlcj86IHN0cmluZztcbiAgLyoqXG4gICAqIE1heGltdW0gVVRGLTggYnl0ZXMgaW4gYW55IGZpbGUsIGluY2x1ZGluZyBpdHMgTWFya2Rvd24gd3JhcHBlci5cbiAgICpcbiAgICogQGRlZmF1bHQgYDEwMDAwMDBgXG4gICAqL1xuICByZWFkb25seSBtYXhGaWxlQnl0ZXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBQbHVnaW4gbWFuaWZlc3QgaWQuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuICAvKipcbiAgICogU3RvcmUgbmFtZSBpbmNsdWRpbmcgaXRzIGNvbnN1bWVyIHNjaGVtYSB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmVJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHB1Ymxpc2hpbmcgYSBjaHVua2VkIHNuYXBzaG90LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFTdG9yZVRyYW5zcG9ydFdyaXRlU25hcHNob3RQYXJhbXMge1xuICAvKipcbiAgICogVmF1bHQtcmVsYXRpdmUgYmFzZSBwYXRoIHdpdGhvdXQgdGhlIGAubWRgIGV4dGVuc2lvbi4gVXNlIGEgZnJlc2ggdW5pcXVlIG5hbWUgZm9yIGV2ZXJ5IHB1YmxpY2F0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZTogc3RyaW5nO1xuICAvKipcbiAgICogSlNPTi1jb21wYXRpYmxlIHNuYXBzaG90LCBpbmNsdWRpbmcgaXRzIGNvbnN1bWVyIHNjaGVtYSBhbmQgY292ZXJhZ2UgbWV0YWRhdGEuXG4gICAqL1xuICByZWFkb25seSBwYXlsb2FkOiB1bmtub3duO1xufVxuXG4vKipcbiAqIEEgc3RvcmUtc2NvcGVkIHRyYW5zcG9ydC4gRXZlcnkgcHVibGlzaGVkIGRvY3VtZW50IGlzIGltbXV0YWJsZSBleGNlcHQgZGV2aWNlIGFja25vd2xlZGdlbWVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhU3RvcmVUcmFuc3BvcnQge1xuICAvKipcbiAgICogTWF4aW11bSBlbmNvZGVkIGJ5dGVzIHBlciBkb2N1bWVudC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtYXhGaWxlQnl0ZXM6IG51bWJlcjtcbiAgLyoqXG4gICAqIEZ1bGwgdmF1bHQtcmVsYXRpdmUgc3RvcmUgcm9vdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb290OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBWYXVsdCBhZGFwdGVyIHVzZWQgYnkgdGhpcyB0cmFuc3BvcnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWRhcHRlcjogRGF0YUFkYXB0ZXI7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBib3VuZGVkIHZhdWx0IHRyYW5zcG9ydC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIEFkYXB0ZXIsIGlkZW50aXR5IGFuZCBmaWxlIGJvdW5kcy5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgcGFyYW1zOiBEYXRhU3RvcmVUcmFuc3BvcnRDb25zdHJ1Y3RvclBhcmFtcykge1xuICAgIHRoaXMuYWRhcHRlciA9IHBhcmFtcy5hZGFwdGVyO1xuICAgIGNvbnN0IGZvbGRlciA9IHBhcmFtcy5mb2xkZXIgPz8gJ1BsdWdpbiBkYXRhJztcbiAgICBpZiAoXG4gICAgICAhZm9sZGVyIHx8IGZvbGRlci5zcGxpdCgnLycpLnNvbWUoKHBhcnQpID0+ICFwYXJ0IHx8IHBhcnQuc3RhcnRzV2l0aCgnLicpIHx8IHBhcnQuaW5jbHVkZXMoJ1xcXFwnKSlcbiAgICAgIHx8ICEvXltcXHctXSskLy50ZXN0KHBhcmFtcy5wbHVnaW5JZCkgfHwgIS9eW1xcdy1dKyQvLnRlc3QocGFyYW1zLnN0b3JlSWQpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGEgc3RvcmUgcmVxdWlyZXMgYSBub24tZG90IHZhdWx0IGZvbGRlciBhbmQgc2FmZSBwbHVnaW4vc3RvcmUgaWRzJyk7XG4gICAgfVxuICAgIHRoaXMucm9vdCA9IGAke2ZvbGRlcn0vJHtwYXJhbXMucGx1Z2luSWR9LyR7cGFyYW1zLnN0b3JlSWR9YDtcbiAgICB0aGlzLm1heEZpbGVCeXRlcyA9IHBhcmFtcy5tYXhGaWxlQnl0ZXMgPz8gREVGQVVMVF9NQVhfRklMRV9CWVRFUztcbiAgICBpZiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKHRoaXMubWF4RmlsZUJ5dGVzKSB8fCB0aGlzLm1heEZpbGVCeXRlcyA8IE1JTl9GSUxFX0JZVEVTIHx8IHRoaXMubWF4RmlsZUJ5dGVzID4gTUFYX0ZJTEVfQllURVMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRGF0YS1zdG9yZSBmaWxlIGxpbWl0IG11c3QgYmUgYmV0d2VlbiAyNTYgYW5kIDQwMDAwMDAgYnl0ZXMnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGVzdHMgdGhlIGNvbXBsZXRlIGVuY29kZWQgc2l6ZSB3aXRob3V0IHdyaXRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIEpTT04gcGF5bG9hZC5cbiAgICogQHJldHVybnMgV2hldGhlciBpdHMgZG9jdW1lbnQgZml0cyB0aGUgY29uZmlndXJlZCBjYXAuXG4gICAqL1xuICBwdWJsaWMgZml0cyh2YWx1ZTogdW5rbm93bik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodGhpcy5lbmNvZGUodmFsdWUpKS5sZW5ndGggPD0gdGhpcy5tYXhGaWxlQnl0ZXM7XG4gIH1cblxuICAvKipcbiAgICogTGlzdHMgdGhlIHN0b3JlJ3MgZmlsZXMgcmVjdXJzaXZlbHksIG5ldmVyIGxlYXZpbmcgaXRzIGZvbGRlci5cbiAgICpcbiAgICogQHJldHVybnMgVmF1bHQtcmVsYXRpdmUgcGF0aHMuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbGlzdCgpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgaWYgKCFhd2FpdCB0aGlzLmFkYXB0ZXIuZXhpc3RzKHRoaXMucm9vdCkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgcGVuZGluZyA9IFt0aGlzLnJvb3RdO1xuICAgIGNvbnN0IGZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHdoaWxlIChwZW5kaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZvbGRlciA9IGVuc3VyZU5vbk51bGxhYmxlKHBlbmRpbmcuc2hpZnQoKSk7XG4gICAgICBjb25zdCBjaGlsZHJlbiA9IGF3YWl0IHRoaXMuYWRhcHRlci5saXN0KGZvbGRlcik7XG4gICAgICBmaWxlcy5wdXNoKC4uLmNoaWxkcmVuLmZpbGVzLmZpbHRlcigocGF0aCkgPT4gcGF0aC5zdGFydHNXaXRoKGAke2ZvbGRlcn0vYCkpKTtcbiAgICAgIHBlbmRpbmcucHVzaCguLi5jaGlsZHJlbi5mb2xkZXJzLmZpbHRlcigocGF0aCkgPT4gcGF0aC5zdGFydHNXaXRoKGAke2ZvbGRlcn0vYCkpKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbGVzLnNvcnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyBhIGNvbXBsZXRlIGZlbmNlZCBKU09OIGRvY3VtZW50LiBQYXJ0aWFsIG9yIG5vdC15ZXQtZGVsaXZlcmVkIGRvY3VtZW50cyBhcmUgaWdub3JlZC5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBWYXVsdC1yZWxhdGl2ZSBmaWxlIHdpdGhpbiB0aGlzIHN0b3JlLlxuICAgKiBAcmV0dXJucyBQYXJzZWQgSlNPTiwgb3IgYHVuZGVmaW5lZGAgZm9yIGFuIGluY29tcGxldGUgZG9jdW1lbnQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVhZChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICB0aGlzLmNoZWNrUGF0aChwYXRoKTtcbiAgICBpZiAoIWF3YWl0IHRoaXMuYWRhcHRlci5leGlzdHMocGF0aCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGxldCB0ZXh0OiBzdHJpbmc7XG4gICAgdHJ5IHtcbiAgICAgIHRleHQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIucmVhZChwYXRoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKCFhd2FpdCB0aGlzLmFkYXB0ZXIuZXhpc3RzKHBhdGgpKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gICAgdGhpcy5jaGVja1NpemUodGV4dCk7XG4gICAgaWYgKCF0ZXh0LnN0YXJ0c1dpdGgoRE9DVU1FTlRfUFJFRklYKSB8fCAhdGV4dC5lbmRzV2l0aChET0NVTUVOVF9TVUZGSVgpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBwYXJzZWQ6IHVua25vd24gPSBKU09OLnBhcnNlKHRleHQuc2xpY2UoRE9DVU1FTlRfUFJFRklYLmxlbmd0aCwgLURPQ1VNRU5UX1NVRkZJWC5sZW5ndGgpKTtcbiAgICByZXR1cm4gcGFyc2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYWRzIGEgc25hcHNob3Qgb25seSBhZnRlciBldmVyeSBudW1iZXJlZCBjaHVuayBhcnJpdmVzIGFuZCBwYXNzZXMgaXRzIFNIQS0yNTYgY2hlY2suXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gVmF1bHQtcmVsYXRpdmUgbWFuaWZlc3QgcGF0aC5cbiAgICogQHJldHVybnMgSXRzIHBheWxvYWQsIG9yIGB1bmRlZmluZWRgIHdoaWxlIGRlbGl2ZXJ5IGlzIGluY29tcGxldGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVhZFNuYXBzaG90KHBhdGg6IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIGNvbnN0IG1hbmlmZXN0ID0gYXdhaXQgdGhpcy5yZWFkKHBhdGgpO1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiBtYW5pZmVzdCAhPT0gJ29iamVjdCcgfHwgbWFuaWZlc3QgPT09IG51bGwgfHwgISgnZm9ybWF0JyBpbiBtYW5pZmVzdCkgfHwgbWFuaWZlc3QuZm9ybWF0ICE9PSAxXG4gICAgICB8fCAhKCdoYXNoZXMnIGluIG1hbmlmZXN0KSB8fCAhQXJyYXkuaXNBcnJheShtYW5pZmVzdC5oYXNoZXMpXG4gICAgICB8fCBtYW5pZmVzdC5oYXNoZXMubGVuZ3RoID09PSAwIHx8IG1hbmlmZXN0Lmhhc2hlcy5zb21lKChoYXNoOiB1bmtub3duKSA9PiB0eXBlb2YgaGFzaCAhPT0gJ3N0cmluZycpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBjaHVua3M6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChjb25zdCBbaW5kZXgsIGhhc2hdIG9mIG1hbmlmZXN0Lmhhc2hlcy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IGNodW5rID0gYXdhaXQgdGhpcy5yZWFkKGAke3BhdGguc2xpY2UoMCwgLScubWQnLmxlbmd0aCl9LSR7U3RyaW5nKGluZGV4KX0ubWRgKTtcbiAgICAgIGlmICh0eXBlb2YgY2h1bmsgIT09ICdzdHJpbmcnIHx8IGF3YWl0IGRpZ2VzdChjaHVuaykgIT09IGhhc2gpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGNodW5rcy5wdXNoKGNodW5rKTtcbiAgICB9XG4gICAgY29uc3QgcGFyc2VkOiB1bmtub3duID0gSlNPTi5wYXJzZShjaHVua3Muam9pbignJykpO1xuICAgIHJldHVybiBwYXJzZWQ7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIGRvY3VtZW50IG93bmVkIGJ5IHRoZSBjYWxsZXIncyBkZXZpY2UuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gVmF1bHQtcmVsYXRpdmUgZmlsZSB3aXRoaW4gdGhpcyBzdG9yZS5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgcmVtb3ZhbC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyByZW1vdmUocGF0aDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jaGVja1BhdGgocGF0aCk7XG4gICAgYXdhaXQgdGhpcy5hZGFwdGVyLnJlbW92ZShwYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgYSBjb21wbGV0ZSBkb2N1bWVudCwgcmVmdXNpbmcgYW4gb3ZlcnNpemVkIHdyaXRlIGJlZm9yZSBhZGFwdGVyIG11dGF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFZhdWx0LXJlbGF0aXZlIGZpbGUgd2l0aGluIHRoaXMgc3RvcmUuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIEpTT04tY29tcGF0aWJsZSBwYXlsb2FkLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBhZGFwdGVyIGZpbmlzaGVzIHdyaXRpbmcuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgd3JpdGUocGF0aDogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY2hlY2tQYXRoKHBhdGgpO1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLmVuY29kZSh2YWx1ZSk7XG4gICAgdGhpcy5jaGVja1NpemUodGV4dCk7XG4gICAgY29uc3QgcGFydHMgPSBwYXRoLnNwbGl0KCcvJyk7XG4gICAgcGFydHMucG9wKCk7XG4gICAgbGV0IGZvbGRlciA9ICcnO1xuICAgIGZvciAoY29uc3QgcGFydCBvZiBwYXJ0cykge1xuICAgICAgZm9sZGVyID0gZm9sZGVyID8gYCR7Zm9sZGVyfS8ke3BhcnR9YCA6IHBhcnQ7XG4gICAgICBpZiAoIWF3YWl0IHRoaXMuYWRhcHRlci5leGlzdHMoZm9sZGVyKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuYWRhcHRlci5ta2Rpcihmb2xkZXIpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGlmICghYXdhaXQgdGhpcy5hZGFwdGVyLmV4aXN0cyhmb2xkZXIpKSB7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgYXdhaXQgdGhpcy5hZGFwdGVyLndyaXRlKHBhdGgsIHRleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2hlcyBib3VuZGVkIGltbXV0YWJsZSBjaHVua3MgYmVmb3JlIHRoZWlyIG1hbmlmZXN0LiBSZWFkZXJzIHZlcmlmeSBkZWxpdmVyeSBjb21wbGV0ZW5lc3MuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBVbmlxdWUgYmFzZSBwYXRoIGFuZCBzbmFwc2hvdCBwYXlsb2FkLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBtYW5pZmVzdCBoYXMgYmVlbiBwdWJsaXNoZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgd3JpdGVTbmFwc2hvdChwYXJhbXM6IERhdGFTdG9yZVRyYW5zcG9ydFdyaXRlU25hcHNob3RQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkocGFyYW1zLnBheWxvYWQpO1xuICAgIGlmIChwYXlsb2FkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU25hcHNob3QgbXVzdCBiZSBKU09OLWNvbXBhdGlibGUnKTtcbiAgICB9XG4gICAgY29uc3QgY2h1bmtzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIHdoaWxlIChvZmZzZXQgPCBwYXlsb2FkLmxlbmd0aCkge1xuICAgICAgbGV0IGxvdyA9IDE7XG4gICAgICBsZXQgaGlnaCA9IE1hdGgubWluKHBheWxvYWQubGVuZ3RoIC0gb2Zmc2V0LCB0aGlzLm1heEZpbGVCeXRlcyk7XG4gICAgICB3aGlsZSAobG93IDwgaGlnaCkge1xuICAgICAgICBjb25zdCBtaWRkbGUgPSBNYXRoLmNlaWwoKGxvdyArIGhpZ2gpIC8gQklTRUNUSU9OX0RJVklTT1IpO1xuICAgICAgICBpZiAodGhpcy5maXRzKHBheWxvYWQuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBtaWRkbGUpKSkge1xuICAgICAgICAgIGxvdyA9IG1pZGRsZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoaWdoID0gbWlkZGxlIC0gMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY2h1bmtzLnB1c2gocGF5bG9hZC5zbGljZShvZmZzZXQsIG9mZnNldCArIGxvdykpO1xuICAgICAgb2Zmc2V0ICs9IGxvdztcbiAgICB9XG4gICAgY29uc3QgaGFzaGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgY2h1bmsgb2YgY2h1bmtzKSB7XG4gICAgICBoYXNoZXMucHVzaChhd2FpdCBkaWdlc3QoY2h1bmspKTtcbiAgICB9XG4gICAgY29uc3QgbWFuaWZlc3QgPSB7IGZvcm1hdDogMSwgaGFzaGVzIH07XG4gICAgdGhpcy5jaGVja1NpemUodGhpcy5lbmNvZGUobWFuaWZlc3QpKTtcbiAgICBmb3IgKGNvbnN0IFtpbmRleCwgY2h1bmtdIG9mIGNodW5rcy5lbnRyaWVzKCkpIHtcbiAgICAgIGF3YWl0IHRoaXMud3JpdGUoYCR7cGFyYW1zLmJhc2V9LSR7U3RyaW5nKGluZGV4KX0ubWRgLCBjaHVuayk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMud3JpdGUoYCR7cGFyYW1zLmJhc2V9Lm1kYCwgbWFuaWZlc3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1BhdGgocGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoYCR7dGhpcy5yb290fS9gKSB8fCBwYXRoLnNwbGl0KCcvJykuc29tZSgocGFydCkgPT4gIXBhcnQgfHwgcGFydC5zdGFydHNXaXRoKCcuJykgfHwgcGFydC5pbmNsdWRlcygnXFxcXCcpKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhLXN0b3JlIHBhdGggbGVhdmVzIGl0cyBjb25maWd1cmVkIGZvbGRlcicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tTaXplKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHNpemUgPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodGV4dCkubGVuZ3RoO1xuICAgIGlmIChzaXplIDw9IHRoaXMubWF4RmlsZUJ5dGVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBgUGx1Z2luIGRhdGEgc3RvcmU6ICR7U3RyaW5nKHNpemUpfSBieXRlcyBleGNlZWRzIHRoZSAke1N0cmluZyh0aGlzLm1heEZpbGVCeXRlcyl9IGJ5dGUgZmlsZSBsaW1pdC5gO1xuICAgIG5ldyBOb3RpY2UobWVzc2FnZSk7XG4gICAgZ2V0T2JzaWRpYW5MaWJEZWJ1Z2dlcignRGF0YVN0b3JlJykobWVzc2FnZSk7XG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmNvZGUodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICAgIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgaWYgKGpzb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhLXN0b3JlIHBheWxvYWQgbXVzdCBiZSBKU09OLWNvbXBhdGlibGUnKTtcbiAgICB9XG4gICAgcmV0dXJuIGAke0RPQ1VNRU5UX1BSRUZJWH0ke2pzb259JHtET0NVTUVOVF9TVUZGSVh9YDtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBkaWdlc3QodGV4dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgaGFzaCA9IGF3YWl0IHdpbmRvdy5jcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh0ZXh0KSk7XG4gIHJldHVybiBbLi4ubmV3IFVpbnQ4QXJyYXkoaGFzaCldLm1hcCgoYnl0ZSkgPT4gYnl0ZS50b1N0cmluZyhIRVhfUkFESVgpLnBhZFN0YXJ0KEhFWF9CWVRFX0xFTkdUSCwgJzAnKSkuam9pbignJyk7XG59XG5cbi8qIGVzbGludC1lbmFibGUgbi9uby11bnN1cHBvcnRlZC1mZWF0dXJlcy9ub2RlLWJ1aWx0aW5zIC0tIFRoZXNlIGFyZSBPYnNpZGlhbiByZW5kZXJlciBXZWIgQVBJcywgbm90IE5vZGUgYnVpbHRpbnMuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQSx5QkFBa0M7QUFDbEMsc0JBQXVCO0FBRXZCLG1CQUF1QztBQUV2QyxNQUFNLHlCQUF5QjtBQUMvQixNQUFNLGlCQUFpQjtBQUN2QixNQUFNLGlCQUFpQjtBQUN2QixNQUFNLGtCQUFrQjtBQUN4QixNQUFNLGtCQUFrQjtBQUN4QixNQUFNLG9CQUFvQjtBQUMxQixNQUFNLFlBQVk7QUFDbEIsTUFBTSxrQkFBa0I7QUFpRGpCLE1BQU0sbUJBQW1CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBbUJ2QixZQUErQixRQUE2QztBQUE3QztBQUNwQyxTQUFLLFVBQVUsT0FBTztBQUN0QixVQUFNLFNBQVMsT0FBTyxVQUFVO0FBQ2hDLFFBQ0UsQ0FBQyxVQUFVLE9BQU8sTUFBTSxHQUFHLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEtBQUssV0FBVyxHQUFHLEtBQUssS0FBSyxTQUFTLElB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
|
|
350
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRhLXN0b3Jlcy9kYXRhLXN0b3JlLXRyYW5zcG9ydC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL25vZGUtYnVpbHRpbnMgLS0gVGhlc2UgYXJlIE9ic2lkaWFuIHJlbmRlcmVyIFdlYiBBUElzLCBub3QgTm9kZSBidWlsdGlucy4gKi9cbi8qKlxuICogQGZpbGVcbiAqXG4gKiBTaXplLWJvdW5kZWQgTWFya2Rvd24gdHJhbnNwb3J0IGNhcnJpZWQgYnkgdmF1bHQgc3luY2hyb25pemF0aW9uIHdpdGggZGVmYXVsdCBmaWxlIHR5cGVzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgRGF0YUFkYXB0ZXIgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGVuc3VyZU5vbk51bGxhYmxlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcbmltcG9ydCB7IE5vdGljZSB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgZ2V0T2JzaWRpYW5MaWJEZWJ1Z2dlciB9IGZyb20gJy4uL2RlYnVnLnRzJztcblxuY29uc3QgREVGQVVMVF9NQVhfRklMRV9CWVRFUyA9IDFfMDAwXzAwMDtcbmNvbnN0IE1JTl9GSUxFX0JZVEVTID0gMjU2O1xuY29uc3QgTUFYX0ZJTEVfQllURVMgPSA0XzAwMF8wMDA7XG5jb25zdCBET0NVTUVOVF9QUkVGSVggPSAnYGBganNvblxcbic7XG5jb25zdCBET0NVTUVOVF9TVUZGSVggPSAnXFxuYGBgXFxuJztcbmNvbnN0IEJJU0VDVElPTl9ESVZJU09SID0gMjtcbmNvbnN0IEhFWF9SQURJWCA9IDE2O1xuY29uc3QgSEVYX0JZVEVfTEVOR1RIID0gMjtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUgc2hhcmVkLXN0b3JlIHZhdWx0IHRyYW5zcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhU3RvcmVUcmFuc3BvcnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBWYXVsdCBhZGFwdGVyOyBubyBkZXNrdG9wIGZpbGVzeXN0ZW0gQVBJcyBhcmUgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFkYXB0ZXI6IERhdGFBZGFwdGVyO1xuICAvKipcbiAgICogVmF1bHQtcmVsYXRpdmUgZm9sZGVyLiBIaWRkZW4gc2VnbWVudHMgYXJlIGFsbG93ZWQ7IGNhbGxlcnMgbXVzdCBhcnJhbmdlIHRoZWlyIHN5bmNocm9uaXphdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgYCdQbHVnaW4gZGF0YSdgXG4gICAqL1xuICByZWFkb25seSBmb2xkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNYXhpbXVtIFVURi04IGJ5dGVzIGluIGFueSBmaWxlLCBpbmNsdWRpbmcgaXRzIE1hcmtkb3duIHdyYXBwZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAxMDAwMDAwYFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4RmlsZUJ5dGVzPzogbnVtYmVyO1xuICAvKipcbiAgICogUGx1Z2luIG1hbmlmZXN0IGlkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFN0b3JlIG5hbWUgaW5jbHVkaW5nIGl0cyBjb25zdW1lciBzY2hlbWEgdmVyc2lvbi5cbiAgICovXG4gIHJlYWRvbmx5IHN0b3JlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBwdWJsaXNoaW5nIGEgY2h1bmtlZCBzbmFwc2hvdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhU3RvcmVUcmFuc3BvcnRXcml0ZVNuYXBzaG90UGFyYW1zIHtcbiAgLyoqXG4gICAqIFZhdWx0LXJlbGF0aXZlIGJhc2UgcGF0aCB3aXRob3V0IHRoZSBgLm1kYCBleHRlbnNpb24uIFVzZSBhIGZyZXNoIHVuaXF1ZSBuYW1lIGZvciBldmVyeSBwdWJsaWNhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGJhc2U6IHN0cmluZztcbiAgLyoqXG4gICAqIEpTT04tY29tcGF0aWJsZSBzbmFwc2hvdCwgaW5jbHVkaW5nIGl0cyBjb25zdW1lciBzY2hlbWEgYW5kIGNvdmVyYWdlIG1ldGFkYXRhLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF5bG9hZDogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBBIHN0b3JlLXNjb3BlZCB0cmFuc3BvcnQuIEV2ZXJ5IHB1Ymxpc2hlZCBkb2N1bWVudCBpcyBpbW11dGFibGUgZXhjZXB0IGRldmljZSBhY2tub3dsZWRnZW1lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgRGF0YVN0b3JlVHJhbnNwb3J0IHtcbiAgLyoqXG4gICAqIE1heGltdW0gZW5jb2RlZCBieXRlcyBwZXIgZG9jdW1lbnQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWF4RmlsZUJ5dGVzOiBudW1iZXI7XG4gIC8qKlxuICAgKiBGdWxsIHZhdWx0LXJlbGF0aXZlIHN0b3JlIHJvb3QuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9vdDogc3RyaW5nO1xuICAvKipcbiAgICogVmF1bHQgYWRhcHRlciB1c2VkIGJ5IHRoaXMgdHJhbnNwb3J0LlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFkYXB0ZXI6IERhdGFBZGFwdGVyO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgYm91bmRlZCB2YXVsdCB0cmFuc3BvcnQuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBBZGFwdGVyLCBpZGVudGl0eSBhbmQgZmlsZSBib3VuZHMuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IHBhcmFtczogRGF0YVN0b3JlVHJhbnNwb3J0Q29uc3RydWN0b3JQYXJhbXMpIHtcbiAgICB0aGlzLmFkYXB0ZXIgPSBwYXJhbXMuYWRhcHRlcjtcbiAgICBjb25zdCBmb2xkZXIgPSBwYXJhbXMuZm9sZGVyID8/ICdQbHVnaW4gZGF0YSc7XG4gICAgaWYgKFxuICAgICAgIWlzU2FmZVZhdWx0UGF0aChmb2xkZXIpXG4gICAgICB8fCAhL15bXFx3LV0rJC8udGVzdChwYXJhbXMucGx1Z2luSWQpIHx8ICEvXltcXHctXSskLy50ZXN0KHBhcmFtcy5zdG9yZUlkKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhIHN0b3JlIHJlcXVpcmVzIGEgc2FmZSB2YXVsdC1yZWxhdGl2ZSBmb2xkZXIgYW5kIHNhZmUgcGx1Z2luL3N0b3JlIGlkcycpO1xuICAgIH1cbiAgICB0aGlzLnJvb3QgPSBgJHtmb2xkZXJ9LyR7cGFyYW1zLnBsdWdpbklkfS8ke3BhcmFtcy5zdG9yZUlkfWA7XG4gICAgdGhpcy5tYXhGaWxlQnl0ZXMgPSBwYXJhbXMubWF4RmlsZUJ5dGVzID8/IERFRkFVTFRfTUFYX0ZJTEVfQllURVM7XG4gICAgaWYgKCFOdW1iZXIuaXNTYWZlSW50ZWdlcih0aGlzLm1heEZpbGVCeXRlcykgfHwgdGhpcy5tYXhGaWxlQnl0ZXMgPCBNSU5fRklMRV9CWVRFUyB8fCB0aGlzLm1heEZpbGVCeXRlcyA+IE1BWF9GSUxFX0JZVEVTKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGEtc3RvcmUgZmlsZSBsaW1pdCBtdXN0IGJlIGJldHdlZW4gMjU2IGFuZCA0MDAwMDAwIGJ5dGVzJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRlc3RzIHRoZSBjb21wbGV0ZSBlbmNvZGVkIHNpemUgd2l0aG91dCB3cml0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBKU09OIHBheWxvYWQuXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgaXRzIGRvY3VtZW50IGZpdHMgdGhlIGNvbmZpZ3VyZWQgY2FwLlxuICAgKi9cbiAgcHVibGljIGZpdHModmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHRoaXMuZW5jb2RlKHZhbHVlKSkubGVuZ3RoIDw9IHRoaXMubWF4RmlsZUJ5dGVzO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RzIHRoZSBzdG9yZSdzIGZpbGVzIHJlY3Vyc2l2ZWx5LCBuZXZlciBsZWF2aW5nIGl0cyBmb2xkZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIFZhdWx0LXJlbGF0aXZlIHBhdGhzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxpc3QoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGlmICghYXdhaXQgdGhpcy5hZGFwdGVyLmV4aXN0cyh0aGlzLnJvb3QpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IHBlbmRpbmcgPSBbdGhpcy5yb290XTtcbiAgICBjb25zdCBmaWxlczogc3RyaW5nW10gPSBbXTtcbiAgICB3aGlsZSAocGVuZGluZy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmb2xkZXIgPSBlbnN1cmVOb25OdWxsYWJsZShwZW5kaW5nLnNoaWZ0KCkpO1xuICAgICAgY29uc3QgY2hpbGRyZW4gPSBhd2FpdCB0aGlzLmFkYXB0ZXIubGlzdChmb2xkZXIpO1xuICAgICAgZmlsZXMucHVzaCguLi5jaGlsZHJlbi5maWxlcy5maWx0ZXIoKHBhdGgpID0+IHBhdGguc3RhcnRzV2l0aChgJHtmb2xkZXJ9L2ApKSk7XG4gICAgICBwZW5kaW5nLnB1c2goLi4uY2hpbGRyZW4uZm9sZGVycy5maWx0ZXIoKHBhdGgpID0+IHBhdGguc3RhcnRzV2l0aChgJHtmb2xkZXJ9L2ApKSk7XG4gICAgfVxuICAgIHJldHVybiBmaWxlcy5zb3J0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgYSBjb21wbGV0ZSBmZW5jZWQgSlNPTiBkb2N1bWVudC4gUGFydGlhbCBvciBub3QteWV0LWRlbGl2ZXJlZCBkb2N1bWVudHMgYXJlIGlnbm9yZWQuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gVmF1bHQtcmVsYXRpdmUgZmlsZSB3aXRoaW4gdGhpcyBzdG9yZS5cbiAgICogQHJldHVybnMgUGFyc2VkIEpTT04sIG9yIGB1bmRlZmluZWRgIGZvciBhbiBpbmNvbXBsZXRlIGRvY3VtZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlYWQocGF0aDogc3RyaW5nKTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgdGhpcy5jaGVja1BhdGgocGF0aCk7XG4gICAgaWYgKCFhd2FpdCB0aGlzLmFkYXB0ZXIuZXhpc3RzKHBhdGgpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBsZXQgdGV4dDogc3RyaW5nO1xuICAgIHRyeSB7XG4gICAgICB0ZXh0ID0gYXdhaXQgdGhpcy5hZGFwdGVyLnJlYWQocGF0aCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmICghYXdhaXQgdGhpcy5hZGFwdGVyLmV4aXN0cyhwYXRoKSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICAgIHRoaXMuY2hlY2tTaXplKHRleHQpO1xuICAgIGlmICghdGV4dC5zdGFydHNXaXRoKERPQ1VNRU5UX1BSRUZJWCkgfHwgIXRleHQuZW5kc1dpdGgoRE9DVU1FTlRfU1VGRklYKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgcGFyc2VkOiB1bmtub3duID0gSlNPTi5wYXJzZSh0ZXh0LnNsaWNlKERPQ1VNRU5UX1BSRUZJWC5sZW5ndGgsIC1ET0NVTUVOVF9TVUZGSVgubGVuZ3RoKSk7XG4gICAgcmV0dXJuIHBhcnNlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyBhIHNuYXBzaG90IG9ubHkgYWZ0ZXIgZXZlcnkgbnVtYmVyZWQgY2h1bmsgYXJyaXZlcyBhbmQgcGFzc2VzIGl0cyBTSEEtMjU2IGNoZWNrLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFZhdWx0LXJlbGF0aXZlIG1hbmlmZXN0IHBhdGguXG4gICAqIEByZXR1cm5zIEl0cyBwYXlsb2FkLCBvciBgdW5kZWZpbmVkYCB3aGlsZSBkZWxpdmVyeSBpcyBpbmNvbXBsZXRlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlYWRTbmFwc2hvdChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICBjb25zdCBtYW5pZmVzdCA9IGF3YWl0IHRoaXMucmVhZChwYXRoKTtcbiAgICBpZiAoXG4gICAgICB0eXBlb2YgbWFuaWZlc3QgIT09ICdvYmplY3QnIHx8IG1hbmlmZXN0ID09PSBudWxsIHx8ICEoJ2Zvcm1hdCcgaW4gbWFuaWZlc3QpIHx8IG1hbmlmZXN0LmZvcm1hdCAhPT0gMVxuICAgICAgfHwgISgnaGFzaGVzJyBpbiBtYW5pZmVzdCkgfHwgIUFycmF5LmlzQXJyYXkobWFuaWZlc3QuaGFzaGVzKVxuICAgICAgfHwgbWFuaWZlc3QuaGFzaGVzLmxlbmd0aCA9PT0gMCB8fCBtYW5pZmVzdC5oYXNoZXMuc29tZSgoaGFzaDogdW5rbm93bikgPT4gdHlwZW9mIGhhc2ggIT09ICdzdHJpbmcnKVxuICAgICkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgY2h1bmtzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgW2luZGV4LCBoYXNoXSBvZiBtYW5pZmVzdC5oYXNoZXMuZW50cmllcygpKSB7XG4gICAgICBjb25zdCBjaHVuayA9IGF3YWl0IHRoaXMucmVhZChgJHtwYXRoLnNsaWNlKDAsIC0nLm1kJy5sZW5ndGgpfS0ke1N0cmluZyhpbmRleCl9Lm1kYCk7XG4gICAgICBpZiAodHlwZW9mIGNodW5rICE9PSAnc3RyaW5nJyB8fCBhd2FpdCBkaWdlc3QoY2h1bmspICE9PSBoYXNoKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjaHVua3MucHVzaChjaHVuayk7XG4gICAgfVxuICAgIGNvbnN0IHBhcnNlZDogdW5rbm93biA9IEpTT04ucGFyc2UoY2h1bmtzLmpvaW4oJycpKTtcbiAgICByZXR1cm4gcGFyc2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBkb2N1bWVudCBvd25lZCBieSB0aGUgY2FsbGVyJ3MgZGV2aWNlLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFZhdWx0LXJlbGF0aXZlIGZpbGUgd2l0aGluIHRoaXMgc3RvcmUuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIGFmdGVyIHJlbW92YWwuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVtb3ZlKHBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY2hlY2tQYXRoKHBhdGgpO1xuICAgIGF3YWl0IHRoaXMuYWRhcHRlci5yZW1vdmUocGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogV3JpdGVzIGEgY29tcGxldGUgZG9jdW1lbnQsIHJlZnVzaW5nIGFuIG92ZXJzaXplZCB3cml0ZSBiZWZvcmUgYWRhcHRlciBtdXRhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBWYXVsdC1yZWxhdGl2ZSBmaWxlIHdpdGhpbiB0aGlzIHN0b3JlLlxuICAgKiBAcGFyYW0gdmFsdWUgLSBKU09OLWNvbXBhdGlibGUgcGF5bG9hZC5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgYWRhcHRlciBmaW5pc2hlcyB3cml0aW5nLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHdyaXRlKHBhdGg6IHN0cmluZywgdmFsdWU6IHVua25vd24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNoZWNrUGF0aChwYXRoKTtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy5lbmNvZGUodmFsdWUpO1xuICAgIHRoaXMuY2hlY2tTaXplKHRleHQpO1xuICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdCgnLycpO1xuICAgIHBhcnRzLnBvcCgpO1xuICAgIGxldCBmb2xkZXIgPSAnJztcbiAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICAgIGZvbGRlciA9IGZvbGRlciA/IGAke2ZvbGRlcn0vJHtwYXJ0fWAgOiBwYXJ0O1xuICAgICAgaWYgKCFhd2FpdCB0aGlzLmFkYXB0ZXIuZXhpc3RzKGZvbGRlcikpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmFkYXB0ZXIubWtkaXIoZm9sZGVyKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBpZiAoIWF3YWl0IHRoaXMuYWRhcHRlci5leGlzdHMoZm9sZGVyKSkge1xuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuYWRhcHRlci53cml0ZShwYXRoLCB0ZXh0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQdWJsaXNoZXMgYm91bmRlZCBpbW11dGFibGUgY2h1bmtzIGJlZm9yZSB0aGVpciBtYW5pZmVzdC4gUmVhZGVycyB2ZXJpZnkgZGVsaXZlcnkgY29tcGxldGVuZXNzLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVW5pcXVlIGJhc2UgcGF0aCBhbmQgc25hcHNob3QgcGF5bG9hZC5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbWFuaWZlc3QgaGFzIGJlZW4gcHVibGlzaGVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHdyaXRlU25hcHNob3QocGFyYW1zOiBEYXRhU3RvcmVUcmFuc3BvcnRXcml0ZVNuYXBzaG90UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGF5bG9hZCA9IEpTT04uc3RyaW5naWZ5KHBhcmFtcy5wYXlsb2FkKTtcbiAgICBpZiAocGF5bG9hZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NuYXBzaG90IG11c3QgYmUgSlNPTi1jb21wYXRpYmxlJyk7XG4gICAgfVxuICAgIGNvbnN0IGNodW5rczogc3RyaW5nW10gPSBbXTtcbiAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICB3aGlsZSAob2Zmc2V0IDwgcGF5bG9hZC5sZW5ndGgpIHtcbiAgICAgIGxldCBsb3cgPSAxO1xuICAgICAgbGV0IGhpZ2ggPSBNYXRoLm1pbihwYXlsb2FkLmxlbmd0aCAtIG9mZnNldCwgdGhpcy5tYXhGaWxlQnl0ZXMpO1xuICAgICAgd2hpbGUgKGxvdyA8IGhpZ2gpIHtcbiAgICAgICAgY29uc3QgbWlkZGxlID0gTWF0aC5jZWlsKChsb3cgKyBoaWdoKSAvIEJJU0VDVElPTl9ESVZJU09SKTtcbiAgICAgICAgaWYgKHRoaXMuZml0cyhwYXlsb2FkLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgbWlkZGxlKSkpIHtcbiAgICAgICAgICBsb3cgPSBtaWRkbGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaGlnaCA9IG1pZGRsZSAtIDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNodW5rcy5wdXNoKHBheWxvYWQuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBsb3cpKTtcbiAgICAgIG9mZnNldCArPSBsb3c7XG4gICAgfVxuICAgIGNvbnN0IGhhc2hlczogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGNodW5rIG9mIGNodW5rcykge1xuICAgICAgaGFzaGVzLnB1c2goYXdhaXQgZGlnZXN0KGNodW5rKSk7XG4gICAgfVxuICAgIGNvbnN0IG1hbmlmZXN0ID0geyBmb3JtYXQ6IDEsIGhhc2hlcyB9O1xuICAgIHRoaXMuY2hlY2tTaXplKHRoaXMuZW5jb2RlKG1hbmlmZXN0KSk7XG4gICAgZm9yIChjb25zdCBbaW5kZXgsIGNodW5rXSBvZiBjaHVua3MuZW50cmllcygpKSB7XG4gICAgICBhd2FpdCB0aGlzLndyaXRlKGAke3BhcmFtcy5iYXNlfS0ke1N0cmluZyhpbmRleCl9Lm1kYCwgY2h1bmspO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLndyaXRlKGAke3BhcmFtcy5iYXNlfS5tZGAsIG1hbmlmZXN0KTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tQYXRoKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghcGF0aC5zdGFydHNXaXRoKGAke3RoaXMucm9vdH0vYCkgfHwgIWlzU2FmZVZhdWx0UGF0aChwYXRoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhLXN0b3JlIHBhdGggbGVhdmVzIGl0cyBjb25maWd1cmVkIGZvbGRlcicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tTaXplKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHNpemUgPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodGV4dCkubGVuZ3RoO1xuICAgIGlmIChzaXplIDw9IHRoaXMubWF4RmlsZUJ5dGVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBgUGx1Z2luIGRhdGEgc3RvcmU6ICR7U3RyaW5nKHNpemUpfSBieXRlcyBleGNlZWRzIHRoZSAke1N0cmluZyh0aGlzLm1heEZpbGVCeXRlcyl9IGJ5dGUgZmlsZSBsaW1pdC5gO1xuICAgIG5ldyBOb3RpY2UobWVzc2FnZSk7XG4gICAgZ2V0T2JzaWRpYW5MaWJEZWJ1Z2dlcignRGF0YVN0b3JlJykobWVzc2FnZSk7XG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmNvZGUodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICAgIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgaWYgKGpzb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhLXN0b3JlIHBheWxvYWQgbXVzdCBiZSBKU09OLWNvbXBhdGlibGUnKTtcbiAgICB9XG4gICAgcmV0dXJuIGAke0RPQ1VNRU5UX1BSRUZJWH0ke2pzb259JHtET0NVTUVOVF9TVUZGSVh9YDtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBkaWdlc3QodGV4dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgaGFzaCA9IGF3YWl0IHdpbmRvdy5jcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh0ZXh0KSk7XG4gIHJldHVybiBbLi4ubmV3IFVpbnQ4QXJyYXkoaGFzaCldLm1hcCgoYnl0ZSkgPT4gYnl0ZS50b1N0cmluZyhIRVhfUkFESVgpLnBhZFN0YXJ0KEhFWF9CWVRFX0xFTkdUSCwgJzAnKSkuam9pbignJyk7XG59XG5cbmZ1bmN0aW9uIGlzU2FmZVZhdWx0UGF0aChwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHBhdGguc3BsaXQoJy8nKS5ldmVyeSgocGFydCkgPT4gcGFydC5sZW5ndGggPiAwICYmIHBhcnQgIT09ICcuJyAmJiBwYXJ0ICE9PSAnLi4nICYmICEvWzw+OlwiXFxcXHw/KlxccHtDb250cm9sfV18Wy4gXSQvdS50ZXN0KHBhcnQpKTtcbn1cblxuLyogZXNsaW50LWVuYWJsZSBuL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL25vZGUtYnVpbHRpbnMgLS0gVGhlc2UgYXJlIE9ic2lkaWFuIHJlbmRlcmVyIFdlYiBBUElzLCBub3QgTm9kZSBidWlsdGlucy4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBLHlCQUFrQztBQUNsQyxzQkFBdUI7QUFFdkIsbUJBQXVDO0FBRXZDLE1BQU0seUJBQXlCO0FBQy9CLE1BQU0saUJBQWlCO0FBQ3ZCLE1BQU0saUJBQWlCO0FBQ3ZCLE1BQU0sa0JBQWtCO0FBQ3hCLE1BQU0sa0JBQWtCO0FBQ3hCLE1BQU0sb0JBQW9CO0FBQzFCLE1BQU0sWUFBWTtBQUNsQixNQUFNLGtCQUFrQjtBQWlEakIsTUFBTSxtQkFBbUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFtQnZCLFlBQStCLFFBQTZDO0FBQTdDO0FBQ3BDLFNBQUssVUFBVSxP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
|
|
@@ -14,7 +14,7 @@ export interface DataStoreTransportConstructorParams {
|
|
|
14
14
|
*/
|
|
15
15
|
readonly adapter: DataAdapter;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* Vault-relative folder. Hidden segments are allowed; callers must arrange their synchronization.
|
|
18
18
|
*
|
|
19
19
|
* @default `'Plugin data'`
|
|
20
20
|
*/
|
|
@@ -428,4 +428,4 @@ function isVector(value) {
|
|
|
428
428
|
0 && (module.exports = {
|
|
429
429
|
SharedDataStore
|
|
430
430
|
});
|
|
431
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRhLXN0b3Jlcy9zaGFyZWQtZGF0YS1zdG9yZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL25vZGUtYnVpbHRpbnMgLS0gVGhlc2UgYXJlIE9ic2lkaWFuIHJlbmRlcmVyIFdlYiBBUElzLCBub3QgTm9kZSBidWlsdGlucy4gKi9cbi8qKlxuICogQGZpbGVcbiAqXG4gKiBNZXJnZWFibGUgcGx1Z2luIGRhdGEsIHRyYW5zcG9ydGVkIGFzIHNpbmdsZS13cml0ZXIgam91cm5hbCBzZWdtZW50cyBhbmQgY2h1bmtlZCBzbmFwc2hvdHMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBEYXRhQWRhcHRlciB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgSnNvblZhbHVlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZS1ndWFyZHMnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIERhdGFTdG9yZU1lcmdlS2luZCxcbiAgRGF0YVN0b3JlT3BlcmF0aW9uXG59IGZyb20gJy4vZGF0YS1zdG9yZS1yZXBsaWNhLnRzJztcbmltcG9ydCB0eXBlIHsgTG9jYWxEYXRhU3RvcmUgfSBmcm9tICcuL2xvY2FsLWRhdGEtc3RvcmUudHMnO1xuXG5pbXBvcnQge1xuICBEYXRhU3RvcmVSZXBsaWNhLFxuICBpc0RhdGFTdG9yZU9wZXJhdGlvblxufSBmcm9tICcuL2RhdGEtc3RvcmUtcmVwbGljYS50cyc7XG5pbXBvcnQgeyBEYXRhU3RvcmVUcmFuc3BvcnQgfSBmcm9tICcuL2RhdGEtc3RvcmUtdHJhbnNwb3J0LnRzJztcblxuY29uc3QgREVGQVVMVF9BQ1RJVkVfREVWSUNFX01JTExJU0VDT05EUyA9IDJfNTkyXzAwMF8wMDA7XG5cbmNvbnN0IE9XTkVSX1BBVEhfSU5ERVggPSAtMjtcblxuY29uc3QgVkVDVE9SX0VOVFJZX0xFTkdUSCA9IDI7XG5jb25zdCBERVZJQ0VfUEFUSF9QQVJUUyA9IDI7XG5jb25zdCBSRUNPUkRfUFJFRklYID0gJ3NoYXJlZC1yZWNvcmQtdjE6JztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBvcGVuaW5nIGEgc2hhcmVkIHN0b3JlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZERhdGFTdG9yZU9wZW5QYXJhbXMge1xuICAvKipcbiAgICogRGV2aWNlIHJldGlyZW1lbnQgaW50ZXJ2YWwsIG1lYXN1cmVkIGZyb20gaXRzIGxhc3QgYWNrbm93bGVkZ2VtZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgMjU5MjAwMDAwMGBcbiAgICovXG4gIHJlYWRvbmx5IGFjdGl2ZURldmljZU1pbGxpc2Vjb25kcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIFZhdWx0IGFkYXB0ZXIuXG4gICAqL1xuICByZWFkb25seSBhZGFwdGVyOiBEYXRhQWRhcHRlcjtcbiAgLyoqXG4gICAqIENvbmZpZ3VyYWJsZSBub24tZG90IHZhdWx0IGZvbGRlci5cbiAgICpcbiAgICogQGRlZmF1bHQgYCdQbHVnaW4gZGF0YSdgXG4gICAqL1xuICByZWFkb25seSBmb2xkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbW11dGFibGUgbWVyZ2UgcnVsZTsgY2hhbmdpbmcgaXQgcmVxdWlyZXMgYSBuZXcgc3RvcmUgaWQuXG4gICAqL1xuICByZWFkb25seSBraW5kOiBEYXRhU3RvcmVNZXJnZUtpbmQ7XG4gIC8qKlxuICAgKiBEZWRpY2F0ZWQgbG9jYWwgc3RvcmUgc2NvcGVkIHRvIFRISVMgdmF1bHQsIHBsdWdpbiBhbmQgc2hhcmVkLXN0b3JlIHNjaGVtYS4gVGhlIGNhbGxlciBvd25zIGl0cyBjb25uZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYWw6IExvY2FsRGF0YVN0b3JlO1xuICAvKipcbiAgICogTWF4aW11bSBVVEYtOCBieXRlcyBwZXIgZmlsZSwgd3JhcHBlciBpbmNsdWRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYDEwMDAwMDBgXG4gICAqL1xuICByZWFkb25seSBtYXhGaWxlQnl0ZXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBQbHVnaW4gbWFuaWZlc3QgaWQuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuICAvKipcbiAgICogU3RvcmUgaWQgaW5jbHVkaW5nIHRoZSBjb25zdW1lcidzIHNjaGVtYSB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmVJZDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQ2hhbmdlIHtcbiAgcmVhZG9ubHkgZGVsZXRlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZhbHVlOiBKc29uVmFsdWU7XG59XG5cbmludGVyZmFjZSBDaGVja3BvaW50IHtcbiAgcmVhZG9ubHkgY291bnRlcjogbnVtYmVyO1xuICByZWFkb25seSBmb3JtYXQ6IDE7XG4gIHJlYWRvbmx5IGtpbmQ6IERhdGFTdG9yZU1lcmdlS2luZDtcbiAgcmVhZG9ubHkgb3BlcmF0aW9uczogRGF0YVN0b3JlT3BlcmF0aW9uW107XG4gIHJlYWRvbmx5IHRpbWU6IG51bWJlcjtcbiAgcmVhZG9ubHkgdmVjdG9yOiBWZXJzaW9uVmVjdG9yO1xufVxuXG50eXBlIFZlcnNpb25WZWN0b3IgPSBbc3RyaW5nLCBudW1iZXJdW107XG5cbi8qKlxuICogQSBkZXZpY2UtbG9jYWwgcXVlcnkgcmVwbGljYSBiYWNrZWQgYnkgdmF1bHQgZmlsZXMuIENhbGwgYHN5bmNocm9uaXplYCBhZnRlciB0cmFuc3BvcnQgY2hhbmdlcyBvciBwZXJpb2RpY2FsbHkuXG4gKiBObyB0aW1lciBvciBldmVudCBoYW5kbGVyIG91dGxpdmVzIHRoZSBjb25zdW1lcjogdGhlIGNvbnN1bWVyIHNjaGVkdWxlcyBzeW5jaHJvbml6YXRpb24gYW5kIG93bnMgdW5sb2FkaW5nLlxuICovXG5leHBvcnQgY2xhc3MgU2hhcmVkRGF0YVN0b3JlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmVEZXZpY2VNaWxsaXNlY29uZHM6IG51bWJlcjtcbiAgcHJpdmF0ZSBjb3VudGVyID0gMDtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2NhbFJlY29yZHMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBwcml2YXRlIHJlcGxpY2E6IERhdGFTdG9yZVJlcGxpY2E7XG4gIHByaXZhdGUgdGltZSA9IDA7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNwb3J0OiBEYXRhU3RvcmVUcmFuc3BvcnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmVjdG9yID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBwYXJhbXM6IFNoYXJlZERhdGFTdG9yZU9wZW5QYXJhbXMsIHByb3RlY3RlZCByZWFkb25seSBkZXZpY2U6IHN0cmluZykge1xuICAgIHRoaXMudHJhbnNwb3J0ID0gbmV3IERhdGFTdG9yZVRyYW5zcG9ydChwYXJhbXMpO1xuICAgIHRoaXMucmVwbGljYSA9IG5ldyBEYXRhU3RvcmVSZXBsaWNhKHBhcmFtcy5raW5kKTtcbiAgICB0aGlzLmFjdGl2ZURldmljZU1pbGxpc2Vjb25kcyA9IHBhcmFtcy5hY3RpdmVEZXZpY2VNaWxsaXNlY29uZHMgPz8gREVGQVVMVF9BQ1RJVkVfREVWSUNFX01JTExJU0VDT05EUztcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZSh0aGlzLmFjdGl2ZURldmljZU1pbGxpc2Vjb25kcykgfHwgdGhpcy5hY3RpdmVEZXZpY2VNaWxsaXNlY29uZHMgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEZXZpY2UgcmV0aXJlbWVudCBpbnRlcnZhbCBtdXN0IGJlIHBvc2l0aXZlJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGFuZCBzeW5jaHJvbml6ZXMgYSBzdG9yZSwgcmVzdG9yaW5nIGl0cyBkZXZpY2UgaWRlbnRpdHkgZXhjbHVzaXZlbHkgZnJvbSBJbmRleGVkREIuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBQZXJzaXN0ZW5jZSwgdHJhbnNwb3J0IGFuZCBtZXJnZSBwb2xpY3kuXG4gICAqIEByZXR1cm5zIEEgc3luY2hyb25pemVkIHF1ZXJ5IHJlcGxpY2EuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIG9wZW4ocGFyYW1zOiBTaGFyZWREYXRhU3RvcmVPcGVuUGFyYW1zKTogUHJvbWlzZTxTaGFyZWREYXRhU3RvcmU+IHtcbiAgICBjb25zdCBkZXZpY2UgPSBhd2FpdCBwYXJhbXMubG9jYWwuZ2V0T3JDcmVhdGUoJ3NoYXJlZC1kZXZpY2UtdjEnLCB3aW5kb3cuY3J5cHRvLnJhbmRvbVVVSUQoKSk7XG4gICAgaWYgKHR5cGVvZiBkZXZpY2UgIT09ICdzdHJpbmcnIHx8ICEvXltcXHctXSskLy50ZXN0KGRldmljZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBsb2NhbCBkYXRhLXN0b3JlIGlkZW50aXR5Jyk7XG4gICAgfVxuICAgIGNvbnN0IHN0b3JlID0gbmV3IFNoYXJlZERhdGFTdG9yZShwYXJhbXMsIGRldmljZSk7XG4gICAgYXdhaXQgc3RvcmUuc3luY2hyb25pemUoKTtcbiAgICByZXR1cm4gc3RvcmU7XG4gIH1cblxuICAvKipcbiAgICogUHVibGlzaGVzIGEgY29tcGxldGUgY2h1bmtlZCBzbmFwc2hvdCBhbmQgdHJpbXMgb25seSB0aGlzIGRldmljZSdzIGFja25vd2xlZGdlZCBqb3VybmFsIHNlZ21lbnRzLlxuICAgKiBSZXRpcmVkIGRldmljZXMgcmVqb2luIGJ5IG1lcmdpbmcgc25hcHNob3RzOyB0b21ic3RvbmVzIHJlbWFpbiBpbiBzbmFwc2hvdHMgdG8gcHJldmVudCByZXN1cnJlY3Rpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gY29tcGFjdGlvbiBmaW5pc2hlcy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjb21wYWN0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucGFyYW1zLmxvY2FsLmV4Y2x1c2l2ZShhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB0aGlzLmxvYWRMb2NhbCgpO1xuICAgICAgYXdhaXQgdGhpcy5tZXJnZUZpbGVzKCk7XG4gICAgICBhd2FpdCB0aGlzLnBlcnNpc3QoKTtcbiAgICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgdGhpcy50cmFuc3BvcnQubGlzdCgpO1xuICAgICAgY29uc3QgYmFzZSA9IGAke3RoaXMuZGV2aWNlUm9vdCgpfS9zbmFwc2hvdC0ke3dpbmRvdy5jcnlwdG8ucmFuZG9tVVVJRCgpfS1tYW5pZmVzdGA7XG4gICAgICBhd2FpdCB0aGlzLnRyYW5zcG9ydC53cml0ZVNuYXBzaG90KHsgYmFzZSwgcGF5bG9hZDogdGhpcy5jaGVja3BvaW50KCkgfSk7XG4gICAgICBjb25zdCBhY2tub3dsZWRnZW1lbnRzID0gYXdhaXQgdGhpcy5hY2tub3dsZWRnZW1lbnRzKGZpbGVzKTtcbiAgICAgIGZvciAoY29uc3QgcGF0aCBvZiBmaWxlcykge1xuICAgICAgICBpZiAoIXBhdGguc3RhcnRzV2l0aChgJHt0aGlzLmRldmljZVJvb3QoKX0vbG9nLWApKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3BlcmF0aW9ucyA9IGF3YWl0IHRoaXMudHJhbnNwb3J0LnJlYWQocGF0aCk7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShvcGVyYXRpb25zKSB8fCAhb3BlcmF0aW9ucy5ldmVyeShpc0RhdGFTdG9yZU9wZXJhdGlvbikpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsYXN0ID0gTWF0aC5tYXgoLi4ub3BlcmF0aW9ucy5tYXAoKG9wZXJhdGlvbikgPT4gb3BlcmF0aW9uLnNlcXVlbmNlKSk7XG4gICAgICAgIGlmIChhY2tub3dsZWRnZW1lbnRzLmV2ZXJ5KCh2ZWN0b3IpID0+ICh2ZWN0b3IuZ2V0KHRoaXMuZGV2aWNlKSA/PyAwKSA+PSBsYXN0KSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNwb3J0LnJlbW92ZShwYXRoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gVGhlIGNvbXBsZXRlIG5ldyBzbmFwc2hvdCBjb3ZlcnMgZXZlcnkgZWFybGllciBzbmFwc2hvdCBmcm9tIHRoaXMgd3JpdGVyLlxuICAgICAgZm9yIChjb25zdCBwYXRoIG9mIGZpbGVzKSB7XG4gICAgICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoYCR7dGhpcy5kZXZpY2VSb290KCl9L3NuYXBzaG90LWApKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy50cmFuc3BvcnQucmVtb3ZlKHBhdGgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlcyBhIHJlZ2lzdGVyIG9yIHJlbW92ZXMgdGhlIGN1cnJlbnRseSBvYnNlcnZlZCBhZGRpdGlvbnMgb2YgYSBzZXQgbWVtYmVyLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IC0gUmVjb3JkIGtleSBvciBzZXQgbWVtYmVyLiBNaW4vbWF4IHJlZ2lzdGVycyBkZWxpYmVyYXRlbHkgY2Fubm90IGJlIGRlbGV0ZWQuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIGFmdGVyIGpvdXJuYWwgcHVibGljYXRpb24gYW5kIGxvY2FsIGNvbW1pdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZWxldGUoa2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmNoYW5nZShbeyBkZWxldGVkOiB0cnVlLCBrZXksIHZhbHVlOiBudWxsIH1dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyB0aGUgY3VycmVudCBsb2NhbCBxdWVyeSByZXBsaWNhLlxuICAgKlxuICAgKiBAcmV0dXJucyBEZXRhY2hlZCBrZXkvdmFsdWUgcGFpcnMgaW4gZGV0ZXJtaW5pc3RpYyBvcmRlci5cbiAgICovXG4gIHB1YmxpYyBlbnRyaWVzKCk6IFtzdHJpbmcsIHVua25vd25dW10ge1xuICAgIHJldHVybiB0aGlzLnJlcGxpY2EuZW50cmllcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYWRzIGEgcmVnaXN0ZXIgb3Igc2V0IG1lbWJlcnNoaXAgZnJvbSB0aGUgY3VycmVudCBsb2NhbCBxdWVyeSByZXBsaWNhLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IC0gUmVjb3JkIGtleSBvciBzZXQgbWVtYmVyLlxuICAgKiBAcmV0dXJucyBBIGRldGFjaGVkIHZhbHVlLCBvciBgdW5kZWZpbmVkYCB3aGVuIGFic2VudCBvciBkZWxldGVkLlxuICAgKi9cbiAgcHVibGljIGdldChrZXk6IHN0cmluZyk6IHVua25vd24ge1xuICAgIHJldHVybiB0aGlzLnJlcGxpY2EuZ2V0KGtleSk7XG4gIH1cblxuICAvKipcbiAgICogV3JpdGVzIG9uZSByZWdpc3RlciB2YWx1ZSwgb3IgYWRkcyBhIG1lbWJlciB0byBhbiBvYnNlcnZlZC1yZW1vdmUgc2V0LlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IC0gUmVjb3JkIGtleSBvciBzZXQgbWVtYmVyLlxuICAgKiBAcGFyYW0gdmFsdWUgLSBKU09OLWNvbXBhdGlibGUgdmFsdWUgKHVzZSBgdHJ1ZWAgZm9yIGEgc2V0KS5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgam91cm5hbCBwdWJsaWNhdGlvbiBhbmQgbG9jYWwgY29tbWl0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNldChrZXk6IHN0cmluZywgdmFsdWU6IEpzb25WYWx1ZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc2V0TWFueShbW2tleSwgdmFsdWVdXSk7XG4gIH1cblxuICAvKipcbiAgICogUHVibGlzaGVzIGEgYmF0Y2ggb2YgcmVnaXN0ZXIgd3JpdGVzLCBzcGxpdCBpbnRvIGJvdW5kZWQgaW1tdXRhYmxlIHNlZ21lbnRzLlxuICAgKiBTZWdtZW50cyBhcmUgaW5kaXZpZHVhbGx5IGR1cmFibGU7IGEgZmFpbGVkIGJhdGNoIGNhbiBoYXZlIGEgcHVibGlzaGVkIHByZWZpeCBhbmQgY2FuIGJlIHJldHJpZWQgc2FmZWx5LlxuICAgKlxuICAgKiBAcGFyYW0gZW50cmllcyAtIFJlZ2lzdGVyIHdyaXRlcyBvciBzZXQgYWRkaXRpb25zLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyBhZnRlciBqb3VybmFsIHB1YmxpY2F0aW9uIGFuZCBsb2NhbCBjb21taXQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0TWFueShlbnRyaWVzOiByZWFkb25seSAocmVhZG9ubHkgW3N0cmluZywgSnNvblZhbHVlXSlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuY2hhbmdlKGVudHJpZXMubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7IGRlbGV0ZWQ6IGZhbHNlLCBrZXksIHZhbHVlIH0pKSk7XG4gIH1cblxuICAvKipcbiAgICogTWVyZ2VzIGNvbXBsZXRlIHNuYXBzaG90cyBhbmQgY29udGlndW91cyBqb3VybmFsIGhpc3RvcnksIHRoZW4gcHVibGlzaGVzIGl0cyBkdXJhYmxlIGFja25vd2xlZGdlbWVudC5cbiAgICogUGFydGlhbCBkZWxpdmVyaWVzIHJlbWFpbiBwZW5kaW5nOyBhIGxhdGVyIGNhbGwgcmV0cmllcyB0aGVtLiBObyBhY2tub3dsZWRnZW1lbnQgc2tpcHMgYSBtaXNzaW5nIHNlcXVlbmNlLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyBhZnRlciB0aGUgbG9jYWwgY2hlY2twb2ludCBhbmQgYWNrbm93bGVkZ2VtZW50IGNvbW1pdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzeW5jaHJvbml6ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnBhcmFtcy5sb2NhbC5leGNsdXNpdmUoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy5sb2FkTG9jYWwoKTtcbiAgICAgIGF3YWl0IHRoaXMubWVyZ2VGaWxlcygpO1xuICAgICAgYXdhaXQgdGhpcy5wZXJzaXN0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFja25vd2xlZGdlbWVudHMoZmlsZXM6IHJlYWRvbmx5IHN0cmluZ1tdKTogUHJvbWlzZTxNYXA8c3RyaW5nLCBudW1iZXI+W10+IHtcbiAgICBjb25zdCBhY2tub3dsZWRnZW1lbnRzID0gW25ldyBNYXAodGhpcy52ZWN0b3IpXTtcbiAgICBjb25zdCBkZXZpY2VGaWxlcyA9IGZpbGVzLmZpbHRlcigocGF0aCkgPT4gcGF0aC5zdGFydHNXaXRoKGAke3RoaXMudHJhbnNwb3J0LnJvb3R9L2RldmljZXMvYCkpO1xuICAgIGNvbnN0IGRldmljZXMgPSBuZXcgU2V0KGRldmljZUZpbGVzLm1hcCgocGF0aCkgPT4gcGF0aC5zbGljZSh0aGlzLnRyYW5zcG9ydC5yb290Lmxlbmd0aCArIDEpLnNwbGl0KCcvJywgREVWSUNFX1BBVEhfUEFSVFMpWzFdKS5maWx0ZXIoKGRldmljZSkgPT4gZGV2aWNlICE9PSB1bmRlZmluZWQpKTtcbiAgICBmb3IgKGNvbnN0IGRldmljZSBvZiBkZXZpY2VzKSB7XG4gICAgICBpZiAoZGV2aWNlID09PSB0aGlzLmRldmljZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGhhdmUgPSBhd2FpdCB0aGlzLnRyYW5zcG9ydC5yZWFkKGAke3RoaXMudHJhbnNwb3J0LnJvb3R9L2RldmljZXMvJHtkZXZpY2V9L2hhdmUubWRgKTtcbiAgICAgIGlmICghaXNPYmplY3QoaGF2ZSkgfHwgIWlzVmVjdG9yKGhhdmVbJ3ZlY3RvciddKSB8fCB0eXBlb2YgaGF2ZVsndGltZSddICE9PSAnbnVtYmVyJykge1xuICAgICAgICBhY2tub3dsZWRnZW1lbnRzLnB1c2gobmV3IE1hcCgpKTtcbiAgICAgIH0gZWxzZSBpZiAoRGF0ZS5ub3coKSAtIGhhdmVbJ3RpbWUnXSA8PSB0aGlzLmFjdGl2ZURldmljZU1pbGxpc2Vjb25kcykge1xuICAgICAgICBhY2tub3dsZWRnZW1lbnRzLnB1c2gobmV3IE1hcChoYXZlWyd2ZWN0b3InXSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYWNrbm93bGVkZ2VtZW50cztcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHkob3BlcmF0aW9uOiBEYXRhU3RvcmVPcGVyYXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLnJlcGxpY2EuYXBwbHkob3BlcmF0aW9uKTtcbiAgICB0aGlzLnZlY3Rvci5zZXQob3BlcmF0aW9uLmRldmljZSwgb3BlcmF0aW9uLnNlcXVlbmNlKTtcbiAgICB0aGlzLm9ic2VydmVDbG9jayhvcGVyYXRpb24udGltZSwgb3BlcmF0aW9uLmNvdW50ZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjaGFuZ2UoY2hhbmdlczogcmVhZG9ubHkgQ2hhbmdlW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnBhcmFtcy5sb2NhbC5leGNsdXNpdmUoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy5sb2FkTG9jYWwoKTtcbiAgICAgIGF3YWl0IHRoaXMubWVyZ2VGaWxlcygpO1xuICAgICAgY29uc3Qgb3BlcmF0aW9uczogRGF0YVN0b3JlT3BlcmF0aW9uW10gPSBbXTtcbiAgICAgIGNvbnN0IGNhbmRpZGF0ZSA9IG5ldyBEYXRhU3RvcmVSZXBsaWNhKHRoaXMucGFyYW1zLmtpbmQpO1xuICAgICAgZm9yIChjb25zdCBvcGVyYXRpb24gb2YgdGhpcy5yZXBsaWNhLmV4cG9ydCgpKSB7XG4gICAgICAgIGNhbmRpZGF0ZS5hcHBseShvcGVyYXRpb24pO1xuICAgICAgfVxuICAgICAgbGV0IHNlcXVlbmNlID0gdGhpcy52ZWN0b3IuZ2V0KHRoaXMuZGV2aWNlKSA/PyAwO1xuICAgICAgZm9yIChjb25zdCBjaGFuZ2Ugb2YgY2hhbmdlcykge1xuICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICB0aGlzLmNvdW50ZXIgPSBub3cgPiB0aGlzLnRpbWUgPyAwIDogdGhpcy5jb3VudGVyICsgMTtcbiAgICAgICAgdGhpcy50aW1lID0gTWF0aC5tYXgobm93LCB0aGlzLnRpbWUpO1xuICAgICAgICBjb25zdCBvcGVyYXRpb246IERhdGFTdG9yZU9wZXJhdGlvbiA9IHtcbiAgICAgICAgICAuLi5jaGFuZ2UsXG4gICAgICAgICAgY291bnRlcjogdGhpcy5jb3VudGVyLFxuICAgICAgICAgIGRldmljZTogdGhpcy5kZXZpY2UsXG4gICAgICAgICAgc2VxdWVuY2U6ICsrc2VxdWVuY2UsXG4gICAgICAgICAgdGFnczogY2FuZGlkYXRlLm9ic2VydmVkVGFncyhjaGFuZ2Uua2V5KSxcbiAgICAgICAgICB0aW1lOiB0aGlzLnRpbWVcbiAgICAgICAgfTtcbiAgICAgICAgY2FuZGlkYXRlLmFwcGx5KG9wZXJhdGlvbik7XG4gICAgICAgIG9wZXJhdGlvbnMucHVzaChvcGVyYXRpb24pO1xuICAgICAgfVxuICAgICAgLy8gVmFsaWRhdGUgZXZlcnkgc2luZ2xlIG9wZXJhdGlvbiBiZWZvcmUgcHVibGlzaGluZyBhbnkgcHJlZml4IG9mIGEgYmF0Y2guXG4gICAgICBmb3IgKGNvbnN0IG9wZXJhdGlvbiBvZiBvcGVyYXRpb25zKSB7XG4gICAgICAgIGlmICghdGhpcy50cmFuc3BvcnQuZml0cyhbb3BlcmF0aW9uXSkpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnRyYW5zcG9ydC53cml0ZShgJHt0aGlzLmRldmljZVJvb3QoKX0vbG9nLSR7U3RyaW5nKG9wZXJhdGlvbi5zZXF1ZW5jZSl9Lm1kYCwgW29wZXJhdGlvbl0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsZXQgYmF0Y2g6IERhdGFTdG9yZU9wZXJhdGlvbltdID0gW107XG4gICAgICBmb3IgKGNvbnN0IG9wZXJhdGlvbiBvZiBvcGVyYXRpb25zKSB7XG4gICAgICAgIGlmICghdGhpcy50cmFuc3BvcnQuZml0cyhbLi4uYmF0Y2gsIG9wZXJhdGlvbl0pKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5wdWJsaXNoKGJhdGNoKTtcbiAgICAgICAgICBiYXRjaCA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGJhdGNoLnB1c2gob3BlcmF0aW9uKTtcbiAgICAgIH1cbiAgICAgIGlmIChiYXRjaC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGF3YWl0IHRoaXMucHVibGlzaChiYXRjaCk7XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLnBlcnNpc3QoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2twb2ludCgpOiBDaGVja3BvaW50IHtcbiAgICByZXR1cm4geyBjb3VudGVyOiB0aGlzLmNvdW50ZXIsIGZvcm1hdDogMSwga2luZDogdGhpcy5wYXJhbXMua2luZCwgb3BlcmF0aW9uczogdGhpcy5yZXBsaWNhLmV4cG9ydCgpLCB0aW1lOiB0aGlzLnRpbWUsIHZlY3RvcjogWy4uLnRoaXMudmVjdG9yXSB9O1xuICB9XG5cbiAgcHJpdmF0ZSBkZXZpY2VSb290KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMudHJhbnNwb3J0LnJvb3R9L2RldmljZXMvJHt0aGlzLmRldmljZX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkTG9jYWwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5yZXBsaWNhID0gbmV3IERhdGFTdG9yZVJlcGxpY2EodGhpcy5wYXJhbXMua2luZCk7XG4gICAgdGhpcy52ZWN0b3IuY2xlYXIoKTtcbiAgICB0aGlzLnRpbWUgPSAwO1xuICAgIHRoaXMuY291bnRlciA9IDA7XG4gICAgdGhpcy5sb2NhbFJlY29yZHMuY2xlYXIoKTtcbiAgICBjb25zdCByZWNvcmRzID0gYXdhaXQgdGhpcy5wYXJhbXMubG9jYWwuZW50cmllcygpO1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHJlY29yZHMpIHtcbiAgICAgIGlmIChrZXkgPT09ICdzaGFyZWQtY2hlY2twb2ludC12MScpIHtcbiAgICAgICAgdGhpcy5tZXJnZUNoZWNrcG9pbnQodmFsdWUpO1xuICAgICAgfSBlbHNlIGlmIChrZXkuc3RhcnRzV2l0aChSRUNPUkRfUFJFRklYKSkge1xuICAgICAgICB0aGlzLnJlcGxpY2EuYXBwbHkodmFsdWUpO1xuICAgICAgICB0aGlzLmxvY2FsUmVjb3Jkcy5zZXQoa2V5LCBlbnN1cmVOb25OdWxsYWJsZShKU09OLnN0cmluZ2lmeSh2YWx1ZSkpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1lcmdlQ2hlY2twb2ludCh2YWx1ZTogdW5rbm93bik6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICFpc09iamVjdCh2YWx1ZSkgfHwgdmFsdWVbJ2Zvcm1hdCddICE9PSAxIHx8IHZhbHVlWydraW5kJ10gIT09IHRoaXMucGFyYW1zLmtpbmRcbiAgICAgIHx8ICFBcnJheS5pc0FycmF5KHZhbHVlWydvcGVyYXRpb25zJ10pIHx8ICF2YWx1ZVsnb3BlcmF0aW9ucyddLmV2ZXJ5KGlzRGF0YVN0b3JlT3BlcmF0aW9uKVxuICAgICAgfHwgIWlzVmVjdG9yKHZhbHVlWyd2ZWN0b3InXSkgfHwgIU51bWJlci5pc1NhZmVJbnRlZ2VyKHZhbHVlWyd0aW1lJ10pIHx8ICFOdW1iZXIuaXNTYWZlSW50ZWdlcih2YWx1ZVsnY291bnRlciddKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGEtc3RvcmUgY2hlY2twb2ludCBvciBpbmNvbXBhdGlibGUgbWVyZ2UgcnVsZScpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IG9wZXJhdGlvbiBvZiB2YWx1ZVsnb3BlcmF0aW9ucyddKSB7XG4gICAgICB0aGlzLnJlcGxpY2EuYXBwbHkob3BlcmF0aW9uKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBbZGV2aWNlLCBzZXF1ZW5jZV0gb2YgdmFsdWVbJ3ZlY3RvciddKSB7XG4gICAgICB0aGlzLnZlY3Rvci5zZXQoZGV2aWNlLCBNYXRoLm1heChzZXF1ZW5jZSwgdGhpcy52ZWN0b3IuZ2V0KGRldmljZSkgPz8gMCkpO1xuICAgIH1cbiAgICB0aGlzLm9ic2VydmVDbG9jayhOdW1iZXIodmFsdWVbJ3RpbWUnXSksIE51bWJlcih2YWx1ZVsnY291bnRlciddKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG1lcmdlRmlsZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYWxsRmlsZXMgPSBhd2FpdCB0aGlzLnRyYW5zcG9ydC5saXN0KCk7XG4gICAgY29uc3QgZmlsZXMgPSBhbGxGaWxlcy5maWx0ZXIoKHBhdGgpID0+IHBhdGguc3RhcnRzV2l0aChgJHt0aGlzLnRyYW5zcG9ydC5yb290fS9kZXZpY2VzL2ApKTtcbiAgICBjb25zdCBtYW5pZmVzdHMgPSBmaWxlcy5maWx0ZXIoKGZpbGUpID0+IC9cXC9zbmFwc2hvdC1bXFx3LV0rLW1hbmlmZXN0XFwubWQkLy50ZXN0KGZpbGUpKTtcbiAgICBmb3IgKGNvbnN0IHBhdGggb2YgbWFuaWZlc3RzKSB7XG4gICAgICBjb25zdCBzbmFwc2hvdCA9IGF3YWl0IHRoaXMudHJhbnNwb3J0LnJlYWRTbmFwc2hvdChwYXRoKTtcbiAgICAgIGlmIChzbmFwc2hvdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMubWVyZ2VDaGVja3BvaW50KHNuYXBzaG90KTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgb3BlcmF0aW9uczogRGF0YVN0b3JlT3BlcmF0aW9uW10gPSBbXTtcbiAgICBjb25zdCBzZWdtZW50cyA9IGZpbGVzLmZpbHRlcigoZmlsZSkgPT4gL1xcL2xvZy1cXGQrXFwubWQkLy50ZXN0KGZpbGUpKTtcbiAgICBmb3IgKGNvbnN0IHBhdGggb2Ygc2VnbWVudHMpIHtcbiAgICAgIGNvbnN0IHNlZ21lbnQgPSBhd2FpdCB0aGlzLnRyYW5zcG9ydC5yZWFkKHBhdGgpO1xuICAgICAgaWYgKHNlZ21lbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShzZWdtZW50KSB8fCAhc2VnbWVudC5ldmVyeShpc0RhdGFTdG9yZU9wZXJhdGlvbikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGEtc3RvcmUgam91cm5hbCBzZWdtZW50Jyk7XG4gICAgICB9XG4gICAgICBjb25zdCBvd25lciA9IHBhdGguc3BsaXQoJy8nKS5hdChPV05FUl9QQVRIX0lOREVYKTtcbiAgICAgIGlmIChzZWdtZW50LnNvbWUoKG9wZXJhdGlvbikgPT4gb3BlcmF0aW9uLmRldmljZSAhPT0gb3duZXIpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSm91cm5hbCBzZWdtZW50IGhhcyBhIGRpZmZlcmVudCB3cml0ZXInKTtcbiAgICAgIH1cbiAgICAgIG9wZXJhdGlvbnMucHVzaCguLi5zZWdtZW50KTtcbiAgICB9XG4gICAgb3BlcmF0aW9ucy5zb3J0KChmaXJzdCwgc2Vjb25kKSA9PiBmaXJzdC5kZXZpY2UubG9jYWxlQ29tcGFyZShzZWNvbmQuZGV2aWNlKSB8fCBmaXJzdC5zZXF1ZW5jZSAtIHNlY29uZC5zZXF1ZW5jZSk7XG4gICAgZm9yIChjb25zdCBvcGVyYXRpb24gb2Ygb3BlcmF0aW9ucykge1xuICAgICAgaWYgKG9wZXJhdGlvbi5zZXF1ZW5jZSA9PT0gKHRoaXMudmVjdG9yLmdldChvcGVyYXRpb24uZGV2aWNlKSA/PyAwKSArIDEpIHtcbiAgICAgICAgdGhpcy5hcHBseShvcGVyYXRpb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZUNsb2NrKHRpbWU6IG51bWJlciwgY291bnRlcjogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRpbWUgPiB0aGlzLnRpbWUpIHtcbiAgICAgIHRoaXMudGltZSA9IHRpbWU7XG4gICAgICB0aGlzLmNvdW50ZXIgPSBjb3VudGVyO1xuICAgIH0gZWxzZSBpZiAodGltZSA9PT0gdGhpcy50aW1lKSB7XG4gICAgICB0aGlzLmNvdW50ZXIgPSBNYXRoLm1heCh0aGlzLmNvdW50ZXIsIGNvdW50ZXIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcGVyc2lzdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjaGVja3BvaW50ID0gdGhpcy5jaGVja3BvaW50KCk7XG4gICAgY29uc3QgcmVjb3JkcyA9IG5ldyBNYXA8c3RyaW5nLCBEYXRhU3RvcmVPcGVyYXRpb24+KCk7XG4gICAgZm9yIChjb25zdCBvcGVyYXRpb24gb2YgY2hlY2twb2ludC5vcGVyYXRpb25zKSB7XG4gICAgICBjb25zdCBpZGVudGl0eSA9IHRoaXMucGFyYW1zLmtpbmQgPT09ICdvYnNlcnZlZC1yZW1vdmUtc2V0JyA/IGAke29wZXJhdGlvbi5kZXZpY2V9OiR7U3RyaW5nKG9wZXJhdGlvbi5zZXF1ZW5jZSl9YCA6IG9wZXJhdGlvbi5rZXk7XG4gICAgICByZWNvcmRzLnNldChgJHtSRUNPUkRfUFJFRklYfSR7aWRlbnRpdHl9YCwgb3BlcmF0aW9uKTtcbiAgICB9XG4gICAgY29uc3QgZW50cmllczogW3N0cmluZywgdW5rbm93bl1bXSA9IFsuLi5yZWNvcmRzXS5maWx0ZXIoKFtrZXksIHZhbHVlXSkgPT4gdGhpcy5sb2NhbFJlY29yZHMuZ2V0KGtleSkgIT09IEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgY29uc3QgcmVtb3ZlZEtleXMgPSBbLi4udGhpcy5sb2NhbFJlY29yZHMua2V5cygpXS5maWx0ZXIoKGtleSkgPT4gIXJlY29yZHMuaGFzKGtleSkpO1xuICAgIGVudHJpZXMucHVzaChbJ3NoYXJlZC1jaGVja3BvaW50LXYxJywgeyAuLi5jaGVja3BvaW50LCBvcGVyYXRpb25zOiBbXSB9XSk7XG4gICAgYXdhaXQgdGhpcy5wYXJhbXMubG9jYWwuY29tbWl0KHsgZW50cmllcywgcmVtb3ZlZEtleXMgfSk7XG4gICAgYXdhaXQgdGhpcy50cmFuc3BvcnQud3JpdGUoYCR7dGhpcy5kZXZpY2VSb290KCl9L2hhdmUubWRgLCB7IGZvcm1hdDogMSwgdGltZTogRGF0ZS5ub3coKSwgdmVjdG9yOiBbLi4udGhpcy52ZWN0b3JdIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwdWJsaXNoKG9wZXJhdGlvbnM6IERhdGFTdG9yZU9wZXJhdGlvbltdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmlyc3QgPSBlbnN1cmVOb25OdWxsYWJsZShvcGVyYXRpb25zWzBdKTtcbiAgICBhd2FpdCB0aGlzLnRyYW5zcG9ydC53cml0ZShgJHt0aGlzLmRldmljZVJvb3QoKX0vbG9nLSR7U3RyaW5nKGZpcnN0LnNlcXVlbmNlKX0ubWRgLCBvcGVyYXRpb25zKTtcbiAgICBmb3IgKGNvbnN0IG9wZXJhdGlvbiBvZiBvcGVyYXRpb25zKSB7XG4gICAgICB0aGlzLmFwcGx5KG9wZXJhdGlvbik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIGlzVmVjdG9yKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgVmVyc2lvblZlY3RvciB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5ldmVyeSgoZW50cnk6IHVua25vd24pID0+XG4gICAgQXJyYXkuaXNBcnJheShlbnRyeSkgJiYgZW50cnkubGVuZ3RoID09PSBWRUNUT1JfRU5UUllfTEVOR1RIXG4gICAgJiYgdHlwZW9mIGVudHJ5WzBdID09PSAnc3RyaW5nJyAmJiAvXltcXHctXSskLy50ZXN0KGVudHJ5WzBdKSAmJiBOdW1iZXIuaXNTYWZlSW50ZWdlcihlbnRyeVsxXSkgJiYgTnVtYmVyKGVudHJ5WzFdKSA+PSAwXG4gICk7XG59XG5cbi8qIGVzbGludC1lbmFibGUgbi9uby11bnN1cHBvcnRlZC1mZWF0dXJlcy9ub2RlLWJ1aWx0aW5zIC0tIFRoZXNlIGFyZSBPYnNpZGlhbiByZW5kZXJlciBXZWIgQVBJcywgbm90IE5vZGUgYnVpbHRpbnMuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQSx5QkFBa0M7QUFRbEMsZ0NBR087QUFDUCxrQ0FBbUM7QUFFbkMsTUFBTSxxQ0FBcUM7QUFFM0MsTUFBTSxtQkFBbUI7QUFFekIsTUFBTSxzQkFBc0I7QUFDNUIsTUFBTSxvQkFBb0I7QUFDMUIsTUFBTSxnQkFBZ0I7QUFtRWYsTUFBTSxnQkFBZ0I7QUFBQSxFQVNuQixZQUErQixRQUFzRCxRQUFnQjtBQUF0RTtBQUFzRDtBQUMzRixTQUFLLFlBQVksSUFBSSwrQ0FBbUIsTUFBTTtBQUM5QyxTQUFLLFVBQVUsSUFBSSwyQ0FBaUIsT0FBTyxJQUFJO0FBQy9DLFNBQUssMkJBQTJCLE9BQU8sNEJBQTRCO0FBQ25FLFFBQUksQ0FBQyxPQUFPLFNBQVMsS0FBSyx3QkFBd0IsS0FBSyxLQUFLLDRCQUE0QixHQUFHO0FBQ3pGLFlBQU0sSUFBSSxNQUFNLDZDQUE2QztBQUFBLElBQy9EO0FBQUEsRUFDRjtBQUFBLEVBUHVDO0FBQUEsRUFBc0Q7QUFBQSxFQVI1RTtBQUFBLEVBQ1QsVUFBVTtBQUFBLEVBQ0QsZUFBZSxvQkFBSSxJQUFvQjtBQUFBLEVBQ2hEO0FBQUEsRUFDQSxPQUFPO0FBQUEsRUFDRTtBQUFBLEVBQ0EsU0FBUyxvQkFBSSxJQUFvQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBaUJsRCxhQUFvQixLQUFLLFFBQTZEO0FBQ3BGLFVBQU0sU0FBUyxNQUFNLE9BQU8sTUFBTSxZQUFZLG9CQUFvQixPQUFPLE9BQU8sV0FB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
|
|
431
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRhLXN0b3Jlcy9zaGFyZWQtZGF0YS1zdG9yZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL25vZGUtYnVpbHRpbnMgLS0gVGhlc2UgYXJlIE9ic2lkaWFuIHJlbmRlcmVyIFdlYiBBUElzLCBub3QgTm9kZSBidWlsdGlucy4gKi9cbi8qKlxuICogQGZpbGVcbiAqXG4gKiBNZXJnZWFibGUgcGx1Z2luIGRhdGEsIHRyYW5zcG9ydGVkIGFzIHNpbmdsZS13cml0ZXIgam91cm5hbCBzZWdtZW50cyBhbmQgY2h1bmtlZCBzbmFwc2hvdHMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBEYXRhQWRhcHRlciB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgSnNvblZhbHVlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZS1ndWFyZHMnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIERhdGFTdG9yZU1lcmdlS2luZCxcbiAgRGF0YVN0b3JlT3BlcmF0aW9uXG59IGZyb20gJy4vZGF0YS1zdG9yZS1yZXBsaWNhLnRzJztcbmltcG9ydCB0eXBlIHsgTG9jYWxEYXRhU3RvcmUgfSBmcm9tICcuL2xvY2FsLWRhdGEtc3RvcmUudHMnO1xuXG5pbXBvcnQge1xuICBEYXRhU3RvcmVSZXBsaWNhLFxuICBpc0RhdGFTdG9yZU9wZXJhdGlvblxufSBmcm9tICcuL2RhdGEtc3RvcmUtcmVwbGljYS50cyc7XG5pbXBvcnQgeyBEYXRhU3RvcmVUcmFuc3BvcnQgfSBmcm9tICcuL2RhdGEtc3RvcmUtdHJhbnNwb3J0LnRzJztcblxuY29uc3QgREVGQVVMVF9BQ1RJVkVfREVWSUNFX01JTExJU0VDT05EUyA9IDJfNTkyXzAwMF8wMDA7XG5cbmNvbnN0IE9XTkVSX1BBVEhfSU5ERVggPSAtMjtcblxuY29uc3QgVkVDVE9SX0VOVFJZX0xFTkdUSCA9IDI7XG5jb25zdCBERVZJQ0VfUEFUSF9QQVJUUyA9IDI7XG5jb25zdCBSRUNPUkRfUFJFRklYID0gJ3NoYXJlZC1yZWNvcmQtdjE6JztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBvcGVuaW5nIGEgc2hhcmVkIHN0b3JlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZERhdGFTdG9yZU9wZW5QYXJhbXMge1xuICAvKipcbiAgICogRGV2aWNlIHJldGlyZW1lbnQgaW50ZXJ2YWwsIG1lYXN1cmVkIGZyb20gaXRzIGxhc3QgYWNrbm93bGVkZ2VtZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgMjU5MjAwMDAwMGBcbiAgICovXG4gIHJlYWRvbmx5IGFjdGl2ZURldmljZU1pbGxpc2Vjb25kcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIFZhdWx0IGFkYXB0ZXIuXG4gICAqL1xuICByZWFkb25seSBhZGFwdGVyOiBEYXRhQWRhcHRlcjtcbiAgLyoqXG4gICAqIFZhdWx0LXJlbGF0aXZlIGZvbGRlci4gSGlkZGVuIHNlZ21lbnRzIGFyZSBhbGxvd2VkOyBjYWxsZXJzIG11c3QgYXJyYW5nZSB0aGVpciBzeW5jaHJvbml6YXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnUGx1Z2luIGRhdGEnYFxuICAgKi9cbiAgcmVhZG9ubHkgZm9sZGVyPzogc3RyaW5nO1xuICAvKipcbiAgICogSW1tdXRhYmxlIG1lcmdlIHJ1bGU7IGNoYW5naW5nIGl0IHJlcXVpcmVzIGEgbmV3IHN0b3JlIGlkLlxuICAgKi9cbiAgcmVhZG9ubHkga2luZDogRGF0YVN0b3JlTWVyZ2VLaW5kO1xuICAvKipcbiAgICogRGVkaWNhdGVkIGxvY2FsIHN0b3JlIHNjb3BlZCB0byBUSElTIHZhdWx0LCBwbHVnaW4gYW5kIHNoYXJlZC1zdG9yZSBzY2hlbWEuIFRoZSBjYWxsZXIgb3ducyBpdHMgY29ubmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGxvY2FsOiBMb2NhbERhdGFTdG9yZTtcbiAgLyoqXG4gICAqIE1heGltdW0gVVRGLTggYnl0ZXMgcGVyIGZpbGUsIHdyYXBwZXIgaW5jbHVkZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAxMDAwMDAwYFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4RmlsZUJ5dGVzPzogbnVtYmVyO1xuICAvKipcbiAgICogUGx1Z2luIG1hbmlmZXN0IGlkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFN0b3JlIGlkIGluY2x1ZGluZyB0aGUgY29uc3VtZXIncyBzY2hlbWEgdmVyc2lvbi5cbiAgICovXG4gIHJlYWRvbmx5IHN0b3JlSWQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIENoYW5nZSB7XG4gIHJlYWRvbmx5IGRlbGV0ZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGtleTogc3RyaW5nO1xuICByZWFkb25seSB2YWx1ZTogSnNvblZhbHVlO1xufVxuXG5pbnRlcmZhY2UgQ2hlY2twb2ludCB7XG4gIHJlYWRvbmx5IGNvdW50ZXI6IG51bWJlcjtcbiAgcmVhZG9ubHkgZm9ybWF0OiAxO1xuICByZWFkb25seSBraW5kOiBEYXRhU3RvcmVNZXJnZUtpbmQ7XG4gIHJlYWRvbmx5IG9wZXJhdGlvbnM6IERhdGFTdG9yZU9wZXJhdGlvbltdO1xuICByZWFkb25seSB0aW1lOiBudW1iZXI7XG4gIHJlYWRvbmx5IHZlY3RvcjogVmVyc2lvblZlY3Rvcjtcbn1cblxudHlwZSBWZXJzaW9uVmVjdG9yID0gW3N0cmluZywgbnVtYmVyXVtdO1xuXG4vKipcbiAqIEEgZGV2aWNlLWxvY2FsIHF1ZXJ5IHJlcGxpY2EgYmFja2VkIGJ5IHZhdWx0IGZpbGVzLiBDYWxsIGBzeW5jaHJvbml6ZWAgYWZ0ZXIgdHJhbnNwb3J0IGNoYW5nZXMgb3IgcGVyaW9kaWNhbGx5LlxuICogTm8gdGltZXIgb3IgZXZlbnQgaGFuZGxlciBvdXRsaXZlcyB0aGUgY29uc3VtZXI6IHRoZSBjb25zdW1lciBzY2hlZHVsZXMgc3luY2hyb25pemF0aW9uIGFuZCBvd25zIHVubG9hZGluZy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNoYXJlZERhdGFTdG9yZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZlRGV2aWNlTWlsbGlzZWNvbmRzOiBudW1iZXI7XG4gIHByaXZhdGUgY291bnRlciA9IDA7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxSZWNvcmRzID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgcHJpdmF0ZSByZXBsaWNhOiBEYXRhU3RvcmVSZXBsaWNhO1xuICBwcml2YXRlIHRpbWUgPSAwO1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zcG9ydDogRGF0YVN0b3JlVHJhbnNwb3J0O1xuICBwcml2YXRlIHJlYWRvbmx5IHZlY3RvciA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgcGFyYW1zOiBTaGFyZWREYXRhU3RvcmVPcGVuUGFyYW1zLCBwcm90ZWN0ZWQgcmVhZG9ubHkgZGV2aWNlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRyYW5zcG9ydCA9IG5ldyBEYXRhU3RvcmVUcmFuc3BvcnQocGFyYW1zKTtcbiAgICB0aGlzLnJlcGxpY2EgPSBuZXcgRGF0YVN0b3JlUmVwbGljYShwYXJhbXMua2luZCk7XG4gICAgdGhpcy5hY3RpdmVEZXZpY2VNaWxsaXNlY29uZHMgPSBwYXJhbXMuYWN0aXZlRGV2aWNlTWlsbGlzZWNvbmRzID8/IERFRkFVTFRfQUNUSVZFX0RFVklDRV9NSUxMSVNFQ09ORFM7XG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUodGhpcy5hY3RpdmVEZXZpY2VNaWxsaXNlY29uZHMpIHx8IHRoaXMuYWN0aXZlRGV2aWNlTWlsbGlzZWNvbmRzIDw9IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRGV2aWNlIHJldGlyZW1lbnQgaW50ZXJ2YWwgbXVzdCBiZSBwb3NpdGl2ZScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyBhbmQgc3luY2hyb25pemVzIGEgc3RvcmUsIHJlc3RvcmluZyBpdHMgZGV2aWNlIGlkZW50aXR5IGV4Y2x1c2l2ZWx5IGZyb20gSW5kZXhlZERCLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gUGVyc2lzdGVuY2UsIHRyYW5zcG9ydCBhbmQgbWVyZ2UgcG9saWN5LlxuICAgKiBAcmV0dXJucyBBIHN5bmNocm9uaXplZCBxdWVyeSByZXBsaWNhLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhc3luYyBvcGVuKHBhcmFtczogU2hhcmVkRGF0YVN0b3JlT3BlblBhcmFtcyk6IFByb21pc2U8U2hhcmVkRGF0YVN0b3JlPiB7XG4gICAgY29uc3QgZGV2aWNlID0gYXdhaXQgcGFyYW1zLmxvY2FsLmdldE9yQ3JlYXRlKCdzaGFyZWQtZGV2aWNlLXYxJywgd2luZG93LmNyeXB0by5yYW5kb21VVUlEKCkpO1xuICAgIGlmICh0eXBlb2YgZGV2aWNlICE9PSAnc3RyaW5nJyB8fCAhL15bXFx3LV0rJC8udGVzdChkZXZpY2UpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbG9jYWwgZGF0YS1zdG9yZSBpZGVudGl0eScpO1xuICAgIH1cbiAgICBjb25zdCBzdG9yZSA9IG5ldyBTaGFyZWREYXRhU3RvcmUocGFyYW1zLCBkZXZpY2UpO1xuICAgIGF3YWl0IHN0b3JlLnN5bmNocm9uaXplKCk7XG4gICAgcmV0dXJuIHN0b3JlO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2hlcyBhIGNvbXBsZXRlIGNodW5rZWQgc25hcHNob3QgYW5kIHRyaW1zIG9ubHkgdGhpcyBkZXZpY2UncyBhY2tub3dsZWRnZWQgam91cm5hbCBzZWdtZW50cy5cbiAgICogUmV0aXJlZCBkZXZpY2VzIHJlam9pbiBieSBtZXJnaW5nIHNuYXBzaG90czsgdG9tYnN0b25lcyByZW1haW4gaW4gc25hcHNob3RzIHRvIHByZXZlbnQgcmVzdXJyZWN0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGNvbXBhY3Rpb24gZmluaXNoZXMuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY29tcGFjdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnBhcmFtcy5sb2NhbC5leGNsdXNpdmUoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy5sb2FkTG9jYWwoKTtcbiAgICAgIGF3YWl0IHRoaXMubWVyZ2VGaWxlcygpO1xuICAgICAgYXdhaXQgdGhpcy5wZXJzaXN0KCk7XG4gICAgICBjb25zdCBmaWxlcyA9IGF3YWl0IHRoaXMudHJhbnNwb3J0Lmxpc3QoKTtcbiAgICAgIGNvbnN0IGJhc2UgPSBgJHt0aGlzLmRldmljZVJvb3QoKX0vc25hcHNob3QtJHt3aW5kb3cuY3J5cHRvLnJhbmRvbVVVSUQoKX0tbWFuaWZlc3RgO1xuICAgICAgYXdhaXQgdGhpcy50cmFuc3BvcnQud3JpdGVTbmFwc2hvdCh7IGJhc2UsIHBheWxvYWQ6IHRoaXMuY2hlY2twb2ludCgpIH0pO1xuICAgICAgY29uc3QgYWNrbm93bGVkZ2VtZW50cyA9IGF3YWl0IHRoaXMuYWNrbm93bGVkZ2VtZW50cyhmaWxlcyk7XG4gICAgICBmb3IgKGNvbnN0IHBhdGggb2YgZmlsZXMpIHtcbiAgICAgICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoYCR7dGhpcy5kZXZpY2VSb290KCl9L2xvZy1gKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wZXJhdGlvbnMgPSBhd2FpdCB0aGlzLnRyYW5zcG9ydC5yZWFkKHBhdGgpO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkob3BlcmF0aW9ucykgfHwgIW9wZXJhdGlvbnMuZXZlcnkoaXNEYXRhU3RvcmVPcGVyYXRpb24pKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGFzdCA9IE1hdGgubWF4KC4uLm9wZXJhdGlvbnMubWFwKChvcGVyYXRpb24pID0+IG9wZXJhdGlvbi5zZXF1ZW5jZSkpO1xuICAgICAgICBpZiAoYWNrbm93bGVkZ2VtZW50cy5ldmVyeSgodmVjdG9yKSA9PiAodmVjdG9yLmdldCh0aGlzLmRldmljZSkgPz8gMCkgPj0gbGFzdCkpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnRyYW5zcG9ydC5yZW1vdmUocGF0aCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIFRoZSBjb21wbGV0ZSBuZXcgc25hcHNob3QgY292ZXJzIGV2ZXJ5IGVhcmxpZXIgc25hcHNob3QgZnJvbSB0aGlzIHdyaXRlci5cbiAgICAgIGZvciAoY29uc3QgcGF0aCBvZiBmaWxlcykge1xuICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKGAke3RoaXMuZGV2aWNlUm9vdCgpfS9zbmFwc2hvdC1gKSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNwb3J0LnJlbW92ZShwYXRoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgYSByZWdpc3RlciBvciByZW1vdmVzIHRoZSBjdXJyZW50bHkgb2JzZXJ2ZWQgYWRkaXRpb25zIG9mIGEgc2V0IG1lbWJlci5cbiAgICpcbiAgICogQHBhcmFtIGtleSAtIFJlY29yZCBrZXkgb3Igc2V0IG1lbWJlci4gTWluL21heCByZWdpc3RlcnMgZGVsaWJlcmF0ZWx5IGNhbm5vdCBiZSBkZWxldGVkLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyBhZnRlciBqb3VybmFsIHB1YmxpY2F0aW9uIGFuZCBsb2NhbCBjb21taXQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVsZXRlKGtleTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5jaGFuZ2UoW3sgZGVsZXRlZDogdHJ1ZSwga2V5LCB2YWx1ZTogbnVsbCB9XSk7XG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgdGhlIGN1cnJlbnQgbG9jYWwgcXVlcnkgcmVwbGljYS5cbiAgICpcbiAgICogQHJldHVybnMgRGV0YWNoZWQga2V5L3ZhbHVlIHBhaXJzIGluIGRldGVybWluaXN0aWMgb3JkZXIuXG4gICAqL1xuICBwdWJsaWMgZW50cmllcygpOiBbc3RyaW5nLCB1bmtub3duXVtdIHtcbiAgICByZXR1cm4gdGhpcy5yZXBsaWNhLmVudHJpZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyBhIHJlZ2lzdGVyIG9yIHNldCBtZW1iZXJzaGlwIGZyb20gdGhlIGN1cnJlbnQgbG9jYWwgcXVlcnkgcmVwbGljYS5cbiAgICpcbiAgICogQHBhcmFtIGtleSAtIFJlY29yZCBrZXkgb3Igc2V0IG1lbWJlci5cbiAgICogQHJldHVybnMgQSBkZXRhY2hlZCB2YWx1ZSwgb3IgYHVuZGVmaW5lZGAgd2hlbiBhYnNlbnQgb3IgZGVsZXRlZC5cbiAgICovXG4gIHB1YmxpYyBnZXQoa2V5OiBzdHJpbmcpOiB1bmtub3duIHtcbiAgICByZXR1cm4gdGhpcy5yZXBsaWNhLmdldChrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlcyBvbmUgcmVnaXN0ZXIgdmFsdWUsIG9yIGFkZHMgYSBtZW1iZXIgdG8gYW4gb2JzZXJ2ZWQtcmVtb3ZlIHNldC5cbiAgICpcbiAgICogQHBhcmFtIGtleSAtIFJlY29yZCBrZXkgb3Igc2V0IG1lbWJlci5cbiAgICogQHBhcmFtIHZhbHVlIC0gSlNPTi1jb21wYXRpYmxlIHZhbHVlICh1c2UgYHRydWVgIGZvciBhIHNldCkuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIGFmdGVyIGpvdXJuYWwgcHVibGljYXRpb24gYW5kIGxvY2FsIGNvbW1pdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBKc29uVmFsdWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnNldE1hbnkoW1trZXksIHZhbHVlXV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2hlcyBhIGJhdGNoIG9mIHJlZ2lzdGVyIHdyaXRlcywgc3BsaXQgaW50byBib3VuZGVkIGltbXV0YWJsZSBzZWdtZW50cy5cbiAgICogU2VnbWVudHMgYXJlIGluZGl2aWR1YWxseSBkdXJhYmxlOyBhIGZhaWxlZCBiYXRjaCBjYW4gaGF2ZSBhIHB1Ymxpc2hlZCBwcmVmaXggYW5kIGNhbiBiZSByZXRyaWVkIHNhZmVseS5cbiAgICpcbiAgICogQHBhcmFtIGVudHJpZXMgLSBSZWdpc3RlciB3cml0ZXMgb3Igc2V0IGFkZGl0aW9ucy5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgam91cm5hbCBwdWJsaWNhdGlvbiBhbmQgbG9jYWwgY29tbWl0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNldE1hbnkoZW50cmllczogcmVhZG9ubHkgKHJlYWRvbmx5IFtzdHJpbmcsIEpzb25WYWx1ZV0pW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmNoYW5nZShlbnRyaWVzLm1hcCgoW2tleSwgdmFsdWVdKSA9PiAoeyBkZWxldGVkOiBmYWxzZSwga2V5LCB2YWx1ZSB9KSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1lcmdlcyBjb21wbGV0ZSBzbmFwc2hvdHMgYW5kIGNvbnRpZ3VvdXMgam91cm5hbCBoaXN0b3J5LCB0aGVuIHB1Ymxpc2hlcyBpdHMgZHVyYWJsZSBhY2tub3dsZWRnZW1lbnQuXG4gICAqIFBhcnRpYWwgZGVsaXZlcmllcyByZW1haW4gcGVuZGluZzsgYSBsYXRlciBjYWxsIHJldHJpZXMgdGhlbS4gTm8gYWNrbm93bGVkZ2VtZW50IHNraXBzIGEgbWlzc2luZyBzZXF1ZW5jZS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgdGhlIGxvY2FsIGNoZWNrcG9pbnQgYW5kIGFja25vd2xlZGdlbWVudCBjb21taXQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc3luY2hyb25pemUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5wYXJhbXMubG9jYWwuZXhjbHVzaXZlKGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZExvY2FsKCk7XG4gICAgICBhd2FpdCB0aGlzLm1lcmdlRmlsZXMoKTtcbiAgICAgIGF3YWl0IHRoaXMucGVyc2lzdCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhY2tub3dsZWRnZW1lbnRzKGZpbGVzOiByZWFkb25seSBzdHJpbmdbXSk6IFByb21pc2U8TWFwPHN0cmluZywgbnVtYmVyPltdPiB7XG4gICAgY29uc3QgYWNrbm93bGVkZ2VtZW50cyA9IFtuZXcgTWFwKHRoaXMudmVjdG9yKV07XG4gICAgY29uc3QgZGV2aWNlRmlsZXMgPSBmaWxlcy5maWx0ZXIoKHBhdGgpID0+IHBhdGguc3RhcnRzV2l0aChgJHt0aGlzLnRyYW5zcG9ydC5yb290fS9kZXZpY2VzL2ApKTtcbiAgICBjb25zdCBkZXZpY2VzID0gbmV3IFNldChkZXZpY2VGaWxlcy5tYXAoKHBhdGgpID0+IHBhdGguc2xpY2UodGhpcy50cmFuc3BvcnQucm9vdC5sZW5ndGggKyAxKS5zcGxpdCgnLycsIERFVklDRV9QQVRIX1BBUlRTKVsxXSkuZmlsdGVyKChkZXZpY2UpID0+IGRldmljZSAhPT0gdW5kZWZpbmVkKSk7XG4gICAgZm9yIChjb25zdCBkZXZpY2Ugb2YgZGV2aWNlcykge1xuICAgICAgaWYgKGRldmljZSA9PT0gdGhpcy5kZXZpY2UpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBoYXZlID0gYXdhaXQgdGhpcy50cmFuc3BvcnQucmVhZChgJHt0aGlzLnRyYW5zcG9ydC5yb290fS9kZXZpY2VzLyR7ZGV2aWNlfS9oYXZlLm1kYCk7XG4gICAgICBpZiAoIWlzT2JqZWN0KGhhdmUpIHx8ICFpc1ZlY3RvcihoYXZlWyd2ZWN0b3InXSkgfHwgdHlwZW9mIGhhdmVbJ3RpbWUnXSAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgYWNrbm93bGVkZ2VtZW50cy5wdXNoKG5ldyBNYXAoKSk7XG4gICAgICB9IGVsc2UgaWYgKERhdGUubm93KCkgLSBoYXZlWyd0aW1lJ10gPD0gdGhpcy5hY3RpdmVEZXZpY2VNaWxsaXNlY29uZHMpIHtcbiAgICAgICAgYWNrbm93bGVkZ2VtZW50cy5wdXNoKG5ldyBNYXAoaGF2ZVsndmVjdG9yJ10pKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFja25vd2xlZGdlbWVudHM7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5KG9wZXJhdGlvbjogRGF0YVN0b3JlT3BlcmF0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5yZXBsaWNhLmFwcGx5KG9wZXJhdGlvbik7XG4gICAgdGhpcy52ZWN0b3Iuc2V0KG9wZXJhdGlvbi5kZXZpY2UsIG9wZXJhdGlvbi5zZXF1ZW5jZSk7XG4gICAgdGhpcy5vYnNlcnZlQ2xvY2sob3BlcmF0aW9uLnRpbWUsIG9wZXJhdGlvbi5jb3VudGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hhbmdlKGNoYW5nZXM6IHJlYWRvbmx5IENoYW5nZVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5wYXJhbXMubG9jYWwuZXhjbHVzaXZlKGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZExvY2FsKCk7XG4gICAgICBhd2FpdCB0aGlzLm1lcmdlRmlsZXMoKTtcbiAgICAgIGNvbnN0IG9wZXJhdGlvbnM6IERhdGFTdG9yZU9wZXJhdGlvbltdID0gW107XG4gICAgICBjb25zdCBjYW5kaWRhdGUgPSBuZXcgRGF0YVN0b3JlUmVwbGljYSh0aGlzLnBhcmFtcy5raW5kKTtcbiAgICAgIGZvciAoY29uc3Qgb3BlcmF0aW9uIG9mIHRoaXMucmVwbGljYS5leHBvcnQoKSkge1xuICAgICAgICBjYW5kaWRhdGUuYXBwbHkob3BlcmF0aW9uKTtcbiAgICAgIH1cbiAgICAgIGxldCBzZXF1ZW5jZSA9IHRoaXMudmVjdG9yLmdldCh0aGlzLmRldmljZSkgPz8gMDtcbiAgICAgIGZvciAoY29uc3QgY2hhbmdlIG9mIGNoYW5nZXMpIHtcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgdGhpcy5jb3VudGVyID0gbm93ID4gdGhpcy50aW1lID8gMCA6IHRoaXMuY291bnRlciArIDE7XG4gICAgICAgIHRoaXMudGltZSA9IE1hdGgubWF4KG5vdywgdGhpcy50aW1lKTtcbiAgICAgICAgY29uc3Qgb3BlcmF0aW9uOiBEYXRhU3RvcmVPcGVyYXRpb24gPSB7XG4gICAgICAgICAgLi4uY2hhbmdlLFxuICAgICAgICAgIGNvdW50ZXI6IHRoaXMuY291bnRlcixcbiAgICAgICAgICBkZXZpY2U6IHRoaXMuZGV2aWNlLFxuICAgICAgICAgIHNlcXVlbmNlOiArK3NlcXVlbmNlLFxuICAgICAgICAgIHRhZ3M6IGNhbmRpZGF0ZS5vYnNlcnZlZFRhZ3MoY2hhbmdlLmtleSksXG4gICAgICAgICAgdGltZTogdGhpcy50aW1lXG4gICAgICAgIH07XG4gICAgICAgIGNhbmRpZGF0ZS5hcHBseShvcGVyYXRpb24pO1xuICAgICAgICBvcGVyYXRpb25zLnB1c2gob3BlcmF0aW9uKTtcbiAgICAgIH1cbiAgICAgIC8vIFZhbGlkYXRlIGV2ZXJ5IHNpbmdsZSBvcGVyYXRpb24gYmVmb3JlIHB1Ymxpc2hpbmcgYW55IHByZWZpeCBvZiBhIGJhdGNoLlxuICAgICAgZm9yIChjb25zdCBvcGVyYXRpb24gb2Ygb3BlcmF0aW9ucykge1xuICAgICAgICBpZiAoIXRoaXMudHJhbnNwb3J0LmZpdHMoW29wZXJhdGlvbl0pKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy50cmFuc3BvcnQud3JpdGUoYCR7dGhpcy5kZXZpY2VSb290KCl9L2xvZy0ke1N0cmluZyhvcGVyYXRpb24uc2VxdWVuY2UpfS5tZGAsIFtvcGVyYXRpb25dKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV0IGJhdGNoOiBEYXRhU3RvcmVPcGVyYXRpb25bXSA9IFtdO1xuICAgICAgZm9yIChjb25zdCBvcGVyYXRpb24gb2Ygb3BlcmF0aW9ucykge1xuICAgICAgICBpZiAoIXRoaXMudHJhbnNwb3J0LmZpdHMoWy4uLmJhdGNoLCBvcGVyYXRpb25dKSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucHVibGlzaChiYXRjaCk7XG4gICAgICAgICAgYmF0Y2ggPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBiYXRjaC5wdXNoKG9wZXJhdGlvbik7XG4gICAgICB9XG4gICAgICBpZiAoYmF0Y2gubGVuZ3RoID4gMCkge1xuICAgICAgICBhd2FpdCB0aGlzLnB1Ymxpc2goYmF0Y2gpO1xuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5wZXJzaXN0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrcG9pbnQoKTogQ2hlY2twb2ludCB7XG4gICAgcmV0dXJuIHsgY291bnRlcjogdGhpcy5jb3VudGVyLCBmb3JtYXQ6IDEsIGtpbmQ6IHRoaXMucGFyYW1zLmtpbmQsIG9wZXJhdGlvbnM6IHRoaXMucmVwbGljYS5leHBvcnQoKSwgdGltZTogdGhpcy50aW1lLCB2ZWN0b3I6IFsuLi50aGlzLnZlY3Rvcl0gfTtcbiAgfVxuXG4gIHByaXZhdGUgZGV2aWNlUm9vdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLnRyYW5zcG9ydC5yb290fS9kZXZpY2VzLyR7dGhpcy5kZXZpY2V9YDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZExvY2FsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMucmVwbGljYSA9IG5ldyBEYXRhU3RvcmVSZXBsaWNhKHRoaXMucGFyYW1zLmtpbmQpO1xuICAgIHRoaXMudmVjdG9yLmNsZWFyKCk7XG4gICAgdGhpcy50aW1lID0gMDtcbiAgICB0aGlzLmNvdW50ZXIgPSAwO1xuICAgIHRoaXMubG9jYWxSZWNvcmRzLmNsZWFyKCk7XG4gICAgY29uc3QgcmVjb3JkcyA9IGF3YWl0IHRoaXMucGFyYW1zLmxvY2FsLmVudHJpZXMoKTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiByZWNvcmRzKSB7XG4gICAgICBpZiAoa2V5ID09PSAnc2hhcmVkLWNoZWNrcG9pbnQtdjEnKSB7XG4gICAgICAgIHRoaXMubWVyZ2VDaGVja3BvaW50KHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAoa2V5LnN0YXJ0c1dpdGgoUkVDT1JEX1BSRUZJWCkpIHtcbiAgICAgICAgdGhpcy5yZXBsaWNhLmFwcGx5KHZhbHVlKTtcbiAgICAgICAgdGhpcy5sb2NhbFJlY29yZHMuc2V0KGtleSwgZW5zdXJlTm9uTnVsbGFibGUoSlNPTi5zdHJpbmdpZnkodmFsdWUpKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZUNoZWNrcG9pbnQodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhaXNPYmplY3QodmFsdWUpIHx8IHZhbHVlWydmb3JtYXQnXSAhPT0gMSB8fCB2YWx1ZVsna2luZCddICE9PSB0aGlzLnBhcmFtcy5raW5kXG4gICAgICB8fCAhQXJyYXkuaXNBcnJheSh2YWx1ZVsnb3BlcmF0aW9ucyddKSB8fCAhdmFsdWVbJ29wZXJhdGlvbnMnXS5ldmVyeShpc0RhdGFTdG9yZU9wZXJhdGlvbilcbiAgICAgIHx8ICFpc1ZlY3Rvcih2YWx1ZVsndmVjdG9yJ10pIHx8ICFOdW1iZXIuaXNTYWZlSW50ZWdlcih2YWx1ZVsndGltZSddKSB8fCAhTnVtYmVyLmlzU2FmZUludGVnZXIodmFsdWVbJ2NvdW50ZXInXSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRhLXN0b3JlIGNoZWNrcG9pbnQgb3IgaW5jb21wYXRpYmxlIG1lcmdlIHJ1bGUnKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBvcGVyYXRpb24gb2YgdmFsdWVbJ29wZXJhdGlvbnMnXSkge1xuICAgICAgdGhpcy5yZXBsaWNhLmFwcGx5KG9wZXJhdGlvbik7XG4gICAgfVxuICAgIGZvciAoY29uc3QgW2RldmljZSwgc2VxdWVuY2VdIG9mIHZhbHVlWyd2ZWN0b3InXSkge1xuICAgICAgdGhpcy52ZWN0b3Iuc2V0KGRldmljZSwgTWF0aC5tYXgoc2VxdWVuY2UsIHRoaXMudmVjdG9yLmdldChkZXZpY2UpID8/IDApKTtcbiAgICB9XG4gICAgdGhpcy5vYnNlcnZlQ2xvY2soTnVtYmVyKHZhbHVlWyd0aW1lJ10pLCBOdW1iZXIodmFsdWVbJ2NvdW50ZXInXSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBtZXJnZUZpbGVzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGFsbEZpbGVzID0gYXdhaXQgdGhpcy50cmFuc3BvcnQubGlzdCgpO1xuICAgIGNvbnN0IGZpbGVzID0gYWxsRmlsZXMuZmlsdGVyKChwYXRoKSA9PiBwYXRoLnN0YXJ0c1dpdGgoYCR7dGhpcy50cmFuc3BvcnQucm9vdH0vZGV2aWNlcy9gKSk7XG4gICAgY29uc3QgbWFuaWZlc3RzID0gZmlsZXMuZmlsdGVyKChmaWxlKSA9PiAvXFwvc25hcHNob3QtW1xcdy1dKy1tYW5pZmVzdFxcLm1kJC8udGVzdChmaWxlKSk7XG4gICAgZm9yIChjb25zdCBwYXRoIG9mIG1hbmlmZXN0cykge1xuICAgICAgY29uc3Qgc25hcHNob3QgPSBhd2FpdCB0aGlzLnRyYW5zcG9ydC5yZWFkU25hcHNob3QocGF0aCk7XG4gICAgICBpZiAoc25hcHNob3QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLm1lcmdlQ2hlY2twb2ludChzbmFwc2hvdCk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG9wZXJhdGlvbnM6IERhdGFTdG9yZU9wZXJhdGlvbltdID0gW107XG4gICAgY29uc3Qgc2VnbWVudHMgPSBmaWxlcy5maWx0ZXIoKGZpbGUpID0+IC9cXC9sb2ctXFxkK1xcLm1kJC8udGVzdChmaWxlKSk7XG4gICAgZm9yIChjb25zdCBwYXRoIG9mIHNlZ21lbnRzKSB7XG4gICAgICBjb25zdCBzZWdtZW50ID0gYXdhaXQgdGhpcy50cmFuc3BvcnQucmVhZChwYXRoKTtcbiAgICAgIGlmIChzZWdtZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc2VnbWVudCkgfHwgIXNlZ21lbnQuZXZlcnkoaXNEYXRhU3RvcmVPcGVyYXRpb24pKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRhLXN0b3JlIGpvdXJuYWwgc2VnbWVudCcpO1xuICAgICAgfVxuICAgICAgY29uc3Qgb3duZXIgPSBwYXRoLnNwbGl0KCcvJykuYXQoT1dORVJfUEFUSF9JTkRFWCk7XG4gICAgICBpZiAoc2VnbWVudC5zb21lKChvcGVyYXRpb24pID0+IG9wZXJhdGlvbi5kZXZpY2UgIT09IG93bmVyKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0pvdXJuYWwgc2VnbWVudCBoYXMgYSBkaWZmZXJlbnQgd3JpdGVyJyk7XG4gICAgICB9XG4gICAgICBvcGVyYXRpb25zLnB1c2goLi4uc2VnbWVudCk7XG4gICAgfVxuICAgIG9wZXJhdGlvbnMuc29ydCgoZmlyc3QsIHNlY29uZCkgPT4gZmlyc3QuZGV2aWNlLmxvY2FsZUNvbXBhcmUoc2Vjb25kLmRldmljZSkgfHwgZmlyc3Quc2VxdWVuY2UgLSBzZWNvbmQuc2VxdWVuY2UpO1xuICAgIGZvciAoY29uc3Qgb3BlcmF0aW9uIG9mIG9wZXJhdGlvbnMpIHtcbiAgICAgIGlmIChvcGVyYXRpb24uc2VxdWVuY2UgPT09ICh0aGlzLnZlY3Rvci5nZXQob3BlcmF0aW9uLmRldmljZSkgPz8gMCkgKyAxKSB7XG4gICAgICAgIHRoaXMuYXBwbHkob3BlcmF0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVDbG9jayh0aW1lOiBudW1iZXIsIGNvdW50ZXI6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aW1lID4gdGhpcy50aW1lKSB7XG4gICAgICB0aGlzLnRpbWUgPSB0aW1lO1xuICAgICAgdGhpcy5jb3VudGVyID0gY291bnRlcjtcbiAgICB9IGVsc2UgaWYgKHRpbWUgPT09IHRoaXMudGltZSkge1xuICAgICAgdGhpcy5jb3VudGVyID0gTWF0aC5tYXgodGhpcy5jb3VudGVyLCBjb3VudGVyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHBlcnNpc3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY2hlY2twb2ludCA9IHRoaXMuY2hlY2twb2ludCgpO1xuICAgIGNvbnN0IHJlY29yZHMgPSBuZXcgTWFwPHN0cmluZywgRGF0YVN0b3JlT3BlcmF0aW9uPigpO1xuICAgIGZvciAoY29uc3Qgb3BlcmF0aW9uIG9mIGNoZWNrcG9pbnQub3BlcmF0aW9ucykge1xuICAgICAgY29uc3QgaWRlbnRpdHkgPSB0aGlzLnBhcmFtcy5raW5kID09PSAnb2JzZXJ2ZWQtcmVtb3ZlLXNldCcgPyBgJHtvcGVyYXRpb24uZGV2aWNlfToke1N0cmluZyhvcGVyYXRpb24uc2VxdWVuY2UpfWAgOiBvcGVyYXRpb24ua2V5O1xuICAgICAgcmVjb3Jkcy5zZXQoYCR7UkVDT1JEX1BSRUZJWH0ke2lkZW50aXR5fWAsIG9wZXJhdGlvbik7XG4gICAgfVxuICAgIGNvbnN0IGVudHJpZXM6IFtzdHJpbmcsIHVua25vd25dW10gPSBbLi4ucmVjb3Jkc10uZmlsdGVyKChba2V5LCB2YWx1ZV0pID0+IHRoaXMubG9jYWxSZWNvcmRzLmdldChrZXkpICE9PSBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgIGNvbnN0IHJlbW92ZWRLZXlzID0gWy4uLnRoaXMubG9jYWxSZWNvcmRzLmtleXMoKV0uZmlsdGVyKChrZXkpID0+ICFyZWNvcmRzLmhhcyhrZXkpKTtcbiAgICBlbnRyaWVzLnB1c2goWydzaGFyZWQtY2hlY2twb2ludC12MScsIHsgLi4uY2hlY2twb2ludCwgb3BlcmF0aW9uczogW10gfV0pO1xuICAgIGF3YWl0IHRoaXMucGFyYW1zLmxvY2FsLmNvbW1pdCh7IGVudHJpZXMsIHJlbW92ZWRLZXlzIH0pO1xuICAgIGF3YWl0IHRoaXMudHJhbnNwb3J0LndyaXRlKGAke3RoaXMuZGV2aWNlUm9vdCgpfS9oYXZlLm1kYCwgeyBmb3JtYXQ6IDEsIHRpbWU6IERhdGUubm93KCksIHZlY3RvcjogWy4uLnRoaXMudmVjdG9yXSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHVibGlzaChvcGVyYXRpb25zOiBEYXRhU3RvcmVPcGVyYXRpb25bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZpcnN0ID0gZW5zdXJlTm9uTnVsbGFibGUob3BlcmF0aW9uc1swXSk7XG4gICAgYXdhaXQgdGhpcy50cmFuc3BvcnQud3JpdGUoYCR7dGhpcy5kZXZpY2VSb290KCl9L2xvZy0ke1N0cmluZyhmaXJzdC5zZXF1ZW5jZSl9Lm1kYCwgb3BlcmF0aW9ucyk7XG4gICAgZm9yIChjb25zdCBvcGVyYXRpb24gb2Ygb3BlcmF0aW9ucykge1xuICAgICAgdGhpcy5hcHBseShvcGVyYXRpb24pO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpO1xufVxuXG5mdW5jdGlvbiBpc1ZlY3Rvcih2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFZlcnNpb25WZWN0b3Ige1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUuZXZlcnkoKGVudHJ5OiB1bmtub3duKSA9PlxuICAgIEFycmF5LmlzQXJyYXkoZW50cnkpICYmIGVudHJ5Lmxlbmd0aCA9PT0gVkVDVE9SX0VOVFJZX0xFTkdUSFxuICAgICYmIHR5cGVvZiBlbnRyeVswXSA9PT0gJ3N0cmluZycgJiYgL15bXFx3LV0rJC8udGVzdChlbnRyeVswXSkgJiYgTnVtYmVyLmlzU2FmZUludGVnZXIoZW50cnlbMV0pICYmIE51bWJlcihlbnRyeVsxXSkgPj0gMFxuICApO1xufVxuXG4vKiBlc2xpbnQtZW5hYmxlIG4vbm8tdW5zdXBwb3J0ZWQtZmVhdHVyZXMvbm9kZS1idWlsdGlucyAtLSBUaGVzZSBhcmUgT2JzaWRpYW4gcmVuZGVyZXIgV2ViIEFQSXMsIG5vdCBOb2RlIGJ1aWx0aW5zLiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUEseUJBQWtDO0FBUWxDLGdDQUdPO0FBQ1Asa0NBQW1DO0FBRW5DLE1BQU0scUNBQXFDO0FBRTNDLE1BQU0sbUJBQW1CO0FBRXpCLE1BQU0sc0JBQXNCO0FBQzVCLE1BQU0sb0JBQW9CO0FBQzFCLE1BQU0sZ0JBQWdCO0FBbUVmLE1BQU0sZ0JBQWdCO0FBQUEsRUFTbkIsWUFBK0IsUUFBc0QsUUFBZ0I7QUFBdEU7QUFBc0Q7QUFDM0YsU0FBSyxZQUFZLElBQUksK0NBQW1CLE1BQU07QUFDOUMsU0FBSyxVQUFVLElBQUksMkNBQWlCLE9BQU8sSUFBSTtBQUMvQyxTQUFLLDJCQUEyQixPQUFPLDRCQUE0QjtBQUNuRSxRQUFJLENBQUMsT0FBTyxTQUFTLEtBQUssd0JBQXdCLEtBQUssS0FBSyw0QkFBNEIsR0FBRztBQUN6RixZQUFNLElBQUksTUFBTSw2Q0FBNkM7QUFBQSxJQUMvRDtBQUFBLEVBQ0Y7QUFBQSxFQVB1QztBQUFBLEVBQXNEO0FBQUEsRUFSNUU7QUFBQSxFQUNULFVBQVU7QUFBQSxFQUNELGVBQWUsb0JBQUksSUFBb0I7QUFBQSxFQUNoRDtBQUFBLEVBQ0EsT0FBTztBQUFBLEVBQ0U7QUFBQSxFQUNBLFNBQVMsb0JBQUksSUFBb0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWlCbEQsYUFBb0IsS0FBSyxRQUE2RDtBQUNwRixVQUFNLFNBQVMsTUFBTSxPQUFPLE1BQU0sWUFBWSxvQkFBb0IsT0FBTyxPQUFPLFdBQVcsQ0FBQztBQUM1RixRQUFJLE9BQU8sV0FBVyxZQUFZLENBQUMsV0FBVyxLQUFLLE1BQU0sR0FBRztBQUMxRCxZQUFNLElBQUksTUFBTSxtQ0FBbUM7QUFBQSxJQUNyRDtBQUNBLFVBQU0sUUFBUSxJQUFJLGdCQUFnQixRQUFRLE1BQU07QUFDaEQsVUFBTSxNQUFNLFlBQVk7QUFDeEIsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE1BQWEsVUFBeUI7QUFDcEMsVUFBTSxLQUFLLE9BQU8sTUFBTSxVQUFVLFlBQVk7QUFDNUMsWUFBTSxLQUFLLFVBQVU7QUFDckIsWUFBTSxLQUFLLFdBQVc7QUFDdEIsWUFBTSxLQUFLLFFBQVE7QUFDbkIsWUFBTSxRQUFRLE1BQU0sS0FBSyxVQUFVLEtBQUs7QUFDeEMsWUFBTSxPQUFPLEdBQUcsS0FBSyxXQUFXLENBQUMsYUFBYSxPQUFPLE9BQU8sV0FBVyxDQUFDO0FBQ3hFLFlBQU0sS0FBSyxVQUFVLGNBQWMsRUFBRSxNQUFNLFNBQVMsS0FBSyxXQUFXLEVBQUUsQ0FBQztBQUN2RSxZQUFNLG1CQUFtQixNQUFNLEtBQUssaUJBQWlCLEtBQUs7QUFDMUQsaUJBQVcsUUFBUSxPQUFPO0FBQ3hCLFlBQUksQ0FBQyxLQUFLLFdBQVcsR0FBRyxLQUFLLFdBQVcsQ0FBQyxPQUFPLEdBQUc7QUFDakQ7QUFBQSxRQUNGO0FBQ0EsY0FBTSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssSUFBSTtBQUNqRCxZQUFJLENBQUMsTUFBTSxRQUFRLFVBQVUsS0FBSyxDQUFDLFdBQVcsTUFBTSw4Q0FBb0IsR0FBRztBQUN6RTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLE9BQU8sS0FBSyxJQUFJLEdBQUcsV0FBVyxJQUFJLENBQUMsY0FBYyxVQUFVLFFBQVEsQ0FBQztBQUMxRSxZQUFJLGlCQUFpQixNQUFNLENBQUMsWUFBWSxPQUFPLElBQUksS0FBSyxNQUFNLEtBQUssTUFBTSxJQUFJLEdBQUc7QUFDOUUsZ0JBQU0sS0FBSyxVQUFVLE9BQU8sSUFBSTtBQUFBLFFBQ2xDO0FBQUEsTUFDRjtBQUVBLGlCQUFXLFFBQVEsT0FBTztBQUN4QixZQUFJLEtBQUssV0FBVyxHQUFHLEtBQUssV0FBVyxDQUFDLFlBQVksR0FBRztBQUNyRCxnQkFBTSxLQUFLLFVBQVUsT0FBTyxJQUFJO0FBQUEsUUFDbEM7QUFBQSxNQUNGO0FBQUEsSUFDRixDQUFDO0FBQUEsRUFDSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUUEsTUFBYSxPQUFPLEtBQTRCO0FBQzlDLFVBQU0sS0FBSyxPQUFPLENBQUMsRUFBRSxTQUFTLE1BQU0sS0FBSyxPQUFPLEtBQUssQ0FBQyxDQUFDO0FBQUEsRUFDekQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxVQUErQjtBQUNwQyxXQUFPLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFDOUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLElBQUksS0FBc0I7QUFDL0IsV0FBTyxLQUFLLFFBQVEsSUFBSSxHQUFHO0FBQUEsRUFDN0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU0EsTUFBYSxJQUFJLEtBQWEsT0FBaUM7QUFDN0QsVUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7QUFBQSxFQUNuQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTQSxNQUFhLFFBQVEsU0FBbUU7QUFDdEYsVUFBTSxLQUFLLE9BQU8sUUFBUSxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxFQUFFLFNBQVMsT0FBTyxLQUFLLE1BQU0sRUFBRSxDQUFDO0FBQUEsRUFDbkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE1BQWEsY0FBNkI7QUFDeEMsVUFBTSxLQUFLLE9BQU8sTUFBTSxVQUFVLFlBQVk7QUFDNUMsWUFBTSxLQUFLLFVBQVU7QUFDckIsWUFBTSxLQUFLLFdBQVc7QUFDdEIsWUFBTSxLQUFLLFFBQVE7QUFBQSxJQUNyQixDQUFDO0FBQUEsRUFDSDtBQUFBLEVBRUEsTUFBYyxpQkFBaUIsT0FBMEQ7QUFDdkYsVUFBTSxtQkFBbUIsQ0FBQyxJQUFJLElBQUksS0FBSyxNQUFNLENBQUM7QUFDOUMsVUFBTSxjQUFjLE1BQU0sT0FBTyxDQUFDLFNBQVMsS0FBSyxXQUFXLEdBQUcsS0FBSyxVQUFVLElBQUksV0FBVyxDQUFDO0FBQzdGLFVBQU0sVUFBVSxJQUFJLElBQUksWUFBWSxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sS0FBSyxVQUFVLEtBQUssU0FBUyxDQUFDLEVBQUUsTUFBTSxLQUFLLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxXQUFXLFdBQVcsTUFBUyxDQUFDO0FBQ3ZLLGVBQVcsVUFBVSxTQUFTO0FBQzVCLFVBQUksV0FBVyxLQUFLLFFBQVE7QUFDMUI7QUFBQSxNQUNGO0FBQ0EsWUFBTSxPQUFPLE1BQU0sS0FBSyxVQUFVLEtBQUssR0FBRyxLQUFLLFVBQVUsSUFBSSxZQUFZLE1BQU0sVUFBVTtBQUN6RixVQUFJLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDLEtBQUssT0FBTyxLQUFLLE1BQU0sTUFBTSxVQUFVO0FBQ3BGLHlCQUFpQixLQUFLLG9CQUFJLElBQUksQ0FBQztBQUFBLE1BQ2pDLFdBQVcsS0FBSyxJQUFJLElBQUksS0FBSyxNQUFNLEtBQUssS0FBSywwQkFBMEI7QUFDckUseUJBQWlCLEtBQUssSUFBSSxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7QUFBQSxNQUMvQztBQUFBLElBQ0Y7QUFDQSxXQUFPO0FBQUEsRUFDVDtBQUFBLEVBRVEsTUFBTSxXQUFxQztBQUNqRCxTQUFLLFFBQVEsTUFBTSxTQUFTO0FBQzVCLFNBQUssT0FBTyxJQUFJLFVBQVUsUUFBUSxVQUFVLFFBQVE7QUFDcEQsU0FBSyxhQUFhLFVBQVUsTUFBTSxVQUFVLE9BQU87QUFBQSxFQUNyRDtBQUFBLEVBRUEsTUFBYyxPQUFPLFNBQTJDO0FBQzlELFVBQU0sS0FBSyxPQUFPLE1BQU0sVUFBVSxZQUFZO0FBQzVDLFlBQU0sS0FBSyxVQUFVO0FBQ3JCLFlBQU0sS0FBSyxXQUFXO0FBQ3RCLFlBQU0sYUFBbUMsQ0FBQztBQUMxQyxZQUFNLFlBQVksSUFBSSwyQ0FBaUIsS0FBSyxPQUFPLElBQUk7QUFDdkQsaUJBQVcsYUFBYSxLQUFLLFFBQVEsT0FBTyxHQUFHO0FBQzdDLGtCQUFVLE1BQU0sU0FBUztBQUFBLE1BQzNCO0FBQ0EsVUFBSSxXQUFXLEtBQUssT0FBTyxJQUFJLEtBQUssTUFBTSxLQUFLO0FBQy9DLGlCQUFXLFVBQVUsU0FBUztBQUM1QixjQUFNLE1BQU0sS0FBSyxJQUFJO0FBQ3JCLGFBQUssVUFBVSxNQUFNLEtBQUssT0FBTyxJQUFJLEtBQUssVUFBVTtBQUNwRCxhQUFLLE9BQU8sS0FBSyxJQUFJLEtBQUssS0FBSyxJQUFJO0FBQ25DLGNBQU0sWUFBZ0M7QUFBQSxVQUNwQyxHQUFHO0FBQUEsVUFDSCxTQUFTLEtBQUs7QUFBQSxVQUNkLFFBQVEsS0FBSztBQUFBLFVBQ2IsVUFBVSxFQUFFO0FBQUEsVUFDWixNQUFNLFVBQVUsYUFBYSxPQUFPLEdBQUc7QUFBQSxVQUN2QyxNQUFNLEtBQUs7QUFBQSxRQUNiO0FBQ0Esa0JBQVUsTUFBTSxTQUFTO0FBQ3pCLG1CQUFXLEtBQUssU0FBUztBQUFBLE1BQzNCO0FBRUEsaUJBQVcsYUFBYSxZQUFZO0FBQ2xDLFlBQUksQ0FBQyxLQUFLLFVBQVUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHO0FBQ3JDLGdCQUFNLEtBQUssVUFBVSxNQUFNLEdBQUcsS0FBSyxXQUFXLENBQUMsUUFBUSxPQUFPLFVBQVUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7QUFBQSxRQUNyRztBQUFBLE1BQ0Y7QUFDQSxVQUFJLFFBQThCLENBQUM7QUFDbkMsaUJBQVcsYUFBYSxZQUFZO0FBQ2xDLFlBQUksQ0FBQyxLQUFLLFVBQVUsS0FBSyxDQUFDLEdBQUcsT0FBTyxTQUFTLENBQUMsR0FBRztBQUMvQyxnQkFBTSxLQUFLLFFBQVEsS0FBSztBQUN4QixrQkFBUSxDQUFDO0FBQUEsUUFDWDtBQUNBLGNBQU0sS0FBSyxTQUFTO0FBQUEsTUFDdEI7QUFDQSxVQUFJLE1BQU0sU0FBUyxHQUFHO0FBQ3BCLGNBQU0sS0FBSyxRQUFRLEtBQUs7QUFBQSxNQUMxQjtBQUNBLFlBQU0sS0FBSyxRQUFRO0FBQUEsSUFDckIsQ0FBQztBQUFBLEVBQ0g7QUFBQSxFQUVRLGFBQXlCO0FBQy9CLFdBQU8sRUFBRSxTQUFTLEtBQUssU0FBUyxRQUFRLEdBQUcsTUFBTSxLQUFLLE9BQU8sTUFBTSxZQUFZLEtBQUssUUFBUSxPQUFPLEdBQUcsTUFBTSxLQUFLLE1BQU0sUUFBUSxDQUFDLEdBQUcsS0FBSyxNQUFNLEVBQUU7QUFBQSxFQUNsSjtBQUFBLEVBRVEsYUFBcUI7QUFDM0IsV0FBTyxHQUFHLEtBQUssVUFBVSxJQUFJLFlBQVksS0FBSyxNQUFNO0FBQUEsRUFDdEQ7QUFBQSxFQUVBLE1BQWMsWUFBMkI7QUFDdkMsU0FBSyxVQUFVLElBQUksMkNBQWlCLEtBQUssT0FBTyxJQUFJO0FBQ3BELFNBQUssT0FBTyxNQUFNO0FBQ2xCLFNBQUssT0FBTztBQUNaLFNBQUssVUFBVTtBQUNmLFNBQUssYUFBYSxNQUFNO0FBQ3hCLFVBQU0sVUFBVSxNQUFNLEtBQUssT0FBTyxNQUFNLFFBQVE7QUFDaEQsZUFBVyxDQUFDLEtBQUssS0FBSyxLQUFLLFNBQVM7QUFDbEMsVUFBSSxRQUFRLHdCQUF3QjtBQUNsQyxhQUFLLGdCQUFnQixLQUFLO0FBQUEsTUFDNUIsV0FBVyxJQUFJLFdBQVcsYUFBYSxHQUFHO0FBQ3hDLGFBQUssUUFBUSxNQUFNLEtBQUs7QUFDeEIsYUFBSyxhQUFhLElBQUksU0FBSyxzQ0FBa0IsS0FBSyxVQUFVLEtBQUssQ0FBQyxDQUFDO0FBQUEsTUFDckU7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBRVEsZ0JBQWdCLE9BQXNCO0FBQzVDLFFBQ0UsQ0FBQyxTQUFTLEtBQUssS0FBSyxNQUFNLFFBQVEsTUFBTSxLQUFLLE1BQU0sTUFBTSxNQUFNLEtBQUssT0FBTyxRQUN4RSxDQUFDLE1BQU0sUUFBUSxNQUFNLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxZQUFZLEVBQUUsTUFBTSw4Q0FBb0IsS0FDdEYsQ0FBQyxTQUFTLE1BQU0sUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLGNBQWMsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sY0FBYyxNQUFNLFNBQVMsQ0FBQyxHQUMvRztBQUNBLFlBQU0sSUFBSSxNQUFNLDBEQUEwRDtBQUFBLElBQzVFO0FBQ0EsZUFBVyxhQUFhLE1BQU0sWUFBWSxHQUFHO0FBQzNDLFdBQUssUUFBUSxNQUFNLFNBQVM7QUFBQSxJQUM5QjtBQUNBLGVBQVcsQ0FBQyxRQUFRLFFBQVEsS0FBSyxNQUFNLFFBQVEsR0FBRztBQUNoRCxXQUFLLE9BQU8sSUFBSSxRQUFRLEtBQUssSUFBSSxVQUFVLEtBQUssT0FBTyxJQUFJLE1BQU0sS0FBSyxDQUFDLENBQUM7QUFBQSxJQUMxRTtBQUNBLFNBQUssYUFBYSxPQUFPLE1BQU0sTUFBTSxDQUFDLEdBQUcsT0FBTyxNQUFNLFNBQVMsQ0FBQyxDQUFDO0FBQUEsRUFDbkU7QUFBQSxFQUVBLE1BQWMsYUFBNEI7QUFDeEMsVUFBTSxXQUFXLE1BQU0sS0FBSyxVQUFVLEtBQUs7QUFDM0MsVUFBTSxRQUFRLFNBQVMsT0FBTyxDQUFDLFNBQVMsS0FBSyxXQUFXLEdBQUcsS0FBSyxVQUFVLElBQUksV0FBVyxDQUFDO0FBQzFGLFVBQU0sWUFBWSxNQUFNLE9BQU8sQ0FBQyxTQUFTLGtDQUFrQyxLQUFLLElBQUksQ0FBQztBQUNyRixlQUFXLFFBQVEsV0FBVztBQUM1QixZQUFNLFdBQVcsTUFBTSxLQUFLLFVBQVUsYUFBYSxJQUFJO0FBQ3ZELFVBQUksYUFBYSxRQUFXO0FBQzFCLGFBQUssZ0JBQWdCLFFBQVE7QUFBQSxNQUMvQjtBQUFBLElBQ0Y7QUFDQSxVQUFNLGFBQW1DLENBQUM7QUFDMUMsVUFBTSxXQUFXLE1BQU0sT0FBTyxDQUFDLFNBQVMsaUJBQWlCLEtBQUssSUFBSSxDQUFDO0FBQ25FLGVBQVcsUUFBUSxVQUFVO0FBQzNCLFlBQU0sVUFBVSxNQUFNLEtBQUssVUFBVSxLQUFLLElBQUk7QUFDOUMsVUFBSSxZQUFZLFFBQVc7QUFDekI7QUFBQSxNQUNGO0FBQ0EsVUFBSSxDQUFDLE1BQU0sUUFBUSxPQUFPLEtBQUssQ0FBQyxRQUFRLE1BQU0sOENBQW9CLEdBQUc7QUFDbkUsY0FBTSxJQUFJLE1BQU0sb0NBQW9DO0FBQUEsTUFDdEQ7QUFDQSxZQUFNLFFBQVEsS0FBSyxNQUFNLEdBQUcsRUFBRSxHQUFHLGdCQUFnQjtBQUNqRCxVQUFJLFFBQVEsS0FBSyxDQUFDLGNBQWMsVUFBVSxXQUFXLEtBQUssR0FBRztBQUMzRCxjQUFNLElBQUksTUFBTSx3Q0FBd0M7QUFBQSxNQUMxRDtBQUNBLGlCQUFXLEtBQUssR0FBRyxPQUFPO0FBQUEsSUFDNUI7QUFDQSxlQUFXLEtBQUssQ0FBQyxPQUFPLFdBQVcsTUFBTSxPQUFPLGNBQWMsT0FBTyxNQUFNLEtBQUssTUFBTSxXQUFXLE9BQU8sUUFBUTtBQUNoSCxlQUFXLGFBQWEsWUFBWTtBQUNsQyxVQUFJLFVBQVUsY0FBYyxLQUFLLE9BQU8sSUFBSSxVQUFVLE1BQU0sS0FBSyxLQUFLLEdBQUc7QUFDdkUsYUFBSyxNQUFNLFNBQVM7QUFBQSxNQUN0QjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFFUSxhQUFhLE1BQWMsU0FBdUI7QUFDeEQsUUFBSSxPQUFPLEtBQUssTUFBTTtBQUNwQixXQUFLLE9BQU87QUFDWixXQUFLLFVBQVU7QUFBQSxJQUNqQixXQUFXLFNBQVMsS0FBSyxNQUFNO0FBQzdCLFdBQUssVUFBVSxLQUFLLElBQUksS0FBSyxTQUFTLE9BQU87QUFBQSxJQUMvQztBQUFBLEVBQ0Y7QUFBQSxFQUVBLE1BQWMsVUFBeUI7QUFDckMsVUFBTSxhQUFhLEtBQUssV0FBVztBQUNuQyxVQUFNLFVBQVUsb0JBQUksSUFBZ0M7QUFDcEQsZUFBVyxhQUFhLFdBQVcsWUFBWTtBQUM3QyxZQUFNLFdBQVcsS0FBSyxPQUFPLFNBQVMsd0JBQXdCLEdBQUcsVUFBVSxNQUFNLElBQUksT0FBTyxVQUFVLFFBQVEsQ0FBQyxLQUFLLFVBQVU7QUFDOUgsY0FBUSxJQUFJLEdBQUcsYUFBYSxHQUFHLFFBQVEsSUFBSSxTQUFTO0FBQUEsSUFDdEQ7QUFDQSxVQUFNLFVBQStCLENBQUMsR0FBRyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxLQUFLLE1BQU0sS0FBSyxhQUFhLElBQUksR0FBRyxNQUFNLEtBQUssVUFBVSxLQUFLLENBQUM7QUFDL0gsVUFBTSxjQUFjLENBQUMsR0FBRyxLQUFLLGFBQWEsS0FBSyxDQUFDLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksR0FBRyxDQUFDO0FBQ25GLFlBQVEsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEdBQUcsWUFBWSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDeEUsVUFBTSxLQUFLLE9BQU8sTUFBTSxPQUFPLEVBQUUsU0FBUyxZQUFZLENBQUM7QUFDdkQsVUFBTSxLQUFLLFVBQVUsTUFBTSxHQUFHLEtBQUssV0FBVyxDQUFDLFlBQVksRUFBRSxRQUFRLEdBQUcsTUFBTSxLQUFLLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxLQUFLLE1BQU0sRUFBRSxDQUFDO0FBQUEsRUFDdEg7QUFBQSxFQUVBLE1BQWMsUUFBUSxZQUFpRDtBQUNyRSxVQUFNLFlBQVEsc0NBQWtCLFdBQVcsQ0FBQyxDQUFDO0FBQzdDLFVBQU0sS0FBSyxVQUFVLE1BQU0sR0FBRyxLQUFLLFdBQVcsQ0FBQyxRQUFRLE9BQU8sTUFBTSxRQUFRLENBQUMsT0FBTyxVQUFVO0FBQzlGLGVBQVcsYUFBYSxZQUFZO0FBQ2xDLFdBQUssTUFBTSxTQUFTO0FBQUEsSUFDdEI7QUFBQSxFQUNGO0FBQ0Y7QUFFQSxTQUFTLFNBQVMsT0FBa0Q7QUFDbEUsU0FBTyxPQUFPLFVBQVUsWUFBWSxVQUFVLFFBQVEsQ0FBQyxNQUFNLFFBQVEsS0FBSztBQUM1RTtBQUVBLFNBQVMsU0FBUyxPQUF3QztBQUN4RCxTQUFPLE1BQU0sUUFBUSxLQUFLLEtBQUssTUFBTTtBQUFBLElBQU0sQ0FBQyxVQUMxQyxNQUFNLFFBQVEsS0FBSyxLQUFLLE1BQU0sV0FBVyx1QkFDdEMsT0FBTyxNQUFNLENBQUMsTUFBTSxZQUFZLFdBQVcsS0FBSyxNQUFNLENBQUMsQ0FBQyxLQUFLLE9BQU8sY0FBYyxNQUFNLENBQUMsQ0FBQyxLQUFLLE9BQU8sTUFBTSxDQUFDLENBQUMsS0FBSztBQUFBLEVBQ3hIO0FBQ0Y7IiwibmFtZXMiOltdfQ==
|
|
@@ -23,7 +23,7 @@ export interface SharedDataStoreOpenParams {
|
|
|
23
23
|
*/
|
|
24
24
|
readonly adapter: DataAdapter;
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
26
|
+
* Vault-relative folder. Hidden segments are allowed; callers must arrange their synchronization.
|
|
27
27
|
*
|
|
28
28
|
* @default `'Plugin data'`
|
|
29
29
|
*/
|
|
@@ -0,0 +1,117 @@
|
|
|
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
|
+
(function patchObsidianRequire() {
|
|
6
|
+
const originalRequire = require;
|
|
7
|
+
if (!originalRequire || originalRequire.__isPatched) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
require = Object.assign(
|
|
11
|
+
(id) => requirePatched(id),
|
|
12
|
+
originalRequire,
|
|
13
|
+
{
|
|
14
|
+
__isPatched: true
|
|
15
|
+
}
|
|
16
|
+
);
|
|
17
|
+
function extractDefault($module) {
|
|
18
|
+
return $module && $module.__esModule && "default" in $module ? $module.default : $module;
|
|
19
|
+
}
|
|
20
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
21
|
+
"@codemirror/autocomplete",
|
|
22
|
+
"@codemirror/collab",
|
|
23
|
+
"@codemirror/commands",
|
|
24
|
+
"@codemirror/language",
|
|
25
|
+
"@codemirror/lint",
|
|
26
|
+
"@codemirror/search",
|
|
27
|
+
"@codemirror/state",
|
|
28
|
+
"@codemirror/text",
|
|
29
|
+
"@codemirror/view",
|
|
30
|
+
"@lezer/common",
|
|
31
|
+
"@lezer/highlight",
|
|
32
|
+
"@lezer/lr",
|
|
33
|
+
"obsidian"
|
|
34
|
+
]);
|
|
35
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
36
|
+
"@codemirror/closebrackets",
|
|
37
|
+
"@codemirror/comment",
|
|
38
|
+
"@codemirror/fold",
|
|
39
|
+
"@codemirror/gutter",
|
|
40
|
+
"@codemirror/highlight",
|
|
41
|
+
"@codemirror/history",
|
|
42
|
+
"@codemirror/matchbrackets",
|
|
43
|
+
"@codemirror/panel",
|
|
44
|
+
"@codemirror/rangeset",
|
|
45
|
+
"@codemirror/rectangular-selection",
|
|
46
|
+
"@codemirror/stream-parser",
|
|
47
|
+
"@codemirror/tooltip"
|
|
48
|
+
]);
|
|
49
|
+
function requirePatched(id) {
|
|
50
|
+
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
51
|
+
return originalRequire?.(id);
|
|
52
|
+
}
|
|
53
|
+
const app = globalThis.app;
|
|
54
|
+
if (app?.isMobile) {
|
|
55
|
+
if (id === "process" || id === "node:process") {
|
|
56
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
57
|
+
return process;
|
|
58
|
+
}
|
|
59
|
+
} else {
|
|
60
|
+
const $module = originalRequire?.(id);
|
|
61
|
+
if ($module) {
|
|
62
|
+
return extractDefault($module);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
66
|
+
return {};
|
|
67
|
+
}
|
|
68
|
+
})();
|
|
69
|
+
|
|
70
|
+
"use strict";
|
|
71
|
+
var __create = Object.create;
|
|
72
|
+
var __defProp = Object.defineProperty;
|
|
73
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
74
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
75
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
76
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
77
|
+
var __export = (target, all) => {
|
|
78
|
+
for (var name in all)
|
|
79
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
80
|
+
};
|
|
81
|
+
var __copyProps = (to, from, except, desc) => {
|
|
82
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
83
|
+
for (let key of __getOwnPropNames(from))
|
|
84
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
85
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
86
|
+
}
|
|
87
|
+
return to;
|
|
88
|
+
};
|
|
89
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
90
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
91
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
92
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
93
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
94
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
95
|
+
mod
|
|
96
|
+
));
|
|
97
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
98
|
+
var desktop_git_runner_exports = {};
|
|
99
|
+
__export(desktop_git_runner_exports, {
|
|
100
|
+
createDesktopGitRunner: () => createDesktopGitRunner
|
|
101
|
+
});
|
|
102
|
+
module.exports = __toCommonJS(desktop_git_runner_exports);
|
|
103
|
+
const GIT_OUTPUT_LIMIT_IN_BYTES = 268435456;
|
|
104
|
+
function createDesktopGitRunner(cwd) {
|
|
105
|
+
return async (arguments_) => {
|
|
106
|
+
const { execFile } = await import("node:child_process");
|
|
107
|
+
const { promisify } = await import("node:util");
|
|
108
|
+
const execFileAsync = promisify(execFile);
|
|
109
|
+
const { stdout } = await execFileAsync("git", [...arguments_], { cwd, encoding: "utf-8", maxBuffer: GIT_OUTPUT_LIMIT_IN_BYTES, windowsHide: true });
|
|
110
|
+
return stdout;
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
114
|
+
0 && (module.exports = {
|
|
115
|
+
createDesktopGitRunner
|
|
116
|
+
});
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXNrdG9wLWdpdC1ydW5uZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIERlc2t0b3AgZ2l0IHJ1bm5lciB3aXRoIE5vZGUgbW9kdWxlcyBsb2FkZWQgb25seSB3aGVuIGEgY29tbWFuZCBydW5zLlxuICovXG5cbmltcG9ydCB0eXBlIHsgR2l0UnVubmVyIH0gZnJvbSAnLi9naXQtcmVuYW1lLWhpc3RvcnkudHMnO1xuXG4vKipcbiAqIExhcmdlIGVub3VnaCBmb3IgdGhlIHJlbmFtZSBoaXN0b3J5IG9mIGFueSB2YXVsdDogYC0tZGlmZi1maWx0ZXI9UmAga2VlcHMgb25seSB0aGUgcmVuYW1lcy4gMjU2IE1pQi5cbiAqL1xuY29uc3QgR0lUX09VVFBVVF9MSU1JVF9JTl9CWVRFUyA9IDI2OF80MzVfNDU2O1xuXG4vKipcbiAqIENyZWF0ZXMgYSB7QGxpbmsgR2l0UnVubmVyfSBmb3IgYSBmb2xkZXIuXG4gKlxuICogQ2FsbCB0aGUgcnVubmVyIG9ubHkgb24gZGVza3RvcCwgYmVoaW5kIGBQbGF0Zm9ybS5pc0Rlc2t0b3BBcHBgLiBJbXBvcnRpbmcgdGhpcyBtb2R1bGUgYW5kIGNyZWF0aW5nIGFcbiAqIHJ1bm5lciBhcmUgc2FmZSBvbiBtb2JpbGU6IE5vZGUgbW9kdWxlcyBsb2FkIG9ubHkgd2hlbiB0aGUgcnVubmVyIGV4ZWN1dGVzIGEgY29tbWFuZC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGZvbGRlciB0byBydW4gYGdpdGAgaW4uXG4gKiBAcmV0dXJucyBUaGUgcnVubmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGVza3RvcEdpdFJ1bm5lcihjd2Q6IHN0cmluZyk6IEdpdFJ1bm5lciB7XG4gIHJldHVybiBhc3luYyAoYXJndW1lbnRzXykgPT4ge1xuICAgIGNvbnN0IHsgZXhlY0ZpbGUgfSA9IGF3YWl0IGltcG9ydCgnbm9kZTpjaGlsZF9wcm9jZXNzJyk7XG4gICAgY29uc3QgeyBwcm9taXNpZnkgfSA9IGF3YWl0IGltcG9ydCgnbm9kZTp1dGlsJyk7XG4gICAgY29uc3QgZXhlY0ZpbGVBc3luYyA9IHByb21pc2lmeShleGVjRmlsZSk7XG4gICAgY29uc3QgeyBzdGRvdXQgfSA9IGF3YWl0IGV4ZWNGaWxlQXN5bmMoJ2dpdCcsIFsuLi5hcmd1bWVudHNfXSwgeyBjd2QsIGVuY29kaW5nOiAndXRmLTgnLCBtYXhCdWZmZXI6IEdJVF9PVVRQVVRfTElNSVRfSU5fQllURVMsIHdpbmRvd3NIaWRlOiB0cnVlIH0pO1xuICAgIHJldHVybiBzdGRvdXQ7XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0EsTUFBTSw0QkFBNEI7QUFXM0IsU0FBUyx1QkFBdUIsS0FBd0I7QUFDN0QsU0FBTyxPQUFPLGVBQWU7QUFDM0IsVUFBTSxFQUFFLFNBQVMsSUFBSSxNQUFNLE9BQU8sb0JBQW9CO0FBQ3RELFVBQU0sRUFBRSxVQUFVLElBQUksTUFBTSxPQUFPLFdBQVc7QUFDOUMsVUFBTSxnQkFBZ0IsVUFBVSxRQUFRO0FBQ3hDLFVBQU0sRUFBRSxPQUFPLElBQUksTUFBTSxjQUFjLE9BQU8sQ0FBQyxHQUFHLFVBQVUsR0FBRyxFQUFFLEtBQUssVUFBVSxTQUFTLFdBQVcsMkJBQTJCLGFBQWEsS0FBSyxDQUFDO0FBQ2xKLFdBQU87QUFBQSxFQUNUO0FBQ0Y7IiwibmFtZXMiOltdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference path="./library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Desktop git runner with Node modules loaded only when a command runs.
|
|
6
|
+
*/
|
|
7
|
+
import type { GitRunner } from './git-rename-history.cjs';
|
|
8
|
+
/**
|
|
9
|
+
* Creates a {@link GitRunner} for a folder.
|
|
10
|
+
*
|
|
11
|
+
* Call the runner only on desktop, behind `Platform.isDesktopApp`. Importing this module and creating a
|
|
12
|
+
* runner are safe on mobile: Node modules load only when the runner executes a command.
|
|
13
|
+
*
|
|
14
|
+
* @param cwd - The folder to run `git` in.
|
|
15
|
+
* @returns The runner.
|
|
16
|
+
*/
|
|
17
|
+
export declare function createDesktopGitRunner(cwd: string): GitRunner;
|