obsidian-integration-testing 14.1.0 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/lib/cjs/appium-dependencies.cjs +2 -5
- package/dist/lib/cjs/appium-server-marker.cjs +3 -9
- package/dist/lib/cjs/asar-fallback-detection.cjs +2 -5
- package/dist/lib/cjs/avd-probe-verdict.cjs +3 -9
- package/dist/lib/cjs/capture-obsidian-screenshot.cjs +9 -1
- package/dist/lib/cjs/capture-obsidian-screenshot.d.cts +21 -0
- package/dist/lib/cjs/capture-screenshot.cjs +2 -5
- package/dist/lib/cjs/cli.cjs +2 -5
- package/dist/lib/cjs/demo-vault-populate.cjs +7 -9
- package/dist/lib/cjs/device-setting-restore.cjs +2 -5
- package/dist/lib/cjs/electron-compatibility.cjs +8 -11
- package/dist/lib/cjs/emulator-arguments.cjs +14 -14
- package/dist/lib/cjs/emulator-marker.cjs +4 -13
- package/dist/lib/cjs/emulator-reaper.cjs +2 -5
- package/dist/lib/cjs/emulator-snapshot.cjs +3 -9
- package/dist/lib/cjs/eval-cap-exceeded-error.cjs +2 -5
- package/dist/lib/cjs/exec.cjs +12 -24
- package/dist/lib/cjs/function-expression.cjs +2 -5
- package/dist/lib/cjs/global-setup-core.cjs +53 -18
- package/dist/lib/cjs/hide-vault-name.cjs +45 -0
- package/dist/lib/cjs/hide-vault-name.d.cts +67 -0
- package/dist/lib/cjs/index.cjs +9 -1
- package/dist/lib/cjs/index.d.cts +6 -2
- package/dist/lib/cjs/installer-asset.cjs +3 -9
- package/dist/lib/cjs/installer-compatibility.cjs +9 -12
- package/dist/lib/cjs/label-screenshot.cjs +64 -5
- package/dist/lib/cjs/label-screenshot.d.cts +66 -2
- package/dist/lib/cjs/leftover-cleanup.cjs +2 -5
- package/dist/lib/cjs/library.cjs +1 -1
- package/dist/lib/cjs/mobile-input.cjs +17 -31
- package/dist/lib/cjs/namespace-bootstrap.cjs +3 -9
- package/dist/lib/cjs/obsidian-executable.cjs +2 -5
- package/dist/lib/cjs/obsidian-installer.cjs +3 -9
- package/dist/lib/cjs/obsidian-instance.cjs +1 -1
- package/dist/lib/cjs/obsidian-instance.d.cts +8 -0
- package/dist/lib/cjs/owned-instance-exit-marker.cjs +2 -5
- package/dist/lib/cjs/owned-instance-exited-error.cjs +13 -17
- package/dist/lib/cjs/process-exit-message.cjs +3 -9
- package/dist/lib/cjs/renderer-boot-detection.cjs +3 -9
- package/dist/lib/cjs/setup-lock.cjs +3 -9
- package/dist/lib/cjs/sharp-loader.cjs +1 -1
- package/dist/lib/cjs/sharp-loader.d.cts +11 -0
- package/dist/lib/cjs/soft-keyboard-geometry.cjs +4 -9
- package/dist/lib/cjs/stale-build-detection.cjs +115 -0
- package/dist/lib/cjs/stale-build-detection.d.cts +108 -0
- package/dist/lib/cjs/stale-build-error.cjs +74 -0
- package/dist/lib/cjs/stale-build-error.d.cts +81 -0
- package/dist/lib/cjs/strict-proxy.cjs +3 -9
- package/dist/lib/cjs/transport-appium.cjs +3 -9
- package/dist/lib/cjs/transport-desktop-cdp.cjs +18 -32
- package/dist/lib/cjs/transport-factory.cjs +20 -25
- package/dist/lib/cjs/transport-options.cjs +2 -5
- package/dist/lib/cjs/transport-options.d.cts +36 -0
- package/dist/lib/cjs/vault-teardown-verdict.cjs +2 -5
- package/dist/lib/cjs/version-matrix.cjs +4 -13
- package/dist/lib/cjs/wedged-appium-server.cjs +3 -9
- package/dist/lib/esm/appium-dependencies.mjs +2 -5
- package/dist/lib/esm/appium-server-marker.mjs +3 -9
- package/dist/lib/esm/asar-fallback-detection.mjs +2 -5
- package/dist/lib/esm/avd-probe-verdict.mjs +3 -9
- package/dist/lib/esm/capture-obsidian-screenshot.d.mts +21 -0
- package/dist/lib/esm/capture-obsidian-screenshot.mjs +9 -1
- package/dist/lib/esm/capture-screenshot.mjs +2 -5
- package/dist/lib/esm/cli.mjs +2 -5
- package/dist/lib/esm/demo-vault-populate.mjs +7 -9
- package/dist/lib/esm/device-setting-restore.mjs +2 -5
- package/dist/lib/esm/electron-compatibility.mjs +8 -11
- package/dist/lib/esm/emulator-arguments.mjs +14 -14
- package/dist/lib/esm/emulator-marker.mjs +4 -13
- package/dist/lib/esm/emulator-reaper.mjs +2 -5
- package/dist/lib/esm/emulator-snapshot.mjs +3 -9
- package/dist/lib/esm/eval-cap-exceeded-error.mjs +2 -5
- package/dist/lib/esm/exec.mjs +12 -24
- package/dist/lib/esm/function-expression.mjs +2 -5
- package/dist/lib/esm/global-setup-core.mjs +60 -19
- package/dist/lib/esm/hide-vault-name.d.mts +67 -0
- package/dist/lib/esm/hide-vault-name.mjs +21 -0
- package/dist/lib/esm/index.d.mts +6 -2
- package/dist/lib/esm/index.mjs +8 -2
- package/dist/lib/esm/installer-asset.mjs +3 -9
- package/dist/lib/esm/installer-compatibility.mjs +9 -12
- package/dist/lib/esm/label-screenshot.d.mts +66 -2
- package/dist/lib/esm/label-screenshot.mjs +62 -4
- package/dist/lib/esm/leftover-cleanup.mjs +2 -5
- package/dist/lib/esm/library.mjs +1 -1
- package/dist/lib/esm/mobile-input.mjs +17 -31
- package/dist/lib/esm/namespace-bootstrap.mjs +3 -9
- package/dist/lib/esm/obsidian-executable.mjs +2 -5
- package/dist/lib/esm/obsidian-installer.mjs +3 -9
- package/dist/lib/esm/obsidian-instance.d.mts +8 -0
- package/dist/lib/esm/obsidian-instance.mjs +1 -1
- package/dist/lib/esm/owned-instance-exit-marker.mjs +2 -5
- package/dist/lib/esm/owned-instance-exited-error.mjs +13 -17
- package/dist/lib/esm/process-exit-message.mjs +3 -9
- package/dist/lib/esm/renderer-boot-detection.mjs +3 -9
- package/dist/lib/esm/setup-lock.mjs +3 -9
- package/dist/lib/esm/sharp-loader.d.mts +11 -0
- package/dist/lib/esm/sharp-loader.mjs +1 -1
- package/dist/lib/esm/soft-keyboard-geometry.mjs +4 -9
- package/dist/lib/esm/stale-build-detection.d.mts +108 -0
- package/dist/lib/esm/stale-build-detection.mjs +84 -0
- package/dist/lib/esm/stale-build-error.d.mts +81 -0
- package/dist/lib/esm/stale-build-error.mjs +50 -0
- package/dist/lib/esm/strict-proxy.mjs +3 -9
- package/dist/lib/esm/transport-appium.mjs +3 -9
- package/dist/lib/esm/transport-desktop-cdp.mjs +18 -32
- package/dist/lib/esm/transport-factory.mjs +20 -25
- package/dist/lib/esm/transport-options.d.mts +36 -0
- package/dist/lib/esm/transport-options.mjs +2 -5
- package/dist/lib/esm/vault-teardown-verdict.mjs +2 -5
- package/dist/lib/esm/version-matrix.mjs +4 -13
- package/dist/lib/esm/wedged-appium-server.mjs +3 -9
- package/package.json +20 -19
package/dist/lib/cjs/index.cjs
CHANGED
|
@@ -39,6 +39,7 @@ __export(index_exports, {
|
|
|
39
39
|
PUBLIC_LATEST: () => import_obsidian_version.PUBLIC_LATEST,
|
|
40
40
|
RendererFailedToInitializeError: () => import_renderer_failed_to_initialize_error.RendererFailedToInitializeError,
|
|
41
41
|
SilentAsarFallbackError: () => import_silent_asar_fallback_error.SilentAsarFallbackError,
|
|
42
|
+
StaleBuildError: () => import_stale_build_error.StaleBuildError,
|
|
42
43
|
TemporaryVault: () => import_temporary_vault.TemporaryVault,
|
|
43
44
|
assertValidConfigDirectory: () => import_config_directory.assertValidConfigDirectory,
|
|
44
45
|
bootstrapDemoVaultPlugins: () => import_demo_vault_bootstrap.bootstrapDemoVaultPlugins,
|
|
@@ -63,9 +64,11 @@ __export(index_exports, {
|
|
|
63
64
|
fitScreenshotToCanvas: () => import_fit_screenshot.fitScreenshotToCanvas,
|
|
64
65
|
getAppConfig: () => import_app_config.getAppConfig,
|
|
65
66
|
getVersionMetadata: () => import_obsidian_metadata.getVersionMetadata,
|
|
67
|
+
hideVaultName: () => import_hide_vault_name.hideVaultName,
|
|
66
68
|
isPng: () => import_capture_screenshot.isPng,
|
|
67
69
|
isScriptTimeoutError: () => import_eval_cap_exceeded_error.isScriptTimeoutError,
|
|
68
70
|
labelScreenshot: () => import_label_screenshot.labelScreenshot,
|
|
71
|
+
measureLabelCaption: () => import_label_screenshot.measureLabelCaption,
|
|
69
72
|
openObsidianSettingsTab: () => import_open_obsidian_settings_tab.openObsidianSettingsTab,
|
|
70
73
|
parseInputMethodState: () => import_soft_keyboard_geometry.parseInputMethodState,
|
|
71
74
|
pollInObsidian: () => import_poll_in_obsidian.pollInObsidian,
|
|
@@ -124,6 +127,7 @@ var import_eval_cap_exceeded_error = require("./eval-cap-exceeded-error.cjs");
|
|
|
124
127
|
var import_eval_cap = require("./eval-cap.cjs");
|
|
125
128
|
var import_eval_in_obsidian = require("./eval-in-obsidian.cjs");
|
|
126
129
|
var import_fit_screenshot = require("./fit-screenshot.cjs");
|
|
130
|
+
var import_hide_vault_name = require("./hide-vault-name.cjs");
|
|
127
131
|
var import_incompatible_installer_version_error = require("./incompatible-installer-version-error.cjs");
|
|
128
132
|
var import_installer_compatibility = require("./installer-compatibility.cjs");
|
|
129
133
|
var import_integration_setup_failed_error = require("./integration-setup-failed-error.cjs");
|
|
@@ -140,6 +144,7 @@ var import_run_version_matrix = require("./run-version-matrix.cjs");
|
|
|
140
144
|
var import_silent_asar_fallback_error = require("./silent-asar-fallback-error.cjs");
|
|
141
145
|
var import_soft_keyboard_geometry = require("./soft-keyboard-geometry.cjs");
|
|
142
146
|
var import_soft_keyboard = require("./soft-keyboard.cjs");
|
|
147
|
+
var import_stale_build_error = require("./stale-build-error.cjs");
|
|
143
148
|
var import_temporary_vault = require("./temporary-vault.cjs");
|
|
144
149
|
var import_transport_appium = require("./transport-appium.cjs");
|
|
145
150
|
var import_transport_desktop_cdp = require("./transport-desktop-cdp.cjs");
|
|
@@ -170,6 +175,7 @@ var import_version_matrix = require("./version-matrix.cjs");
|
|
|
170
175
|
PUBLIC_LATEST,
|
|
171
176
|
RendererFailedToInitializeError,
|
|
172
177
|
SilentAsarFallbackError,
|
|
178
|
+
StaleBuildError,
|
|
173
179
|
TemporaryVault,
|
|
174
180
|
assertValidConfigDirectory,
|
|
175
181
|
bootstrapDemoVaultPlugins,
|
|
@@ -194,9 +200,11 @@ var import_version_matrix = require("./version-matrix.cjs");
|
|
|
194
200
|
fitScreenshotToCanvas,
|
|
195
201
|
getAppConfig,
|
|
196
202
|
getVersionMetadata,
|
|
203
|
+
hideVaultName,
|
|
197
204
|
isPng,
|
|
198
205
|
isScriptTimeoutError,
|
|
199
206
|
labelScreenshot,
|
|
207
|
+
measureLabelCaption,
|
|
200
208
|
openObsidianSettingsTab,
|
|
201
209
|
parseInputMethodState,
|
|
202
210
|
pollInObsidian,
|
|
@@ -229,4 +237,4 @@ var import_version_matrix = require("./version-matrix.cjs");
|
|
|
229
237
|
withSoftKeyboardEnabled,
|
|
230
238
|
writeDeviceSetting
|
|
231
239
|
});
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdGhlIGVudHJ5IHBvaW50IGZvciB0aGUgaW50ZWdyYXRpb24gdGVzdGluZyBtb2R1bGUuXG4gKi9cblxuZXhwb3J0IHR5cGUgeyBSdW5BZGJQYXJhbXMgfSBmcm9tICcuL2FkYi5janMnO1xuZXhwb3J0IHtcbiAgcnVuQWRiQmluYXJ5LFxuICBydW5BZGJUZXh0LFxuICBydW5BZGJUZXh0V2l0aG91dERldmljZVxufSBmcm9tICcuL2FkYi5janMnO1xuZXhwb3J0IHR5cGUge1xuICBBcHBDb25maWdSZXN0b3JlLFxuICBHZXRBcHBDb25maWdQYXJhbXMsXG4gIFNldEFwcENvbmZpZ1BhcmFtcyxcbiAgV2l0aEFwcENvbmZpZ1BhcmFtc1xufSBmcm9tICcuL2FwcC1jb25maWcuY2pzJztcbmV4cG9ydCB7XG4gIGdldEFwcENvbmZpZyxcbiAgcmVzdG9yZUFwcENvbmZpZyxcbiAgc2V0QXBwQ29uZmlnLFxuICB3aXRoQXBwQ29uZmlnXG59IGZyb20gJy4vYXBwLWNvbmZpZy5janMnO1xuZXhwb3J0IHR5cGUge1xuICBBc2FyRmFsbGJhY2ssXG4gIEFzYXJGYWxsYmFja1RpZXIsXG4gIFJlc29sdmVBc2FyRmFsbGJhY2tQYXJhbXNcbn0gZnJvbSAnLi9hc2FyLWZhbGxiYWNrLWRldGVjdGlvbi5janMnO1xuZXhwb3J0IHsgcmVzb2x2ZUFzYXJGYWxsYmFjayB9IGZyb20gJy4vYXNhci1mYWxsYmFjay1kZXRlY3Rpb24uY2pzJztcbmV4cG9ydCB0eXBlIHsgQ2FwdHVyZU9ic2lkaWFuU2NyZWVuc2hvdE9wdGlvbnMgfSBmcm9tICcuL2NhcHR1cmUtb2JzaWRpYW4tc2NyZWVuc2hvdC5janMnO1xuZXhwb3J0IHsgY2FwdHVyZU9ic2lkaWFuU2NyZWVuc2hvdCB9IGZyb20gJy4vY2FwdHVyZS1vYnNpZGlhbi1zY3JlZW5zaG90LmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIENhcHR1cmVTY3JlZW5zaG90UGFyYW1zLFxuICBQbmdEaW1lbnNpb25zXG59IGZyb20gJy4vY2FwdHVyZS1zY3JlZW5zaG90LmNqcyc7XG5leHBvcnQge1xuICBidWlsZERldmljZU1ldHJpY3NPdmVycmlkZSxcbiAgZGVjb2RlQmFzZTY0UG5nLFxuICBpc1BuZyxcbiAgcmVhZFBuZ0RpbWVuc2lvbnNcbn0gZnJvbSAnLi9jYXB0dXJlLXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB0eXBlIHsgQ2RwQ29tbWFuZFRpbWVvdXRFcnJvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9jZHAtY29tbWFuZC10aW1lb3V0LWVycm9yLmNqcyc7XG5leHBvcnQgeyBDZHBDb21tYW5kVGltZW91dEVycm9yIH0gZnJvbSAnLi9jZHAtY29tbWFuZC10aW1lb3V0LWVycm9yLmNqcyc7XG5leHBvcnQgdHlwZSB7IENvbmZpZ0RpcmVjdG9yeUZhbGxiYWNrRXJyb3JDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vY29uZmlnLWRpcmVjdG9yeS1mYWxsYmFjay1lcnJvci5janMnO1xuZXhwb3J0IHsgQ29uZmlnRGlyZWN0b3J5RmFsbGJhY2tFcnJvciB9IGZyb20gJy4vY29uZmlnLWRpcmVjdG9yeS1mYWxsYmFjay1lcnJvci5janMnO1xuZXhwb3J0IHtcbiAgYXNzZXJ0VmFsaWRDb25maWdEaXJlY3RvcnksXG4gIERFRkFVTFRfQ09ORklHX0RJUkVDVE9SWVxufSBmcm9tICcuL2NvbmZpZy1kaXJlY3RvcnkuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgQ2RwQ29ubmVjdGlvbixcbiAgQ29ubmVjdFRvQ2RwT3B0aW9uc1xufSBmcm9tICcuL2Nvbm5lY3QtdG8tY2RwLmNqcyc7XG5leHBvcnQgeyBjb25uZWN0VG9DZHAgfSBmcm9tICcuL2Nvbm5lY3QtdG8tY2RwLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIENvbnRleHRBcmd1bWVudHMsXG4gIENvbnRleHRPZlxufSBmcm9tICcuL2NvbnRleHQtaWQuY2pzJztcbmV4cG9ydCB7IENvbnRleHRJZCB9IGZyb20gJy4vY29udGV4dC1pZC5janMnO1xuZXhwb3J0IHR5cGUge1xuICBTZXR1cEVycm9yUmVzb2x2ZXIsXG4gIFRyYW5zcG9ydE9wdGlvbnNSZXNvbHZlcixcbiAgVmF1bHRQYXRoUmVzb2x2ZXJcbn0gZnJvbSAnLi9jb250ZXh0LXByb3ZpZGVyLmNqcyc7XG5leHBvcnQge1xuICBzZXRTZXR1cEVycm9yUmVzb2x2ZXIsXG4gIHNldFRyYW5zcG9ydE9wdGlvbnNSZXNvbHZlcixcbiAgc2V0VmF1bHRQYXRoUmVzb2x2ZXJcbn0gZnJvbSAnLi9jb250ZXh0LXByb3ZpZGVyLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIEJvb3RzdHJhcERlbW9WYXVsdFBsdWdpbnNQYXJhbXMsXG4gIEJvb3RzdHJhcERlbW9WYXVsdFBsdWdpbnNSZXN1bHQsXG4gIEJ1aWxkRGVtb1ZhdWx0UG9wdWxhdGVBc3luY1BhcmFtcyxcbiAgSW5zdGFsbGVkUGx1Z2luSW5mb1xufSBmcm9tICcuL2RlbW8tdmF1bHQtYm9vdHN0cmFwLmNqcyc7XG5leHBvcnQge1xuICBib290c3RyYXBEZW1vVmF1bHRQbHVnaW5zLFxuICBidWlsZERlbW9WYXVsdFBvcHVsYXRlQXN5bmNcbn0gZnJvbSAnLi9kZW1vLXZhdWx0LWJvb3RzdHJhcC5janMnO1xuZXhwb3J0IHR5cGUge1xuICBCdWlsZERlbW9WYXVsdFBvcHVsYXRlUGFyYW1zLFxuICBJbmplY3RQbHVnaW5QYXJhbXMsXG4gIFJlc29sdmVNaXNzaW5nSW5qZWN0ZWRQbHVnaW5zUGFyYW1zXG59IGZyb20gJy4vZGVtby12YXVsdC1wb3B1bGF0ZS5janMnO1xuZXhwb3J0IHtcbiAgYnVpbGREZW1vVmF1bHRQb3B1bGF0ZSxcbiAgcmVzb2x2ZU1pc3NpbmdJbmplY3RlZFBsdWdpbnNcbn0gZnJvbSAnLi9kZW1vLXZhdWx0LXBvcHVsYXRlLmNqcyc7XG5leHBvcnQgdHlwZSB7IFJlYWREZW1vVmF1bHRUcmVlUGFyYW1zIH0gZnJvbSAnLi9kZW1vLXZhdWx0LXRyZWUuY2pzJztcbmV4cG9ydCB7IHJlYWREZW1vVmF1bHRUcmVlIH0gZnJvbSAnLi9kZW1vLXZhdWx0LXRyZWUuY2pzJztcbmV4cG9ydCB7IERlc2t0b3BPbmx5UGx1Z2luU2tpcEVycm9yIH0gZnJvbSAnLi9kZXNrdG9wLW9ubHktcGx1Z2luLXNraXAtZXJyb3IuY2pzJztcbmV4cG9ydCB0eXBlIHsgQ2FwdHVyZURldmljZVNjcmVlbnNob3RQYXJhbXMgfSBmcm9tICcuL2RldmljZS1zY3JlZW5zaG90LmNqcyc7XG5leHBvcnQgeyBjYXB0dXJlRGV2aWNlU2NyZWVuc2hvdCB9IGZyb20gJy4vZGV2aWNlLXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgRGV2aWNlU2V0dGluZ1Jlc3RvcmUsXG4gIERldmljZVNldHRpbmdSZXN0b3JlRGVsZXRlLFxuICBEZXZpY2VTZXR0aW5nUmVzdG9yZVdyaXRlXG59IGZyb20gJy4vZGV2aWNlLXNldHRpbmctcmVzdG9yZS5janMnO1xuZXhwb3J0IHtcbiAgRGV2aWNlU2V0dGluZ1Jlc3RvcmVLaW5kLFxuICByZXNvbHZlRGV2aWNlU2V0dGluZ1Jlc3RvcmVcbn0gZnJvbSAnLi9kZXZpY2Utc2V0dGluZy1yZXN0b3JlLmNqcyc7XG5leHBvcnQgdHlwZSB7IEJ1aWxkRGV2aWNlU2V0dGluZ3NDb21tYW5kQXJndW1lbnRzUGFyYW1zIH0gZnJvbSAnLi9kZXZpY2Utc2V0dGluZ3MtY29tbWFuZC5janMnO1xuZXhwb3J0IHtcbiAgYnVpbGREZXZpY2VTZXR0aW5nc0NvbW1hbmRBcmd1bWVudHMsXG4gIERldmljZVNldHRpbmdOYW1lc3BhY2UsXG4gIERldmljZVNldHRpbmdWZXJiXG59IGZyb20gJy4vZGV2aWNlLXNldHRpbmdzLWNvbW1hbmQuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgRGV2aWNlU2V0dGluZ1BhcmFtcyxcbiAgV2l0aFNvZnRLZXlib2FyZEVuYWJsZWRQYXJhbXMsXG4gIFdyaXRlRGV2aWNlU2V0dGluZ1BhcmFtc1xufSBmcm9tICcuL2RldmljZS1zZXR0aW5ncy5janMnO1xuZXhwb3J0IHtcbiAgZGVsZXRlRGV2aWNlU2V0dGluZyxcbiAgcmVhZERldmljZVNldHRpbmcsXG4gIHdpdGhTb2Z0S2V5Ym9hcmRFbmFibGVkLFxuICB3cml0ZURldmljZVNldHRpbmdcbn0gZnJvbSAnLi9kZXZpY2Utc2V0dGluZ3MuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgRWxlY3Ryb25Db21wYXRpYmlsaXR5LFxuICBFbGVjdHJvbkNvbXBhdGliaWxpdHlUaWVyLFxuICBSZXNvbHZlRWxlY3Ryb25Db21wYXRpYmlsaXR5UGFyYW1zXG59IGZyb20gJy4vZWxlY3Ryb24tY29tcGF0aWJpbGl0eS5janMnO1xuZXhwb3J0IHsgcmVzb2x2ZUVsZWN0cm9uQ29tcGF0aWJpbGl0eSB9IGZyb20gJy4vZWxlY3Ryb24tY29tcGF0aWJpbGl0eS5janMnO1xuZXhwb3J0IHR5cGUge1xuICBFbXVsYXRvckRldmljZUNhbmRpZGF0ZSxcbiAgU2VsZWN0RW11bGF0b3JEZXZpY2VJZFBhcmFtc1xufSBmcm9tICcuL2VtdWxhdG9yLWRldmljZS1pZC5janMnO1xuZXhwb3J0IHsgc2VsZWN0RW11bGF0b3JEZXZpY2VJZCB9IGZyb20gJy4vZW11bGF0b3ItZGV2aWNlLWlkLmNqcyc7XG5leHBvcnQgdHlwZSB7IEV2YWxDYXBFeGNlZWRlZEVycm9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL2V2YWwtY2FwLWV4Y2VlZGVkLWVycm9yLmNqcyc7XG5leHBvcnQge1xuICBFdmFsQ2FwRXhjZWVkZWRFcnJvcixcbiAgaXNTY3JpcHRUaW1lb3V0RXJyb3Jcbn0gZnJvbSAnLi9ldmFsLWNhcC1leGNlZWRlZC1lcnJvci5janMnO1xuZXhwb3J0IHsgREVGQVVMVF9FVkFMX0NBUF9JTl9NSUxMSVNFQ09ORFMgfSBmcm9tICcuL2V2YWwtY2FwLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIENsaWNrRWxlbWVudFBhcmFtcyxcbiAgQ2xpY2tNb3VzZVBhcmFtcyxcbiAgQ29tbW9uQXJndW1lbnRzLFxuICBDcmVhdGVOb3RlUGFyYW1zLFxuICBFdmFsSW5PYnNpZGlhblBhcmFtcyxcbiAgR2VuZXJpY09iamVjdCxcbiAgSG92ZXJFbGVtZW50UGFyYW1zLFxuICBMaWIsXG4gIE1vdXNlQnV0dG9uLFxuICBNb3ZlTW91c2VQYXJhbXMsXG4gIE9wZW5TZXR0aW5nc1RhYlBhcmFtcyxcbiAgUHJlc3NLZXlQYXJhbXMsXG4gIFR5cGVJbnRvRWRpdG9yUGFyYW1zLFxuICBVbmhvdmVyRWxlbWVudFBhcmFtcyxcbiAgV2FpdFVudGlsUGFyYW1zXG59IGZyb20gJy4vZXZhbC1pbi1vYnNpZGlhbi5janMnO1xuZXhwb3J0IHsgZXZhbEluT2JzaWRpYW4gfSBmcm9tICcuL2V2YWwtaW4tb2JzaWRpYW4uY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgQ29tcHV0ZUZpdFRvQ2FudmFzUGFyYW1zLFxuICBGaXRTY3JlZW5zaG90VG9DYW52YXNPcHRpb25zLFxuICBGaXRUb0NhbnZhc0dlb21ldHJ5XG59IGZyb20gJy4vZml0LXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB7XG4gIGNvbXB1dGVGaXRUb0NhbnZhcyxcbiAgZml0U2NyZWVuc2hvdFRvQ2FudmFzXG59IGZyb20gJy4vZml0LXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB0eXBlIHsgSW5jb21wYXRpYmxlSW5zdGFsbGVyVmVyc2lvbkVycm9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL2luY29tcGF0aWJsZS1pbnN0YWxsZXItdmVyc2lvbi1lcnJvci5janMnO1xuZXhwb3J0IHsgSW5jb21wYXRpYmxlSW5zdGFsbGVyVmVyc2lvbkVycm9yIH0gZnJvbSAnLi9pbmNvbXBhdGlibGUtaW5zdGFsbGVyLXZlcnNpb24tZXJyb3IuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgSW5zdGFsbGVyQ29tcGF0aWJpbGl0eSxcbiAgSW5zdGFsbGVyQ29tcGF0aWJpbGl0eVRpZXIsXG4gIFJlc29sdmVJbnN0YWxsZXJDb21wYXRpYmlsaXR5UGFyYW1zXG59IGZyb20gJy4vaW5zdGFsbGVyLWNvbXBhdGliaWxpdHkuY2pzJztcbmV4cG9ydCB7IHJlc29sdmVJbnN0YWxsZXJDb21wYXRpYmlsaXR5IH0gZnJvbSAnLi9pbnN0YWxsZXItY29tcGF0aWJpbGl0eS5janMnO1xuZXhwb3J0IHR5cGUgeyBJbnRlZ3JhdGlvblNldHVwRmFpbGVkRXJyb3JDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vaW50ZWdyYXRpb24tc2V0dXAtZmFpbGVkLWVycm9yLmNqcyc7XG5leHBvcnQgeyBJbnRlZ3JhdGlvblNldHVwRmFpbGVkRXJyb3IgfSBmcm9tICcuL2ludGVncmF0aW9uLXNldHVwLWZhaWxlZC1lcnJvci5janMnO1xuZXhwb3J0IHR5cGUge1xuICBDb21wdXRlTGFiZWxCYW5kUGFyYW1zLFxuICBMYWJlbEJhbmRHZW9tZXRyeSxcbiAgTGFiZWxTY3JlZW5zaG90T3B0aW9uc1xufSBmcm9tICcuL2xhYmVsLXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB7XG4gIGJ1aWxkTGFiZWxTdmcsXG4gIGNvbXB1dGVMYWJlbEJhbmQsXG4gIGVzY2FwZVN2Z1RleHQsXG4gIGxhYmVsU2NyZWVuc2hvdFxufSBmcm9tICcuL2xhYmVsLXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB0eXBlIHsgTGliUmVzb2x2ZXIgfSBmcm9tICcuL2xpYi1yZWdpc3RyeS5janMnO1xuZXhwb3J0IHsgcmVnaXN0ZXJMaWJSZXNvbHZlciB9IGZyb20gJy4vbGliLXJlZ2lzdHJ5LmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIE9ic2lkaWFuUnVudGltZVZlcnNpb25zLFxuICBPYnNpZGlhblZlcnNpb25DaGFuZ2Vsb2dVcmxzLFxuICBPYnNpZGlhblZlcnNpb25Eb3dubG9hZHMsXG4gIE9ic2lkaWFuVmVyc2lvbk1ldGFkYXRhXG59IGZyb20gJy4vb2JzaWRpYW4tbWV0YWRhdGEuY2pzJztcbmV4cG9ydCB7IGdldFZlcnNpb25NZXRhZGF0YSB9IGZyb20gJy4vb2JzaWRpYW4tbWV0YWRhdGEuY2pzJztcbmV4cG9ydCB7XG4gIENBVEFMWVNUX0xBVEVTVCxcbiAgUFVCTElDX0xBVEVTVFxufSBmcm9tICcuL29ic2lkaWFuLXZlcnNpb24uY2pzJztcbmV4cG9ydCB0eXBlIHsgT3Blbk9ic2lkaWFuU2V0dGluZ3NUYWJQYXJhbXMgfSBmcm9tICcuL29wZW4tb2JzaWRpYW4tc2V0dGluZ3MtdGFiLmNqcyc7XG5leHBvcnQgeyBvcGVuT2JzaWRpYW5TZXR0aW5nc1RhYiB9IGZyb20gJy4vb3Blbi1vYnNpZGlhbi1zZXR0aW5ncy10YWIuY2pzJztcbmV4cG9ydCB0eXBlIHsgT3duZWRJbnN0YW5jZUV4aXRlZEVycm9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL293bmVkLWluc3RhbmNlLWV4aXRlZC1lcnJvci5janMnO1xuZXhwb3J0IHsgT3duZWRJbnN0YW5jZUV4aXRlZEVycm9yIH0gZnJvbSAnLi9vd25lZC1pbnN0YW5jZS1leGl0ZWQtZXJyb3IuY2pzJztcbmV4cG9ydCB0eXBlIHsgUG9sbEluT2JzaWRpYW5QYXJhbXMgfSBmcm9tICcuL3BvbGwtaW4tb2JzaWRpYW4uY2pzJztcbmV4cG9ydCB7IHBvbGxJbk9ic2lkaWFuIH0gZnJvbSAnLi9wb2xsLWluLW9ic2lkaWFuLmNqcyc7XG5leHBvcnQgeyBSZW5kZXJlckZhaWxlZFRvSW5pdGlhbGl6ZUVycm9yIH0gZnJvbSAnLi9yZW5kZXJlci1mYWlsZWQtdG8taW5pdGlhbGl6ZS1lcnJvci5janMnO1xuZXhwb3J0IHR5cGUgeyBSZXNvbHZlRW11bGF0b3JEZXZpY2VJZFBhcmFtcyB9IGZyb20gJy4vcmVzb2x2ZS1lbXVsYXRvci1kZXZpY2UtaWQuY2pzJztcbmV4cG9ydCB7IHJlc29sdmVFbXVsYXRvckRldmljZUlkIH0gZnJvbSAnLi9yZXNvbHZlLWVtdWxhdG9yLWRldmljZS1pZC5janMnO1xuZXhwb3J0IHR5cGUgeyBSdW5PYnNpZGlhblZlcnNpb25NYXRyaXhQYXJhbXMgfSBmcm9tICcuL3J1bi12ZXJzaW9uLW1hdHJpeC5janMnO1xuZXhwb3J0IHsgcnVuT2JzaWRpYW5WZXJzaW9uTWF0cml4IH0gZnJvbSAnLi9ydW4tdmVyc2lvbi1tYXRyaXguY2pzJztcbmV4cG9ydCB0eXBlIHsgU2lsZW50QXNhckZhbGxiYWNrRXJyb3JDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vc2lsZW50LWFzYXItZmFsbGJhY2stZXJyb3IuY2pzJztcbmV4cG9ydCB7IFNpbGVudEFzYXJGYWxsYmFja0Vycm9yIH0gZnJvbSAnLi9zaWxlbnQtYXNhci1mYWxsYmFjay1lcnJvci5janMnO1xuZXhwb3J0IHR5cGUge1xuICBCdWlsZFNvZnRLZXlib2FyZERpYWdub3N0aWNNZXNzYWdlUGFyYW1zLFxuICBDaGVja0lzU29mdEtleWJvYXJkVXBQYXJhbXMsXG4gIEVsZW1lbnRSZWN0LFxuICBSZXNvbHZlU29mdEtleWJvYXJkVGFwUG9pbnRzUGFyYW1zLFxuICBTb2Z0S2V5Ym9hcmRUYXBQb2ludCxcbiAgU29mdEtleWJvYXJkVmlld3BvcnRTbmFwc2hvdFxufSBmcm9tICcuL3NvZnQta2V5Ym9hcmQtZ2VvbWV0cnkuY2pzJztcbmV4cG9ydCB7XG4gIGJ1aWxkU29mdEtleWJvYXJkRGlhZ25vc3RpY01lc3NhZ2UsXG4gIGNoZWNrSXNTb2Z0S2V5Ym9hcmRVcCxcbiAgREVGQVVMVF9NSU5JTVVNX0tFWUJPQVJEX0hFSUdIVF9JTl9QSVhFTFMsXG4gIHBhcnNlSW5wdXRNZXRob2RTdGF0ZSxcbiAgcmVzb2x2ZVNvZnRLZXlib2FyZFRhcFBvaW50c1xufSBmcm9tICcuL3NvZnQta2V5Ym9hcmQtZ2VvbWV0cnkuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgUmFpc2VTb2Z0S2V5Ym9hcmRQYXJhbXMsXG4gIFRhcERldmljZVBhcmFtc1xufSBmcm9tICcuL3NvZnQta2V5Ym9hcmQuY2pzJztcbmV4cG9ydCB7XG4gIHJhaXNlU29mdEtleWJvYXJkLFxuICB0YXBEZXZpY2Vcbn0gZnJvbSAnLi9zb2Z0LWtleWJvYXJkLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIFBvcHVsYXRlRmlsZUNvbnRlbnQsXG4gIFBvcHVsYXRlRmlsZXNQYXJhbXMsXG4gIFRlbXBvcmFyeVZhdWx0Q29uc3RydWN0b3JPcHRpb25zXG59IGZyb20gJy4vdGVtcG9yYXJ5LXZhdWx0LmNqcyc7XG5leHBvcnQgeyBUZW1wb3JhcnlWYXVsdCB9IGZyb20gJy4vdGVtcG9yYXJ5LXZhdWx0LmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIEFwcGl1bVNlc3Npb25JbmZvLFxuICBBcHBpdW1UcmFuc3BvcnRDb25maWdcbn0gZnJvbSAnLi90cmFuc3BvcnQtYXBwaXVtLmNqcyc7XG5leHBvcnQgeyBBcHBpdW1UcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC1hcHBpdW0uY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgRGVza3RvcENkcFRyYW5zcG9ydENvbmZpZyxcbiAgT3duZWRJbnN0YW5jZUFzYXIsXG4gIE93bmVkSW5zdGFuY2VDb25maWcsXG4gIE93bmVkSW5zdGFuY2VFbmRwb2ludFxufSBmcm9tICcuL3RyYW5zcG9ydC1kZXNrdG9wLWNkcC5janMnO1xuZXhwb3J0IHsgRGVza3RvcENkcFRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0LWRlc2t0b3AtY2RwLmNqcyc7XG5leHBvcnQgeyBjcmVhdGVUcmFuc3BvcnRGcm9tT3B0aW9ucyB9IGZyb20gJy4vdHJhbnNwb3J0LWZhY3RvcnkuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgT2JzaWRpYW5BbmRyb2lkQXBwaXVtVHJhbnNwb3J0T3B0aW9ucyxcbiAgT2JzaWRpYW5DZHBUcmFuc3BvcnRPcHRpb25zLFxuICBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnNcbn0gZnJvbSAnLi90cmFuc3BvcnQtb3B0aW9ucy5janMnO1xuZXhwb3J0IHsgY2hlY2tJc01vYmlsZVRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0LW9wdGlvbnMuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgQ29uc29sZUNhcHR1cmVIYW5kbGUsXG4gIE9ic2lkaWFuVHJhbnNwb3J0LFxuICBUcmFuc3BvcnRFdmFsT3B0aW9uc1xufSBmcm9tICcuL3RyYW5zcG9ydC5janMnO1xuZXhwb3J0IHtcbiAgcmVnaXN0ZXJWYXVsdCxcbiAgdW5yZWdpc3RlclZhdWx0XG59IGZyb20gJy4vdmF1bHQtcmVnaXN0cnkuY2pzJztcbmV4cG9ydCB0eXBlIHsgT2JzaWRpYW5WZXJzaW9uTWF0cml4RW50cnkgfSBmcm9tICcuL3ZlcnNpb24tbWF0cml4LmNqcyc7XG5leHBvcnQgeyBERUZBVUxUX09CU0lESUFOX1ZFUlNJT05fU1BFQ1MgfSBmcm9tICcuL3ZlcnNpb24tbWF0cml4LmNqcyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0EsaUJBSU87QUFPUCx3QkFLTztBQU1QLHFDQUFvQztBQUVwQyx5Q0FBMEM7QUFLMUMsZ0NBS087QUFFUCx1Q0FBdUM7QUFFdkMsNkNBQTZDO0FBQzdDLDhCQUdPO0FBS1AsNEJBQTZCO0FBSzdCLHdCQUEwQjtBQU0xQiw4QkFJTztBQU9QLGtDQUdPO0FBTVAsaUNBR087QUFFUCw2QkFBa0M7QUFDbEMsNENBQTJDO0FBRTNDLCtCQUF3QztBQU14QyxvQ0FHTztBQUVQLHFDQUlPO0FBTVAsNkJBS087QUFNUCxvQ0FBNkM7QUFLN0MsZ0NBQXVDO0FBRXZDLHFDQUdPO0FBQ1Asc0JBQWlEO0FBa0JqRCw4QkFBK0I7QUFNL0IsNEJBR087QUFFUCxrREFBa0Q7QUFNbEQscUNBQThDO0FBRTlDLDRDQUE0QztBQU01Qyw4QkFLTztBQUVQLDBCQUFvQztBQU9wQywrQkFBbUM7QUFDbkMsOEJBR087QUFFUCx3Q0FBd0M7QUFFeEMseUNBQXlDO0FBRXpDLDhCQUErQjtBQUMvQixpREFBZ0Q7QUFFaEQsd0NBQXdDO0FBRXhDLGdDQUF5QztBQUV6Qyx3Q0FBd0M7QUFTeEMsb0NBTU87QUFLUCwyQkFHTztBQU1QLDZCQUErQjtBQUsvQiw4QkFBZ0M7QUFPaEMsbUNBQW9DO0FBQ3BDLCtCQUEyQztBQU0zQywrQkFBdUM7QUFNdkMsNEJBR087QUFFUCw0QkFBK0M7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdGhlIGVudHJ5IHBvaW50IGZvciB0aGUgaW50ZWdyYXRpb24gdGVzdGluZyBtb2R1bGUuXG4gKi9cblxuZXhwb3J0IHR5cGUgeyBSdW5BZGJQYXJhbXMgfSBmcm9tICcuL2FkYi5janMnO1xuZXhwb3J0IHtcbiAgcnVuQWRiQmluYXJ5LFxuICBydW5BZGJUZXh0LFxuICBydW5BZGJUZXh0V2l0aG91dERldmljZVxufSBmcm9tICcuL2FkYi5janMnO1xuZXhwb3J0IHR5cGUge1xuICBBcHBDb25maWdSZXN0b3JlLFxuICBHZXRBcHBDb25maWdQYXJhbXMsXG4gIFNldEFwcENvbmZpZ1BhcmFtcyxcbiAgV2l0aEFwcENvbmZpZ1BhcmFtc1xufSBmcm9tICcuL2FwcC1jb25maWcuY2pzJztcbmV4cG9ydCB7XG4gIGdldEFwcENvbmZpZyxcbiAgcmVzdG9yZUFwcENvbmZpZyxcbiAgc2V0QXBwQ29uZmlnLFxuICB3aXRoQXBwQ29uZmlnXG59IGZyb20gJy4vYXBwLWNvbmZpZy5janMnO1xuZXhwb3J0IHR5cGUge1xuICBBc2FyRmFsbGJhY2ssXG4gIEFzYXJGYWxsYmFja1RpZXIsXG4gIFJlc29sdmVBc2FyRmFsbGJhY2tQYXJhbXNcbn0gZnJvbSAnLi9hc2FyLWZhbGxiYWNrLWRldGVjdGlvbi5janMnO1xuZXhwb3J0IHsgcmVzb2x2ZUFzYXJGYWxsYmFjayB9IGZyb20gJy4vYXNhci1mYWxsYmFjay1kZXRlY3Rpb24uY2pzJztcbmV4cG9ydCB0eXBlIHsgQ2FwdHVyZU9ic2lkaWFuU2NyZWVuc2hvdE9wdGlvbnMgfSBmcm9tICcuL2NhcHR1cmUtb2JzaWRpYW4tc2NyZWVuc2hvdC5janMnO1xuZXhwb3J0IHsgY2FwdHVyZU9ic2lkaWFuU2NyZWVuc2hvdCB9IGZyb20gJy4vY2FwdHVyZS1vYnNpZGlhbi1zY3JlZW5zaG90LmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIENhcHR1cmVTY3JlZW5zaG90UGFyYW1zLFxuICBQbmdEaW1lbnNpb25zXG59IGZyb20gJy4vY2FwdHVyZS1zY3JlZW5zaG90LmNqcyc7XG5leHBvcnQge1xuICBidWlsZERldmljZU1ldHJpY3NPdmVycmlkZSxcbiAgZGVjb2RlQmFzZTY0UG5nLFxuICBpc1BuZyxcbiAgcmVhZFBuZ0RpbWVuc2lvbnNcbn0gZnJvbSAnLi9jYXB0dXJlLXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB0eXBlIHsgQ2RwQ29tbWFuZFRpbWVvdXRFcnJvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9jZHAtY29tbWFuZC10aW1lb3V0LWVycm9yLmNqcyc7XG5leHBvcnQgeyBDZHBDb21tYW5kVGltZW91dEVycm9yIH0gZnJvbSAnLi9jZHAtY29tbWFuZC10aW1lb3V0LWVycm9yLmNqcyc7XG5leHBvcnQgdHlwZSB7IENvbmZpZ0RpcmVjdG9yeUZhbGxiYWNrRXJyb3JDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vY29uZmlnLWRpcmVjdG9yeS1mYWxsYmFjay1lcnJvci5janMnO1xuZXhwb3J0IHsgQ29uZmlnRGlyZWN0b3J5RmFsbGJhY2tFcnJvciB9IGZyb20gJy4vY29uZmlnLWRpcmVjdG9yeS1mYWxsYmFjay1lcnJvci5janMnO1xuZXhwb3J0IHtcbiAgYXNzZXJ0VmFsaWRDb25maWdEaXJlY3RvcnksXG4gIERFRkFVTFRfQ09ORklHX0RJUkVDVE9SWVxufSBmcm9tICcuL2NvbmZpZy1kaXJlY3RvcnkuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgQ2RwQ29ubmVjdGlvbixcbiAgQ29ubmVjdFRvQ2RwT3B0aW9uc1xufSBmcm9tICcuL2Nvbm5lY3QtdG8tY2RwLmNqcyc7XG5leHBvcnQgeyBjb25uZWN0VG9DZHAgfSBmcm9tICcuL2Nvbm5lY3QtdG8tY2RwLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIENvbnRleHRBcmd1bWVudHMsXG4gIENvbnRleHRPZlxufSBmcm9tICcuL2NvbnRleHQtaWQuY2pzJztcbmV4cG9ydCB7IENvbnRleHRJZCB9IGZyb20gJy4vY29udGV4dC1pZC5janMnO1xuZXhwb3J0IHR5cGUge1xuICBTZXR1cEVycm9yUmVzb2x2ZXIsXG4gIFRyYW5zcG9ydE9wdGlvbnNSZXNvbHZlcixcbiAgVmF1bHRQYXRoUmVzb2x2ZXJcbn0gZnJvbSAnLi9jb250ZXh0LXByb3ZpZGVyLmNqcyc7XG5leHBvcnQge1xuICBzZXRTZXR1cEVycm9yUmVzb2x2ZXIsXG4gIHNldFRyYW5zcG9ydE9wdGlvbnNSZXNvbHZlcixcbiAgc2V0VmF1bHRQYXRoUmVzb2x2ZXJcbn0gZnJvbSAnLi9jb250ZXh0LXByb3ZpZGVyLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIEJvb3RzdHJhcERlbW9WYXVsdFBsdWdpbnNQYXJhbXMsXG4gIEJvb3RzdHJhcERlbW9WYXVsdFBsdWdpbnNSZXN1bHQsXG4gIEJ1aWxkRGVtb1ZhdWx0UG9wdWxhdGVBc3luY1BhcmFtcyxcbiAgSW5zdGFsbGVkUGx1Z2luSW5mb1xufSBmcm9tICcuL2RlbW8tdmF1bHQtYm9vdHN0cmFwLmNqcyc7XG5leHBvcnQge1xuICBib290c3RyYXBEZW1vVmF1bHRQbHVnaW5zLFxuICBidWlsZERlbW9WYXVsdFBvcHVsYXRlQXN5bmNcbn0gZnJvbSAnLi9kZW1vLXZhdWx0LWJvb3RzdHJhcC5janMnO1xuZXhwb3J0IHR5cGUge1xuICBCdWlsZERlbW9WYXVsdFBvcHVsYXRlUGFyYW1zLFxuICBJbmplY3RQbHVnaW5QYXJhbXMsXG4gIFJlc29sdmVNaXNzaW5nSW5qZWN0ZWRQbHVnaW5zUGFyYW1zXG59IGZyb20gJy4vZGVtby12YXVsdC1wb3B1bGF0ZS5janMnO1xuZXhwb3J0IHtcbiAgYnVpbGREZW1vVmF1bHRQb3B1bGF0ZSxcbiAgcmVzb2x2ZU1pc3NpbmdJbmplY3RlZFBsdWdpbnNcbn0gZnJvbSAnLi9kZW1vLXZhdWx0LXBvcHVsYXRlLmNqcyc7XG5leHBvcnQgdHlwZSB7IFJlYWREZW1vVmF1bHRUcmVlUGFyYW1zIH0gZnJvbSAnLi9kZW1vLXZhdWx0LXRyZWUuY2pzJztcbmV4cG9ydCB7IHJlYWREZW1vVmF1bHRUcmVlIH0gZnJvbSAnLi9kZW1vLXZhdWx0LXRyZWUuY2pzJztcbmV4cG9ydCB7IERlc2t0b3BPbmx5UGx1Z2luU2tpcEVycm9yIH0gZnJvbSAnLi9kZXNrdG9wLW9ubHktcGx1Z2luLXNraXAtZXJyb3IuY2pzJztcbmV4cG9ydCB0eXBlIHsgQ2FwdHVyZURldmljZVNjcmVlbnNob3RQYXJhbXMgfSBmcm9tICcuL2RldmljZS1zY3JlZW5zaG90LmNqcyc7XG5leHBvcnQgeyBjYXB0dXJlRGV2aWNlU2NyZWVuc2hvdCB9IGZyb20gJy4vZGV2aWNlLXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgRGV2aWNlU2V0dGluZ1Jlc3RvcmUsXG4gIERldmljZVNldHRpbmdSZXN0b3JlRGVsZXRlLFxuICBEZXZpY2VTZXR0aW5nUmVzdG9yZVdyaXRlXG59IGZyb20gJy4vZGV2aWNlLXNldHRpbmctcmVzdG9yZS5janMnO1xuZXhwb3J0IHtcbiAgRGV2aWNlU2V0dGluZ1Jlc3RvcmVLaW5kLFxuICByZXNvbHZlRGV2aWNlU2V0dGluZ1Jlc3RvcmVcbn0gZnJvbSAnLi9kZXZpY2Utc2V0dGluZy1yZXN0b3JlLmNqcyc7XG5leHBvcnQgdHlwZSB7IEJ1aWxkRGV2aWNlU2V0dGluZ3NDb21tYW5kQXJndW1lbnRzUGFyYW1zIH0gZnJvbSAnLi9kZXZpY2Utc2V0dGluZ3MtY29tbWFuZC5janMnO1xuZXhwb3J0IHtcbiAgYnVpbGREZXZpY2VTZXR0aW5nc0NvbW1hbmRBcmd1bWVudHMsXG4gIERldmljZVNldHRpbmdOYW1lc3BhY2UsXG4gIERldmljZVNldHRpbmdWZXJiXG59IGZyb20gJy4vZGV2aWNlLXNldHRpbmdzLWNvbW1hbmQuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgRGV2aWNlU2V0dGluZ1BhcmFtcyxcbiAgV2l0aFNvZnRLZXlib2FyZEVuYWJsZWRQYXJhbXMsXG4gIFdyaXRlRGV2aWNlU2V0dGluZ1BhcmFtc1xufSBmcm9tICcuL2RldmljZS1zZXR0aW5ncy5janMnO1xuZXhwb3J0IHtcbiAgZGVsZXRlRGV2aWNlU2V0dGluZyxcbiAgcmVhZERldmljZVNldHRpbmcsXG4gIHdpdGhTb2Z0S2V5Ym9hcmRFbmFibGVkLFxuICB3cml0ZURldmljZVNldHRpbmdcbn0gZnJvbSAnLi9kZXZpY2Utc2V0dGluZ3MuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgRWxlY3Ryb25Db21wYXRpYmlsaXR5LFxuICBFbGVjdHJvbkNvbXBhdGliaWxpdHlUaWVyLFxuICBSZXNvbHZlRWxlY3Ryb25Db21wYXRpYmlsaXR5UGFyYW1zXG59IGZyb20gJy4vZWxlY3Ryb24tY29tcGF0aWJpbGl0eS5janMnO1xuZXhwb3J0IHsgcmVzb2x2ZUVsZWN0cm9uQ29tcGF0aWJpbGl0eSB9IGZyb20gJy4vZWxlY3Ryb24tY29tcGF0aWJpbGl0eS5janMnO1xuZXhwb3J0IHR5cGUge1xuICBFbXVsYXRvckRldmljZUNhbmRpZGF0ZSxcbiAgU2VsZWN0RW11bGF0b3JEZXZpY2VJZFBhcmFtc1xufSBmcm9tICcuL2VtdWxhdG9yLWRldmljZS1pZC5janMnO1xuZXhwb3J0IHsgc2VsZWN0RW11bGF0b3JEZXZpY2VJZCB9IGZyb20gJy4vZW11bGF0b3ItZGV2aWNlLWlkLmNqcyc7XG5leHBvcnQgdHlwZSB7IEV2YWxDYXBFeGNlZWRlZEVycm9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL2V2YWwtY2FwLWV4Y2VlZGVkLWVycm9yLmNqcyc7XG5leHBvcnQge1xuICBFdmFsQ2FwRXhjZWVkZWRFcnJvcixcbiAgaXNTY3JpcHRUaW1lb3V0RXJyb3Jcbn0gZnJvbSAnLi9ldmFsLWNhcC1leGNlZWRlZC1lcnJvci5janMnO1xuZXhwb3J0IHsgREVGQVVMVF9FVkFMX0NBUF9JTl9NSUxMSVNFQ09ORFMgfSBmcm9tICcuL2V2YWwtY2FwLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIENsaWNrRWxlbWVudFBhcmFtcyxcbiAgQ2xpY2tNb3VzZVBhcmFtcyxcbiAgQ29tbW9uQXJndW1lbnRzLFxuICBDcmVhdGVOb3RlUGFyYW1zLFxuICBFdmFsSW5PYnNpZGlhblBhcmFtcyxcbiAgR2VuZXJpY09iamVjdCxcbiAgSG92ZXJFbGVtZW50UGFyYW1zLFxuICBMaWIsXG4gIE1vdXNlQnV0dG9uLFxuICBNb3ZlTW91c2VQYXJhbXMsXG4gIE9wZW5TZXR0aW5nc1RhYlBhcmFtcyxcbiAgUHJlc3NLZXlQYXJhbXMsXG4gIFR5cGVJbnRvRWRpdG9yUGFyYW1zLFxuICBVbmhvdmVyRWxlbWVudFBhcmFtcyxcbiAgV2FpdFVudGlsUGFyYW1zXG59IGZyb20gJy4vZXZhbC1pbi1vYnNpZGlhbi5janMnO1xuZXhwb3J0IHsgZXZhbEluT2JzaWRpYW4gfSBmcm9tICcuL2V2YWwtaW4tb2JzaWRpYW4uY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgQ29tcHV0ZUZpdFRvQ2FudmFzUGFyYW1zLFxuICBGaXRTY3JlZW5zaG90VG9DYW52YXNPcHRpb25zLFxuICBGaXRUb0NhbnZhc0dlb21ldHJ5XG59IGZyb20gJy4vZml0LXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB7XG4gIGNvbXB1dGVGaXRUb0NhbnZhcyxcbiAgZml0U2NyZWVuc2hvdFRvQ2FudmFzXG59IGZyb20gJy4vZml0LXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB0eXBlIHsgSGlkZVZhdWx0TmFtZU9wdGlvbnMgfSBmcm9tICcuL2hpZGUtdmF1bHQtbmFtZS5janMnO1xuZXhwb3J0IHsgaGlkZVZhdWx0TmFtZSB9IGZyb20gJy4vaGlkZS12YXVsdC1uYW1lLmNqcyc7XG5leHBvcnQgdHlwZSB7IEluY29tcGF0aWJsZUluc3RhbGxlclZlcnNpb25FcnJvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9pbmNvbXBhdGlibGUtaW5zdGFsbGVyLXZlcnNpb24tZXJyb3IuY2pzJztcbmV4cG9ydCB7IEluY29tcGF0aWJsZUluc3RhbGxlclZlcnNpb25FcnJvciB9IGZyb20gJy4vaW5jb21wYXRpYmxlLWluc3RhbGxlci12ZXJzaW9uLWVycm9yLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIEluc3RhbGxlckNvbXBhdGliaWxpdHksXG4gIEluc3RhbGxlckNvbXBhdGliaWxpdHlUaWVyLFxuICBSZXNvbHZlSW5zdGFsbGVyQ29tcGF0aWJpbGl0eVBhcmFtc1xufSBmcm9tICcuL2luc3RhbGxlci1jb21wYXRpYmlsaXR5LmNqcyc7XG5leHBvcnQgeyByZXNvbHZlSW5zdGFsbGVyQ29tcGF0aWJpbGl0eSB9IGZyb20gJy4vaW5zdGFsbGVyLWNvbXBhdGliaWxpdHkuY2pzJztcbmV4cG9ydCB0eXBlIHsgSW50ZWdyYXRpb25TZXR1cEZhaWxlZEVycm9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL2ludGVncmF0aW9uLXNldHVwLWZhaWxlZC1lcnJvci5janMnO1xuZXhwb3J0IHsgSW50ZWdyYXRpb25TZXR1cEZhaWxlZEVycm9yIH0gZnJvbSAnLi9pbnRlZ3JhdGlvbi1zZXR1cC1mYWlsZWQtZXJyb3IuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgQ29tcHV0ZUxhYmVsQmFuZFBhcmFtcyxcbiAgTGFiZWxCYW5kR2VvbWV0cnksXG4gIExhYmVsQ2FwdGlvbk1lYXN1cmVtZW50LFxuICBMYWJlbFNjcmVlbnNob3RPcHRpb25zLFxuICBNZWFzdXJlTGFiZWxDYXB0aW9uUGFyYW1zXG59IGZyb20gJy4vbGFiZWwtc2NyZWVuc2hvdC5janMnO1xuZXhwb3J0IHtcbiAgYnVpbGRMYWJlbFN2ZyxcbiAgY29tcHV0ZUxhYmVsQmFuZCxcbiAgZXNjYXBlU3ZnVGV4dCxcbiAgbGFiZWxTY3JlZW5zaG90LFxuICBtZWFzdXJlTGFiZWxDYXB0aW9uXG59IGZyb20gJy4vbGFiZWwtc2NyZWVuc2hvdC5janMnO1xuZXhwb3J0IHR5cGUgeyBMaWJSZXNvbHZlciB9IGZyb20gJy4vbGliLXJlZ2lzdHJ5LmNqcyc7XG5leHBvcnQgeyByZWdpc3RlckxpYlJlc29sdmVyIH0gZnJvbSAnLi9saWItcmVnaXN0cnkuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgT2JzaWRpYW5SdW50aW1lVmVyc2lvbnMsXG4gIE9ic2lkaWFuVmVyc2lvbkNoYW5nZWxvZ1VybHMsXG4gIE9ic2lkaWFuVmVyc2lvbkRvd25sb2FkcyxcbiAgT2JzaWRpYW5WZXJzaW9uTWV0YWRhdGFcbn0gZnJvbSAnLi9vYnNpZGlhbi1tZXRhZGF0YS5janMnO1xuZXhwb3J0IHsgZ2V0VmVyc2lvbk1ldGFkYXRhIH0gZnJvbSAnLi9vYnNpZGlhbi1tZXRhZGF0YS5janMnO1xuZXhwb3J0IHtcbiAgQ0FUQUxZU1RfTEFURVNULFxuICBQVUJMSUNfTEFURVNUXG59IGZyb20gJy4vb2JzaWRpYW4tdmVyc2lvbi5janMnO1xuZXhwb3J0IHR5cGUgeyBPcGVuT2JzaWRpYW5TZXR0aW5nc1RhYlBhcmFtcyB9IGZyb20gJy4vb3Blbi1vYnNpZGlhbi1zZXR0aW5ncy10YWIuY2pzJztcbmV4cG9ydCB7IG9wZW5PYnNpZGlhblNldHRpbmdzVGFiIH0gZnJvbSAnLi9vcGVuLW9ic2lkaWFuLXNldHRpbmdzLXRhYi5janMnO1xuZXhwb3J0IHR5cGUgeyBPd25lZEluc3RhbmNlRXhpdGVkRXJyb3JDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vb3duZWQtaW5zdGFuY2UtZXhpdGVkLWVycm9yLmNqcyc7XG5leHBvcnQgeyBPd25lZEluc3RhbmNlRXhpdGVkRXJyb3IgfSBmcm9tICcuL293bmVkLWluc3RhbmNlLWV4aXRlZC1lcnJvci5janMnO1xuZXhwb3J0IHR5cGUgeyBQb2xsSW5PYnNpZGlhblBhcmFtcyB9IGZyb20gJy4vcG9sbC1pbi1vYnNpZGlhbi5janMnO1xuZXhwb3J0IHsgcG9sbEluT2JzaWRpYW4gfSBmcm9tICcuL3BvbGwtaW4tb2JzaWRpYW4uY2pzJztcbmV4cG9ydCB7IFJlbmRlcmVyRmFpbGVkVG9Jbml0aWFsaXplRXJyb3IgfSBmcm9tICcuL3JlbmRlcmVyLWZhaWxlZC10by1pbml0aWFsaXplLWVycm9yLmNqcyc7XG5leHBvcnQgdHlwZSB7IFJlc29sdmVFbXVsYXRvckRldmljZUlkUGFyYW1zIH0gZnJvbSAnLi9yZXNvbHZlLWVtdWxhdG9yLWRldmljZS1pZC5janMnO1xuZXhwb3J0IHsgcmVzb2x2ZUVtdWxhdG9yRGV2aWNlSWQgfSBmcm9tICcuL3Jlc29sdmUtZW11bGF0b3ItZGV2aWNlLWlkLmNqcyc7XG5leHBvcnQgdHlwZSB7IFJ1bk9ic2lkaWFuVmVyc2lvbk1hdHJpeFBhcmFtcyB9IGZyb20gJy4vcnVuLXZlcnNpb24tbWF0cml4LmNqcyc7XG5leHBvcnQgeyBydW5PYnNpZGlhblZlcnNpb25NYXRyaXggfSBmcm9tICcuL3J1bi12ZXJzaW9uLW1hdHJpeC5janMnO1xuZXhwb3J0IHR5cGUgeyBTaWxlbnRBc2FyRmFsbGJhY2tFcnJvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9zaWxlbnQtYXNhci1mYWxsYmFjay1lcnJvci5janMnO1xuZXhwb3J0IHsgU2lsZW50QXNhckZhbGxiYWNrRXJyb3IgfSBmcm9tICcuL3NpbGVudC1hc2FyLWZhbGxiYWNrLWVycm9yLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIEJ1aWxkU29mdEtleWJvYXJkRGlhZ25vc3RpY01lc3NhZ2VQYXJhbXMsXG4gIENoZWNrSXNTb2Z0S2V5Ym9hcmRVcFBhcmFtcyxcbiAgRWxlbWVudFJlY3QsXG4gIFJlc29sdmVTb2Z0S2V5Ym9hcmRUYXBQb2ludHNQYXJhbXMsXG4gIFNvZnRLZXlib2FyZFRhcFBvaW50LFxuICBTb2Z0S2V5Ym9hcmRWaWV3cG9ydFNuYXBzaG90XG59IGZyb20gJy4vc29mdC1rZXlib2FyZC1nZW9tZXRyeS5janMnO1xuZXhwb3J0IHtcbiAgYnVpbGRTb2Z0S2V5Ym9hcmREaWFnbm9zdGljTWVzc2FnZSxcbiAgY2hlY2tJc1NvZnRLZXlib2FyZFVwLFxuICBERUZBVUxUX01JTklNVU1fS0VZQk9BUkRfSEVJR0hUX0lOX1BJWEVMUyxcbiAgcGFyc2VJbnB1dE1ldGhvZFN0YXRlLFxuICByZXNvbHZlU29mdEtleWJvYXJkVGFwUG9pbnRzXG59IGZyb20gJy4vc29mdC1rZXlib2FyZC1nZW9tZXRyeS5janMnO1xuZXhwb3J0IHR5cGUge1xuICBSYWlzZVNvZnRLZXlib2FyZFBhcmFtcyxcbiAgVGFwRGV2aWNlUGFyYW1zXG59IGZyb20gJy4vc29mdC1rZXlib2FyZC5janMnO1xuZXhwb3J0IHtcbiAgcmFpc2VTb2Z0S2V5Ym9hcmQsXG4gIHRhcERldmljZVxufSBmcm9tICcuL3NvZnQta2V5Ym9hcmQuY2pzJztcbmV4cG9ydCB0eXBlIHsgU3RhbGVCdWlsZEVycm9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL3N0YWxlLWJ1aWxkLWVycm9yLmNqcyc7XG5leHBvcnQgeyBTdGFsZUJ1aWxkRXJyb3IgfSBmcm9tICcuL3N0YWxlLWJ1aWxkLWVycm9yLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIFBvcHVsYXRlRmlsZUNvbnRlbnQsXG4gIFBvcHVsYXRlRmlsZXNQYXJhbXMsXG4gIFRlbXBvcmFyeVZhdWx0Q29uc3RydWN0b3JPcHRpb25zXG59IGZyb20gJy4vdGVtcG9yYXJ5LXZhdWx0LmNqcyc7XG5leHBvcnQgeyBUZW1wb3JhcnlWYXVsdCB9IGZyb20gJy4vdGVtcG9yYXJ5LXZhdWx0LmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIEFwcGl1bVNlc3Npb25JbmZvLFxuICBBcHBpdW1UcmFuc3BvcnRDb25maWdcbn0gZnJvbSAnLi90cmFuc3BvcnQtYXBwaXVtLmNqcyc7XG5leHBvcnQgeyBBcHBpdW1UcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC1hcHBpdW0uY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgRGVza3RvcENkcFRyYW5zcG9ydENvbmZpZyxcbiAgT3duZWRJbnN0YW5jZUFzYXIsXG4gIE93bmVkSW5zdGFuY2VDb25maWcsXG4gIE93bmVkSW5zdGFuY2VFbmRwb2ludFxufSBmcm9tICcuL3RyYW5zcG9ydC1kZXNrdG9wLWNkcC5janMnO1xuZXhwb3J0IHsgRGVza3RvcENkcFRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0LWRlc2t0b3AtY2RwLmNqcyc7XG5leHBvcnQgeyBjcmVhdGVUcmFuc3BvcnRGcm9tT3B0aW9ucyB9IGZyb20gJy4vdHJhbnNwb3J0LWZhY3RvcnkuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgT2JzaWRpYW5BbmRyb2lkQXBwaXVtVHJhbnNwb3J0T3B0aW9ucyxcbiAgT2JzaWRpYW5DZHBUcmFuc3BvcnRPcHRpb25zLFxuICBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnNcbn0gZnJvbSAnLi90cmFuc3BvcnQtb3B0aW9ucy5janMnO1xuZXhwb3J0IHsgY2hlY2tJc01vYmlsZVRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0LW9wdGlvbnMuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgQ29uc29sZUNhcHR1cmVIYW5kbGUsXG4gIE9ic2lkaWFuVHJhbnNwb3J0LFxuICBUcmFuc3BvcnRFdmFsT3B0aW9uc1xufSBmcm9tICcuL3RyYW5zcG9ydC5janMnO1xuZXhwb3J0IHtcbiAgcmVnaXN0ZXJWYXVsdCxcbiAgdW5yZWdpc3RlclZhdWx0XG59IGZyb20gJy4vdmF1bHQtcmVnaXN0cnkuY2pzJztcbmV4cG9ydCB0eXBlIHsgT2JzaWRpYW5WZXJzaW9uTWF0cml4RW50cnkgfSBmcm9tICcuL3ZlcnNpb24tbWF0cml4LmNqcyc7XG5leHBvcnQgeyBERUZBVUxUX09CU0lESUFOX1ZFUlNJT05fU1BFQ1MgfSBmcm9tICcuL3ZlcnNpb24tbWF0cml4LmNqcyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0EsaUJBSU87QUFPUCx3QkFLTztBQU1QLHFDQUFvQztBQUVwQyx5Q0FBMEM7QUFLMUMsZ0NBS087QUFFUCx1Q0FBdUM7QUFFdkMsNkNBQTZDO0FBQzdDLDhCQUdPO0FBS1AsNEJBQTZCO0FBSzdCLHdCQUEwQjtBQU0xQiw4QkFJTztBQU9QLGtDQUdPO0FBTVAsaUNBR087QUFFUCw2QkFBa0M7QUFDbEMsNENBQTJDO0FBRTNDLCtCQUF3QztBQU14QyxvQ0FHTztBQUVQLHFDQUlPO0FBTVAsNkJBS087QUFNUCxvQ0FBNkM7QUFLN0MsZ0NBQXVDO0FBRXZDLHFDQUdPO0FBQ1Asc0JBQWlEO0FBa0JqRCw4QkFBK0I7QUFNL0IsNEJBR087QUFFUCw2QkFBOEI7QUFFOUIsa0RBQWtEO0FBTWxELHFDQUE4QztBQUU5Qyw0Q0FBNEM7QUFRNUMsOEJBTU87QUFFUCwwQkFBb0M7QUFPcEMsK0JBQW1DO0FBQ25DLDhCQUdPO0FBRVAsd0NBQXdDO0FBRXhDLHlDQUF5QztBQUV6Qyw4QkFBK0I7QUFDL0IsaURBQWdEO0FBRWhELHdDQUF3QztBQUV4QyxnQ0FBeUM7QUFFekMsd0NBQXdDO0FBU3hDLG9DQU1PO0FBS1AsMkJBR087QUFFUCwrQkFBZ0M7QUFNaEMsNkJBQStCO0FBSy9CLDhCQUFnQztBQU9oQyxtQ0FBb0M7QUFDcEMsK0JBQTJDO0FBTTNDLCtCQUF1QztBQU12Qyw0QkFHTztBQUVQLDRCQUErQzsiLAogICJuYW1lcyI6IFtdCn0K
|
package/dist/lib/cjs/index.d.cts
CHANGED
|
@@ -50,14 +50,16 @@ export type { ClickElementParams, ClickMouseParams, CommonArguments, CreateNoteP
|
|
|
50
50
|
export { evalInObsidian } from './eval-in-obsidian.cjs';
|
|
51
51
|
export type { ComputeFitToCanvasParams, FitScreenshotToCanvasOptions, FitToCanvasGeometry } from './fit-screenshot.cjs';
|
|
52
52
|
export { computeFitToCanvas, fitScreenshotToCanvas } from './fit-screenshot.cjs';
|
|
53
|
+
export type { HideVaultNameOptions } from './hide-vault-name.cjs';
|
|
54
|
+
export { hideVaultName } from './hide-vault-name.cjs';
|
|
53
55
|
export type { IncompatibleInstallerVersionErrorConstructorParams } from './incompatible-installer-version-error.cjs';
|
|
54
56
|
export { IncompatibleInstallerVersionError } from './incompatible-installer-version-error.cjs';
|
|
55
57
|
export type { InstallerCompatibility, InstallerCompatibilityTier, ResolveInstallerCompatibilityParams } from './installer-compatibility.cjs';
|
|
56
58
|
export { resolveInstallerCompatibility } from './installer-compatibility.cjs';
|
|
57
59
|
export type { IntegrationSetupFailedErrorConstructorParams } from './integration-setup-failed-error.cjs';
|
|
58
60
|
export { IntegrationSetupFailedError } from './integration-setup-failed-error.cjs';
|
|
59
|
-
export type { ComputeLabelBandParams, LabelBandGeometry, LabelScreenshotOptions } from './label-screenshot.cjs';
|
|
60
|
-
export { buildLabelSvg, computeLabelBand, escapeSvgText, labelScreenshot } from './label-screenshot.cjs';
|
|
61
|
+
export type { ComputeLabelBandParams, LabelBandGeometry, LabelCaptionMeasurement, LabelScreenshotOptions, MeasureLabelCaptionParams } from './label-screenshot.cjs';
|
|
62
|
+
export { buildLabelSvg, computeLabelBand, escapeSvgText, labelScreenshot, measureLabelCaption } from './label-screenshot.cjs';
|
|
61
63
|
export type { LibResolver } from './lib-registry.cjs';
|
|
62
64
|
export { registerLibResolver } from './lib-registry.cjs';
|
|
63
65
|
export type { ObsidianRuntimeVersions, ObsidianVersionChangelogUrls, ObsidianVersionDownloads, ObsidianVersionMetadata } from './obsidian-metadata.cjs';
|
|
@@ -80,6 +82,8 @@ export type { BuildSoftKeyboardDiagnosticMessageParams, CheckIsSoftKeyboardUpPar
|
|
|
80
82
|
export { buildSoftKeyboardDiagnosticMessage, checkIsSoftKeyboardUp, DEFAULT_MINIMUM_KEYBOARD_HEIGHT_IN_PIXELS, parseInputMethodState, resolveSoftKeyboardTapPoints } from './soft-keyboard-geometry.cjs';
|
|
81
83
|
export type { RaiseSoftKeyboardParams, TapDeviceParams } from './soft-keyboard.cjs';
|
|
82
84
|
export { raiseSoftKeyboard, tapDevice } from './soft-keyboard.cjs';
|
|
85
|
+
export type { StaleBuildErrorConstructorParams } from './stale-build-error.cjs';
|
|
86
|
+
export { StaleBuildError } from './stale-build-error.cjs';
|
|
83
87
|
export type { PopulateFileContent, PopulateFilesParams, TemporaryVaultConstructorOptions } from './temporary-vault.cjs';
|
|
84
88
|
export { TemporaryVault } from './temporary-vault.cjs';
|
|
85
89
|
export type { AppiumSessionInfo, AppiumTransportConfig } from './transport-appium.cjs';
|
|
@@ -62,10 +62,7 @@ function selectInstallerDownloadUrl(params) {
|
|
|
62
62
|
if (params.platform === "win32") {
|
|
63
63
|
return downloads.exe;
|
|
64
64
|
}
|
|
65
|
-
|
|
66
|
-
return downloads.dmg;
|
|
67
|
-
}
|
|
68
|
-
return downloads.tar;
|
|
65
|
+
return params.platform === "darwin" ? downloads.dmg : downloads.tar;
|
|
69
66
|
}
|
|
70
67
|
function buildAssetNamePattern(shape, version) {
|
|
71
68
|
const infixGroup = shape.optionalInfixes.length > 0 ? `(?:${shape.optionalInfixes.map((infix) => escapeRegExp(infix)).join("|")})?` : "";
|
|
@@ -80,10 +77,7 @@ function getPlatformAssetShape(platform) {
|
|
|
80
77
|
if (platform === "win32") {
|
|
81
78
|
return WINDOWS_ASSET_SHAPE;
|
|
82
79
|
}
|
|
83
|
-
|
|
84
|
-
return MAC_ASSET_SHAPE;
|
|
85
|
-
}
|
|
86
|
-
return LINUX_ASSET_SHAPE;
|
|
80
|
+
return platform === "darwin" ? MAC_ASSET_SHAPE : LINUX_ASSET_SHAPE;
|
|
87
81
|
}
|
|
88
82
|
// Annotate the CommonJS export names for ESM import in node:
|
|
89
83
|
0 && (module.exports = {
|
|
@@ -91,4 +85,4 @@ function getPlatformAssetShape(platform) {
|
|
|
91
85
|
selectInstallerAssetName,
|
|
92
86
|
selectInstallerDownloadUrl
|
|
93
87
|
});
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luc3RhbGxlci1hc3NldC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFB1cmUgaGVscGVycyBmb3IgcmVzb2x2aW5nIHdoaWNoIEdpdEh1YiByZWxlYXNlIGFzc2V0IGlzIHRoZSBkZXNrdG9wXG4gKiAqKmluc3RhbGxlcioqIGZvciBhIGdpdmVuIE9ic2lkaWFuIHZlcnNpb24gYW5kIHBsYXRmb3JtLlxuICpcbiAqIE9ic2lkaWFuIGNoYW5nZWQgaXRzIGluc3RhbGxlciBhc3NldCBuYW1pbmcgY29udmVudGlvbiBwYXJ0d2F5IHRocm91Z2ggaXRzXG4gKiBoaXN0b3J5LCBzbyBhIHZlcnNpb24gY2Fubm90IGJlIHR1cm5lZCBpbnRvIGFuIGFzc2V0IG5hbWUgYnkgc3RyaW5nXG4gKiB0ZW1wbGF0aW5nIGFsb25lOlxuICpcbiAqIC0gKipEb3QqKiBzZXBhcmF0b3Igb24gb2xkZXIgcmVsZWFzZXM6IGBPYnNpZGlhbi48dmVyPi5leGVgICh2ZXJpZmllZCAwLjE0LjVcbiAqICAgdGhyb3VnaCAxLjUuMTIpLCB3aXRoIGEgYC11bml2ZXJzYWxgIGluZml4IG9uIHRoZSBtYWNPUyBkbWdcbiAqICAgKGBPYnNpZGlhbi08dmVyPi11bml2ZXJzYWwuZG1nYCkuXG4gKiAtICoqSHlwaGVuKiogc2VwYXJhdG9yIG9uIG5ld2VyIHJlbGVhc2VzOiBgT2JzaWRpYW4tPHZlcj4uZXhlYCxcbiAqICAgYE9ic2lkaWFuLTx2ZXI+LmRtZ2AgKHZlcmlmaWVkIDEuNi43IG9ud2FyZDsgdGhlIHRyYW5zaXRpb24gaXMgYXJvdW5kIDEuNi4wKS5cbiAqXG4gKiBUaGUgaW50ZWdyYXRpb24tdGltZSBkb3dubG9hZGVyIChgb2JzaWRpYW4taW5zdGFsbGVyLnRzYCkgcXVlcmllcyB0aGVcbiAqIHJlbGVhc2UncyByZWFsIGFzc2V0IGxpc3QgYW5kIHBpY2tzIHRoZSBwbGF0Zm9ybS1jb3JyZWN0IG9uZSB3aXRoXG4gKiB7QGxpbmsgc2VsZWN0SW5zdGFsbGVyQXNzZXROYW1lfTsgaWYgdGhhdCBuZXR3b3JrIGNhbGwgaXMgdW5hdmFpbGFibGUgaXRcbiAqIGZhbGxzIGJhY2sgdG8gdHJ5aW5nIGV2ZXJ5IHtAbGluayBidWlsZEluc3RhbGxlckFzc2V0TmFtZUNhbmRpZGF0ZXN9IGZvcm0uXG4gKiBCb3RoIGhlbHBlcnMgYXJlIHB1cmUgc28gdGhlIHNlcGFyYXRvci9hcmNoIG1hdHJpeCBzdGF5cyB1bml0LXRlc3RlZCAodGhlXG4gKiBkb3dubG9hZGVyIGl0c2VsZiBuZWVkcyB0aGUgbmV0d29yayBhbmQgaXMgZXhjbHVkZWQgZnJvbSB1bml0IHRlc3RzKS5cbiAqXG4gKiBPbmx5IHRoZSB4NjQgaW5zdGFsbGVyIGlzIHJlc29sdmVkIFx1MjAxNCB0aGUgZXh0cmFjdGlvbiBwYXRoIGlzIHg2NC1vbmx5IFx1MjAxNCBzbyB0aGVcbiAqIDMyLWJpdCAvIGFybTY0IC8gYWxsLXVzZXJzIHNpYmxpbmcgYXNzZXRzIGFyZSBkZWxpYmVyYXRlbHkgcmVqZWN0ZWQuXG4gKlxuICogV2hlbiB0aGUgdmVyc2lvbiBpcyBwcmVzZW50IGluIHRoZSBiYWtlZCBgbWV0YWRhdGEuanNvbmAgY2F0YWxvZyAoZnJvbVxuICogdGhlIGBvYnNpZGlhbm1kL29ic2lkaWFuLXJlbGVhc2VzYCByZWxlYXNlIGFzc2V0cyksIGl0cyBleGFjdCBpbnN0YWxsZXIgVVJMIGlzIGFscmVhZHkga25vd247XG4gKiB7QGxpbmsgc2VsZWN0SW5zdGFsbGVyRG93bmxvYWRVcmx9IHBpY2tzIHRoZSBwbGF0Zm9ybS1jb3JyZWN0IG9uZSBhbmQgdGhlXG4gKiBkb3dubG9hZGVyIHVzZXMgaXQgZGlyZWN0bHksIHNraXBwaW5nIHRoZSByZWxlYXNlLUFQSSBsb29rdXAgYW5kIHRoZVxuICogbmFtZS10ZW1wbGF0aW5nIGZhbGxiYWNrIGVudGlyZWx5LlxuICovXG5cbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5WZXJzaW9uRG93bmxvYWRzIH0gZnJvbSAnLi9vYnNpZGlhbi1tZXRhZGF0YS5janMnO1xuXG4vKipcbiAqIFRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBzaGFwZSBvZiBhbiBPYnNpZGlhbiBpbnN0YWxsZXIgYXNzZXQgbmFtZS5cbiAqL1xuaW50ZXJmYWNlIFBsYXRmb3JtSW5zdGFsbGVyQXNzZXRTaGFwZSB7XG4gIC8qKlxuICBMZWFkaW5nIHRva2VuIG9mIHRoZSBhc3NldCBuYW1lOiBgT2JzaWRpYW5gIChXaW5kb3dzL21hY09TKSBvciBgb2JzaWRpYW5gIChMaW51eCkuXG4gICAqL1xuICByZWFkb25seSBiYXNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICBGaWxlIGV4dGVuc2lvbiB3aXRob3V0IHRoZSBsZWFkaW5nIGRvdCwgZS5nLiBgZXhlYCwgYGRtZ2AsIGB0YXIuZ3pgLlxuICAgKi9cbiAgcmVhZG9ubHkgZXh0ZW5zaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZml4ZXMgcGVybWl0dGVkIGJldHdlZW4gdGhlIHZlcnNpb24gYW5kIHRoZSBleHRlbnNpb24gZm9yIHRoZSBwcmltYXJ5XG4gICAqIChub24tYXJjaCkgYXNzZXQsIGUuZy4gYC11bml2ZXJzYWxgIG9uIHRoZSBvbGRlciBtYWNPUyBkbWcuIEFuIGVtcHR5IGFycmF5XG4gICAqIG1lYW5zIHRoZSB2ZXJzaW9uIGlzIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IHRoZSBleHRlbnNpb24uXG4gICAqL1xuICByZWFkb25seSBvcHRpb25hbEluZml4ZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG5jb25zdCBXSU5ET1dTX0FTU0VUX1NIQVBFOiBQbGF0Zm9ybUluc3RhbGxlckFzc2V0U2hhcGUgPSB7XG4gIGJhc2VOYW1lOiAnT2JzaWRpYW4nLFxuICBleHRlbnNpb246ICdleGUnLFxuICBvcHRpb25hbEluZml4ZXM6IFtdXG59O1xuXG5jb25zdCBNQUNfQVNTRVRfU0hBUEU6IFBsYXRmb3JtSW5zdGFsbGVyQXNzZXRTaGFwZSA9IHtcbiAgYmFzZU5hbWU6ICdPYnNpZGlhbicsXG4gIGV4dGVuc2lvbjogJ2RtZycsXG4gIG9wdGlvbmFsSW5maXhlczogWyctdW5pdmVyc2FsJ11cbn07XG5cbmNvbnN0IExJTlVYX0FTU0VUX1NIQVBFOiBQbGF0Zm9ybUluc3RhbGxlckFzc2V0U2hhcGUgPSB7XG4gIGJhc2VOYW1lOiAnb2JzaWRpYW4nLFxuICBleHRlbnNpb246ICd0YXIuZ3onLFxuICBvcHRpb25hbEluZml4ZXM6IFtdXG59O1xuXG4vKipcblNlcGFyYXRvciBmb3JtcyB0cmllZCwgaHlwaGVuIChuZXdlcikgZmlyc3QsIHdoZW4gZmFsbGluZyBiYWNrIHRvIHRlbXBsYXRlZCBuYW1lcy5cbiAqL1xuY29uc3QgQVNTRVRfTkFNRV9TRVBBUkFUT1JTID0gWyctJywgJy4nXSBhcyBjb25zdDtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgYnVpbGRJbnN0YWxsZXJBc3NldE5hbWVDYW5kaWRhdGVzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZEluc3RhbGxlckFzc2V0TmFtZUNhbmRpZGF0ZXNQYXJhbXMge1xuICAvKipcbiAgVGhlIHBsYXRmb3JtIHRvIGJ1aWxkIGNhbmRpZGF0ZSBuYW1lcyBmb3IuXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybTogTm9kZUpTLlBsYXRmb3JtO1xuXG4gIC8qKlxuICBUaGUgY29uY3JldGUgYHgueS56YCB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBzZWxlY3RJbnN0YWxsZXJBc3NldE5hbWV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdEluc3RhbGxlckFzc2V0TmFtZVBhcmFtcyB7XG4gIC8qKlxuICBUaGUgcmVsZWFzZSdzIGFzc2V0IG5hbWVzIChlLmcuIGZyb20gdGhlIEdpdEh1YiByZWxlYXNlIEFQSSkuXG4gICAqL1xuICByZWFkb25seSBhc3NldE5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgVGhlIHBsYXRmb3JtIHdob3NlIGluc3RhbGxlciBhc3NldCB0byBzZWxlY3QuXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybTogTm9kZUpTLlBsYXRmb3JtO1xuXG4gIC8qKlxuICBUaGUgY29uY3JldGUgYHgueS56YCB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBzZWxlY3RJbnN0YWxsZXJEb3dubG9hZFVybH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0SW5zdGFsbGVyRG93bmxvYWRVcmxQYXJhbXMge1xuICAvKipcbiAgVGhlIHZlcnNpb24ncyBiYWtlZCBkb3dubG9hZCBVUkxzLCBvciBgdW5kZWZpbmVkYCB3aGVuIGl0IGlzIGFic2VudCBmcm9tIHRoZSBjYXRhbG9nLlxuICAgKi9cbiAgcmVhZG9ubHkgZG93bmxvYWRzOiBPYnNpZGlhblZlcnNpb25Eb3dubG9hZHMgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gIFRoZSBwbGF0Zm9ybSB3aG9zZSBpbnN0YWxsZXIgVVJMIHRvIHNlbGVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtOiBOb2RlSlMuUGxhdGZvcm07XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBmYWxsYmFjayBsaXN0IG9mIGluc3RhbGxlciBhc3NldCBuYW1lcyB0byB0cnkgd2hlbiB0aGUgcmVsZWFzZSdzXG4gKiByZWFsIGFzc2V0IGxpc3QgY2Fubm90IGJlIGZldGNoZWQsIGNvdmVyaW5nIGJvdGggc2VwYXJhdG9yIGZvcm1zIChhbmQsIG9uXG4gKiBtYWNPUywgdGhlIGAtdW5pdmVyc2FsYCBpbmZpeCkuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwbGF0Zm9ybSBhbmQgdmVyc2lvbi5cbiAqIEByZXR1cm5zIENhbmRpZGF0ZSBhc3NldCBuYW1lcywgaHlwaGVuLXNlcGFyYXRlZCBmb3JtcyBmaXJzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSW5zdGFsbGVyQXNzZXROYW1lQ2FuZGlkYXRlcyhwYXJhbXM6IEJ1aWxkSW5zdGFsbGVyQXNzZXROYW1lQ2FuZGlkYXRlc1BhcmFtcyk6IHN0cmluZ1tdIHtcbiAgY29uc3Qgc2hhcGUgPSBnZXRQbGF0Zm9ybUFzc2V0U2hhcGUocGFyYW1zLnBsYXRmb3JtKTtcbiAgY29uc3QgaW5maXhlcyA9IHNoYXBlLm9wdGlvbmFsSW5maXhlcy5sZW5ndGggPiAwID8gWycnLCAuLi5zaGFwZS5vcHRpb25hbEluZml4ZXNdIDogWycnXTtcbiAgY29uc3QgY2FuZGlkYXRlczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBzZXBhcmF0b3Igb2YgQVNTRVRfTkFNRV9TRVBBUkFUT1JTKSB7XG4gICAgZm9yIChjb25zdCBpbmZpeCBvZiBpbmZpeGVzKSB7XG4gICAgICBjYW5kaWRhdGVzLnB1c2goYCR7c2hhcGUuYmFzZU5hbWV9JHtzZXBhcmF0b3J9JHtwYXJhbXMudmVyc2lvbn0ke2luZml4fS4ke3NoYXBlLmV4dGVuc2lvbn1gKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNhbmRpZGF0ZXM7XG59XG5cbi8qKlxuICogU2VsZWN0cyB0aGUgcGxhdGZvcm0tY29ycmVjdCB4NjQgaW5zdGFsbGVyIGFzc2V0IG5hbWUgZnJvbSBhIHJlbGVhc2UncyBhc3NldFxuICogbGlzdCwgdG9sZXJhdGluZyBib3RoIHRoZSBkb3QtIGFuZCBoeXBoZW4tc2VwYXJhdGVkIG5hbWluZyBjb252ZW50aW9ucyBhbmRcbiAqIHJlamVjdGluZyB0aGUgMzItYml0IC8gYXJtNjQgLyBhbGwtdXNlcnMgc2libGluZyBhc3NldHMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBhc3NldCBsaXN0LCBwbGF0Zm9ybSwgYW5kIHZlcnNpb24uXG4gKiBAcmV0dXJucyBUaGUgbWF0Y2hpbmcgYXNzZXQgbmFtZSwgb3IgYHVuZGVmaW5lZGAgaWYgbm9uZSBtYXRjaGVzIChlLmcuIGFcbiAqICAgY2F0YWx5c3QgcmVsZWFzZSB0aGF0IHNoaXBzIG5vIGluc3RhbGxlcikuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RJbnN0YWxsZXJBc3NldE5hbWUocGFyYW1zOiBTZWxlY3RJbnN0YWxsZXJBc3NldE5hbWVQYXJhbXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBwYXR0ZXJuID0gYnVpbGRBc3NldE5hbWVQYXR0ZXJuKGdldFBsYXRmb3JtQXNzZXRTaGFwZShwYXJhbXMucGxhdGZvcm0pLCBwYXJhbXMudmVyc2lvbik7XG4gIHJldHVybiBwYXJhbXMuYXNzZXROYW1lcy5maW5kKChuYW1lKSA9PiBwYXR0ZXJuLnRlc3QobmFtZSkpO1xufVxuXG4vKipcbiAqIFNlbGVjdHMgdGhlIHBsYXRmb3JtLWNvcnJlY3QgeDY0IGluc3RhbGxlciBkb3dubG9hZCBVUkwgZnJvbSBhIHZlcnNpb24nc1xuICogYmFrZWQgY2F0YWxvZyBlbnRyeS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGJha2VkIGRvd25sb2FkIFVSTHMgYW5kIHRoZSBwbGF0Zm9ybS5cbiAqIEByZXR1cm5zIFRoZSBpbnN0YWxsZXIgVVJMIGZvciB0aGUgcGxhdGZvcm0sIG9yIGB1bmRlZmluZWRgIHdoZW4gdGhlIHZlcnNpb25cbiAqICAgaGFzIG5vIGNhdGFsb2cgZW50cnkgb3Igc2hpcHMgbm8gZGVza3RvcCBpbnN0YWxsZXIgZm9yIGl0IChlLmcuIGEgY2F0YWx5c3RcbiAqICAgYnVpbGQsIG9yIGEgTGludXggYC50YXIuZ3pgIHRoYXQgd2FzIG5ldmVyIHB1Ymxpc2hlZCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RJbnN0YWxsZXJEb3dubG9hZFVybChwYXJhbXM6IFNlbGVjdEluc3RhbGxlckRvd25sb2FkVXJsUGFyYW1zKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgeyBkb3dubG9hZHMgfSA9IHBhcmFtcztcbiAgaWYgKCFkb3dubG9hZHMpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKHBhcmFtcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJykge1xuICAgIHJldHVybiBkb3dubG9hZHMuZXhlO1xuICB9XG5cbiAgaWYgKHBhcmFtcy5wbGF0Zm9ybSA9PT0gJ2RhcndpbicpIHtcbiAgICByZXR1cm4gZG93bmxvYWRzLmRtZztcbiAgfVxuXG4gIHJldHVybiBkb3dubG9hZHMudGFyO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhbiBhbmNob3JlZCByZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2hpbmcgdGhlIHByaW1hcnkgaW5zdGFsbGVyIGFzc2V0XG4gKiBmb3IgYSBwbGF0Zm9ybSBzaGFwZSBhbmQgdmVyc2lvbiwgYWNyb3NzIGJvdGggc2VwYXJhdG9yIGNvbnZlbnRpb25zLlxuICpcbiAqIEBwYXJhbSBzaGFwZSAtIFRoZSBwbGF0Zm9ybSBhc3NldCBzaGFwZS5cbiAqIEBwYXJhbSB2ZXJzaW9uIC0gVGhlIGNvbmNyZXRlIGB4LnkuemAgdmVyc2lvbi5cbiAqIEByZXR1cm5zIFRoZSBtYXRjaGluZyBwYXR0ZXJuLlxuICovXG5mdW5jdGlvbiBidWlsZEFzc2V0TmFtZVBhdHRlcm4oc2hhcGU6IFBsYXRmb3JtSW5zdGFsbGVyQXNzZXRTaGFwZSwgdmVyc2lvbjogc3RyaW5nKTogUmVnRXhwIHtcbiAgY29uc3QgaW5maXhHcm91cCA9IHNoYXBlLm9wdGlvbmFsSW5maXhlcy5sZW5ndGggPiAwXG4gICAgPyBgKD86JHtzaGFwZS5vcHRpb25hbEluZml4ZXMubWFwKChpbmZpeCkgPT4gZXNjYXBlUmVnRXhwKGluZml4KSkuam9pbignfCcpfSk/YFxuICAgIDogJyc7XG4gIHJldHVybiBuZXcgUmVnRXhwKFxuICAgIFN0cmluZy5yYXdgXiR7ZXNjYXBlUmVnRXhwKHNoYXBlLmJhc2VOYW1lKX1bLi1dJHtlc2NhcGVSZWdFeHAodmVyc2lvbil9JHtpbmZpeEdyb3VwfVxcLiR7ZXNjYXBlUmVnRXhwKHNoYXBlLmV4dGVuc2lvbil9JGBcbiAgKTtcbn1cblxuLyoqXG4gKiBFc2NhcGVzIGEgc3RyaW5nIGZvciBsaXRlcmFsIHVzZSBpbnNpZGUgYSByZWd1bGFyIGV4cHJlc3Npb24uXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHJhdyBzdHJpbmcuXG4gKiBAcmV0dXJucyBUaGUgZXNjYXBlZCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGVzY2FwZVJlZ0V4cCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHZhbHVlLnJlcGxhY2VBbGwoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCBTdHJpbmcucmF3YFxcJCZgKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgaW5zdGFsbGVyIGFzc2V0IHNoYXBlIGZvciBhIHBsYXRmb3JtLlxuICpcbiAqIEBwYXJhbSBwbGF0Zm9ybSAtIFRoZSBOb2RlLmpzIHBsYXRmb3JtIGlkZW50aWZpZXIuXG4gKiBAcmV0dXJucyBUaGUgYXNzZXQgc2hhcGUgKExpbnV4IGAudGFyLmd6YCBmb3IgYW55IG5vbi1XaW5kb3dzL21hY09TIHBsYXRmb3JtKS5cbiAqL1xuZnVuY3Rpb24gZ2V0UGxhdGZvcm1Bc3NldFNoYXBlKHBsYXRmb3JtOiBOb2RlSlMuUGxhdGZvcm0pOiBQbGF0Zm9ybUluc3RhbGxlckFzc2V0U2hhcGUge1xuICBpZiAocGxhdGZvcm0gPT09ICd3aW4zMicpIHtcbiAgICByZXR1cm4gV0lORE9XU19BU1NFVF9TSEFQRTtcbiAgfVxuXG4gIGlmIChwbGF0Zm9ybSA9PT0gJ2RhcndpbicpIHtcbiAgICByZXR1cm4gTUFDX0FTU0VUX1NIQVBFO1xuICB9XG5cbiAgcmV0dXJuIExJTlVYX0FTU0VUX1NIQVBFO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF5REEsTUFBTSxzQkFBbUQ7QUFBQSxFQUN2RCxVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxpQkFBaUIsQ0FBQztBQUNwQjtBQUVBLE1BQU0sa0JBQStDO0FBQUEsRUFDbkQsVUFBVTtBQUFBLEVBQ1YsV0FBVztBQUFBLEVBQ1gsaUJBQWlCLENBQUMsWUFBWTtBQUNoQztBQUVBLE1BQU0sb0JBQWlEO0FBQUEsRUFDckQsVUFBVTtBQUFBLEVBQ1YsV0FBVztBQUFBLEVBQ1gsaUJBQWlCLENBQUM7QUFDcEI7QUFLQSxNQUFNLHdCQUF3QixDQUFDLEtBQUssR0FBRztBQTREaEMsU0FBUyxrQ0FBa0MsUUFBMkQ7QUFDM0csUUFBTSxRQUFRLHNCQUFzQixPQUFPLFFBQVE7QUFDbkQsUUFBTSxVQUFVLE1BQU0sZ0JBQWdCLFNBQVMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLGVBQWUsSUFBSSxDQUFDLEVBQUU7QUFDdkYsUUFBTSxhQUF1QixDQUFDO0FBQzlCLGFBQVcsYUFBYSx1QkFBdUI7QUFDN0MsZUFBVyxTQUFTLFNBQVM7QUFDM0IsaUJBQVcsS0FBSyxHQUFHLE1BQU0sUUFBUSxHQUFHLFNBQVMsR0FBRyxPQUFPLE9BQU8sR0FBRyxLQUFLLElBQUksTUFBTSxTQUFTLEVBQUU7QUFBQSxJQUM3RjtBQUFBLEVBQ0Y7QUFDQSxTQUFPO0FBQ1Q7QUFXTyxTQUFTLHlCQUF5QixRQUE0RDtBQUNuRyxRQUFNLFVBQVUsc0JBQXNCLHNCQUFzQixPQUFPLFFBQVEsR0FBRyxPQUFPLE9BQU87QUFDNUYsU0FBTyxPQUFPLFdBQVcsS0FBSyxDQUFDLFNBQVMsUUFBUSxLQUFLLElBQUksQ0FBQztBQUM1RDtBQVdPLFNBQVMsMkJBQTJCLFFBQThEO0FBQ3ZHLFFBQU0sRUFBRSxVQUFVLElBQUk7QUFDdEIsTUFBSSxDQUFDLFdBQVc7QUFDZCxXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUksT0FBTyxhQUFhLFNBQVM7QUFDL0IsV0FBTyxVQUFVO0FBQUEsRUFDbkI7QUFFQSxNQUFJLE9BQU8sYUFBYSxVQUFVO0FBQ2hDLFdBQU8sVUFBVTtBQUFBLEVBQ25CO0FBRUEsU0FBTyxVQUFVO0FBQ25CO0FBVUEsU0FBUyxzQkFBc0IsT0FBb0MsU0FBeUI7QUFDMUYsUUFBTSxhQUFhLE1BQU0sZ0JBQWdCLFNBQVMsSUFDOUMsTUFBTSxNQUFNLGdCQUFnQixJQUFJLENBQUMsVUFBVSxhQUFhLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLE9BQ3pFO0FBQ0osU0FBTyxJQUFJO0FBQUEsSUFDVCxPQUFPLE9BQU8sYUFBYSxNQUFNLFFBQVEsQ0FBQyxPQUFPLGFBQWEsT0FBTyxDQUFDLEdBQUcsVUFBVSxLQUFLLGFBQWEsTUFBTSxTQUFTLENBQUM7QUFBQSxFQUN2SDtBQUNGO0FBUUEsU0FBUyxhQUFhLE9BQXVCO0FBQzNDLFNBQU8sTUFBTSxXQUFXLHVCQUF1QixPQUFPLFFBQVE7QUFDaEU7QUFRQSxTQUFTLHNCQUFzQixVQUF3RDtBQUNyRixNQUFJLGFBQWEsU0FBUztBQUN4QixXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUksYUFBYSxVQUFVO0FBQ3pCLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luc3RhbGxlci1hc3NldC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFB1cmUgaGVscGVycyBmb3IgcmVzb2x2aW5nIHdoaWNoIEdpdEh1YiByZWxlYXNlIGFzc2V0IGlzIHRoZSBkZXNrdG9wXG4gKiAqKmluc3RhbGxlcioqIGZvciBhIGdpdmVuIE9ic2lkaWFuIHZlcnNpb24gYW5kIHBsYXRmb3JtLlxuICpcbiAqIE9ic2lkaWFuIGNoYW5nZWQgaXRzIGluc3RhbGxlciBhc3NldCBuYW1pbmcgY29udmVudGlvbiBwYXJ0d2F5IHRocm91Z2ggaXRzXG4gKiBoaXN0b3J5LCBzbyBhIHZlcnNpb24gY2Fubm90IGJlIHR1cm5lZCBpbnRvIGFuIGFzc2V0IG5hbWUgYnkgc3RyaW5nXG4gKiB0ZW1wbGF0aW5nIGFsb25lOlxuICpcbiAqIC0gKipEb3QqKiBzZXBhcmF0b3Igb24gb2xkZXIgcmVsZWFzZXM6IGBPYnNpZGlhbi48dmVyPi5leGVgICh2ZXJpZmllZCAwLjE0LjVcbiAqICAgdGhyb3VnaCAxLjUuMTIpLCB3aXRoIGEgYC11bml2ZXJzYWxgIGluZml4IG9uIHRoZSBtYWNPUyBkbWdcbiAqICAgKGBPYnNpZGlhbi08dmVyPi11bml2ZXJzYWwuZG1nYCkuXG4gKiAtICoqSHlwaGVuKiogc2VwYXJhdG9yIG9uIG5ld2VyIHJlbGVhc2VzOiBgT2JzaWRpYW4tPHZlcj4uZXhlYCxcbiAqICAgYE9ic2lkaWFuLTx2ZXI+LmRtZ2AgKHZlcmlmaWVkIDEuNi43IG9ud2FyZDsgdGhlIHRyYW5zaXRpb24gaXMgYXJvdW5kIDEuNi4wKS5cbiAqXG4gKiBUaGUgaW50ZWdyYXRpb24tdGltZSBkb3dubG9hZGVyIChgb2JzaWRpYW4taW5zdGFsbGVyLnRzYCkgcXVlcmllcyB0aGVcbiAqIHJlbGVhc2UncyByZWFsIGFzc2V0IGxpc3QgYW5kIHBpY2tzIHRoZSBwbGF0Zm9ybS1jb3JyZWN0IG9uZSB3aXRoXG4gKiB7QGxpbmsgc2VsZWN0SW5zdGFsbGVyQXNzZXROYW1lfTsgaWYgdGhhdCBuZXR3b3JrIGNhbGwgaXMgdW5hdmFpbGFibGUgaXRcbiAqIGZhbGxzIGJhY2sgdG8gdHJ5aW5nIGV2ZXJ5IHtAbGluayBidWlsZEluc3RhbGxlckFzc2V0TmFtZUNhbmRpZGF0ZXN9IGZvcm0uXG4gKiBCb3RoIGhlbHBlcnMgYXJlIHB1cmUgc28gdGhlIHNlcGFyYXRvci9hcmNoIG1hdHJpeCBzdGF5cyB1bml0LXRlc3RlZCAodGhlXG4gKiBkb3dubG9hZGVyIGl0c2VsZiBuZWVkcyB0aGUgbmV0d29yayBhbmQgaXMgZXhjbHVkZWQgZnJvbSB1bml0IHRlc3RzKS5cbiAqXG4gKiBPbmx5IHRoZSB4NjQgaW5zdGFsbGVyIGlzIHJlc29sdmVkIFx1MjAxNCB0aGUgZXh0cmFjdGlvbiBwYXRoIGlzIHg2NC1vbmx5IFx1MjAxNCBzbyB0aGVcbiAqIDMyLWJpdCAvIGFybTY0IC8gYWxsLXVzZXJzIHNpYmxpbmcgYXNzZXRzIGFyZSBkZWxpYmVyYXRlbHkgcmVqZWN0ZWQuXG4gKlxuICogV2hlbiB0aGUgdmVyc2lvbiBpcyBwcmVzZW50IGluIHRoZSBiYWtlZCBgbWV0YWRhdGEuanNvbmAgY2F0YWxvZyAoZnJvbVxuICogdGhlIGBvYnNpZGlhbm1kL29ic2lkaWFuLXJlbGVhc2VzYCByZWxlYXNlIGFzc2V0cyksIGl0cyBleGFjdCBpbnN0YWxsZXIgVVJMIGlzIGFscmVhZHkga25vd247XG4gKiB7QGxpbmsgc2VsZWN0SW5zdGFsbGVyRG93bmxvYWRVcmx9IHBpY2tzIHRoZSBwbGF0Zm9ybS1jb3JyZWN0IG9uZSBhbmQgdGhlXG4gKiBkb3dubG9hZGVyIHVzZXMgaXQgZGlyZWN0bHksIHNraXBwaW5nIHRoZSByZWxlYXNlLUFQSSBsb29rdXAgYW5kIHRoZVxuICogbmFtZS10ZW1wbGF0aW5nIGZhbGxiYWNrIGVudGlyZWx5LlxuICovXG5cbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5WZXJzaW9uRG93bmxvYWRzIH0gZnJvbSAnLi9vYnNpZGlhbi1tZXRhZGF0YS5janMnO1xuXG4vKipcbiAqIFRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBzaGFwZSBvZiBhbiBPYnNpZGlhbiBpbnN0YWxsZXIgYXNzZXQgbmFtZS5cbiAqL1xuaW50ZXJmYWNlIFBsYXRmb3JtSW5zdGFsbGVyQXNzZXRTaGFwZSB7XG4gIC8qKlxuICBMZWFkaW5nIHRva2VuIG9mIHRoZSBhc3NldCBuYW1lOiBgT2JzaWRpYW5gIChXaW5kb3dzL21hY09TKSBvciBgb2JzaWRpYW5gIChMaW51eCkuXG4gICAqL1xuICByZWFkb25seSBiYXNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICBGaWxlIGV4dGVuc2lvbiB3aXRob3V0IHRoZSBsZWFkaW5nIGRvdCwgZS5nLiBgZXhlYCwgYGRtZ2AsIGB0YXIuZ3pgLlxuICAgKi9cbiAgcmVhZG9ubHkgZXh0ZW5zaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZml4ZXMgcGVybWl0dGVkIGJldHdlZW4gdGhlIHZlcnNpb24gYW5kIHRoZSBleHRlbnNpb24gZm9yIHRoZSBwcmltYXJ5XG4gICAqIChub24tYXJjaCkgYXNzZXQsIGUuZy4gYC11bml2ZXJzYWxgIG9uIHRoZSBvbGRlciBtYWNPUyBkbWcuIEFuIGVtcHR5IGFycmF5XG4gICAqIG1lYW5zIHRoZSB2ZXJzaW9uIGlzIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IHRoZSBleHRlbnNpb24uXG4gICAqL1xuICByZWFkb25seSBvcHRpb25hbEluZml4ZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG5jb25zdCBXSU5ET1dTX0FTU0VUX1NIQVBFOiBQbGF0Zm9ybUluc3RhbGxlckFzc2V0U2hhcGUgPSB7XG4gIGJhc2VOYW1lOiAnT2JzaWRpYW4nLFxuICBleHRlbnNpb246ICdleGUnLFxuICBvcHRpb25hbEluZml4ZXM6IFtdXG59O1xuXG5jb25zdCBNQUNfQVNTRVRfU0hBUEU6IFBsYXRmb3JtSW5zdGFsbGVyQXNzZXRTaGFwZSA9IHtcbiAgYmFzZU5hbWU6ICdPYnNpZGlhbicsXG4gIGV4dGVuc2lvbjogJ2RtZycsXG4gIG9wdGlvbmFsSW5maXhlczogWyctdW5pdmVyc2FsJ11cbn07XG5cbmNvbnN0IExJTlVYX0FTU0VUX1NIQVBFOiBQbGF0Zm9ybUluc3RhbGxlckFzc2V0U2hhcGUgPSB7XG4gIGJhc2VOYW1lOiAnb2JzaWRpYW4nLFxuICBleHRlbnNpb246ICd0YXIuZ3onLFxuICBvcHRpb25hbEluZml4ZXM6IFtdXG59O1xuXG4vKipcblNlcGFyYXRvciBmb3JtcyB0cmllZCwgaHlwaGVuIChuZXdlcikgZmlyc3QsIHdoZW4gZmFsbGluZyBiYWNrIHRvIHRlbXBsYXRlZCBuYW1lcy5cbiAqL1xuY29uc3QgQVNTRVRfTkFNRV9TRVBBUkFUT1JTID0gWyctJywgJy4nXSBhcyBjb25zdDtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgYnVpbGRJbnN0YWxsZXJBc3NldE5hbWVDYW5kaWRhdGVzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZEluc3RhbGxlckFzc2V0TmFtZUNhbmRpZGF0ZXNQYXJhbXMge1xuICAvKipcbiAgVGhlIHBsYXRmb3JtIHRvIGJ1aWxkIGNhbmRpZGF0ZSBuYW1lcyBmb3IuXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybTogTm9kZUpTLlBsYXRmb3JtO1xuXG4gIC8qKlxuICBUaGUgY29uY3JldGUgYHgueS56YCB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBzZWxlY3RJbnN0YWxsZXJBc3NldE5hbWV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdEluc3RhbGxlckFzc2V0TmFtZVBhcmFtcyB7XG4gIC8qKlxuICBUaGUgcmVsZWFzZSdzIGFzc2V0IG5hbWVzIChlLmcuIGZyb20gdGhlIEdpdEh1YiByZWxlYXNlIEFQSSkuXG4gICAqL1xuICByZWFkb25seSBhc3NldE5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgVGhlIHBsYXRmb3JtIHdob3NlIGluc3RhbGxlciBhc3NldCB0byBzZWxlY3QuXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybTogTm9kZUpTLlBsYXRmb3JtO1xuXG4gIC8qKlxuICBUaGUgY29uY3JldGUgYHgueS56YCB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBzZWxlY3RJbnN0YWxsZXJEb3dubG9hZFVybH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0SW5zdGFsbGVyRG93bmxvYWRVcmxQYXJhbXMge1xuICAvKipcbiAgVGhlIHZlcnNpb24ncyBiYWtlZCBkb3dubG9hZCBVUkxzLCBvciBgdW5kZWZpbmVkYCB3aGVuIGl0IGlzIGFic2VudCBmcm9tIHRoZSBjYXRhbG9nLlxuICAgKi9cbiAgcmVhZG9ubHkgZG93bmxvYWRzOiBPYnNpZGlhblZlcnNpb25Eb3dubG9hZHMgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gIFRoZSBwbGF0Zm9ybSB3aG9zZSBpbnN0YWxsZXIgVVJMIHRvIHNlbGVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtOiBOb2RlSlMuUGxhdGZvcm07XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBmYWxsYmFjayBsaXN0IG9mIGluc3RhbGxlciBhc3NldCBuYW1lcyB0byB0cnkgd2hlbiB0aGUgcmVsZWFzZSdzXG4gKiByZWFsIGFzc2V0IGxpc3QgY2Fubm90IGJlIGZldGNoZWQsIGNvdmVyaW5nIGJvdGggc2VwYXJhdG9yIGZvcm1zIChhbmQsIG9uXG4gKiBtYWNPUywgdGhlIGAtdW5pdmVyc2FsYCBpbmZpeCkuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwbGF0Zm9ybSBhbmQgdmVyc2lvbi5cbiAqIEByZXR1cm5zIENhbmRpZGF0ZSBhc3NldCBuYW1lcywgaHlwaGVuLXNlcGFyYXRlZCBmb3JtcyBmaXJzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSW5zdGFsbGVyQXNzZXROYW1lQ2FuZGlkYXRlcyhwYXJhbXM6IEJ1aWxkSW5zdGFsbGVyQXNzZXROYW1lQ2FuZGlkYXRlc1BhcmFtcyk6IHN0cmluZ1tdIHtcbiAgY29uc3Qgc2hhcGUgPSBnZXRQbGF0Zm9ybUFzc2V0U2hhcGUocGFyYW1zLnBsYXRmb3JtKTtcbiAgY29uc3QgaW5maXhlcyA9IHNoYXBlLm9wdGlvbmFsSW5maXhlcy5sZW5ndGggPiAwID8gWycnLCAuLi5zaGFwZS5vcHRpb25hbEluZml4ZXNdIDogWycnXTtcbiAgY29uc3QgY2FuZGlkYXRlczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBzZXBhcmF0b3Igb2YgQVNTRVRfTkFNRV9TRVBBUkFUT1JTKSB7XG4gICAgZm9yIChjb25zdCBpbmZpeCBvZiBpbmZpeGVzKSB7XG4gICAgICBjYW5kaWRhdGVzLnB1c2goYCR7c2hhcGUuYmFzZU5hbWV9JHtzZXBhcmF0b3J9JHtwYXJhbXMudmVyc2lvbn0ke2luZml4fS4ke3NoYXBlLmV4dGVuc2lvbn1gKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNhbmRpZGF0ZXM7XG59XG5cbi8qKlxuICogU2VsZWN0cyB0aGUgcGxhdGZvcm0tY29ycmVjdCB4NjQgaW5zdGFsbGVyIGFzc2V0IG5hbWUgZnJvbSBhIHJlbGVhc2UncyBhc3NldFxuICogbGlzdCwgdG9sZXJhdGluZyBib3RoIHRoZSBkb3QtIGFuZCBoeXBoZW4tc2VwYXJhdGVkIG5hbWluZyBjb252ZW50aW9ucyBhbmRcbiAqIHJlamVjdGluZyB0aGUgMzItYml0IC8gYXJtNjQgLyBhbGwtdXNlcnMgc2libGluZyBhc3NldHMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBhc3NldCBsaXN0LCBwbGF0Zm9ybSwgYW5kIHZlcnNpb24uXG4gKiBAcmV0dXJucyBUaGUgbWF0Y2hpbmcgYXNzZXQgbmFtZSwgb3IgYHVuZGVmaW5lZGAgaWYgbm9uZSBtYXRjaGVzIChlLmcuIGFcbiAqICAgY2F0YWx5c3QgcmVsZWFzZSB0aGF0IHNoaXBzIG5vIGluc3RhbGxlcikuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RJbnN0YWxsZXJBc3NldE5hbWUocGFyYW1zOiBTZWxlY3RJbnN0YWxsZXJBc3NldE5hbWVQYXJhbXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBwYXR0ZXJuID0gYnVpbGRBc3NldE5hbWVQYXR0ZXJuKGdldFBsYXRmb3JtQXNzZXRTaGFwZShwYXJhbXMucGxhdGZvcm0pLCBwYXJhbXMudmVyc2lvbik7XG4gIHJldHVybiBwYXJhbXMuYXNzZXROYW1lcy5maW5kKChuYW1lKSA9PiBwYXR0ZXJuLnRlc3QobmFtZSkpO1xufVxuXG4vKipcbiAqIFNlbGVjdHMgdGhlIHBsYXRmb3JtLWNvcnJlY3QgeDY0IGluc3RhbGxlciBkb3dubG9hZCBVUkwgZnJvbSBhIHZlcnNpb24nc1xuICogYmFrZWQgY2F0YWxvZyBlbnRyeS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGJha2VkIGRvd25sb2FkIFVSTHMgYW5kIHRoZSBwbGF0Zm9ybS5cbiAqIEByZXR1cm5zIFRoZSBpbnN0YWxsZXIgVVJMIGZvciB0aGUgcGxhdGZvcm0sIG9yIGB1bmRlZmluZWRgIHdoZW4gdGhlIHZlcnNpb25cbiAqICAgaGFzIG5vIGNhdGFsb2cgZW50cnkgb3Igc2hpcHMgbm8gZGVza3RvcCBpbnN0YWxsZXIgZm9yIGl0IChlLmcuIGEgY2F0YWx5c3RcbiAqICAgYnVpbGQsIG9yIGEgTGludXggYC50YXIuZ3pgIHRoYXQgd2FzIG5ldmVyIHB1Ymxpc2hlZCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RJbnN0YWxsZXJEb3dubG9hZFVybChwYXJhbXM6IFNlbGVjdEluc3RhbGxlckRvd25sb2FkVXJsUGFyYW1zKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgeyBkb3dubG9hZHMgfSA9IHBhcmFtcztcbiAgaWYgKCFkb3dubG9hZHMpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKHBhcmFtcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJykge1xuICAgIHJldHVybiBkb3dubG9hZHMuZXhlO1xuICB9XG5cbiAgcmV0dXJuIHBhcmFtcy5wbGF0Zm9ybSA9PT0gJ2RhcndpbicgPyBkb3dubG9hZHMuZG1nIDogZG93bmxvYWRzLnRhcjtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYW4gYW5jaG9yZWQgcmVndWxhciBleHByZXNzaW9uIG1hdGNoaW5nIHRoZSBwcmltYXJ5IGluc3RhbGxlciBhc3NldFxuICogZm9yIGEgcGxhdGZvcm0gc2hhcGUgYW5kIHZlcnNpb24sIGFjcm9zcyBib3RoIHNlcGFyYXRvciBjb252ZW50aW9ucy5cbiAqXG4gKiBAcGFyYW0gc2hhcGUgLSBUaGUgcGxhdGZvcm0gYXNzZXQgc2hhcGUuXG4gKiBAcGFyYW0gdmVyc2lvbiAtIFRoZSBjb25jcmV0ZSBgeC55LnpgIHZlcnNpb24uXG4gKiBAcmV0dXJucyBUaGUgbWF0Y2hpbmcgcGF0dGVybi5cbiAqL1xuZnVuY3Rpb24gYnVpbGRBc3NldE5hbWVQYXR0ZXJuKHNoYXBlOiBQbGF0Zm9ybUluc3RhbGxlckFzc2V0U2hhcGUsIHZlcnNpb246IHN0cmluZyk6IFJlZ0V4cCB7XG4gIGNvbnN0IGluZml4R3JvdXAgPSBzaGFwZS5vcHRpb25hbEluZml4ZXMubGVuZ3RoID4gMFxuICAgID8gYCg/OiR7c2hhcGUub3B0aW9uYWxJbmZpeGVzLm1hcCgoaW5maXgpID0+IGVzY2FwZVJlZ0V4cChpbmZpeCkpLmpvaW4oJ3wnKX0pP2BcbiAgICA6ICcnO1xuICByZXR1cm4gbmV3IFJlZ0V4cChcbiAgICBTdHJpbmcucmF3YF4ke2VzY2FwZVJlZ0V4cChzaGFwZS5iYXNlTmFtZSl9Wy4tXSR7ZXNjYXBlUmVnRXhwKHZlcnNpb24pfSR7aW5maXhHcm91cH1cXC4ke2VzY2FwZVJlZ0V4cChzaGFwZS5leHRlbnNpb24pfSRgXG4gICk7XG59XG5cbi8qKlxuICogRXNjYXBlcyBhIHN0cmluZyBmb3IgbGl0ZXJhbCB1c2UgaW5zaWRlIGEgcmVndWxhciBleHByZXNzaW9uLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSByYXcgc3RyaW5nLlxuICogQHJldHVybnMgVGhlIGVzY2FwZWQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBlc2NhcGVSZWdFeHAodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2YWx1ZS5yZXBsYWNlQWxsKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgU3RyaW5nLnJhd2BcXCQmYCk7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIGluc3RhbGxlciBhc3NldCBzaGFwZSBmb3IgYSBwbGF0Zm9ybS5cbiAqXG4gKiBAcGFyYW0gcGxhdGZvcm0gLSBUaGUgTm9kZS5qcyBwbGF0Zm9ybSBpZGVudGlmaWVyLlxuICogQHJldHVybnMgVGhlIGFzc2V0IHNoYXBlIChMaW51eCBgLnRhci5nemAgZm9yIGFueSBub24tV2luZG93cy9tYWNPUyBwbGF0Zm9ybSkuXG4gKi9cbmZ1bmN0aW9uIGdldFBsYXRmb3JtQXNzZXRTaGFwZShwbGF0Zm9ybTogTm9kZUpTLlBsYXRmb3JtKTogUGxhdGZvcm1JbnN0YWxsZXJBc3NldFNoYXBlIHtcbiAgaWYgKHBsYXRmb3JtID09PSAnd2luMzInKSB7XG4gICAgcmV0dXJuIFdJTkRPV1NfQVNTRVRfU0hBUEU7XG4gIH1cblxuICByZXR1cm4gcGxhdGZvcm0gPT09ICdkYXJ3aW4nID8gTUFDX0FTU0VUX1NIQVBFIDogTElOVVhfQVNTRVRfU0hBUEU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXlEQSxNQUFNLHNCQUFtRDtBQUFBLEVBQ3ZELFVBQVU7QUFBQSxFQUNWLFdBQVc7QUFBQSxFQUNYLGlCQUFpQixDQUFDO0FBQ3BCO0FBRUEsTUFBTSxrQkFBK0M7QUFBQSxFQUNuRCxVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxpQkFBaUIsQ0FBQyxZQUFZO0FBQ2hDO0FBRUEsTUFBTSxvQkFBaUQ7QUFBQSxFQUNyRCxVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxpQkFBaUIsQ0FBQztBQUNwQjtBQUtBLE1BQU0sd0JBQXdCLENBQUMsS0FBSyxHQUFHO0FBNERoQyxTQUFTLGtDQUFrQyxRQUEyRDtBQUMzRyxRQUFNLFFBQVEsc0JBQXNCLE9BQU8sUUFBUTtBQUNuRCxRQUFNLFVBQVUsTUFBTSxnQkFBZ0IsU0FBUyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sZUFBZSxJQUFJLENBQUMsRUFBRTtBQUN2RixRQUFNLGFBQXVCLENBQUM7QUFDOUIsYUFBVyxhQUFhLHVCQUF1QjtBQUM3QyxlQUFXLFNBQVMsU0FBUztBQUMzQixpQkFBVyxLQUFLLEdBQUcsTUFBTSxRQUFRLEdBQUcsU0FBUyxHQUFHLE9BQU8sT0FBTyxHQUFHLEtBQUssSUFBSSxNQUFNLFNBQVMsRUFBRTtBQUFBLElBQzdGO0FBQUEsRUFDRjtBQUNBLFNBQU87QUFDVDtBQVdPLFNBQVMseUJBQXlCLFFBQTREO0FBQ25HLFFBQU0sVUFBVSxzQkFBc0Isc0JBQXNCLE9BQU8sUUFBUSxHQUFHLE9BQU8sT0FBTztBQUM1RixTQUFPLE9BQU8sV0FBVyxLQUFLLENBQUMsU0FBUyxRQUFRLEtBQUssSUFBSSxDQUFDO0FBQzVEO0FBV08sU0FBUywyQkFBMkIsUUFBOEQ7QUFDdkcsUUFBTSxFQUFFLFVBQVUsSUFBSTtBQUN0QixNQUFJLENBQUMsV0FBVztBQUNkLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxPQUFPLGFBQWEsU0FBUztBQUMvQixXQUFPLFVBQVU7QUFBQSxFQUNuQjtBQUVBLFNBQU8sT0FBTyxhQUFhLFdBQVcsVUFBVSxNQUFNLFVBQVU7QUFDbEU7QUFVQSxTQUFTLHNCQUFzQixPQUFvQyxTQUF5QjtBQUMxRixRQUFNLGFBQWEsTUFBTSxnQkFBZ0IsU0FBUyxJQUM5QyxNQUFNLE1BQU0sZ0JBQWdCLElBQUksQ0FBQyxVQUFVLGFBQWEsS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsT0FDekU7QUFDSixTQUFPLElBQUk7QUFBQSxJQUNULE9BQU8sT0FBTyxhQUFhLE1BQU0sUUFBUSxDQUFDLE9BQU8sYUFBYSxPQUFPLENBQUMsR0FBRyxVQUFVLEtBQUssYUFBYSxNQUFNLFNBQVMsQ0FBQztBQUFBLEVBQ3ZIO0FBQ0Y7QUFRQSxTQUFTLGFBQWEsT0FBdUI7QUFDM0MsU0FBTyxNQUFNLFdBQVcsdUJBQXVCLE9BQU8sUUFBUTtBQUNoRTtBQVFBLFNBQVMsc0JBQXNCLFVBQXdEO0FBQ3JGLE1BQUksYUFBYSxTQUFTO0FBQ3hCLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTyxhQUFhLFdBQVcsa0JBQWtCO0FBQ25EOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -39,17 +39,14 @@ function resolveInstallerCompatibility(params) {
|
|
|
39
39
|
...recommendedFloor
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
return {
|
|
42
|
+
return minRecommendedInstallerVersion !== void 0 && (0, import_obsidian_version.compareVersions)(installerVersion, minRecommendedInstallerVersion) < 0 ? {
|
|
43
|
+
appVersion,
|
|
44
|
+
installerVersion,
|
|
45
|
+
message: `Obsidian installer ${installerVersion} runs Obsidian ${appVersion} but is older than the recommended installer ${minRecommendedInstallerVersion}; update the installer for full compatibility.`,
|
|
46
|
+
minRecommendedInstallerVersion,
|
|
47
|
+
minRunnableInstallerVersion,
|
|
48
|
+
tier: "nagged"
|
|
49
|
+
} : {
|
|
53
50
|
appVersion,
|
|
54
51
|
installerVersion,
|
|
55
52
|
minRunnableInstallerVersion,
|
|
@@ -61,4 +58,4 @@ function resolveInstallerCompatibility(params) {
|
|
|
61
58
|
0 && (module.exports = {
|
|
62
59
|
resolveInstallerCompatibility
|
|
63
60
|
});
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luc3RhbGxlci1jb21wYXRpYmlsaXR5LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHVyZSB2ZXJkaWN0IG9uIHdoZXRoZXIgYSByZXNvbHZlZCAoT2JzaWRpYW4gYXBwLCBpbnN0YWxsZXIpIHZlcnNpb24gcGFpciBpc1xuICogY29tcGF0aWJsZSwgY29tcHV0ZWQgb2ZmbGluZSBmcm9tIHRoZSBgbWV0YWRhdGEuanNvbmAgdGhyZXNob2xkcy4gS2VwdCBzZXBhcmF0ZVxuICogZnJvbSB0aGUgaW50ZWdyYXRpb24tb25seSBgdHJhbnNwb3J0LWZhY3RvcnlgICh3aGljaCBkcml2ZXMgcmVhbFxuICogZG93bmxvYWRzL2xhdW5jaGVzIGFuZCBpcyBleGNsdWRlZCBmcm9tIHVuaXQgdGVzdHMpIHNvIHRoZSB0aWVyIGxvZ2ljIHN0YXlzXG4gKiB1bml0LXRlc3RhYmxlIFx1MjAxNCBtaXJyb3JpbmcgdGhlIGByZW5kZXJlci1ib290LWRldGVjdGlvbmAgc3BsaXQuXG4gKlxuICogVHdvIHRocmVzaG9sZHMgZHJpdmUgdGhlIHZlcmRpY3QsIGJvdGggaW5zdGFsbGVyIHZlcnNpb25zIGRpcmVjdGx5IGNvbXBhcmFibGVcbiAqIHRvIHRoZSByZXNvbHZlZCBpbnN0YWxsZXIvc2hlbGwgdmVyc2lvbjpcbiAqXG4gKiAtIGBtaW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb25gIFx1MjAxNCB0aGUgcnVuIGZsb29yLiBCZWxvdyBpdCB0aGUgYXBwIGNhbm5vdCBib290XG4gKiAgIChgJ3VucnVubmFibGUnYCk7IHRoZSBjYWxsZXIgdHVybnMgdGhpcyBpbnRvIGEgcHJvYWN0aXZlXG4gKiAgIGBJbmNvbXBhdGlibGVJbnN0YWxsZXJWZXJzaW9uRXJyb3JgIGJlZm9yZSBhbnkgZG93bmxvYWQvbGF1bmNoIFx1MjAxNCB1bmxlc3MgdGhlXG4gKiAgIGNhbGxlciBoYXMgZGlzYWJsZWQgdGhlIHByb2FjdGl2ZSB0aHJvdyAoYHNob3VsZFRocm93T25JbmNvbXBhdGlibGVJbnN0YWxsZXJgXG4gKiAgIGBmYWxzZWApLCBpbiB3aGljaCBjYXNlIHRoZSBib290IHByb2NlZWRzIGFuZCB0aGUgcmVhY3RpdmUgZGVhZC1ib290IGZhc3QtZmFpbFxuICogICBjYXRjaGVzIGl0LlxuICogLSBgbWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uYCBcdTIwMTQgdGhlIHJlY29tbWVuZGVkIGZsb29yIChvbGRlciB2ZXJzaW9uc1xuICogICBvbmx5KS4gQXQvYWJvdmUgdGhlIHJ1biBmbG9vciBidXQgYmVsb3cgdGhpcywgdGhlIGFwcCBydW5zIGJ1dCBpcyBiZWxvd1xuICogICBPYnNpZGlhbidzIHJlY29tbWVuZGF0aW9uIChgJ25hZ2dlZCdgKSwgc3VyZmFjZWQgYXMgYSB3YXJuaW5nLlxuICpcbiAqIFdoZW4gdGhlIGluc3RhbGxlciB2ZXJzaW9uIGlzIHVua25vd24gKGUuZy4gYW4gdW5kZXRlY3RhYmxlIExpbnV4IHNoZWxsKSBvciB0aGVcbiAqIGFwcCB2ZXJzaW9uIGlzIGFic2VudCBmcm9tIHRoZSB0YWJsZSwgdGhlIHZlcmRpY3QgaXMgYCd1bmtub3duJ2AgYW5kIG5vdGhpbmcgaXNcbiAqIHRocm93biBvciB3YXJuZWQgXHUyMDE0IHRoZSByZWFjdGl2ZSBkZWFkLWJvb3QgZmFzdC1mYWlsIHJlbWFpbnMgdGhlIHNhZmV0eSBuZXQuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblZlcnNpb25NZXRhZGF0YSB9IGZyb20gJy4vb2JzaWRpYW4tbWV0YWRhdGEuY2pzJztcblxuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSAnLi9vYnNpZGlhbi12ZXJzaW9uLmNqcyc7XG5cbi8qKlxuICogVGhlIGNvbXBhdGliaWxpdHkgdmVyZGljdCBmb3IgYSByZXNvbHZlZCAoYXBwLCBpbnN0YWxsZXIpIHZlcnNpb24gcGFpciwgY2FycmllZFxuICogYXMgZGF0YSBvbiB0aGUgdHJhbnNwb3J0IC8gY29ubmVjdGlvbiByZXN1bHQgc28gY29uc3VtZXJzIGNhbiBhc3NlcnQgb24gaXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFsbGVyQ29tcGF0aWJpbGl0eSB7XG4gIC8qKlxuICBUaGUgcmVzb2x2ZWQgT2JzaWRpYW4gYXBwIChhc2FyKSB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgcmVzb2x2ZWQgaW5zdGFsbGVyL0VsZWN0cm9uIHNoZWxsIHZlcnNpb24sIG9yIGBudWxsYCB3aGVuIHVua25vd24uXG4gICAqL1xuICByZWFkb25seSBpbnN0YWxsZXJWZXJzaW9uOiBudWxsIHwgc3RyaW5nO1xuXG4gIC8qKlxuICBBIGh1bWFuLXJlYWRhYmxlIGV4cGxhbmF0aW9uLCBwcmVzZW50IGZvciB0aGUgYCduYWdnZWQnYCB0aWVyLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZT86IHN0cmluZztcblxuICAvKipcbiAgVGhlIHJlY29tbWVuZGVkIGluc3RhbGxlciBmbG9vciwgd2hlbiB0aGUgdGFibGUgY2FycmllcyBvbmUuXG4gICAqL1xuICByZWFkb25seSBtaW5SZWNvbW1lbmRlZEluc3RhbGxlclZlcnNpb24/
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luc3RhbGxlci1jb21wYXRpYmlsaXR5LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHVyZSB2ZXJkaWN0IG9uIHdoZXRoZXIgYSByZXNvbHZlZCAoT2JzaWRpYW4gYXBwLCBpbnN0YWxsZXIpIHZlcnNpb24gcGFpciBpc1xuICogY29tcGF0aWJsZSwgY29tcHV0ZWQgb2ZmbGluZSBmcm9tIHRoZSBgbWV0YWRhdGEuanNvbmAgdGhyZXNob2xkcy4gS2VwdCBzZXBhcmF0ZVxuICogZnJvbSB0aGUgaW50ZWdyYXRpb24tb25seSBgdHJhbnNwb3J0LWZhY3RvcnlgICh3aGljaCBkcml2ZXMgcmVhbFxuICogZG93bmxvYWRzL2xhdW5jaGVzIGFuZCBpcyBleGNsdWRlZCBmcm9tIHVuaXQgdGVzdHMpIHNvIHRoZSB0aWVyIGxvZ2ljIHN0YXlzXG4gKiB1bml0LXRlc3RhYmxlIFx1MjAxNCBtaXJyb3JpbmcgdGhlIGByZW5kZXJlci1ib290LWRldGVjdGlvbmAgc3BsaXQuXG4gKlxuICogVHdvIHRocmVzaG9sZHMgZHJpdmUgdGhlIHZlcmRpY3QsIGJvdGggaW5zdGFsbGVyIHZlcnNpb25zIGRpcmVjdGx5IGNvbXBhcmFibGVcbiAqIHRvIHRoZSByZXNvbHZlZCBpbnN0YWxsZXIvc2hlbGwgdmVyc2lvbjpcbiAqXG4gKiAtIGBtaW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb25gIFx1MjAxNCB0aGUgcnVuIGZsb29yLiBCZWxvdyBpdCB0aGUgYXBwIGNhbm5vdCBib290XG4gKiAgIChgJ3VucnVubmFibGUnYCk7IHRoZSBjYWxsZXIgdHVybnMgdGhpcyBpbnRvIGEgcHJvYWN0aXZlXG4gKiAgIGBJbmNvbXBhdGlibGVJbnN0YWxsZXJWZXJzaW9uRXJyb3JgIGJlZm9yZSBhbnkgZG93bmxvYWQvbGF1bmNoIFx1MjAxNCB1bmxlc3MgdGhlXG4gKiAgIGNhbGxlciBoYXMgZGlzYWJsZWQgdGhlIHByb2FjdGl2ZSB0aHJvdyAoYHNob3VsZFRocm93T25JbmNvbXBhdGlibGVJbnN0YWxsZXJgXG4gKiAgIGBmYWxzZWApLCBpbiB3aGljaCBjYXNlIHRoZSBib290IHByb2NlZWRzIGFuZCB0aGUgcmVhY3RpdmUgZGVhZC1ib290IGZhc3QtZmFpbFxuICogICBjYXRjaGVzIGl0LlxuICogLSBgbWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uYCBcdTIwMTQgdGhlIHJlY29tbWVuZGVkIGZsb29yIChvbGRlciB2ZXJzaW9uc1xuICogICBvbmx5KS4gQXQvYWJvdmUgdGhlIHJ1biBmbG9vciBidXQgYmVsb3cgdGhpcywgdGhlIGFwcCBydW5zIGJ1dCBpcyBiZWxvd1xuICogICBPYnNpZGlhbidzIHJlY29tbWVuZGF0aW9uIChgJ25hZ2dlZCdgKSwgc3VyZmFjZWQgYXMgYSB3YXJuaW5nLlxuICpcbiAqIFdoZW4gdGhlIGluc3RhbGxlciB2ZXJzaW9uIGlzIHVua25vd24gKGUuZy4gYW4gdW5kZXRlY3RhYmxlIExpbnV4IHNoZWxsKSBvciB0aGVcbiAqIGFwcCB2ZXJzaW9uIGlzIGFic2VudCBmcm9tIHRoZSB0YWJsZSwgdGhlIHZlcmRpY3QgaXMgYCd1bmtub3duJ2AgYW5kIG5vdGhpbmcgaXNcbiAqIHRocm93biBvciB3YXJuZWQgXHUyMDE0IHRoZSByZWFjdGl2ZSBkZWFkLWJvb3QgZmFzdC1mYWlsIHJlbWFpbnMgdGhlIHNhZmV0eSBuZXQuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblZlcnNpb25NZXRhZGF0YSB9IGZyb20gJy4vb2JzaWRpYW4tbWV0YWRhdGEuY2pzJztcblxuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSAnLi9vYnNpZGlhbi12ZXJzaW9uLmNqcyc7XG5cbi8qKlxuICogVGhlIGNvbXBhdGliaWxpdHkgdmVyZGljdCBmb3IgYSByZXNvbHZlZCAoYXBwLCBpbnN0YWxsZXIpIHZlcnNpb24gcGFpciwgY2FycmllZFxuICogYXMgZGF0YSBvbiB0aGUgdHJhbnNwb3J0IC8gY29ubmVjdGlvbiByZXN1bHQgc28gY29uc3VtZXJzIGNhbiBhc3NlcnQgb24gaXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFsbGVyQ29tcGF0aWJpbGl0eSB7XG4gIC8qKlxuICBUaGUgcmVzb2x2ZWQgT2JzaWRpYW4gYXBwIChhc2FyKSB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgcmVzb2x2ZWQgaW5zdGFsbGVyL0VsZWN0cm9uIHNoZWxsIHZlcnNpb24sIG9yIGBudWxsYCB3aGVuIHVua25vd24uXG4gICAqL1xuICByZWFkb25seSBpbnN0YWxsZXJWZXJzaW9uOiBudWxsIHwgc3RyaW5nO1xuXG4gIC8qKlxuICBBIGh1bWFuLXJlYWRhYmxlIGV4cGxhbmF0aW9uLCBwcmVzZW50IGZvciB0aGUgYCduYWdnZWQnYCB0aWVyLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZT86IHN0cmluZztcblxuICAvKipcbiAgVGhlIHJlY29tbWVuZGVkIGluc3RhbGxlciBmbG9vciwgd2hlbiB0aGUgdGFibGUgY2FycmllcyBvbmUuXG4gICAqL1xuICByZWFkb25seSBtaW5SZWNvbW1lbmRlZEluc3RhbGxlclZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBydW4gZmxvb3IsIHdoZW4gdGhlIHRhYmxlIGNhcnJpZXMgb25lLlxuICAgKi9cbiAgcmVhZG9ubHkgbWluUnVubmFibGVJbnN0YWxsZXJWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgcmVzb2x2ZWQgY29tcGF0aWJpbGl0eSB0aWVyLlxuICAgKi9cbiAgcmVhZG9ubHkgdGllcjogSW5zdGFsbGVyQ29tcGF0aWJpbGl0eVRpZXI7XG59XG5cbi8qKlxuICogVGhlIGNvbXBhdGliaWxpdHkgdGllciBvZiBhIHJlc29sdmVkIChhcHAsIGluc3RhbGxlcikgdmVyc2lvbiBwYWlyLlxuICpcbiAqIC0gYCdvaydgIFx1MjAxNCB0aGUgaW5zdGFsbGVyIGlzIGF0IG9yIGFib3ZlIHRoZSByZWNvbW1lbmRlZCBmbG9vciAob3Igbm9cbiAqICAgcmVjb21tZW5kZWQgZmxvb3IgaXMga25vd24pOyBydW5zIHdpdGggZnVsbCBjb21wYXRpYmlsaXR5LlxuICogLSBgJ25hZ2dlZCdgIFx1MjAxNCBhdC9hYm92ZSB0aGUgcnVuIGZsb29yIGJ1dCBiZWxvdyB0aGUgcmVjb21tZW5kZWQgZmxvb3I7IHJ1bnMgYnV0XG4gKiAgIE9ic2lkaWFuIHdvdWxkIHNob3cgaXRzIFwiaW5zdGFsbGVyIHRvbyBvbGRcIiByZWNvbW1lbmRhdGlvbi5cbiAqIC0gYCd1bnJ1bm5hYmxlJ2AgXHUyMDE0IGJlbG93IHRoZSBydW4gZmxvb3I7IHRoZSBhcHAgY2Fubm90IGJvb3Qgb24gdGhpcyBpbnN0YWxsZXIuXG4gKiAtIGAndW5rbm93bidgIFx1MjAxNCBjYW5ub3QgYmUgZGV0ZXJtaW5lZCAoaW5zdGFsbGVyIHZlcnNpb24gdW5rbm93biwgb3IgdGhlIGFwcFxuICogICB2ZXJzaW9uIGlzIGFic2VudCBmcm9tIHRoZSB0YWJsZSkuXG4gKi9cbmV4cG9ydCB0eXBlIEluc3RhbGxlckNvbXBhdGliaWxpdHlUaWVyID0gJ25hZ2dlZCcgfCAnb2snIHwgJ3Vua25vd24nIHwgJ3VucnVubmFibGUnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZXNvbHZlSW5zdGFsbGVyQ29tcGF0aWJpbGl0eX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZUluc3RhbGxlckNvbXBhdGliaWxpdHlQYXJhbXMge1xuICAvKipcbiAgVGhlIHJlc29sdmVkIE9ic2lkaWFuIGFwcCAoYXNhcikgdmVyc2lvbi5cbiAgICovXG4gIHJlYWRvbmx5IGFwcFZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgVGhlIHJlc29sdmVkIGluc3RhbGxlci9FbGVjdHJvbiBzaGVsbCB2ZXJzaW9uLCBvciBgdW5kZWZpbmVkYCB3aGVuIHVua25vd24uXG4gICAqL1xuICByZWFkb25seSBpbnN0YWxsZXJWZXJzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gIFRoZSBgbWV0YWRhdGEuanNvbmAgZW50cnkgZm9yIHtAbGluayBhcHBWZXJzaW9ufSwgb3IgYHVuZGVmaW5lZGAgd2hlbiBhYnNlbnQuXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YTogT2JzaWRpYW5WZXJzaW9uTWV0YWRhdGEgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIGNvbXBhdGliaWxpdHkgdmVyZGljdCBmb3IgYSByZXNvbHZlZCAoYXBwLCBpbnN0YWxsZXIpIHZlcnNpb24gcGFpci5cbiAqXG4gKiBPbmx5IGAndW5ydW5uYWJsZSdgIHdhcnJhbnRzIGFuIGVycm9yOyBgJ25hZ2dlZCdgIHdhcnJhbnRzIGEgd2FybmluZzsgYCdvaydgIGFuZFxuICogYCd1bmtub3duJ2AgYXJlIHNpbGVudC4gQ29tcGFyaXNvbnMgYXJlIHB1cmUgYHgueS56YCB2ZXJzaW9uIGNvbXBhcmVzIFx1MjAxNCBubyBJL08uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSByZXNvbHZlZCB2ZXJzaW9ucyBhbmQgdGhlIGFwcCB2ZXJzaW9uJ3MgbWV0YWRhdGEgZW50cnkuXG4gKiBAcmV0dXJucyBUaGUgY29tcGF0aWJpbGl0eSB2ZXJkaWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUluc3RhbGxlckNvbXBhdGliaWxpdHkocGFyYW1zOiBSZXNvbHZlSW5zdGFsbGVyQ29tcGF0aWJpbGl0eVBhcmFtcyk6IEluc3RhbGxlckNvbXBhdGliaWxpdHkge1xuICBjb25zdCB7IGFwcFZlcnNpb24sIGluc3RhbGxlclZlcnNpb24sIG1ldGFkYXRhIH0gPSBwYXJhbXM7XG4gIGNvbnN0IG1pblJ1bm5hYmxlSW5zdGFsbGVyVmVyc2lvbiA9IG1ldGFkYXRhPy5taW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb247XG4gIGNvbnN0IG1pblJlY29tbWVuZGVkSW5zdGFsbGVyVmVyc2lvbiA9IG1ldGFkYXRhPy5taW5SZWNvbW1lbmRlZEluc3RhbGxlclZlcnNpb247XG5cbiAgaWYgKGluc3RhbGxlclZlcnNpb24gPT09IHVuZGVmaW5lZCB8fCBtaW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb24gPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB7IGFwcFZlcnNpb24sIGluc3RhbGxlclZlcnNpb246IGluc3RhbGxlclZlcnNpb24gPz8gbnVsbCwgdGllcjogJ3Vua25vd24nIH07XG4gIH1cblxuICBjb25zdCByZWNvbW1lbmRlZEZsb29yID0gbWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uICE9PSB1bmRlZmluZWQgJiYgeyBtaW5SZWNvbW1lbmRlZEluc3RhbGxlclZlcnNpb24gfTtcblxuICBpZiAoY29tcGFyZVZlcnNpb25zKGluc3RhbGxlclZlcnNpb24sIG1pblJ1bm5hYmxlSW5zdGFsbGVyVmVyc2lvbikgPCAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcFZlcnNpb24sXG4gICAgICBpbnN0YWxsZXJWZXJzaW9uLFxuICAgICAgbWluUnVubmFibGVJbnN0YWxsZXJWZXJzaW9uLFxuICAgICAgdGllcjogJ3VucnVubmFibGUnLFxuICAgICAgLi4ucmVjb21tZW5kZWRGbG9vclxuICAgIH07XG4gIH1cblxuICByZXR1cm4gbWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uICE9PSB1bmRlZmluZWQgJiYgY29tcGFyZVZlcnNpb25zKGluc3RhbGxlclZlcnNpb24sIG1pblJlY29tbWVuZGVkSW5zdGFsbGVyVmVyc2lvbikgPCAwXG4gICAgPyB7XG4gICAgICBhcHBWZXJzaW9uLFxuICAgICAgaW5zdGFsbGVyVmVyc2lvbixcbiAgICAgIG1lc3NhZ2U6IGBPYnNpZGlhbiBpbnN0YWxsZXIgJHtpbnN0YWxsZXJWZXJzaW9ufSBydW5zIE9ic2lkaWFuICR7YXBwVmVyc2lvbn0gYnV0IGlzIG9sZGVyIHRoYW4gdGhlIGBcbiAgICAgICAgKyBgcmVjb21tZW5kZWQgaW5zdGFsbGVyICR7bWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9ufTsgdXBkYXRlIHRoZSBpbnN0YWxsZXIgZm9yIGZ1bGwgY29tcGF0aWJpbGl0eS5gLFxuICAgICAgbWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uLFxuICAgICAgbWluUnVubmFibGVJbnN0YWxsZXJWZXJzaW9uLFxuICAgICAgdGllcjogJ25hZ2dlZCdcbiAgICB9XG4gICAgOiB7XG4gICAgICBhcHBWZXJzaW9uLFxuICAgICAgaW5zdGFsbGVyVmVyc2lvbixcbiAgICAgIG1pblJ1bm5hYmxlSW5zdGFsbGVyVmVyc2lvbixcbiAgICAgIHRpZXI6ICdvaycsXG4gICAgICAuLi5yZWNvbW1lbmRlZEZsb29yXG4gICAgfTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE2QkEsOEJBQWdDO0FBZ0Z6QixTQUFTLDhCQUE4QixRQUFxRTtBQUNqSCxRQUFNLEVBQUUsWUFBWSxrQkFBa0IsU0FBUyxJQUFJO0FBQ25ELFFBQU0sOEJBQThCLFVBQVU7QUFDOUMsUUFBTSxpQ0FBaUMsVUFBVTtBQUVqRCxNQUFJLHFCQUFxQixVQUFhLGdDQUFnQyxRQUFXO0FBQy9FLFdBQU8sRUFBRSxZQUFZLGtCQUFrQixvQkFBb0IsTUFBTSxNQUFNLFVBQVU7QUFBQSxFQUNuRjtBQUVBLFFBQU0sbUJBQW1CLG1DQUFtQyxVQUFhLEVBQUUsK0JBQStCO0FBRTFHLFVBQUkseUNBQWdCLGtCQUFrQiwyQkFBMkIsSUFBSSxHQUFHO0FBQ3RFLFdBQU87QUFBQSxNQUNMO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBLE1BQU07QUFBQSxNQUNOLEdBQUc7QUFBQSxJQUNMO0FBQUEsRUFDRjtBQUVBLFNBQU8sbUNBQW1DLGNBQWEseUNBQWdCLGtCQUFrQiw4QkFBOEIsSUFBSSxJQUN2SDtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxTQUFTLHNCQUFzQixnQkFBZ0Isa0JBQWtCLFVBQVUsZ0RBQzlDLDhCQUE4QjtBQUFBLElBQzNEO0FBQUEsSUFDQTtBQUFBLElBQ0EsTUFBTTtBQUFBLEVBQ1IsSUFDRTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0EsTUFBTTtBQUFBLElBQ04sR0FBRztBQUFBLEVBQ0w7QUFDSjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -21,19 +21,35 @@ __export(label_screenshot_exports, {
|
|
|
21
21
|
buildLabelSvg: () => buildLabelSvg,
|
|
22
22
|
computeLabelBand: () => computeLabelBand,
|
|
23
23
|
escapeSvgText: () => escapeSvgText,
|
|
24
|
-
labelScreenshot: () => labelScreenshot
|
|
24
|
+
labelScreenshot: () => labelScreenshot,
|
|
25
|
+
measureLabelCaption: () => measureLabelCaption
|
|
25
26
|
});
|
|
26
27
|
module.exports = __toCommonJS(label_screenshot_exports);
|
|
28
|
+
var import_capture_screenshot = require("./capture-screenshot.cjs");
|
|
27
29
|
var import_sharp_loader = require("./sharp-loader.cjs");
|
|
28
30
|
const FONT_SIZE_RATIO = 0.034;
|
|
29
31
|
const BAND_HEIGHT_RATIO = 2.2;
|
|
30
|
-
const BAND_OPACITY =
|
|
32
|
+
const BAND_OPACITY = 1;
|
|
31
33
|
const MINIMUM_FONT_SIZE_IN_PIXELS = 18;
|
|
32
34
|
const MINIMUM_HEIGHT_RATIO = 0.075;
|
|
35
|
+
const SIDE_MARGIN_RATIO = 0.04;
|
|
33
36
|
const CENTER_DIVISOR = 2;
|
|
37
|
+
const FONT_FAMILY = "Segoe UI, Helvetica, Arial, sans-serif";
|
|
38
|
+
const FONT_WEIGHT = "600";
|
|
39
|
+
const CAPTION_FILL = "#ffffff";
|
|
40
|
+
const MAXIMUM_GLYPH_ADVANCE_RATIO = 1.1;
|
|
41
|
+
const MEASUREMENT_CANVAS_HEIGHT_RATIO = 3;
|
|
42
|
+
const TRIM_THRESHOLD = 1;
|
|
34
43
|
function buildLabelSvg(text, geometry, imageWidthInPixels) {
|
|
35
44
|
const { fontSizeInPixels, heightInPixels } = geometry;
|
|
36
|
-
|
|
45
|
+
const captionElement = buildCaptionTextElement({
|
|
46
|
+
fontSizeInPixels,
|
|
47
|
+
text,
|
|
48
|
+
textAnchor: "middle",
|
|
49
|
+
xInPixels: imageWidthInPixels / CENTER_DIVISOR,
|
|
50
|
+
yInPixels: heightInPixels / CENTER_DIVISOR
|
|
51
|
+
});
|
|
52
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" width="${String(imageWidthInPixels)}" height="${String(heightInPixels)}"><rect x="0" y="0" width="${String(imageWidthInPixels)}" height="${String(heightInPixels)}" fill="#000000" fill-opacity="${String(BAND_OPACITY)}"/>${captionElement}</svg>`;
|
|
37
53
|
}
|
|
38
54
|
function computeLabelBand(params) {
|
|
39
55
|
const { imageHeightInPixels, imageWidthInPixels } = params;
|
|
@@ -47,7 +63,9 @@ function computeLabelBand(params) {
|
|
|
47
63
|
const captionHeightInPixels = Math.round(fontSizeInPixels * BAND_HEIGHT_RATIO);
|
|
48
64
|
const flooredHeightInPixels = Math.max(captionHeightInPixels, Math.round(imageHeightInPixels * MINIMUM_HEIGHT_RATIO));
|
|
49
65
|
const heightInPixels = Math.min(imageHeightInPixels, flooredHeightInPixels);
|
|
66
|
+
const sideMarginInPixels = Math.round(imageWidthInPixels * SIDE_MARGIN_RATIO);
|
|
50
67
|
return {
|
|
68
|
+
captionRoomInPixels: imageWidthInPixels - sideMarginInPixels * CENTER_DIVISOR,
|
|
51
69
|
fontSizeInPixels,
|
|
52
70
|
heightInPixels,
|
|
53
71
|
topInPixels: imageHeightInPixels - heightInPixels
|
|
@@ -65,6 +83,13 @@ async function labelScreenshot(bytes, options) {
|
|
|
65
83
|
throw new Error("labelScreenshot: could not read the source image dimensions.");
|
|
66
84
|
}
|
|
67
85
|
const geometry = computeLabelBand({ imageHeightInPixels, imageWidthInPixels });
|
|
86
|
+
const textWidthInPixels = await measureCaptionWidth(options.text, geometry.fontSizeInPixels);
|
|
87
|
+
if (textWidthInPixels > geometry.captionRoomInPixels) {
|
|
88
|
+
const overflowInPixels = textWidthInPixels - geometry.captionRoomInPixels;
|
|
89
|
+
throw new Error(
|
|
90
|
+
`labelScreenshot: the caption is ${String(overflowInPixels)}px too wide for the frame. It renders ${String(textWidthInPixels)}px at font-size ${String(geometry.fontSizeInPixels)}, and a ${String(imageWidthInPixels)}px frame has room for ${String(geometry.captionRoomInPixels)}px. Shorten it: a caption that does not fit is clipped at BOTH ends, with no ellipsis to show it happened. Caption: ${JSON.stringify(options.text)}`
|
|
91
|
+
);
|
|
92
|
+
}
|
|
68
93
|
const svg = buildLabelSvg(options.text, geometry, imageWidthInPixels);
|
|
69
94
|
const layer = {
|
|
70
95
|
input: Buffer.from(svg),
|
|
@@ -74,11 +99,45 @@ async function labelScreenshot(bytes, options) {
|
|
|
74
99
|
const labeled = await sharp(bytes).composite([layer]).png().toBuffer();
|
|
75
100
|
return new Uint8Array(labeled);
|
|
76
101
|
}
|
|
102
|
+
async function measureLabelCaption(params) {
|
|
103
|
+
const { imageHeightInPixels, imageWidthInPixels, text } = params;
|
|
104
|
+
const geometry = computeLabelBand({ imageHeightInPixels, imageWidthInPixels });
|
|
105
|
+
const textWidthInPixels = await measureCaptionWidth(text, geometry.fontSizeInPixels);
|
|
106
|
+
return {
|
|
107
|
+
captionRoomInPixels: geometry.captionRoomInPixels,
|
|
108
|
+
doesFit: textWidthInPixels <= geometry.captionRoomInPixels,
|
|
109
|
+
textWidthInPixels
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
function buildCaptionTextElement(params) {
|
|
113
|
+
const { fontSizeInPixels, text, textAnchor, xInPixels, yInPixels } = params;
|
|
114
|
+
return `<text x="${String(xInPixels)}" y="${String(yInPixels)}" font-family="${FONT_FAMILY}" font-size="${String(fontSizeInPixels)}" font-weight="${FONT_WEIGHT}" fill="${CAPTION_FILL}" text-anchor="${textAnchor}" dominant-baseline="central">${escapeSvgText(text)}</text>`;
|
|
115
|
+
}
|
|
116
|
+
async function measureCaptionWidth(text, fontSizeInPixels) {
|
|
117
|
+
if (text.trim() === "") {
|
|
118
|
+
return 0;
|
|
119
|
+
}
|
|
120
|
+
const sharp = await (0, import_sharp_loader.importSharp)("measureLabelCaption");
|
|
121
|
+
const paddingInPixels = fontSizeInPixels * CENTER_DIVISOR;
|
|
122
|
+
const canvasWidthInPixels = Math.ceil(fontSizeInPixels * MAXIMUM_GLYPH_ADVANCE_RATIO * text.length) + paddingInPixels;
|
|
123
|
+
const canvasHeightInPixels = Math.ceil(fontSizeInPixels * MEASUREMENT_CANVAS_HEIGHT_RATIO);
|
|
124
|
+
const captionElement = buildCaptionTextElement({
|
|
125
|
+
fontSizeInPixels,
|
|
126
|
+
text,
|
|
127
|
+
textAnchor: "start",
|
|
128
|
+
xInPixels: fontSizeInPixels,
|
|
129
|
+
yInPixels: canvasHeightInPixels / CENTER_DIVISOR
|
|
130
|
+
});
|
|
131
|
+
const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="${String(canvasWidthInPixels)}" height="${String(canvasHeightInPixels)}">${captionElement}</svg>`;
|
|
132
|
+
const trimmed = await sharp(new Uint8Array(Buffer.from(svg))).trim({ threshold: TRIM_THRESHOLD }).png().toBuffer();
|
|
133
|
+
return (0, import_capture_screenshot.readPngDimensions)(new Uint8Array(trimmed)).widthInPixels;
|
|
134
|
+
}
|
|
77
135
|
// Annotate the CommonJS export names for ESM import in node:
|
|
78
136
|
0 && (module.exports = {
|
|
79
137
|
buildLabelSvg,
|
|
80
138
|
computeLabelBand,
|
|
81
139
|
escapeSvgText,
|
|
82
|
-
labelScreenshot
|
|
140
|
+
labelScreenshot,
|
|
141
|
+
measureLabelCaption
|
|
83
142
|
});
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2xhYmVsLXNjcmVlbnNob3QudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBBZGRzIGEgY2FwdGlvbiBiYW5kIHRvIGFuIGFscmVhZHktY2FwdHVyZWQgc2NyZWVuc2hvdC5cbiAqXG4gKiBBIHN0b3JlIGxpc3Rpbmcgc2hvd3Mgc2NyZWVuc2hvdHMgT05FIEFUIEEgVElNRSwgaW4gYSBjYXJvdXNlbCwgd2l0aCBub1xuICogY2FwdGlvbiBvZiBpdHMgb3duIFx1MjAxNCBzbyBhbiBpbWFnZSBoYXMgdG8gc2F5IHdoYXQgaXQgaXMgc2hvd2luZy4gV2l0aG91dCB0aGF0LFxuICogYSBzaG90IG9mIHRoZSBzdGF0ZSBhIHBsdWdpbiByZW1vdmVzIHJlYWRzIGFzIGEgc2hvdCBvZiB0aGUgc3RhdGUgdGhlIHBsdWdpblxuICogY2F1c2VzLCB3aGljaCBpcyB0aGUgb3Bwb3NpdGUgb2YgdGhlIG1lc3NhZ2UuXG4gKlxuICogVGhlIGJhbmQgaXMgZHJhd24gb3ZlciB0aGUgQk9UVE9NIG9mIHRoZSBmcmFtZSwgZm9yIHR3byByZWFzb25zOiB0aGUgdG9wIGlzXG4gKiB3aGVyZSB0aGUgY29udGVudCBiZWluZyBkZW1vbnN0cmF0ZWQgdXN1YWxseSBzdGFydHMsIGFuZCB0aGUgYm90dG9tIG9mIGFuXG4gKiBPYnNpZGlhbiBmcmFtZSBpcyBjaHJvbWUgXHUyMDE0IHN0YXR1cyBiYXIsIHdvcmQgY291bnQsIHN5bmMgaW5kaWNhdG9yIFx1MjAxNCB3aGljaCB0aGVcbiAqIGJhbmQgdGhlbiBjb3ZlcnMgcmF0aGVyIHRoYW4gY29tcGV0aW5nIHdpdGguXG4gKlxuICogVGhpcyBpcyBwb3N0LXByb2Nlc3NpbmcsIGRlbGliZXJhdGVseS4gVGhlIGNhcHR1cmUgc3RheXMgYW4gdW50b3VjaGVkIGRldmljZVxuICogZnJhbWUsIGFuZCByZXdvcmRpbmcgYSBsYWJlbCBuZWVkcyBubyByZS1zaG9vdC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFNoYXJwQ29tcG9zaXRlTGF5ZXIgfSBmcm9tICcuL3NoYXJwLWxvYWRlci5janMnO1xuXG5pbXBvcnQgeyBpbXBvcnRTaGFycCB9IGZyb20gJy4vc2hhcnAtbG9hZGVyLmNqcyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGNvbXB1dGVMYWJlbEJhbmR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXB1dGVMYWJlbEJhbmRQYXJhbXMge1xuICAvKipcbiAgICogSGVpZ2h0IG9mIHRoZSBpbWFnZSBiZWluZyBsYWJlbGVkLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBpbWFnZUhlaWdodEluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdpZHRoIG9mIHRoZSBpbWFnZSBiZWluZyBsYWJlbGVkLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBpbWFnZVdpZHRoSW5QaXhlbHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgZ2VvbWV0cnkgb2YgdGhlIGNhcHRpb24gYmFuZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYWJlbEJhbmRHZW9tZXRyeSB7XG4gIC8qKlxuICAgKiBGb250IHNpemUgZm9yIHRoZSBjYXB0aW9uLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBmb250U2l6ZUluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEhlaWdodCBvZiB0aGUgYmFuZCwgaW4gcGl4ZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgaGVpZ2h0SW5QaXhlbHM6IG51bWJlcjtcblxuICAvKipcbiAgICogRGlzdGFuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZSBpbWFnZSB0byB0aGUgdG9wIG9mIHRoZSBiYW5kLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSB0b3BJblBpeGVsczogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBsYWJlbFNjcmVlbnNob3R9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhYmVsU2NyZWVuc2hvdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNhcHRpb24uIEtlZXAgaXQgdG8gYSBoYW5kZnVsIG9mIHdvcmRzOiBpdCBpcyByZWFkIGF0IGxpc3RpbmctdGh1bWJuYWlsXG4gICAqIHNpemUsIGFuZCBpdCBpcyBjbGlwcGVkIHJhdGhlciB0aGFuIHdyYXBwZWQuXG4gICAqL1xuICByZWFkb25seSB0ZXh0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2FwdGlvbiBzaXplIGFzIGEgZnJhY3Rpb24gb2YgaW1hZ2UgV0lEVEgsIG5vdCBoZWlnaHQuXG4gKlxuICogV2lkdGggaXMgd2hhdCBnb3Zlcm5zIGxlZ2liaWxpdHkgaGVyZTogYSA5MDB4MTYwMCBwaG9uZSBmcmFtZSBhbmQgYSAxMjAweDgwMFxuICogZGVza3RvcCBmcmFtZSBhcmUgcmVhZCBhdCBzaW1pbGFyIG9uLXNjcmVlbiB3aWR0aHMgaW4gYSBsaXN0aW5nLCBzbyBzaXppbmcgYnlcbiAqIHdpZHRoIGtlZXBzIHRoZSBjYXB0aW9uIHZpc3VhbGx5IGNvbnNpc3RlbnQgYWNyb3NzIHRoZSB0d28uXG4gKi9cbmNvbnN0IEZPTlRfU0laRV9SQVRJTyA9IDAuMDM0O1xuXG4vKipcbiAqIEJhbmQgaGVpZ2h0IGFzIGEgbXVsdGlwbGUgb2YgdGhlIGZvbnQgc2l6ZSBcdTIwMTQgZW5vdWdoIHRvIHNpdCB0aGUgdGV4dCBvbiB3aXRoXG4gKiBjbGVhciBzcGFjZSBhYm92ZSBhbmQgYmVsb3cuXG4gKi9cbmNvbnN0IEJBTkRfSEVJR0hUX1JBVElPID0gMi4yO1xuXG4vKipcbiAqIE9wYWNpdHkgb2YgdGhlIGJhbmQuIE5lYXItb3BhcXVlIG9uIHB1cnBvc2U6IHRoZSBiYW5kIGV4aXN0cyBwYXJ0bHkgdG8gQ09WRVJcbiAqIHRoZSBjaHJvbWUgYWxvbmcgdGhlIGJvdHRvbSBvZiB0aGUgZnJhbWUsIGFuZCBhdCAwLjgyIGEgc3RhdHVzIGJhciBsZWdpYmx5XG4gKiBibGVkIHRocm91Z2ggYmVoaW5kIHRoZSBjYXB0aW9uLCB3aGljaCBsb29rZWQgbGlrZSBhIG1pc3Rha2UgcmF0aGVyIHRoYW4gYVxuICogZGVzaWduLlxuICovXG5jb25zdCBCQU5EX09QQUNJVFkgPSAwLjk0O1xuXG5jb25zdCBNSU5JTVVNX0ZPTlRfU0laRV9JTl9QSVhFTFMgPSAxODtcblxuLyoqXG4gKiBGbG9vciBvbiBiYW5kIGhlaWdodCBhcyBhIGZyYWN0aW9uIG9mIGltYWdlIEhFSUdIVC5cbiAqXG4gKiBIZWlnaHQgZGVyaXZlZCBmcm9tIHRoZSBjYXB0aW9uIGFsb25lIGlzIHRvbyBzaGFsbG93IG9uIGEgdGFsbCBmcmFtZTogb24gYVxuICogOTAweDE2MDAgcGhvbmUgaXQgY2FtZSB0byA2OHB4IGFuZCBzbGljZWQgdGhyb3VnaCB0aGUgc3RhdHVzIHJvdyBpdCB3YXMgbWVhbnRcbiAqIHRvIGNvdmVyLCBjbGlwcGluZyB0aGUgdGV4dCBtaWQtbGluZS4gVGhpcyBmbG9vciBtYWtlcyB0aGUgYmFuZCBkZWVwIGVub3VnaCB0b1xuICogc3dhbGxvdyB0aGF0IHJvdyB3aG9sZSAoMTIwcHggb24gYSA5MDB4MTYwMCBwaG9uZSksIGFuZCBpcyBpbmVydCBvbiBhIHdpZGUgZnJhbWUgd2hlcmUgdGhlIGNhcHRpb24tZGVyaXZlZFxuICogaGVpZ2h0IGlzIGFscmVhZHkgdGhlIGxhcmdlciBvZiB0aGUgdHdvLlxuICovXG5jb25zdCBNSU5JTVVNX0hFSUdIVF9SQVRJTyA9IDAuMDc1O1xuXG4vKipcbiAqIERpdmlzb3IgdGhhdCB0dXJucyBhIHNwYW4gaW50byBpdHMgbWlkcG9pbnQsIGZvciBjZW50ZXJpbmcgdGhlIGNhcHRpb24uXG4gKi9cbmNvbnN0IENFTlRFUl9ESVZJU09SID0gMjtcblxuLyoqXG4gKiBCdWlsZHMgdGhlIFNWRyBmb3IgdGhlIGNhcHRpb24gYmFuZC5cbiAqXG4gKiBAcGFyYW0gdGV4dCAtIFRoZSBjYXB0aW9uLlxuICogQHBhcmFtIGdlb21ldHJ5IC0gVGhlIGJhbmQgZ2VvbWV0cnkuXG4gKiBAcGFyYW0gaW1hZ2VXaWR0aEluUGl4ZWxzIC0gV2lkdGggb2YgdGhlIGltYWdlLCBzbyB0aGUgYmFuZCBzcGFucyBpdC5cbiAqIEByZXR1cm5zIFRoZSBTVkcgbWFya3VwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRMYWJlbFN2Zyh0ZXh0OiBzdHJpbmcsIGdlb21ldHJ5OiBMYWJlbEJhbmRHZW9tZXRyeSwgaW1hZ2VXaWR0aEluUGl4ZWxzOiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCB7IGZvbnRTaXplSW5QaXhlbHMsIGhlaWdodEluUGl4ZWxzIH0gPSBnZW9tZXRyeTtcblxuICByZXR1cm4gYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiJHtTdHJpbmcoaW1hZ2VXaWR0aEluUGl4ZWxzKX1cIiBoZWlnaHQ9XCIke1N0cmluZyhoZWlnaHRJblBpeGVscyl9XCI+YFxuICAgICsgYDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIiR7U3RyaW5nKGltYWdlV2lkdGhJblBpeGVscyl9XCIgaGVpZ2h0PVwiJHtTdHJpbmcoaGVpZ2h0SW5QaXhlbHMpfVwiIGBcbiAgICArIGBmaWxsPVwiIzAwMDAwMFwiIGZpbGwtb3BhY2l0eT1cIiR7U3RyaW5nKEJBTkRfT1BBQ0lUWSl9XCIvPmBcbiAgICArIGA8dGV4dCB4PVwiJHtTdHJpbmcoaW1hZ2VXaWR0aEluUGl4ZWxzIC8gQ0VOVEVSX0RJVklTT1IpfVwiIHk9XCIke1N0cmluZyhoZWlnaHRJblBpeGVscyAvIENFTlRFUl9ESVZJU09SKX1cIiBgXG4gICAgKyBgZm9udC1mYW1pbHk9XCJTZWdvZSBVSSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZlwiIGZvbnQtc2l6ZT1cIiR7U3RyaW5nKGZvbnRTaXplSW5QaXhlbHMpfVwiIGBcbiAgICArICdmb250LXdlaWdodD1cIjYwMFwiIGZpbGw9XCIjZmZmZmZmXCIgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiBkb21pbmFudC1iYXNlbGluZT1cImNlbnRyYWxcIj4nXG4gICAgKyBgJHtlc2NhcGVTdmdUZXh0KHRleHQpfTwvdGV4dD48L3N2Zz5gO1xufVxuXG4vKipcbiAqIENvbXB1dGVzIHRoZSBjYXB0aW9uIGJhbmQncyBzaXplIGFuZCBwb3NpdGlvbiBmb3IgYSBnaXZlbiBpbWFnZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGltYWdlIGRpbWVuc2lvbnMuXG4gKiBAcmV0dXJucyBUaGUgYmFuZCBnZW9tZXRyeS5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgZWl0aGVyIGRpbWVuc2lvbiBpcyBub3QgYSBwb3NpdGl2ZSBudW1iZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlTGFiZWxCYW5kKHBhcmFtczogQ29tcHV0ZUxhYmVsQmFuZFBhcmFtcyk6IExhYmVsQmFuZEdlb21ldHJ5IHtcbiAgY29uc3QgeyBpbWFnZUhlaWdodEluUGl4ZWxzLCBpbWFnZVdpZHRoSW5QaXhlbHMgfSA9IHBhcmFtcztcblxuICBpZiAoIU51bWJlci5pc0Zpbml0ZShpbWFnZVdpZHRoSW5QaXhlbHMpIHx8IGltYWdlV2lkdGhJblBpeGVscyA8PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBjb21wdXRlTGFiZWxCYW5kOiBpbWFnZVdpZHRoSW5QaXhlbHMgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciwgZ290ICR7U3RyaW5nKGltYWdlV2lkdGhJblBpeGVscyl9LmApO1xuICB9XG5cbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoaW1hZ2VIZWlnaHRJblBpeGVscykgfHwgaW1hZ2VIZWlnaHRJblBpeGVscyA8PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBjb21wdXRlTGFiZWxCYW5kOiBpbWFnZUhlaWdodEluUGl4ZWxzIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIsIGdvdCAke1N0cmluZyhpbWFnZUhlaWdodEluUGl4ZWxzKX0uYCk7XG4gIH1cblxuICBjb25zdCBmb250U2l6ZUluUGl4ZWxzID0gTWF0aC5tYXgoTUlOSU1VTV9GT05UX1NJWkVfSU5fUElYRUxTLCBNYXRoLnJvdW5kKGltYWdlV2lkdGhJblBpeGVscyAqIEZPTlRfU0laRV9SQVRJTykpO1xuICBjb25zdCBjYXB0aW9uSGVpZ2h0SW5QaXhlbHMgPSBNYXRoLnJvdW5kKGZvbnRTaXplSW5QaXhlbHMgKiBCQU5EX0hFSUdIVF9SQVRJTyk7XG4gIGNvbnN0IGZsb29yZWRIZWlnaHRJblBpeGVscyA9IE1hdGgubWF4KGNhcHRpb25IZWlnaHRJblBpeGVscywgTWF0aC5yb3VuZChpbWFnZUhlaWdodEluUGl4ZWxzICogTUlOSU1VTV9IRUlHSFRfUkFUSU8pKTtcbiAgY29uc3QgaGVpZ2h0SW5QaXhlbHMgPSBNYXRoLm1pbihpbWFnZUhlaWdodEluUGl4ZWxzLCBmbG9vcmVkSGVpZ2h0SW5QaXhlbHMpO1xuXG4gIHJldHVybiB7XG4gICAgZm9udFNpemVJblBpeGVscyxcbiAgICBoZWlnaHRJblBpeGVscyxcbiAgICB0b3BJblBpeGVsczogaW1hZ2VIZWlnaHRJblBpeGVscyAtIGhlaWdodEluUGl4ZWxzXG4gIH07XG59XG5cbi8qKlxuICogRXNjYXBlcyB0ZXh0IGZvciBpbmNsdXNpb24gaW4gU1ZHIGNoYXJhY3RlciBkYXRhLlxuICpcbiAqIEEgY2FwdGlvbiBpcyBhdXRob3JlZCBwZXIgc2NyZWVuc2hvdCBhbmQgY2FuIGxlZ2l0aW1hdGVseSBjb250YWluIGAmYCBvciB0aGVcbiAqIGFuZ2xlIGJyYWNrZXRzIE9ic2lkaWFuIHVzZXMgaW4gbGluayBzeW50YXg7IHVuZXNjYXBlZCwgdGhvc2UgbWFrZSB0aGUgU1ZHXG4gKiBpbXBvc3NpYmxlIHRvIHBhcnNlIGFuZCBgc2hhcnBgIGZhaWxzIG9uIGEgY2FwdGlvbiByYXRoZXIgdGhhbiBvbiBhbiBpbWFnZS5cbiAqXG4gKiBAcGFyYW0gdGV4dCAtIFRoZSByYXcgY2FwdGlvbi5cbiAqIEByZXR1cm5zIFRoZSBjYXB0aW9uLCBzYWZlIHRvIGVtYmVkIGluIFNWRy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVN2Z1RleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRleHRcbiAgICAucmVwbGFjZUFsbCgnJicsICcmYW1wOycpXG4gICAgLnJlcGxhY2VBbGwoJzwnLCAnJmx0OycpXG4gICAgLnJlcGxhY2VBbGwoJz4nLCAnJmd0OycpXG4gICAgLnJlcGxhY2VBbGwoJ1wiJywgJyZxdW90OycpXG4gICAgLnJlcGxhY2VBbGwoJ1xcJycsICcmYXBvczsnKTtcbn1cblxuLyoqXG4gKiBEcmF3cyBhIGNhcHRpb24gYmFuZCBhY3Jvc3MgdGhlIGJvdHRvbSBvZiBhIHNjcmVlbnNob3QuXG4gKlxuICogVGhlIGltYWdlIGtlZXBzIGl0cyBkaW1lbnNpb25zIGV4YWN0bHk6IHRoZSBiYW5kIGlzIGNvbXBvc2l0ZWQgT1ZFUiB0aGVcbiAqIGZyYW1lLCBuZXZlciBhcHBlbmRlZCB0byBpdCwgYmVjYXVzZSB0aGUgc3RvcmUgZXhwZWN0cyBhIHNwZWNpZmljIHNpemUuXG4gKlxuICogQHBhcmFtIGJ5dGVzIC0gVGhlIGNhcHR1cmVkIFBORy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIGNhcHRpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBsYWJlbGVkIFBORywgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgaW5wdXQuXG4gKiBAdGhyb3dzIEVycm9yIGlmIGBzaGFycGAgaXMgbm90IGluc3RhbGxlZCwgb3IgdGhlIGltYWdlIGRpbWVuc2lvbnMgY2Fubm90IGJlIHJlYWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsYWJlbFNjcmVlbnNob3QoYnl0ZXM6IFVpbnQ4QXJyYXksIG9wdGlvbnM6IExhYmVsU2NyZWVuc2hvdE9wdGlvbnMpOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgY29uc3Qgc2hhcnAgPSBhd2FpdCBpbXBvcnRTaGFycCgnbGFiZWxTY3JlZW5zaG90Jyk7XG4gIGNvbnN0IG1ldGFkYXRhID0gYXdhaXQgc2hhcnAoYnl0ZXMpLm1ldGFkYXRhKCk7XG4gIGNvbnN0IGltYWdlV2lkdGhJblBpeGVscyA9IG1ldGFkYXRhLndpZHRoO1xuICBjb25zdCBpbWFnZUhlaWdodEluUGl4ZWxzID0gbWV0YWRhdGEuaGVpZ2h0O1xuXG4gIC8qIHY4IGlnbm9yZSBuZXh0IDMgLS0gRGVmZW5zaXZlOiBgc2hhcnBgIHJlamVjdHMgYSBub24taW1hZ2UgYmVmb3JlIGl0IGNhbiByZXBvcnQgbWV0YWRhdGEgd2l0aG91dCBkaW1lbnNpb25zLCBzbyB0aGlzIGJyYW5jaCBpcyB1bnJlYWNoYWJsZSBmcm9tIGEgdGVzdC4gKi9cbiAgaWYgKGltYWdlV2lkdGhJblBpeGVscyA9PT0gdW5kZWZpbmVkIHx8IGltYWdlSGVpZ2h0SW5QaXhlbHMgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignbGFiZWxTY3JlZW5zaG90OiBjb3VsZCBub3QgcmVhZCB0aGUgc291cmNlIGltYWdlIGRpbWVuc2lvbnMuJyk7XG4gIH1cblxuICBjb25zdCBnZW9tZXRyeSA9IGNvbXB1dGVMYWJlbEJhbmQoeyBpbWFnZUhlaWdodEluUGl4ZWxzLCBpbWFnZVdpZHRoSW5QaXhlbHMgfSk7XG4gIGNvbnN0IHN2ZyA9IGJ1aWxkTGFiZWxTdmcob3B0aW9ucy50ZXh0LCBnZW9tZXRyeSwgaW1hZ2VXaWR0aEluUGl4ZWxzKTtcbiAgY29uc3QgbGF5ZXI6IFNoYXJwQ29tcG9zaXRlTGF5ZXIgPSB7XG4gICAgaW5wdXQ6IEJ1ZmZlci5mcm9tKHN2ZyksXG4gICAgbGVmdDogMCxcbiAgICB0b3A6IGdlb21ldHJ5LnRvcEluUGl4ZWxzXG4gIH07XG5cbiAgY29uc3QgbGFiZWxlZCA9IGF3YWl0IHNoYXJwKGJ5dGVzKVxuICAgIC5jb21wb3NpdGUoW2xheWVyXSlcbiAgICAucG5nKClcbiAgICAudG9CdWZmZXIoKTtcblxuICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkobGFiZWxlZCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FB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
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2xhYmVsLXNjcmVlbnNob3QudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBBZGRzIGEgY2FwdGlvbiBiYW5kIHRvIGFuIGFscmVhZHktY2FwdHVyZWQgc2NyZWVuc2hvdC5cbiAqXG4gKiBBIHN0b3JlIGxpc3Rpbmcgc2hvd3Mgc2NyZWVuc2hvdHMgT05FIEFUIEEgVElNRSwgaW4gYSBjYXJvdXNlbCwgd2l0aCBub1xuICogY2FwdGlvbiBvZiBpdHMgb3duIFx1MjAxNCBzbyBhbiBpbWFnZSBoYXMgdG8gc2F5IHdoYXQgaXQgaXMgc2hvd2luZy4gV2l0aG91dCB0aGF0LFxuICogYSBzaG90IG9mIHRoZSBzdGF0ZSBhIHBsdWdpbiByZW1vdmVzIHJlYWRzIGFzIGEgc2hvdCBvZiB0aGUgc3RhdGUgdGhlIHBsdWdpblxuICogY2F1c2VzLCB3aGljaCBpcyB0aGUgb3Bwb3NpdGUgb2YgdGhlIG1lc3NhZ2UuXG4gKlxuICogVGhlIGJhbmQgaXMgZHJhd24gb3ZlciB0aGUgQk9UVE9NIG9mIHRoZSBmcmFtZSwgZm9yIHR3byByZWFzb25zOiB0aGUgdG9wIGlzXG4gKiB3aGVyZSB0aGUgY29udGVudCBiZWluZyBkZW1vbnN0cmF0ZWQgdXN1YWxseSBzdGFydHMsIGFuZCB0aGUgYm90dG9tIG9mIGFuXG4gKiBPYnNpZGlhbiBmcmFtZSBpcyBjaHJvbWUgXHUyMDE0IHN0YXR1cyBiYXIsIHdvcmQgY291bnQsIHN5bmMgaW5kaWNhdG9yIFx1MjAxNCB3aGljaCB0aGVcbiAqIGJhbmQgdGhlbiBjb3ZlcnMgcmF0aGVyIHRoYW4gY29tcGV0aW5nIHdpdGguXG4gKlxuICogVGhpcyBpcyBwb3N0LXByb2Nlc3NpbmcsIGRlbGliZXJhdGVseS4gVGhlIGNhcHR1cmUgc3RheXMgYW4gdW50b3VjaGVkIGRldmljZVxuICogZnJhbWUsIGFuZCByZXdvcmRpbmcgYSBsYWJlbCBuZWVkcyBubyByZS1zaG9vdC5cbiAqXG4gKiBBIGNhcHRpb24gdGhhdCBpcyB0b28gbG9uZyBmb3IgaXRzIGZyYW1lIGlzIE1FQVNVUkVEIGFuZCByZWplY3RlZCByYXRoZXIgdGhhblxuICogZHJhd24uIEFuIFNWRyBgPHRleHQ+YCBpcyBjbGlwcGVkIGJ5IGl0cyB2aWV3cG9ydCBhdCBib3RoIGVuZHMgd2l0aCBub1xuICogZWxsaXBzaXMgYW5kIG5vIGVycm9yLCBzbyBhbiBvdmVybG9uZyBjYXB0aW9uIHNoaXBzIGFzIGEgc2VudGVuY2UgZnJhZ21lbnRcbiAqIHRoYXQgbG9va3MgZGVsaWJlcmF0ZSBcdTIwMTQgYG5hYmxlZCBpbiBTZXR0aW5ncyAtIGEgbGlzdGVuaW5nIHBsdWdpbiBpcyB0b2xkYCBcdTIwMTRcbiAqIGFuZCB0aGUgZnJhbWUgaXMgc3RpbGwgZXhhY3RseSB0aGUgc2l6ZSBpdCBzaG91bGQgYmUsIHNvIGV2ZXJ5IGRpbWVuc2lvblxuICogYXNzZXJ0aW9uIGRvd25zdHJlYW0gc3RpbGwgcGFzc2VzLiBUaGUgb25seSBmZWVkYmFjayBhbnlvbmUgZXZlciBnb3Qgd2FzXG4gKiBsb29raW5nIGF0IHRoZSBQTkcuIFNlZSB7QGxpbmsgbWVhc3VyZUxhYmVsQ2FwdGlvbn0uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBTaGFycENvbXBvc2l0ZUxheWVyIH0gZnJvbSAnLi9zaGFycC1sb2FkZXIuY2pzJztcblxuaW1wb3J0IHsgcmVhZFBuZ0RpbWVuc2lvbnMgfSBmcm9tICcuL2NhcHR1cmUtc2NyZWVuc2hvdC5janMnO1xuaW1wb3J0IHsgaW1wb3J0U2hhcnAgfSBmcm9tICcuL3NoYXJwLWxvYWRlci5janMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjb21wdXRlTGFiZWxCYW5kfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wdXRlTGFiZWxCYW5kUGFyYW1zIHtcbiAgLyoqXG4gICAqIEhlaWdodCBvZiB0aGUgaW1hZ2UgYmVpbmcgbGFiZWxlZCwgaW4gcGl4ZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VIZWlnaHRJblBpeGVsczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaWR0aCBvZiB0aGUgaW1hZ2UgYmVpbmcgbGFiZWxlZCwgaW4gcGl4ZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VXaWR0aEluUGl4ZWxzOiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhlIGdlb21ldHJ5IG9mIHRoZSBjYXB0aW9uIGJhbmQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFiZWxCYW5kR2VvbWV0cnkge1xuICAvKipcbiAgICogSG93IG11Y2ggaG9yaXpvbnRhbCByb29tIHRoZSBjYXB0aW9uIGhhcywgaW4gcGl4ZWxzOiB0aGUgaW1hZ2Ugd2lkdGggbGVzc1xuICAgKiB0aGUgbWFyZ2luIGhlbGQgY2xlYXIgYXQgZWFjaCBlbmQsIHNvIGEgY2FwdGlvbiB0aGF0IGZpdHMgZG9lcyBub3QgcmVhZCBhc1xuICAgKiB0aG91Z2ggaXQgd2VyZSBhYm91dCB0byB0b3VjaCB0aGUgZWRnZSBvZiB0aGUgZnJhbWUuXG4gICAqL1xuICByZWFkb25seSBjYXB0aW9uUm9vbUluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEZvbnQgc2l6ZSBmb3IgdGhlIGNhcHRpb24sIGluIHBpeGVscy5cbiAgICovXG4gIHJlYWRvbmx5IGZvbnRTaXplSW5QaXhlbHM6IG51bWJlcjtcblxuICAvKipcbiAgICogSGVpZ2h0IG9mIHRoZSBiYW5kLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBoZWlnaHRJblBpeGVsczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBEaXN0YW5jZSBmcm9tIHRoZSB0b3Agb2YgdGhlIGltYWdlIHRvIHRoZSB0b3Agb2YgdGhlIGJhbmQsIGluIHBpeGVscy5cbiAgICovXG4gIHJlYWRvbmx5IHRvcEluUGl4ZWxzOiBudW1iZXI7XG59XG5cbi8qKlxuICogV2hhdCBhIGNhcHRpb24gbWVhc3VyZXMgYWdhaW5zdCB0aGUgZnJhbWUgaXQgaXMgZGVzdGluZWQgZm9yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhYmVsQ2FwdGlvbk1lYXN1cmVtZW50IHtcbiAgLyoqXG4gICAqIFRoZSByb29tIGF2YWlsYWJsZSwgaW4gcGl4ZWxzIFx1MjAxNCB7QGxpbmsgTGFiZWxCYW5kR2VvbWV0cnkuY2FwdGlvblJvb21JblBpeGVsc30uXG4gICAqL1xuICByZWFkb25seSBjYXB0aW9uUm9vbUluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNhcHRpb24gZml0cyB0aGF0IHJvb20uXG4gICAqL1xuICByZWFkb25seSBkb2VzRml0OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBIb3cgd2lkZSB0aGUgY2FwdGlvbiBhY3R1YWxseSByZW5kZXJzLCBpbiBwaXhlbHMsIGF0IHRoZSBzaXplIHRoZSBiYW5kXG4gICAqIHdvdWxkIGRyYXcgaXQuXG4gICAqL1xuICByZWFkb25seSB0ZXh0V2lkdGhJblBpeGVsczogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBsYWJlbFNjcmVlbnNob3R9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhYmVsU2NyZWVuc2hvdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNhcHRpb24uIEtlZXAgaXQgdG8gYSBoYW5kZnVsIG9mIHdvcmRzOiBpdCBpcyByZWFkIGF0IGxpc3RpbmctdGh1bWJuYWlsXG4gICAqIHNpemUsIGFuZCBpdCBpcyBuZWl0aGVyIHdyYXBwZWQgbm9yIHNocnVuayB0byBmaXQgXHUyMDE0IG9uZSB0aGF0IGRvZXMgbm90IGZpdFxuICAgKiBpcyBSRUpFQ1RFRCwgd2l0aCB0aGUgbWVhc3VyZWQgd2lkdGggYW5kIHRoZSByb29tIGF2YWlsYWJsZS4gQ2hlY2sgYVxuICAgKiBjYW5kaWRhdGUgd2l0aCB7QGxpbmsgbWVhc3VyZUxhYmVsQ2FwdGlvbn0gYmVmb3JlIGNvbW1pdHRpbmcgdG8gaXQuXG4gICAqL1xuICByZWFkb25seSB0ZXh0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIG1lYXN1cmVMYWJlbENhcHRpb259LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lYXN1cmVMYWJlbENhcHRpb25QYXJhbXMge1xuICAvKipcbiAgICogSGVpZ2h0IG9mIHRoZSBpbWFnZSB0aGUgY2FwdGlvbiBpcyBkZXN0aW5lZCBmb3IsIGluIHBpeGVscy5cbiAgICovXG4gIHJlYWRvbmx5IGltYWdlSGVpZ2h0SW5QaXhlbHM6IG51bWJlcjtcblxuICAvKipcbiAgICogV2lkdGggb2YgdGhlIGltYWdlIHRoZSBjYXB0aW9uIGlzIGRlc3RpbmVkIGZvciwgaW4gcGl4ZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VXaWR0aEluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBjYXB0aW9uIHRvIG1lYXN1cmUuXG4gICAqL1xuICByZWFkb25seSB0ZXh0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2FwdGlvbiBzaXplIGFzIGEgZnJhY3Rpb24gb2YgaW1hZ2UgV0lEVEgsIG5vdCBoZWlnaHQuXG4gKlxuICogV2lkdGggaXMgd2hhdCBnb3Zlcm5zIGxlZ2liaWxpdHkgaGVyZTogYSA5MDB4MTYwMCBwaG9uZSBmcmFtZSBhbmQgYSAxMjAweDgwMFxuICogZGVza3RvcCBmcmFtZSBhcmUgcmVhZCBhdCBzaW1pbGFyIG9uLXNjcmVlbiB3aWR0aHMgaW4gYSBsaXN0aW5nLCBzbyBzaXppbmcgYnlcbiAqIHdpZHRoIGtlZXBzIHRoZSBjYXB0aW9uIHZpc3VhbGx5IGNvbnNpc3RlbnQgYWNyb3NzIHRoZSB0d28uXG4gKi9cbmNvbnN0IEZPTlRfU0laRV9SQVRJTyA9IDAuMDM0O1xuXG4vKipcbiAqIEJhbmQgaGVpZ2h0IGFzIGEgbXVsdGlwbGUgb2YgdGhlIGZvbnQgc2l6ZSBcdTIwMTQgZW5vdWdoIHRvIHNpdCB0aGUgdGV4dCBvbiB3aXRoXG4gKiBjbGVhciBzcGFjZSBhYm92ZSBhbmQgYmVsb3cuXG4gKi9cbmNvbnN0IEJBTkRfSEVJR0hUX1JBVElPID0gMi4yO1xuXG4vKipcbiAqIE9wYWNpdHkgb2YgdGhlIGJhbmQuIEZ1bGx5IG9wYXF1ZSwgYW5kIHRoYXQgaXMgYSBkZWNpc2lvbiByYXRoZXIgdGhhbiBhXG4gKiBkZWZhdWx0OiB0aGUgYmFuZCdzIGpvYiBpcyB0byBDT1ZFUiB0aGUgY2hyb21lIGFsb25nIHRoZSBib3R0b20gb2YgdGhlIGZyYW1lLFxuICogc28gbm90aGluZyB1bmRlcm5lYXRoIGl0IG1heSByZWFjaCB0aGUgY2FwdHVyZWQgZnJhbWUgYXQgYWxsLlxuICpcbiAqIEl0IHdhcyAwLjk0LCBhIHZhbHVlIGNob3NlbiBvbmx5IGJlY2F1c2UgMC44MiBsZXQgYSBzdGF0dXMgYmFyIGxlZ2libHkgYmxlZWRcbiAqIHRocm91Z2ggYmVoaW5kIHRoZSBjYXB0aW9uIGFuZCBsb29rIGxpa2UgYSBtaXN0YWtlIHJhdGhlciB0aGFuIGEgZGVzaWduLlxuICogTm90aGluZyBpbiB0aGF0IGFyZ3VlZCBmb3IgMC45NCBvdmVyIGZ1bGwgb3BhY2l0eS4gV2hhdCAwLjk0IGRvZXMgaXMgYXR0ZW51YXRlXG4gKiB3aGF0ZXZlciBpcyB1bmRlciB0aGUgYmFuZCB0byBhYm91dCA2ICUgYnJpZ2h0bmVzcyBcdTIwMTQgaW52aXNpYmxlIHRvIGEgcmVhZGVyLFxuICogYW5kIHN0aWxsIDM0OSBkaWZmZXJpbmcgcGl4ZWxzIHRvIGEgZGlmZiwgbWVhc3VyZWQgb24gYSB0ZW1wb3JhcnkgdmF1bHQncyBuYW1lXG4gKiByZW5kZXJpbmcgdW5kZXIgdGhlIGJhbmQgb2YgYSAxMjAweDgwMCBkZXNrdG9wIGZyYW1lLiBBbnkgdmFsdWUgYmVsb3cgMSBob2xkc1xuICogdGhhdCBjaGFubmVsIG9wZW4gZm9yIGV2ZXJ5IHZhcnlpbmcgdGhpbmcgdGhlIGJvdHRvbSBjaHJvbWUgY2FuIGNhcnJ5IFx1MjAxNCBhXG4gKiBjbG9jaywgYSB3b3JkIGNvdW50LCBhIHN5bmMgaW5kaWNhdG9yIFx1MjAxNCBvbiBhIGZyYW1lIG5vYm9keSBoYXMgY2FwdHVyZWQgeWV0LlxuICpcbiAqIFdyaXR0ZW4gaW50byB0aGUgZW1pdHRlZCBTVkcgZXhwbGljaXRseSwgZXZlbiB0aG91Z2ggMSBpcyB3aGF0IGBmaWxsLW9wYWNpdHlgXG4gKiBkZWZhdWx0cyB0by4gRHJvcHBpbmcgdGhlIGF0dHJpYnV0ZSB3b3VsZCBsZWF2ZSB0aGlzIGNvbnN0YW50IHVudXNlZCBhbmQgdGFrZVxuICogdGhlIGRlY2lzaW9uIGF3YXkgd2l0aCBpdDogdGhlIGJhbmQgd291bGQgdGhlbiBiZSBvcGFxdWUgYnkgYWNjaWRlbnQgb2YgdGhlXG4gKiBmb3JtYXQgcmF0aGVyIHRoYW4gb24gcHVycG9zZSwgd2l0aCBub3RoaW5nIG5hbWVkIHRvIHJlYWQgYW5kIG5vdGhpbmcgdG9cbiAqIGFzc2VydCBvbi5cbiAqL1xuY29uc3QgQkFORF9PUEFDSVRZID0gMTtcblxuY29uc3QgTUlOSU1VTV9GT05UX1NJWkVfSU5fUElYRUxTID0gMTg7XG5cbi8qKlxuICogRmxvb3Igb24gYmFuZCBoZWlnaHQgYXMgYSBmcmFjdGlvbiBvZiBpbWFnZSBIRUlHSFQuXG4gKlxuICogSGVpZ2h0IGRlcml2ZWQgZnJvbSB0aGUgY2FwdGlvbiBhbG9uZSBpcyB0b28gc2hhbGxvdyBvbiBhIHRhbGwgZnJhbWU6IG9uIGFcbiAqIDkwMHgxNjAwIHBob25lIGl0IGNhbWUgdG8gNjhweCBhbmQgc2xpY2VkIHRocm91Z2ggdGhlIHN0YXR1cyByb3cgaXQgd2FzIG1lYW50XG4gKiB0byBjb3ZlciwgY2xpcHBpbmcgdGhlIHRleHQgbWlkLWxpbmUuIFRoaXMgZmxvb3IgbWFrZXMgdGhlIGJhbmQgZGVlcCBlbm91Z2ggdG9cbiAqIHN3YWxsb3cgdGhhdCByb3cgd2hvbGUgKDEyMHB4IG9uIGEgOTAweDE2MDAgcGhvbmUpLCBhbmQgaXMgaW5lcnQgb24gYSB3aWRlIGZyYW1lIHdoZXJlIHRoZSBjYXB0aW9uLWRlcml2ZWRcbiAqIGhlaWdodCBpcyBhbHJlYWR5IHRoZSBsYXJnZXIgb2YgdGhlIHR3by5cbiAqL1xuY29uc3QgTUlOSU1VTV9IRUlHSFRfUkFUSU8gPSAwLjA3NTtcblxuLyoqXG4gKiBNYXJnaW4gaGVsZCBjbGVhciBhdCBFQUNIIGVuZCBvZiB0aGUgY2FwdGlvbiwgYXMgYSBmcmFjdGlvbiBvZiBpbWFnZSB3aWR0aC5cbiAqXG4gKiBBIGNhcHRpb24gdGhhdCBlbmRzIGEgcGl4ZWwgaW5zaWRlIHRoZSBmcmFtZSBpcyBsZWdhbGx5IHVuLWNsaXBwZWQgYW5kIHN0aWxsXG4gKiBsb29rcyB3cm9uZywgc28gdGhlIHJvb20gYSBjYXB0aW9uIGlzIG1lYXN1cmVkIGFnYWluc3QgaXMgdGhlIGZyYW1lIGxlc3MgdGhpc1xuICogYXQgYm90aCBlbmRzIFx1MjAxNCA0OHB4IGVhY2ggc2lkZSBvbiBhIDEyMDBweCBmcmFtZS5cbiAqL1xuY29uc3QgU0lERV9NQVJHSU5fUkFUSU8gPSAwLjA0O1xuXG4vKipcbiAqIERpdmlzb3IgdGhhdCB0dXJucyBhIHNwYW4gaW50byBpdHMgbWlkcG9pbnQsIGZvciBjZW50ZXJpbmcgdGhlIGNhcHRpb24uXG4gKi9cbmNvbnN0IENFTlRFUl9ESVZJU09SID0gMjtcblxuLyoqXG4gKiBUaGUgY2FwdGlvbidzIHR5cGVmYWNlIGFuZCB3ZWlnaHQsIGluIG9uZSBwbGFjZSBiZWNhdXNlIHRoZSBiYW5kIGFuZCB0aGVcbiAqIG1lYXN1cmVtZW50IGNhbnZhcyBNVVNUIGRyYXcgd2l0aCB0aGUgc2FtZSBvbmVzOiBhIG1lYXN1cmVtZW50IHRha2VuIGluIGFcbiAqIGRpZmZlcmVudCBmYWNlIGlzIG5vdCBhIG1lYXN1cmVtZW50IG9mIHRoZSB0aGluZyB0aGF0IHNoaXBzLlxuICovXG5jb25zdCBGT05UX0ZBTUlMWSA9ICdTZWdvZSBVSSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZic7XG5cbmNvbnN0IEZPTlRfV0VJR0hUID0gJzYwMCc7XG5cbmNvbnN0IENBUFRJT05fRklMTCA9ICcjZmZmZmZmJztcblxuLyoqXG4gKiBVcHBlciBib3VuZCBvbiBvbmUgZ2x5cGgncyBhZHZhbmNlIHdpZHRoLCBhcyBhIG11bHRpcGxlIG9mIHRoZSBmb250IHNpemUuXG4gKlxuICogSXQgc2l6ZXMgdGhlIG9mZi1zY3JlZW4gY2FudmFzIHRoZSBjYXB0aW9uIGlzIG1lYXN1cmVkIG9uLCBhbmQgaXQgb25seSBldmVyXG4gKiBuZWVkcyB0byBiZSBhbiBvdmVyLWVzdGltYXRlOiBhIGNhbnZhcyB0b28gbmFycm93IHdvdWxkIGNsaXAgdGhlIHRleHQgYmVpbmdcbiAqIG1lYXN1cmVkLCB1bmRlci1yZXBvcnQgaXRzIHdpZHRoLCBhbmQgcmVpbnRyb2R1Y2UgdGhlIGV4YWN0IHNpbGVudCBjbGlwcGluZ1xuICogdGhlIG1lYXN1cmVtZW50IGV4aXN0cyB0byBjYXRjaC4gTm8gTGF0aW4gZ2x5cGggaW4gYSBwcm9wb3J0aW9uYWwgc2Fuc1xuICogYWR2YW5jZXMgYSBmdWxsIGVtIFx1MjAxNCBhbiBlbSBkYXNoLCB0aGUgd2lkZXN0LCBpcyAxLjAgXHUyMDE0IHNvIDEuMSBpcyBoZWFkcm9vbSBhdFxuICogbmVnbGlnaWJsZSBjb3N0IChtZWFzdXJlZCBwcm9zZSBydW5zIGFib3V0IDAuNDUgZW0gcGVyIGNoYXJhY3Rlciwgc28gdGhlXG4gKiBjYW52YXMgY29tZXMgb3V0IHJvdWdobHkgMi41eCB0aGUgdGV4dCkuXG4gKi9cbmNvbnN0IE1BWElNVU1fR0xZUEhfQURWQU5DRV9SQVRJTyA9IDEuMTtcblxuLyoqXG4gKiBIZWlnaHQgb2YgdGhlIG1lYXN1cmVtZW50IGNhbnZhcyBhcyBhIG11bHRpcGxlIG9mIHRoZSBmb250IHNpemUsIHNvIGFzY2VuZGVyc1xuICogYW5kIGRlc2NlbmRlcnMgaGF2ZSByb29tIGFuZCB0aGUgdHJpbSByZWFkcyB0aGUgZ2x5cGhzIHJhdGhlciB0aGFuIHRoZSBlZGdlLlxuICovXG5jb25zdCBNRUFTVVJFTUVOVF9DQU5WQVNfSEVJR0hUX1JBVElPID0gMztcblxuLyoqXG4gKiBIb3cgZmFyIGEgcGl4ZWwgbWF5IGRpZmZlciBmcm9tIHRoZSB0cmFuc3BhcmVudCBzdXJyb3VuZCBiZWZvcmUgYHRyaW1gIGNvdW50c1xuICogaXQgYXMgdGV4dC4gRGVsaWJlcmF0ZWx5IGZhciBsb3dlciB0aGFuIGBzaGFycGAncyBkZWZhdWx0IG9mIDEwOiB0aGUgb3V0ZXJtb3N0XG4gKiBwaXhlbHMgb2YgYW4gYW50aWFsaWFzZWQgZ2x5cGggYXJlIHZlcnkgZmFpbnQsIGFuZCB0aGUgZGVmYXVsdCBkaXNjYXJkcyB0aGVtLFxuICogdW5kZXItbWVhc3VyaW5nIGEgY2FwdGlvbiBieSBhIHBpeGVsIG9yIHR3byBhdCBlYWNoIGVuZC5cbiAqL1xuY29uc3QgVFJJTV9USFJFU0hPTEQgPSAxO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBidWlsZENhcHRpb25UZXh0RWxlbWVudH0uXG4gKi9cbmludGVyZmFjZSBDYXB0aW9uVGV4dEVsZW1lbnRQYXJhbXMge1xuICByZWFkb25seSBmb250U2l6ZUluUGl4ZWxzOiBudW1iZXI7XG4gIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcbiAgcmVhZG9ubHkgdGV4dEFuY2hvcjogJ21pZGRsZScgfCAnc3RhcnQnO1xuICByZWFkb25seSB4SW5QaXhlbHM6IG51bWJlcjtcbiAgcmVhZG9ubHkgeUluUGl4ZWxzOiBudW1iZXI7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBTVkcgZm9yIHRoZSBjYXB0aW9uIGJhbmQuXG4gKlxuICogQHBhcmFtIHRleHQgLSBUaGUgY2FwdGlvbi5cbiAqIEBwYXJhbSBnZW9tZXRyeSAtIFRoZSBiYW5kIGdlb21ldHJ5LlxuICogQHBhcmFtIGltYWdlV2lkdGhJblBpeGVscyAtIFdpZHRoIG9mIHRoZSBpbWFnZSwgc28gdGhlIGJhbmQgc3BhbnMgaXQuXG4gKiBAcmV0dXJucyBUaGUgU1ZHIG1hcmt1cC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkTGFiZWxTdmcodGV4dDogc3RyaW5nLCBnZW9tZXRyeTogTGFiZWxCYW5kR2VvbWV0cnksIGltYWdlV2lkdGhJblBpeGVsczogbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3QgeyBmb250U2l6ZUluUGl4ZWxzLCBoZWlnaHRJblBpeGVscyB9ID0gZ2VvbWV0cnk7XG4gIGNvbnN0IGNhcHRpb25FbGVtZW50ID0gYnVpbGRDYXB0aW9uVGV4dEVsZW1lbnQoe1xuICAgIGZvbnRTaXplSW5QaXhlbHMsXG4gICAgdGV4dCxcbiAgICB0ZXh0QW5jaG9yOiAnbWlkZGxlJyxcbiAgICB4SW5QaXhlbHM6IGltYWdlV2lkdGhJblBpeGVscyAvIENFTlRFUl9ESVZJU09SLFxuICAgIHlJblBpeGVsczogaGVpZ2h0SW5QaXhlbHMgLyBDRU5URVJfRElWSVNPUlxuICB9KTtcblxuICByZXR1cm4gYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiJHtTdHJpbmcoaW1hZ2VXaWR0aEluUGl4ZWxzKX1cIiBoZWlnaHQ9XCIke1N0cmluZyhoZWlnaHRJblBpeGVscyl9XCI+YFxuICAgICsgYDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIiR7U3RyaW5nKGltYWdlV2lkdGhJblBpeGVscyl9XCIgaGVpZ2h0PVwiJHtTdHJpbmcoaGVpZ2h0SW5QaXhlbHMpfVwiIGBcbiAgICArIGBmaWxsPVwiIzAwMDAwMFwiIGZpbGwtb3BhY2l0eT1cIiR7U3RyaW5nKEJBTkRfT1BBQ0lUWSl9XCIvPmBcbiAgICArIGAke2NhcHRpb25FbGVtZW50fTwvc3ZnPmA7XG59XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIGNhcHRpb24gYmFuZCdzIHNpemUgYW5kIHBvc2l0aW9uIGZvciBhIGdpdmVuIGltYWdlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgaW1hZ2UgZGltZW5zaW9ucy5cbiAqIEByZXR1cm5zIFRoZSBiYW5kIGdlb21ldHJ5LlxuICogQHRocm93cyBFcnJvciBpZiBlaXRoZXIgZGltZW5zaW9uIGlzIG5vdCBhIHBvc2l0aXZlIG51bWJlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVMYWJlbEJhbmQocGFyYW1zOiBDb21wdXRlTGFiZWxCYW5kUGFyYW1zKTogTGFiZWxCYW5kR2VvbWV0cnkge1xuICBjb25zdCB7IGltYWdlSGVpZ2h0SW5QaXhlbHMsIGltYWdlV2lkdGhJblBpeGVscyB9ID0gcGFyYW1zO1xuXG4gIGlmICghTnVtYmVyLmlzRmluaXRlKGltYWdlV2lkdGhJblBpeGVscykgfHwgaW1hZ2VXaWR0aEluUGl4ZWxzIDw9IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbXB1dGVMYWJlbEJhbmQ6IGltYWdlV2lkdGhJblBpeGVscyBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyLCBnb3QgJHtTdHJpbmcoaW1hZ2VXaWR0aEluUGl4ZWxzKX0uYCk7XG4gIH1cblxuICBpZiAoIU51bWJlci5pc0Zpbml0ZShpbWFnZUhlaWdodEluUGl4ZWxzKSB8fCBpbWFnZUhlaWdodEluUGl4ZWxzIDw9IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbXB1dGVMYWJlbEJhbmQ6IGltYWdlSGVpZ2h0SW5QaXhlbHMgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciwgZ290ICR7U3RyaW5nKGltYWdlSGVpZ2h0SW5QaXhlbHMpfS5gKTtcbiAgfVxuXG4gIGNvbnN0IGZvbnRTaXplSW5QaXhlbHMgPSBNYXRoLm1heChNSU5JTVVNX0ZPTlRfU0laRV9JTl9QSVhFTFMsIE1hdGgucm91bmQoaW1hZ2VXaWR0aEluUGl4ZWxzICogRk9OVF9TSVpFX1JBVElPKSk7XG4gIGNvbnN0IGNhcHRpb25IZWlnaHRJblBpeGVscyA9IE1hdGgucm91bmQoZm9udFNpemVJblBpeGVscyAqIEJBTkRfSEVJR0hUX1JBVElPKTtcbiAgY29uc3QgZmxvb3JlZEhlaWdodEluUGl4ZWxzID0gTWF0aC5tYXgoY2FwdGlvbkhlaWdodEluUGl4ZWxzLCBNYXRoLnJvdW5kKGltYWdlSGVpZ2h0SW5QaXhlbHMgKiBNSU5JTVVNX0hFSUdIVF9SQVRJTykpO1xuICBjb25zdCBoZWlnaHRJblBpeGVscyA9IE1hdGgubWluKGltYWdlSGVpZ2h0SW5QaXhlbHMsIGZsb29yZWRIZWlnaHRJblBpeGVscyk7XG4gIGNvbnN0IHNpZGVNYXJnaW5JblBpeGVscyA9IE1hdGgucm91bmQoaW1hZ2VXaWR0aEluUGl4ZWxzICogU0lERV9NQVJHSU5fUkFUSU8pO1xuXG4gIHJldHVybiB7XG4gICAgY2FwdGlvblJvb21JblBpeGVsczogaW1hZ2VXaWR0aEluUGl4ZWxzIC0gKHNpZGVNYXJnaW5JblBpeGVscyAqIENFTlRFUl9ESVZJU09SKSxcbiAgICBmb250U2l6ZUluUGl4ZWxzLFxuICAgIGhlaWdodEluUGl4ZWxzLFxuICAgIHRvcEluUGl4ZWxzOiBpbWFnZUhlaWdodEluUGl4ZWxzIC0gaGVpZ2h0SW5QaXhlbHNcbiAgfTtcbn1cblxuLyoqXG4gKiBFc2NhcGVzIHRleHQgZm9yIGluY2x1c2lvbiBpbiBTVkcgY2hhcmFjdGVyIGRhdGEuXG4gKlxuICogQSBjYXB0aW9uIGlzIGF1dGhvcmVkIHBlciBzY3JlZW5zaG90IGFuZCBjYW4gbGVnaXRpbWF0ZWx5IGNvbnRhaW4gYCZgIG9yIHRoZVxuICogYW5nbGUgYnJhY2tldHMgT2JzaWRpYW4gdXNlcyBpbiBsaW5rIHN5bnRheDsgdW5lc2NhcGVkLCB0aG9zZSBtYWtlIHRoZSBTVkdcbiAqIGltcG9zc2libGUgdG8gcGFyc2UgYW5kIGBzaGFycGAgZmFpbHMgb24gYSBjYXB0aW9uIHJhdGhlciB0aGFuIG9uIGFuIGltYWdlLlxuICpcbiAqIEBwYXJhbSB0ZXh0IC0gVGhlIHJhdyBjYXB0aW9uLlxuICogQHJldHVybnMgVGhlIGNhcHRpb24sIHNhZmUgdG8gZW1iZWQgaW4gU1ZHLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlU3ZnVGV4dCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdGV4dFxuICAgIC5yZXBsYWNlQWxsKCcmJywgJyZhbXA7JylcbiAgICAucmVwbGFjZUFsbCgnPCcsICcmbHQ7JylcbiAgICAucmVwbGFjZUFsbCgnPicsICcmZ3Q7JylcbiAgICAucmVwbGFjZUFsbCgnXCInLCAnJnF1b3Q7JylcbiAgICAucmVwbGFjZUFsbCgnXFwnJywgJyZhcG9zOycpO1xufVxuXG4vKipcbiAqIERyYXdzIGEgY2FwdGlvbiBiYW5kIGFjcm9zcyB0aGUgYm90dG9tIG9mIGEgc2NyZWVuc2hvdC5cbiAqXG4gKiBUaGUgaW1hZ2Uga2VlcHMgaXRzIGRpbWVuc2lvbnMgZXhhY3RseTogdGhlIGJhbmQgaXMgY29tcG9zaXRlZCBPVkVSIHRoZVxuICogZnJhbWUsIG5ldmVyIGFwcGVuZGVkIHRvIGl0LCBiZWNhdXNlIHRoZSBzdG9yZSBleHBlY3RzIGEgc3BlY2lmaWMgc2l6ZS5cbiAqXG4gKiBAcGFyYW0gYnl0ZXMgLSBUaGUgY2FwdHVyZWQgUE5HLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgY2FwdGlvbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGxhYmVsZWQgUE5HLCB0aGUgc2FtZSBzaXplIGFzIHRoZSBpbnB1dC5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgYHNoYXJwYCBpcyBub3QgaW5zdGFsbGVkLCB0aGUgaW1hZ2UgZGltZW5zaW9ucyBjYW5ub3QgYmUgcmVhZCwgb3IgdGhlIGNhcHRpb24gaXMgdG9vIHdpZGUgZm9yIHRoZSBmcmFtZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxhYmVsU2NyZWVuc2hvdChieXRlczogVWludDhBcnJheSwgb3B0aW9uczogTGFiZWxTY3JlZW5zaG90T3B0aW9ucyk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBjb25zdCBzaGFycCA9IGF3YWl0IGltcG9ydFNoYXJwKCdsYWJlbFNjcmVlbnNob3QnKTtcbiAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCBzaGFycChieXRlcykubWV0YWRhdGEoKTtcbiAgY29uc3QgaW1hZ2VXaWR0aEluUGl4ZWxzID0gbWV0YWRhdGEud2lkdGg7XG4gIGNvbnN0IGltYWdlSGVpZ2h0SW5QaXhlbHMgPSBtZXRhZGF0YS5oZWlnaHQ7XG5cbiAgLyogdjggaWdub3JlIG5leHQgMyAtLSBEZWZlbnNpdmU6IGBzaGFycGAgcmVqZWN0cyBhIG5vbi1pbWFnZSBiZWZvcmUgaXQgY2FuIHJlcG9ydCBtZXRhZGF0YSB3aXRob3V0IGRpbWVuc2lvbnMsIHNvIHRoaXMgYnJhbmNoIGlzIHVucmVhY2hhYmxlIGZyb20gYSB0ZXN0LiAqL1xuICBpZiAoaW1hZ2VXaWR0aEluUGl4ZWxzID09PSB1bmRlZmluZWQgfHwgaW1hZ2VIZWlnaHRJblBpeGVscyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdsYWJlbFNjcmVlbnNob3Q6IGNvdWxkIG5vdCByZWFkIHRoZSBzb3VyY2UgaW1hZ2UgZGltZW5zaW9ucy4nKTtcbiAgfVxuXG4gIGNvbnN0IGdlb21ldHJ5ID0gY29tcHV0ZUxhYmVsQmFuZCh7IGltYWdlSGVpZ2h0SW5QaXhlbHMsIGltYWdlV2lkdGhJblBpeGVscyB9KTtcbiAgY29uc3QgdGV4dFdpZHRoSW5QaXhlbHMgPSBhd2FpdCBtZWFzdXJlQ2FwdGlvbldpZHRoKG9wdGlvbnMudGV4dCwgZ2VvbWV0cnkuZm9udFNpemVJblBpeGVscyk7XG5cbiAgaWYgKHRleHRXaWR0aEluUGl4ZWxzID4gZ2VvbWV0cnkuY2FwdGlvblJvb21JblBpeGVscykge1xuICAgIGNvbnN0IG92ZXJmbG93SW5QaXhlbHMgPSB0ZXh0V2lkdGhJblBpeGVscyAtIGdlb21ldHJ5LmNhcHRpb25Sb29tSW5QaXhlbHM7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYGxhYmVsU2NyZWVuc2hvdDogdGhlIGNhcHRpb24gaXMgJHtTdHJpbmcob3ZlcmZsb3dJblBpeGVscyl9cHggdG9vIHdpZGUgZm9yIHRoZSBmcmFtZS4gYFxuICAgICAgICArIGBJdCByZW5kZXJzICR7U3RyaW5nKHRleHRXaWR0aEluUGl4ZWxzKX1weCBhdCBmb250LXNpemUgJHtTdHJpbmcoZ2VvbWV0cnkuZm9udFNpemVJblBpeGVscyl9LCBhbmQgYSBgXG4gICAgICAgICsgYCR7U3RyaW5nKGltYWdlV2lkdGhJblBpeGVscyl9cHggZnJhbWUgaGFzIHJvb20gZm9yICR7U3RyaW5nKGdlb21ldHJ5LmNhcHRpb25Sb29tSW5QaXhlbHMpfXB4LiBgXG4gICAgICAgICsgJ1Nob3J0ZW4gaXQ6IGEgY2FwdGlvbiB0aGF0IGRvZXMgbm90IGZpdCBpcyBjbGlwcGVkIGF0IEJPVEggZW5kcywgd2l0aCBubyBlbGxpcHNpcyB0byBzaG93IGl0IGhhcHBlbmVkLiAnXG4gICAgICAgICsgYENhcHRpb246ICR7SlNPTi5zdHJpbmdpZnkob3B0aW9ucy50ZXh0KX1gXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHN2ZyA9IGJ1aWxkTGFiZWxTdmcob3B0aW9ucy50ZXh0LCBnZW9tZXRyeSwgaW1hZ2VXaWR0aEluUGl4ZWxzKTtcbiAgY29uc3QgbGF5ZXI6IFNoYXJwQ29tcG9zaXRlTGF5ZXIgPSB7XG4gICAgaW5wdXQ6IEJ1ZmZlci5mcm9tKHN2ZyksXG4gICAgbGVmdDogMCxcbiAgICB0b3A6IGdlb21ldHJ5LnRvcEluUGl4ZWxzXG4gIH07XG5cbiAgY29uc3QgbGFiZWxlZCA9IGF3YWl0IHNoYXJwKGJ5dGVzKVxuICAgIC5jb21wb3NpdGUoW2xheWVyXSlcbiAgICAucG5nKClcbiAgICAudG9CdWZmZXIoKTtcblxuICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkobGFiZWxlZCk7XG59XG5cbi8qKlxuICogTWVhc3VyZXMgYSBjYXB0aW9uIGFnYWluc3QgdGhlIGZyYW1lIGl0IGlzIGRlc3RpbmVkIGZvciwgd2l0aG91dCBkcmF3aW5nXG4gKiBhbnl0aGluZy5cbiAqXG4gKiBUaGlzIGlzIHdoYXQge0BsaW5rIGxhYmVsU2NyZWVuc2hvdH0gcmVqZWN0cyBhbiBvdmVybG9uZyBjYXB0aW9uIHdpdGgsIGV4cG9zZWRcbiAqIHNvIGEgY2FwdGlvbiBjYW4gYmUgY2hvc2VuIHdpdGggdGhlIG51bWJlciBpbiBoYW5kIGluc3RlYWQgb2YgYnkgY2FwdHVyaW5nIGFcbiAqIGZyYW1lIGFuZCBsb29raW5nIGF0IGl0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgY2FwdGlvbiBhbmQgdGhlIGRpbWVuc2lvbnMgb2YgdGhlIGltYWdlIGl0IGlzIGZvci5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIG1lYXN1cmVtZW50LlxuICogQHRocm93cyBFcnJvciBpZiBgc2hhcnBgIGlzIG5vdCBpbnN0YWxsZWQsIG9yIGVpdGhlciBkaW1lbnNpb24gaXMgbm90IGEgcG9zaXRpdmUgbnVtYmVyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWVhc3VyZUxhYmVsQ2FwdGlvbihwYXJhbXM6IE1lYXN1cmVMYWJlbENhcHRpb25QYXJhbXMpOiBQcm9taXNlPExhYmVsQ2FwdGlvbk1lYXN1cmVtZW50PiB7XG4gIGNvbnN0IHsgaW1hZ2VIZWlnaHRJblBpeGVscywgaW1hZ2VXaWR0aEluUGl4ZWxzLCB0ZXh0IH0gPSBwYXJhbXM7XG4gIGNvbnN0IGdlb21ldHJ5ID0gY29tcHV0ZUxhYmVsQmFuZCh7IGltYWdlSGVpZ2h0SW5QaXhlbHMsIGltYWdlV2lkdGhJblBpeGVscyB9KTtcbiAgY29uc3QgdGV4dFdpZHRoSW5QaXhlbHMgPSBhd2FpdCBtZWFzdXJlQ2FwdGlvbldpZHRoKHRleHQsIGdlb21ldHJ5LmZvbnRTaXplSW5QaXhlbHMpO1xuXG4gIHJldHVybiB7XG4gICAgY2FwdGlvblJvb21JblBpeGVsczogZ2VvbWV0cnkuY2FwdGlvblJvb21JblBpeGVscyxcbiAgICBkb2VzRml0OiB0ZXh0V2lkdGhJblBpeGVscyA8PSBnZW9tZXRyeS5jYXB0aW9uUm9vbUluUGl4ZWxzLFxuICAgIHRleHRXaWR0aEluUGl4ZWxzXG4gIH07XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBjYXB0aW9uJ3MgU1ZHIGA8dGV4dD5gIGVsZW1lbnQuXG4gKlxuICogQm90aCB0aGUgYmFuZCBhbmQgdGhlIG1lYXN1cmVtZW50IGNhbnZhcyBnbyB0aHJvdWdoIGhlcmUsIHNvIHRoZSB0aGluZyB0aGF0XG4gKiBpcyBtZWFzdXJlZCBpcyBkcmF3biB3aXRoIHRoZSBzYW1lIGZhY2UsIHdlaWdodCBhbmQgc2l6ZSBhcyB0aGUgdGhpbmcgdGhhdFxuICogc2hpcHMuIFR3byBoYW5kLXdyaXR0ZW4gY29waWVzIHdvdWxkIGJlIGZyZWUgdG8gZHJpZnQsIGFuZCBhIG1lYXN1cmVtZW50IHRoYXRcbiAqIGhhcyBkcmlmdGVkIGZyb20gdGhlIGRyYXdpbmcgaXMgd29yc2UgdGhhbiBubyBtZWFzdXJlbWVudCBhdCBhbGwuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBjYXB0aW9uLCBpdHMgc2l6ZSwgYW5kIHdoZXJlIHRvIGFuY2hvciBpdC5cbiAqIEByZXR1cm5zIFRoZSBgPHRleHQ+YCBtYXJrdXAuXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkQ2FwdGlvblRleHRFbGVtZW50KHBhcmFtczogQ2FwdGlvblRleHRFbGVtZW50UGFyYW1zKTogc3RyaW5nIHtcbiAgY29uc3QgeyBmb250U2l6ZUluUGl4ZWxzLCB0ZXh0LCB0ZXh0QW5jaG9yLCB4SW5QaXhlbHMsIHlJblBpeGVscyB9ID0gcGFyYW1zO1xuXG4gIHJldHVybiBgPHRleHQgeD1cIiR7U3RyaW5nKHhJblBpeGVscyl9XCIgeT1cIiR7U3RyaW5nKHlJblBpeGVscyl9XCIgYFxuICAgICsgYGZvbnQtZmFtaWx5PVwiJHtGT05UX0ZBTUlMWX1cIiBmb250LXNpemU9XCIke1N0cmluZyhmb250U2l6ZUluUGl4ZWxzKX1cIiBgXG4gICAgKyBgZm9udC13ZWlnaHQ9XCIke0ZPTlRfV0VJR0hUfVwiIGZpbGw9XCIke0NBUFRJT05fRklMTH1cIiB0ZXh0LWFuY2hvcj1cIiR7dGV4dEFuY2hvcn1cIiBkb21pbmFudC1iYXNlbGluZT1cImNlbnRyYWxcIj5gXG4gICAgKyBgJHtlc2NhcGVTdmdUZXh0KHRleHQpfTwvdGV4dD5gO1xufVxuXG4vKipcbiAqIE1lYXN1cmVzIGhvdyB3aWRlIGEgY2FwdGlvbiByZW5kZXJzIGF0IGEgZ2l2ZW4gc2l6ZS5cbiAqXG4gKiBUaGUgdGV4dCBpcyBkcmF3biBhbG9uZSBvbiBhIHRyYW5zcGFyZW50IGNhbnZhcyBkZWxpYmVyYXRlbHkgd2lkZXIgdGhhbiBpdCBjYW5cbiAqIHBvc3NpYmx5IG5lZWQsIHRoZW4gYHRyaW1gbWVkIGJhY2sgdG8gaXRzIG93biBpbmsgXHUyMDE0IHRoZSBzYW1lIG1lYXN1cmVtZW50IHRoYXRcbiAqIHdhcyBwcmV2aW91c2x5IGRvbmUgYnkgaGFuZCwgb25jZSwgcGVyIGNhcHRpb24sIGJ5IHdob2V2ZXIgdGhvdWdodCB0byBkb3VidFxuICogb25lLiBUaGUgcmVuZGVyZXIgZG9pbmcgdGhlIG1lYXN1cmluZyBpcyB0aGUgcmVuZGVyZXIgdGhhdCBkcmF3cyB0aGUgYmFuZCwgc29cbiAqIHRoZSB0d28gY2Fubm90IGRpc2FncmVlIGFib3V0IGEgZm9udCB0aGUgaG9zdCBkb2VzIG9yIGRvZXMgbm90IGhhdmUuXG4gKlxuICogQHBhcmFtIHRleHQgLSBUaGUgY2FwdGlvbi5cbiAqIEBwYXJhbSBmb250U2l6ZUluUGl4ZWxzIC0gVGhlIHNpemUgdGhlIGJhbmQgd291bGQgZHJhdyBpdCBhdC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlbmRlcmVkIHdpZHRoIGluIHBpeGVscy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gbWVhc3VyZUNhcHRpb25XaWR0aCh0ZXh0OiBzdHJpbmcsIGZvbnRTaXplSW5QaXhlbHM6IG51bWJlcik6IFByb21pc2U8bnVtYmVyPiB7XG4gIC8vIEEgY2FwdGlvbiB3aXRoIG5vIGluayBsZWF2ZXMgdGhlIGNhbnZhcyB1bmlmb3JtbHkgdHJhbnNwYXJlbnQsIGFuZCBgdHJpbWBcbiAgLy8gcmV0dXJucyBzdWNoIGFuIGltYWdlIHVudG91Y2hlZCBcdTIwMTQgaS5lLiByZXBvcnRzIHRoZSB3aG9sZSBjYW52YXMgYXMgdGV4dC5cbiAgaWYgKHRleHQudHJpbSgpID09PSAnJykge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgY29uc3Qgc2hhcnAgPSBhd2FpdCBpbXBvcnRTaGFycCgnbWVhc3VyZUxhYmVsQ2FwdGlvbicpO1xuICBjb25zdCBwYWRkaW5nSW5QaXhlbHMgPSBmb250U2l6ZUluUGl4ZWxzICogQ0VOVEVSX0RJVklTT1I7XG4gIGNvbnN0IGNhbnZhc1dpZHRoSW5QaXhlbHMgPSBNYXRoLmNlaWwoZm9udFNpemVJblBpeGVscyAqIE1BWElNVU1fR0xZUEhfQURWQU5DRV9SQVRJTyAqIHRleHQubGVuZ3RoKSArIHBhZGRpbmdJblBpeGVscztcbiAgY29uc3QgY2FudmFzSGVpZ2h0SW5QaXhlbHMgPSBNYXRoLmNlaWwoZm9udFNpemVJblBpeGVscyAqIE1FQVNVUkVNRU5UX0NBTlZBU19IRUlHSFRfUkFUSU8pO1xuICBjb25zdCBjYXB0aW9uRWxlbWVudCA9IGJ1aWxkQ2FwdGlvblRleHRFbGVtZW50KHtcbiAgICBmb250U2l6ZUluUGl4ZWxzLFxuICAgIHRleHQsXG4gICAgdGV4dEFuY2hvcjogJ3N0YXJ0JyxcbiAgICB4SW5QaXhlbHM6IGZvbnRTaXplSW5QaXhlbHMsXG4gICAgeUluUGl4ZWxzOiBjYW52YXNIZWlnaHRJblBpeGVscyAvIENFTlRFUl9ESVZJU09SXG4gIH0pO1xuICBjb25zdCBzdmcgPSBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIke1N0cmluZyhjYW52YXNXaWR0aEluUGl4ZWxzKX1cIiBoZWlnaHQ9XCIke1N0cmluZyhjYW52YXNIZWlnaHRJblBpeGVscyl9XCI+YFxuICAgICsgYCR7Y2FwdGlvbkVsZW1lbnR9PC9zdmc+YDtcblxuICBjb25zdCB0cmltbWVkID0gYXdhaXQgc2hhcnAobmV3IFVpbnQ4QXJyYXkoQnVmZmVyLmZyb20oc3ZnKSkpXG4gICAgLnRyaW0oeyB0aHJlc2hvbGQ6IFRSSU1fVEhSRVNIT0xEIH0pXG4gICAgLnBuZygpXG4gICAgLnRvQnVmZmVyKCk7XG5cbiAgcmV0dXJuIHJlYWRQbmdEaW1lbnNpb25zKG5ldyBVaW50OEFycmF5KHRyaW1tZWQpKS53aWR0aEluUGl4ZWxzO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNkJBLGdDQUFrQztBQUNsQywwQkFBNEI7QUF5RzVCLE1BQU0sa0JBQWtCO0FBTXhCLE1BQU0sb0JBQW9CO0FBc0IxQixNQUFNLGVBQWU7QUFFckIsTUFBTSw4QkFBOEI7QUFXcEMsTUFBTSx1QkFBdUI7QUFTN0IsTUFBTSxvQkFBb0I7QUFLMUIsTUFBTSxpQkFBaUI7QUFPdkIsTUFBTSxjQUFjO0FBRXBCLE1BQU0sY0FBYztBQUVwQixNQUFNLGVBQWU7QUFhckIsTUFBTSw4QkFBOEI7QUFNcEMsTUFBTSxrQ0FBa0M7QUFReEMsTUFBTSxpQkFBaUI7QUFxQmhCLFNBQVMsY0FBYyxNQUFjLFVBQTZCLG9CQUFvQztBQUMzRyxRQUFNLEVBQUUsa0JBQWtCLGVBQWUsSUFBSTtBQUM3QyxRQUFNLGlCQUFpQix3QkFBd0I7QUFBQSxJQUM3QztBQUFBLElBQ0E7QUFBQSxJQUNBLFlBQVk7QUFBQSxJQUNaLFdBQVcscUJBQXFCO0FBQUEsSUFDaEMsV0FBVyxpQkFBaUI7QUFBQSxFQUM5QixDQUFDO0FBRUQsU0FBTyxrREFBa0QsT0FBTyxrQkFBa0IsQ0FBQyxhQUFhLE9BQU8sY0FBYyxDQUFDLDhCQUN0RixPQUFPLGtCQUFrQixDQUFDLGFBQWEsT0FBTyxjQUFjLENBQUMsa0NBQ3pELE9BQU8sWUFBWSxDQUFDLE1BQ2pELGNBQWM7QUFDdkI7QUFTTyxTQUFTLGlCQUFpQixRQUFtRDtBQUNsRixRQUFNLEVBQUUscUJBQXFCLG1CQUFtQixJQUFJO0FBRXBELE1BQUksQ0FBQyxPQUFPLFNBQVMsa0JBQWtCLEtBQUssc0JBQXNCLEdBQUc7QUFDbkUsVUFBTSxJQUFJLE1BQU0sdUVBQXVFLE9BQU8sa0JBQWtCLENBQUMsR0FBRztBQUFBLEVBQ3RIO0FBRUEsTUFBSSxDQUFDLE9BQU8sU0FBUyxtQkFBbUIsS0FBSyx1QkFBdUIsR0FBRztBQUNyRSxVQUFNLElBQUksTUFBTSx3RUFBd0UsT0FBTyxtQkFBbUIsQ0FBQyxHQUFHO0FBQUEsRUFDeEg7QUFFQSxRQUFNLG1CQUFtQixLQUFLLElBQUksNkJBQTZCLEtBQUssTUFBTSxxQkFBcUIsZUFBZSxDQUFDO0FBQy9HLFFBQU0sd0JBQXdCLEtBQUssTUFBTSxtQkFBbUIsaUJBQWlCO0FBQzdFLFFBQU0sd0JBQXdCLEtBQUssSUFBSSx1QkFBdUIsS0FBSyxNQUFNLHNCQUFzQixvQkFBb0IsQ0FBQztBQUNwSCxRQUFNLGlCQUFpQixLQUFLLElBQUkscUJBQXFCLHFCQUFxQjtBQUMxRSxRQUFNLHFCQUFxQixLQUFLLE1BQU0scUJBQXFCLGlCQUFpQjtBQUU1RSxTQUFPO0FBQUEsSUFDTCxxQkFBcUIscUJBQXNCLHFCQUFxQjtBQUFBLElBQ2hFO0FBQUEsSUFDQTtBQUFBLElBQ0EsYUFBYSxzQkFBc0I7QUFBQSxFQUNyQztBQUNGO0FBWU8sU0FBUyxjQUFjLE1BQXNCO0FBQ2xELFNBQU8sS0FDSixXQUFXLEtBQUssT0FBTyxFQUN2QixXQUFXLEtBQUssTUFBTSxFQUN0QixXQUFXLEtBQUssTUFBTSxFQUN0QixXQUFXLEtBQUssUUFBUSxFQUN4QixXQUFXLEtBQU0sUUFBUTtBQUM5QjtBQWFBLGVBQXNCLGdCQUFnQixPQUFtQixTQUFzRDtBQUM3RyxRQUFNLFFBQVEsVUFBTSxpQ0FBWSxpQkFBaUI7QUFDakQsUUFBTSxXQUFXLE1BQU0sTUFBTSxLQUFLLEVBQUUsU0FBUztBQUM3QyxRQUFNLHFCQUFxQixTQUFTO0FBQ3BDLFFBQU0sc0JBQXNCLFNBQVM7QUFHckMsTUFBSSx1QkFBdUIsVUFBYSx3QkFBd0IsUUFBVztBQUN6RSxVQUFNLElBQUksTUFBTSw4REFBOEQ7QUFBQSxFQUNoRjtBQUVBLFFBQU0sV0FBVyxpQkFBaUIsRUFBRSxxQkFBcUIsbUJBQW1CLENBQUM7QUFDN0UsUUFBTSxvQkFBb0IsTUFBTSxvQkFBb0IsUUFBUSxNQUFNLFNBQVMsZ0JBQWdCO0FBRTNGLE1BQUksb0JBQW9CLFNBQVMscUJBQXFCO0FBQ3BELFVBQU0sbUJBQW1CLG9CQUFvQixTQUFTO0FBQ3RELFVBQU0sSUFBSTtBQUFBLE1BQ1IsbUNBQW1DLE9BQU8sZ0JBQWdCLENBQUMseUNBQ3pDLE9BQU8saUJBQWlCLENBQUMsbUJBQW1CLE9BQU8sU0FBUyxnQkFBZ0IsQ0FBQyxXQUN4RixPQUFPLGtCQUFrQixDQUFDLHlCQUF5QixPQUFPLFNBQVMsbUJBQW1CLENBQUMsdUhBRTlFLEtBQUssVUFBVSxRQUFRLElBQUksQ0FBQztBQUFBLElBQzlDO0FBQUEsRUFDRjtBQUVBLFFBQU0sTUFBTSxjQUFjLFFBQVEsTUFBTSxVQUFVLGtCQUFrQjtBQUNwRSxRQUFNLFFBQTZCO0FBQUEsSUFDakMsT0FBTyxPQUFPLEtBQUssR0FBRztBQUFBLElBQ3RCLE1BQU07QUFBQSxJQUNOLEtBQUssU0FBUztBQUFBLEVBQ2hCO0FBRUEsUUFBTSxVQUFVLE1BQU0sTUFBTSxLQUFLLEVBQzlCLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFDakIsSUFBSSxFQUNKLFNBQVM7QUFFWixTQUFPLElBQUksV0FBVyxPQUFPO0FBQy9CO0FBY0EsZUFBc0Isb0JBQW9CLFFBQXFFO0FBQzdHLFFBQU0sRUFBRSxxQkFBcUIsb0JBQW9CLEtBQUssSUFBSTtBQUMxRCxRQUFNLFdBQVcsaUJBQWlCLEVBQUUscUJBQXFCLG1CQUFtQixDQUFDO0FBQzdFLFFBQU0sb0JBQW9CLE1BQU0sb0JBQW9CLE1BQU0sU0FBUyxnQkFBZ0I7QUFFbkYsU0FBTztBQUFBLElBQ0wscUJBQXFCLFNBQVM7QUFBQSxJQUM5QixTQUFTLHFCQUFxQixTQUFTO0FBQUEsSUFDdkM7QUFBQSxFQUNGO0FBQ0Y7QUFhQSxTQUFTLHdCQUF3QixRQUEwQztBQUN6RSxRQUFNLEVBQUUsa0JBQWtCLE1BQU0sWUFBWSxXQUFXLFVBQVUsSUFBSTtBQUVyRSxTQUFPLFlBQVksT0FBTyxTQUFTLENBQUMsUUFBUSxPQUFPLFNBQVMsQ0FBQyxrQkFDekMsV0FBVyxnQkFBZ0IsT0FBTyxnQkFBZ0IsQ0FBQyxrQkFDbkQsV0FBVyxXQUFXLFlBQVksa0JBQWtCLFVBQVUsaUNBQzNFLGNBQWMsSUFBSSxDQUFDO0FBQzVCO0FBZUEsZUFBZSxvQkFBb0IsTUFBYyxrQkFBMkM7QUFHMUYsTUFBSSxLQUFLLEtBQUssTUFBTSxJQUFJO0FBQ3RCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxRQUFRLFVBQU0saUNBQVkscUJBQXFCO0FBQ3JELFFBQU0sa0JBQWtCLG1CQUFtQjtBQUMzQyxRQUFNLHNCQUFzQixLQUFLLEtBQUssbUJBQW1CLDhCQUE4QixLQUFLLE1BQU0sSUFBSTtBQUN0RyxRQUFNLHVCQUF1QixLQUFLLEtBQUssbUJBQW1CLCtCQUErQjtBQUN6RixRQUFNLGlCQUFpQix3QkFBd0I7QUFBQSxJQUM3QztBQUFBLElBQ0E7QUFBQSxJQUNBLFlBQVk7QUFBQSxJQUNaLFdBQVc7QUFBQSxJQUNYLFdBQVcsdUJBQXVCO0FBQUEsRUFDcEMsQ0FBQztBQUNELFFBQU0sTUFBTSxrREFBa0QsT0FBTyxtQkFBbUIsQ0FBQyxhQUFhLE9BQU8sb0JBQW9CLENBQUMsS0FDM0gsY0FBYztBQUVyQixRQUFNLFVBQVUsTUFBTSxNQUFNLElBQUksV0FBVyxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUMsRUFDekQsS0FBSyxFQUFFLFdBQVcsZUFBZSxDQUFDLEVBQ2xDLElBQUksRUFDSixTQUFTO0FBRVosYUFBTyw2Q0FBa0IsSUFBSSxXQUFXLE9BQU8sQ0FBQyxFQUFFO0FBQ3BEOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -15,6 +15,14 @@
|
|
|
15
15
|
*
|
|
16
16
|
* This is post-processing, deliberately. The capture stays an untouched device
|
|
17
17
|
* frame, and rewording a label needs no re-shoot.
|
|
18
|
+
*
|
|
19
|
+
* A caption that is too long for its frame is MEASURED and rejected rather than
|
|
20
|
+
* drawn. An SVG `<text>` is clipped by its viewport at both ends with no
|
|
21
|
+
* ellipsis and no error, so an overlong caption ships as a sentence fragment
|
|
22
|
+
* that looks deliberate — `nabled in Settings - a listening plugin is told` —
|
|
23
|
+
* and the frame is still exactly the size it should be, so every dimension
|
|
24
|
+
* assertion downstream still passes. The only feedback anyone ever got was
|
|
25
|
+
* looking at the PNG. See {@link measureLabelCaption}.
|
|
18
26
|
*/
|
|
19
27
|
/**
|
|
20
28
|
* Parameters for {@link computeLabelBand}.
|
|
@@ -33,6 +41,12 @@ export interface ComputeLabelBandParams {
|
|
|
33
41
|
* The geometry of the caption band.
|
|
34
42
|
*/
|
|
35
43
|
export interface LabelBandGeometry {
|
|
44
|
+
/**
|
|
45
|
+
* How much horizontal room the caption has, in pixels: the image width less
|
|
46
|
+
* the margin held clear at each end, so a caption that fits does not read as
|
|
47
|
+
* though it were about to touch the edge of the frame.
|
|
48
|
+
*/
|
|
49
|
+
readonly captionRoomInPixels: number;
|
|
36
50
|
/**
|
|
37
51
|
* Font size for the caption, in pixels.
|
|
38
52
|
*/
|
|
@@ -46,13 +60,50 @@ export interface LabelBandGeometry {
|
|
|
46
60
|
*/
|
|
47
61
|
readonly topInPixels: number;
|
|
48
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* What a caption measures against the frame it is destined for.
|
|
65
|
+
*/
|
|
66
|
+
export interface LabelCaptionMeasurement {
|
|
67
|
+
/**
|
|
68
|
+
* The room available, in pixels — {@link LabelBandGeometry.captionRoomInPixels}.
|
|
69
|
+
*/
|
|
70
|
+
readonly captionRoomInPixels: number;
|
|
71
|
+
/**
|
|
72
|
+
* Whether the caption fits that room.
|
|
73
|
+
*/
|
|
74
|
+
readonly doesFit: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* How wide the caption actually renders, in pixels, at the size the band
|
|
77
|
+
* would draw it.
|
|
78
|
+
*/
|
|
79
|
+
readonly textWidthInPixels: number;
|
|
80
|
+
}
|
|
49
81
|
/**
|
|
50
82
|
* Options for {@link labelScreenshot}.
|
|
51
83
|
*/
|
|
52
84
|
export interface LabelScreenshotOptions {
|
|
53
85
|
/**
|
|
54
86
|
* The caption. Keep it to a handful of words: it is read at listing-thumbnail
|
|
55
|
-
* size, and it is
|
|
87
|
+
* size, and it is neither wrapped nor shrunk to fit — one that does not fit
|
|
88
|
+
* is REJECTED, with the measured width and the room available. Check a
|
|
89
|
+
* candidate with {@link measureLabelCaption} before committing to it.
|
|
90
|
+
*/
|
|
91
|
+
readonly text: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Parameters for {@link measureLabelCaption}.
|
|
95
|
+
*/
|
|
96
|
+
export interface MeasureLabelCaptionParams {
|
|
97
|
+
/**
|
|
98
|
+
* Height of the image the caption is destined for, in pixels.
|
|
99
|
+
*/
|
|
100
|
+
readonly imageHeightInPixels: number;
|
|
101
|
+
/**
|
|
102
|
+
* Width of the image the caption is destined for, in pixels.
|
|
103
|
+
*/
|
|
104
|
+
readonly imageWidthInPixels: number;
|
|
105
|
+
/**
|
|
106
|
+
* The caption to measure.
|
|
56
107
|
*/
|
|
57
108
|
readonly text: string;
|
|
58
109
|
}
|
|
@@ -93,6 +144,19 @@ export declare function escapeSvgText(text: string): string;
|
|
|
93
144
|
* @param bytes - The captured PNG.
|
|
94
145
|
* @param options - The caption.
|
|
95
146
|
* @returns A {@link Promise} that resolves to the labeled PNG, the same size as the input.
|
|
96
|
-
* @throws Error if `sharp` is not installed,
|
|
147
|
+
* @throws Error if `sharp` is not installed, the image dimensions cannot be read, or the caption is too wide for the frame.
|
|
97
148
|
*/
|
|
98
149
|
export declare function labelScreenshot(bytes: Uint8Array, options: LabelScreenshotOptions): Promise<Uint8Array>;
|
|
150
|
+
/**
|
|
151
|
+
* Measures a caption against the frame it is destined for, without drawing
|
|
152
|
+
* anything.
|
|
153
|
+
*
|
|
154
|
+
* This is what {@link labelScreenshot} rejects an overlong caption with, exposed
|
|
155
|
+
* so a caption can be chosen with the number in hand instead of by capturing a
|
|
156
|
+
* frame and looking at it.
|
|
157
|
+
*
|
|
158
|
+
* @param params - The caption and the dimensions of the image it is for.
|
|
159
|
+
* @returns A {@link Promise} that resolves to the measurement.
|
|
160
|
+
* @throws Error if `sharp` is not installed, or either dimension is not a positive number.
|
|
161
|
+
*/
|
|
162
|
+
export declare function measureLabelCaption(params: MeasureLabelCaptionParams): Promise<LabelCaptionMeasurement>;
|