obsidian-integration-testing 12.3.0 → 14.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/dist/lib/cjs/adb.cjs +1 -1
- package/dist/lib/cjs/app-config.cjs +1 -1
- package/dist/lib/cjs/app-config.d.cts +24 -24
- package/dist/lib/cjs/appium-dependencies.cjs +1 -1
- package/dist/lib/cjs/appium-session-config.cjs +1 -1
- package/dist/lib/cjs/connect-to-cdp.cjs +1 -1
- package/dist/lib/cjs/connect-to-cdp.d.cts +4 -4
- package/dist/lib/cjs/demo-vault-bootstrap.cjs +1 -1
- package/dist/lib/cjs/demo-vault-bootstrap.d.cts +10 -2
- package/dist/lib/cjs/desktop-only-plugin-skip-error.cjs +1 -1
- package/dist/lib/cjs/device-readiness.cjs +1 -1
- package/dist/lib/cjs/device-settings.cjs +1 -1
- package/dist/lib/cjs/emulator-reclaim.cjs +1 -1
- package/dist/lib/cjs/emulator-reclaim.d.cts +17 -17
- package/dist/lib/cjs/enable-plugin.cjs +1 -1
- package/dist/lib/cjs/eval-in-obsidian.cjs +1 -1
- package/dist/lib/cjs/eval-in-obsidian.d.cts +17 -12
- package/dist/lib/cjs/fit-screenshot.cjs +1 -1
- package/dist/lib/cjs/generate-function-call.cjs +1 -1
- package/dist/lib/cjs/generate-function-call.d.cts +1 -1
- package/dist/lib/cjs/global-setup-core.cjs +1 -1
- package/dist/lib/cjs/global-setup-core.d.cts +4 -4
- package/dist/lib/cjs/index.cjs +1 -1
- package/dist/lib/cjs/index.d.cts +4 -4
- package/dist/lib/cjs/integration-setup-failed-error.cjs +1 -1
- package/dist/lib/cjs/jest/global-setup.cjs +1 -1
- package/dist/lib/cjs/jest/global-setup.d.cts +6 -6
- package/dist/lib/cjs/library.cjs +1 -1
- package/dist/lib/cjs/mobile-input.cjs +1 -1
- package/dist/lib/cjs/namespace-bootstrap.cjs +13 -3
- package/dist/lib/cjs/obsidian-instance.cjs +1 -1
- package/dist/lib/cjs/obsidian-instance.d.cts +3 -3
- package/dist/lib/cjs/obsidian-version-switch.cjs +1 -1
- package/dist/lib/cjs/open-obsidian-settings-tab.cjs +3 -3
- package/dist/lib/cjs/open-obsidian-settings-tab.d.cts +4 -4
- package/dist/lib/cjs/owned-vault-seed.cjs +3 -3
- package/dist/lib/cjs/parent-liveness.cjs +1 -1
- package/dist/lib/cjs/parent-liveness.d.cts +1 -1
- package/dist/lib/cjs/poll-in-obsidian.cjs +1 -1
- package/dist/lib/cjs/poll-in-obsidian.d.cts +3 -3
- package/dist/lib/cjs/poll-until.cjs +1 -1
- package/dist/lib/cjs/poll-until.d.cts +4 -4
- package/dist/lib/cjs/process-capture.cjs +1 -1
- package/dist/lib/cjs/process-capture.d.cts +2 -2
- package/dist/lib/cjs/process-exit-message.cjs +1 -1
- package/dist/lib/cjs/process-exit-message.d.cts +2 -2
- package/dist/lib/cjs/run-version-matrix.cjs +3 -3
- package/dist/lib/cjs/setup-lock.cjs +1 -1
- package/dist/lib/cjs/setup-lock.d.cts +1 -1
- package/dist/lib/cjs/sharp-loader.cjs +1 -1
- package/dist/lib/cjs/sharp-loader.d.cts +6 -6
- package/dist/lib/cjs/temporary-vault.cjs +3 -2
- package/dist/lib/cjs/temporary-vault.d.cts +4 -4
- package/dist/lib/cjs/transport-appium.cjs +3 -1
- package/dist/lib/cjs/transport-desktop-cdp.cjs +7 -5
- package/dist/lib/cjs/transport-factory.cjs +2 -2
- package/dist/lib/cjs/transport-options.cjs +1 -1
- package/dist/lib/cjs/transport.cjs +1 -1
- package/dist/lib/cjs/transport.d.cts +10 -10
- package/dist/lib/cjs/vault-teardown-verdict.cjs +1 -1
- package/dist/lib/cjs/vitest/global-setup.cjs +1 -1
- package/dist/lib/cjs/vitest/global-setup.d.cts +6 -6
- package/dist/lib/cjs/webview-cdp.cjs +1 -1
- package/dist/lib/esm/adb.mjs +1 -1
- package/dist/lib/esm/app-config.d.mts +24 -24
- package/dist/lib/esm/app-config.mjs +1 -1
- package/dist/lib/esm/appium-dependencies.mjs +1 -1
- package/dist/lib/esm/appium-session-config.mjs +1 -1
- package/dist/lib/esm/connect-to-cdp.d.mts +4 -4
- package/dist/lib/esm/connect-to-cdp.mjs +1 -1
- package/dist/lib/esm/demo-vault-bootstrap.d.mts +10 -2
- package/dist/lib/esm/demo-vault-bootstrap.mjs +1 -1
- package/dist/lib/esm/desktop-only-plugin-skip-error.mjs +1 -1
- package/dist/lib/esm/device-readiness.mjs +1 -1
- package/dist/lib/esm/device-settings.mjs +1 -1
- package/dist/lib/esm/emulator-reclaim.d.mts +17 -17
- package/dist/lib/esm/emulator-reclaim.mjs +1 -1
- package/dist/lib/esm/enable-plugin.mjs +1 -1
- package/dist/lib/esm/eval-in-obsidian.d.mts +17 -12
- package/dist/lib/esm/eval-in-obsidian.mjs +1 -1
- package/dist/lib/esm/fit-screenshot.mjs +1 -1
- package/dist/lib/esm/generate-function-call.d.mts +1 -1
- package/dist/lib/esm/generate-function-call.mjs +1 -1
- package/dist/lib/esm/global-setup-core.d.mts +4 -4
- package/dist/lib/esm/global-setup-core.mjs +1 -1
- package/dist/lib/esm/index.d.mts +4 -4
- package/dist/lib/esm/index.mjs +1 -1
- package/dist/lib/esm/integration-setup-failed-error.mjs +1 -1
- package/dist/lib/esm/jest/global-setup.d.mts +6 -6
- package/dist/lib/esm/jest/global-setup.mjs +1 -1
- package/dist/lib/esm/library.mjs +1 -1
- package/dist/lib/esm/mobile-input.mjs +1 -1
- package/dist/lib/esm/namespace-bootstrap.mjs +13 -3
- package/dist/lib/esm/obsidian-instance.d.mts +3 -3
- package/dist/lib/esm/obsidian-instance.mjs +1 -1
- package/dist/lib/esm/obsidian-version-switch.mjs +1 -1
- package/dist/lib/esm/open-obsidian-settings-tab.d.mts +4 -4
- package/dist/lib/esm/open-obsidian-settings-tab.mjs +3 -3
- package/dist/lib/esm/owned-vault-seed.mjs +3 -3
- package/dist/lib/esm/parent-liveness.d.mts +1 -1
- package/dist/lib/esm/parent-liveness.mjs +1 -1
- package/dist/lib/esm/poll-in-obsidian.d.mts +3 -3
- package/dist/lib/esm/poll-in-obsidian.mjs +1 -1
- package/dist/lib/esm/poll-until.d.mts +4 -4
- package/dist/lib/esm/poll-until.mjs +1 -1
- package/dist/lib/esm/process-capture.d.mts +2 -2
- package/dist/lib/esm/process-capture.mjs +1 -1
- package/dist/lib/esm/process-exit-message.d.mts +2 -2
- package/dist/lib/esm/process-exit-message.mjs +1 -1
- package/dist/lib/esm/run-version-matrix.mjs +3 -3
- package/dist/lib/esm/setup-lock.d.mts +1 -1
- package/dist/lib/esm/setup-lock.mjs +1 -1
- package/dist/lib/esm/sharp-loader.d.mts +6 -6
- package/dist/lib/esm/sharp-loader.mjs +1 -1
- package/dist/lib/esm/temporary-vault.d.mts +4 -4
- package/dist/lib/esm/temporary-vault.mjs +3 -2
- package/dist/lib/esm/transport-appium.mjs +3 -1
- package/dist/lib/esm/transport-desktop-cdp.mjs +7 -5
- package/dist/lib/esm/transport-factory.mjs +2 -2
- package/dist/lib/esm/transport-options.mjs +1 -1
- package/dist/lib/esm/transport.d.mts +10 -10
- package/dist/lib/esm/vault-teardown-verdict.mjs +1 -1
- package/dist/lib/esm/vitest/global-setup.d.mts +6 -6
- package/dist/lib/esm/vitest/global-setup.mjs +1 -1
- package/dist/lib/esm/webview-cdp.mjs +1 -1
- package/package.json +1 -7
|
@@ -79,4 +79,4 @@ ${sanitizedDetail}`);
|
|
|
79
79
|
0 && (module.exports = {
|
|
80
80
|
evalInObsidian
|
|
81
81
|
});
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2V2YWwtaW4tb2JzaWRpYW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFdmFsdWF0ZXMgYSBmdW5jdGlvbiBpbnNpZGUgYSBydW5uaW5nIE9ic2lkaWFuIGluc3RhbmNlIHZpYSBhIHBsdWdnYWJsZSB0cmFuc3BvcnQuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIEVkaXRvcixcbiAgTW9kaWZpZXIsXG4gIFRGaWxlXG59IGZyb20gJ29ic2lkaWFuJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1uYW1lc3BhY2UgLS0gV2UgbmVlZCB0byByZWZlcmVuY2UgYG9ic2lkaWFuYCBtb2R1bGUuXG5pbXBvcnQgdHlwZSAqIGFzIG9ic2lkaWFuIGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgQ29udGV4dEFyZ3VtZW50cyxcbiAgQ29udGV4dElkXG59IGZyb20gJy4vY29udGV4dC1pZC5janMnO1xuaW1wb3J0IHR5cGUgeyBHZW5lcmF0ZU5hbWVzcGFjZUNhbGxQYXJhbXMgfSBmcm9tICcuL2dlbmVyYXRlLWZ1bmN0aW9uLWNhbGwuY2pzJztcbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5UcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC5janMnO1xuXG5pbXBvcnQge1xuICBnZXRUcmFuc3BvcnRPcHRpb25zLFxuICBnZXRWYXVsdFBhdGhcbn0gZnJvbSAnLi9jb250ZXh0LXByb3ZpZGVyLmNqcyc7XG5pbXBvcnQgeyBnZW5lcmF0ZU5hbWVzcGFjZUNhbGwgfSBmcm9tICcuL2dlbmVyYXRlLWZ1bmN0aW9uLWNhbGwuY2pzJztcbmltcG9ydCB7IGVuc3VyZU5hbWVzcGFjZUJvb3RzdHJhcHBlZCB9IGZyb20gJy4vbmFtZXNwYWNlLWJvb3RzdHJhcC5janMnO1xuaW1wb3J0IHsgZ2V0T3JDcmVhdGVUcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC1mYWN0b3J5LmNqcyc7XG5cbmludGVyZmFjZSBFdmFsRXJyb3JFbnZlbG9wZSB7XG4gIHR5cGU6ICdlcnJvcic7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGlzY3JpbWluYXRlZCBlbnZlbG9wZSByZXR1cm5lZCBieSB0aGUgcmVnaXN0ZXJlZCBgZXZhbFdyYXBwZXJgIGZyb20gaW5zaWRlIHRoZSBPYnNpZGlhbiBwcm9jZXNzLlxuICpcbiAqIC0gYEV2YWxFcnJvckVudmVsb3BlYCBcdTIwMTQgYGNhbGxiYWNrYCB0aHJldzsgYHZhbHVlYCBpcyB0aGUgc2VyaWFsaXplZCBlcnJvci5cbiAqIC0gYEV2YWxVbmRlZmluZWRFbnZlbG9wZWAgXHUyMDE0IGBjYWxsYmFja2AgcmV0dXJuZWQgYHVuZGVmaW5lZGAuXG4gKiAtIGBFdmFsVmFsdWVFbnZlbG9wZWAgXHUyMDE0IGBjYWxsYmFja2AgcmV0dXJuZWQgYSBKU09OLXNlcmlhbGl6YWJsZSB2YWx1ZS5cbiAqL1xudHlwZSBFdmFsUmVzdWx0RW52ZWxvcGUgPVxuICB8IEV2YWxFcnJvckVudmVsb3BlXG4gIHwgRXZhbFVuZGVmaW5lZEVudmVsb3BlXG4gIHwgRXZhbFZhbHVlRW52ZWxvcGU7XG5cbmludGVyZmFjZSBFdmFsVW5kZWZpbmVkRW52ZWxvcGUge1xuICB0eXBlOiAndW5kZWZpbmVkJztcbn1cblxuaW50ZXJmYWNlIEV2YWxWYWx1ZUVudmVsb3BlIHtcbiAgdmFsdWU6IHVua25vd247XG59XG5cbmNvbnN0IE5PX09VVFBVVCA9ICcobm8gb3V0cHV0KSc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIENvbW1vbkFyZ3VtZW50cy5jbGlja0VsZW1lbnR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsaWNrRWxlbWVudFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgbW91c2UgYnV0dG9uIHRvIHByZXNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJ2xlZnQnYFxuICAgKi9cbiAgcmVhZG9ubHkgYnV0dG9uPzogTW91c2VCdXR0b247XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRvIGNsaWNrLiBUaGUgcG9pbnRlciBpcyBtb3ZlZCB0byBpdHMgY2VudGVyLiBUaGlzIGlzIGEgbGl2ZVxuICAgKiByZW5kZXJlciBET00gbm9kZSBcdTIwMTQgdGhlIGNhbGxiYWNrIHJ1bnMgaW4tcmVuZGVyZXIsIHNvIG5vIGNyb3NzLXByb2Nlc3NcbiAgICogc2VyaWFsaXphdGlvbiBpcyBuZWVkZWQgKHNhbWUgYXMge0BsaW5rIFR5cGVJbnRvRWRpdG9yUGFyYW1zLmVkaXRvcn0pLlxuICAgKi9cbiAgcmVhZG9ubHkgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBtb2RpZmllciBrZXlzIHRvIGhvbGQsIHVzaW5nIE9ic2lkaWFuJ3Mge0BsaW5rIE1vZGlmaWVyfSBuYW1lcy4gYCdNb2QnYFxuICAgKiByZXNvbHZlcyBwZXItcGxhdGZvcm0gKENtZCBvbiBtYWNPUywgQ3RybCBlbHNld2hlcmUpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgW11gXG4gICAqL1xuICByZWFkb25seSBtb2RpZmllcnM/OiByZWFkb25seSBNb2RpZmllcltdO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBDb21tb25Bcmd1bWVudHMuY2xpY2tNb3VzZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpY2tNb3VzZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgbW91c2UgYnV0dG9uIHRvIHByZXNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJ2xlZnQnYFxuICAgKi9cbiAgcmVhZG9ubHkgYnV0dG9uPzogTW91c2VCdXR0b247XG5cbiAgLyoqXG4gICAqIFRoZSBtb2RpZmllciBrZXlzIHRvIGhvbGQsIHVzaW5nIE9ic2lkaWFuJ3Mge0BsaW5rIE1vZGlmaWVyfSBuYW1lcy4gYCdNb2QnYFxuICAgKiByZXNvbHZlcyBwZXItcGxhdGZvcm0gKENtZCBvbiBtYWNPUywgQ3RybCBlbHNld2hlcmUpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgW11gXG4gICAqL1xuICByZWFkb25seSBtb2RpZmllcnM/OiByZWFkb25seSBNb2RpZmllcltdO1xuXG4gIC8qKlxuICAgKiBUaGUgeCBjb29yZGluYXRlICh3ZWItY29udGVudHMgRElQKSB0byBjbGljayBhdC5cbiAgICovXG4gIHJlYWRvbmx5IHg6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHkgY29vcmRpbmF0ZSAod2ViLWNvbnRlbnRzIERJUCkgdG8gY2xpY2sgYXQuXG4gICAqL1xuICByZWFkb25seSB5OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ29tbW9uIGFyZ3VtZW50cyBhdXRvbWF0aWNhbGx5IHByb3ZpZGVkIHRvIGV2ZXJ5IHtAbGluayBldmFsSW5PYnNpZGlhbn0gY2FsbGJhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uQXJndW1lbnRzIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiB7QGxpbmsgQXBwfSBpbnN0YW5jZS5cbiAgICovXG4gIGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgc2hhcmVkIGxpYnJhcnkgYmFnIGluamVjdGVkIGludG8gZXZlcnkgY2FsbGJhY2sgXHUyMDE0IHNlZSB7QGxpbmsgTGlifS5cbiAgICpcbiAgICogTmV2ZXIgZW1wdHk6IHRoZSBoYXJuZXNzIHByZS1wb3B1bGF0ZXMgYSAqKmJhc2UqKiBzZXQgb2YgcmVuZGVyZXItZHJpdmluZ1xuICAgKiBoZWxwZXJzICh0cnVzdGVkIGlucHV0IFx1MjAxNCBgdHlwZUludG9FZGl0b3JgIC8gYHByZXNzS2V5YCAvIGBtb3ZlTW91c2VgIC9cbiAgICogYGNsaWNrTW91c2VgIC8gYGhvdmVyRWxlbWVudGAgLyBgdW5ob3ZlckVsZW1lbnRgIC8gYGNsaWNrRWxlbWVudGAgXHUyMDE0IHBsdXNcbiAgICogYHdhaXRVbnRpbGAsIGBjcmVhdGVOb3RlYCBhbmQgYG9wZW5TZXR0aW5nc1RhYmApLCBhbmQgcHJvdmlkZXIgcGFja2FnZXNcbiAgICogKGNoaWVmbHkgYG9ic2lkaWFuLWRldi11dGlsc2ApIGBPYmplY3QuYXNzaWduYCB0aGVpciB3aG9sZSByZW5kZXJlci1zYWZlXG4gICAqIGxpYnJhcnkgb24gdG9wIHZpYSB7QGxpbmsgcmVnaXN0ZXJMaWJSZXNvbHZlcn0uIEEgc2VyaWFsaXplZCBjbG9zdXJlIHJlYWNoZXNcbiAgICogZXZlcnkgc2hhcmVkIGhlbHBlciB0aHJvdWdoIGBsaWJgIFx1MjAxNCBgbGliLnR5cGVJbnRvRWRpdG9yKHsgZWRpdG9yLCB0ZXh0IH0pYCxcbiAgICogYGxpYi5nZXRGaWxlT3JOdWxsKHsgYXBwLCBcdTIwMjYgfSlgIFx1MjAxNCBpbnN0ZWFkIG9mIGltcG9ydGluZyBvciBoYW5kLXJvbGxpbmcgdGhlbS5cbiAgICovXG4gIGxpYjogTGliO1xuXG4gIC8qKlxuICAgKiBUaGUgYG9ic2lkaWFuYCBtb2R1bGUsIHJlc29sdmVkIGF0IHJ1bnRpbWUgaW5zaWRlIHRoZSBPYnNpZGlhbiBwcm9jZXNzLlxuICAgKi9cbiAgb2JzaWRpYW5Nb2R1bGU6IHR5cGVvZiBvYnNpZGlhbjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgQ29tbW9uQXJndW1lbnRzLmNyZWF0ZU5vdGV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU5vdGVQYXJhbXMge1xuICAvKipcbiAgICogVGhlIG5vdGUncyBjb250ZW50LiBUaGlzIGV4YWN0IHN0cmluZyBpcyB3aGF0IHRoZSBjcmVhdGVkIG5vdGUgaXMgcmVhZCBiYWNrXG4gICAqIGFnYWluc3QsIHNvIGl0IGlzIHRoZSBkZWZpbml0aW9uIG9mIGEgc3VjY2Vzc2Z1bCB3cml0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIHBhdGggdG8gY3JlYXRlLCBleHRlbnNpb24gaW5jbHVkZWQuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGV2YWxJbk9ic2lkaWFufS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsSW5PYnNpZGlhblBhcmFtczxJbnB1dCBleHRlbmRzIEdlbmVyaWNPYmplY3QsIFJlc3VsdCwgVENvbnRleHRJZCBleHRlbmRzIENvbnRleHRJZDx1bmtub3duPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZD4ge1xuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRvIGV2YWx1YXRlIGluIHRoZSBPYnNpZGlhbiBjb250ZXh0LlxuICAgKi9cbiAgY2FsbGJhY2soaW5wdXQ6IENvbW1vbkFyZ3VtZW50cyAmIENvbnRleHRBcmd1bWVudHM8VENvbnRleHRJZD4gJiBJbnB1dCk6IFByb21pc2FibGU8UmVzdWx0PjtcblxuICAvKipcbiAgICogQSB7QGxpbmsgQ29udGV4dElkfSBsaW5raW5nIHRoaXMgY2FsbCB0byBhIHBlcnNpc3RlbnQgc3RvcmUgb24gYHdpbmRvd2BcbiAgICogaW4gdGhlIE9ic2lkaWFuIHByb2Nlc3MuIFRoZSBjYWxsYmFjayByZWNlaXZlcyBhIHR5cGVkIGBjb250ZXh0YCBvYmplY3RcbiAgICogdGhhdCBzdXJ2aXZlcyBhY3Jvc3MgY2FsbHMgc2hhcmluZyB0aGUgc2FtZSBJRC5cbiAgICpcbiAgICogV2hlbiBvbWl0dGVkLCBgY29udGV4dGAgaXMgYSBmcmVzaCBlbXB0eSBvYmplY3QgZWFjaCBjYWxsLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dElkPzogVENvbnRleHRJZDtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgZnVuY3Rpb24uIFZhbHVlcyBtYXkgaW5jbHVkZSBmdW5jdGlvbnMgXHUyMDE0XG4gICAqIHRoZXkgYXJlIHNlcmlhbGl6ZWQgdmlhIGB0b1N0cmluZygpYC5cbiAgICovXG4gIHJlYWRvbmx5IGlucHV0PzogSW5wdXQ7XG5cbiAgLyoqXG4gICAqIFNraXBzIHByZS1mbGlnaHQgY2hlY2tzICh2YXVsdCByZWdpc3RyYXRpb24sIENMSSBhdmFpbGFiaWxpdHkpLlxuICAgKiBVc2VkIGludGVybmFsbHkgYnkgdmF1bHQgcmVnaXN0cmF0aW9uIGZ1bmN0aW9ucy5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTa2lwUHJlZmxpZ2h0Q2hlY2tzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIHRyYW5zcG9ydCBmb3IgdGhpcyBjYWxsLiBXaGVuIG9taXR0ZWQsIHVzZXMgdGhlIHRyYW5zcG9ydFxuICAgKiBjb25maWd1cmVkIHZpYSB0aGUgY29udGV4dCBwcm92aWRlciAoc2V0IGJ5IHRoZSBmcmFtZXdvcmsgYWRhcHRlcidzIGdsb2JhbCBzZXR1cCkuXG4gICAqL1xuICByZWFkb25seSB0cmFuc3BvcnQ/OiBPYnNpZGlhblRyYW5zcG9ydDtcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIE9ic2lkaWFuIHZhdWx0LiBEZWZhdWx0cyB0byBgcHJvY2Vzcy5jd2QoKWAuXG4gICAqL1xuICByZWFkb25seSB2YXVsdFBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBwbGFpbiBvYmplY3Qgd2l0aCBzdHJpbmcga2V5cy5cbiAqL1xuZXhwb3J0IHR5cGUgR2VuZXJpY09iamVjdCA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBDb21tb25Bcmd1bWVudHMuaG92ZXJFbGVtZW50fS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3ZlckVsZW1lbnRQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdG8gaG92ZXIuIFRoZSBwb2ludGVyIGlzIG1vdmVkIHRvIGl0cyBjZW50ZXIuIFRoaXMgaXMgYSBsaXZlXG4gICAqIHJlbmRlcmVyIERPTSBub2RlIFx1MjAxNCB0aGUgY2FsbGJhY2sgcnVucyBpbi1yZW5kZXJlciwgc28gbm8gY3Jvc3MtcHJvY2Vzc1xuICAgKiBzZXJpYWxpemF0aW9uIGlzIG5lZWRlZCAoc2FtZSBhcyB7QGxpbmsgVHlwZUludG9FZGl0b3JQYXJhbXMuZWRpdG9yfSkuXG4gICAqL1xuICByZWFkb25seSBlbGVtZW50OiBIVE1MRWxlbWVudDtcbn1cblxuLyoqXG4gKiBUaGUgc2hhcmVkIGxpYnJhcnkgYmFnIGluamVjdGVkIGludG8gZXZlcnkge0BsaW5rIGV2YWxJbk9ic2lkaWFufSBjYWxsYmFjayBhc1xuICoge0BsaW5rIENvbW1vbkFyZ3VtZW50cy5saWJ9LlxuICpcbiAqIFR3byBsYXllcnMgY29tcG9zZSBpbnRvIHRoaXMgb25lIGJhZy4gVGhlICoqYmFzZSoqIFx1MjAxNCB0aGUgaGFybmVzcy1wcm92aWRlZFxuICogcmVuZGVyZXItZHJpdmluZyBoZWxwZXJzIGRlY2xhcmVkIGJlbG93ICh0aGUgdHJ1c3RlZC1pbnB1dCBwcmltaXRpdmVzIGFuZFxuICoge0BsaW5rIExpYi53YWl0VW50aWx9KSBcdTIwMTQgaXMgYWx3YXlzIHByZXNlbnQuIE9uIHRvcCwgcHJvdmlkZXIgcGFja2FnZXMgcmVnaXN0ZXJcbiAqIGEgcmVuZGVyZXItc2lkZSByZXNvbHZlciB2aWEge0BsaW5rIHJlZ2lzdGVyTGliUmVzb2x2ZXJ9IHRvIGBPYmplY3QuYXNzaWduYFxuICogdGhlaXIgd2hvbGUgcmVuZGVyZXItc2FmZSBsaWJyYXJ5IGF0IHJ1bnRpbWUsIGFuZCBhdWdtZW50IHRoaXMgKiphdWdtZW50YWJsZSoqXG4gKiBpbnRlcmZhY2UgKHRoZSBgaTE4bmV4dGAgYEN1c3RvbVR5cGVPcHRpb25zYCBpZGlvbSkgdmlhXG4gKiBgZGVjbGFyZSBtb2R1bGUgJ29ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmcnYCB0byB0eXBlIGl0LiBNdWx0aXBsZSBwcm92aWRlcnNcbiAqIGNvbXBvc2U6IHRoZWlyIGV4cG9ydHMgbWVyZ2UgYXQgcnVudGltZSBhbmQgdGhlaXIgYXVnbWVudGF0aW9ucyBtZXJnZSBpbiB0aGVcbiAqIHR5cGUgc3lzdGVtIChgaW50ZXJmYWNlIExpYiBleHRlbmRzIFx1MjAyNmApLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogZGVjbGFyZSBtb2R1bGUgJ29ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmcnIHtcbiAqICAgaW50ZXJmYWNlIExpYiBleHRlbmRzICh0eXBlb2YgaW1wb3J0KCdvYnNpZGlhbi1kZXYtdXRpbHMvX19tZXJnZWQnKSkge31cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpYiB7XG4gIC8qKlxuICAgKiBDbGlja3MgdGhlIGNlbnRlciBvZiBhbiBlbGVtZW50IHVzaW5nICoqdHJ1c3RlZCoqIHBvaW50ZXIgaW5wdXQgXHUyMDE0IEVsZWN0cm9uJ3NcbiAgICogYHNlbmRJbnB1dEV2ZW50YCBvbiBkZXNrdG9wLCBhIENEUCB0b3VjaCB0YXAgaW4gdGhlIFdlYlZpZXcgb24gbW9iaWxlLlxuICAgKlxuICAgKiBUaGUgZWxlbWVudC1yZWxhdGl2ZSBjb3VudGVycGFydCBvZiB7QGxpbmsgTGliLmNsaWNrTW91c2V9LCBtaXJyb3JpbmcgdGhlXG4gICAqIHtAbGluayBMaWIubW92ZU1vdXNlfSAvIHtAbGluayBMaWIuaG92ZXJFbGVtZW50fSBzcGxpdC4gVXNlXG4gICAqIHtAbGluayBMaWIuY2xpY2tNb3VzZX0gZGlyZWN0bHkgd2hlbiB0aGUgcG9pbnQgdG8gY2xpY2sgaXMgKipub3QqKiB0aGVcbiAgICogZWxlbWVudCdzIGNlbnRlciBcdTIwMTQgdGhlIG1hcmtkb3duIGVkaXRvcidzIG1hcmdpbiwgZm9yIGluc3RhbmNlLCBsaWVzIGluc2lkZVxuICAgKiBgY20uc2Nyb2xsRE9NYCBidXQgb3V0c2lkZSBgLmNtLXNpemVyYCwgc28gbm8gZWxlbWVudCdzIGNlbnRlciBsYW5kcyBvbiBpdC5cbiAgICpcbiAgICogKipNdXN0IGJlIGF3YWl0ZWQuKiogT24gbW9iaWxlIHRoZSBpbmplY3Rpb24gaXMgYSByb3VuZC10cmlwIHRvIHRoZSBob3N0IFx1MjAxNFxuICAgKiB0aGUgcmVuZGVyZXIgY2Fubm90IHByb2R1Y2UgYSB0cnVzdGVkIGV2ZW50IGl0c2VsZiBcdTIwMTQgc28gYSBtaXNzaW5nIGBhd2FpdGBcbiAgICogd291bGQgbGV0IHRoZSBhc3NlcnRpb24gcnVuIGJlZm9yZSB0aGUgY2xpY2sgbGFuZGVkLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGVsZW1lbnQgdG8gY2xpY2ssIHRoZSBidXR0b24gdG8gcHJlc3MgYW5kIGFueSBtb2RpZmllcnNcbiAgICogICB0byBob2xkLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgdGhlIGNsaWNrIGhhcyBiZWVuIGluamVjdGVkLlxuICAgKi9cbiAgY2xpY2tFbGVtZW50KHRoaXM6IHZvaWQsIHBhcmFtczogQ2xpY2tFbGVtZW50UGFyYW1zKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogQ2xpY2tzIGF0IHRoZSBnaXZlbiB3ZWItY29udGVudHMgY29vcmRpbmF0ZXMgdXNpbmcgKip0cnVzdGVkKiogRWxlY3Ryb25cbiAgICogcG9pbnRlciBpbnB1dCwgc28gQ2hyb21pdW0gc3ludGhlc2l6ZXMgYSByZWFsIGBjbGlja2AgKG9yIGBjb250ZXh0bWVudWAsXG4gICAqIGZvciB0aGUgcmlnaHQgYnV0dG9uKSB3aXRoIGBpc1RydXN0ZWQgPT09IHRydWVgLlxuICAgKlxuICAgKiBUaGlzIGlzIHdoYXQgYGVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgnY2xpY2snKSlgIGNhbm5vdCBkbzpcbiAgICogT2JzaWRpYW4gYW5kIENvZGVNaXJyb3IgZ2F0ZSBvbiBgaXNUcnVzdGVkYCwgc28gYSBkaXNwYXRjaGVkIGV2ZW50IHNpbGVudGx5XG4gICAqIGV4ZXJjaXNlcyBub3RoaW5nIHdoaWxlIHRoZSB0ZXN0IHN0aWxsIHBhc3NlcyB3aGF0ZXZlciB3ZWFrZXIgYXNzZXJ0aW9uIGl0XG4gICAqIG1ha2VzLiBPYnNpZGlhbiAxLjEzLjcncyBtYXJrZG93biB2aWV3cG9ydCAobWFyZ2luKSBtZW51LCBmb3IgZXhhbXBsZSxcbiAgICogb3BlbnMgZnJvbSBhIGBjbS5zY3JvbGxET01gIGBjb250ZXh0bWVudWAgbGlzdGVuZXIgZ3VhcmRlZCBieVxuICAgKiBgZS5pc1RydXN0ZWRgLCB3aGljaCBhIGRpc3BhdGNoZWQgZXZlbnQgbmV2ZXIgZ2V0cyBwYXN0LlxuICAgKlxuICAgKiBJdCBpcyB0aGUgbG93LWxldmVsIHByaW1pdGl2ZTogYSBzaW5nbGUgdHJ1c3RlZCBgbW91c2VNb3ZlYCBcdTIxOTIgYG1vdXNlRG93bmAgXHUyMTkyXG4gICAqIGBtb3VzZVVwYCBhdCBvbmUgcG9pbnQsIHdpdGggbm8gd2FpdGluZyBmb3IgYW55IGVmZmVjdCAoY2FsbGVycyBwb2xsIHRoZWlyXG4gICAqIG93biByZWFkaW5lc3Mgc2lnbmFsKS4gVGhlIGxlYWRpbmcgbW92ZSBpcyB3aGF0IHB1dHMgdGhlIHBvaW50ZXIgb3ZlciB0aGVcbiAgICogaGl0LXRlc3QgdGFyZ2V0IGJlZm9yZSB0aGUgYnV0dG9uIGdvZXMgZG93bi4gUHJlZmVyXG4gICAqIHtAbGluayBMaWIuY2xpY2tFbGVtZW50fSBmb3IgZWxlbWVudC1yZWxhdGl2ZSBjbGlja3MuXG4gICAqXG4gICAqIEEgcmVhbCBjb250ZXh0IG1lbnUgYWN0dWFsbHkgb3BlbnMsIHNvIGEgc3VpdGUgZHJpdmluZyBhIHJpZ2h0IGNsaWNrIG11c3RcbiAgICogY2xvc2UgaXQgKG9yIHJlbW92ZSB0aGUgbGVmdG92ZXIgYC5tZW51YCBlbGVtZW50KSBiZWZvcmUgdGhlIG5leHQgdGVzdC5cbiAgICpcbiAgICogKipPbiBtb2JpbGUqKiB0aGUgYnV0dG9uIG1vZGVsIGRvZXMgbm90IHN1cnZpdmUgdGhlIHBvcnQ6IHRvdWNoIGhhcyBub1xuICAgKiBidXR0b25zLCBzbyBgJ2xlZnQnYCAodGhlIGRlZmF1bHQpIGlzIGEgKip0YXAqKiwgYCdyaWdodCdgIGlzIHRoZVxuICAgKiAqKmxvbmctcHJlc3MqKiB0aGF0IG9wZW5zIE9ic2lkaWFuIE1vYmlsZSdzIGNvbnRleHQgbWVudSwgYW5kIGAnbWlkZGxlJ2BcbiAgICogdGhyb3dzIFx1MjAxNCB0aGVyZSBpcyBubyBnZXN0dXJlIGZvciBpdCwgYW5kIGludmVudGluZyBvbmUgd291bGQgYmUgd29yc2UgdGhhblxuICAgKiBzYXlpbmcgc28uIFRoZSBjb29yZGluYXRlcyBhcmUgQ1NTIHBpeGVscyBpbiB0aGUgV2ViVmlldydzIG93biB2aWV3cG9ydCxcbiAgICogd2hpY2ggaXMgd2hhdCBDRFAgdGFrZXMsIHNvIGBkZXZpY2VQaXhlbFJhdGlvYCBuZXZlciBlbnRlcnMgdGhlIHBpY3R1cmUuXG4gICAqXG4gICAqICoqTXVzdCBiZSBhd2FpdGVkKiogXHUyMDE0IHNlZSB7QGxpbmsgTGliLmNsaWNrRWxlbWVudH0uXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgd2ViLWNvbnRlbnRzIERJUCBjb29yZGluYXRlcyB0byBjbGljayBhdCwgdGhlIGJ1dHRvbiB0b1xuICAgKiAgIHByZXNzIGFuZCBhbnkgbW9kaWZpZXJzIHRvIGhvbGQuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgY2xpY2sgaGFzIGJlZW4gaW5qZWN0ZWQuXG4gICAqL1xuICBjbGlja01vdXNlKHRoaXM6IHZvaWQsIHBhcmFtczogQ2xpY2tNb3VzZVBhcmFtcyk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBub3RlIGFuZCBkb2VzIG5vdCByZXR1cm4gdW50aWwgaXRzIGNvbnRlbnQgaXMgdmVyaWZpYWJseSBvblxuICAgKiBkaXNrLCByZXdyaXRpbmcgaXQgaWYgaXQgaXMgbm90LlxuICAgKlxuICAgKiBVc2UgdGhpcyBpbnN0ZWFkIG9mIGBhcHAudmF1bHQuY3JlYXRlYCBpbiBhbnkgc3VpdGUgdGhhdCBtYXkgcnVuIG9uXG4gICAqIEFuZHJvaWQuIFRoZSBlbXVsYXRvciB0cmFuc3BvcnQgbG9zZXMgcm91Z2hseSAqKjAuOSAlKiogb2YgYHZhdWx0LmNyZWF0ZWBcbiAgICogd3JpdGVzIChtZWFzdXJlZDogNyBsb3N0IGluIDgwMCBjcmVhdGVzKTogdGhlIGZpbGUgbGFuZHMgKiowIGJ5dGVzKiogb25cbiAgICogZGlzayB3aGlsZSBPYnNpZGlhbidzIGluLW1lbW9yeSBgVEZpbGUuc3RhdGAgcmVwb3J0cyB0aGUgZnVsbCBieXRlIGNvdW50LFxuICAgKiBhbmQgaXQgZG9lcyBub3QgaGVhbCBvbiBpdHMgb3duLiBBIHN1aXRlIGRvaW5nIH4zNCBjcmVhdGVzIHBlciBydW5cbiAgICogdGhlcmVmb3JlIGhhcyBhIH4yNiAlIGNoYW5jZSBvZiBhdCBsZWFzdCBvbmUgbG9zdCB3cml0ZSwgYW5kIHdoaWNoZXZlciB0ZXN0XG4gICAqIGxvc2VzIHRoYXQgbG90dGVyeSBmYWlscyBvbiBhIGB3YWl0VW50aWxgIGZvciBjb250ZW50IHRoYXQgd2FzIG5ldmVyXG4gICAqIHdyaXR0ZW4gXHUyMDE0IHdoaWNoIGlzIHdoeSBpdCByZWFkcyBhcyBhbiB1bnJlbGF0ZWQgcGVyLXRlc3QgZmxha2UgcmF0aGVyIHRoYW5cbiAgICogb25lIHNoYXJlZCBjYXVzZS5cbiAgICpcbiAgICogVmVyaWZpY2F0aW9uIGlzIGJ5ICoqcmVhZGluZyB0aGUgbm90ZSBiYWNrKiosIG5ldmVyIGJ5IGluc3BlY3RpbmdcbiAgICogYFRGaWxlLnN0YXRgOiBgc3RhdGAgaXMgZXhhY3RseSB0aGUgZmllbGQgdGhhdCBsaWVzIGhlcmUuIEEgcmV3cml0ZSB0aHJvdWdoXG4gICAqIGB2YXVsdC5tb2RpZnlgIHdpdGggdGhlIHNhbWUgY29udGVudCBsYW5kcyBjb3JyZWN0bHkgKGFsc28gbWVhc3VyZWQpLCBzbyBhXG4gICAqIGxvc3Qgd3JpdGUgY29zdHMgYSByZXRyeSByYXRoZXIgdGhhbiBhIGZhaWx1cmUuIEEgbm90ZSB3aG9zZSBjb250ZW50IHN0aWxsXG4gICAqIGRvZXMgbm90IG1hdGNoIGFmdGVyIHRoZSBib3VuZGVkIHJldHJpZXMgdGhyb3dzLCBuYW1pbmcgdGhlIHBhdGggYW5kIGJvdGhcbiAgICogbGVuZ3Rocywgc28gYSBnZW51aW5lbHkgYnJva2VuIHdyaXRlIGZhaWxzIGxvdWRseSBpbnN0ZWFkIG9mIHNwaW5uaW5nLlxuICAgKlxuICAgKiBIYXJtbGVzcyBldmVyeXdoZXJlIGVsc2UgXHUyMDE0IG9uIGEgdHJhbnNwb3J0IHRoYXQgZG9lcyBub3QgbG9zZSB3cml0ZXMgdGhlXG4gICAqIHJlYWQtYmFjayBtYXRjaGVzIGZpcnN0IHRpbWUgYW5kIG5vdGhpbmcgaXMgcmV3cml0dGVuLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIG5vdGUgcGF0aCBhbmQgY29udGVudC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gcmVzb2x2aW5nIHRvIHRoZSBjcmVhdGVkIGZpbGUsIG9uY2UgaXRzIGNvbnRlbnRcbiAgICogICBpcyBjb25maXJtZWQuXG4gICAqL1xuICBjcmVhdGVOb3RlKHRoaXM6IHZvaWQsIHBhcmFtczogQ3JlYXRlTm90ZVBhcmFtcyk6IFByb21pc2U8VEZpbGU+O1xuXG4gIC8qKlxuICAgKiBNb3ZlcyB0aGUgbW91c2UgcG9pbnRlciB0byB0aGUgY2VudGVyIG9mIGFuIGVsZW1lbnQgdXNpbmcgKip0cnVzdGVkKipcbiAgICogRWxlY3Ryb24gcG9pbnRlciBpbnB1dCwgdGhlbiBwb2xscyB1bnRpbCB0aGUgZWxlbWVudCBhY3R1YWxseSBtYXRjaGVzXG4gICAqIGA6aG92ZXJgLlxuICAgKlxuICAgKiBCZWNhdXNlIHRoZSBtb3ZlIGlzIHRydXN0ZWQgKHNlZSB7QGxpbmsgTGliLm1vdmVNb3VzZX0pLCB0aGUgcmVhbCBgOmhvdmVyYFxuICAgKiBzdGF0ZSB0YWtlcyBlZmZlY3QgaW4gdGhlIENTUyBlbmdpbmUgXHUyMDE0IHJlYWwgdGhlbWUgYHZhcigpYCB2YWx1ZXMgYW5kIHJlYWxcbiAgICogY29tcG9zaXRpbmcgXHUyMDE0IGluc3RlYWQgb2YgYSBoYW5kLXNpbXVsYXRlZCBjYXNjYWRlLiBJdCBwb2xscyB0aGUgbGl2ZVxuICAgKiBgZWxlbWVudC5tYXRjaGVzKCc6aG92ZXInKWAgc3RhdGUgKG5vdCBhIGZpeGVkIGRlbGF5KSwgc28gaXQgaXMgcm9idXN0IHVuZGVyXG4gICAqIHNoYXJlZC1pbnN0YW5jZSBsb2FkLiBJdCB0YXJnZXRzIHRoZSBzaW5nbGUgc2hhcmVkIHdpbmRvdydzICoqZ2xvYmFsKipcbiAgICogcG9pbnRlciwgc28gb25seSBvbmUgZWxlbWVudCBpcyBob3ZlcmVkIGF0IGEgdGltZS5cbiAgICpcbiAgICogKipEZXNrdG9wIG9ubHkgXHUyMDE0IGl0IHRocm93cyBvbiBtb2JpbGUqKiwgZGVsaWJlcmF0ZWx5OiB0b3VjaCBpbnB1dCBoYXMgbm9cbiAgICogaG92ZXIgc3RhdGUsIHNvIHRoZXJlIGlzIG5vdGhpbmcgZmFpdGhmdWwgdG8gaW5qZWN0LiBBIHNpbGVudCBuby1vcCB3b3VsZFxuICAgKiBsZWF2ZSBhIHRlc3QgYXNzZXJ0aW5nIGFnYWluc3QgYSBob3ZlciB0aGF0IG5ldmVyIGhhcHBlbmVkLCB3aGljaCBpcyB0aGVcbiAgICogZXhhY3QgZmFsc2UtY29uZmlkZW5jZSBmYWlsdXJlIHRydXN0ZWQgaW5wdXQgZXhpc3RzIHRvIHByZXZlbnQuIEJyYW5jaCBvblxuICAgKiBgUGxhdGZvcm0uaXNEZXNrdG9wQXBwYCwgb3IgZHJpdmUgdGhlIGVsZW1lbnQgd2l0aCB7QGxpbmsgTGliLmNsaWNrRWxlbWVudH0uXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgZWxlbWVudCB0byBob3Zlci5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBlbGVtZW50IG1hdGNoZXMgYDpob3ZlcmAuXG4gICAqL1xuICBob3ZlckVsZW1lbnQodGhpczogdm9pZCwgcGFyYW1zOiBIb3ZlckVsZW1lbnRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBNb3ZlcyB0aGUgbW91c2UgcG9pbnRlciB0byB0aGUgZ2l2ZW4gd2ViLWNvbnRlbnRzIGNvb3JkaW5hdGVzIHVzaW5nIGFcbiAgICogKip0cnVzdGVkKiogRWxlY3Ryb24gcG9pbnRlciBtb3ZlLlxuICAgKlxuICAgKiBBIHRydXN0ZWQgbW92ZSAoaW5qZWN0ZWQgdmlhIEVsZWN0cm9uJ3MgYHdlYkNvbnRlbnRzLnNlbmRJbnB1dEV2ZW50YClcbiAgICogdXBkYXRlcyB0aGUgcmVhbCBwb2ludGVyIHN0YXRlIGluIHRoZSBDU1MgZW5naW5lLCBzbyBgOmhvdmVyYCBydWxlc1xuICAgKiBnZW51aW5lbHkgYXBwbHkgXHUyMDE0IHVubGlrZSBgZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgnbW91c2VvdmVyJykpYCxcbiAgICogd2hpY2ggaXMgdW50cnVzdGVkIGFuZCBuZXZlciBzZXRzIGA6aG92ZXJgLiBJdCB0YXJnZXRzIHRoZSBzaW5nbGUgc2hhcmVkXG4gICAqIHdpbmRvdydzICoqZ2xvYmFsKiogcG9pbnRlciwgc28gb25seSBvbmUgZWxlbWVudCBpcyBob3ZlcmVkIGF0IGEgdGltZS5cbiAgICpcbiAgICogVGhpcyBpcyB0aGUgbG93LWxldmVsIHByaW1pdGl2ZTogaXQgcGVyZm9ybXMgYSBzaW5nbGUgbW92ZSBhbmQgZG9lcyAqKm5vdCoqXG4gICAqIHdhaXQgZm9yIGFueSBzdGF0ZSB0byBzZXR0bGUgKGNhbGxlcnMgcG9sbCB0aGVpciBvd24gcmVhZGluZXNzIHNpZ25hbCkuXG4gICAqIFByZWZlciB7QGxpbmsgTGliLmhvdmVyRWxlbWVudH0gLyB7QGxpbmsgTGliLnVuaG92ZXJFbGVtZW50fSBmb3JcbiAgICogZWxlbWVudC1yZWxhdGl2ZSBtb3ZlczsgdXNlIGBtb3ZlTW91c2VgIGRpcmVjdGx5IHdoZW4gYW4gZWxlbWVudC1yZWxhdGl2ZVxuICAgKiB0YXJnZXQgZG9lcyBub3QgZml0IChlLmcuIGFuIGVsZW1lbnQgc3Bhbm5pbmcgdGhlIGZ1bGwgdmlld3BvcnQgd2lkdGgpLlxuICAgKlxuICAgKiAqKkRlc2t0b3Agb25seSBcdTIwMTQgaXQgdGhyb3dzIG9uIG1vYmlsZSoqLCBmb3IgdGhlIHNhbWUgcmVhc29uIGFzXG4gICAqIHtAbGluayBMaWIuaG92ZXJFbGVtZW50fTogdGhlcmUgaXMgbm8gdG91Y2ggcG9pbnRlciB0byBtb3ZlLlxuICAgKlxuICAgKiAqKk11c3QgYmUgYXdhaXRlZCoqIFx1MjAxNCBzZWUge0BsaW5rIExpYi5jbGlja0VsZW1lbnR9LlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHdlYi1jb250ZW50cyBESVAgY29vcmRpbmF0ZXMgdG8gbW92ZSB0by5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBtb3ZlIGhhcyBiZWVuIGluamVjdGVkLlxuICAgKi9cbiAgbW92ZU1vdXNlKHRoaXM6IHZvaWQsIHBhcmFtczogTW92ZU1vdXNlUGFyYW1zKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogT3BlbnMgT2JzaWRpYW4ncyBzZXR0aW5ncyBtb2RhbCBvbiBhIGdpdmVuIHRhYiwgYW5kIGRvZXMgbm90IHJldHVybiB1bnRpbFxuICAgKiB0aGF0IHRhYiBoYXMgYWN0dWFsbHkgcmVuZGVyZWQuXG4gICAqXG4gICAqICoqVGhpcyBleGlzdHMgYmVjYXVzZSBgYXBwLnNldHRpbmcub3BlbigpYCBvbiBpdHMgb3duIGRvZXMgbm90IHdvcmsgZnJvbSBhXG4gICAqIHRlc3QuKiogYGFwcC5zZXR0aW5nLmNvbnRhaW5lckVsYCBpcyBidWlsdCBhdCBzdGFydHVwIGJ1dCBpcyBuZXZlciBpbiB0aGVcbiAgICogZG9jdW1lbnQsIGFuZCBgb3BlbigpYCBkb2VzIG5vdCBhdHRhY2ggaXQgXHUyMDE0IHNvIHRoZSBtb2RhbCBidWlsZHMgaW50byBhXG4gICAqIGRldGFjaGVkIHRyZWUsIGBvcGVuKClgIHJldHVybnMgd2l0aG91dCB0aHJvd2luZywgYW5kIGEgc2NyZWVuc2hvdCB0YWtlblxuICAgKiBhZnRlcndhcmRzIHNob3dzIHRoZSB1bnRvdWNoZWQgZG9jdW1lbnQuIFRoYXQgaXMgd2hhdCBtYWRlIHRoZSBzZXR0aW5ncyB0YWJcbiAgICogbG9vayBpbXBvc3NpYmxlIHRvIGNhcHR1cmUsIGFuZCBnb3QgcmVjb3JkZWQgYXMgc3VjaCBpbiB0d28gcGx1Z2lucy5cbiAgICpcbiAgICogVGhlIGZpeCBpcyBvbmUgc3RlcCwgYW5kIGl0cyAqKm9yZGVyIGlzIGxvYWQtYmVhcmluZyoqOiB0aGUgY29udGFpbmVyIGlzXG4gICAqIGFwcGVuZGVkIHRvIGBkb2N1bWVudC5ib2R5YCAqKmJlZm9yZSoqIGBvcGVuKClgLiBBdHRhY2hpbmcgYWZ0ZXJ3YXJkcyBpcyB0b29cbiAgICogbGF0ZSBcdTIwMTQgd2hhdGV2ZXIgdGhlIG1vZGFsIGRyZXcgb24gb3BlbiBoYXMgYWxyZWFkeSBnb25lIGludG8gdGhlIGRldGFjaGVkXG4gICAqIGNvbnRhaW5lciwgc28gaXQgZW5kcyB1cCBvbiBzY3JlZW4gc2hvd2luZyB0aGUgd3JvbmcgdGhpbmcuIFRoYXQgZmFpbHVyZVxuICAgKiBsb29rcyBsaWtlIHN1Y2Nlc3MgdW50aWwgdGhlIGNhcHR1cmVkIGZyYW1lIGlzIGV4YW1pbmVkLCB3aGljaCBpcyB0aGUgdHJhcFxuICAgKiB0aGlzIGhlbHBlciBleGlzdHMgdG8gcmVtb3ZlLlxuICAgKlxuICAgKiBSZS1hdHRhY2hpbmcgaXMgaWRlbXBvdGVudCwgc28gYSB0YWIgY2xvc2VkIHdpdGggYGFwcC5zZXR0aW5nLmNsb3NlKClgIGNhblxuICAgKiBzaW1wbHkgYmUgcmUtb3BlbmVkLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHRhYiB0byBvcGVuIGFuZCBob3cgbG9uZyB0byB3YWl0IGZvciBpdCB0byByZW5kZXIuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHJlc29sdmluZyB0byB0aGUgbmFtZXMgb2YgdGhlIHNldHRpbmcgcm93cyB0aGVcbiAgICogICB0YWIgcmVuZGVyZWQgXHUyMDE0IGJvdGggdGhlIHByb29mIGl0IHJlbmRlcmVkIGFuZCB3aGF0IGEgY2FsbGVyIGFzc2VydHMgb24uIEFcbiAgICogICB0YWIgdGhhdCBsZWdpdGltYXRlbHkgcmVuZGVycyBubyBgLnNldHRpbmctaXRlbS1uYW1lYCByb3dzIChIb3RrZXlzLCBzYXkpXG4gICAqICAgcmVzb2x2ZXMgdG8gYW4gZW1wdHkgYXJyYXkuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgbm8gdGFiIGNhcnJpZXMge0BsaW5rIE9wZW5TZXR0aW5nc1RhYlBhcmFtcy50YWJJZH0sIG9yIGlmXG4gICAqICAgdGhlIHRhYiBkb2VzIG5vdCByZW5kZXIgd2l0aGluIHRoZSB0aW1lb3V0LlxuICAgKi9cbiAgb3BlblNldHRpbmdzVGFiKHRoaXM6IHZvaWQsIHBhcmFtczogT3BlblNldHRpbmdzVGFiUGFyYW1zKTogUHJvbWlzZTxzdHJpbmdbXT47XG5cbiAgLyoqXG4gICAqIFByZXNzZXMgYSBzaW5nbGUga2V5IChvcHRpb25hbGx5IHdpdGggbW9kaWZpZXJzKSB1c2luZyAqKnRydXN0ZWQqKiBFbGVjdHJvblxuICAgKiBrZXlib2FyZCBpbnB1dCwgZmlyaW5nIHRoZSBmdWxsIHJlYWwga2V5IHBpcGVsaW5lIFx1MjAxNFxuICAgKiBga2V5ZG93bmAgXHUyMTkyIGBrZXlwcmVzc2AgXHUyMTkyIGBiZWZvcmVpbnB1dGAgXHUyMTkyIGBpbnB1dGAgXHUyMTkyIGBrZXl1cGAuXG4gICAqXG4gICAqIFRoaXMgaXMgdGhlIGtleS1wcmVzcyBhbmFsb2cgb2Yge0BsaW5rIExpYi50eXBlSW50b0VkaXRvcn06IGl0IGluamVjdHMgYVxuICAgKiB0cnVzdGVkIGBrZXlEb3duYCBcdTIxOTIgYGNoYXJgIFx1MjE5MiBga2V5VXBgIHNlcXVlbmNlIHZpYSBFbGVjdHJvbidzXG4gICAqIGB3ZWJDb250ZW50cy5zZW5kSW5wdXRFdmVudGAsIHNvIGl0IGlzIGRlbGl2ZXJlZCB0byB0aGUgd2luZG93J3MgRE9NLWZvY3VzZWRcbiAgICogZWxlbWVudCBhbmQgZmxvd3MgdGhyb3VnaCB0aGUgcmVhbCBpbnB1dCBwaXBlbGluZSBcdTIwMTQgdW5saWtlXG4gICAqIGBkaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KC4uLikpYCwgd2hpY2ggaXMgdW50cnVzdGVkIChgaXNUcnVzdGVkOlxuICAgKiBmYWxzZWApIGFuZCBpZ25vcmVkIGJ5IENvZGVNaXJyb3IgYW5kIG1vc3Qga2V5IGhhbmRsZXJzLiBVc2UgaXQgZm9yIHNwZWNpYWxcbiAgICoga2V5cyAoYCdFbnRlcidgLCBgJ0VzY2FwZSdgLCBgJ1RhYidgLCBhcnJvdyBrZXlzKSBhbmQgbW9kaWZpZXIgY29tYmluYXRpb25zXG4gICAqIChgU2hpZnQrRW50ZXJgLCBgQ3RybCtBYCkgdGhhdCB7QGxpbmsgTGliLnR5cGVJbnRvRWRpdG9yfSAod2hpY2ggdHlwZXNcbiAgICogcHJpbnRhYmxlIHRleHQpIGRvZXMgbm90IGNvdmVyLlxuICAgKlxuICAgKiBUaGlzIGlzIHRoZSBsb3ctbGV2ZWwgcHJpbWl0aXZlOiBpdCBpbmplY3RzIHRoZSBrZXkgcHJlc3MgYW5kIGRvZXMgKipub3QqKlxuICAgKiBwb2xsIGZvciBhbnkgZWZmZWN0IChhIGtleSBwcmVzcyBoYXMgbm8gdW5pdmVyc2FsIG9ic2VydmFibGUgb3V0Y29tZSBcdTIwMTRcbiAgICogYEVudGVyYCBlZGl0cyB0aGUgZG9jdW1lbnQsIGBFc2NhcGVgIGNsb3NlcyBhIG1vZGFsLCBgQXJyb3dEb3duYCBtb3ZlcyB0aGVcbiAgICogc2VsZWN0aW9uKS4gVGhlIGNhbGxlciBmb2N1c2VzIHRoZSBpbnRlbmRlZCB0YXJnZXQgZmlyc3QsIHRoZW4gYXdhaXRzIHRoZVxuICAgKiBleHBlY3RlZCBlZmZlY3QgdmlhIHtAbGluayBMaWIud2FpdFVudGlsfS4gSXQgdGFyZ2V0cyB0aGUgc2luZ2xlIHNoYXJlZFxuICAgKiB3aW5kb3cncyAqKmdsb2JhbCoqIGZvY3VzLCBzbyBvbmx5IHRoZSBET00tZm9jdXNlZCBlbGVtZW50IHJlY2VpdmVzIHRoZSBrZXkuXG4gICAqXG4gICAqICoqT24gbW9iaWxlKiogdGhlIHNhbWUgc2VxdWVuY2UgaXMgaW5qZWN0ZWQgdGhyb3VnaCB0aGUgV2ViVmlldydzIGRlYnVnZ2VyXG4gICAqIChgSW5wdXQuZGlzcGF0Y2hLZXlFdmVudGApLCB3aGljaCBpcyBlcXVhbGx5IHRydXN0ZWQuIE5hbWVkIGtleXMgKGAnRW50ZXInYCxcbiAgICogYCdFc2NhcGUnYCwgYCdUYWInYCwgYCdCYWNrc3BhY2UnYCwgYCdEZWxldGUnYCwgdGhlIGFycm93cykgYW5kIHNpbmdsZVxuICAgKiBwcmludGFibGUgY2hhcmFjdGVycyBhcmUgc3VwcG9ydGVkOyBhbnkgb3RoZXIgbXVsdGktY2hhcmFjdGVyIG5hbWUgdGhyb3dzXG4gICAqIHJhdGhlciB0aGFuIHByZXNzaW5nIG5vdGhpbmcuXG4gICAqXG4gICAqICoqTXVzdCBiZSBhd2FpdGVkKiogXHUyMDE0IHNlZSB7QGxpbmsgTGliLmNsaWNrRWxlbWVudH0uXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUga2V5IHRvIHByZXNzIGFuZCBhbnkgbW9kaWZpZXJzIHRvIGhvbGQuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUga2V5IHByZXNzIGhhcyBiZWVuXG4gICAqICAgaW5qZWN0ZWQuXG4gICAqL1xuICBwcmVzc0tleSh0aGlzOiB2b2lkLCBwYXJhbXM6IFByZXNzS2V5UGFyYW1zKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogVHlwZXMgdGV4dCBpbnRvIGEgQ29kZU1pcnJvciB7QGxpbmsgRWRpdG9yfSB1c2luZyAqKnRydXN0ZWQqKiBFbGVjdHJvblxuICAgKiBrZXlib2FyZCBpbnB1dC5cbiAgICpcbiAgICogVHlwaW5nIGlzIHByZXNzaW5nIGVhY2ggY2hhcmFjdGVyIGtleSBpbiB0dXJuOiB0aGlzIGZvY3VzZXMgdGhlIGVkaXRvclxuICAgKiAoY2FyZXQgdG8gZW5kKSBhbmQgcHJlc3NlcyBldmVyeSBjb2RlIHBvaW50IG9mIGB0ZXh0YCB2aWFcbiAgICoge0BsaW5rIExpYi5wcmVzc0tleX0gXHUyMDE0IHRoZSBzYW1lIHRydXN0ZWQgYGtleURvd25gIFx1MjE5MiBgY2hhcmAgXHUyMTkyIGBrZXlVcGAgYSByZWFsXG4gICAqIHVzZXIgcHJvZHVjZXMuIEVhY2gga2V5c3Ryb2tlIGlzIGRlbGl2ZXJlZCB0byB0aGUgd2luZG93J3MgRE9NLWZvY3VzZWRcbiAgICogZWxlbWVudCBhbmQgZmxvd3MgdGhyb3VnaCBDb2RlTWlycm9yJ3MgcmVhbCBpbnB1dCBwaXBlbGluZSwgc28gdGhlIHR5cGVkXG4gICAqIHRleHQgcmVhY2hlcyB0aGUgZG9jdW1lbnQgKipvbmx5IGlmIHRoZSBlZGl0b3IgZ2VudWluZWx5IGhvbGRzIGZvY3VzKiouXG4gICAqIFRoaXMgbWFrZXMgXCJ0aGUgdXNlciB0eXBlZCBpbnRvIHRoZSBlZGl0b3JcIiBhIGZhaXRoZnVsIGVuZC10by1lbmQgY2hlY2ssXG4gICAqIHVubGlrZSBgZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCguLi4pKWAgKHVudHJ1c3RlZCBcdTIwMTQgaWdub3JlZCBieVxuICAgKiBDb2RlTWlycm9yKSBvciBgZXhlY0NvbW1hbmQoJ2luc2VydFRleHQnKWAgKG11dGF0ZXMgdGhlIHNlbGVjdGlvbiBldmVuXG4gICAqIHdoZW4gdGhlIGVkaXRvciBpcyBub3QgZm9jdXNlZCwgbWFza2luZyBmb2N1cyBidWdzIGFzIGZhbHNlIHBvc2l0aXZlcykuXG4gICAqXG4gICAqIEFmdGVyIGluamVjdGluZyB0aGUga2V5c3Ryb2tlcyBpdCBwb2xscyB1bnRpbCB0aGUgZG9jdW1lbnQgcmVmbGVjdHMgdGhlXG4gICAqIGlucHV0LCBvciBhIGJvdW5kZWQgdGltZW91dCBlbGFwc2VzICh0aGUgZXhwZWN0ZWQgb3V0Y29tZSB3aGVuIHRoZSBlZGl0b3JcbiAgICogaXMgcmVhZC1vbmx5IGFuZCByZWplY3RzIHRoZSBpbnB1dCwgb3Igd2hlbiBmb2N1cyB3YXMgc3RvbGVuKS5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBlZGl0b3IgdG8gdHlwZSBpbnRvIGFuZCB0aGUgdGV4dCB0byB0eXBlLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgdGhlIGtleXN0cm9rZXMgaGF2ZSBzZXR0bGVkLlxuICAgKi9cbiAgdHlwZUludG9FZGl0b3IodGhpczogdm9pZCwgcGFyYW1zOiBUeXBlSW50b0VkaXRvclBhcmFtcyk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIE1vdmVzIHRoZSBtb3VzZSBwb2ludGVyIHRvIGEgcG9pbnQganVzdCBvdXRzaWRlIGFuIGVsZW1lbnQncyBib3VuZGluZyBib3hcbiAgICogdXNpbmcgYSAqKnRydXN0ZWQqKiBFbGVjdHJvbiBwb2ludGVyIG1vdmUsIHRoZW4gcG9sbHMgdW50aWwgdGhlIGVsZW1lbnQgbm9cbiAgICogbG9uZ2VyIG1hdGNoZXMgYDpob3ZlcmAuXG4gICAqXG4gICAqIFRoZSBpbnZlcnNlIG9mIHtAbGluayBMaWIuaG92ZXJFbGVtZW50fS4gSXQgdGFyZ2V0cyB0aGUgc2luZ2xlIHNoYXJlZFxuICAgKiB3aW5kb3cncyAqKmdsb2JhbCoqIHBvaW50ZXIsIHNvIG9ubHkgb25lIGVsZW1lbnQgaXMgaG92ZXJlZCBhdCBhIHRpbWUuIFdoZW5cbiAgICogYW4gZWxlbWVudCBzcGFucyB0aGUgZnVsbCB2aWV3cG9ydCAobm8gcG9pbnQgb3V0c2lkZSBpdHMgYm94IGlzIHJlYWNoYWJsZSksXG4gICAqIHVzZSB7QGxpbmsgTGliLm1vdmVNb3VzZX0gZGlyZWN0bHkgdG8gbW92ZSB0aGUgcG9pbnRlciB0byBhIGtub3duIGVtcHR5XG4gICAqIGNvb3JkaW5hdGUgaW5zdGVhZC5cbiAgICpcbiAgICogKipEZXNrdG9wIG9ubHkgXHUyMDE0IGl0IHRocm93cyBvbiBtb2JpbGUqKiwgZm9yIHRoZSBzYW1lIHJlYXNvbiBhc1xuICAgKiB7QGxpbmsgTGliLmhvdmVyRWxlbWVudH0uXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgZWxlbWVudCB0byBtb3ZlIHRoZSBwb2ludGVyIGF3YXkgZnJvbS5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBlbGVtZW50IG5vIGxvbmdlciBtYXRjaGVzXG4gICAqICAgYDpob3ZlcmAuXG4gICAqL1xuICB1bmhvdmVyRWxlbWVudCh0aGlzOiB2b2lkLCBwYXJhbXM6IFVuaG92ZXJFbGVtZW50UGFyYW1zKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogUG9sbHMgYSBwcmVkaWNhdGUgdW50aWwgaXQgYmVjb21lcyB0cnV0aHksIG9yIHJlamVjdHMgb25jZSBhIGJvdW5kZWRcbiAgICogdGltZW91dCBlbGFwc2VzLlxuICAgKlxuICAgKiBJbnRlZ3JhdGlvbi10ZXN0IGBldmFsSW5PYnNpZGlhbmAgY2FsbGJhY2tzIHJvdXRpbmVseSBuZWVkIHRvIHdhaXQgZm9yIGFuXG4gICAqIGFzeW5jaHJvbm91cyBlZmZlY3QgdG8gc2V0dGxlIChhIHZpZXcgdG8gb3BlbiwgYSBET00gbm9kZSB0byBhcHBlYXIsIGFcbiAgICogc2V0dGluZyB0byBhcHBseSkuIEJlY2F1c2UgdGhlIGNhbGxiYWNrIGlzIHNlcmlhbGl6ZWQgdmlhIGB0b1N0cmluZygpYCBhbmRcbiAgICogY2Fubm90IGltcG9ydCBtb2R1bGVzLCBpdCBjYW4ndCByZXVzZSBgb2JzaWRpYW4tZGV2LXV0aWxzYCdcbiAgICogYHJldHJ5V2l0aFRpbWVvdXRgIC8gYHJ1bldpdGhUaW1lb3V0YC4gVGhpcyBoZWxwZXIgaXMgdGhlIHNoYXJlZCwgaW5qZWN0ZWRcbiAgICogcmVwbGFjZW1lbnQgZm9yIHRoZSBwZXItY2xvc3VyZSBwb2xsIGxvb3BzIGNvbnN1bWVycyB3b3VsZCBvdGhlcndpc2VcbiAgICogaGFuZC1yb2xsLlxuICAgKlxuICAgKiBUaGUgYHByZWRpY2F0ZWAgbWF5IGJlIHN5bmNocm9ub3VzIG9yIGFzeW5jaHJvbm91cyBcdTIwMTQgaXQgaXMgYXdhaXRlZCBvbiBldmVyeVxuICAgKiBwb2xsLiBJdCBpcyBjaGVja2VkIGltbWVkaWF0ZWx5LCB0aGVuIHJlLWNoZWNrZWQgZXZlcnlcbiAgICogYGludGVydmFsSW5NaWxsaXNlY29uZHNgIHVudGlsIGl0IHJldHVybnMgdHJ1dGh5IG9yIGB0aW1lb3V0SW5NaWxsaXNlY29uZHNgXG4gICAqIGVsYXBzZXMsIGF0IHdoaWNoIHBvaW50IHRoZSByZXR1cm5lZCB7QGxpbmsgUHJvbWlzZX0gcmVqZWN0cyAodGhlIGVycm9yXG4gICAqIGluY2x1ZGVzIGBtZXNzYWdlYCB3aGVuIHByb3ZpZGVkKS5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwcmVkaWNhdGUgdG8gcG9sbCBwbHVzIG9wdGlvbmFsIHRpbWVvdXQsIGludGVydmFsLCBhbmRcbiAgICogICB0aW1lb3V0IG1lc3NhZ2UuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgcHJlZGljYXRlIGlzIHRydXRoeS5cbiAgICovXG4gIHdhaXRVbnRpbCh0aGlzOiB2b2lkLCBwYXJhbXM6IFdhaXRVbnRpbFBhcmFtcyk6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogVGhlIG1vdXNlIGJ1dHRvbiBhIHRydXN0ZWQgY2xpY2sgcHJlc3NlcywgaW4gRWxlY3Ryb24ncyBgc2VuZElucHV0RXZlbnRgXG4gKiBzcGVsbGluZy5cbiAqL1xuZXhwb3J0IHR5cGUgTW91c2VCdXR0b24gPSAnbGVmdCcgfCAnbWlkZGxlJyB8ICdyaWdodCc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIENvbW1vbkFyZ3VtZW50cy5tb3ZlTW91c2V9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vdmVNb3VzZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgeCBjb29yZGluYXRlICh3ZWItY29udGVudHMgRElQKSB0byBtb3ZlIHRoZSBwb2ludGVyIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgeDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgeSBjb29yZGluYXRlICh3ZWItY29udGVudHMgRElQKSB0byBtb3ZlIHRoZSBwb2ludGVyIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgeTogbnVtYmVyO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBMaWIub3BlblNldHRpbmdzVGFifS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcGVuU2V0dGluZ3NUYWJQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSBzZXR0aW5ncyB0YWIgdG8gb3BlbiBcdTIwMTQgYSBwbHVnaW4gaWQgZm9yIGEgcGx1Z2luJ3Mgb3duIHRhYiwgb3JcbiAgICogYSBjb3JlIHRhYiBpZCAoYCdlZGl0b3InYCwgYCdob3RrZXlzJ2AsIFx1MjAyNikuXG4gICAqXG4gICAqIFJlcXVpcmVkLCBiZWNhdXNlIG9wZW5pbmcgdGhlIG1vZGFsIHdpdGhvdXQgbmFtaW5nIGEgdGFiIHJlbmRlcnMgKipub3RoaW5nKipcbiAgICogb24gYSBoYXJuZXNzLW93bmVkIGluc3RhbmNlOiB0aGUgbW9kYWwgcmVzdG9yZXMgdGhlIGxhc3QgdGFiIHRoZSBwcm9maWxlXG4gICAqIHVzZWQsIGFuZCBhbiBpc29sYXRlZCBwcm9maWxlIGhhcyBuZXZlciBvcGVuZWQgb25lLCBzbyBgYWN0aXZlVGFiYCBzdGF5c1xuICAgKiBgbnVsbGAgYW5kIG5vIHJvdyBpcyBkcmF3bi4gQW4gdW5rbm93biBpZCBpcyByZWplY3RlZCBpbW1lZGlhdGVseSwgbGlzdGluZ1xuICAgKiB0aGUgaWRzIHRoYXQgZG8gZXhpc3QuXG4gICAqL1xuICByZWFkb25seSB0YWJJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIHRvIHdhaXQgZm9yIHRoZSBtb2RhbCB0byBvcGVuIGFuZCBmb3IgdGhlIHJlcXVlc3RlZCB0YWIgdG9cbiAgICogcmVuZGVyIGl0cyBjb250ZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgNTAwMGBcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRJbk1pbGxpc2Vjb25kcz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgQ29tbW9uQXJndW1lbnRzLnByZXNzS2V5fS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVzc0tleVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUga2V5IHRvIHByZXNzLCBnaXZlbiBhcyBhbiBFbGVjdHJvbiBBY2NlbGVyYXRvciBrZXkgbmFtZSBcdTIwMTQgZS5nLlxuICAgKiBgJ0VudGVyJ2AsIGAnRXNjYXBlJ2AsIGAnVGFiJ2AsIGAnQmFja3NwYWNlJ2AsIGAnRGVsZXRlJ2AsIGFuIGFycm93IGtleVxuICAgKiAoYCdVcCdgIC8gYCdEb3duJ2AgLyBgJ0xlZnQnYCAvIGAnUmlnaHQnYCksIG9yIGEgcHJpbnRhYmxlIGNoYXJhY3RlclxuICAgKiAoYCdhJ2AsIGAnMSdgKS4gVGhlIHByb2R1Y2VkIGNoYXJhY3RlciAod2hlbiB0aGUga2V5IGluc2VydHMgdGV4dCkgaXMgdGhlXG4gICAqIGxpdGVyYWwgYGtleWAgdmFsdWU7IGNhc2UtY29ycmVjdCB0ZXh0IGJlbG9uZ3MgdG9cbiAgICoge0BsaW5rIENvbW1vbkFyZ3VtZW50cy50eXBlSW50b0VkaXRvcn0sIG5vdCBhIGtleS1wcmVzcyBwcmltaXRpdmUuXG4gICAqL1xuICByZWFkb25seSBrZXk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1vZGlmaWVyIGtleXMgdG8gaG9sZCB3aGlsZSB0aGUga2V5IGlzIHByZXNzZWQsIHVzaW5nIE9ic2lkaWFuJ3NcbiAgICoge0BsaW5rIE1vZGlmaWVyfSBuYW1lcyAodGhlIHNhbWUgdmFsdWVzIGFzIGFuIE9ic2lkaWFuIGBIb3RrZXlgKS4gYCdNb2QnYFxuICAgKiByZXNvbHZlcyBwZXItcGxhdGZvcm0gKENtZCBvbiBtYWNPUywgQ3RybCBlbHNld2hlcmUpOyBlYWNoIGlzIG1hcHBlZCB0b1xuICAgKiBFbGVjdHJvbidzIGxvd2VyY2FzZSBgc2VuZElucHV0RXZlbnRgIG1vZGlmaWVyIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBbXWBcbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmaWVycz86IHJlYWRvbmx5IE1vZGlmaWVyW107XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIENvbW1vbkFyZ3VtZW50cy50eXBlSW50b0VkaXRvcn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZUludG9FZGl0b3JQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGVkaXRvciB0byB0eXBlIGludG8uIEl0IGlzIGZvY3VzZWQgKHdpdGggdGhlIGNhcmV0IG1vdmVkIHRvIHRoZSBlbmQgb2ZcbiAgICogdGhlIGRvY3VtZW50KSBiZWZvcmUgdGhlIGtleXN0cm9rZXMgYXJlIGluamVjdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdG9yOiBFZGl0b3I7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHRvIHR5cGUuIEVhY2ggY29kZSBwb2ludCBpcyBwcmVzc2VkIHZpYSB7QGxpbmsgQ29tbW9uQXJndW1lbnRzLnByZXNzS2V5fVxuICAgKiAoYSB0cnVzdGVkIGBrZXlEb3duYCBcdTIxOTIgYGNoYXJgIFx1MjE5MiBga2V5VXBgKSwgZXhhY3RseSBhcyBhIHJlYWwgdXNlciB0eXBpbmcuXG4gICAqL1xuICByZWFkb25seSB0ZXh0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIENvbW1vbkFyZ3VtZW50cy51bmhvdmVyRWxlbWVudH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW5ob3ZlckVsZW1lbnRQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdG8gbW92ZSB0aGUgcG9pbnRlciBhd2F5IGZyb20uIFRoZSBwb2ludGVyIGlzIG1vdmVkIHRvIGEgcG9pbnRcbiAgICoganVzdCBvdXRzaWRlIGl0cyBib3VuZGluZyBib3guIFRoaXMgaXMgYSBsaXZlIHJlbmRlcmVyIERPTSBub2RlIFx1MjAxNCB0aGVcbiAgICogY2FsbGJhY2sgcnVucyBpbi1yZW5kZXJlciwgc28gbm8gY3Jvc3MtcHJvY2VzcyBzZXJpYWxpemF0aW9uIGlzIG5lZWRlZFxuICAgKiAoc2FtZSBhcyB7QGxpbmsgVHlwZUludG9FZGl0b3JQYXJhbXMuZWRpdG9yfSkuXG4gICAqL1xuICByZWFkb25seSBlbGVtZW50OiBIVE1MRWxlbWVudDtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgQ29tbW9uQXJndW1lbnRzLndhaXRVbnRpbH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FpdFVudGlsUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBwb2xsaW5nIGludGVydmFsIGJldHdlZW4gcHJlZGljYXRlIGNoZWNrcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYDUwYFxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZXJ2YWxJbk1pbGxpc2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgZGV0YWlsIGFwcGVuZGVkIHRvIHRoZSB0aW1lb3V0IGVycm9yIG1lc3NhZ2UsIGRlc2NyaWJpbmcgd2hhdFxuICAgKiB3YXMgYmVpbmcgd2FpdGVkIGZvci5cbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25kaXRpb24gdG8gd2FpdCBmb3IuIFBvbGxlZCBpbW1lZGlhdGVseSwgdGhlbiBvbiBldmVyeSBpbnRlcnZhbCB1bnRpbFxuICAgKiBpdCByZXR1cm5zIGEgdHJ1dGh5IHZhbHVlLiBNYXkgYmUgc3luY2hyb25vdXMgb3IgYXN5bmNocm9ub3VzIFx1MjAxNCBpdCBpc1xuICAgKiBhd2FpdGVkIG9uIGVhY2ggcG9sbC5cbiAgICpcbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgYXdhaXRlZCBjb25kaXRpb24gaGFzIGJlZW4gbWV0LlxuICAgKi9cbiAgcHJlZGljYXRlKHRoaXM6IHZvaWQpOiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSB0byB3YWl0IGJlZm9yZSByZWplY3RpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IGA1MDAwYFxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEV2YWx1YXRlcyBhIGZ1bmN0aW9uIGluc2lkZSB0aGUgcnVubmluZyBPYnNpZGlhbiBpbnN0YW5jZVxuICogdmlhIHRoZSBhY3RpdmUgdHJhbnNwb3J0IGFuZCByZXR1cm5zIHRoZSBwYXJzZWQgcmVzdWx0LlxuICpcbiAqIFRoZSBmdW5jdGlvbiByZWNlaXZlcyBhbiBpbnB1dCBvYmplY3QgdGhhdCBpbmNsdWRlcyBgYXBwYCwgYG9ic2lkaWFuTW9kdWxlYCxcbiAqIGBjb250ZXh0YCwgYW5kIGFueSBhZGRpdGlvbmFsIGBpbnB1dGAgcGFzc2VkIGJ5IHRoZSBjYWxsZXIuXG4gKiBJdCBpcyBzZXJpYWxpemVkIHZpYSBgdG9TdHJpbmcoKWAgYW5kIGludm9rZWQgYXMgYW4gSUlGRS5cbiAqIFRoZSBmdW5jdGlvbiBtdXN0IGJlIHNlbGYtY29udGFpbmVkIFx1MjAxNCBjbG9zdXJlcyBvdmVyIGxvY2FsIHZhcmlhYmxlcyB3aWxsIG5vdCB3b3JrLlxuICogUGFzcyBhbnkgbmVlZGVkIHZhbHVlcyBhcyBgaW5wdXRgIFx1MjAxNCB0aGV5IGFyZSBKU09OLXNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBvbiB0aGUgT2JzaWRpYW4gc2lkZS5cbiAqXG4gKiBUaGUgcmVzdWx0IGlzIGBKU09OLnN0cmluZ2lmeWAnZCBvbiB0aGUgT2JzaWRpYW4gc2lkZSBhbmQgcGFyc2VkIGJhY2suXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24gdG8gZXZhbHVhdGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSByZXR1cm4gdmFsdWUgb2YgYGNhbGxiYWNrYC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV2YWxJbk9ic2lkaWFuPElucHV0IGV4dGVuZHMgR2VuZXJpY09iamVjdCwgUmVzdWx0LCBUQ29udGV4dElkIGV4dGVuZHMgQ29udGV4dElkPHVua25vd24+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkPihcbiAgcGFyYW1zOiBFdmFsSW5PYnNpZGlhblBhcmFtczxJbnB1dCwgUmVzdWx0LCBUQ29udGV4dElkPlxuKTogUHJvbWlzZTxSZXN1bHQ+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCAtLSBgY2FsbGJhY2tgIGNhbiBiZSB1bmJvdW5kLlxuICBjb25zdCB7IGNhbGxiYWNrLCBjb250ZXh0SWQsIGlucHV0ID0ge30sIHNob3VsZFNraXBQcmVmbGlnaHRDaGVja3MgPSBmYWxzZSwgdHJhbnNwb3J0OiB0cmFuc3BvcnRPdmVycmlkZSwgdmF1bHRQYXRoIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGN3ZCA9IHZhdWx0UGF0aCA/PyBnZXRWYXVsdFBhdGgoKSA/PyBwcm9jZXNzLmN3ZCgpO1xuXG4gIC8vIENoZWNrOiBWYXVsdCBwYXRoIGV4aXN0cyBvbiBkaXNrLlxuICBpZiAodmF1bHRQYXRoICE9PSB1bmRlZmluZWQgJiYgIWV4aXN0c1N5bmModmF1bHRQYXRoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVmF1bHQgcGF0aCBkb2VzIG5vdCBleGlzdDogJHt2YXVsdFBhdGh9YCk7XG4gIH1cblxuICBjb25zdCB0cmFuc3BvcnQgPSB0cmFuc3BvcnRPdmVycmlkZSA/PyBhd2FpdCBnZXRPckNyZWF0ZVRyYW5zcG9ydChnZXRUcmFuc3BvcnRPcHRpb25zKCkpO1xuXG4gIGlmICghc2hvdWxkU2tpcFByZWZsaWdodENoZWNrcykge1xuICAgIGF3YWl0IHRyYW5zcG9ydC5wcmVmbGlnaHRDaGVjayhjd2QpO1xuICB9XG5cbiAgYXdhaXQgZW5zdXJlTmFtZXNwYWNlQm9vdHN0cmFwcGVkKHRyYW5zcG9ydCwgY3dkKTtcblxuICBjb25zdCBuYW1lc3BhY2VDYWxsUGFyYW1zOiBHZW5lcmF0ZU5hbWVzcGFjZUNhbGxQYXJhbXMgPSB7XG4gICAgY2FsbGJhY2ssXG4gICAgaW5wdXQsXG4gICAgLi4uKGNvbnRleHRJZCAhPT0gdW5kZWZpbmVkICYmIHsgY29udGV4dElkOiBTdHJpbmcoY29udGV4dElkKSB9KVxuICB9O1xuXG4gIGNvbnN0IGV4cHJlc3Npb24gPSBnZW5lcmF0ZU5hbWVzcGFjZUNhbGwobmFtZXNwYWNlQ2FsbFBhcmFtcyk7XG5cbiAgY29uc3QgcmVzdWx0U3RyaW5nID0gYXdhaXQgdHJhbnNwb3J0LmV2YWx1YXRlKGV4cHJlc3Npb24sIHsgY3dkIH0pO1xuXG4gIGlmIChyZXN1bHRTdHJpbmcgPT09ICcnIHx8IHJlc3VsdFN0cmluZyA9PT0gTk9fT1VUUFVUKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZCBhcyBSZXN1bHQ7XG4gIH1cblxuICBsZXQgZW52ZWxvcGU6IEV2YWxSZXN1bHRFbnZlbG9wZTtcbiAgdHJ5IHtcbiAgICBlbnZlbG9wZSA9IEpTT04ucGFyc2UocmVzdWx0U3RyaW5nKSBhcyBFdmFsUmVzdWx0RW52ZWxvcGU7XG4gIH0gY2F0Y2gge1xuICAgIHRocm93IG5ldyBFcnJvcihgZXZhbEluT2JzaWRpYW46IE9ic2lkaWFuIHJldHVybmVkIG5vbi1KU09OIG91dHB1dDogJHtyZXN1bHRTdHJpbmd9YCk7XG4gIH1cblxuICBpZiAoJ3R5cGUnIGluIGVudmVsb3BlKSB7XG4gICAgaWYgKGVudmVsb3BlLnR5cGUgPT09ICdlcnJvcicpIHtcbiAgICAgIC8vIFJld3JpdGUgYmFyZS1vcmlnaW4gbG9jYWxob3N0IHN0YWNrIGZyYW1lcyBsaWtlIFwiKGh0dHA6Ly9sb2NhbGhvc3QvOjkxNTozMilcIlxuICAgICAgLy8gU28gVml0ZXN0J3Mgc291cmNlLW1hcCByZXNvbHZlciB3b24ndCBleHRyYWN0IFwiL1wiIGFzIHRoZSBmaWxlIHBhdGggYW5kIGNyYXNoXG4gICAgICAvLyBXaXRoIEVJU0RJUiB3aGVuIGl0IHRyaWVzIHRvIHJlYWRGaWxlU3luYyBvbiB0aGUgcm9vdCBkaXJlY3RvcnkuXG4gICAgICBjb25zdCBzYW5pdGl6ZWREZXRhaWwgPSBlbnZlbG9wZS52YWx1ZVxuICAgICAgICAucmVwbGFjZUFsbCgvXFwoaHR0cHM/OlxcL1xcL2xvY2FsaG9zdFxcLzooPzxsaW5lPlxcZCkvZywgJyhvYnNpZGlhbi13ZWJ2aWV3OiQ8bGluZT4nKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZXZhbEluT2JzaWRpYW46IEVycm9yIGluc2lkZSBPYnNpZGlhbjpcXG4ke3Nhbml0aXplZERldGFpbH1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkIGFzIFJlc3VsdDtcbiAgfVxuXG4gIHJldHVybiBlbnZlbG9wZS52YWx1ZSBhcyBSZXN1bHQ7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQSxxQkFBMkI7QUFDM0IsMEJBQW9CO0FBU3BCLDhCQUdPO0FBQ1Asb0NBQXNDO0FBQ3RDLGlDQUE0QztBQUM1QywrQkFBcUM7QUEyQnJDLE1BQU0sWUFBWTtBQWdtQmxCLGVBQXNCLGVBQ3BCLFFBQ2lCO0FBRWpCLFFBQU0sRUFBRSxVQUFVLFdBQVcsUUFBUSxDQUFDLEdBQUcsNEJBQTRCLE9BQU8sV0FBVyxtQkFBbUIsVUFBVSxJQUFJO0FBQ3hILFFBQU0sTUFBTSxpQkFBYSxzQ0FBYSxLQUFLLG9CQUFBQSxRQUFRLElBQUk7QUFHdkQsTUFBSSxjQUFjLFVBQWEsS0FBQywyQkFBVyxTQUFTLEdBQUc7QUFDckQsVUFBTSxJQUFJLE1BQU0sOEJBQThCLFNBQVMsRUFBRTtBQUFBLEVBQzNEO0FBRUEsUUFBTSxZQUFZLHFCQUFxQixVQUFNLG1EQUFxQiw2Q0FBb0IsQ0FBQztBQUV2RixNQUFJLENBQUMsMkJBQTJCO0FBQzlCLFVBQU0sVUFBVSxlQUFlLEdBQUc7QUFBQSxFQUNwQztBQUVBLFlBQU0sd0RBQTRCLFdBQVcsR0FBRztBQUVoRCxRQUFNLHNCQUFtRDtBQUFBLElBQ3ZEO0FBQUEsSUFDQTtBQUFBLElBQ0EsR0FBSSxjQUFjLFVBQWEsRUFBRSxXQUFXLE9BQU8sU0FBUyxFQUFFO0FBQUEsRUFDaEU7QUFFQSxRQUFNLGlCQUFhLHFEQUFzQixtQkFBbUI7QUFFNUQsUUFBTSxlQUFlLE1BQU0sVUFBVSxTQUFTLFlBQVksRUFBRSxJQUFJLENBQUM7QUFFakUsTUFBSSxpQkFBaUIsTUFBTSxpQkFBaUIsV0FBVztBQUNyRCxXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUk7QUFDSixNQUFJO0FBQ0YsZUFBVyxLQUFLLE1BQU0sWUFBWTtBQUFBLEVBQ3BDLFFBQVE7QUFDTixVQUFNLElBQUksTUFBTSxzREFBc0QsWUFBWSxFQUFFO0FBQUEsRUFDdEY7QUFFQSxNQUFJLFVBQVUsVUFBVTtBQUN0QixRQUFJLFNBQVMsU0FBUyxTQUFTO0FBSTdCLFlBQU0sa0JBQWtCLFNBQVMsTUFDOUIsV0FBVyx5Q0FBeUMsMkJBQTJCO0FBQ2xGLFlBQU0sSUFBSSxNQUFNO0FBQUEsRUFBMkMsZUFBZSxFQUFFO0FBQUEsSUFDOUU7QUFFQSxXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU8sU0FBUztBQUNsQjsiLAogICJuYW1lcyI6IFsicHJvY2VzcyJdCn0K
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2V2YWwtaW4tb2JzaWRpYW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFdmFsdWF0ZXMgYSBmdW5jdGlvbiBpbnNpZGUgYSBydW5uaW5nIE9ic2lkaWFuIGluc3RhbmNlIHZpYSBhIHBsdWdnYWJsZSB0cmFuc3BvcnQuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIEVkaXRvcixcbiAgTW9kaWZpZXIsXG4gIFRGaWxlXG59IGZyb20gJ29ic2lkaWFuJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1uYW1lc3BhY2UgLS0gV2UgbmVlZCB0byByZWZlcmVuY2UgYG9ic2lkaWFuYCBtb2R1bGUuXG5pbXBvcnQgdHlwZSAqIGFzIG9ic2lkaWFuIGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgQ29udGV4dEFyZ3VtZW50cyxcbiAgQ29udGV4dElkXG59IGZyb20gJy4vY29udGV4dC1pZC5janMnO1xuaW1wb3J0IHR5cGUgeyBHZW5lcmF0ZU5hbWVzcGFjZUNhbGxQYXJhbXMgfSBmcm9tICcuL2dlbmVyYXRlLWZ1bmN0aW9uLWNhbGwuY2pzJztcbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5UcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC5janMnO1xuXG5pbXBvcnQge1xuICBnZXRUcmFuc3BvcnRPcHRpb25zLFxuICBnZXRWYXVsdFBhdGhcbn0gZnJvbSAnLi9jb250ZXh0LXByb3ZpZGVyLmNqcyc7XG5pbXBvcnQgeyBnZW5lcmF0ZU5hbWVzcGFjZUNhbGwgfSBmcm9tICcuL2dlbmVyYXRlLWZ1bmN0aW9uLWNhbGwuY2pzJztcbmltcG9ydCB7IGVuc3VyZU5hbWVzcGFjZUJvb3RzdHJhcHBlZCB9IGZyb20gJy4vbmFtZXNwYWNlLWJvb3RzdHJhcC5janMnO1xuaW1wb3J0IHsgZ2V0T3JDcmVhdGVUcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC1mYWN0b3J5LmNqcyc7XG5cbmludGVyZmFjZSBFdmFsRXJyb3JFbnZlbG9wZSB7XG4gIHR5cGU6ICdlcnJvcic7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGlzY3JpbWluYXRlZCBlbnZlbG9wZSByZXR1cm5lZCBieSB0aGUgcmVnaXN0ZXJlZCBgZXZhbFdyYXBwZXJgIGZyb20gaW5zaWRlIHRoZSBPYnNpZGlhbiBwcm9jZXNzLlxuICpcbiAqIC0gYEV2YWxFcnJvckVudmVsb3BlYCBcdTIwMTQgYGNhbGxiYWNrYCB0aHJldzsgYHZhbHVlYCBpcyB0aGUgc2VyaWFsaXplZCBlcnJvci5cbiAqIC0gYEV2YWxVbmRlZmluZWRFbnZlbG9wZWAgXHUyMDE0IGBjYWxsYmFja2AgcmV0dXJuZWQgYHVuZGVmaW5lZGAuXG4gKiAtIGBFdmFsVmFsdWVFbnZlbG9wZWAgXHUyMDE0IGBjYWxsYmFja2AgcmV0dXJuZWQgYSBKU09OLXNlcmlhbGl6YWJsZSB2YWx1ZS5cbiAqL1xudHlwZSBFdmFsUmVzdWx0RW52ZWxvcGUgPVxuICB8IEV2YWxFcnJvckVudmVsb3BlXG4gIHwgRXZhbFVuZGVmaW5lZEVudmVsb3BlXG4gIHwgRXZhbFZhbHVlRW52ZWxvcGU7XG5cbmludGVyZmFjZSBFdmFsVW5kZWZpbmVkRW52ZWxvcGUge1xuICB0eXBlOiAndW5kZWZpbmVkJztcbn1cblxuaW50ZXJmYWNlIEV2YWxWYWx1ZUVudmVsb3BlIHtcbiAgdmFsdWU6IHVua25vd247XG59XG5cbmNvbnN0IE5PX09VVFBVVCA9ICcobm8gb3V0cHV0KSc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIENvbW1vbkFyZ3VtZW50cy5jbGlja0VsZW1lbnR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsaWNrRWxlbWVudFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgbW91c2UgYnV0dG9uIHRvIHByZXNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJ2xlZnQnYFxuICAgKi9cbiAgcmVhZG9ubHkgYnV0dG9uPzogTW91c2VCdXR0b247XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRvIGNsaWNrLiBUaGUgcG9pbnRlciBpcyBtb3ZlZCB0byBpdHMgY2VudGVyLiBUaGlzIGlzIGEgbGl2ZVxuICAgKiByZW5kZXJlciBET00gbm9kZSBcdTIwMTQgdGhlIGNhbGxiYWNrIHJ1bnMgaW4tcmVuZGVyZXIsIHNvIG5vIGNyb3NzLXByb2Nlc3NcbiAgICogc2VyaWFsaXphdGlvbiBpcyBuZWVkZWQgKHNhbWUgYXMge0BsaW5rIFR5cGVJbnRvRWRpdG9yUGFyYW1zLmVkaXRvcn0pLlxuICAgKi9cbiAgcmVhZG9ubHkgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBtb2RpZmllciBrZXlzIHRvIGhvbGQsIHVzaW5nIE9ic2lkaWFuJ3Mge0BsaW5rIE1vZGlmaWVyfSBuYW1lcy4gYCdNb2QnYFxuICAgKiByZXNvbHZlcyBwZXItcGxhdGZvcm0gKENtZCBvbiBtYWNPUywgQ3RybCBlbHNld2hlcmUpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgW11gXG4gICAqL1xuICByZWFkb25seSBtb2RpZmllcnM/OiByZWFkb25seSBNb2RpZmllcltdO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBDb21tb25Bcmd1bWVudHMuY2xpY2tNb3VzZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpY2tNb3VzZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgbW91c2UgYnV0dG9uIHRvIHByZXNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJ2xlZnQnYFxuICAgKi9cbiAgcmVhZG9ubHkgYnV0dG9uPzogTW91c2VCdXR0b247XG5cbiAgLyoqXG4gICAqIFRoZSBtb2RpZmllciBrZXlzIHRvIGhvbGQsIHVzaW5nIE9ic2lkaWFuJ3Mge0BsaW5rIE1vZGlmaWVyfSBuYW1lcy4gYCdNb2QnYFxuICAgKiByZXNvbHZlcyBwZXItcGxhdGZvcm0gKENtZCBvbiBtYWNPUywgQ3RybCBlbHNld2hlcmUpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgW11gXG4gICAqL1xuICByZWFkb25seSBtb2RpZmllcnM/OiByZWFkb25seSBNb2RpZmllcltdO1xuXG4gIC8qKlxuICAgKiBUaGUgeCBjb29yZGluYXRlICh3ZWItY29udGVudHMgRElQKSB0byBjbGljayBhdC5cbiAgICovXG4gIHJlYWRvbmx5IHg6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHkgY29vcmRpbmF0ZSAod2ViLWNvbnRlbnRzIERJUCkgdG8gY2xpY2sgYXQuXG4gICAqL1xuICByZWFkb25seSB5OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ29tbW9uIGFyZ3VtZW50cyBhdXRvbWF0aWNhbGx5IHByb3ZpZGVkIHRvIGV2ZXJ5IHtAbGluayBldmFsSW5PYnNpZGlhbn0gY2FsbGJhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uQXJndW1lbnRzIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiB7QGxpbmsgQXBwfSBpbnN0YW5jZS5cbiAgICovXG4gIGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgc2hhcmVkIGxpYnJhcnkgYmFnIGluamVjdGVkIGludG8gZXZlcnkgY2FsbGJhY2sgXHUyMDE0IHNlZSB7QGxpbmsgTGlifS5cbiAgICpcbiAgICogTmV2ZXIgZW1wdHk6IHRoZSBoYXJuZXNzIHByZS1wb3B1bGF0ZXMgYSAqKmJhc2UqKiBzZXQgb2YgcmVuZGVyZXItZHJpdmluZ1xuICAgKiBoZWxwZXJzICh0cnVzdGVkIGlucHV0IFx1MjAxNCBgdHlwZUludG9FZGl0b3JgIC8gYHByZXNzS2V5YCAvIGBtb3ZlTW91c2VgIC9cbiAgICogYGNsaWNrTW91c2VgIC8gYGhvdmVyRWxlbWVudGAgLyBgdW5ob3ZlckVsZW1lbnRgIC8gYGNsaWNrRWxlbWVudGAgXHUyMDE0IHBsdXNcbiAgICogYHdhaXRVbnRpbGAsIGBjcmVhdGVOb3RlYCBhbmQgYG9wZW5TZXR0aW5nc1RhYmApLCBhbmQgcHJvdmlkZXIgcGFja2FnZXNcbiAgICogKGNoaWVmbHkgYG9ic2lkaWFuLWRldi11dGlsc2ApIGBPYmplY3QuYXNzaWduYCB0aGVpciB3aG9sZSByZW5kZXJlci1zYWZlXG4gICAqIGxpYnJhcnkgb24gdG9wIHZpYSB7QGxpbmsgcmVnaXN0ZXJMaWJSZXNvbHZlcn0uIEEgc2VyaWFsaXplZCBjbG9zdXJlIHJlYWNoZXNcbiAgICogZXZlcnkgc2hhcmVkIGhlbHBlciB0aHJvdWdoIGBsaWJgIFx1MjAxNCBgbGliLnR5cGVJbnRvRWRpdG9yKHsgZWRpdG9yLCB0ZXh0IH0pYCxcbiAgICogYGxpYi5nZXRGaWxlT3JOdWxsKHsgYXBwLCBcdTIwMjYgfSlgIFx1MjAxNCBpbnN0ZWFkIG9mIGltcG9ydGluZyBvciBoYW5kLXJvbGxpbmcgdGhlbS5cbiAgICovXG4gIGxpYjogTGliO1xuXG4gIC8qKlxuICAgKiBUaGUgYG9ic2lkaWFuYCBtb2R1bGUsIHJlc29sdmVkIGF0IHJ1bnRpbWUgaW5zaWRlIHRoZSBPYnNpZGlhbiBwcm9jZXNzLlxuICAgKi9cbiAgb2JzaWRpYW5Nb2R1bGU6IHR5cGVvZiBvYnNpZGlhbjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgQ29tbW9uQXJndW1lbnRzLmNyZWF0ZU5vdGV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU5vdGVQYXJhbXMge1xuICAvKipcbiAgICogVGhlIG5vdGUncyBjb250ZW50LiBUaGlzIGV4YWN0IHN0cmluZyBpcyB3aGF0IHRoZSBjcmVhdGVkIG5vdGUgaXMgcmVhZCBiYWNrXG4gICAqIGFnYWluc3QsIHNvIGl0IGlzIHRoZSBkZWZpbml0aW9uIG9mIGEgc3VjY2Vzc2Z1bCB3cml0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIHBhdGggdG8gY3JlYXRlLCBleHRlbnNpb24gaW5jbHVkZWQuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGV2YWxJbk9ic2lkaWFufS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsSW5PYnNpZGlhblBhcmFtczxJbnB1dCBleHRlbmRzIEdlbmVyaWNPYmplY3QsIFJlc3VsdCwgVENvbnRleHRJZCBleHRlbmRzIENvbnRleHRJZDx1bmtub3duPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZD4ge1xuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRvIGV2YWx1YXRlIGluIHRoZSBPYnNpZGlhbiBjb250ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgY2FsbGJhY2s6IChpbnB1dDogQ29tbW9uQXJndW1lbnRzICYgQ29udGV4dEFyZ3VtZW50czxUQ29udGV4dElkPiAmIElucHV0KSA9PiBQcm9taXNhYmxlPFJlc3VsdD47XG5cbiAgLyoqXG4gICAqIEEge0BsaW5rIENvbnRleHRJZH0gbGlua2luZyB0aGlzIGNhbGwgdG8gYSBwZXJzaXN0ZW50IHN0b3JlIG9uIGB3aW5kb3dgXG4gICAqIGluIHRoZSBPYnNpZGlhbiBwcm9jZXNzLiBUaGUgY2FsbGJhY2sgcmVjZWl2ZXMgYSB0eXBlZCBgY29udGV4dGAgb2JqZWN0XG4gICAqIHRoYXQgc3Vydml2ZXMgYWNyb3NzIGNhbGxzIHNoYXJpbmcgdGhlIHNhbWUgSUQuXG4gICAqXG4gICAqIFdoZW4gb21pdHRlZCwgYGNvbnRleHRgIGlzIGEgZnJlc2ggZW1wdHkgb2JqZWN0IGVhY2ggY2FsbC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRJZD86IFRDb250ZXh0SWQ7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGZ1bmN0aW9uLiBWYWx1ZXMgbWF5IGluY2x1ZGUgZnVuY3Rpb25zIFx1MjAxNFxuICAgKiB0aGV5IGFyZSBzZXJpYWxpemVkIHZpYSBgdG9TdHJpbmcoKWAuXG4gICAqL1xuICByZWFkb25seSBpbnB1dD86IElucHV0O1xuXG4gIC8qKlxuICAgKiBTa2lwcyBwcmUtZmxpZ2h0IGNoZWNrcyAodmF1bHQgcmVnaXN0cmF0aW9uLCBDTEkgYXZhaWxhYmlsaXR5KS5cbiAgICogVXNlZCBpbnRlcm5hbGx5IGJ5IHZhdWx0IHJlZ2lzdHJhdGlvbiBmdW5jdGlvbnMuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2tpcFByZWZsaWdodENoZWNrcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSB0cmFuc3BvcnQgZm9yIHRoaXMgY2FsbC4gV2hlbiBvbWl0dGVkLCB1c2VzIHRoZSB0cmFuc3BvcnRcbiAgICogY29uZmlndXJlZCB2aWEgdGhlIGNvbnRleHQgcHJvdmlkZXIgKHNldCBieSB0aGUgZnJhbWV3b3JrIGFkYXB0ZXIncyBnbG9iYWwgc2V0dXApLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNwb3J0PzogT2JzaWRpYW5UcmFuc3BvcnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHRoZSBPYnNpZGlhbiB2YXVsdC4gRGVmYXVsdHMgdG8gYHByb2Nlc3MuY3dkKClgLlxuICAgKi9cbiAgcmVhZG9ubHkgdmF1bHRQYXRoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgcGxhaW4gb2JqZWN0IHdpdGggc3RyaW5nIGtleXMuXG4gKi9cbmV4cG9ydCB0eXBlIEdlbmVyaWNPYmplY3QgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgQ29tbW9uQXJndW1lbnRzLmhvdmVyRWxlbWVudH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG92ZXJFbGVtZW50UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRvIGhvdmVyLiBUaGUgcG9pbnRlciBpcyBtb3ZlZCB0byBpdHMgY2VudGVyLiBUaGlzIGlzIGEgbGl2ZVxuICAgKiByZW5kZXJlciBET00gbm9kZSBcdTIwMTQgdGhlIGNhbGxiYWNrIHJ1bnMgaW4tcmVuZGVyZXIsIHNvIG5vIGNyb3NzLXByb2Nlc3NcbiAgICogc2VyaWFsaXphdGlvbiBpcyBuZWVkZWQgKHNhbWUgYXMge0BsaW5rIFR5cGVJbnRvRWRpdG9yUGFyYW1zLmVkaXRvcn0pLlxuICAgKi9cbiAgcmVhZG9ubHkgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG59XG5cbi8qKlxuICogVGhlIHNoYXJlZCBsaWJyYXJ5IGJhZyBpbmplY3RlZCBpbnRvIGV2ZXJ5IHtAbGluayBldmFsSW5PYnNpZGlhbn0gY2FsbGJhY2sgYXNcbiAqIHtAbGluayBDb21tb25Bcmd1bWVudHMubGlifS5cbiAqXG4gKiBUd28gbGF5ZXJzIGNvbXBvc2UgaW50byB0aGlzIG9uZSBiYWcuIFRoZSAqKmJhc2UqKiBcdTIwMTQgdGhlIGhhcm5lc3MtcHJvdmlkZWRcbiAqIHJlbmRlcmVyLWRyaXZpbmcgaGVscGVycyBkZWNsYXJlZCBiZWxvdyAodGhlIHRydXN0ZWQtaW5wdXQgcHJpbWl0aXZlcyBhbmRcbiAqIHtAbGluayBMaWIud2FpdFVudGlsfSkgXHUyMDE0IGlzIGFsd2F5cyBwcmVzZW50LiBPbiB0b3AsIHByb3ZpZGVyIHBhY2thZ2VzIHJlZ2lzdGVyXG4gKiBhIHJlbmRlcmVyLXNpZGUgcmVzb2x2ZXIgdmlhIHtAbGluayByZWdpc3RlckxpYlJlc29sdmVyfSB0byBgT2JqZWN0LmFzc2lnbmBcbiAqIHRoZWlyIHdob2xlIHJlbmRlcmVyLXNhZmUgbGlicmFyeSBhdCBydW50aW1lLCBhbmQgYXVnbWVudCB0aGlzICoqYXVnbWVudGFibGUqKlxuICogaW50ZXJmYWNlICh0aGUgYGkxOG5leHRgIGBDdXN0b21UeXBlT3B0aW9uc2AgaWRpb20pIHZpYVxuICogYGRlY2xhcmUgbW9kdWxlICdvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nJ2AgdG8gdHlwZSBpdC4gTXVsdGlwbGUgcHJvdmlkZXJzXG4gKiBjb21wb3NlOiB0aGVpciBleHBvcnRzIG1lcmdlIGF0IHJ1bnRpbWUgYW5kIHRoZWlyIGF1Z21lbnRhdGlvbnMgbWVyZ2UgaW4gdGhlXG4gKiB0eXBlIHN5c3RlbSAoYGludGVyZmFjZSBMaWIgZXh0ZW5kcyBcdTIwMjZgKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGRlY2xhcmUgbW9kdWxlICdvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nJyB7XG4gKiAgIGludGVyZmFjZSBMaWIgZXh0ZW5kcyAodHlwZW9mIGltcG9ydCgnb2JzaWRpYW4tZGV2LXV0aWxzL19fbWVyZ2VkJykpIHt9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWIge1xuICAvKipcbiAgICogQ2xpY2tzIHRoZSBjZW50ZXIgb2YgYW4gZWxlbWVudCB1c2luZyAqKnRydXN0ZWQqKiBwb2ludGVyIGlucHV0IFx1MjAxNCBFbGVjdHJvbidzXG4gICAqIGBzZW5kSW5wdXRFdmVudGAgb24gZGVza3RvcCwgYSBDRFAgdG91Y2ggdGFwIGluIHRoZSBXZWJWaWV3IG9uIG1vYmlsZS5cbiAgICpcbiAgICogVGhlIGVsZW1lbnQtcmVsYXRpdmUgY291bnRlcnBhcnQgb2Yge0BsaW5rIExpYi5jbGlja01vdXNlfSwgbWlycm9yaW5nIHRoZVxuICAgKiB7QGxpbmsgTGliLm1vdmVNb3VzZX0gLyB7QGxpbmsgTGliLmhvdmVyRWxlbWVudH0gc3BsaXQuIFVzZVxuICAgKiB7QGxpbmsgTGliLmNsaWNrTW91c2V9IGRpcmVjdGx5IHdoZW4gdGhlIHBvaW50IHRvIGNsaWNrIGlzICoqbm90KiogdGhlXG4gICAqIGVsZW1lbnQncyBjZW50ZXIgXHUyMDE0IHRoZSBtYXJrZG93biBlZGl0b3IncyBtYXJnaW4sIGZvciBpbnN0YW5jZSwgbGllcyBpbnNpZGVcbiAgICogYGNtLnNjcm9sbERPTWAgYnV0IG91dHNpZGUgYC5jbS1zaXplcmAsIHNvIG5vIGVsZW1lbnQncyBjZW50ZXIgbGFuZHMgb24gaXQuXG4gICAqXG4gICAqICoqTXVzdCBiZSBhd2FpdGVkLioqIE9uIG1vYmlsZSB0aGUgaW5qZWN0aW9uIGlzIGEgcm91bmQtdHJpcCB0byB0aGUgaG9zdCBcdTIwMTRcbiAgICogdGhlIHJlbmRlcmVyIGNhbm5vdCBwcm9kdWNlIGEgdHJ1c3RlZCBldmVudCBpdHNlbGYgXHUyMDE0IHNvIGEgbWlzc2luZyBgYXdhaXRgXG4gICAqIHdvdWxkIGxldCB0aGUgYXNzZXJ0aW9uIHJ1biBiZWZvcmUgdGhlIGNsaWNrIGxhbmRlZC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBlbGVtZW50IHRvIGNsaWNrLCB0aGUgYnV0dG9uIHRvIHByZXNzIGFuZCBhbnkgbW9kaWZpZXJzXG4gICAqICAgdG8gaG9sZC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBjbGljayBoYXMgYmVlbiBpbmplY3RlZC5cbiAgICovXG4gIGNsaWNrRWxlbWVudDogKHRoaXM6IHZvaWQsIHBhcmFtczogQ2xpY2tFbGVtZW50UGFyYW1zKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBDbGlja3MgYXQgdGhlIGdpdmVuIHdlYi1jb250ZW50cyBjb29yZGluYXRlcyB1c2luZyAqKnRydXN0ZWQqKiBFbGVjdHJvblxuICAgKiBwb2ludGVyIGlucHV0LCBzbyBDaHJvbWl1bSBzeW50aGVzaXplcyBhIHJlYWwgYGNsaWNrYCAob3IgYGNvbnRleHRtZW51YCxcbiAgICogZm9yIHRoZSByaWdodCBidXR0b24pIHdpdGggYGlzVHJ1c3RlZCA9PT0gdHJ1ZWAuXG4gICAqXG4gICAqIFRoaXMgaXMgd2hhdCBgZWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCdjbGljaycpKWAgY2Fubm90IGRvOlxuICAgKiBPYnNpZGlhbiBhbmQgQ29kZU1pcnJvciBnYXRlIG9uIGBpc1RydXN0ZWRgLCBzbyBhIGRpc3BhdGNoZWQgZXZlbnQgc2lsZW50bHlcbiAgICogZXhlcmNpc2VzIG5vdGhpbmcgd2hpbGUgdGhlIHRlc3Qgc3RpbGwgcGFzc2VzIHdoYXRldmVyIHdlYWtlciBhc3NlcnRpb24gaXRcbiAgICogbWFrZXMuIE9ic2lkaWFuIDEuMTMuNydzIG1hcmtkb3duIHZpZXdwb3J0IChtYXJnaW4pIG1lbnUsIGZvciBleGFtcGxlLFxuICAgKiBvcGVucyBmcm9tIGEgYGNtLnNjcm9sbERPTWAgYGNvbnRleHRtZW51YCBsaXN0ZW5lciBndWFyZGVkIGJ5XG4gICAqIGBlLmlzVHJ1c3RlZGAsIHdoaWNoIGEgZGlzcGF0Y2hlZCBldmVudCBuZXZlciBnZXRzIHBhc3QuXG4gICAqXG4gICAqIEl0IGlzIHRoZSBsb3ctbGV2ZWwgcHJpbWl0aXZlOiBhIHNpbmdsZSB0cnVzdGVkIGBtb3VzZU1vdmVgIFx1MjE5MiBgbW91c2VEb3duYCBcdTIxOTJcbiAgICogYG1vdXNlVXBgIGF0IG9uZSBwb2ludCwgd2l0aCBubyB3YWl0aW5nIGZvciBhbnkgZWZmZWN0IChjYWxsZXJzIHBvbGwgdGhlaXJcbiAgICogb3duIHJlYWRpbmVzcyBzaWduYWwpLiBUaGUgbGVhZGluZyBtb3ZlIGlzIHdoYXQgcHV0cyB0aGUgcG9pbnRlciBvdmVyIHRoZVxuICAgKiBoaXQtdGVzdCB0YXJnZXQgYmVmb3JlIHRoZSBidXR0b24gZ29lcyBkb3duLiBQcmVmZXJcbiAgICoge0BsaW5rIExpYi5jbGlja0VsZW1lbnR9IGZvciBlbGVtZW50LXJlbGF0aXZlIGNsaWNrcy5cbiAgICpcbiAgICogQSByZWFsIGNvbnRleHQgbWVudSBhY3R1YWxseSBvcGVucywgc28gYSBzdWl0ZSBkcml2aW5nIGEgcmlnaHQgY2xpY2sgbXVzdFxuICAgKiBjbG9zZSBpdCAob3IgcmVtb3ZlIHRoZSBsZWZ0b3ZlciBgLm1lbnVgIGVsZW1lbnQpIGJlZm9yZSB0aGUgbmV4dCB0ZXN0LlxuICAgKlxuICAgKiAqKk9uIG1vYmlsZSoqIHRoZSBidXR0b24gbW9kZWwgZG9lcyBub3Qgc3Vydml2ZSB0aGUgcG9ydDogdG91Y2ggaGFzIG5vXG4gICAqIGJ1dHRvbnMsIHNvIGAnbGVmdCdgICh0aGUgZGVmYXVsdCkgaXMgYSAqKnRhcCoqLCBgJ3JpZ2h0J2AgaXMgdGhlXG4gICAqICoqbG9uZy1wcmVzcyoqIHRoYXQgb3BlbnMgT2JzaWRpYW4gTW9iaWxlJ3MgY29udGV4dCBtZW51LCBhbmQgYCdtaWRkbGUnYFxuICAgKiB0aHJvd3MgXHUyMDE0IHRoZXJlIGlzIG5vIGdlc3R1cmUgZm9yIGl0LCBhbmQgaW52ZW50aW5nIG9uZSB3b3VsZCBiZSB3b3JzZSB0aGFuXG4gICAqIHNheWluZyBzby4gVGhlIGNvb3JkaW5hdGVzIGFyZSBDU1MgcGl4ZWxzIGluIHRoZSBXZWJWaWV3J3Mgb3duIHZpZXdwb3J0LFxuICAgKiB3aGljaCBpcyB3aGF0IENEUCB0YWtlcywgc28gYGRldmljZVBpeGVsUmF0aW9gIG5ldmVyIGVudGVycyB0aGUgcGljdHVyZS5cbiAgICpcbiAgICogKipNdXN0IGJlIGF3YWl0ZWQqKiBcdTIwMTQgc2VlIHtAbGluayBMaWIuY2xpY2tFbGVtZW50fS5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSB3ZWItY29udGVudHMgRElQIGNvb3JkaW5hdGVzIHRvIGNsaWNrIGF0LCB0aGUgYnV0dG9uIHRvXG4gICAqICAgcHJlc3MgYW5kIGFueSBtb2RpZmllcnMgdG8gaG9sZC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBjbGljayBoYXMgYmVlbiBpbmplY3RlZC5cbiAgICovXG4gIGNsaWNrTW91c2U6ICh0aGlzOiB2b2lkLCBwYXJhbXM6IENsaWNrTW91c2VQYXJhbXMpID0+IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBub3RlIGFuZCBkb2VzIG5vdCByZXR1cm4gdW50aWwgaXRzIGNvbnRlbnQgaXMgdmVyaWZpYWJseSBvblxuICAgKiBkaXNrLCByZXdyaXRpbmcgaXQgaWYgaXQgaXMgbm90LlxuICAgKlxuICAgKiBVc2UgdGhpcyBpbnN0ZWFkIG9mIGBhcHAudmF1bHQuY3JlYXRlYCBpbiBhbnkgc3VpdGUgdGhhdCBtYXkgcnVuIG9uXG4gICAqIEFuZHJvaWQuIFRoZSBlbXVsYXRvciB0cmFuc3BvcnQgbG9zZXMgcm91Z2hseSAqKjAuOSAlKiogb2YgYHZhdWx0LmNyZWF0ZWBcbiAgICogd3JpdGVzIChtZWFzdXJlZDogNyBsb3N0IGluIDgwMCBjcmVhdGVzKTogdGhlIGZpbGUgbGFuZHMgKiowIGJ5dGVzKiogb25cbiAgICogZGlzayB3aGlsZSBPYnNpZGlhbidzIGluLW1lbW9yeSBgVEZpbGUuc3RhdGAgcmVwb3J0cyB0aGUgZnVsbCBieXRlIGNvdW50LFxuICAgKiBhbmQgaXQgZG9lcyBub3QgaGVhbCBvbiBpdHMgb3duLiBBIHN1aXRlIGRvaW5nIH4zNCBjcmVhdGVzIHBlciBydW5cbiAgICogdGhlcmVmb3JlIGhhcyBhIH4yNiAlIGNoYW5jZSBvZiBhdCBsZWFzdCBvbmUgbG9zdCB3cml0ZSwgYW5kIHdoaWNoZXZlciB0ZXN0XG4gICAqIGxvc2VzIHRoYXQgbG90dGVyeSBmYWlscyBvbiBhIGB3YWl0VW50aWxgIGZvciBjb250ZW50IHRoYXQgd2FzIG5ldmVyXG4gICAqIHdyaXR0ZW4gXHUyMDE0IHdoaWNoIGlzIHdoeSBpdCByZWFkcyBhcyBhbiB1bnJlbGF0ZWQgcGVyLXRlc3QgZmxha2UgcmF0aGVyIHRoYW5cbiAgICogb25lIHNoYXJlZCBjYXVzZS5cbiAgICpcbiAgICogVmVyaWZpY2F0aW9uIGlzIGJ5ICoqcmVhZGluZyB0aGUgbm90ZSBiYWNrKiosIG5ldmVyIGJ5IGluc3BlY3RpbmdcbiAgICogYFRGaWxlLnN0YXRgOiBgc3RhdGAgaXMgZXhhY3RseSB0aGUgZmllbGQgdGhhdCBsaWVzIGhlcmUuIEEgcmV3cml0ZSB0aHJvdWdoXG4gICAqIGB2YXVsdC5tb2RpZnlgIHdpdGggdGhlIHNhbWUgY29udGVudCBsYW5kcyBjb3JyZWN0bHkgKGFsc28gbWVhc3VyZWQpLCBzbyBhXG4gICAqIGxvc3Qgd3JpdGUgY29zdHMgYSByZXRyeSByYXRoZXIgdGhhbiBhIGZhaWx1cmUuIEEgbm90ZSB3aG9zZSBjb250ZW50IHN0aWxsXG4gICAqIGRvZXMgbm90IG1hdGNoIGFmdGVyIHRoZSBib3VuZGVkIHJldHJpZXMgdGhyb3dzLCBuYW1pbmcgdGhlIHBhdGggYW5kIGJvdGhcbiAgICogbGVuZ3Rocywgc28gYSBnZW51aW5lbHkgYnJva2VuIHdyaXRlIGZhaWxzIGxvdWRseSBpbnN0ZWFkIG9mIHNwaW5uaW5nLlxuICAgKlxuICAgKiBIYXJtbGVzcyBldmVyeXdoZXJlIGVsc2UgXHUyMDE0IG9uIGEgdHJhbnNwb3J0IHRoYXQgZG9lcyBub3QgbG9zZSB3cml0ZXMgdGhlXG4gICAqIHJlYWQtYmFjayBtYXRjaGVzIGZpcnN0IHRpbWUgYW5kIG5vdGhpbmcgaXMgcmV3cml0dGVuLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIG5vdGUgcGF0aCBhbmQgY29udGVudC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gcmVzb2x2aW5nIHRvIHRoZSBjcmVhdGVkIGZpbGUsIG9uY2UgaXRzIGNvbnRlbnRcbiAgICogICBpcyBjb25maXJtZWQuXG4gICAqL1xuICBjcmVhdGVOb3RlOiAodGhpczogdm9pZCwgcGFyYW1zOiBDcmVhdGVOb3RlUGFyYW1zKSA9PiBQcm9taXNlPFRGaWxlPjtcblxuICAvKipcbiAgICogTW92ZXMgdGhlIG1vdXNlIHBvaW50ZXIgdG8gdGhlIGNlbnRlciBvZiBhbiBlbGVtZW50IHVzaW5nICoqdHJ1c3RlZCoqXG4gICAqIEVsZWN0cm9uIHBvaW50ZXIgaW5wdXQsIHRoZW4gcG9sbHMgdW50aWwgdGhlIGVsZW1lbnQgYWN0dWFsbHkgbWF0Y2hlc1xuICAgKiBgOmhvdmVyYC5cbiAgICpcbiAgICogQmVjYXVzZSB0aGUgbW92ZSBpcyB0cnVzdGVkIChzZWUge0BsaW5rIExpYi5tb3ZlTW91c2V9KSwgdGhlIHJlYWwgYDpob3ZlcmBcbiAgICogc3RhdGUgdGFrZXMgZWZmZWN0IGluIHRoZSBDU1MgZW5naW5lIFx1MjAxNCByZWFsIHRoZW1lIGB2YXIoKWAgdmFsdWVzIGFuZCByZWFsXG4gICAqIGNvbXBvc2l0aW5nIFx1MjAxNCBpbnN0ZWFkIG9mIGEgaGFuZC1zaW11bGF0ZWQgY2FzY2FkZS4gSXQgcG9sbHMgdGhlIGxpdmVcbiAgICogYGVsZW1lbnQubWF0Y2hlcygnOmhvdmVyJylgIHN0YXRlIChub3QgYSBmaXhlZCBkZWxheSksIHNvIGl0IGlzIHJvYnVzdCB1bmRlclxuICAgKiBzaGFyZWQtaW5zdGFuY2UgbG9hZC4gSXQgdGFyZ2V0cyB0aGUgc2luZ2xlIHNoYXJlZCB3aW5kb3cncyAqKmdsb2JhbCoqXG4gICAqIHBvaW50ZXIsIHNvIG9ubHkgb25lIGVsZW1lbnQgaXMgaG92ZXJlZCBhdCBhIHRpbWUuXG4gICAqXG4gICAqICoqRGVza3RvcCBvbmx5IFx1MjAxNCBpdCB0aHJvd3Mgb24gbW9iaWxlKiosIGRlbGliZXJhdGVseTogdG91Y2ggaW5wdXQgaGFzIG5vXG4gICAqIGhvdmVyIHN0YXRlLCBzbyB0aGVyZSBpcyBub3RoaW5nIGZhaXRoZnVsIHRvIGluamVjdC4gQSBzaWxlbnQgbm8tb3Agd291bGRcbiAgICogbGVhdmUgYSB0ZXN0IGFzc2VydGluZyBhZ2FpbnN0IGEgaG92ZXIgdGhhdCBuZXZlciBoYXBwZW5lZCwgd2hpY2ggaXMgdGhlXG4gICAqIGV4YWN0IGZhbHNlLWNvbmZpZGVuY2UgZmFpbHVyZSB0cnVzdGVkIGlucHV0IGV4aXN0cyB0byBwcmV2ZW50LiBCcmFuY2ggb25cbiAgICogYFBsYXRmb3JtLmlzRGVza3RvcEFwcGAsIG9yIGRyaXZlIHRoZSBlbGVtZW50IHdpdGgge0BsaW5rIExpYi5jbGlja0VsZW1lbnR9LlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGVsZW1lbnQgdG8gaG92ZXIuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgZWxlbWVudCBtYXRjaGVzIGA6aG92ZXJgLlxuICAgKiBAdGhyb3dzIFdoZW4gdGhlIGVsZW1lbnQgbmV2ZXIgbWF0Y2hlcyBgOmhvdmVyYC4gUmVzb2x2aW5nIHF1aWV0bHkgdGhlcmVcbiAgICogICB3b3VsZCBsZXQgYSB0ZXN0IHJlYWQgYW4gZWxlbWVudCB0aGF0IGlzIG5vdCBob3ZlcmVkIGFuZCBwYXNzIG9uIHdoYXRldmVyXG4gICAqICAgaXRzIGJhc2Ugc3R5bGUgaGFwcGVucyB0byBiZS5cbiAgICovXG4gIGhvdmVyRWxlbWVudDogKHRoaXM6IHZvaWQsIHBhcmFtczogSG92ZXJFbGVtZW50UGFyYW1zKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBNb3ZlcyB0aGUgbW91c2UgcG9pbnRlciB0byB0aGUgZ2l2ZW4gd2ViLWNvbnRlbnRzIGNvb3JkaW5hdGVzIHVzaW5nIGFcbiAgICogKip0cnVzdGVkKiogRWxlY3Ryb24gcG9pbnRlciBtb3ZlLlxuICAgKlxuICAgKiBBIHRydXN0ZWQgbW92ZSAoaW5qZWN0ZWQgdmlhIEVsZWN0cm9uJ3MgYHdlYkNvbnRlbnRzLnNlbmRJbnB1dEV2ZW50YClcbiAgICogdXBkYXRlcyB0aGUgcmVhbCBwb2ludGVyIHN0YXRlIGluIHRoZSBDU1MgZW5naW5lLCBzbyBgOmhvdmVyYCBydWxlc1xuICAgKiBnZW51aW5lbHkgYXBwbHkgXHUyMDE0IHVubGlrZSBgZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgnbW91c2VvdmVyJykpYCxcbiAgICogd2hpY2ggaXMgdW50cnVzdGVkIGFuZCBuZXZlciBzZXRzIGA6aG92ZXJgLiBJdCB0YXJnZXRzIHRoZSBzaW5nbGUgc2hhcmVkXG4gICAqIHdpbmRvdydzICoqZ2xvYmFsKiogcG9pbnRlciwgc28gb25seSBvbmUgZWxlbWVudCBpcyBob3ZlcmVkIGF0IGEgdGltZS5cbiAgICpcbiAgICogVGhpcyBpcyB0aGUgbG93LWxldmVsIHByaW1pdGl2ZTogaXQgcGVyZm9ybXMgYSBzaW5nbGUgbW92ZSBhbmQgZG9lcyAqKm5vdCoqXG4gICAqIHdhaXQgZm9yIGFueSBzdGF0ZSB0byBzZXR0bGUgKGNhbGxlcnMgcG9sbCB0aGVpciBvd24gcmVhZGluZXNzIHNpZ25hbCkuXG4gICAqIFByZWZlciB7QGxpbmsgTGliLmhvdmVyRWxlbWVudH0gLyB7QGxpbmsgTGliLnVuaG92ZXJFbGVtZW50fSBmb3JcbiAgICogZWxlbWVudC1yZWxhdGl2ZSBtb3ZlczsgdXNlIGBtb3ZlTW91c2VgIGRpcmVjdGx5IHdoZW4gYW4gZWxlbWVudC1yZWxhdGl2ZVxuICAgKiB0YXJnZXQgZG9lcyBub3QgZml0IChlLmcuIGFuIGVsZW1lbnQgc3Bhbm5pbmcgdGhlIGZ1bGwgdmlld3BvcnQgd2lkdGgpLlxuICAgKlxuICAgKiAqKkRlc2t0b3Agb25seSBcdTIwMTQgaXQgdGhyb3dzIG9uIG1vYmlsZSoqLCBmb3IgdGhlIHNhbWUgcmVhc29uIGFzXG4gICAqIHtAbGluayBMaWIuaG92ZXJFbGVtZW50fTogdGhlcmUgaXMgbm8gdG91Y2ggcG9pbnRlciB0byBtb3ZlLlxuICAgKlxuICAgKiAqKk11c3QgYmUgYXdhaXRlZCoqIFx1MjAxNCBzZWUge0BsaW5rIExpYi5jbGlja0VsZW1lbnR9LlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHdlYi1jb250ZW50cyBESVAgY29vcmRpbmF0ZXMgdG8gbW92ZSB0by5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBtb3ZlIGhhcyBiZWVuIGluamVjdGVkLlxuICAgKi9cbiAgbW92ZU1vdXNlOiAodGhpczogdm9pZCwgcGFyYW1zOiBNb3ZlTW91c2VQYXJhbXMpID0+IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIE9wZW5zIE9ic2lkaWFuJ3Mgc2V0dGluZ3MgbW9kYWwgb24gYSBnaXZlbiB0YWIsIGFuZCBkb2VzIG5vdCByZXR1cm4gdW50aWxcbiAgICogdGhhdCB0YWIgaGFzIGFjdHVhbGx5IHJlbmRlcmVkLlxuICAgKlxuICAgKiAqKlRoaXMgZXhpc3RzIGJlY2F1c2UgYGFwcC5zZXR0aW5nLm9wZW4oKWAgb24gaXRzIG93biBkb2VzIG5vdCB3b3JrIGZyb20gYVxuICAgKiB0ZXN0LioqIGBhcHAuc2V0dGluZy5jb250YWluZXJFbGAgaXMgYnVpbHQgYXQgc3RhcnR1cCBidXQgaXMgbmV2ZXIgaW4gdGhlXG4gICAqIGRvY3VtZW50LCBhbmQgYG9wZW4oKWAgZG9lcyBub3QgYXR0YWNoIGl0IFx1MjAxNCBzbyB0aGUgbW9kYWwgYnVpbGRzIGludG8gYVxuICAgKiBkZXRhY2hlZCB0cmVlLCBgb3BlbigpYCByZXR1cm5zIHdpdGhvdXQgdGhyb3dpbmcsIGFuZCBhIHNjcmVlbnNob3QgdGFrZW5cbiAgICogYWZ0ZXJ3YXJkcyBzaG93cyB0aGUgdW50b3VjaGVkIGRvY3VtZW50LiBUaGF0IGlzIHdoYXQgbWFkZSB0aGUgc2V0dGluZ3MgdGFiXG4gICAqIGxvb2sgaW1wb3NzaWJsZSB0byBjYXB0dXJlLCBhbmQgZ290IHJlY29yZGVkIGFzIHN1Y2ggaW4gdHdvIHBsdWdpbnMuXG4gICAqXG4gICAqIFRoZSBmaXggaXMgb25lIHN0ZXAsIGFuZCBpdHMgKipvcmRlciBpcyBsb2FkLWJlYXJpbmcqKjogdGhlIGNvbnRhaW5lciBpc1xuICAgKiBhcHBlbmRlZCB0byBgZG9jdW1lbnQuYm9keWAgKipiZWZvcmUqKiBgb3BlbigpYC4gQXR0YWNoaW5nIGFmdGVyd2FyZHMgaXMgdG9vXG4gICAqIGxhdGUgXHUyMDE0IHdoYXRldmVyIHRoZSBtb2RhbCBkcmV3IG9uIG9wZW4gaGFzIGFscmVhZHkgZ29uZSBpbnRvIHRoZSBkZXRhY2hlZFxuICAgKiBjb250YWluZXIsIHNvIGl0IGVuZHMgdXAgb24gc2NyZWVuIHNob3dpbmcgdGhlIHdyb25nIHRoaW5nLiBUaGF0IGZhaWx1cmVcbiAgICogbG9va3MgbGlrZSBzdWNjZXNzIHVudGlsIHRoZSBjYXB0dXJlZCBmcmFtZSBpcyBleGFtaW5lZCwgd2hpY2ggaXMgdGhlIHRyYXBcbiAgICogdGhpcyBoZWxwZXIgZXhpc3RzIHRvIHJlbW92ZS5cbiAgICpcbiAgICogUmUtYXR0YWNoaW5nIGlzIGlkZW1wb3RlbnQsIHNvIGEgdGFiIGNsb3NlZCB3aXRoIGBhcHAuc2V0dGluZy5jbG9zZSgpYCBjYW5cbiAgICogc2ltcGx5IGJlIHJlLW9wZW5lZC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSB0YWIgdG8gb3BlbiBhbmQgaG93IGxvbmcgdG8gd2FpdCBmb3IgaXQgdG8gcmVuZGVyLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSByZXNvbHZpbmcgdG8gdGhlIG5hbWVzIG9mIHRoZSBzZXR0aW5nIHJvd3MgdGhlXG4gICAqICAgdGFiIHJlbmRlcmVkIFx1MjAxNCBib3RoIHRoZSBwcm9vZiBpdCByZW5kZXJlZCBhbmQgd2hhdCBhIGNhbGxlciBhc3NlcnRzIG9uLiBBXG4gICAqICAgdGFiIHRoYXQgbGVnaXRpbWF0ZWx5IHJlbmRlcnMgbm8gYC5zZXR0aW5nLWl0ZW0tbmFtZWAgcm93cyAoSG90a2V5cywgc2F5KVxuICAgKiAgIHJlc29sdmVzIHRvIGFuIGVtcHR5IGFycmF5LlxuICAgKiBAdGhyb3dzIEVycm9yIGlmIG5vIHRhYiBjYXJyaWVzIHtAbGluayBPcGVuU2V0dGluZ3NUYWJQYXJhbXMudGFiSWR9LCBvciBpZlxuICAgKiAgIHRoZSB0YWIgZG9lcyBub3QgcmVuZGVyIHdpdGhpbiB0aGUgdGltZW91dC5cbiAgICovXG4gIG9wZW5TZXR0aW5nc1RhYjogKHRoaXM6IHZvaWQsIHBhcmFtczogT3BlblNldHRpbmdzVGFiUGFyYW1zKSA9PiBQcm9taXNlPHN0cmluZ1tdPjtcblxuICAvKipcbiAgICogUHJlc3NlcyBhIHNpbmdsZSBrZXkgKG9wdGlvbmFsbHkgd2l0aCBtb2RpZmllcnMpIHVzaW5nICoqdHJ1c3RlZCoqIEVsZWN0cm9uXG4gICAqIGtleWJvYXJkIGlucHV0LCBmaXJpbmcgdGhlIGZ1bGwgcmVhbCBrZXkgcGlwZWxpbmUgXHUyMDE0XG4gICAqIGBrZXlkb3duYCBcdTIxOTIgYGtleXByZXNzYCBcdTIxOTIgYGJlZm9yZWlucHV0YCBcdTIxOTIgYGlucHV0YCBcdTIxOTIgYGtleXVwYC5cbiAgICpcbiAgICogVGhpcyBpcyB0aGUga2V5LXByZXNzIGFuYWxvZyBvZiB7QGxpbmsgTGliLnR5cGVJbnRvRWRpdG9yfTogaXQgaW5qZWN0cyBhXG4gICAqIHRydXN0ZWQgYGtleURvd25gIFx1MjE5MiBgY2hhcmAgXHUyMTkyIGBrZXlVcGAgc2VxdWVuY2UgdmlhIEVsZWN0cm9uJ3NcbiAgICogYHdlYkNvbnRlbnRzLnNlbmRJbnB1dEV2ZW50YCwgc28gaXQgaXMgZGVsaXZlcmVkIHRvIHRoZSB3aW5kb3cncyBET00tZm9jdXNlZFxuICAgKiBlbGVtZW50IGFuZCBmbG93cyB0aHJvdWdoIHRoZSByZWFsIGlucHV0IHBpcGVsaW5lIFx1MjAxNCB1bmxpa2VcbiAgICogYGRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoLi4uKSlgLCB3aGljaCBpcyB1bnRydXN0ZWQgKGBpc1RydXN0ZWQ6XG4gICAqIGZhbHNlYCkgYW5kIGlnbm9yZWQgYnkgQ29kZU1pcnJvciBhbmQgbW9zdCBrZXkgaGFuZGxlcnMuIFVzZSBpdCBmb3Igc3BlY2lhbFxuICAgKiBrZXlzIChgJ0VudGVyJ2AsIGAnRXNjYXBlJ2AsIGAnVGFiJ2AsIGFycm93IGtleXMpIGFuZCBtb2RpZmllciBjb21iaW5hdGlvbnNcbiAgICogKGBTaGlmdCtFbnRlcmAsIGBDdHJsK0FgKSB0aGF0IHtAbGluayBMaWIudHlwZUludG9FZGl0b3J9ICh3aGljaCB0eXBlc1xuICAgKiBwcmludGFibGUgdGV4dCkgZG9lcyBub3QgY292ZXIuXG4gICAqXG4gICAqIFRoaXMgaXMgdGhlIGxvdy1sZXZlbCBwcmltaXRpdmU6IGl0IGluamVjdHMgdGhlIGtleSBwcmVzcyBhbmQgZG9lcyAqKm5vdCoqXG4gICAqIHBvbGwgZm9yIGFueSBlZmZlY3QgKGEga2V5IHByZXNzIGhhcyBubyB1bml2ZXJzYWwgb2JzZXJ2YWJsZSBvdXRjb21lIFx1MjAxNFxuICAgKiBgRW50ZXJgIGVkaXRzIHRoZSBkb2N1bWVudCwgYEVzY2FwZWAgY2xvc2VzIGEgbW9kYWwsIGBBcnJvd0Rvd25gIG1vdmVzIHRoZVxuICAgKiBzZWxlY3Rpb24pLiBUaGUgY2FsbGVyIGZvY3VzZXMgdGhlIGludGVuZGVkIHRhcmdldCBmaXJzdCwgdGhlbiBhd2FpdHMgdGhlXG4gICAqIGV4cGVjdGVkIGVmZmVjdCB2aWEge0BsaW5rIExpYi53YWl0VW50aWx9LiBJdCB0YXJnZXRzIHRoZSBzaW5nbGUgc2hhcmVkXG4gICAqIHdpbmRvdydzICoqZ2xvYmFsKiogZm9jdXMsIHNvIG9ubHkgdGhlIERPTS1mb2N1c2VkIGVsZW1lbnQgcmVjZWl2ZXMgdGhlIGtleS5cbiAgICpcbiAgICogKipPbiBtb2JpbGUqKiB0aGUgc2FtZSBzZXF1ZW5jZSBpcyBpbmplY3RlZCB0aHJvdWdoIHRoZSBXZWJWaWV3J3MgZGVidWdnZXJcbiAgICogKGBJbnB1dC5kaXNwYXRjaEtleUV2ZW50YCksIHdoaWNoIGlzIGVxdWFsbHkgdHJ1c3RlZC4gTmFtZWQga2V5cyAoYCdFbnRlcidgLFxuICAgKiBgJ0VzY2FwZSdgLCBgJ1RhYidgLCBgJ0JhY2tzcGFjZSdgLCBgJ0RlbGV0ZSdgLCB0aGUgYXJyb3dzKSBhbmQgc2luZ2xlXG4gICAqIHByaW50YWJsZSBjaGFyYWN0ZXJzIGFyZSBzdXBwb3J0ZWQ7IGFueSBvdGhlciBtdWx0aS1jaGFyYWN0ZXIgbmFtZSB0aHJvd3NcbiAgICogcmF0aGVyIHRoYW4gcHJlc3Npbmcgbm90aGluZy5cbiAgICpcbiAgICogKipNdXN0IGJlIGF3YWl0ZWQqKiBcdTIwMTQgc2VlIHtAbGluayBMaWIuY2xpY2tFbGVtZW50fS5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBrZXkgdG8gcHJlc3MgYW5kIGFueSBtb2RpZmllcnMgdG8gaG9sZC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBrZXkgcHJlc3MgaGFzIGJlZW5cbiAgICogICBpbmplY3RlZC5cbiAgICovXG4gIHByZXNzS2V5OiAodGhpczogdm9pZCwgcGFyYW1zOiBQcmVzc0tleVBhcmFtcykgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogVHlwZXMgdGV4dCBpbnRvIGEgQ29kZU1pcnJvciB7QGxpbmsgRWRpdG9yfSB1c2luZyAqKnRydXN0ZWQqKiBFbGVjdHJvblxuICAgKiBrZXlib2FyZCBpbnB1dC5cbiAgICpcbiAgICogVHlwaW5nIGlzIHByZXNzaW5nIGVhY2ggY2hhcmFjdGVyIGtleSBpbiB0dXJuOiB0aGlzIGZvY3VzZXMgdGhlIGVkaXRvclxuICAgKiAoY2FyZXQgdG8gZW5kKSBhbmQgcHJlc3NlcyBldmVyeSBjb2RlIHBvaW50IG9mIGB0ZXh0YCB2aWFcbiAgICoge0BsaW5rIExpYi5wcmVzc0tleX0gXHUyMDE0IHRoZSBzYW1lIHRydXN0ZWQgYGtleURvd25gIFx1MjE5MiBgY2hhcmAgXHUyMTkyIGBrZXlVcGAgYSByZWFsXG4gICAqIHVzZXIgcHJvZHVjZXMuIEVhY2gga2V5c3Ryb2tlIGlzIGRlbGl2ZXJlZCB0byB0aGUgd2luZG93J3MgRE9NLWZvY3VzZWRcbiAgICogZWxlbWVudCBhbmQgZmxvd3MgdGhyb3VnaCBDb2RlTWlycm9yJ3MgcmVhbCBpbnB1dCBwaXBlbGluZSwgc28gdGhlIHR5cGVkXG4gICAqIHRleHQgcmVhY2hlcyB0aGUgZG9jdW1lbnQgKipvbmx5IGlmIHRoZSBlZGl0b3IgZ2VudWluZWx5IGhvbGRzIGZvY3VzKiouXG4gICAqIFRoaXMgbWFrZXMgXCJ0aGUgdXNlciB0eXBlZCBpbnRvIHRoZSBlZGl0b3JcIiBhIGZhaXRoZnVsIGVuZC10by1lbmQgY2hlY2ssXG4gICAqIHVubGlrZSBgZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCguLi4pKWAgKHVudHJ1c3RlZCBcdTIwMTQgaWdub3JlZCBieVxuICAgKiBDb2RlTWlycm9yKSBvciBgZXhlY0NvbW1hbmQoJ2luc2VydFRleHQnKWAgKG11dGF0ZXMgdGhlIHNlbGVjdGlvbiBldmVuXG4gICAqIHdoZW4gdGhlIGVkaXRvciBpcyBub3QgZm9jdXNlZCwgbWFza2luZyBmb2N1cyBidWdzIGFzIGZhbHNlIHBvc2l0aXZlcykuXG4gICAqXG4gICAqIEFmdGVyIGluamVjdGluZyB0aGUga2V5c3Ryb2tlcyBpdCBwb2xscyB1bnRpbCB0aGUgZG9jdW1lbnQgcmVmbGVjdHMgdGhlXG4gICAqIGlucHV0LCBvciBhIGJvdW5kZWQgdGltZW91dCBlbGFwc2VzICh0aGUgZXhwZWN0ZWQgb3V0Y29tZSB3aGVuIHRoZSBlZGl0b3JcbiAgICogaXMgcmVhZC1vbmx5IGFuZCByZWplY3RzIHRoZSBpbnB1dCwgb3Igd2hlbiBmb2N1cyB3YXMgc3RvbGVuKS5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBlZGl0b3IgdG8gdHlwZSBpbnRvIGFuZCB0aGUgdGV4dCB0byB0eXBlLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgdGhlIGtleXN0cm9rZXMgaGF2ZSBzZXR0bGVkLlxuICAgKi9cbiAgdHlwZUludG9FZGl0b3I6ICh0aGlzOiB2b2lkLCBwYXJhbXM6IFR5cGVJbnRvRWRpdG9yUGFyYW1zKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBNb3ZlcyB0aGUgbW91c2UgcG9pbnRlciB0byBhIHBvaW50IGp1c3Qgb3V0c2lkZSBhbiBlbGVtZW50J3MgYm91bmRpbmcgYm94XG4gICAqIHVzaW5nIGEgKip0cnVzdGVkKiogRWxlY3Ryb24gcG9pbnRlciBtb3ZlLCB0aGVuIHBvbGxzIHVudGlsIHRoZSBlbGVtZW50IG5vXG4gICAqIGxvbmdlciBtYXRjaGVzIGA6aG92ZXJgLlxuICAgKlxuICAgKiBUaGUgaW52ZXJzZSBvZiB7QGxpbmsgTGliLmhvdmVyRWxlbWVudH0uIEl0IHRhcmdldHMgdGhlIHNpbmdsZSBzaGFyZWRcbiAgICogd2luZG93J3MgKipnbG9iYWwqKiBwb2ludGVyLCBzbyBvbmx5IG9uZSBlbGVtZW50IGlzIGhvdmVyZWQgYXQgYSB0aW1lLiBXaGVuXG4gICAqIGFuIGVsZW1lbnQgc3BhbnMgdGhlIGZ1bGwgdmlld3BvcnQgKG5vIHBvaW50IG91dHNpZGUgaXRzIGJveCBpcyByZWFjaGFibGUpLFxuICAgKiB1c2Uge0BsaW5rIExpYi5tb3ZlTW91c2V9IGRpcmVjdGx5IHRvIG1vdmUgdGhlIHBvaW50ZXIgdG8gYSBrbm93biBlbXB0eVxuICAgKiBjb29yZGluYXRlIGluc3RlYWQuXG4gICAqXG4gICAqICoqRGVza3RvcCBvbmx5IFx1MjAxNCBpdCB0aHJvd3Mgb24gbW9iaWxlKiosIGZvciB0aGUgc2FtZSByZWFzb24gYXNcbiAgICoge0BsaW5rIExpYi5ob3ZlckVsZW1lbnR9LlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGVsZW1lbnQgdG8gbW92ZSB0aGUgcG9pbnRlciBhd2F5IGZyb20uXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgZWxlbWVudCBubyBsb25nZXIgbWF0Y2hlc1xuICAgKiAgIGA6aG92ZXJgLlxuICAgKiBAdGhyb3dzIFdoZW4gdGhlIGVsZW1lbnQga2VlcHMgbWF0Y2hpbmcgYDpob3ZlcmAsIHdoaWNoIGlzIHdoYXQgYVxuICAgKiAgIGZ1bGwtdmlld3BvcnQgZWxlbWVudCBkb2VzLlxuICAgKi9cbiAgdW5ob3ZlckVsZW1lbnQ6ICh0aGlzOiB2b2lkLCBwYXJhbXM6IFVuaG92ZXJFbGVtZW50UGFyYW1zKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBQb2xscyBhIHByZWRpY2F0ZSB1bnRpbCBpdCBiZWNvbWVzIHRydXRoeSwgb3IgcmVqZWN0cyBvbmNlIGEgYm91bmRlZFxuICAgKiB0aW1lb3V0IGVsYXBzZXMuXG4gICAqXG4gICAqIEludGVncmF0aW9uLXRlc3QgYGV2YWxJbk9ic2lkaWFuYCBjYWxsYmFja3Mgcm91dGluZWx5IG5lZWQgdG8gd2FpdCBmb3IgYW5cbiAgICogYXN5bmNocm9ub3VzIGVmZmVjdCB0byBzZXR0bGUgKGEgdmlldyB0byBvcGVuLCBhIERPTSBub2RlIHRvIGFwcGVhciwgYVxuICAgKiBzZXR0aW5nIHRvIGFwcGx5KS4gQmVjYXVzZSB0aGUgY2FsbGJhY2sgaXMgc2VyaWFsaXplZCB2aWEgYHRvU3RyaW5nKClgIGFuZFxuICAgKiBjYW5ub3QgaW1wb3J0IG1vZHVsZXMsIGl0IGNhbid0IHJldXNlIGBvYnNpZGlhbi1kZXYtdXRpbHNgJ1xuICAgKiBgcmV0cnlXaXRoVGltZW91dGAgLyBgcnVuV2l0aFRpbWVvdXRgLiBUaGlzIGhlbHBlciBpcyB0aGUgc2hhcmVkLCBpbmplY3RlZFxuICAgKiByZXBsYWNlbWVudCBmb3IgdGhlIHBlci1jbG9zdXJlIHBvbGwgbG9vcHMgY29uc3VtZXJzIHdvdWxkIG90aGVyd2lzZVxuICAgKiBoYW5kLXJvbGwuXG4gICAqXG4gICAqIFRoZSBgcHJlZGljYXRlYCBtYXkgYmUgc3luY2hyb25vdXMgb3IgYXN5bmNocm9ub3VzIFx1MjAxNCBpdCBpcyBhd2FpdGVkIG9uIGV2ZXJ5XG4gICAqIHBvbGwuIEl0IGlzIGNoZWNrZWQgaW1tZWRpYXRlbHksIHRoZW4gcmUtY2hlY2tlZCBldmVyeVxuICAgKiBgaW50ZXJ2YWxJbk1pbGxpc2Vjb25kc2AgdW50aWwgaXQgcmV0dXJucyB0cnV0aHkgb3IgYHRpbWVvdXRJbk1pbGxpc2Vjb25kc2BcbiAgICogZWxhcHNlcywgYXQgd2hpY2ggcG9pbnQgdGhlIHJldHVybmVkIHtAbGluayBQcm9taXNlfSByZWplY3RzICh0aGUgZXJyb3JcbiAgICogaW5jbHVkZXMgYG1lc3NhZ2VgIHdoZW4gcHJvdmlkZWQpLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHByZWRpY2F0ZSB0byBwb2xsIHBsdXMgb3B0aW9uYWwgdGltZW91dCwgaW50ZXJ2YWwsIGFuZFxuICAgKiAgIHRpbWVvdXQgbWVzc2FnZS5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBwcmVkaWNhdGUgaXMgdHJ1dGh5LlxuICAgKi9cbiAgd2FpdFVudGlsOiAodGhpczogdm9pZCwgcGFyYW1zOiBXYWl0VW50aWxQYXJhbXMpID0+IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogVGhlIG1vdXNlIGJ1dHRvbiBhIHRydXN0ZWQgY2xpY2sgcHJlc3NlcywgaW4gRWxlY3Ryb24ncyBgc2VuZElucHV0RXZlbnRgXG4gKiBzcGVsbGluZy5cbiAqL1xuZXhwb3J0IHR5cGUgTW91c2VCdXR0b24gPSAnbGVmdCcgfCAnbWlkZGxlJyB8ICdyaWdodCc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIENvbW1vbkFyZ3VtZW50cy5tb3ZlTW91c2V9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vdmVNb3VzZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgeCBjb29yZGluYXRlICh3ZWItY29udGVudHMgRElQKSB0byBtb3ZlIHRoZSBwb2ludGVyIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgeDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgeSBjb29yZGluYXRlICh3ZWItY29udGVudHMgRElQKSB0byBtb3ZlIHRoZSBwb2ludGVyIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgeTogbnVtYmVyO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBMaWIub3BlblNldHRpbmdzVGFifS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcGVuU2V0dGluZ3NUYWJQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSBzZXR0aW5ncyB0YWIgdG8gb3BlbiBcdTIwMTQgYSBwbHVnaW4gaWQgZm9yIGEgcGx1Z2luJ3Mgb3duIHRhYiwgb3JcbiAgICogYSBjb3JlIHRhYiBpZCAoYCdlZGl0b3InYCwgYCdob3RrZXlzJ2AsIFx1MjAyNikuXG4gICAqXG4gICAqIFJlcXVpcmVkLCBiZWNhdXNlIG9wZW5pbmcgdGhlIG1vZGFsIHdpdGhvdXQgbmFtaW5nIGEgdGFiIHJlbmRlcnMgKipub3RoaW5nKipcbiAgICogb24gYSBoYXJuZXNzLW93bmVkIGluc3RhbmNlOiB0aGUgbW9kYWwgcmVzdG9yZXMgdGhlIGxhc3QgdGFiIHRoZSBwcm9maWxlXG4gICAqIHVzZWQsIGFuZCBhbiBpc29sYXRlZCBwcm9maWxlIGhhcyBuZXZlciBvcGVuZWQgb25lLCBzbyBgYWN0aXZlVGFiYCBzdGF5c1xuICAgKiBgbnVsbGAgYW5kIG5vIHJvdyBpcyBkcmF3bi4gQW4gdW5rbm93biBpZCBpcyByZWplY3RlZCBpbW1lZGlhdGVseSwgbGlzdGluZ1xuICAgKiB0aGUgaWRzIHRoYXQgZG8gZXhpc3QuXG4gICAqL1xuICByZWFkb25seSB0YWJJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIHRvIHdhaXQgZm9yIHRoZSBtb2RhbCB0byBvcGVuIGFuZCBmb3IgdGhlIHJlcXVlc3RlZCB0YWIgdG9cbiAgICogcmVuZGVyIGl0cyBjb250ZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgNTAwMGBcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRJbk1pbGxpc2Vjb25kcz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgQ29tbW9uQXJndW1lbnRzLnByZXNzS2V5fS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVzc0tleVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUga2V5IHRvIHByZXNzLCBnaXZlbiBhcyBhbiBFbGVjdHJvbiBBY2NlbGVyYXRvciBrZXkgbmFtZSBcdTIwMTQgZS5nLlxuICAgKiBgJ0VudGVyJ2AsIGAnRXNjYXBlJ2AsIGAnVGFiJ2AsIGAnQmFja3NwYWNlJ2AsIGAnRGVsZXRlJ2AsIGFuIGFycm93IGtleVxuICAgKiAoYCdVcCdgIC8gYCdEb3duJ2AgLyBgJ0xlZnQnYCAvIGAnUmlnaHQnYCksIG9yIGEgcHJpbnRhYmxlIGNoYXJhY3RlclxuICAgKiAoYCdhJ2AsIGAnMSdgKS4gVGhlIHByb2R1Y2VkIGNoYXJhY3RlciAod2hlbiB0aGUga2V5IGluc2VydHMgdGV4dCkgaXMgdGhlXG4gICAqIGxpdGVyYWwgYGtleWAgdmFsdWU7IGNhc2UtY29ycmVjdCB0ZXh0IGJlbG9uZ3MgdG9cbiAgICoge0BsaW5rIENvbW1vbkFyZ3VtZW50cy50eXBlSW50b0VkaXRvcn0sIG5vdCBhIGtleS1wcmVzcyBwcmltaXRpdmUuXG4gICAqL1xuICByZWFkb25seSBrZXk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1vZGlmaWVyIGtleXMgdG8gaG9sZCB3aGlsZSB0aGUga2V5IGlzIHByZXNzZWQsIHVzaW5nIE9ic2lkaWFuJ3NcbiAgICoge0BsaW5rIE1vZGlmaWVyfSBuYW1lcyAodGhlIHNhbWUgdmFsdWVzIGFzIGFuIE9ic2lkaWFuIGBIb3RrZXlgKS4gYCdNb2QnYFxuICAgKiByZXNvbHZlcyBwZXItcGxhdGZvcm0gKENtZCBvbiBtYWNPUywgQ3RybCBlbHNld2hlcmUpOyBlYWNoIGlzIG1hcHBlZCB0b1xuICAgKiBFbGVjdHJvbidzIGxvd2VyY2FzZSBgc2VuZElucHV0RXZlbnRgIG1vZGlmaWVyIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBbXWBcbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmaWVycz86IHJlYWRvbmx5IE1vZGlmaWVyW107XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIENvbW1vbkFyZ3VtZW50cy50eXBlSW50b0VkaXRvcn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZUludG9FZGl0b3JQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGVkaXRvciB0byB0eXBlIGludG8uIEl0IGlzIGZvY3VzZWQgKHdpdGggdGhlIGNhcmV0IG1vdmVkIHRvIHRoZSBlbmQgb2ZcbiAgICogdGhlIGRvY3VtZW50KSBiZWZvcmUgdGhlIGtleXN0cm9rZXMgYXJlIGluamVjdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdG9yOiBFZGl0b3I7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHRvIHR5cGUuIEVhY2ggY29kZSBwb2ludCBpcyBwcmVzc2VkIHZpYSB7QGxpbmsgQ29tbW9uQXJndW1lbnRzLnByZXNzS2V5fVxuICAgKiAoYSB0cnVzdGVkIGBrZXlEb3duYCBcdTIxOTIgYGNoYXJgIFx1MjE5MiBga2V5VXBgKSwgZXhhY3RseSBhcyBhIHJlYWwgdXNlciB0eXBpbmcuXG4gICAqL1xuICByZWFkb25seSB0ZXh0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIENvbW1vbkFyZ3VtZW50cy51bmhvdmVyRWxlbWVudH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW5ob3ZlckVsZW1lbnRQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdG8gbW92ZSB0aGUgcG9pbnRlciBhd2F5IGZyb20uIFRoZSBwb2ludGVyIGlzIG1vdmVkIHRvIGEgcG9pbnRcbiAgICoganVzdCBvdXRzaWRlIGl0cyBib3VuZGluZyBib3guIFRoaXMgaXMgYSBsaXZlIHJlbmRlcmVyIERPTSBub2RlIFx1MjAxNCB0aGVcbiAgICogY2FsbGJhY2sgcnVucyBpbi1yZW5kZXJlciwgc28gbm8gY3Jvc3MtcHJvY2VzcyBzZXJpYWxpemF0aW9uIGlzIG5lZWRlZFxuICAgKiAoc2FtZSBhcyB7QGxpbmsgVHlwZUludG9FZGl0b3JQYXJhbXMuZWRpdG9yfSkuXG4gICAqL1xuICByZWFkb25seSBlbGVtZW50OiBIVE1MRWxlbWVudDtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgQ29tbW9uQXJndW1lbnRzLndhaXRVbnRpbH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FpdFVudGlsUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBwb2xsaW5nIGludGVydmFsIGJldHdlZW4gcHJlZGljYXRlIGNoZWNrcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYDUwYFxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZXJ2YWxJbk1pbGxpc2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgZGV0YWlsIGFwcGVuZGVkIHRvIHRoZSB0aW1lb3V0IGVycm9yIG1lc3NhZ2UsIGRlc2NyaWJpbmcgd2hhdFxuICAgKiB3YXMgYmVpbmcgd2FpdGVkIGZvci5cbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25kaXRpb24gdG8gd2FpdCBmb3IuIFBvbGxlZCBpbW1lZGlhdGVseSwgdGhlbiBvbiBldmVyeSBpbnRlcnZhbCB1bnRpbFxuICAgKiBpdCByZXR1cm5zIGEgdHJ1dGh5IHZhbHVlLiBNYXkgYmUgc3luY2hyb25vdXMgb3IgYXN5bmNocm9ub3VzIFx1MjAxNCBpdCBpc1xuICAgKiBhd2FpdGVkIG9uIGVhY2ggcG9sbC5cbiAgICpcbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgYXdhaXRlZCBjb25kaXRpb24gaGFzIGJlZW4gbWV0LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZGljYXRlOiAodGhpczogdm9pZCkgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgdG8gd2FpdCBiZWZvcmUgcmVqZWN0aW5nLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgNTAwMGBcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRJbk1pbGxpc2Vjb25kcz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBFdmFsdWF0ZXMgYSBmdW5jdGlvbiBpbnNpZGUgdGhlIHJ1bm5pbmcgT2JzaWRpYW4gaW5zdGFuY2VcbiAqIHZpYSB0aGUgYWN0aXZlIHRyYW5zcG9ydCBhbmQgcmV0dXJucyB0aGUgcGFyc2VkIHJlc3VsdC5cbiAqXG4gKiBUaGUgZnVuY3Rpb24gcmVjZWl2ZXMgYW4gaW5wdXQgb2JqZWN0IHRoYXQgaW5jbHVkZXMgYGFwcGAsIGBvYnNpZGlhbk1vZHVsZWAsXG4gKiBgY29udGV4dGAsIGFuZCBhbnkgYWRkaXRpb25hbCBgaW5wdXRgIHBhc3NlZCBieSB0aGUgY2FsbGVyLlxuICogSXQgaXMgc2VyaWFsaXplZCB2aWEgYHRvU3RyaW5nKClgIGFuZCBpbnZva2VkIGFzIGFuIElJRkUuXG4gKiBUaGUgZnVuY3Rpb24gbXVzdCBiZSBzZWxmLWNvbnRhaW5lZCBcdTIwMTQgY2xvc3VyZXMgb3ZlciBsb2NhbCB2YXJpYWJsZXMgd2lsbCBub3Qgd29yay5cbiAqIFBhc3MgYW55IG5lZWRlZCB2YWx1ZXMgYXMgYGlucHV0YCBcdTIwMTQgdGhleSBhcmUgSlNPTi1zZXJpYWxpemVkIGFuZCBkZXNlcmlhbGl6ZWQgb24gdGhlIE9ic2lkaWFuIHNpZGUuXG4gKlxuICogVGhlIHJlc3VsdCBpcyBgSlNPTi5zdHJpbmdpZnlgJ2Qgb24gdGhlIE9ic2lkaWFuIHNpZGUgYW5kIHBhcnNlZCBiYWNrLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGZ1bmN0aW9uIHRvIGV2YWx1YXRlLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgcmV0dXJuIHZhbHVlIG9mIGBjYWxsYmFja2AuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBldmFsSW5PYnNpZGlhbjxJbnB1dCBleHRlbmRzIEdlbmVyaWNPYmplY3QsIFJlc3VsdCwgVENvbnRleHRJZCBleHRlbmRzIENvbnRleHRJZDx1bmtub3duPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZD4oXG4gIHBhcmFtczogRXZhbEluT2JzaWRpYW5QYXJhbXM8SW5wdXQsIFJlc3VsdCwgVENvbnRleHRJZD5cbik6IFByb21pc2U8UmVzdWx0PiB7XG4gIGNvbnN0IHsgY2FsbGJhY2ssIGNvbnRleHRJZCwgaW5wdXQgPSB7fSwgc2hvdWxkU2tpcFByZWZsaWdodENoZWNrcyA9IGZhbHNlLCB0cmFuc3BvcnQ6IHRyYW5zcG9ydE92ZXJyaWRlLCB2YXVsdFBhdGggfSA9IHBhcmFtcztcbiAgY29uc3QgY3dkID0gdmF1bHRQYXRoID8/IGdldFZhdWx0UGF0aCgpID8/IHByb2Nlc3MuY3dkKCk7XG5cbiAgLy8gQ2hlY2s6IFZhdWx0IHBhdGggZXhpc3RzIG9uIGRpc2suXG4gIGlmICh2YXVsdFBhdGggIT09IHVuZGVmaW5lZCAmJiAhZXhpc3RzU3luYyh2YXVsdFBhdGgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBWYXVsdCBwYXRoIGRvZXMgbm90IGV4aXN0OiAke3ZhdWx0UGF0aH1gKTtcbiAgfVxuXG4gIGNvbnN0IHRyYW5zcG9ydCA9IHRyYW5zcG9ydE92ZXJyaWRlID8/IGF3YWl0IGdldE9yQ3JlYXRlVHJhbnNwb3J0KGdldFRyYW5zcG9ydE9wdGlvbnMoKSk7XG5cbiAgaWYgKCFzaG91bGRTa2lwUHJlZmxpZ2h0Q2hlY2tzKSB7XG4gICAgYXdhaXQgdHJhbnNwb3J0LnByZWZsaWdodENoZWNrKGN3ZCk7XG4gIH1cblxuICBhd2FpdCBlbnN1cmVOYW1lc3BhY2VCb290c3RyYXBwZWQodHJhbnNwb3J0LCBjd2QpO1xuXG4gIGNvbnN0IG5hbWVzcGFjZUNhbGxQYXJhbXM6IEdlbmVyYXRlTmFtZXNwYWNlQ2FsbFBhcmFtcyA9IHtcbiAgICBjYWxsYmFjayxcbiAgICBpbnB1dCxcbiAgICAuLi4oY29udGV4dElkICE9PSB1bmRlZmluZWQgJiYgeyBjb250ZXh0SWQ6IFN0cmluZyhjb250ZXh0SWQpIH0pXG4gIH07XG5cbiAgY29uc3QgZXhwcmVzc2lvbiA9IGdlbmVyYXRlTmFtZXNwYWNlQ2FsbChuYW1lc3BhY2VDYWxsUGFyYW1zKTtcblxuICBjb25zdCByZXN1bHRTdHJpbmcgPSBhd2FpdCB0cmFuc3BvcnQuZXZhbHVhdGUoZXhwcmVzc2lvbiwgeyBjd2QgfSk7XG5cbiAgaWYgKHJlc3VsdFN0cmluZyA9PT0gJycgfHwgcmVzdWx0U3RyaW5nID09PSBOT19PVVRQVVQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkIGFzIFJlc3VsdDtcbiAgfVxuXG4gIGxldCBlbnZlbG9wZTogRXZhbFJlc3VsdEVudmVsb3BlO1xuICB0cnkge1xuICAgIGVudmVsb3BlID0gSlNPTi5wYXJzZShyZXN1bHRTdHJpbmcpIGFzIEV2YWxSZXN1bHRFbnZlbG9wZTtcbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBldmFsSW5PYnNpZGlhbjogT2JzaWRpYW4gcmV0dXJuZWQgbm9uLUpTT04gb3V0cHV0OiAke3Jlc3VsdFN0cmluZ31gKTtcbiAgfVxuXG4gIGlmICgndHlwZScgaW4gZW52ZWxvcGUpIHtcbiAgICBpZiAoZW52ZWxvcGUudHlwZSA9PT0gJ2Vycm9yJykge1xuICAgICAgLy8gUmV3cml0ZSBiYXJlLW9yaWdpbiBsb2NhbGhvc3Qgc3RhY2sgZnJhbWVzIGxpa2UgXCIoaHR0cDovL2xvY2FsaG9zdC86OTE1OjMyKVwiXG4gICAgICAvLyBzbyBWaXRlc3QncyBzb3VyY2UtbWFwIHJlc29sdmVyIHdvbid0IGV4dHJhY3QgXCIvXCIgYXMgdGhlIGZpbGUgcGF0aCBhbmQgY3Jhc2hcbiAgICAgIC8vIHdpdGggRUlTRElSIHdoZW4gaXQgdHJpZXMgdG8gcmVhZEZpbGVTeW5jIG9uIHRoZSByb290IGRpcmVjdG9yeS5cbiAgICAgIGNvbnN0IHNhbml0aXplZERldGFpbCA9IGVudmVsb3BlLnZhbHVlXG4gICAgICAgIC5yZXBsYWNlQWxsKC9cXChodHRwcz86XFwvXFwvbG9jYWxob3N0XFwvOig/PGxpbmU+XFxkKS9nLCAnKG9ic2lkaWFuLXdlYnZpZXc6JDxsaW5lPicpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBldmFsSW5PYnNpZGlhbjogRXJyb3IgaW5zaWRlIE9ic2lkaWFuOlxcbiR7c2FuaXRpemVkRGV0YWlsfWApO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQgYXMgUmVzdWx0O1xuICB9XG5cbiAgcmV0dXJuIGVudmVsb3BlLnZhbHVlIGFzIFJlc3VsdDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JBLHFCQUEyQjtBQUMzQiwwQkFBb0I7QUFTcEIsOEJBR087QUFDUCxvQ0FBc0M7QUFDdEMsaUNBQTRDO0FBQzVDLCtCQUFxQztBQTJCckMsTUFBTSxZQUFZO0FBcW1CbEIsZUFBc0IsZUFDcEIsUUFDaUI7QUFDakIsUUFBTSxFQUFFLFVBQVUsV0FBVyxRQUFRLENBQUMsR0FBRyw0QkFBNEIsT0FBTyxXQUFXLG1CQUFtQixVQUFVLElBQUk7QUFDeEgsUUFBTSxNQUFNLGlCQUFhLHNDQUFhLEtBQUssb0JBQUFBLFFBQVEsSUFBSTtBQUd2RCxNQUFJLGNBQWMsVUFBYSxLQUFDLDJCQUFXLFNBQVMsR0FBRztBQUNyRCxVQUFNLElBQUksTUFBTSw4QkFBOEIsU0FBUyxFQUFFO0FBQUEsRUFDM0Q7QUFFQSxRQUFNLFlBQVkscUJBQXFCLFVBQU0sbURBQXFCLDZDQUFvQixDQUFDO0FBRXZGLE1BQUksQ0FBQywyQkFBMkI7QUFDOUIsVUFBTSxVQUFVLGVBQWUsR0FBRztBQUFBLEVBQ3BDO0FBRUEsWUFBTSx3REFBNEIsV0FBVyxHQUFHO0FBRWhELFFBQU0sc0JBQW1EO0FBQUEsSUFDdkQ7QUFBQSxJQUNBO0FBQUEsSUFDQSxHQUFJLGNBQWMsVUFBYSxFQUFFLFdBQVcsT0FBTyxTQUFTLEVBQUU7QUFBQSxFQUNoRTtBQUVBLFFBQU0saUJBQWEscURBQXNCLG1CQUFtQjtBQUU1RCxRQUFNLGVBQWUsTUFBTSxVQUFVLFNBQVMsWUFBWSxFQUFFLElBQUksQ0FBQztBQUVqRSxNQUFJLGlCQUFpQixNQUFNLGlCQUFpQixXQUFXO0FBQ3JELFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSTtBQUNKLE1BQUk7QUFDRixlQUFXLEtBQUssTUFBTSxZQUFZO0FBQUEsRUFDcEMsUUFBUTtBQUNOLFVBQU0sSUFBSSxNQUFNLHNEQUFzRCxZQUFZLEVBQUU7QUFBQSxFQUN0RjtBQUVBLE1BQUksVUFBVSxVQUFVO0FBQ3RCLFFBQUksU0FBUyxTQUFTLFNBQVM7QUFJN0IsWUFBTSxrQkFBa0IsU0FBUyxNQUM5QixXQUFXLHlDQUF5QywyQkFBMkI7QUFDbEYsWUFBTSxJQUFJLE1BQU07QUFBQSxFQUEyQyxlQUFlLEVBQUU7QUFBQSxJQUM5RTtBQUVBLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTyxTQUFTO0FBQ2xCOyIsCiAgIm5hbWVzIjogWyJwcm9jZXNzIl0KfQo=
|
|
@@ -105,7 +105,7 @@ export interface EvalInObsidianParams<Input extends GenericObject, Result, TCont
|
|
|
105
105
|
/**
|
|
106
106
|
* The function to evaluate in the Obsidian context.
|
|
107
107
|
*/
|
|
108
|
-
callback(input: CommonArguments & ContextArguments<TContextId> & Input)
|
|
108
|
+
readonly callback: (input: CommonArguments & ContextArguments<TContextId> & Input) => Promisable<Result>;
|
|
109
109
|
/**
|
|
110
110
|
* A {@link ContextId} linking this call to a persistent store on `window`
|
|
111
111
|
* in the Obsidian process. The callback receives a typed `context` object
|
|
@@ -191,7 +191,7 @@ export interface Lib {
|
|
|
191
191
|
* to hold.
|
|
192
192
|
* @returns A {@link Promise} that resolves once the click has been injected.
|
|
193
193
|
*/
|
|
194
|
-
clickElement(this: void, params: ClickElementParams)
|
|
194
|
+
clickElement: (this: void, params: ClickElementParams) => Promise<void>;
|
|
195
195
|
/**
|
|
196
196
|
* Clicks at the given web-contents coordinates using **trusted** Electron
|
|
197
197
|
* pointer input, so Chromium synthesizes a real `click` (or `contextmenu`,
|
|
@@ -226,7 +226,7 @@ export interface Lib {
|
|
|
226
226
|
* press and any modifiers to hold.
|
|
227
227
|
* @returns A {@link Promise} that resolves once the click has been injected.
|
|
228
228
|
*/
|
|
229
|
-
clickMouse(this: void, params: ClickMouseParams)
|
|
229
|
+
clickMouse: (this: void, params: ClickMouseParams) => Promise<void>;
|
|
230
230
|
/**
|
|
231
231
|
* Creates a note and does not return until its content is verifiably on
|
|
232
232
|
* disk, rewriting it if it is not.
|
|
@@ -255,7 +255,7 @@ export interface Lib {
|
|
|
255
255
|
* @returns A {@link Promise} resolving to the created file, once its content
|
|
256
256
|
* is confirmed.
|
|
257
257
|
*/
|
|
258
|
-
createNote(this: void, params: CreateNoteParams)
|
|
258
|
+
createNote: (this: void, params: CreateNoteParams) => Promise<TFile>;
|
|
259
259
|
/**
|
|
260
260
|
* Moves the mouse pointer to the center of an element using **trusted**
|
|
261
261
|
* Electron pointer input, then polls until the element actually matches
|
|
@@ -276,8 +276,11 @@ export interface Lib {
|
|
|
276
276
|
*
|
|
277
277
|
* @param params - The element to hover.
|
|
278
278
|
* @returns A {@link Promise} that resolves once the element matches `:hover`.
|
|
279
|
+
* @throws When the element never matches `:hover`. Resolving quietly there
|
|
280
|
+
* would let a test read an element that is not hovered and pass on whatever
|
|
281
|
+
* its base style happens to be.
|
|
279
282
|
*/
|
|
280
|
-
hoverElement(this: void, params: HoverElementParams)
|
|
283
|
+
hoverElement: (this: void, params: HoverElementParams) => Promise<void>;
|
|
281
284
|
/**
|
|
282
285
|
* Moves the mouse pointer to the given web-contents coordinates using a
|
|
283
286
|
* **trusted** Electron pointer move.
|
|
@@ -302,7 +305,7 @@ export interface Lib {
|
|
|
302
305
|
* @param params - The web-contents DIP coordinates to move to.
|
|
303
306
|
* @returns A {@link Promise} that resolves once the move has been injected.
|
|
304
307
|
*/
|
|
305
|
-
moveMouse(this: void, params: MoveMouseParams)
|
|
308
|
+
moveMouse: (this: void, params: MoveMouseParams) => Promise<void>;
|
|
306
309
|
/**
|
|
307
310
|
* Opens Obsidian's settings modal on a given tab, and does not return until
|
|
308
311
|
* that tab has actually rendered.
|
|
@@ -332,7 +335,7 @@ export interface Lib {
|
|
|
332
335
|
* @throws Error if no tab carries {@link OpenSettingsTabParams.tabId}, or if
|
|
333
336
|
* the tab does not render within the timeout.
|
|
334
337
|
*/
|
|
335
|
-
openSettingsTab(this: void, params: OpenSettingsTabParams)
|
|
338
|
+
openSettingsTab: (this: void, params: OpenSettingsTabParams) => Promise<string[]>;
|
|
336
339
|
/**
|
|
337
340
|
* Presses a single key (optionally with modifiers) using **trusted** Electron
|
|
338
341
|
* keyboard input, firing the full real key pipeline —
|
|
@@ -367,7 +370,7 @@ export interface Lib {
|
|
|
367
370
|
* @returns A {@link Promise} that resolves once the key press has been
|
|
368
371
|
* injected.
|
|
369
372
|
*/
|
|
370
|
-
pressKey(this: void, params: PressKeyParams)
|
|
373
|
+
pressKey: (this: void, params: PressKeyParams) => Promise<void>;
|
|
371
374
|
/**
|
|
372
375
|
* Types text into a CodeMirror {@link Editor} using **trusted** Electron
|
|
373
376
|
* keyboard input.
|
|
@@ -390,7 +393,7 @@ export interface Lib {
|
|
|
390
393
|
* @param params - The editor to type into and the text to type.
|
|
391
394
|
* @returns A {@link Promise} that resolves once the keystrokes have settled.
|
|
392
395
|
*/
|
|
393
|
-
typeIntoEditor(this: void, params: TypeIntoEditorParams)
|
|
396
|
+
typeIntoEditor: (this: void, params: TypeIntoEditorParams) => Promise<void>;
|
|
394
397
|
/**
|
|
395
398
|
* Moves the mouse pointer to a point just outside an element's bounding box
|
|
396
399
|
* using a **trusted** Electron pointer move, then polls until the element no
|
|
@@ -408,8 +411,10 @@ export interface Lib {
|
|
|
408
411
|
* @param params - The element to move the pointer away from.
|
|
409
412
|
* @returns A {@link Promise} that resolves once the element no longer matches
|
|
410
413
|
* `:hover`.
|
|
414
|
+
* @throws When the element keeps matching `:hover`, which is what a
|
|
415
|
+
* full-viewport element does.
|
|
411
416
|
*/
|
|
412
|
-
unhoverElement(this: void, params: UnhoverElementParams)
|
|
417
|
+
unhoverElement: (this: void, params: UnhoverElementParams) => Promise<void>;
|
|
413
418
|
/**
|
|
414
419
|
* Polls a predicate until it becomes truthy, or rejects once a bounded
|
|
415
420
|
* timeout elapses.
|
|
@@ -432,7 +437,7 @@ export interface Lib {
|
|
|
432
437
|
* timeout message.
|
|
433
438
|
* @returns A {@link Promise} that resolves once the predicate is truthy.
|
|
434
439
|
*/
|
|
435
|
-
waitUntil(this: void, params: WaitUntilParams)
|
|
440
|
+
waitUntil: (this: void, params: WaitUntilParams) => Promise<void>;
|
|
436
441
|
}
|
|
437
442
|
/**
|
|
438
443
|
* The mouse button a trusted click presses, in Electron's `sendInputEvent`
|
|
@@ -547,7 +552,7 @@ export interface WaitUntilParams {
|
|
|
547
552
|
*
|
|
548
553
|
* @returns Whether the awaited condition has been met.
|
|
549
554
|
*/
|
|
550
|
-
predicate(this: void)
|
|
555
|
+
readonly predicate: (this: void) => boolean | Promise<boolean>;
|
|
551
556
|
/**
|
|
552
557
|
* The maximum time to wait before rejecting.
|
|
553
558
|
*
|
|
@@ -100,4 +100,4 @@ function roundToMatchingParity(value, target) {
|
|
|
100
100
|
computeFitToCanvas,
|
|
101
101
|
fitScreenshotToCanvas
|
|
102
102
|
});
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2ZpdC1zY3JlZW5zaG90LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRml0cyBhIHNjcmVlbnNob3Qgb250byBhIGNhbnZhcyBvZiBhIGRpZmZlcmVudCBhc3BlY3QgcmF0aW8gd2l0aG91dCBjcm9wcGluZ1xuICogaXQgb3IgZGlzdG9ydGluZyBpdCwgZmlsbGluZyB0aGUgbGVmdG92ZXIgbWFyZ2lucyB3aXRoIGEgYmx1cnJlZCwgZW5sYXJnZWRcbiAqIGNvcHkgb2YgdGhlIHNhbWUgaW1hZ2UgKHRoZSBcInBpbGxhcmJveFwiIHRyZWF0bWVudCB1c2VkIGJ5IHN0b3JlIGxpc3RpbmdzKS5cbiAqXG4gKiBUaGUgbW90aXZhdGluZyBjYXNlIGlzIGEgbW9iaWxlIHN0b3JlIHNjcmVlbnNob3QuIFRoZSBBbmRyb2lkIGVtdWxhdG9yJ3NcbiAqIGZyYW1lYnVmZmVyIGlzIHdoYXRldmVyIHRoZSBBVkQncyBzY3JlZW4gaXMgXHUyMDE0IGEgUGl4ZWwgMTAgUHJvIFhMIGlzIDEzNDR4Mjk5MixcbiAqIHJvdWdobHkgOToyMCBcdTIwMTQgd2hpbGUgdGhlIGNvbW11bml0eSBzdG9yZSBhc2tzIGZvciA5MDB4MTYwMCAoOToxNikuIENyb3BwaW5nXG4gKiB0byA5OjE2IHRocm93cyBhd2F5IGEgZmlmdGggb2YgdGhlIGZyYW1lLCBhbmQgc3RyZXRjaGluZyBkaXN0b3J0cyB0aGUgVUksIHNvXG4gKiB0aGUgaW1hZ2UgaXMgc2NhbGVkIHRvIGZpdCB0aGUgSEVJR0hUIGFuZCB0aGUgdHdvIHNpZGUgbWFyZ2lucyBhcmUgZmlsbGVkLlxuICpcbiAqIFRoZSBnZW9tZXRyeSBpcyBhIHB1cmUgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVuaXQtdGVzdGVkOyB0aGUgcGl4ZWwgd29yayBuZWVkc1xuICogYHNoYXJwYCwgd2hpY2ggaXMgYW4gT1BUSU9OQUwgcGVlciBkZXBlbmRlbmN5IFx1MjAxNCBkZWNsYXJlZCByYXRoZXIgdGhhbiBidW5kbGVkXG4gKiBiZWNhdXNlIG9ubHkgc2NyZWVuc2hvdCBjYXB0dXJlIG5lZWRzIGl0LCBhbmQgaXQgc2hpcHMgcGxhdGZvcm0tc3BlY2lmaWNcbiAqIG5hdGl2ZSBiaW5hcmllcyB0aGF0IGV2ZXJ5IG90aGVyIGNvbnN1bWVyIHdvdWxkIHBheSBmb3IuXG4gKi9cblxuaW1wb3J0IHsgaW1wb3J0U2hhcnAgfSBmcm9tICcuL3NoYXJwLWxvYWRlci5janMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjb21wdXRlRml0VG9DYW52YXN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXB1dGVGaXRUb0NhbnZhc1BhcmFtcyB7XG4gIC8qKlxuICAgKiBIZWlnaHQgb2YgdGhlIHRhcmdldCBjYW52YXMsIGluIHBpeGVscy5cbiAgICovXG4gIHJlYWRvbmx5IGNhbnZhc0hlaWdodEluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdpZHRoIG9mIHRoZSB0YXJnZXQgY2FudmFzLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBjYW52YXNXaWR0aEluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEhlaWdodCBvZiB0aGUgc291cmNlIGltYWdlLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VIZWlnaHRJblBpeGVsczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaWR0aCBvZiB0aGUgc291cmNlIGltYWdlLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VXaWR0aEluUGl4ZWxzOiBudW1iZXI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGZpdFNjcmVlbnNob3RUb0NhbnZhc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRml0U2NyZWVuc2hvdFRvQ2FudmFzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBHYXVzc2lhbiBibHVyIHN0cmVuZ3RoIGFwcGxpZWQgdG8gdGhlIG1hcmdpbiBmaWxsLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgMjRgXG4gICAqL1xuICByZWFkb25seSBibHVyU2lnbWE/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEhlaWdodCBvZiB0aGUgdGFyZ2V0IGNhbnZhcywgaW4gcGl4ZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgY2FudmFzSGVpZ2h0SW5QaXhlbHM6IG51bWJlcjtcblxuICAvKipcbiAgICogV2lkdGggb2YgdGhlIHRhcmdldCBjYW52YXMsIGluIHBpeGVscy5cbiAgICovXG4gIHJlYWRvbmx5IGNhbnZhc1dpZHRoSW5QaXhlbHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBXaGVyZSB0aGUgc2NhbGVkIHNvdXJjZSBpbWFnZSBzaXRzIG9uIHRoZSBjYW52YXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRml0VG9DYW52YXNHZW9tZXRyeSB7XG4gIC8qKlxuICAgKiBXaWR0aCBvZiBlYWNoIHNpZGUgbWFyZ2luLCBpbiBwaXhlbHMuIEJvdGggc2lkZXMgYXJlIGVxdWFsIGJ5IGNvbnN0cnVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG1hcmdpbkluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIExlZnQgb2Zmc2V0IG9mIHRoZSBzY2FsZWQgaW1hZ2Ugb24gdGhlIGNhbnZhcywgaW4gcGl4ZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgb2Zmc2V0WEluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRvcCBvZmZzZXQgb2YgdGhlIHNjYWxlZCBpbWFnZSBvbiB0aGUgY2FudmFzLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBvZmZzZXRZSW5QaXhlbHM6IG51bWJlcjtcblxuICAvKipcbiAgICogSGVpZ2h0IHRoZSBzb3VyY2UgaXMgc2NhbGVkIHRvLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBzY2FsZWRIZWlnaHRJblBpeGVsczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaWR0aCB0aGUgc291cmNlIGlzIHNjYWxlZCB0bywgaW4gcGl4ZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NhbGVkV2lkdGhJblBpeGVsczogbnVtYmVyO1xufVxuXG4vKipcbiAqIERlZmF1bHQgR2F1c3NpYW4gYmx1ciBzdHJlbmd0aCBmb3IgdGhlIG1hcmdpbiBmaWxsOiBzb2Z0IGVub3VnaCB0aGF0IG5vXG4gKiBkZXRhaWwgcmVhZHMgYXMgY29udGVudCwgZ2VudGxlIGVub3VnaCB0byBrZWVwIHRoZSBmcmFtZSdzIGNvbG9ycy5cbiAqL1xuY29uc3QgREVGQVVMVF9CTFVSX1NJR01BID0gMjQ7XG5cbi8qKlxuICogVGhlIG51bWJlciBvZiBzaWRlIG1hcmdpbnMgdGhlIGxlZnRvdmVyIHdpZHRoIGlzIHNwbGl0IGJldHdlZW4uXG4gKi9cbmNvbnN0IE1BUkdJTl9TSURFUyA9IDI7XG5cbi8qKlxuICogQ29tcHV0ZXMgaG93IGEgc291cmNlIGltYWdlIGlzIHNjYWxlZCBhbmQgcGxhY2VkIHRvIGZpbGwgYSBjYW52YXMncyBoZWlnaHQsXG4gKiB3aXRoIGVxdWFsIG1hcmdpbnMgb24gdGhlIGxlZnQgYW5kIHJpZ2h0LlxuICpcbiAqIFRoZSBzY2FsZWQgd2lkdGggaXMgcm91bmRlZCB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIHRoYXQgbGVhdmVzIGFuIEVWRU5cbiAqIHJlbWFpbmRlciwgc28gdGhlIHR3byBtYXJnaW5zIGFyZSBleGFjdGx5IGVxdWFsIFx1MjAxNCBhbiBhc3ltbWV0cmljIHBpbGxhcmJveCBpc1xuICogdmlzaWJsZSBhdCBhIGdsYW5jZSBhbmQgbG9va3MgbGlrZSBhIG1pc3Rha2UuIFdoZXJlIGJvdGggbmVpZ2hib3JzIHF1YWxpZnksXG4gKiB0aGUgb25lIGNsb3NlciB0byB0aGUgdHJ1ZSBzY2FsZWQgd2lkdGggd2lucywgc28gdGhlIGFzcGVjdCBlcnJvciBzdGF5cyBiZWxvd1xuICogb25lIHBhcnQgaW4gYSB0aG91c2FuZC5cbiAqXG4gKiBXb3JrZWQgZXhhbXBsZSwgdGhlIG1vYmlsZSBzdG9yZSBjYXNlOiBhIDEzNDR4Mjk5MiBmcmFtZSBvbnRvIGEgOTAweDE2MDBcbiAqIGNhbnZhcyBzY2FsZXMgYnkgYDE2MDAvMjk5MmAgdG8gNzE4LjcyIHdpZGUuIDcxOSB3b3VsZCBsZWF2ZSBhIDE4MXB4XG4gKiByZW1haW5kZXIsIHdoaWNoIGNhbm5vdCBzcGxpdCBldmVubHksIHNvIDcxOCBpcyBjaG9zZW4gKG1hcmdpbiA5MSkgb3ZlciA3MjBcbiAqIChtYXJnaW4gOTApIGJlY2F1c2UgNzE4IGlzIG5lYXJlciA3MTguNzIuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBzb3VyY2UgYW5kIGNhbnZhcyBkaW1lbnNpb25zLlxuICogQHJldHVybnMgVGhlIHNjYWxlZCBzaXplLCB0aGUgb2Zmc2V0cywgYW5kIHRoZSBzaWRlIG1hcmdpbi5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgYW55IGRpbWVuc2lvbiBpcyBub3QgYSBwb3NpdGl2ZSBudW1iZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlRml0VG9DYW52YXMocGFyYW1zOiBDb21wdXRlRml0VG9DYW52YXNQYXJhbXMpOiBGaXRUb0NhbnZhc0dlb21ldHJ5IHtcbiAgY29uc3Qge1xuICAgIGNhbnZhc0hlaWdodEluUGl4ZWxzLFxuICAgIGNhbnZhc1dpZHRoSW5QaXhlbHMsXG4gICAgc291cmNlSGVpZ2h0SW5QaXhlbHMsXG4gICAgc291cmNlV2lkdGhJblBpeGVsc1xuICB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IG5hbWVkRGltZW5zaW9uczogW3N0cmluZywgbnVtYmVyXVtdID0gW1xuICAgIFsnY2FudmFzSGVpZ2h0SW5QaXhlbHMnLCBjYW52YXNIZWlnaHRJblBpeGVsc10sXG4gICAgWydjYW52YXNXaWR0aEluUGl4ZWxzJywgY2FudmFzV2lkdGhJblBpeGVsc10sXG4gICAgWydzb3VyY2VIZWlnaHRJblBpeGVscycsIHNvdXJjZUhlaWdodEluUGl4ZWxzXSxcbiAgICBbJ3NvdXJjZVdpZHRoSW5QaXhlbHMnLCBzb3VyY2VXaWR0aEluUGl4ZWxzXVxuICBdO1xuXG4gIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBuYW1lZERpbWVuc2lvbnMpIHtcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgfHwgdmFsdWUgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb21wdXRlRml0VG9DYW52YXM6ICR7bmFtZX0gbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciwgZ290ICR7U3RyaW5nKHZhbHVlKX0uYCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2NhbGVkSGVpZ2h0SW5QaXhlbHMgPSBjYW52YXNIZWlnaHRJblBpeGVscztcbiAgY29uc3QgZXhhY3RTY2FsZWRXaWR0aCA9IHNvdXJjZVdpZHRoSW5QaXhlbHMgKiAoY2FudmFzSGVpZ2h0SW5QaXhlbHMgLyBzb3VyY2VIZWlnaHRJblBpeGVscyk7XG4gIGNvbnN0IHNjYWxlZFdpZHRoSW5QaXhlbHMgPSByb3VuZFRvTWF0Y2hpbmdQYXJpdHkoZXhhY3RTY2FsZWRXaWR0aCwgY2FudmFzV2lkdGhJblBpeGVscyk7XG5cbiAgaWYgKHNjYWxlZFdpZHRoSW5QaXhlbHMgPiBjYW52YXNXaWR0aEluUGl4ZWxzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ2NvbXB1dGVGaXRUb0NhbnZhczogdGhlIHNvdXJjZSBpcyB3aWRlciB0aGFuIHRoZSBjYW52YXMgb25jZSBzY2FsZWQgdG8gaXRzIGhlaWdodCAnXG4gICAgICAgICsgYCgke1N0cmluZyhzY2FsZWRXaWR0aEluUGl4ZWxzKX0gPiAke1N0cmluZyhjYW52YXNXaWR0aEluUGl4ZWxzKX0pOyB0aGlzIGZpdHMgYnkgaGVpZ2h0IGFuZCBjYW5ub3QgbGV0dGVyYm94LmBcbiAgICApO1xuICB9XG5cbiAgY29uc3QgbWFyZ2luSW5QaXhlbHMgPSAoY2FudmFzV2lkdGhJblBpeGVscyAtIHNjYWxlZFdpZHRoSW5QaXhlbHMpIC8gTUFSR0lOX1NJREVTO1xuXG4gIHJldHVybiB7XG4gICAgbWFyZ2luSW5QaXhlbHMsXG4gICAgb2Zmc2V0WEluUGl4ZWxzOiBtYXJnaW5JblBpeGVscyxcbiAgICBvZmZzZXRZSW5QaXhlbHM6IDAsXG4gICAgc2NhbGVkSGVpZ2h0SW5QaXhlbHMsXG4gICAgc2NhbGVkV2lkdGhJblBpeGVsc1xuICB9O1xufVxuXG4vKipcbiAqIFNjYWxlcyBhIHNjcmVlbnNob3QgdG8gZmlsbCBhIGNhbnZhcydzIGhlaWdodCBhbmQgZmlsbHMgdGhlIHNpZGUgbWFyZ2lucyB3aXRoXG4gKiBhIGJsdXJyZWQsIGVubGFyZ2VkIGNvcHkgb2YgdGhlIHNhbWUgaW1hZ2UuXG4gKlxuICogTm90aGluZyBpcyBjcm9wcGVkIGFuZCBub3RoaW5nIGlzIHN0cmV0Y2hlZDogdGhlIHZpc2libGUgc2NyZWVuc2hvdCBrZWVwcyBpdHNcbiAqIGFzcGVjdCByYXRpbyB0byB3aXRoaW4gYSByb3VuZGluZyBwaXhlbCwgYW5kIHRoZSBtYXJnaW5zIGFyZSBtYWRlIG9mIHRoZVxuICogaW1hZ2UgaXRzZWxmIHJhdGhlciB0aGFuIGEgZmxhdCBjb2xvciwgc28gdGhlIHJlc3VsdCByZWFkcyBhcyBvbmUgZnJhbWUuXG4gKlxuICogQHBhcmFtIGJ5dGVzIC0gVGhlIHNvdXJjZSBQTkcuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB0YXJnZXQgY2FudmFzIHNpemUgYW5kIGJsdXIgc3RyZW5ndGguXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBjb21wb3NlZCBQTkcsIGV4YWN0bHkgdGhlIGNhbnZhcyBzaXplLlxuICogQHRocm93cyBFcnJvciBpZiBgc2hhcnBgIGlzIG5vdCBpbnN0YWxsZWQsIG9yIHRoZSBzb3VyY2UgZGltZW5zaW9ucyBjYW5ub3QgYmUgcmVhZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpdFNjcmVlbnNob3RUb0NhbnZhcyhieXRlczogVWludDhBcnJheSwgb3B0aW9uczogRml0U2NyZWVuc2hvdFRvQ2FudmFzT3B0aW9ucyk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBjb25zdCB7XG4gICAgYmx1clNpZ21hID0gREVGQVVMVF9CTFVSX1NJR01BLFxuICAgIGNhbnZhc0hlaWdodEluUGl4ZWxzLFxuICAgIGNhbnZhc1dpZHRoSW5QaXhlbHNcbiAgfSA9IG9wdGlvbnM7XG5cbiAgY29uc3Qgc2hhcnAgPSBhd2FpdCBpbXBvcnRTaGFycCgnZml0U2NyZWVuc2hvdFRvQ2FudmFzJyk7XG4gIGNvbnN0IG1ldGFkYXRhID0gYXdhaXQgc2hhcnAoYnl0ZXMpLm1ldGFkYXRhKCk7XG4gIGNvbnN0IHNvdXJjZVdpZHRoSW5QaXhlbHMgPSBtZXRhZGF0YS53aWR0aDtcbiAgY29uc3Qgc291cmNlSGVpZ2h0SW5QaXhlbHMgPSBtZXRhZGF0YS5oZWlnaHQ7XG5cbiAgLyogdjggaWdub3JlIG5leHQgMyAtLSBEZWZlbnNpdmU6IGBzaGFycGAgcmVqZWN0cyBhIG5vbi1pbWFnZSBiZWZvcmUgaXQgY2FuIHJlcG9ydCBtZXRhZGF0YSB3aXRob3V0IGRpbWVuc2lvbnMsIHNvIHRoaXMgYnJhbmNoIGlzIHVucmVhY2hhYmxlIGZyb20gYSB0ZXN0LiAqL1xuICBpZiAoc291cmNlV2lkdGhJblBpeGVscyA9PT0gdW5kZWZpbmVkIHx8IHNvdXJjZUhlaWdodEluUGl4ZWxzID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZpdFNjcmVlbnNob3RUb0NhbnZhczogY291bGQgbm90IHJlYWQgdGhlIHNvdXJjZSBpbWFnZSBkaW1lbnNpb25zLicpO1xuICB9XG5cbiAgY29uc3QgZ2VvbWV0cnkgPSBjb21wdXRlRml0VG9DYW52YXMoe1xuICAgIGNhbnZhc0hlaWdodEluUGl4ZWxzLFxuICAgIGNhbnZhc1dpZHRoSW5QaXhlbHMsXG4gICAgc291cmNlSGVpZ2h0SW5QaXhlbHMsXG4gICAgc291cmNlV2lkdGhJblBpeGVsc1xuICB9KTtcblxuICAvLyBUaGUgYmFja2dyb3VuZCBpcyB0aGUgc2FtZSBmcmFtZSBibG93biB1cCB0byBDT1ZFUiB0aGUgY2FudmFzIGFuZCBibHVycmVkLFxuICAvLyBTbyB0aGUgbWFyZ2lucyBjYXJyeSB0aGUgc2NyZWVuc2hvdCdzIG93biBjb2xvcnMgaW5zdGVhZCBvZiBhIGZsYXQgYmFyLlxuICBjb25zdCBiYWNrZ3JvdW5kID0gYXdhaXQgc2hhcnAoYnl0ZXMpXG4gICAgLnJlc2l6ZShjYW52YXNXaWR0aEluUGl4ZWxzLCBjYW52YXNIZWlnaHRJblBpeGVscywgeyBmaXQ6ICdjb3ZlcicgfSlcbiAgICAuYmx1cihibHVyU2lnbWEpXG4gICAgLnRvQnVmZmVyKCk7XG5cbiAgY29uc3QgZm9yZWdyb3VuZCA9IGF3YWl0IHNoYXJwKGJ5dGVzKVxuICAgIC5yZXNpemUoZ2VvbWV0cnkuc2NhbGVkV2lkdGhJblBpeGVscywgZ2VvbWV0cnkuc2NhbGVkSGVpZ2h0SW5QaXhlbHMsIHsgZml0OiAnZmlsbCcgfSlcbiAgICAudG9CdWZmZXIoKTtcblxuICBjb25zdCBjb21wb3NlZCA9IGF3YWl0IHNoYXJwKGJhY2tncm91bmQpXG4gICAgLmNvbXBvc2l0ZShbe1xuICAgICAgaW5wdXQ6IGZvcmVncm91bmQsXG4gICAgICBsZWZ0OiBnZW9tZXRyeS5vZmZzZXRYSW5QaXhlbHMsXG4gICAgICB0b3A6IGdlb21ldHJ5Lm9mZnNldFlJblBpeGVsc1xuICAgIH1dKVxuICAgIC5wbmcoKVxuICAgIC50b0J1ZmZlcigpO1xuXG4gIHJldHVybiBuZXcgVWludDhBcnJheShjb21wb3NlZCk7XG59XG5cbi8qKlxuICogUm91bmRzIGEgd2lkdGggdG8gdGhlIG5lYXJlc3QgaW50ZWdlciBzaGFyaW5nIGB0YXJnZXRgJ3MgcGFyaXR5LCBzb1xuICogYHRhcmdldCAtIHJlc3VsdGAgaXMgZXZlbiBhbmQgc3BsaXRzIGludG8gdHdvIGVxdWFsIG1hcmdpbnMuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIGV4YWN0IHNjYWxlZCB3aWR0aC5cbiAqIEBwYXJhbSB0YXJnZXQgLSBUaGUgY2FudmFzIHdpZHRoIHdob3NlIHBhcml0eSBtdXN0IGJlIG1hdGNoZWQuXG4gKiBAcmV0dXJucyBUaGUgbmVhcmVzdCBpbnRlZ2VyIG9mIHRoZSBzYW1lIHBhcml0eSBhcyBgdGFyZ2V0YC5cbiAqL1xuZnVuY3Rpb24gcm91bmRUb01hdGNoaW5nUGFyaXR5KHZhbHVlOiBudW1iZXIsIHRhcmdldDogbnVtYmVyKTogbnVtYmVyIHtcbiAgY29uc3Qgcm91bmRlZCA9IE1hdGgucm91bmQodmFsdWUpO1xuICBpZiAoKHRhcmdldCAtIHJvdW5kZWQpICUgTUFSR0lOX1NJREVTID09PSAwKSB7XG4gICAgcmV0dXJuIHJvdW5kZWQ7XG4gIH1cblxuICAvLyBgcm91bmRlZGAgbGVhdmVzIGFuIG9kZCByZW1haW5kZXIsIHNvIHN0ZXAgdG8gd2hpY2hldmVyIG5laWdoYm9yIGlzIGNsb3NlclxuICAvLyBUbyB0aGUgdHJ1ZSB2YWx1ZTsgYm90aCBoYXZlIHRoZSBwYXJpdHkgYHJvdW5kZWRgIGxhY2tzLlxuICByZXR1cm4gdmFsdWUgPj0gcm91bmRlZCA/IHJvdW5kZWQgKyAxIDogcm91bmRlZCAtIDE7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQkEsMEJBQTRCO0FBbUY1QixNQUFNLHFCQUFxQjtBQUszQixNQUFNLGVBQWU7QUFxQmQsU0FBUyxtQkFBbUIsUUFBdUQ7QUFDeEYsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixRQUFNLGtCQUFzQztBQUFBLElBQzFDLENBQUMsd0JBQXdCLG9CQUFvQjtBQUFBLElBQzdDLENBQUMsdUJBQXVCLG1CQUFtQjtBQUFBLElBQzNDLENBQUMsd0JBQXdCLG9CQUFvQjtBQUFBLElBQzdDLENBQUMsdUJBQXVCLG1CQUFtQjtBQUFBLEVBQzdDO0FBRUEsYUFBVyxDQUFDLE1BQU0sS0FBSyxLQUFLLGlCQUFpQjtBQUMzQyxRQUFJLENBQUMsT0FBTyxTQUFTLEtBQUssS0FBSyxTQUFTLEdBQUc7QUFDekMsWUFBTSxJQUFJLE1BQU0sdUJBQXVCLElBQUksbUNBQW1DLE9BQU8sS0FBSyxDQUFDLEdBQUc7QUFBQSxJQUNoRztBQUFBLEVBQ0Y7QUFFQSxRQUFNLHVCQUF1QjtBQUM3QixRQUFNLG1CQUFtQix1QkFBdUIsdUJBQXVCO0FBQ3ZFLFFBQU0sc0JBQXNCLHNCQUFzQixrQkFBa0IsbUJBQW1CO0FBRXZGLE1BQUksc0JBQXNCLHFCQUFxQjtBQUM3QyxVQUFNLElBQUk7QUFBQSxNQUNSLHNGQUNRLE9BQU8sbUJBQW1CLENBQUMsTUFBTSxPQUFPLG1CQUFtQixDQUFDO0FBQUEsSUFDdEU7QUFBQSxFQUNGO0FBRUEsUUFBTSxrQkFBa0Isc0JBQXNCLHVCQUF1QjtBQUVyRSxTQUFPO0FBQUEsSUFDTDtBQUFBLElBQ0EsaUJBQWlCO0FBQUEsSUFDakIsaUJBQWlCO0FBQUEsSUFDakI7QUFBQSxJQUNBO0FBQUEsRUFDRjtBQUNGO0FBZUEsZUFBc0Isc0JBQXNCLE9BQW1CLFNBQTREO0FBQ3pILFFBQU07QUFBQSxJQUNKLFlBQVk7QUFBQSxJQUNaO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUVKLFFBQU0sUUFBUSxVQUFNLGlDQUFZLHVCQUF1QjtBQUN2RCxRQUFNLFdBQVcsTUFBTSxNQUFNLEtBQUssRUFBRSxTQUFTO0FBQzdDLFFBQU0sc0JBQXNCLFNBQVM7QUFDckMsUUFBTSx1QkFBdUIsU0FBUztBQUd0QyxNQUFJLHdCQUF3QixVQUFhLHlCQUF5QixRQUFXO0FBQzNFLFVBQU0sSUFBSSxNQUFNLG9FQUFvRTtBQUFBLEVBQ3RGO0FBRUEsUUFBTSxXQUFXLG1CQUFtQjtBQUFBLElBQ2xDO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixDQUFDO0FBSUQsUUFBTSxhQUFhLE1BQU0sTUFBTSxLQUFLLEVBQ2pDLE9BQU8scUJBQXFCLHNCQUFzQixFQUFFLEtBQUssUUFBUSxDQUFDLEVBQ2xFLEtBQUssU0FBUyxFQUNkLFNBQVM7QUFFWixRQUFNLGFBQWEsTUFBTSxNQUFNLEtBQUssRUFDakMsT0FBTyxTQUFTLHFCQUFxQixTQUFTLHNCQUFzQixFQUFFLEtBQUssT0FBTyxDQUFDLEVBQ25GLFNBQVM7QUFFWixRQUFNLFdBQVcsTUFBTSxNQUFNLFVBQVUsRUFDcEMsVUFBVSxDQUFDO0FBQUEsSUFDVixPQUFPO0FBQUEsSUFDUCxNQUFNLFNBQVM7QUFBQSxJQUNmLEtBQUssU0FBUztBQUFBLEVBQ2hCLENBQUMsQ0FBQyxFQUNELElBQUksRUFDSixTQUFTO0FBRVosU0FBTyxJQUFJLFdBQVcsUUFBUTtBQUNoQztBQVVBLFNBQVMsc0JBQXNCLE9BQWUsUUFBd0I7QUFDcEUsUUFBTSxVQUFVLEtBQUssTUFBTSxLQUFLO0FBQ2hDLE9BQUssU0FBUyxXQUFXLGlCQUFpQixHQUFHO0FBQzNDLFdBQU87QUFBQSxFQUNUO0FBSUEsU0FBTyxTQUFTLFVBQVUsVUFBVSxJQUFJLFVBQVU7QUFDcEQ7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2ZpdC1zY3JlZW5zaG90LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRml0cyBhIHNjcmVlbnNob3Qgb250byBhIGNhbnZhcyBvZiBhIGRpZmZlcmVudCBhc3BlY3QgcmF0aW8gd2l0aG91dCBjcm9wcGluZ1xuICogaXQgb3IgZGlzdG9ydGluZyBpdCwgZmlsbGluZyB0aGUgbGVmdG92ZXIgbWFyZ2lucyB3aXRoIGEgYmx1cnJlZCwgZW5sYXJnZWRcbiAqIGNvcHkgb2YgdGhlIHNhbWUgaW1hZ2UgKHRoZSBcInBpbGxhcmJveFwiIHRyZWF0bWVudCB1c2VkIGJ5IHN0b3JlIGxpc3RpbmdzKS5cbiAqXG4gKiBUaGUgbW90aXZhdGluZyBjYXNlIGlzIGEgbW9iaWxlIHN0b3JlIHNjcmVlbnNob3QuIFRoZSBBbmRyb2lkIGVtdWxhdG9yJ3NcbiAqIGZyYW1lYnVmZmVyIGlzIHdoYXRldmVyIHRoZSBBVkQncyBzY3JlZW4gaXMgXHUyMDE0IGEgUGl4ZWwgMTAgUHJvIFhMIGlzIDEzNDR4Mjk5MixcbiAqIHJvdWdobHkgOToyMCBcdTIwMTQgd2hpbGUgdGhlIGNvbW11bml0eSBzdG9yZSBhc2tzIGZvciA5MDB4MTYwMCAoOToxNikuIENyb3BwaW5nXG4gKiB0byA5OjE2IHRocm93cyBhd2F5IGEgZmlmdGggb2YgdGhlIGZyYW1lLCBhbmQgc3RyZXRjaGluZyBkaXN0b3J0cyB0aGUgVUksIHNvXG4gKiB0aGUgaW1hZ2UgaXMgc2NhbGVkIHRvIGZpdCB0aGUgSEVJR0hUIGFuZCB0aGUgdHdvIHNpZGUgbWFyZ2lucyBhcmUgZmlsbGVkLlxuICpcbiAqIFRoZSBnZW9tZXRyeSBpcyBhIHB1cmUgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVuaXQtdGVzdGVkOyB0aGUgcGl4ZWwgd29yayBuZWVkc1xuICogYHNoYXJwYCwgd2hpY2ggaXMgYW4gT1BUSU9OQUwgcGVlciBkZXBlbmRlbmN5IFx1MjAxNCBkZWNsYXJlZCByYXRoZXIgdGhhbiBidW5kbGVkXG4gKiBiZWNhdXNlIG9ubHkgc2NyZWVuc2hvdCBjYXB0dXJlIG5lZWRzIGl0LCBhbmQgaXQgc2hpcHMgcGxhdGZvcm0tc3BlY2lmaWNcbiAqIG5hdGl2ZSBiaW5hcmllcyB0aGF0IGV2ZXJ5IG90aGVyIGNvbnN1bWVyIHdvdWxkIHBheSBmb3IuXG4gKi9cblxuaW1wb3J0IHsgaW1wb3J0U2hhcnAgfSBmcm9tICcuL3NoYXJwLWxvYWRlci5janMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjb21wdXRlRml0VG9DYW52YXN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXB1dGVGaXRUb0NhbnZhc1BhcmFtcyB7XG4gIC8qKlxuICAgKiBIZWlnaHQgb2YgdGhlIHRhcmdldCBjYW52YXMsIGluIHBpeGVscy5cbiAgICovXG4gIHJlYWRvbmx5IGNhbnZhc0hlaWdodEluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdpZHRoIG9mIHRoZSB0YXJnZXQgY2FudmFzLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBjYW52YXNXaWR0aEluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEhlaWdodCBvZiB0aGUgc291cmNlIGltYWdlLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VIZWlnaHRJblBpeGVsczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaWR0aCBvZiB0aGUgc291cmNlIGltYWdlLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VXaWR0aEluUGl4ZWxzOiBudW1iZXI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGZpdFNjcmVlbnNob3RUb0NhbnZhc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRml0U2NyZWVuc2hvdFRvQ2FudmFzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBHYXVzc2lhbiBibHVyIHN0cmVuZ3RoIGFwcGxpZWQgdG8gdGhlIG1hcmdpbiBmaWxsLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgMjRgXG4gICAqL1xuICByZWFkb25seSBibHVyU2lnbWE/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEhlaWdodCBvZiB0aGUgdGFyZ2V0IGNhbnZhcywgaW4gcGl4ZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgY2FudmFzSGVpZ2h0SW5QaXhlbHM6IG51bWJlcjtcblxuICAvKipcbiAgICogV2lkdGggb2YgdGhlIHRhcmdldCBjYW52YXMsIGluIHBpeGVscy5cbiAgICovXG4gIHJlYWRvbmx5IGNhbnZhc1dpZHRoSW5QaXhlbHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBXaGVyZSB0aGUgc2NhbGVkIHNvdXJjZSBpbWFnZSBzaXRzIG9uIHRoZSBjYW52YXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRml0VG9DYW52YXNHZW9tZXRyeSB7XG4gIC8qKlxuICAgKiBXaWR0aCBvZiBlYWNoIHNpZGUgbWFyZ2luLCBpbiBwaXhlbHMuIEJvdGggc2lkZXMgYXJlIGVxdWFsIGJ5IGNvbnN0cnVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG1hcmdpbkluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIExlZnQgb2Zmc2V0IG9mIHRoZSBzY2FsZWQgaW1hZ2Ugb24gdGhlIGNhbnZhcywgaW4gcGl4ZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgb2Zmc2V0WEluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRvcCBvZmZzZXQgb2YgdGhlIHNjYWxlZCBpbWFnZSBvbiB0aGUgY2FudmFzLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBvZmZzZXRZSW5QaXhlbHM6IG51bWJlcjtcblxuICAvKipcbiAgICogSGVpZ2h0IHRoZSBzb3VyY2UgaXMgc2NhbGVkIHRvLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBzY2FsZWRIZWlnaHRJblBpeGVsczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaWR0aCB0aGUgc291cmNlIGlzIHNjYWxlZCB0bywgaW4gcGl4ZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NhbGVkV2lkdGhJblBpeGVsczogbnVtYmVyO1xufVxuXG4vKipcbiAqIERlZmF1bHQgR2F1c3NpYW4gYmx1ciBzdHJlbmd0aCBmb3IgdGhlIG1hcmdpbiBmaWxsOiBzb2Z0IGVub3VnaCB0aGF0IG5vXG4gKiBkZXRhaWwgcmVhZHMgYXMgY29udGVudCwgZ2VudGxlIGVub3VnaCB0byBrZWVwIHRoZSBmcmFtZSdzIGNvbG9ycy5cbiAqL1xuY29uc3QgREVGQVVMVF9CTFVSX1NJR01BID0gMjQ7XG5cbi8qKlxuICogVGhlIG51bWJlciBvZiBzaWRlIG1hcmdpbnMgdGhlIGxlZnRvdmVyIHdpZHRoIGlzIHNwbGl0IGJldHdlZW4uXG4gKi9cbmNvbnN0IE1BUkdJTl9TSURFUyA9IDI7XG5cbi8qKlxuICogQ29tcHV0ZXMgaG93IGEgc291cmNlIGltYWdlIGlzIHNjYWxlZCBhbmQgcGxhY2VkIHRvIGZpbGwgYSBjYW52YXMncyBoZWlnaHQsXG4gKiB3aXRoIGVxdWFsIG1hcmdpbnMgb24gdGhlIGxlZnQgYW5kIHJpZ2h0LlxuICpcbiAqIFRoZSBzY2FsZWQgd2lkdGggaXMgcm91bmRlZCB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIHRoYXQgbGVhdmVzIGFuIEVWRU5cbiAqIHJlbWFpbmRlciwgc28gdGhlIHR3byBtYXJnaW5zIGFyZSBleGFjdGx5IGVxdWFsIFx1MjAxNCBhbiBhc3ltbWV0cmljIHBpbGxhcmJveCBpc1xuICogdmlzaWJsZSBhdCBhIGdsYW5jZSBhbmQgbG9va3MgbGlrZSBhIG1pc3Rha2UuIFdoZXJlIGJvdGggbmVpZ2hib3JzIHF1YWxpZnksXG4gKiB0aGUgb25lIGNsb3NlciB0byB0aGUgdHJ1ZSBzY2FsZWQgd2lkdGggd2lucywgc28gdGhlIGFzcGVjdCBlcnJvciBzdGF5cyBiZWxvd1xuICogb25lIHBhcnQgaW4gYSB0aG91c2FuZC5cbiAqXG4gKiBXb3JrZWQgZXhhbXBsZSwgdGhlIG1vYmlsZSBzdG9yZSBjYXNlOiBhIDEzNDR4Mjk5MiBmcmFtZSBvbnRvIGEgOTAweDE2MDBcbiAqIGNhbnZhcyBzY2FsZXMgYnkgYDE2MDAvMjk5MmAgdG8gNzE4LjcyIHdpZGUuIDcxOSB3b3VsZCBsZWF2ZSBhIDE4MXB4XG4gKiByZW1haW5kZXIsIHdoaWNoIGNhbm5vdCBzcGxpdCBldmVubHksIHNvIDcxOCBpcyBjaG9zZW4gKG1hcmdpbiA5MSkgb3ZlciA3MjBcbiAqIChtYXJnaW4gOTApIGJlY2F1c2UgNzE4IGlzIG5lYXJlciA3MTguNzIuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBzb3VyY2UgYW5kIGNhbnZhcyBkaW1lbnNpb25zLlxuICogQHJldHVybnMgVGhlIHNjYWxlZCBzaXplLCB0aGUgb2Zmc2V0cywgYW5kIHRoZSBzaWRlIG1hcmdpbi5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgYW55IGRpbWVuc2lvbiBpcyBub3QgYSBwb3NpdGl2ZSBudW1iZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlRml0VG9DYW52YXMocGFyYW1zOiBDb21wdXRlRml0VG9DYW52YXNQYXJhbXMpOiBGaXRUb0NhbnZhc0dlb21ldHJ5IHtcbiAgY29uc3Qge1xuICAgIGNhbnZhc0hlaWdodEluUGl4ZWxzLFxuICAgIGNhbnZhc1dpZHRoSW5QaXhlbHMsXG4gICAgc291cmNlSGVpZ2h0SW5QaXhlbHMsXG4gICAgc291cmNlV2lkdGhJblBpeGVsc1xuICB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IG5hbWVkRGltZW5zaW9uczogW3N0cmluZywgbnVtYmVyXVtdID0gW1xuICAgIFsnY2FudmFzSGVpZ2h0SW5QaXhlbHMnLCBjYW52YXNIZWlnaHRJblBpeGVsc10sXG4gICAgWydjYW52YXNXaWR0aEluUGl4ZWxzJywgY2FudmFzV2lkdGhJblBpeGVsc10sXG4gICAgWydzb3VyY2VIZWlnaHRJblBpeGVscycsIHNvdXJjZUhlaWdodEluUGl4ZWxzXSxcbiAgICBbJ3NvdXJjZVdpZHRoSW5QaXhlbHMnLCBzb3VyY2VXaWR0aEluUGl4ZWxzXVxuICBdO1xuXG4gIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBuYW1lZERpbWVuc2lvbnMpIHtcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgfHwgdmFsdWUgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb21wdXRlRml0VG9DYW52YXM6ICR7bmFtZX0gbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciwgZ290ICR7U3RyaW5nKHZhbHVlKX0uYCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2NhbGVkSGVpZ2h0SW5QaXhlbHMgPSBjYW52YXNIZWlnaHRJblBpeGVscztcbiAgY29uc3QgZXhhY3RTY2FsZWRXaWR0aCA9IHNvdXJjZVdpZHRoSW5QaXhlbHMgKiAoY2FudmFzSGVpZ2h0SW5QaXhlbHMgLyBzb3VyY2VIZWlnaHRJblBpeGVscyk7XG4gIGNvbnN0IHNjYWxlZFdpZHRoSW5QaXhlbHMgPSByb3VuZFRvTWF0Y2hpbmdQYXJpdHkoZXhhY3RTY2FsZWRXaWR0aCwgY2FudmFzV2lkdGhJblBpeGVscyk7XG5cbiAgaWYgKHNjYWxlZFdpZHRoSW5QaXhlbHMgPiBjYW52YXNXaWR0aEluUGl4ZWxzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ2NvbXB1dGVGaXRUb0NhbnZhczogdGhlIHNvdXJjZSBpcyB3aWRlciB0aGFuIHRoZSBjYW52YXMgb25jZSBzY2FsZWQgdG8gaXRzIGhlaWdodCAnXG4gICAgICAgICsgYCgke1N0cmluZyhzY2FsZWRXaWR0aEluUGl4ZWxzKX0gPiAke1N0cmluZyhjYW52YXNXaWR0aEluUGl4ZWxzKX0pOyB0aGlzIGZpdHMgYnkgaGVpZ2h0IGFuZCBjYW5ub3QgbGV0dGVyYm94LmBcbiAgICApO1xuICB9XG5cbiAgY29uc3QgbWFyZ2luSW5QaXhlbHMgPSAoY2FudmFzV2lkdGhJblBpeGVscyAtIHNjYWxlZFdpZHRoSW5QaXhlbHMpIC8gTUFSR0lOX1NJREVTO1xuXG4gIHJldHVybiB7XG4gICAgbWFyZ2luSW5QaXhlbHMsXG4gICAgb2Zmc2V0WEluUGl4ZWxzOiBtYXJnaW5JblBpeGVscyxcbiAgICBvZmZzZXRZSW5QaXhlbHM6IDAsXG4gICAgc2NhbGVkSGVpZ2h0SW5QaXhlbHMsXG4gICAgc2NhbGVkV2lkdGhJblBpeGVsc1xuICB9O1xufVxuXG4vKipcbiAqIFNjYWxlcyBhIHNjcmVlbnNob3QgdG8gZmlsbCBhIGNhbnZhcydzIGhlaWdodCBhbmQgZmlsbHMgdGhlIHNpZGUgbWFyZ2lucyB3aXRoXG4gKiBhIGJsdXJyZWQsIGVubGFyZ2VkIGNvcHkgb2YgdGhlIHNhbWUgaW1hZ2UuXG4gKlxuICogTm90aGluZyBpcyBjcm9wcGVkIGFuZCBub3RoaW5nIGlzIHN0cmV0Y2hlZDogdGhlIHZpc2libGUgc2NyZWVuc2hvdCBrZWVwcyBpdHNcbiAqIGFzcGVjdCByYXRpbyB0byB3aXRoaW4gYSByb3VuZGluZyBwaXhlbCwgYW5kIHRoZSBtYXJnaW5zIGFyZSBtYWRlIG9mIHRoZVxuICogaW1hZ2UgaXRzZWxmIHJhdGhlciB0aGFuIGEgZmxhdCBjb2xvciwgc28gdGhlIHJlc3VsdCByZWFkcyBhcyBvbmUgZnJhbWUuXG4gKlxuICogQHBhcmFtIGJ5dGVzIC0gVGhlIHNvdXJjZSBQTkcuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB0YXJnZXQgY2FudmFzIHNpemUgYW5kIGJsdXIgc3RyZW5ndGguXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBjb21wb3NlZCBQTkcsIGV4YWN0bHkgdGhlIGNhbnZhcyBzaXplLlxuICogQHRocm93cyBFcnJvciBpZiBgc2hhcnBgIGlzIG5vdCBpbnN0YWxsZWQsIG9yIHRoZSBzb3VyY2UgZGltZW5zaW9ucyBjYW5ub3QgYmUgcmVhZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpdFNjcmVlbnNob3RUb0NhbnZhcyhieXRlczogVWludDhBcnJheSwgb3B0aW9uczogRml0U2NyZWVuc2hvdFRvQ2FudmFzT3B0aW9ucyk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBjb25zdCB7XG4gICAgYmx1clNpZ21hID0gREVGQVVMVF9CTFVSX1NJR01BLFxuICAgIGNhbnZhc0hlaWdodEluUGl4ZWxzLFxuICAgIGNhbnZhc1dpZHRoSW5QaXhlbHNcbiAgfSA9IG9wdGlvbnM7XG5cbiAgY29uc3Qgc2hhcnAgPSBhd2FpdCBpbXBvcnRTaGFycCgnZml0U2NyZWVuc2hvdFRvQ2FudmFzJyk7XG4gIGNvbnN0IG1ldGFkYXRhID0gYXdhaXQgc2hhcnAoYnl0ZXMpLm1ldGFkYXRhKCk7XG4gIGNvbnN0IHNvdXJjZVdpZHRoSW5QaXhlbHMgPSBtZXRhZGF0YS53aWR0aDtcbiAgY29uc3Qgc291cmNlSGVpZ2h0SW5QaXhlbHMgPSBtZXRhZGF0YS5oZWlnaHQ7XG5cbiAgLyogdjggaWdub3JlIG5leHQgMyAtLSBEZWZlbnNpdmU6IGBzaGFycGAgcmVqZWN0cyBhIG5vbi1pbWFnZSBiZWZvcmUgaXQgY2FuIHJlcG9ydCBtZXRhZGF0YSB3aXRob3V0IGRpbWVuc2lvbnMsIHNvIHRoaXMgYnJhbmNoIGlzIHVucmVhY2hhYmxlIGZyb20gYSB0ZXN0LiAqL1xuICBpZiAoc291cmNlV2lkdGhJblBpeGVscyA9PT0gdW5kZWZpbmVkIHx8IHNvdXJjZUhlaWdodEluUGl4ZWxzID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZpdFNjcmVlbnNob3RUb0NhbnZhczogY291bGQgbm90IHJlYWQgdGhlIHNvdXJjZSBpbWFnZSBkaW1lbnNpb25zLicpO1xuICB9XG5cbiAgY29uc3QgZ2VvbWV0cnkgPSBjb21wdXRlRml0VG9DYW52YXMoe1xuICAgIGNhbnZhc0hlaWdodEluUGl4ZWxzLFxuICAgIGNhbnZhc1dpZHRoSW5QaXhlbHMsXG4gICAgc291cmNlSGVpZ2h0SW5QaXhlbHMsXG4gICAgc291cmNlV2lkdGhJblBpeGVsc1xuICB9KTtcblxuICAvLyBUaGUgYmFja2dyb3VuZCBpcyB0aGUgc2FtZSBmcmFtZSBibG93biB1cCB0byBDT1ZFUiB0aGUgY2FudmFzIGFuZCBibHVycmVkLFxuICAvLyBzbyB0aGUgbWFyZ2lucyBjYXJyeSB0aGUgc2NyZWVuc2hvdCdzIG93biBjb2xvcnMgaW5zdGVhZCBvZiBhIGZsYXQgYmFyLlxuICBjb25zdCBiYWNrZ3JvdW5kID0gYXdhaXQgc2hhcnAoYnl0ZXMpXG4gICAgLnJlc2l6ZShjYW52YXNXaWR0aEluUGl4ZWxzLCBjYW52YXNIZWlnaHRJblBpeGVscywgeyBmaXQ6ICdjb3ZlcicgfSlcbiAgICAuYmx1cihibHVyU2lnbWEpXG4gICAgLnRvQnVmZmVyKCk7XG5cbiAgY29uc3QgZm9yZWdyb3VuZCA9IGF3YWl0IHNoYXJwKGJ5dGVzKVxuICAgIC5yZXNpemUoZ2VvbWV0cnkuc2NhbGVkV2lkdGhJblBpeGVscywgZ2VvbWV0cnkuc2NhbGVkSGVpZ2h0SW5QaXhlbHMsIHsgZml0OiAnZmlsbCcgfSlcbiAgICAudG9CdWZmZXIoKTtcblxuICBjb25zdCBjb21wb3NlZCA9IGF3YWl0IHNoYXJwKGJhY2tncm91bmQpXG4gICAgLmNvbXBvc2l0ZShbe1xuICAgICAgaW5wdXQ6IGZvcmVncm91bmQsXG4gICAgICBsZWZ0OiBnZW9tZXRyeS5vZmZzZXRYSW5QaXhlbHMsXG4gICAgICB0b3A6IGdlb21ldHJ5Lm9mZnNldFlJblBpeGVsc1xuICAgIH1dKVxuICAgIC5wbmcoKVxuICAgIC50b0J1ZmZlcigpO1xuXG4gIHJldHVybiBuZXcgVWludDhBcnJheShjb21wb3NlZCk7XG59XG5cbi8qKlxuICogUm91bmRzIGEgd2lkdGggdG8gdGhlIG5lYXJlc3QgaW50ZWdlciBzaGFyaW5nIGB0YXJnZXRgJ3MgcGFyaXR5LCBzb1xuICogYHRhcmdldCAtIHJlc3VsdGAgaXMgZXZlbiBhbmQgc3BsaXRzIGludG8gdHdvIGVxdWFsIG1hcmdpbnMuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIGV4YWN0IHNjYWxlZCB3aWR0aC5cbiAqIEBwYXJhbSB0YXJnZXQgLSBUaGUgY2FudmFzIHdpZHRoIHdob3NlIHBhcml0eSBtdXN0IGJlIG1hdGNoZWQuXG4gKiBAcmV0dXJucyBUaGUgbmVhcmVzdCBpbnRlZ2VyIG9mIHRoZSBzYW1lIHBhcml0eSBhcyBgdGFyZ2V0YC5cbiAqL1xuZnVuY3Rpb24gcm91bmRUb01hdGNoaW5nUGFyaXR5KHZhbHVlOiBudW1iZXIsIHRhcmdldDogbnVtYmVyKTogbnVtYmVyIHtcbiAgY29uc3Qgcm91bmRlZCA9IE1hdGgucm91bmQodmFsdWUpO1xuICBpZiAoKHRhcmdldCAtIHJvdW5kZWQpICUgTUFSR0lOX1NJREVTID09PSAwKSB7XG4gICAgcmV0dXJuIHJvdW5kZWQ7XG4gIH1cblxuICAvLyBgcm91bmRlZGAgbGVhdmVzIGFuIG9kZCByZW1haW5kZXIsIHNvIHN0ZXAgdG8gd2hpY2hldmVyIG5laWdoYm9yIGlzIGNsb3NlclxuICAvLyB0byB0aGUgdHJ1ZSB2YWx1ZTsgYm90aCBoYXZlIHRoZSBwYXJpdHkgYHJvdW5kZWRgIGxhY2tzLlxuICByZXR1cm4gdmFsdWUgPj0gcm91bmRlZCA/IHJvdW5kZWQgKyAxIDogcm91bmRlZCAtIDE7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQkEsMEJBQTRCO0FBbUY1QixNQUFNLHFCQUFxQjtBQUszQixNQUFNLGVBQWU7QUFxQmQsU0FBUyxtQkFBbUIsUUFBdUQ7QUFDeEYsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixRQUFNLGtCQUFzQztBQUFBLElBQzFDLENBQUMsd0JBQXdCLG9CQUFvQjtBQUFBLElBQzdDLENBQUMsdUJBQXVCLG1CQUFtQjtBQUFBLElBQzNDLENBQUMsd0JBQXdCLG9CQUFvQjtBQUFBLElBQzdDLENBQUMsdUJBQXVCLG1CQUFtQjtBQUFBLEVBQzdDO0FBRUEsYUFBVyxDQUFDLE1BQU0sS0FBSyxLQUFLLGlCQUFpQjtBQUMzQyxRQUFJLENBQUMsT0FBTyxTQUFTLEtBQUssS0FBSyxTQUFTLEdBQUc7QUFDekMsWUFBTSxJQUFJLE1BQU0sdUJBQXVCLElBQUksbUNBQW1DLE9BQU8sS0FBSyxDQUFDLEdBQUc7QUFBQSxJQUNoRztBQUFBLEVBQ0Y7QUFFQSxRQUFNLHVCQUF1QjtBQUM3QixRQUFNLG1CQUFtQix1QkFBdUIsdUJBQXVCO0FBQ3ZFLFFBQU0sc0JBQXNCLHNCQUFzQixrQkFBa0IsbUJBQW1CO0FBRXZGLE1BQUksc0JBQXNCLHFCQUFxQjtBQUM3QyxVQUFNLElBQUk7QUFBQSxNQUNSLHNGQUNRLE9BQU8sbUJBQW1CLENBQUMsTUFBTSxPQUFPLG1CQUFtQixDQUFDO0FBQUEsSUFDdEU7QUFBQSxFQUNGO0FBRUEsUUFBTSxrQkFBa0Isc0JBQXNCLHVCQUF1QjtBQUVyRSxTQUFPO0FBQUEsSUFDTDtBQUFBLElBQ0EsaUJBQWlCO0FBQUEsSUFDakIsaUJBQWlCO0FBQUEsSUFDakI7QUFBQSxJQUNBO0FBQUEsRUFDRjtBQUNGO0FBZUEsZUFBc0Isc0JBQXNCLE9BQW1CLFNBQTREO0FBQ3pILFFBQU07QUFBQSxJQUNKLFlBQVk7QUFBQSxJQUNaO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUVKLFFBQU0sUUFBUSxVQUFNLGlDQUFZLHVCQUF1QjtBQUN2RCxRQUFNLFdBQVcsTUFBTSxNQUFNLEtBQUssRUFBRSxTQUFTO0FBQzdDLFFBQU0sc0JBQXNCLFNBQVM7QUFDckMsUUFBTSx1QkFBdUIsU0FBUztBQUd0QyxNQUFJLHdCQUF3QixVQUFhLHlCQUF5QixRQUFXO0FBQzNFLFVBQU0sSUFBSSxNQUFNLG9FQUFvRTtBQUFBLEVBQ3RGO0FBRUEsUUFBTSxXQUFXLG1CQUFtQjtBQUFBLElBQ2xDO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixDQUFDO0FBSUQsUUFBTSxhQUFhLE1BQU0sTUFBTSxLQUFLLEVBQ2pDLE9BQU8scUJBQXFCLHNCQUFzQixFQUFFLEtBQUssUUFBUSxDQUFDLEVBQ2xFLEtBQUssU0FBUyxFQUNkLFNBQVM7QUFFWixRQUFNLGFBQWEsTUFBTSxNQUFNLEtBQUssRUFDakMsT0FBTyxTQUFTLHFCQUFxQixTQUFTLHNCQUFzQixFQUFFLEtBQUssT0FBTyxDQUFDLEVBQ25GLFNBQVM7QUFFWixRQUFNLFdBQVcsTUFBTSxNQUFNLFVBQVUsRUFDcEMsVUFBVSxDQUFDO0FBQUEsSUFDVixPQUFPO0FBQUEsSUFDUCxNQUFNLFNBQVM7QUFBQSxJQUNmLEtBQUssU0FBUztBQUFBLEVBQ2hCLENBQUMsQ0FBQyxFQUNELElBQUksRUFDSixTQUFTO0FBRVosU0FBTyxJQUFJLFdBQVcsUUFBUTtBQUNoQztBQVVBLFNBQVMsc0JBQXNCLE9BQWUsUUFBd0I7QUFDcEUsUUFBTSxVQUFVLEtBQUssTUFBTSxLQUFLO0FBQ2hDLE9BQUssU0FBUyxXQUFXLGlCQUFpQixHQUFHO0FBQzNDLFdBQU87QUFBQSxFQUNUO0FBSUEsU0FBTyxTQUFTLFVBQVUsVUFBVSxJQUFJLFVBQVU7QUFDcEQ7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -49,4 +49,4 @@ function generateNamespaceCall(params) {
|
|
|
49
49
|
generateFunctionCall,
|
|
50
50
|
generateNamespaceCall
|
|
51
51
|
});
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlLWZ1bmN0aW9uLWNhbGwudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBHZW5lcmF0ZXMgYSBKYXZhU2NyaXB0IGV4cHJlc3Npb24gdGhhdCBjYWxscyBhIHNlcmlhbGl6ZWQgZnVuY3Rpb24gd2l0aCBzZXJpYWxpemVkIGFyZ3VtZW50cy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7IGdldEZ1bmN0aW9uRXhwcmVzc2lvblN0cmluZyB9IGZyb20gJy4vZnVuY3Rpb24tZXhwcmVzc2lvbi5janMnO1xuaW1wb3J0IHsganNvbldpdGhGdW5jdGlvbnMgfSBmcm9tICcuL2pzb24td2l0aC1mdW5jdGlvbnMuY2pzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIHdpdGggYGVuc3VyZUxheW91dFJlYWR5YCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnN1cmVMYXlvdXRSZWFkeVBhcmFtcyB7XG4gIC8qKlxuICAgKiBXYWl0cyBmb3IgdGhlIE9ic2lkaWFuIHdvcmtzcGFjZSBsYXlvdXQgdG8gYmUgcmVhZHkuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBQYXJhbWV0ZXJzIGluY2x1ZGluZyB0aGUgYGFwcGAgaW5zdGFuY2UuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGxheW91dCBpcyByZWFkeS5cbiAgICovXG4gIHJlYWRvbmx5IGVuc3VyZUxheW91dFJlYWR5OiAocGFyYW1zOiBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbFBhcmFtcykgPT4gUHJvbWlzZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBgZ2VuZXJhdGVGdW5jdGlvbkNhbGxgLlxuICpcbiAqIEB0eXBlUGFyYW0gUGFyYW1zIC0gVGhlIHR5cGUgb2YgdGhlIGFkZGl0aW9uYWwgcGFyYW1ldGVycyB0byBwYXNzIHRvIHRoZSBmdW5jdGlvbiBiZWluZyBjYWxsZWQuXG4gKi9cbmV4cG9ydCB0eXBlIEdlbmVyYXRlRnVuY3Rpb25DYWxsUGFyYW1zPFBhcmFtcyA9IHVua25vd24+ID0gQXBwUGFyYW1zICYgUGFyYW1zO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBnZW5lcmF0ZU5hbWVzcGFjZUNhbGx9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlTmFtZXNwYWNlQ2FsbFBhcmFtcyB7XG4gIC8qKlxuICBUaGUgdXNlciBmdW5jdGlvbiB0byBldmFsdWF0ZSBpbnNpZGUgT2JzaWRpYW4uXG4gICAqL1xuICByZWFkb25seSBjYWxsYmFjazogKC4uLmlucHV0OiBuZXZlcltdKSA9PiB1bmtub3duO1xuICAvKipcbiAgT3B0aW9uYWwgY29udGV4dCBJRCBmb3IgcGVyc2lzdGVudCBzdG9yYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dElkPzogc3RyaW5nO1xuICAvKipcbiAgVXNlci1zdXBwbGllZCBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBpbnB1dD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5pbnRlcmZhY2UgQXBwUGFyYW1zIHtcbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG59XG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuXG4vKipcbiAqIEdlbmVyYXRlcyBhIEphdmFTY3JpcHQgZXhwcmVzc2lvbiBzdHJpbmcgdGhhdCBpbW1lZGlhdGVseSBpbnZva2VzIHRoZSBnaXZlblxuICogZnVuY3Rpb24gd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzLlxuICpcbiAqIFRoZSBmdW5jdGlvbiBpcyBzZXJpYWxpemVkIHZpYSB7QGxpbmsgZ2V0RnVuY3Rpb25FeHByZXNzaW9uU3RyaW5nfSBhbmQgdGhlXG4gKiBhcmd1bWVudHMgYXJlIHNlcmlhbGl6ZWQgdmlhIHtAbGluayBqc29uV2l0aEZ1bmN0aW9uc30sIHByb2R1Y2luZyBhXG4gKiBzZWxmLWNvbnRhaW5lZCBJSUZFIG9mIHRoZSBmb3JtIGAoZm5FeHByKShhcmdzRXhwcilgLlxuICpcbiAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBmdW5jdGlvbiB0byBjYWxsLlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBhcmd1bWVudHMgdG8gcGFzcy4gV2hlbiBvbWl0dGVkLCB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggbm8gYXJndW1lbnRzLlxuICogQHJldHVybnMgQSBKYXZhU2NyaXB0IGV4cHJlc3Npb24gc3RyaW5nLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBTZXJpYWxpemVkIHZpYSB0b1N0cmluZygpIGFuZCBleGVjdXRlZCBpbnNpZGUgT2JzaWRpYW4sIG5vdCBjYWxsYWJsZSBpbiB1bml0IHRlc3RzLiAqL1xuLyoqXG4gKiBXYWl0cyBmb3IgdGhlIE9ic2lkaWFuIHdvcmtzcGFjZSBsYXlvdXQgdG8gYmUgcmVhZHkuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzLCBpbmNsdWRpbmcgdGhlIGBhcHBgIGluc3RhbmNlLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbGF5b3V0IGlzIHJlYWR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW4tZGV2LXV0aWxzL3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2ggLS0gUGVybWFuZW50OiBgR2VuZXJhdGVGdW5jdGlvbkNhbGxQYXJhbXNgIGlzIHRoZSBzaGFyZWQgYXBwLXBsdXMtYXJndW1lbnRzIGJhZyBldmVyeSBzZXJpYWxpemVkIGNhbGxiYWNrIHRha2VzLCBzbyBubyBwZXItb3duZXIgbmFtZSBjYW4gc2F0aXNmeSB0aGVtIGFsbC5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVMYXlvdXRSZWFkeShwYXJhbXM6IEdlbmVyYXRlRnVuY3Rpb25DYWxsUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgcGFyYW1zLmFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeShyZXNvbHZlKTtcbiAgfSk7XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIGEgSmF2YVNjcmlwdCBleHByZXNzaW9uIHN0cmluZyB0aGF0IGltbWVkaWF0ZWx5IGludm9rZXMgdGhlIGdpdmVuXG4gKiBmdW5jdGlvbiB3aXRoIHRoZSBnaXZlbiBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGZ1bmN0aW9uIHRvIGNhbGwuXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGFyZ3VtZW50cyB0byBwYXNzLlxuICogQHJldHVybnMgQSBKYXZhU2NyaXB0IGV4cHJlc3Npb24gc3RyaW5nLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW4tZGV2LXV0aWxzL3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2ggLS0gUGVybWFuZW50OiBgUGFyYW1zYCBpcyBhIHR5cGUgcGFyYW1ldGVyIG9mIHRoaXMgZnVuY3Rpb24gcmF0aGVyIHRoYW4gYSBiYWcgdHlwZSwgYW5kIHRoZSBhbGlhcyBhYm92ZSBhbHJlYWR5IGhvbGRzIHRoZSBuYW1lIHRoZSBydWxlIGRlcml2ZXMuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVGdW5jdGlvbkNhbGw8UGFyYW1zPihjYWxsYmFjazogKHBhcmFtczogR2VuZXJhdGVGdW5jdGlvbkNhbGxQYXJhbXM8UGFyYW1zPikgPT4gUHJvbWlzYWJsZTx1bmtub3duPiwgcGFyYW1zOiBQYXJhbXMpOiBzdHJpbmcge1xuICBjb25zdCBmdW5jdGlvbkV4cHJlc3Npb24gPSBnZXRGdW5jdGlvbkV4cHJlc3Npb25TdHJpbmcoY2FsbGJhY2spO1xuICBjb25zdCBzZXJpYWxpemVkUGFyYW1zID0ganNvbldpdGhGdW5jdGlvbnMocGFyYW1zKTtcbiAgcmV0dXJuIGAoJHtmdW5jdGlvbkV4cHJlc3Npb259KShPYmplY3QuYXNzaWduKCR7c2VyaWFsaXplZFBhcmFtc30sIHsgYXBwOiB3aW5kb3cuYXBwIH0pKWA7XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIGEgbGlnaHR3ZWlnaHQgSmF2YVNjcmlwdCBleHByZXNzaW9uIHRoYXQgY2FsbHMgdGhlIHByZS1yZWdpc3RlcmVkXG4gKiBgZXZhbFdyYXBwZXJgIG9uIHRoZSBgd2luZG93Ll9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdgIG5hbWVzcGFjZS5cbiAqXG4gKiBVbmxpa2Uge0BsaW5rIGdlbmVyYXRlRnVuY3Rpb25DYWxsfSwgdGhpcyBkb2VzIG5vdCBzZXJpYWxpemUgaW5mcmFzdHJ1Y3R1cmVcbiAqIGZ1bmN0aW9ucyBcdTIwMTQgb25seSB0aGUgdXNlcidzIGBjYWxsYmFja2AsIGBpbnB1dGAsIGFuZCBgY29udGV4dElkYC4gVGhlIGluZnJhc3RydWN0dXJlXG4gKiBtdXN0IGFscmVhZHkgYmUgYm9vdHN0cmFwcGVkIHZpYSB7QGxpbmsgZW5zdXJlTmFtZXNwYWNlQm9vdHN0cmFwcGVkfS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHVzZXIgZnVuY3Rpb24sIGFyZ3VtZW50cywgYW5kIG9wdGlvbmFsIGNvbnRleHQgSUQuXG4gKiBAcmV0dXJucyBBIEphdmFTY3JpcHQgZXhwcmVzc2lvbiBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZU5hbWVzcGFjZUNhbGwocGFyYW1zOiBHZW5lcmF0ZU5hbWVzcGFjZUNhbGxQYXJhbXMpOiBzdHJpbmcge1xuICBjb25zdCBzZXJpYWxpemVkUGFyYW1zID0ganNvbldpdGhGdW5jdGlvbnMoe1xuICAgIGlucHV0OiBwYXJhbXMuaW5wdXQgPz8ge30sXG4gICAgLi4uKHBhcmFtcy5jb250ZXh0SWQgIT09IHVuZGVmaW5lZCAmJiB7IGNvbnRleHRJZDogcGFyYW1zLmNvbnRleHRJZCB9KSxcbiAgICBjYWxsYmFjazogcGFyYW1zLmNhbGxiYWNrXG4gIH0pO1xuICByZXR1cm4gYHdpbmRvdy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nLmV2YWxXcmFwcGVyKCR7c2VyaWFsaXplZFBhcmFtc30pYDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0EsaUNBQTRDO0FBQzVDLGlDQUFrQztBQWtFbEMsZUFBc0Isa0JBQWtCLFFBQW1EO0FBQ3pGLFFBQU0sSUFBSSxRQUFjLENBQUMsWUFBWTtBQUNuQyxXQUFPLElBQUksVUFBVSxjQUFjLE9BQU87QUFBQSxFQUM1QyxDQUFDO0FBQ0g7QUFXTyxTQUFTLHFCQUE2QixVQUErRSxRQUF3QjtBQUNsSixRQUFNLHlCQUFxQix3REFBNEIsUUFBUTtBQUMvRCxRQUFNLHVCQUFtQiw4Q0FBa0IsTUFBTTtBQUNqRCxTQUFPLElBQUksa0JBQWtCLG1CQUFtQixnQkFBZ0I7QUFDbEU7QUFhTyxTQUFTLHNCQUFzQixRQUE2QztBQUNqRixRQUFNLHVCQUFtQiw4Q0FBa0I7QUFBQSxJQUN6QyxPQUFPLE9BQU8sU0FBUyxDQUFDO0FBQUEsSUFDeEIsR0FBSSxPQUFPLGNBQWMsVUFBYSxFQUFFLFdBQVcsT0FBTyxVQUFVO0FBQUEsSUFDcEUsVUFBVSxPQUFPO0FBQUEsRUFDbkIsQ0FBQztBQUNELFNBQU8sbURBQW1ELGdCQUFnQjtBQUM1RTsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -15,7 +15,7 @@ export interface EnsureLayoutReadyParams {
|
|
|
15
15
|
* @param params - Parameters including the `app` instance.
|
|
16
16
|
* @returns A promise that resolves when the layout is ready.
|
|
17
17
|
*/
|
|
18
|
-
ensureLayoutReady(params: GenerateFunctionCallParams)
|
|
18
|
+
readonly ensureLayoutReady: (params: GenerateFunctionCallParams) => Promise<void>;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* Parameters for `generateFunctionCall`.
|