appium-xcuitest-driver 4.4.0 → 4.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -2
- package/build/index.js +1 -1
- package/build/lib/app-utils.js +1 -1
- package/build/lib/build-wda.js +1 -1
- package/build/lib/cert-utils.js +1 -1
- package/build/lib/commands/activeAppInfo.js +1 -1
- package/build/lib/commands/alert.js +1 -1
- package/build/lib/commands/app-management.js +1 -1
- package/build/lib/commands/appearance.js +1 -1
- package/build/lib/commands/battery.js +1 -1
- package/build/lib/commands/biometric.js +1 -1
- package/build/lib/commands/certificate.js +1 -1
- package/build/lib/commands/clipboard.js +1 -1
- package/build/lib/commands/context.js +1 -1
- package/build/lib/commands/cookies.js +1 -1
- package/build/lib/commands/deviceInfo.js +1 -1
- package/build/lib/commands/element.js +1 -1
- package/build/lib/commands/execute.js +1 -1
- package/build/lib/commands/file-movement.js +1 -1
- package/build/lib/commands/find.js +1 -1
- package/build/lib/commands/general.js +1 -1
- package/build/lib/commands/gesture.js +1 -1
- package/build/lib/commands/index.js +1 -1
- package/build/lib/commands/iohid.js +1 -1
- package/build/lib/commands/keychains.js +1 -1
- package/build/lib/commands/localization.js +1 -1
- package/build/lib/commands/location.js +1 -1
- package/build/lib/commands/lock.js +1 -1
- package/build/lib/commands/log.js +1 -1
- package/build/lib/commands/navigation.js +1 -1
- package/build/lib/commands/notifications.js +1 -1
- package/build/lib/commands/pasteboard.js +1 -1
- package/build/lib/commands/pcap.js +1 -1
- package/build/lib/commands/performance.js +1 -1
- package/build/lib/commands/permissions.js +1 -1
- package/build/lib/commands/proxy-helper.js +1 -1
- package/build/lib/commands/record-audio.js +1 -1
- package/build/lib/commands/recordscreen.js +1 -1
- package/build/lib/commands/screenshots.js +1 -1
- package/build/lib/commands/source.js +1 -1
- package/build/lib/commands/timeouts.js +1 -1
- package/build/lib/commands/web.js +1 -1
- package/build/lib/commands/xctest.js +1 -1
- package/build/lib/cookies.js +1 -1
- package/build/lib/css-converter.js +1 -1
- package/build/lib/desired-caps.js +1 -4
- package/build/lib/device-connections-factory.js +1 -1
- package/build/lib/device-log/ios-crash-log.js +1 -1
- package/build/lib/device-log/ios-device-log.js +1 -1
- package/build/lib/device-log/ios-log.js +1 -1
- package/build/lib/device-log/ios-performance-log.js +1 -1
- package/build/lib/device-log/ios-simulator-log.js +1 -1
- package/build/lib/device-log/rotating-log.js +1 -1
- package/build/lib/device-log/safari-console-log.js +1 -1
- package/build/lib/device-log/safari-network-log.js +1 -1
- package/build/lib/driver.js +1 -1
- package/build/lib/ios-deploy.js +1 -1
- package/build/lib/ios-fs-helpers.js +1 -1
- package/build/lib/ios-generic-simulators.js +1 -1
- package/build/lib/logger.js +1 -1
- package/build/lib/py-ios-device-client.js +1 -1
- package/build/lib/real-device-management.js +1 -1
- package/build/lib/server.js +1 -1
- package/build/lib/simulator-management.js +1 -1
- package/build/lib/utils.js +1 -1
- package/lib/desired-caps.js +0 -3
- package/npm-shrinkwrap.json +39205 -1911
- package/package.json +9 -16
package/README.md
CHANGED
|
@@ -97,7 +97,6 @@ Usage: `appium --driver-args='{"xcuitest": {[argName]: [argValue]}}'`
|
|
|
97
97
|
|
|
98
98
|
|Argument|Default|Description|Example|
|
|
99
99
|
|----|-------|-----------|-------|
|
|
100
|
-
|`"webkitDebugProxyPort"`|27753|Local port used for communication with ios-webkit-debug-proxy|`--driver-args='{"xcuitest": {"webkitDebugProxyPort": 27753}}'`|
|
|
101
100
|
|`"wdaLocalPort"`|8100| Local port used for communication with ios-web-driver-agent|`--driver-args='{"xcuitest": {"wdaLocalPort": 8100}}'`|
|
|
102
101
|
|
|
103
102
|
## Capabilities
|
|
@@ -158,7 +157,7 @@ Capability | Description
|
|
|
158
157
|
|`appium:useXctestrunFile`|Use Xctestrun file to launch WDA. It will search for such file in `bootstrapPath`. Expected name of file is `WebDriverAgentRunner_iphoneos<sdkVersion>-arm64.xctestrun` for real device and `WebDriverAgentRunner_iphonesimulator<sdkVersion>-x86_64.xctestrun` for simulator. One can do `build-for-testing` for `WebDriverAgent` project for simulator and real device and then you will see [Product Folder like this](docs/useXctestrunFile.png) and you need to copy content of this folder at `bootstrapPath` location. Since this capability expects that you have already built `WDA` project, it neither checks whether you have necessary dependencies to build `WDA` nor will it try to build project. Defaults to `false`. _Tips: `Xcodebuild` builds for the target platform version. We'd recommend you to build with minimal OS version which you'd like to run as the original WDA module. e.g. If you build WDA for 12.2, the module cannot run on iOS 11.4 because of loading some module error on simulator. A module built with 11.4 can work on iOS 12.2. (This is xcodebuild's expected behaviour.)_ |e.g., `true`|
|
|
159
158
|
|`appium:useSimpleBuildTest`| Build with `build` and run test with `test` in xcodebuild for all Xcode version if this is `true`, or build with `build-for-testing` and run tests with `test-without-building` for over Xcode 8 if this is `false`. Defaults to `false`. | `true` or `false` |
|
|
160
159
|
|`appium:wdaEventloopIdleDelay`|Delays the invocation of `-[XCUIApplicationProcess setEventLoopHasIdled:]` by the number of seconds specified with this capability. This can help quiescence apps that fail to do so for no obvious reason (and creating a session fails for that reason). This increases the time for session creation because `-[XCUIApplicationProcess setEventLoopHasIdled:]` is called multiple times. If you enable this capability start with at least `3` seconds and try increasing it, if creating the session still fails. Defaults to `0`. |e.g. `5`|
|
|
161
|
-
|`appium:processArguments`|Process arguments and environment which will be sent to the `WebDriverAgent` server
|
|
160
|
+
|`appium:processArguments`|Process arguments and environment which will be sent to the `WebDriverAgent` server in a new session request. Please use [mobile:launchApp](https://github.com/appium/appium-xcuitest-driver#mobile-launchapp) to launch an application with process arguments in the middle of a session. |`{ args: ["a", "b", "c"] , env: { "a": "b", "c": "d" } }` or `'{"args": ["a", "b", "c"], "env": { "a": "b", "c": "d" }}'`|
|
|
162
161
|
|`appium:autoLaunch`|When set to `false`, prevents the application under test from being launched automatically as a part of the new session startup process. The launch become the responsibility of the user. Defaults to `true`.|`true` or `false`|
|
|
163
162
|
|`appium:allowProvisioningDeviceRegistration`|Allow `xcodebuild` to register your destination device on the developer portal if necessary. Requires a developer account to have been added in Xcode's Accounts preference pane. Defaults to `false`.|`true` or `false`|
|
|
164
163
|
|`appium:resultBundlePath`| Specify the path to the result bundle path as `xcodebuild` argument for `WebDriverAgent` build under a security flag (Please check _Opt-in Features_ section below). `WebDriverAgent` process must start/stop every time to pick up changed value of this property. Specifying `useNewWDA` to `true` may help there. Please read `man xcodebuild` for more details. | e.g. `/path/to/resultbundle` |
|
package/build/index.js
CHANGED
|
@@ -47,4 +47,4 @@ var _default = XCUITestDriver;
|
|
|
47
47
|
exports.default = _default;require('source-map-support').install();
|
|
48
48
|
|
|
49
49
|
|
|
50
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6WyJYQ1VJVGVzdERyaXZlciIsImRyaXZlciIsInN0YXJ0U2VydmVyIiwic2VydmVyIiwiREVGQVVMVF9IT1NUIiwiREVGQVVMVF9QT1JUIiwibWFpbiIsImdldEFyZ1ZhbHVlIiwiYXJnTmFtZSIsImFyZ0luZGV4IiwicHJvY2VzcyIsImFyZ3YiLCJpbmRleE9mIiwicG9ydCIsInBhcnNlSW50IiwiaG9zdCIsInJlcXVpcmUiLCJtb2R1bGUiLCJhc3luY2lmeSJdLCJzb3VyY2VSb290IjoiLi4iLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHRyYW5zcGlsZTptYWluXG5cbmltcG9ydCB7IGFzeW5jaWZ5IH0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0ICogYXMgZHJpdmVyIGZyb20gJy4vbGliL2RyaXZlcic7XG5pbXBvcnQgKiBhcyBzZXJ2ZXIgZnJvbSAnLi9saWIvc2VydmVyJztcblxuXG5jb25zdCB7IFhDVUlUZXN0RHJpdmVyIH0gPSBkcml2ZXI7XG5jb25zdCB7IHN0YXJ0U2VydmVyIH0gPSBzZXJ2ZXI7XG5cbmNvbnN0IERFRkFVTFRfSE9TVCA9ICdsb2NhbGhvc3QnO1xuY29uc3QgREVGQVVMVF9QT1JUID0gNDcyMztcblxuYXN5bmMgZnVuY3Rpb24gbWFpbiAoKSB7XG4gIGNvbnN0IGdldEFyZ1ZhbHVlID0gKGFyZ05hbWUpID0+IHtcbiAgICBjb25zdCBhcmdJbmRleCA9IHByb2Nlc3MuYXJndi5pbmRleE9mKGFyZ05hbWUpO1xuICAgIHJldHVybiBhcmdJbmRleCA+IDAgPyBwcm9jZXNzLmFyZ3ZbYXJnSW5kZXggKyAxXSA6IG51bGw7XG4gIH07XG4gIGNvbnN0IHBvcnQgPSBwYXJzZUludChnZXRBcmdWYWx1ZSgnLS1wb3J0JyksIDEwKSB8fCBERUZBVUxUX1BPUlQ7XG4gIGNvbnN0IGhvc3QgPSBnZXRBcmdWYWx1ZSgnLS1ob3N0JykgfHwgREVGQVVMVF9IT1NUO1xuICByZXR1cm4gYXdhaXQgc3RhcnRTZXJ2ZXIocG9ydCwgaG9zdCk7XG59XG5cbmlmIChyZXF1aXJlLm1haW4gPT09IG1vZHVsZSkge1xuICBhc3luY2lmeShtYWluKTtcbn1cblxuZXhwb3J0IHsgWENVSVRlc3REcml2ZXIsIHN0YXJ0U2VydmVyIH07XG5leHBvcnQgZGVmYXVsdCBYQ1VJVGVzdERyaXZlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQUdBLE1BQU07RUFBRUE7QUFBRixJQUFxQkMsTUFBM0I7O0FBQ0EsTUFBTTtFQUFFQztBQUFGLElBQWtCQyxNQUF4Qjs7QUFFQSxNQUFNQyxZQUFZLEdBQUcsV0FBckI7QUFDQSxNQUFNQyxZQUFZLEdBQUcsSUFBckI7O0FBRUEsZUFBZUMsSUFBZixHQUF1QjtFQUNyQixNQUFNQyxXQUFXLEdBQUlDLE9BQUQsSUFBYTtJQUMvQixNQUFNQyxRQUFRLEdBQUdDLE9BQU8sQ0FBQ0MsSUFBUixDQUFhQyxPQUFiLENBQXFCSixPQUFyQixDQUFqQjtJQUNBLE9BQU9DLFFBQVEsR0FBRyxDQUFYLEdBQWVDLE9BQU8sQ0FBQ0MsSUFBUixDQUFhRixRQUFRLEdBQUcsQ0FBeEIsQ0FBZixHQUE0QyxJQUFuRDtFQUNELENBSEQ7O0VBSUEsTUFBTUksSUFBSSxHQUFHQyxRQUFRLENBQUNQLFdBQVcsQ0FBQyxRQUFELENBQVosRUFBd0IsRUFBeEIsQ0FBUixJQUF1Q0YsWUFBcEQ7RUFDQSxNQUFNVSxJQUFJLEdBQUdSLFdBQVcsQ0FBQyxRQUFELENBQVgsSUFBeUJILFlBQXRDO0VBQ0EsT0FBTyxNQUFNRixXQUFXLENBQUNXLElBQUQsRUFBT0UsSUFBUCxDQUF4QjtBQUNEOztBQUVELElBQUlDLE9BQU8sQ0FBQ1YsSUFBUixLQUFpQlcsTUFBckIsRUFBNkI7RUFDM0IsSUFBQUMsa0JBQUEsRUFBU1osSUFBVDtBQUNEOztlQUdjTixjIn0=
|
package/build/lib/app-utils.js
CHANGED
|
@@ -185,4 +185,4 @@ async function parseLocalizableStrings(opts) {
|
|
|
185
185
|
}require('source-map-support').install();
|
|
186
186
|
|
|
187
187
|
|
|
188
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9hcHAtdXRpbHMuanMiXSwibmFtZXMiOlsiU1RSSU5HU0RJQ1RfUkVTT1VSQ0UiLCJTVFJJTkdTX1JFU09VUkNFIiwiZXh0cmFjdFBsaXN0RW50cnkiLCJhcHAiLCJlbnRyeU5hbWUiLCJwbGlzdFBhdGgiLCJwYXRoIiwicmVzb2x2ZSIsInBsaXN0IiwicGFyc2VQbGlzdEZpbGUiLCJlcnIiLCJFcnJvciIsImJhc2VuYW1lIiwibWVzc2FnZSIsImV4dHJhY3RCdW5kbGVJZCIsImJ1bmRsZUlkIiwibG9nIiwiZGVidWciLCJ2ZXJpZnlBcHBsaWNhdGlvblBsYXRmb3JtIiwiZXhwZWN0ZWRQbGF0Zm9ybSIsInN1cHBvcnRlZFBsYXRmb3JtcyIsIkpTT04iLCJzdHJpbmdpZnkiLCJfIiwiaXNBcnJheSIsImlzU2ltdWxhdG9yIiwiaXNUdk9TIiwicHJlZml4Iiwic3VmZml4IiwiZHN0UGxhdGZvcm0iLCJpbmNsdWRlcyIsInJlYWRSZXNvdXJjZSIsInJlc291cmNlUGF0aCIsImRhdGEiLCJyZXN1bHQiLCJrZXkiLCJ2YWx1ZSIsInRvUGFpcnMiLCJpc1N0cmluZyIsInBhcnNlTG9jYWxpemFibGVTdHJpbmdzIiwib3B0cyIsImxhbmd1YWdlIiwibG9jYWxpemFibGVTdHJpbmdzRGlyIiwic3RyaW5nRmlsZSIsInN0cmljdE1vZGUiLCJpbmZvIiwibHByb2pSb290Iiwic3ViZm9sZGVyIiwiZnMiLCJleGlzdHMiLCJyZXNvdXJjZVBhdGhzIiwiZHN0UGF0aCIsInB1c2giLCJpc0VtcHR5IiwicmVzb3VyY2VGaWxlcyIsInJlYWRkaXIiLCJmaWx0ZXIiLCJuYW1lIiwic29tZSIsIngiLCJlbmRzV2l0aCIsIm1hcCIsImxlbmd0aCIsInJlc3VsdFN0cmluZ3MiLCJ0b0Fic29sdXRlUGF0aCIsInAiLCJpc0Fic29sdXRlIiwicHJvY2VzcyIsImN3ZCIsInV0aWwiLCJpc1N1YlBhdGgiLCJrZXlzIiwibWVyZ2UiLCJlIiwid2FybiJdLCJtYXBwaW5ncyI6Ijs7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QUFMLENBQWdCRCxDQUFoQixJQUFxQkEsQ0FBckIsR0FBeUIzRCxjQUFLQyxPQUFMLENBQWE0RCxPQUFPLENBQUNDLEdBQVIsRUFBYixFQUE0QkgsQ0FBNUIsQ0FBaEM7QUFDRCxHQUZEOztBQUdBLE9BQUssTUFBTWpDLFlBQVgsSUFBMkJrQixhQUEzQixFQUEwQztBQUN4QyxRQUFJLENBQUNtQixjQUFLQyxTQUFMLENBQWVOLGNBQWMsQ0FBQ2hDLFlBQUQsQ0FBN0IsRUFBNkNnQyxjQUFjLENBQUM3RCxHQUFELENBQTNELENBQUwsRUFBd0U7QUFFdEUsWUFBTSxJQUFJUSxLQUFKLENBQVcsSUFBR3FCLFlBQWEsc0NBQXFDN0IsR0FBSSxHQUFwRSxDQUFOO0FBQ0Q7O0FBQ0QsUUFBSTtBQUNGLFlBQU04QixJQUFJLEdBQUcsTUFBTUYsWUFBWSxDQUFDQyxZQUFELENBQS9COztBQUNBaEIsc0JBQUlDLEtBQUosQ0FBVyxVQUFTTSxnQkFBRWdELElBQUYsQ0FBT3RDLElBQVAsRUFBYTZCLE1BQU8sb0JBQW1COUIsWUFBYSxHQUF4RTs7QUFDQVQsc0JBQUVpRCxLQUFGLENBQVFULGFBQVIsRUFBdUI5QixJQUF2QjtBQUNELEtBSkQsQ0FJRSxPQUFPd0MsQ0FBUCxFQUFVO0FBQ1Z6RCxzQkFBSTBELElBQUosQ0FBVSxpQkFBZ0IxQyxZQUFhLCtCQUE4QnlDLENBQUMsQ0FBQzVELE9BQVEsRUFBL0U7QUFDRDtBQUNGOztBQUVERyxrQkFBSTZCLElBQUosQ0FBVSxPQUFNdEIsZ0JBQUVnRCxJQUFGLENBQU9SLGFBQVAsRUFBc0JELE1BQU8sb0JBQW1CaEIsU0FBVSxHQUExRTs7QUFDQSxTQUFPaUIsYUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcGxpc3QsIGZzLCB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXIuanMnO1xuXG5jb25zdCBTVFJJTkdTRElDVF9SRVNPVVJDRSA9ICcuc3RyaW5nc2RpY3QnO1xuY29uc3QgU1RSSU5HU19SRVNPVVJDRSA9ICcuc3RyaW5ncyc7XG5cblxuYXN5bmMgZnVuY3Rpb24gZXh0cmFjdFBsaXN0RW50cnkgKGFwcCwgZW50cnlOYW1lKSB7XG4gIGNvbnN0IHBsaXN0UGF0aCA9IHBhdGgucmVzb2x2ZShhcHAsICdJbmZvLnBsaXN0Jyk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIChhd2FpdCBwbGlzdC5wYXJzZVBsaXN0RmlsZShwbGlzdFBhdGgpKVtlbnRyeU5hbWVdO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBleHRyYWN0IEluZm8ucGxpc3QgZnJvbSAnJHtwYXRoLmJhc2VuYW1lKGFwcCl9JzogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBleHRyYWN0QnVuZGxlSWQgKGFwcCkge1xuICBjb25zdCBidW5kbGVJZCA9IGF3YWl0IGV4dHJhY3RQbGlzdEVudHJ5KGFwcCwgJ0NGQnVuZGxlSWRlbnRpZmllcicpO1xuICBsb2cuZGVidWcoYEdldHRpbmcgYnVuZGxlIElEIGZyb20gYXBwICcke2FwcH0nOiAnJHtidW5kbGVJZH0nYCk7XG4gIHJldHVybiBidW5kbGVJZDtcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBQbGF0Zm9ybU9wdHNcbiAqXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzU2ltdWxhdG9yIC0gV2hldGhlciB0aGUgZGVzdGluYXRpb24gcGxhdGZvcm0gaXMgYSBTaW11bGF0b3JcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gaXNUdk9TIC0gV2hldGhlciB0aGUgZGVzdGluYXRpb24gcGxhdGZvcm0gaXMgYSBTaW11bGF0b3JcbiAqL1xuXG4vKipcbiAqIFZlcmlmeSB3aGV0aGVyIHRoZSBnaXZlbiBhcHBsaWNhdGlvbiBpcyBjb21wYXRpYmxlIHRvIHRoZVxuICogcGxhdGZvcm0gd2hlcmUgaXQgaXMgZ29pbmcgdG8gYmUgaW5zdGFsbGVkIGFuZCB0ZXN0ZWQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFwcCAtIFRoZSBhY3R1YWwgcGF0aCB0byB0aGUgYXBwbGljYXRpb24gYnVuZGxlXG4gKiBAcGFyYW0ge1BsYXRmb3JtT3B0c30gZXhwZWN0ZWRQbGF0Zm9ybVxuICogQHRocm93cyB7RXJyb3J9IElmIGJ1bmRsZSBhcmNoaXRlY3R1cmUgZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGRldmljZSBhcmNoaXRlY3R1cmUuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHZlcmlmeUFwcGxpY2F0aW9uUGxhdGZvcm0gKGFwcCwgZXhwZWN0ZWRQbGF0Zm9ybSkge1xuICBsb2cuZGVidWcoJ1ZlcmlmeWluZyBhcHBsaWNhdGlvbiBwbGF0Zm9ybScpO1xuXG4gIGxldCBzdXBwb3J0ZWRQbGF0Zm9ybXM7XG4gIHRyeSB7XG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zID0gYXdhaXQgZXh0cmFjdFBsaXN0RW50cnkoYXBwLCAnQ0ZCdW5kbGVTdXBwb3J0ZWRQbGF0Zm9ybXMnKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nLmRlYnVnKGVyci5tZXNzYWdlKTtcbiAgICByZXR1cm47XG4gIH1cbiAgbG9nLmRlYnVnKGBDRkJ1bmRsZVN1cHBvcnRlZFBsYXRmb3JtczogJHtKU09OLnN0cmluZ2lmeShzdXBwb3J0ZWRQbGF0Zm9ybXMpfWApO1xuICBpZiAoIV8uaXNBcnJheShzdXBwb3J0ZWRQbGF0Zm9ybXMpKSB7XG4gICAgbG9nLmRlYnVnKGBDRkJ1bmRsZVN1cHBvcnRlZFBsYXRmb3JtcyBrZXkgZG9lcyBub3QgZXhpc3QgaW4gJyR7cGF0aC5iYXNlbmFtZShhcHApfSdgKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7XG4gICAgaXNTaW11bGF0b3IsXG4gICAgaXNUdk9TLFxuICB9ID0gZXhwZWN0ZWRQbGF0Zm9ybTtcbiAgY29uc3QgcHJlZml4ID0gaXNUdk9TID8gJ0FwcGxlVFYnIDogJ2lQaG9uZSc7XG4gIGNvbnN0IHN1ZmZpeCA9IGlzU2ltdWxhdG9yID8gJ1NpbXVsYXRvcicgOiAnT1MnO1xuICBjb25zdCBkc3RQbGF0Zm9ybSA9IGAke3ByZWZpeH0ke3N1ZmZpeH1gO1xuICBpZiAoIXN1cHBvcnRlZFBsYXRmb3Jtcy5pbmNsdWRlcyhkc3RQbGF0Zm9ybSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYCR7aXNTaW11bGF0b3IgPyAnU2ltdWxhdG9yJyA6ICdSZWFsIGRldmljZSd9IGFyY2hpdGVjdHVyZSBpcyB1bnN1cHBvcnRlZCBieSB0aGUgJyR7YXBwfScgYXBwbGljYXRpb24uIGAgK1xuICAgICAgYE1ha2Ugc3VyZSB0aGUgY29ycmVjdCBkZXBsb3ltZW50IHRhcmdldCBoYXMgYmVlbiBzZWxlY3RlZCBmb3IgaXRzIGNvbXBpbGF0aW9uIGluIFhjb2RlLmApO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlYWRSZXNvdXJjZSAocmVzb3VyY2VQYXRoKSB7XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBwbGlzdC5wYXJzZVBsaXN0RmlsZShyZXNvdXJjZVBhdGgpO1xuICBjb25zdCByZXN1bHQgPSB7fTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgXy50b1BhaXJzKGRhdGEpKSB7XG4gICAgcmVzdWx0W2tleV0gPSBfLmlzU3RyaW5nKHZhbHVlKSA/IHZhbHVlIDogSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBhcnNlTG9jYWxpemFibGVTdHJpbmdzIChvcHRzKSB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgbGFuZ3VhZ2UgPSAnZW4nLFxuICAgIGxvY2FsaXphYmxlU3RyaW5nc0RpcixcbiAgICBzdHJpbmdGaWxlLFxuICAgIHN0cmljdE1vZGUsXG4gIH0gPSBvcHRzO1xuXG4gIGlmICghYXBwKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGBTdHJpbmdzIGV4dHJhY3Rpb24gaXMgbm90IHN1cHBvcnRlZCBpZiAnYXBwJyBjYXBhYmlsaXR5IGlzIG5vdCBzZXRgO1xuICAgIGlmIChzdHJpY3RNb2RlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGxvZy5pbmZvKG1lc3NhZ2UpO1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGxldCBscHJvalJvb3Q7XG4gIGZvciAoY29uc3Qgc3ViZm9sZGVyIG9mIFtgJHtsYW5ndWFnZX0ubHByb2pgLCBsb2NhbGl6YWJsZVN0cmluZ3NEaXIsICcnXSkge1xuICAgIGxwcm9qUm9vdCA9IHBhdGgucmVzb2x2ZShhcHAsIHN1YmZvbGRlcik7XG4gICAgaWYgKGF3YWl0IGZzLmV4aXN0cyhscHJvalJvb3QpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY29uc3QgbWVzc2FnZSA9IGBObyAnJHtscHJvalJvb3R9JyByZXNvdXJjZXMgZm9sZGVyIGhhcyBiZWVuIGZvdW5kYDtcbiAgICBpZiAoc3RyaWN0TW9kZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBsb2cuZGVidWcobWVzc2FnZSk7XG4gIH1cbiAgbG9nLmluZm8oYFdpbGwgZXh0cmFjdCByZXNvdXJjZSBzdHJpbmdzIGZyb20gJyR7bHByb2pSb290fSdgKTtcblxuICBjb25zdCByZXNvdXJjZVBhdGhzID0gW107XG4gIGlmIChzdHJpbmdGaWxlKSB7XG4gICAgY29uc3QgZHN0UGF0aCA9IHBhdGgucmVzb2x2ZShscHJvalJvb3QsIHN0cmluZ0ZpbGUpO1xuICAgIGlmIChhd2FpdCBmcy5leGlzdHMoZHN0UGF0aCkpIHtcbiAgICAgIHJlc291cmNlUGF0aHMucHVzaChkc3RQYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBObyAnJHtkc3RQYXRofScgcmVzb3VyY2UgZmlsZSBoYXMgYmVlbiBmb3VuZCBmb3IgJyR7YXBwfSdgO1xuICAgICAgaWYgKHN0cmljdE1vZGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgfVxuICAgICAgbG9nLmluZm8obWVzc2FnZSk7XG4gICAgICBsb2cuaW5mbyhgR2V0dGluZyBhbGwgdGhlIGF2YWlsYWJsZSBzdHJpbmdzIGZyb20gJyR7bHByb2pSb290fSdgKTtcbiAgICB9XG4gIH1cblxuICBpZiAoXy5pc0VtcHR5KHJlc291cmNlUGF0aHMpICYmIGF3YWl0IGZzLmV4aXN0cyhscHJvalJvb3QpKSB7XG4gICAgY29uc3QgcmVzb3VyY2VGaWxlcyA9IChhd2FpdCBmcy5yZWFkZGlyKGxwcm9qUm9vdCkpXG4gICAgICAuZmlsdGVyKChuYW1lKSA9PiBfLnNvbWUoW1NUUklOR1NfUkVTT1VSQ0UsIFNUUklOR1NESUNUX1JFU09VUkNFXSwgKHgpID0+IG5hbWUuZW5kc1dpdGgoeCkpKVxuICAgICAgLm1hcCgobmFtZSkgPT4gcGF0aC5yZXNvbHZlKGxwcm9qUm9vdCwgbmFtZSkpO1xuICAgIHJlc291cmNlUGF0aHMucHVzaCguLi5yZXNvdXJjZUZpbGVzKTtcbiAgfVxuICBsb2cuaW5mbyhgR290ICR7cmVzb3VyY2VQYXRocy5sZW5ndGh9IHJlc291cmNlIGZpbGUocykgaW4gJyR7bHByb2pSb290fSdgKTtcblxuICBpZiAoXy5pc0VtcHR5KHJlc291cmNlUGF0aHMpKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgY29uc3QgcmVzdWx0U3RyaW5ncyA9IHt9O1xuICBjb25zdCB0b0Fic29sdXRlUGF0aCA9IGZ1bmN0aW9uIChwKSB7XG4gICAgcmV0dXJuIHBhdGguaXNBYnNvbHV0ZShwKSA/IHAgOiBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgcCk7XG4gIH07XG4gIGZvciAoY29uc3QgcmVzb3VyY2VQYXRoIG9mIHJlc291cmNlUGF0aHMpIHtcbiAgICBpZiAoIXV0aWwuaXNTdWJQYXRoKHRvQWJzb2x1dGVQYXRoKHJlc291cmNlUGF0aCksIHRvQWJzb2x1dGVQYXRoKGFwcCkpKSB7XG4gICAgICAvLyBzZWN1cml0eSBwcmVjYXV0aW9uXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3Jlc291cmNlUGF0aH0nIGlzIGV4cGVjdGVkIHRvIGJlIGxvY2F0ZWQgdW5kZXIgJyR7YXBwfSdgKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZWFkUmVzb3VyY2UocmVzb3VyY2VQYXRoKTtcbiAgICAgIGxvZy5kZWJ1ZyhgUGFyc2VkICR7Xy5rZXlzKGRhdGEpLmxlbmd0aH0gc3RyaW5nKHMpIGZyb20gJyR7cmVzb3VyY2VQYXRofSdgKTtcbiAgICAgIF8ubWVyZ2UocmVzdWx0U3RyaW5ncywgZGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgbG9nLndhcm4oYENhbm5vdCBwYXJzZSAnJHtyZXNvdXJjZVBhdGh9JyByZXNvdXJjZS4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIGxvZy5pbmZvKGBHb3QgJHtfLmtleXMocmVzdWx0U3RyaW5ncykubGVuZ3RofSBzdHJpbmcocykgZnJvbSAnJHtscHJvalJvb3R9J2ApO1xuICByZXR1cm4gcmVzdWx0U3RyaW5ncztcbn1cblxuZXhwb3J0IHsgZXh0cmFjdEJ1bmRsZUlkLCB2ZXJpZnlBcHBsaWNhdGlvblBsYXRmb3JtLCBwYXJzZUxvY2FsaXphYmxlU3RyaW5ncyB9O1xuIl0sImZpbGUiOiJsaWIvYXBwLXV0aWxzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
|
|
188
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2FwcC11dGlscy5qcyIsIm5hbWVzIjpbIlNUUklOR1NESUNUX1JFU09VUkNFIiwiU1RSSU5HU19SRVNPVVJDRSIsImV4dHJhY3RQbGlzdEVudHJ5IiwiYXBwIiwiZW50cnlOYW1lIiwicGxpc3RQYXRoIiwicGF0aCIsInJlc29sdmUiLCJwbGlzdCIsInBhcnNlUGxpc3RGaWxlIiwiZXJyIiwiRXJyb3IiLCJiYXNlbmFtZSIsIm1lc3NhZ2UiLCJleHRyYWN0QnVuZGxlSWQiLCJidW5kbGVJZCIsImxvZyIsImRlYnVnIiwidmVyaWZ5QXBwbGljYXRpb25QbGF0Zm9ybSIsImV4cGVjdGVkUGxhdGZvcm0iLCJzdXBwb3J0ZWRQbGF0Zm9ybXMiLCJKU09OIiwic3RyaW5naWZ5IiwiXyIsImlzQXJyYXkiLCJpc1NpbXVsYXRvciIsImlzVHZPUyIsInByZWZpeCIsInN1ZmZpeCIsImRzdFBsYXRmb3JtIiwiaW5jbHVkZXMiLCJyZWFkUmVzb3VyY2UiLCJyZXNvdXJjZVBhdGgiLCJkYXRhIiwicmVzdWx0Iiwia2V5IiwidmFsdWUiLCJ0b1BhaXJzIiwiaXNTdHJpbmciLCJwYXJzZUxvY2FsaXphYmxlU3RyaW5ncyIsIm9wdHMiLCJsYW5ndWFnZSIsImxvY2FsaXphYmxlU3RyaW5nc0RpciIsInN0cmluZ0ZpbGUiLCJzdHJpY3RNb2RlIiwiaW5mbyIsImxwcm9qUm9vdCIsInN1YmZvbGRlciIsImZzIiwiZXhpc3RzIiwicmVzb3VyY2VQYXRocyIsImRzdFBhdGgiLCJwdXNoIiwiaXNFbXB0eSIsInJlc291cmNlRmlsZXMiLCJyZWFkZGlyIiwiZmlsdGVyIiwibmFtZSIsInNvbWUiLCJ4IiwiZW5kc1dpdGgiLCJtYXAiLCJsZW5ndGgiLCJyZXN1bHRTdHJpbmdzIiwidG9BYnNvbHV0ZVBhdGgiLCJwIiwiaXNBYnNvbHV0ZSIsInByb2Nlc3MiLCJjd2QiLCJ1dGlsIiwiaXNTdWJQYXRoIiwia2V5cyIsIm1lcmdlIiwiZSIsIndhcm4iXSwic291cmNlUm9vdCI6Ii4uLy4uIiwic291cmNlcyI6WyJsaWIvYXBwLXV0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IHBsaXN0LCBmcywgdXRpbCB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyLmpzJztcblxuY29uc3QgU1RSSU5HU0RJQ1RfUkVTT1VSQ0UgPSAnLnN0cmluZ3NkaWN0JztcbmNvbnN0IFNUUklOR1NfUkVTT1VSQ0UgPSAnLnN0cmluZ3MnO1xuXG5cbmFzeW5jIGZ1bmN0aW9uIGV4dHJhY3RQbGlzdEVudHJ5IChhcHAsIGVudHJ5TmFtZSkge1xuICBjb25zdCBwbGlzdFBhdGggPSBwYXRoLnJlc29sdmUoYXBwLCAnSW5mby5wbGlzdCcpO1xuICB0cnkge1xuICAgIHJldHVybiAoYXdhaXQgcGxpc3QucGFyc2VQbGlzdEZpbGUocGxpc3RQYXRoKSlbZW50cnlOYW1lXTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZXh0cmFjdCBJbmZvLnBsaXN0IGZyb20gJyR7cGF0aC5iYXNlbmFtZShhcHApfSc6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZXh0cmFjdEJ1bmRsZUlkIChhcHApIHtcbiAgY29uc3QgYnVuZGxlSWQgPSBhd2FpdCBleHRyYWN0UGxpc3RFbnRyeShhcHAsICdDRkJ1bmRsZUlkZW50aWZpZXInKTtcbiAgbG9nLmRlYnVnKGBHZXR0aW5nIGJ1bmRsZSBJRCBmcm9tIGFwcCAnJHthcHB9JzogJyR7YnVuZGxlSWR9J2ApO1xuICByZXR1cm4gYnVuZGxlSWQ7XG59XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gUGxhdGZvcm1PcHRzXG4gKlxuICogQHByb3BlcnR5IHtib29sZWFufSBpc1NpbXVsYXRvciAtIFdoZXRoZXIgdGhlIGRlc3RpbmF0aW9uIHBsYXRmb3JtIGlzIGEgU2ltdWxhdG9yXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzVHZPUyAtIFdoZXRoZXIgdGhlIGRlc3RpbmF0aW9uIHBsYXRmb3JtIGlzIGEgU2ltdWxhdG9yXG4gKi9cblxuLyoqXG4gKiBWZXJpZnkgd2hldGhlciB0aGUgZ2l2ZW4gYXBwbGljYXRpb24gaXMgY29tcGF0aWJsZSB0byB0aGVcbiAqIHBsYXRmb3JtIHdoZXJlIGl0IGlzIGdvaW5nIHRvIGJlIGluc3RhbGxlZCBhbmQgdGVzdGVkLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhcHAgLSBUaGUgYWN0dWFsIHBhdGggdG8gdGhlIGFwcGxpY2F0aW9uIGJ1bmRsZVxuICogQHBhcmFtIHtQbGF0Zm9ybU9wdHN9IGV4cGVjdGVkUGxhdGZvcm1cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBidW5kbGUgYXJjaGl0ZWN0dXJlIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBkZXZpY2UgYXJjaGl0ZWN0dXJlLlxuICovXG5hc3luYyBmdW5jdGlvbiB2ZXJpZnlBcHBsaWNhdGlvblBsYXRmb3JtIChhcHAsIGV4cGVjdGVkUGxhdGZvcm0pIHtcbiAgbG9nLmRlYnVnKCdWZXJpZnlpbmcgYXBwbGljYXRpb24gcGxhdGZvcm0nKTtcblxuICBsZXQgc3VwcG9ydGVkUGxhdGZvcm1zO1xuICB0cnkge1xuICAgIHN1cHBvcnRlZFBsYXRmb3JtcyA9IGF3YWl0IGV4dHJhY3RQbGlzdEVudHJ5KGFwcCwgJ0NGQnVuZGxlU3VwcG9ydGVkUGxhdGZvcm1zJyk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5kZWJ1ZyhlcnIubWVzc2FnZSk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGxvZy5kZWJ1ZyhgQ0ZCdW5kbGVTdXBwb3J0ZWRQbGF0Zm9ybXM6ICR7SlNPTi5zdHJpbmdpZnkoc3VwcG9ydGVkUGxhdGZvcm1zKX1gKTtcbiAgaWYgKCFfLmlzQXJyYXkoc3VwcG9ydGVkUGxhdGZvcm1zKSkge1xuICAgIGxvZy5kZWJ1ZyhgQ0ZCdW5kbGVTdXBwb3J0ZWRQbGF0Zm9ybXMga2V5IGRvZXMgbm90IGV4aXN0IGluICcke3BhdGguYmFzZW5hbWUoYXBwKX0nYCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGlzU2ltdWxhdG9yLFxuICAgIGlzVHZPUyxcbiAgfSA9IGV4cGVjdGVkUGxhdGZvcm07XG4gIGNvbnN0IHByZWZpeCA9IGlzVHZPUyA/ICdBcHBsZVRWJyA6ICdpUGhvbmUnO1xuICBjb25zdCBzdWZmaXggPSBpc1NpbXVsYXRvciA/ICdTaW11bGF0b3InIDogJ09TJztcbiAgY29uc3QgZHN0UGxhdGZvcm0gPSBgJHtwcmVmaXh9JHtzdWZmaXh9YDtcbiAgaWYgKCFzdXBwb3J0ZWRQbGF0Zm9ybXMuaW5jbHVkZXMoZHN0UGxhdGZvcm0pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke2lzU2ltdWxhdG9yID8gJ1NpbXVsYXRvcicgOiAnUmVhbCBkZXZpY2UnfSBhcmNoaXRlY3R1cmUgaXMgdW5zdXBwb3J0ZWQgYnkgdGhlICcke2FwcH0nIGFwcGxpY2F0aW9uLiBgICtcbiAgICAgIGBNYWtlIHN1cmUgdGhlIGNvcnJlY3QgZGVwbG95bWVudCB0YXJnZXQgaGFzIGJlZW4gc2VsZWN0ZWQgZm9yIGl0cyBjb21waWxhdGlvbiBpbiBYY29kZS5gKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiByZWFkUmVzb3VyY2UgKHJlc291cmNlUGF0aCkge1xuICBjb25zdCBkYXRhID0gYXdhaXQgcGxpc3QucGFyc2VQbGlzdEZpbGUocmVzb3VyY2VQYXRoKTtcbiAgY29uc3QgcmVzdWx0ID0ge307XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIF8udG9QYWlycyhkYXRhKSkge1xuICAgIHJlc3VsdFtrZXldID0gXy5pc1N0cmluZyh2YWx1ZSkgPyB2YWx1ZSA6IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5hc3luYyBmdW5jdGlvbiBwYXJzZUxvY2FsaXphYmxlU3RyaW5ncyAob3B0cykge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIGxhbmd1YWdlID0gJ2VuJyxcbiAgICBsb2NhbGl6YWJsZVN0cmluZ3NEaXIsXG4gICAgc3RyaW5nRmlsZSxcbiAgICBzdHJpY3RNb2RlLFxuICB9ID0gb3B0cztcblxuICBpZiAoIWFwcCkge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBgU3RyaW5ncyBleHRyYWN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgaWYgJ2FwcCcgY2FwYWJpbGl0eSBpcyBub3Qgc2V0YDtcbiAgICBpZiAoc3RyaWN0TW9kZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBsb2cuaW5mbyhtZXNzYWdlKTtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBsZXQgbHByb2pSb290O1xuICBmb3IgKGNvbnN0IHN1YmZvbGRlciBvZiBbYCR7bGFuZ3VhZ2V9Lmxwcm9qYCwgbG9jYWxpemFibGVTdHJpbmdzRGlyLCAnJ10pIHtcbiAgICBscHJvalJvb3QgPSBwYXRoLnJlc29sdmUoYXBwLCBzdWJmb2xkZXIpO1xuICAgIGlmIChhd2FpdCBmcy5leGlzdHMobHByb2pSb290KSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBgTm8gJyR7bHByb2pSb290fScgcmVzb3VyY2VzIGZvbGRlciBoYXMgYmVlbiBmb3VuZGA7XG4gICAgaWYgKHN0cmljdE1vZGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgbG9nLmRlYnVnKG1lc3NhZ2UpO1xuICB9XG4gIGxvZy5pbmZvKGBXaWxsIGV4dHJhY3QgcmVzb3VyY2Ugc3RyaW5ncyBmcm9tICcke2xwcm9qUm9vdH0nYCk7XG5cbiAgY29uc3QgcmVzb3VyY2VQYXRocyA9IFtdO1xuICBpZiAoc3RyaW5nRmlsZSkge1xuICAgIGNvbnN0IGRzdFBhdGggPSBwYXRoLnJlc29sdmUobHByb2pSb290LCBzdHJpbmdGaWxlKTtcbiAgICBpZiAoYXdhaXQgZnMuZXhpc3RzKGRzdFBhdGgpKSB7XG4gICAgICByZXNvdXJjZVBhdGhzLnB1c2goZHN0UGF0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgTm8gJyR7ZHN0UGF0aH0nIHJlc291cmNlIGZpbGUgaGFzIGJlZW4gZm91bmQgZm9yICcke2FwcH0nYDtcbiAgICAgIGlmIChzdHJpY3RNb2RlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIGxvZy5pbmZvKG1lc3NhZ2UpO1xuICAgICAgbG9nLmluZm8oYEdldHRpbmcgYWxsIHRoZSBhdmFpbGFibGUgc3RyaW5ncyBmcm9tICcke2xwcm9qUm9vdH0nYCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKF8uaXNFbXB0eShyZXNvdXJjZVBhdGhzKSAmJiBhd2FpdCBmcy5leGlzdHMobHByb2pSb290KSkge1xuICAgIGNvbnN0IHJlc291cmNlRmlsZXMgPSAoYXdhaXQgZnMucmVhZGRpcihscHJvalJvb3QpKVxuICAgICAgLmZpbHRlcigobmFtZSkgPT4gXy5zb21lKFtTVFJJTkdTX1JFU09VUkNFLCBTVFJJTkdTRElDVF9SRVNPVVJDRV0sICh4KSA9PiBuYW1lLmVuZHNXaXRoKHgpKSlcbiAgICAgIC5tYXAoKG5hbWUpID0+IHBhdGgucmVzb2x2ZShscHJvalJvb3QsIG5hbWUpKTtcbiAgICByZXNvdXJjZVBhdGhzLnB1c2goLi4ucmVzb3VyY2VGaWxlcyk7XG4gIH1cbiAgbG9nLmluZm8oYEdvdCAke3Jlc291cmNlUGF0aHMubGVuZ3RofSByZXNvdXJjZSBmaWxlKHMpIGluICcke2xwcm9qUm9vdH0nYCk7XG5cbiAgaWYgKF8uaXNFbXB0eShyZXNvdXJjZVBhdGhzKSkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdFN0cmluZ3MgPSB7fTtcbiAgY29uc3QgdG9BYnNvbHV0ZVBhdGggPSBmdW5jdGlvbiAocCkge1xuICAgIHJldHVybiBwYXRoLmlzQWJzb2x1dGUocCkgPyBwIDogcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIHApO1xuICB9O1xuICBmb3IgKGNvbnN0IHJlc291cmNlUGF0aCBvZiByZXNvdXJjZVBhdGhzKSB7XG4gICAgaWYgKCF1dGlsLmlzU3ViUGF0aCh0b0Fic29sdXRlUGF0aChyZXNvdXJjZVBhdGgpLCB0b0Fic29sdXRlUGF0aChhcHApKSkge1xuICAgICAgLy8gc2VjdXJpdHkgcHJlY2F1dGlvblxuICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHtyZXNvdXJjZVBhdGh9JyBpcyBleHBlY3RlZCB0byBiZSBsb2NhdGVkIHVuZGVyICcke2FwcH0nYCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVhZFJlc291cmNlKHJlc291cmNlUGF0aCk7XG4gICAgICBsb2cuZGVidWcoYFBhcnNlZCAke18ua2V5cyhkYXRhKS5sZW5ndGh9IHN0cmluZyhzKSBmcm9tICcke3Jlc291cmNlUGF0aH0nYCk7XG4gICAgICBfLm1lcmdlKHJlc3VsdFN0cmluZ3MsIGRhdGEpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGxvZy53YXJuKGBDYW5ub3QgcGFyc2UgJyR7cmVzb3VyY2VQYXRofScgcmVzb3VyY2UuIE9yaWdpbmFsIGVycm9yOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICBsb2cuaW5mbyhgR290ICR7Xy5rZXlzKHJlc3VsdFN0cmluZ3MpLmxlbmd0aH0gc3RyaW5nKHMpIGZyb20gJyR7bHByb2pSb290fSdgKTtcbiAgcmV0dXJuIHJlc3VsdFN0cmluZ3M7XG59XG5cbmV4cG9ydCB7IGV4dHJhY3RCdW5kbGVJZCwgdmVyaWZ5QXBwbGljYXRpb25QbGF0Zm9ybSwgcGFyc2VMb2NhbGl6YWJsZVN0cmluZ3MgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLG9CQUFvQixHQUFHLGNBQTdCO0FBQ0EsTUFBTUMs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
|
package/build/lib/build-wda.js
CHANGED
|
@@ -42,4 +42,4 @@ var _default = build;
|
|
|
42
42
|
exports.default = _default;require('source-map-support').install();
|
|
43
43
|
|
|
44
44
|
|
|
45
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2J1aWxkLXdkYS5qcyIsIm5hbWVzIjpbIkRFRkFVTFRfU0lNX05BTUUiLCJidWlsZCIsInhjb2RlVmVyc2lvbiIsImdldEFuZENoZWNrWGNvZGVWZXJzaW9uIiwiaW9zVmVyc2lvbiIsImdldEFuZENoZWNrSW9zU2RrVmVyc2lvbiIsImRldmljZU5hbWUiLCJ0cmFuc2xhdGVEZXZpY2VOYW1lIiwiZGV2aWNlIiwiZ2V0RXhpc3RpbmdTaW0iLCJwbGF0Zm9ybVZlcnNpb24iLCJ3ZGEiLCJXZWJEcml2ZXJBZ2VudCIsImlvc1Nka1ZlcnNpb24iLCJzaG93WGNvZGVMb2ciLCJ4Y29kZWJ1aWxkIiwic3RhcnQiLCJyZXF1aXJlIiwibWFpbiIsIm1vZHVsZSIsImFzeW5jaWZ5Il0sInNvdXJjZVJvb3QiOiIuLi8uLiIsInNvdXJjZXMiOlsibGliL2J1aWxkLXdkYS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXZWJEcml2ZXJBZ2VudCB9IGZyb20gJ2FwcGl1bS13ZWJkcml2ZXJhZ2VudCc7XG5pbXBvcnQgeyB0cmFuc2xhdGVEZXZpY2VOYW1lLCBnZXRBbmRDaGVja1hjb2RlVmVyc2lvbiwgZ2V0QW5kQ2hlY2tJb3NTZGtWZXJzaW9uIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBnZXRFeGlzdGluZ1NpbSB9IGZyb20gJy4vc2ltdWxhdG9yLW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgYXN5bmNpZnkgfSBmcm9tICdhc3luY2JveCc7XG5cbmNvbnN0IERFRkFVTFRfU0lNX05BTUUgPSAnaVBob25lIDEyJztcblxuLy8gVE9ETzogYWxsb3cgcGFzc2luZyBpbiBhbGwgdGhlIHZhcmlvdXMgYnVpbGQgcGFyYW1zIGFzIENMSSBhcmdzXG5hc3luYyBmdW5jdGlvbiBidWlsZCAoKSB7XG4gIGNvbnN0IHhjb2RlVmVyc2lvbiA9IGF3YWl0IGdldEFuZENoZWNrWGNvZGVWZXJzaW9uKCk7XG4gIGNvbnN0IGlvc1ZlcnNpb24gPSBhd2FpdCBnZXRBbmRDaGVja0lvc1Nka1ZlcnNpb24oKTtcbiAgY29uc3QgZGV2aWNlTmFtZSA9IHRyYW5zbGF0ZURldmljZU5hbWUoaW9zVmVyc2lvbiwgREVGQVVMVF9TSU1fTkFNRSk7XG4gIGNvbnN0IGRldmljZSA9IGF3YWl0IGdldEV4aXN0aW5nU2ltKHtcbiAgICBwbGF0Zm9ybVZlcnNpb246IGlvc1ZlcnNpb24sXG4gICAgZGV2aWNlTmFtZVxuICB9KTtcbiAgY29uc3Qgd2RhID0gbmV3IFdlYkRyaXZlckFnZW50KHhjb2RlVmVyc2lvbiwge1xuICAgIGlvc1Nka1ZlcnNpb246IGlvc1ZlcnNpb24sXG4gICAgcGxhdGZvcm1WZXJzaW9uOiBpb3NWZXJzaW9uLFxuICAgIHNob3dYY29kZUxvZzogdHJ1ZSxcbiAgICBkZXZpY2UsXG4gIH0pO1xuICBhd2FpdCB3ZGEueGNvZGVidWlsZC5zdGFydCh0cnVlKTtcbn1cblxuaWYgKHJlcXVpcmUubWFpbiA9PT0gbW9kdWxlKSB7XG4gIGFzeW5jaWZ5KGJ1aWxkKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYnVpbGQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLGdCQUFnQixHQUFHLFdBQXpCOztBQUdBLGVBQWVDLEtBQWYsR0FBd0I7RUFDdEIsTUFBTUMsWUFBWSxHQUFHLE1BQU0sSUFBQUMsOEJBQUEsR0FBM0I7RUFDQSxNQUFNQyxVQUFVLEdBQUcsTUFBTSxJQUFBQywrQkFBQSxHQUF6QjtFQUNBLE1BQU1DLFVBQVUsR0FBRyxJQUFBQywwQkFBQSxFQUFvQkgsVUFBcEIsRUFBZ0NKLGdCQUFoQyxDQUFuQjtFQUNBLE1BQU1RLE1BQU0sR0FBRyxNQUFNLElBQUFDLG1DQUFBLEVBQWU7SUFDbENDLGVBQWUsRUFBRU4sVUFEaUI7SUFFbENFO0VBRmtDLENBQWYsQ0FBckI7RUFJQSxNQUFNSyxHQUFHLEdBQUcsSUFBSUMsb0NBQUosQ0FBbUJWLFlBQW5CLEVBQWlDO0lBQzNDVyxhQUFhLEVBQUVULFVBRDRCO0lBRTNDTSxlQUFlLEVBQUVOLFVBRjBCO0lBRzNDVSxZQUFZLEVBQUUsSUFINkI7SUFJM0NOO0VBSjJDLENBQWpDLENBQVo7RUFNQSxNQUFNRyxHQUFHLENBQUNJLFVBQUosQ0FBZUMsS0FBZixDQUFxQixJQUFyQixDQUFOO0FBQ0Q7O0FBRUQsSUFBSUMsT0FBTyxDQUFDQyxJQUFSLEtBQWlCQyxNQUFyQixFQUE2QjtFQUMzQixJQUFBQyxrQkFBQSxFQUFTbkIsS0FBVDtBQUNEOztlQUVjQSxLIn0=
|
package/build/lib/cert-utils.js
CHANGED
|
@@ -44,4 +44,4 @@ async function installCertificateLegacy(device, payload) {
|
|
|
44
44
|
}require('source-map-support').install();
|
|
45
45
|
|
|
46
46
|
|
|
47
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NlcnQtdXRpbHMuanMiLCJuYW1lcyI6WyJkb2VzU3VwcG9ydEtleWNoYWluQXBpIiwiXyIsIm1lbW9pemUiLCJkZXZpY2UiLCJzaW1jdGwiLCJleGVjIiwiYXJncyIsImUiLCJpbnN0YWxsQ2VydGlmaWNhdGUiLCJwYXlsb2FkIiwiYWRkUm9vdENlcnRpZmljYXRlIiwicmF3IiwiaGFzQ2VydGlmaWNhdGVMZWdhY3kiLCJoYXNTU0xDZXJ0IiwidWRpZCIsImluc3RhbGxDZXJ0aWZpY2F0ZUxlZ2FjeSIsImluc3RhbGxTU0xDZXJ0Il0sInNvdXJjZVJvb3QiOiIuLi8uLiIsInNvdXJjZXMiOlsibGliL2NlcnQtdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGluc3RhbGxTU0xDZXJ0LCBoYXNTU0xDZXJ0IH0gZnJvbSAnYXBwaXVtLWlvcy1zaW11bGF0b3InO1xuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIFNpbXVsYXRvciBkZXZpY2Ugc3VwcG9ydHMgc2ltY3RsIGtleWNoYWluIEFQSS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gZGV2aWNlIFNpbXVsYXRvciBpbnN0YW5jZSBjcmVhdGVkIGJ5IGFwcGl1bS1pb3Mtc2ltdWxhdG9yIG1vZHVsZVxuICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgY3VycmVudCBTaW11bGF0b3IgU0RLIHN1cHBvcnRzIGtleWNoYWluIGNvbW1hbmRzLlxuICovXG5jb25zdCBkb2VzU3VwcG9ydEtleWNoYWluQXBpID0gXy5tZW1vaXplKGFzeW5jIGZ1bmN0aW9uIGRvZXNTdXBwb3J0S2V5Y2hhaW5BcGkgKGRldmljZSkge1xuICB0cnkge1xuICAgIGF3YWl0IGRldmljZS5zaW1jdGwuZXhlYygnaGVscCcsIHtcbiAgICAgIGFyZ3M6IFsna2V5Y2hhaW4nXVxuICAgIH0pO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59KTtcblxuLyoqXG4gKiBBZGRzIGEgY2VydGlmaWNhdGUgdG8gdGhlIHRydXN0ZWQgcm9vdCBzdG9yZS5cbiAqIFNpbXVsYXRvciBtdXN0IGJlIGluIEJPT1RFRCBzdGF0ZSBmb3IgdGhpcyBBUEkgdG8gd29yay5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gZGV2aWNlIFNpbXVsYXRvciBpbnN0YW5jZSBjcmVhdGVkIGJ5IGFwcGl1bS1pb3Mtc2ltdWxhdG9yIG1vZHVsZVxuICogQHBhcmFtIHtzdHJpbmd9IHBheWxvYWQgQ2VydGlmaWNhdGUgcGF5bG9hZFxuICovXG5hc3luYyBmdW5jdGlvbiBpbnN0YWxsQ2VydGlmaWNhdGUgKGRldmljZSwgcGF5bG9hZCkge1xuICBhd2FpdCBkZXZpY2Uuc2ltY3RsLmFkZFJvb3RDZXJ0aWZpY2F0ZShwYXlsb2FkLCB7cmF3OiB0cnVlfSk7XG59XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgZ2l2ZW4gY2VydGlmaWNhdGUgaXMgYWxyZWFkeSBpbnN0YWxsZWQuXG4gKiBUaGUgZnVuY3Rpb24gaXMgdXNpbmcgaGFja3kgY2FsbHMgdG8gbWFrZSBjZXJ0aWZpY2F0ZSBzdHVmZiB3b3JraW5nIGZvciBvbGRlciBTREtzLlxuICogU2ltdWxhdG9yIG11c3QgYmUgaW4gU0hVVERPV04gc3RhdGUgZm9yIHRoaXMgQVBJIHRvIHdvcmsuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGRldmljZSBTaW11bGF0b3IgaW5zdGFuY2UgY3JlYXRlZCBieSBhcHBpdW0taW9zLXNpbXVsYXRvciBtb2R1bGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXlsb2FkIENlcnRpZmljYXRlIHBheWxvYWRcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgdGhlIGNlcnRpZmljYXRlIGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGUgcm9vdCBzdG9yZS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gaGFzQ2VydGlmaWNhdGVMZWdhY3kgKGRldmljZSwgcGF5bG9hZCkge1xuICByZXR1cm4gYXdhaXQgaGFzU1NMQ2VydChwYXlsb2FkLCBkZXZpY2UudWRpZCk7XG59XG5cbi8qKlxuICogQWRkcyBhIGNlcnRpZmljYXRlIHRvIHRoZSB0cnVzdGVkIHJvb3Qgc3RvcmUuXG4gKiBUaGUgZnVuY3Rpb24gaXMgdXNpbmcgaGFja3kgY2FsbHMgdG8gbWFrZSBjZXJ0aWZpY2F0ZSBzdHVmZiB3b3JraW5nIGZvciBvbGRlciBTREtzLlxuICogU2ltdWxhdG9yIG11c3QgYmUgaW4gU0hVVERPV04gc3RhdGUgZm9yIHRoaXMgQVBJIHRvIHdvcmsuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGRldmljZSBTaW11bGF0b3IgaW5zdGFuY2UgY3JlYXRlZCBieSBhcHBpdW0taW9zLXNpbXVsYXRvciBtb2R1bGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXlsb2FkIENlcnRpZmljYXRlIHBheWxvYWRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gaW5zdGFsbENlcnRpZmljYXRlTGVnYWN5IChkZXZpY2UsIHBheWxvYWQpIHtcbiAgYXdhaXQgaW5zdGFsbFNTTENlcnQocGF5bG9hZCwgZGV2aWNlLnVkaWQpO1xufVxuXG5cbmV4cG9ydCB7XG4gIGRvZXNTdXBwb3J0S2V5Y2hhaW5BcGksIGluc3RhbGxDZXJ0aWZpY2F0ZSwgaW5zdGFsbENlcnRpZmljYXRlTGVnYWN5LFxuICBoYXNDZXJ0aWZpY2F0ZUxlZ2FjeVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFRQSxNQUFNQSxzQkFBc0IsR0FBR0MsZUFBQSxDQUFFQyxPQUFGLENBQVUsZUFBZUYsc0JBQWYsQ0FBdUNHLE1BQXZDLEVBQStDO0VBQ3RGLElBQUk7SUFDRixNQUFNQSxNQUFNLENBQUNDLE1BQVAsQ0FBY0MsSUFBZCxDQUFtQixNQUFuQixFQUEyQjtNQUMvQkMsSUFBSSxFQUFFLENBQUMsVUFBRDtJQUR5QixDQUEzQixDQUFOO0lBR0EsT0FBTyxJQUFQO0VBQ0QsQ0FMRCxDQUtFLE9BQU9DLENBQVAsRUFBVTtJQUNWLE9BQU8sS0FBUDtFQUNEO0FBQ0YsQ0FUOEIsQ0FBL0I7Ozs7QUFrQkEsZUFBZUMsa0JBQWYsQ0FBbUNMLE1BQW5DLEVBQTJDTSxPQUEzQyxFQUFvRDtFQUNsRCxNQUFNTixNQUFNLENBQUNDLE1BQVAsQ0FBY00sa0JBQWQsQ0FBaUNELE9BQWpDLEVBQTBDO0lBQUNFLEdBQUcsRUFBRTtFQUFOLENBQTFDLENBQU47QUFDRDs7QUFXRCxlQUFlQyxvQkFBZixDQUFxQ1QsTUFBckMsRUFBNkNNLE9BQTdDLEVBQXNEO0VBQ3BELE9BQU8sTUFBTSxJQUFBSSw4QkFBQSxFQUFXSixPQUFYLEVBQW9CTixNQUFNLENBQUNXLElBQTNCLENBQWI7QUFDRDs7QUFVRCxlQUFlQyx3QkFBZixDQUF5Q1osTUFBekMsRUFBaURNLE9BQWpELEVBQTBEO0VBQ3hELE1BQU0sSUFBQU8sa0NBQUEsRUFBZVAsT0FBZixFQUF3Qk4sTUFBTSxDQUFDVyxJQUEvQixDQUFOO0FBQ0QifQ==
|
|
@@ -20,4 +20,4 @@ var _default = extensions;
|
|
|
20
20
|
exports.default = _default;require('source-map-support').install();
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2FjdGl2ZUFwcEluZm8uanMiLCJuYW1lcyI6WyJleHRlbnNpb25zIiwiY29tbWFuZHMiLCJtb2JpbGVHZXRBY3RpdmVBcHBJbmZvIiwicHJveHlDb21tYW5kIiwiT2JqZWN0IiwiYXNzaWduIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL2NvbW1hbmRzL2FjdGl2ZUFwcEluZm8uanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXh0ZW5zaW9ucyA9IHt9LCBjb21tYW5kcyA9IHt9O1xuXG4vKipcbiAqIFJldHVybnMgQWN0aXZlQXBwIGluZm8uXG4gKlxuICogQHJldHVybnMge09iamVjdH0gVGhlIHJlc3BvbnNlIG9mIGAvd2RhL2FjdGl2ZUFwcEluZm8nYFxuICogQHRocm93cyB7RXJyb3J9IGlmIGFuIGVycm9yIHJhaXNlZCBieSBjb21tYW5kXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUdldEFjdGl2ZUFwcEluZm8gPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVHZXRBY3RpdmVBcHBJbmZvICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvd2RhL2FjdGl2ZUFwcEluZm8nLCAnR0VUJyk7XG59O1xuXG5PYmplY3QuYXNzaWduKGV4dGVuc2lvbnMsIGNvbW1hbmRzKTtcbmV4cG9ydCB7IGNvbW1hbmRzIH07XG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxNQUFNQSxVQUFVLEdBQUcsRUFBbkI7QUFBQSxNQUF1QkMsUUFBUSxHQUFHLEVBQWxDOzs7QUFRQUEsUUFBUSxDQUFDQyxzQkFBVCxHQUFrQyxlQUFlQSxzQkFBZixHQUF5QztFQUN6RSxPQUFPLE1BQU0sS0FBS0MsWUFBTCxDQUFrQixvQkFBbEIsRUFBd0MsS0FBeEMsQ0FBYjtBQUNELENBRkQ7O0FBSUFDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjTCxVQUFkLEVBQTBCQyxRQUExQjtlQUVlRCxVIn0=
|
|
@@ -62,4 +62,4 @@ var _default = commands;
|
|
|
62
62
|
exports.default = _default;require('source-map-support').install();
|
|
63
63
|
|
|
64
64
|
|
|
65
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2FsZXJ0LmpzIiwibmFtZXMiOlsiY29tbWFuZHMiLCJ0b0FsZXJ0UGFyYW1zIiwib3B0cyIsInBhcmFtcyIsImJ1dHRvbkxhYmVsIiwibmFtZSIsImdldEFsZXJ0VGV4dCIsInByb3h5Q29tbWFuZCIsInNldEFsZXJ0VGV4dCIsInZhbHVlIiwicG9zdEFjY2VwdEFsZXJ0IiwicG9zdERpc21pc3NBbGVydCIsImdldEFsZXJ0QnV0dG9ucyIsIm1vYmlsZUhhbmRsZUFsZXJ0IiwiYWN0aW9uIiwiRXJyb3IiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvY29tbWFuZHMvYWxlcnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29tbWFuZHMgPSB7fTtcblxuZnVuY3Rpb24gdG9BbGVydFBhcmFtcyAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHBhcmFtcyA9IHt9O1xuICBpZiAob3B0cy5idXR0b25MYWJlbCkge1xuICAgIHBhcmFtcy5uYW1lID0gb3B0cy5idXR0b25MYWJlbDtcbiAgfVxuICByZXR1cm4gcGFyYW1zO1xufVxuXG5jb21tYW5kcy5nZXRBbGVydFRleHQgPSBhc3luYyBmdW5jdGlvbiBnZXRBbGVydFRleHQgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy9hbGVydC90ZXh0JywgJ0dFVCcpO1xufTtcblxuY29tbWFuZHMuc2V0QWxlcnRUZXh0ID0gYXN5bmMgZnVuY3Rpb24gc2V0QWxlcnRUZXh0ICh2YWx1ZSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy9hbGVydC90ZXh0JywgJ1BPU1QnLCB7dmFsdWV9KTtcbn07XG5cbmNvbW1hbmRzLnBvc3RBY2NlcHRBbGVydCA9IGFzeW5jIGZ1bmN0aW9uIHBvc3RBY2NlcHRBbGVydCAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL2FsZXJ0L2FjY2VwdCcsICdQT1NUJywgdG9BbGVydFBhcmFtcyhvcHRzKSk7XG59O1xuXG5jb21tYW5kcy5wb3N0RGlzbWlzc0FsZXJ0ID0gYXN5bmMgZnVuY3Rpb24gcG9zdERpc21pc3NBbGVydCAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL2FsZXJ0L2Rpc21pc3MnLCAnUE9TVCcsIHRvQWxlcnRQYXJhbXMob3B0cykpO1xufTtcblxuY29tbWFuZHMuZ2V0QWxlcnRCdXR0b25zID0gYXN5bmMgZnVuY3Rpb24gZ2V0QWxlcnRCdXR0b25zICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvd2RhL2FsZXJ0L2J1dHRvbnMnLCAnR0VUJyk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVIYW5kbGVBbGVydCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUhhbmRsZUFsZXJ0IChvcHRzID0ge30pIHtcbiAgc3dpdGNoIChvcHRzLmFjdGlvbikge1xuICAgIGNhc2UgJ2FjY2VwdCc6XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wb3N0QWNjZXB0QWxlcnQob3B0cyk7XG4gICAgY2FzZSAnZGlzbWlzcyc6XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wb3N0RGlzbWlzc0FsZXJ0KG9wdHMpO1xuICAgIGNhc2UgJ2dldEJ1dHRvbnMnOlxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0QWxlcnRCdXR0b25zKCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlICdhY3Rpb24nIHZhbHVlIHNob3VsZCBiZSBlaXRoZXIgJ2FjY2VwdCcsICdkaXNtaXNzJyBvciAnZ2V0QnV0dG9ucycuIGAgK1xuICAgICAgICAgICAgICAgICAgICAgIGAnJHtvcHRzLmFjdGlvbn0nIGlzIHByb3ZpZGVkIGluc3RlYWQuYCk7XG4gIH1cbn07XG5cbmV4cG9ydCB7IGNvbW1hbmRzIH07XG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsTUFBTUEsUUFBUSxHQUFHLEVBQWpCOzs7QUFFQSxTQUFTQyxhQUFULENBQXdCQyxJQUFJLEdBQUcsRUFBL0IsRUFBbUM7RUFDakMsTUFBTUMsTUFBTSxHQUFHLEVBQWY7O0VBQ0EsSUFBSUQsSUFBSSxDQUFDRSxXQUFULEVBQXNCO0lBQ3BCRCxNQUFNLENBQUNFLElBQVAsR0FBY0gsSUFBSSxDQUFDRSxXQUFuQjtFQUNEOztFQUNELE9BQU9ELE1BQVA7QUFDRDs7QUFFREgsUUFBUSxDQUFDTSxZQUFULEdBQXdCLGVBQWVBLFlBQWYsR0FBK0I7RUFDckQsT0FBTyxNQUFNLEtBQUtDLFlBQUwsQ0FBa0IsYUFBbEIsRUFBaUMsS0FBakMsQ0FBYjtBQUNELENBRkQ7O0FBSUFQLFFBQVEsQ0FBQ1EsWUFBVCxHQUF3QixlQUFlQSxZQUFmLENBQTZCQyxLQUE3QixFQUFvQztFQUMxRCxPQUFPLE1BQU0sS0FBS0YsWUFBTCxDQUFrQixhQUFsQixFQUFpQyxNQUFqQyxFQUF5QztJQUFDRTtFQUFELENBQXpDLENBQWI7QUFDRCxDQUZEOztBQUlBVCxRQUFRLENBQUNVLGVBQVQsR0FBMkIsZUFBZUEsZUFBZixDQUFnQ1IsSUFBSSxHQUFHLEVBQXZDLEVBQTJDO0VBQ3BFLE9BQU8sTUFBTSxLQUFLSyxZQUFMLENBQWtCLGVBQWxCLEVBQW1DLE1BQW5DLEVBQTJDTixhQUFhLENBQUNDLElBQUQsQ0FBeEQsQ0FBYjtBQUNELENBRkQ7O0FBSUFGLFFBQVEsQ0FBQ1csZ0JBQVQsR0FBNEIsZUFBZUEsZ0JBQWYsQ0FBaUNULElBQUksR0FBRyxFQUF4QyxFQUE0QztFQUN0RSxPQUFPLE1BQU0sS0FBS0ssWUFBTCxDQUFrQixnQkFBbEIsRUFBb0MsTUFBcEMsRUFBNENOLGFBQWEsQ0FBQ0MsSUFBRCxDQUF6RCxDQUFiO0FBQ0QsQ0FGRDs7QUFJQUYsUUFBUSxDQUFDWSxlQUFULEdBQTJCLGVBQWVBLGVBQWYsR0FBa0M7RUFDM0QsT0FBTyxNQUFNLEtBQUtMLFlBQUwsQ0FBa0Isb0JBQWxCLEVBQXdDLEtBQXhDLENBQWI7QUFDRCxDQUZEOztBQUlBUCxRQUFRLENBQUNhLGlCQUFULEdBQTZCLGVBQWVBLGlCQUFmLENBQWtDWCxJQUFJLEdBQUcsRUFBekMsRUFBNkM7RUFDeEUsUUFBUUEsSUFBSSxDQUFDWSxNQUFiO0lBQ0UsS0FBSyxRQUFMO01BQ0UsT0FBTyxNQUFNLEtBQUtKLGVBQUwsQ0FBcUJSLElBQXJCLENBQWI7O0lBQ0YsS0FBSyxTQUFMO01BQ0UsT0FBTyxNQUFNLEtBQUtTLGdCQUFMLENBQXNCVCxJQUF0QixDQUFiOztJQUNGLEtBQUssWUFBTDtNQUNFLE9BQU8sTUFBTSxLQUFLVSxlQUFMLEVBQWI7O0lBQ0Y7TUFDRSxNQUFNLElBQUlHLEtBQUosQ0FBVywyRUFBRCxHQUNDLElBQUdiLElBQUksQ0FBQ1ksTUFBTyx3QkFEMUIsQ0FBTjtFQVJKO0FBV0QsQ0FaRDs7ZUFlZWQsUSJ9
|
|
@@ -197,4 +197,4 @@ var _default = commands;
|
|
|
197
197
|
exports.default = _default;require('source-map-support').install();
|
|
198
198
|
|
|
199
199
|
|
|
200
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9hcHAtbWFuYWdlbWVudC5qcyJdLCJuYW1lcyI6WyJjb21tYW5kcyIsInJlcXVpcmVPcHRpb25zIiwib3B0cyIsInJlcUtleXMiLCJrZXkiLCJfIiwiaXNTdHJpbmciLCJpc0VtcHR5IiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJtb2JpbGVJbnN0YWxsQXBwIiwiYXBwIiwidGltZW91dE1zIiwic3RyYXRlZ3kiLCJzcmNBcHBQYXRoIiwiaGVscGVycyIsImNvbmZpZ3VyZUFwcCIsImxvZyIsImluZm8iLCJpc1JlYWxEZXZpY2UiLCJkZXZpY2UiLCJ1ZGlkIiwiZnMiLCJleGlzdHMiLCJlcnJvckFuZFRocm93IiwiaW5zdGFsbEFwcCIsImFwcFB1c2hUaW1lb3V0IiwiYXBwSW5zdGFsbFN0cmF0ZWd5IiwibW9iaWxlSXNBcHBJbnN0YWxsZWQiLCJidW5kbGVJZCIsImluc3RhbGxlZCIsImlzQXBwSW5zdGFsbGVkIiwibW9iaWxlUmVtb3ZlQXBwIiwicmVtb3ZlQXBwIiwiZXJyIiwid2FybiIsIm1lc3NhZ2UiLCJtb2JpbGVMYXVuY2hBcHAiLCJsYXVuY2hPcHRpb25zIiwiYXJndW1lbnRzIiwiaXNBcnJheSIsImVudmlyb25tZW50IiwicHJveHlDb21tYW5kIiwibW9iaWxlVGVybWluYXRlQXBwIiwibW9iaWxlQWN0aXZhdGVBcHAiLCJtb2JpbGVLaWxsQXBwIiwiVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvciIsImluc3RydW1lbnRTZXJ2aWNlIiwiaW5zdGFsbFByb3h5U2VydmljZSIsInNlcnZpY2VzIiwic3RhcnRJbnN0YWxsYXRpb25Qcm94eVNlcnZpY2UiLCJhcHBzIiwibGlzdEFwcGxpY2F0aW9ucyIsImV4ZWN1dGFibGVOYW1lIiwiQ0ZCdW5kbGVFeGVjdXRhYmxlIiwiZGVidWciLCJzdGFydEluc3RydW1lbnRTZXJ2aWNlIiwicHJvY2Vzc2VzIiwiY2FsbENoYW5uZWwiLCJJTlNUUlVNRU5UX0NIQU5ORUwiLCJERVZJQ0VfSU5GTyIsInByb2Nlc3MiLCJzZWxlY3RvciIsImZpbmQiLCJuYW1lIiwiUFJPQ0VTU19DT05UUk9MIiwicGlkIiwic3RkZXJyIiwiY2xvc2UiLCJtb2JpbGVRdWVyeUFwcFN0YXRlIiwiYXBwUGF0aCIsImlzUGxhaW5PYmplY3QiLCJhY3RpdmF0ZUFwcCIsIk9iamVjdCIsImFzc2lnbiIsInRlcm1pbmF0ZUFwcCIsInF1ZXJ5QXBwU3RhdGUiLCJtb2JpbGVMaXN0QXBwcyIsIk5vdEltcGxlbWVudGVkRXJyb3IiLCJhcHBsaWNhdGlvblR5cGUiLCJzZXJ2aWNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjs7QUFFQSxTQUFTQyxjQUFULENBQXlCQyxJQUFJLEdBQUcsRUFBaEMsRUFBb0NDLE9BQU8sR0FBRyxFQUE5QyxFQUFrRDtBQUNoRCxPQUFLLE1BQU1DLEdBQVgsSUFBa0JELE9BQWxCLEVBQTJCO0FBQ3pCLFFBQUksQ0FBQ0UsZ0JBQUVDLFFBQUYsQ0FBV0osSUFBSSxDQUFDRSxHQUFELENBQWYsQ0FBRCxJQUEwQkMsZ0JBQUVFLE9BQUYsQ0FBVUwsSUFBSSxDQUFDRSxHQUFELENBQWQsQ0FBOUIsRUFBb0Q7QUFDbEQsWUFBTSxJQUFJSSxtQkFBT0Msb0JBQVgsQ0FDSCxJQUFHTCxHQUFJLHdDQUF1Q0YsSUFBSSxDQUFDRSxHQUFELENBQU0sb0JBRHJELENBQU47QUFHRDtBQUNGOztBQUNELFNBQU9GLElBQVA7QUFDRDs7QUFFREYsUUFBUSxDQUFDVSxnQkFBVCxHQUE0QixlQUFlQSxnQkFBZixDQUFpQ1IsSUFBSSxHQUFHLEVBQXhDLEVBQTRDO0FBQ3RFLFFBQU07QUFBRVMsSUFBQUEsR0FBRjtBQUFPQyxJQUFBQSxTQUFQO0FBQWtCQyxJQUFBQTtBQUFsQixNQUErQlosY0FBYyxDQUFDQyxJQUFELEVBQU8sQ0FBQyxLQUFELENBQVAsQ0FBbkQ7QUFDQSxRQUFNWSxVQUFVLEdBQUcsTUFB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cyB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcbmltcG9ydCB7IHNlcnZpY2VzLCBJTlNUUlVNRU5UX0NIQU5ORUwgfSBmcm9tICdhcHBpdW0taW9zLWRldmljZSc7XG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbmZ1bmN0aW9uIHJlcXVpcmVPcHRpb25zIChvcHRzID0ge30sIHJlcUtleXMgPSBbXSkge1xuICBmb3IgKGNvbnN0IGtleSBvZiByZXFLZXlzKSB7XG4gICAgaWYgKCFfLmlzU3RyaW5nKG9wdHNba2V5XSkgfHwgXy5pc0VtcHR5KG9wdHNba2V5XSkpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAgIGAnJHtrZXl9JyBpcyBleHBlY3RlZCB0byBiZSBhIHZhbGlkIHN0cmluZy4gJyR7b3B0c1trZXldfScgaXMgZ2l2ZW4gaW5zdGVhZGBcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBvcHRzO1xufVxuXG5jb21tYW5kcy5tb2JpbGVJbnN0YWxsQXBwID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlSW5zdGFsbEFwcCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHsgYXBwLCB0aW1lb3V0TXMsIHN0cmF0ZWd5IH0gPSByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2FwcCddKTtcbiAgY29uc3Qgc3JjQXBwUGF0aCA9IGF3YWl0IHRoaXMuaGVscGVycy5jb25maWd1cmVBcHAoYXBwLCAnLmFwcCcpO1xuICB0aGlzLmxvZy5pbmZvKGBJbnN0YWxsaW5nICcke3NyY0FwcFBhdGh9JyB0byB0aGUgJHt0aGlzLmlzUmVhbERldmljZSgpID8gJ3JlYWwgZGV2aWNlJyA6ICdTaW11bGF0b3InfSBgICtcbiAgICBgd2l0aCBVRElEICcke3RoaXMub3B0cy5kZXZpY2UudWRpZH0nYCk7XG4gIGlmICghYXdhaXQgZnMuZXhpc3RzKHNyY0FwcFBhdGgpKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhgVGhlIGFwcGxpY2F0aW9uIGF0ICcke3NyY0FwcFBhdGh9JyBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgYWNjZXNzaWJsZWApO1xuICB9XG4gIGF3YWl0IHRoaXMub3B0cy5kZXZpY2UuaW5zdGFsbEFwcChcbiAgICBzcmNBcHBQYXRoLCB0aW1lb3V0TXMgPz8gdGhpcy5vcHRzLmFwcFB1c2hUaW1lb3V0LCBzdHJhdGVneSA/PyB0aGlzLm9wdHMuYXBwSW5zdGFsbFN0cmF0ZWd5XG4gICk7XG4gIHRoaXMubG9nLmluZm8oYEluc3RhbGxhdGlvbiBvZiAnJHtzcmNBcHBQYXRofScgc3VjY2VlZGVkYCk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVJc0FwcEluc3RhbGxlZCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUlzQXBwSW5zdGFsbGVkIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2J1bmRsZUlkfSA9IHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSk7XG4gIGNvbnN0IGluc3RhbGxlZCA9IGF3YWl0IHRoaXMub3B0cy5kZXZpY2UuaXNBcHBJbnN0YWxsZWQoYnVuZGxlSWQpO1xuICB0aGlzLmxvZy5pbmZvKGBBcHAgJyR7YnVuZGxlSWR9JyBpcyR7aW5zdGFsbGVkID8gJycgOiAnIG5vdCd9IGluc3RhbGxlZGApO1xuICByZXR1cm4gaW5zdGFsbGVkO1xufTtcblxuY29tbWFuZHMubW9iaWxlUmVtb3ZlQXBwID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlUmVtb3ZlQXBwIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2J1bmRsZUlkfSA9IHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSk7XG4gIHRoaXMubG9nLmluZm8oYFVuaW5zdGFsbGluZyB0aGUgYXBwbGljYXRpb24gd2l0aCBidW5kbGUgaWRlbnRpZmllciAnJHtidW5kbGVJZH0nIGAgK1xuICAgIGBmcm9tIHRoZSAke3RoaXMuaXNSZWFsRGV2aWNlKCkgPyAncmVhbCBkZXZpY2UnIDogJ1NpbXVsYXRvcid9IHdpdGggVURJRCAnJHt0aGlzLm9wdHMuZGV2aWNlLnVkaWR9J2ApO1xuICB0cnkge1xuICAgIGF3YWl0IHRoaXMub3B0cy5kZXZpY2UucmVtb3ZlQXBwKGJ1bmRsZUlkKTtcbiAgICB0aGlzLmxvZy5pbmZvKGBSZW1vdmFsIG9mICcke2J1bmRsZUlkfScgc3VjY2VlZGVkYCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMubG9nLndhcm4oYENhbm5vdCByZW1vdmUgJyR7YnVuZGxlSWR9Jy4gT3JpZ2luYWwgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59O1xuXG5jb21tYW5kcy5tb2JpbGVMYXVuY2hBcHAgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVMYXVuY2hBcHAgKG9wdHMgPSB7fSkge1xuICBjb25zdCBsYXVuY2hPcHRpb25zID0gcmVxdWlyZU9wdGlvbnMob3B0cywgWydidW5kbGVJZCddKTtcbiAgaWYgKG9wdHMuYXJndW1lbnRzKSB7XG4gICAgbGF1bmNoT3B0aW9ucy5hcmd1bWVudHMgPSBfLmlzQXJyYXkob3B0cy5hcmd1bWVudHMpID8gb3B0cy5hcmd1bWVudHMgOiBbb3B0cy5hcmd1bWVudHNdO1xuICB9XG4gIGlmIChvcHRzLmVudmlyb25tZW50KSB7XG4gICAgbGF1bmNoT3B0aW9ucy5lbnZpcm9ubWVudCA9IG9wdHMuZW52aXJvbm1lbnQ7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvd2RhL2FwcHMvbGF1bmNoJywgJ1BPU1QnLCBsYXVuY2hPcHRpb25zKTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZVRlcm1pbmF0ZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVRlcm1pbmF0ZUFwcCAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS9hcHBzL3Rlcm1pbmF0ZScsICdQT1NUJywgcmVxdWlyZU9wdGlvbnMob3B0cywgWydidW5kbGVJZCddKSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVBY3RpdmF0ZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUFjdGl2YXRlQXBwIChvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvd2RhL2FwcHMvYWN0aXZhdGUnLCAnUE9TVCcsIHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSkpO1xufTtcblxuLyoqXG4gKiBLaWxsIHRoZSBnaXZlbiBidW5kbGUgaWQgcHJvY2VzcyB2aWEgaW5zdHJ1bWVudHMgc2VydmljZS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ZdWVDaGVuLUMvcHktaW9zLWRldmljZS9ibG9iLzUxZjQ2ODNjNWMzYzM4NWEwMTU4NThhZGEwN2E1ZjFjNjJkM2NmNTcvaW9zX2RldmljZS9jbGkvYmFzZS5weSNMMjIwXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBPcHRpb25zIHNldCwgd2hpY2ggbXVzdCBjb250YWluIGBidW5kbGVJZGAgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIHRydWUgaWYgdGhlIGJ1bmRsZSBpZCBwcm9jZXNzIHdhcyBraWxsZWQuIE90aGVyd2lzZSBmYWxzZS5cbiAqL1xuY29tbWFuZHMubW9iaWxlS2lsbEFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUtpbGxBcHAgKG9wdHMgPSB7fSkge1xuICBpZiAoIXRoaXMuaXNSZWFsRGV2aWNlKCkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLlVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3IoJ0EgcmVhbCBkZXZpY2UgaXMgcmVxdWlyZWQnKTtcbiAgfVxuXG4gIGNvbnN0IHtidW5kbGVJZH0gPSByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pO1xuICBsZXQgaW5zdHJ1bWVudFNlcnZpY2U7XG4gIGxldCBpbnN0YWxsUHJveHlTZXJ2aWNlO1xuICB0cnkge1xuICAgIGluc3RhbGxQcm94eVNlcnZpY2UgPSBhd2FpdCBzZXJ2aWNlcy5zdGFydEluc3RhbGxhdGlvblByb3h5U2VydmljZSh0aGlzLm9wdHMuZGV2aWNlLnVkaWQpO1xuICAgIGNvbnN0IGFwcHMgPSBhd2FpdCBpbnN0YWxsUHJveHlTZXJ2aWNlLmxpc3RBcHBsaWNhdGlvbnMoKTtcbiAgICBpZiAoIWFwcHNbYnVuZGxlSWRdKSB7XG4gICAgICB0aGlzLmxvZy5pbmZvKGBUaGUgYnVuZGxlIGlkICcke2J1bmRsZUlkfScgZGlkIG5vdCBleGlzdGApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBleGVjdXRhYmxlTmFtZSA9IGFwcHNbYnVuZGxlSWRdLkNGQnVuZGxlRXhlY3V0YWJsZTtcbiAgICB0aGlzLmxvZy5kZWJ1ZyhgVGhlIGV4ZWN1dGFibGUgbmFtZSBmb3IgdGhlIGJ1bmRsZSBpZCAnJHtidW5kbGVJZH0nIHdhcyAnJHtleGVjdXRhYmxlTmFtZX0nYCk7XG4gICAgaW5zdHJ1bWVudFNlcnZpY2UgPSBhd2FpdCBzZXJ2aWNlcy5zdGFydEluc3RydW1lbnRTZXJ2aWNlKHRoaXMub3B0cy5kZXZpY2UudWRpZCk7XG4gICAgY29uc3QgcHJvY2Vzc2VzID0gYXdhaXQgaW5zdHJ1bWVudFNlcnZpY2UuY2FsbENoYW5uZWwoSU5TVFJVTUVOVF9DSEFOTkVMLkRFVklDRV9JTkZPLCAncnVubmluZ1Byb2Nlc3NlcycpO1xuICAgIGNvbnN0IHByb2Nlc3MgPSBwcm9jZXNzZXMuc2VsZWN0b3IuZmluZCgocHJvY2VzcykgPT4gcHJvY2Vzcy5uYW1lID09PSBleGVjdXRhYmxlTmFtZSk7XG4gICAgaWYgKCFwcm9jZXNzKSB7XG4gICAgICB0aGlzLmxvZy5pbmZvKGBUaGUgcHJvY2VzcyBvZiB0aGUgYnVuZGxlIGlkICcke2J1bmRsZUlkfScgd2FzIG5vdCBydW5uaW5nYCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGF3YWl0IGluc3RydW1lbnRTZXJ2aWNlLmNhbGxDaGFubmVsKElOU1RSVU1FTlRfQ0hBTk5FTC5QUk9DRVNTX0NPTlRST0wsICdraWxsUGlkOicsIGAke3Byb2Nlc3MucGlkfWApO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLmxvZy53YXJuKGBGYWlsZWQgdG8ga2lsbCAnJHtidW5kbGVJZH0nLiBPcmlnaW5hbCBlcnJvcjogJHtlcnIuc3RkZXJyIHx8IGVyci5tZXNzYWdlfWApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSBmaW5hbGx5IHtcbiAgICBpZiAoaW5zdGFsbFByb3h5U2VydmljZSkge1xuICAgICAgaW5zdGFsbFByb3h5U2VydmljZS5jbG9zZSgpO1xuICAgIH1cbiAgICBpZiAoaW5zdHJ1bWVudFNlcnZpY2UpIHtcbiAgICAgIGluc3RydW1lbnRTZXJ2aWNlLmNsb3NlKCk7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gc3RhdGVcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIE9wdGlvbnMgc2V0LCB3aGljaCBtdXN0IGNvbnRhaW4gYGJ1bmRsZUlkYCBwcm9wZXJ0eVxuICogQHJldHVybnMge251bWJlcn0gVGhlIGFjdHVhbCBhcHBsaWNhdGlvbiBzdGF0ZSBjb2RlLiBTZWVcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpYXBwbGljYXRpb25zdGF0ZT9sYW5ndWFnZT1vYmpjXG4gKiB0byBnZXQgdGhlIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzLlxuICovXG5jb21tYW5kcy5tb2JpbGVRdWVyeUFwcFN0YXRlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlUXVlcnlBcHBTdGF0ZSAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS9hcHBzL3N0YXRlJywgJ1BPU1QnLCByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pKTtcbn07XG5cbmNvbW1hbmRzLmluc3RhbGxBcHAgPSBhc3luYyBmdW5jdGlvbiBpbnN0YWxsQXBwIChhcHBQYXRoLCBvcHRzID0ge30pIHtcbiAgYXdhaXQgdGhpcy5tb2JpbGVJbnN0YWxsQXBwKHtcbiAgICAuLi4oXy5pc1BsYWluT2JqZWN0KG9wdHMpID8gb3B0cyA6IHt9KSxcbiAgICBhcHA6IGFwcFBhdGgsXG4gIH0pO1xufTtcblxuY29tbWFuZHMuYWN0aXZhdGVBcHAgPSBhc3luYyBmdW5jdGlvbiBhY3RpdmF0ZUFwcCAoYnVuZGxlSWQsIG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5tb2JpbGVMYXVuY2hBcHAoT2JqZWN0LmFzc2lnbih7fSwgb3B0cywge2J1bmRsZUlkfSkpO1xufTtcblxuY29tbWFuZHMuaXNBcHBJbnN0YWxsZWQgPSBhc3luYyBmdW5jdGlvbiBpc0FwcEluc3RhbGxlZCAoYnVuZGxlSWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMubW9iaWxlSXNBcHBJbnN0YWxsZWQoe2J1bmRsZUlkfSk7XG59O1xuXG5jb21tYW5kcy50ZXJtaW5hdGVBcHAgPSBhc3luYyBmdW5jdGlvbiB0ZXJtaW5hdGVBcHAgKGJ1bmRsZUlkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLm1vYmlsZVRlcm1pbmF0ZUFwcCh7YnVuZGxlSWR9KTtcbn07XG5cbmNvbW1hbmRzLnF1ZXJ5QXBwU3RhdGUgPSBhc3luYyBmdW5jdGlvbiBxdWVyeUFwcFN0YXRlIChidW5kbGVJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5tb2JpbGVRdWVyeUFwcFN0YXRlKHtidW5kbGVJZH0pO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBMaXN0QXBwc09wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7J1N5c3RlbSd8J1VzZXInfSBhcHBsaWNhdGlvblR5cGUgW1VzZXJdIFRoZSB0eXBlIG9mIGFwcGxpY2F0aW9ucyB0byBsaXN0XG4gKi9cblxuLyoqXG4gKiBMaXN0IGFwcGxpY2F0aW9ucyBpbnN0YWxsZWQgb24gdGhlIHJlYWwgZGV2aWNlIHVuZGVyIHRlc3RcbiAqXG4gKiBAcGFyYW0ge0xpc3RBcHBzT3B0aW9uc30gb3B0c1xuICogQHJldHVybnMge0FycmF5PE9iamVjdD59IEEgbGlzdCBvZiBhcHBzLCB3aGVyZSBlYWNoIGl0ZW0gaXMgYSBtYXAgd2hlcmUga2V5cyBhcmVcbiAqIGJ1bmRsZSBpZGVudGlmaWVycyBhbmQgdmFsdWVzIGFyZSBtYXBzIG9mIHBsYXRmb3JtLXNwZWNpZmljIGFwcCBwcm9wZXJ0aWVzLlxuICovXG5jb21tYW5kcy5tb2JpbGVMaXN0QXBwcyA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUxpc3RBcHBzIChvcHRzID0ge30pIHtcbiAgaWYgKCF0aGlzLmlzUmVhbERldmljZSgpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKGBUaGlzIGV4dGVuc2lvbiBpcyBvbmx5IHN1cHBvcnRlZCBvbiByZWFsIGRldmljZXNgKTtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBhcHBsaWNhdGlvblR5cGUgPSAnVXNlcicsXG4gIH0gPSBvcHRzO1xuICBjb25zdCBzZXJ2aWNlID0gYXdhaXQgc2VydmljZXMuc3RhcnRJbnN0YWxsYXRpb25Qcm94eVNlcnZpY2UodGhpcy5vcHRzLmRldmljZS51ZGlkKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgc2VydmljZS5saXN0QXBwbGljYXRpb25zKHthcHBsaWNhdGlvblR5cGV9KTtcbiAgfSBmaW5hbGx5IHtcbiAgICBzZXJ2aWNlLmNsb3NlKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sImZpbGUiOiJsaWIvY29tbWFuZHMvYXBwLW1hbmFnZW1lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
|
|
200
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2FwcC1tYW5hZ2VtZW50LmpzIiwibmFtZXMiOlsiY29tbWFuZHMiLCJyZXF1aXJlT3B0aW9ucyIsIm9wdHMiLCJyZXFLZXlzIiwia2V5IiwiXyIsImlzU3RyaW5nIiwiaXNFbXB0eSIsImVycm9ycyIsIkludmFsaWRBcmd1bWVudEVycm9yIiwibW9iaWxlSW5zdGFsbEFwcCIsImFwcCIsInRpbWVvdXRNcyIsInN0cmF0ZWd5Iiwic3JjQXBwUGF0aCIsImhlbHBlcnMiLCJjb25maWd1cmVBcHAiLCJsb2ciLCJpbmZvIiwiaXNSZWFsRGV2aWNlIiwiZGV2aWNlIiwidWRpZCIsImZzIiwiZXhpc3RzIiwiZXJyb3JBbmRUaHJvdyIsImluc3RhbGxBcHAiLCJhcHBQdXNoVGltZW91dCIsImFwcEluc3RhbGxTdHJhdGVneSIsIm1vYmlsZUlzQXBwSW5zdGFsbGVkIiwiYnVuZGxlSWQiLCJpbnN0YWxsZWQiLCJpc0FwcEluc3RhbGxlZCIsIm1vYmlsZVJlbW92ZUFwcCIsInJlbW92ZUFwcCIsImVyciIsIndhcm4iLCJtZXNzYWdlIiwibW9iaWxlTGF1bmNoQXBwIiwibGF1bmNoT3B0aW9ucyIsImFyZ3VtZW50cyIsImlzQXJyYXkiLCJlbnZpcm9ubWVudCIsInByb3h5Q29tbWFuZCIsIm1vYmlsZVRlcm1pbmF0ZUFwcCIsIm1vYmlsZUFjdGl2YXRlQXBwIiwibW9iaWxlS2lsbEFwcCIsIlVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3IiLCJpbnN0cnVtZW50U2VydmljZSIsImluc3RhbGxQcm94eVNlcnZpY2UiLCJzZXJ2aWNlcyIsInN0YXJ0SW5zdGFsbGF0aW9uUHJveHlTZXJ2aWNlIiwiYXBwcyIsImxpc3RBcHBsaWNhdGlvbnMiLCJleGVjdXRhYmxlTmFtZSIsIkNGQnVuZGxlRXhlY3V0YWJsZSIsImRlYnVnIiwic3RhcnRJbnN0cnVtZW50U2VydmljZSIsInByb2Nlc3NlcyIsImNhbGxDaGFubmVsIiwiSU5TVFJVTUVOVF9DSEFOTkVMIiwiREVWSUNFX0lORk8iLCJwcm9jZXNzIiwic2VsZWN0b3IiLCJmaW5kIiwibmFtZSIsIlBST0NFU1NfQ09OVFJPTCIsInBpZCIsInN0ZGVyciIsImNsb3NlIiwibW9iaWxlUXVlcnlBcHBTdGF0ZSIsImFwcFBhdGgiLCJpc1BsYWluT2JqZWN0IiwiYWN0aXZhdGVBcHAiLCJPYmplY3QiLCJhc3NpZ24iLCJ0ZXJtaW5hdGVBcHAiLCJxdWVyeUFwcFN0YXRlIiwibW9iaWxlTGlzdEFwcHMiLCJOb3RJbXBsZW1lbnRlZEVycm9yIiwiYXBwbGljYXRpb25UeXBlIiwic2VydmljZSJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9hcHAtbWFuYWdlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZnMgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnQGFwcGl1bS9iYXNlLWRyaXZlcic7XG5pbXBvcnQgeyBzZXJ2aWNlcywgSU5TVFJVTUVOVF9DSEFOTkVMIH0gZnJvbSAnYXBwaXVtLWlvcy1kZXZpY2UnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG5mdW5jdGlvbiByZXF1aXJlT3B0aW9ucyAob3B0cyA9IHt9LCByZXFLZXlzID0gW10pIHtcbiAgZm9yIChjb25zdCBrZXkgb2YgcmVxS2V5cykge1xuICAgIGlmICghXy5pc1N0cmluZyhvcHRzW2tleV0pIHx8IF8uaXNFbXB0eShvcHRzW2tleV0pKSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICBgJyR7a2V5fScgaXMgZXhwZWN0ZWQgdG8gYmUgYSB2YWxpZCBzdHJpbmcuICcke29wdHNba2V5XX0nIGlzIGdpdmVuIGluc3RlYWRgXG4gICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gb3B0cztcbn1cblxuY29tbWFuZHMubW9iaWxlSW5zdGFsbEFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUluc3RhbGxBcHAgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7IGFwcCwgdGltZW91dE1zLCBzdHJhdGVneSB9ID0gcmVxdWlyZU9wdGlvbnMob3B0cywgWydhcHAnXSk7XG4gIGNvbnN0IHNyY0FwcFBhdGggPSBhd2FpdCB0aGlzLmhlbHBlcnMuY29uZmlndXJlQXBwKGFwcCwgJy5hcHAnKTtcbiAgdGhpcy5sb2cuaW5mbyhgSW5zdGFsbGluZyAnJHtzcmNBcHBQYXRofScgdG8gdGhlICR7dGhpcy5pc1JlYWxEZXZpY2UoKSA/ICdyZWFsIGRldmljZScgOiAnU2ltdWxhdG9yJ30gYCArXG4gICAgYHdpdGggVURJRCAnJHt0aGlzLm9wdHMuZGV2aWNlLnVkaWR9J2ApO1xuICBpZiAoIWF3YWl0IGZzLmV4aXN0cyhzcmNBcHBQYXRoKSkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYFRoZSBhcHBsaWNhdGlvbiBhdCAnJHtzcmNBcHBQYXRofScgZG9lcyBub3QgZXhpc3Qgb3IgaXMgbm90IGFjY2Vzc2libGVgKTtcbiAgfVxuICBhd2FpdCB0aGlzLm9wdHMuZGV2aWNlLmluc3RhbGxBcHAoXG4gICAgc3JjQXBwUGF0aCwgdGltZW91dE1zID8/IHRoaXMub3B0cy5hcHBQdXNoVGltZW91dCwgc3RyYXRlZ3kgPz8gdGhpcy5vcHRzLmFwcEluc3RhbGxTdHJhdGVneVxuICApO1xuICB0aGlzLmxvZy5pbmZvKGBJbnN0YWxsYXRpb24gb2YgJyR7c3JjQXBwUGF0aH0nIHN1Y2NlZWRlZGApO1xufTtcblxuY29tbWFuZHMubW9iaWxlSXNBcHBJbnN0YWxsZWQgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVJc0FwcEluc3RhbGxlZCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtidW5kbGVJZH0gPSByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pO1xuICBjb25zdCBpbnN0YWxsZWQgPSBhd2FpdCB0aGlzLm9wdHMuZGV2aWNlLmlzQXBwSW5zdGFsbGVkKGJ1bmRsZUlkKTtcbiAgdGhpcy5sb2cuaW5mbyhgQXBwICcke2J1bmRsZUlkfScgaXMke2luc3RhbGxlZCA/ICcnIDogJyBub3QnfSBpbnN0YWxsZWRgKTtcbiAgcmV0dXJuIGluc3RhbGxlZDtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZVJlbW92ZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVJlbW92ZUFwcCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtidW5kbGVJZH0gPSByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pO1xuICB0aGlzLmxvZy5pbmZvKGBVbmluc3RhbGxpbmcgdGhlIGFwcGxpY2F0aW9uIHdpdGggYnVuZGxlIGlkZW50aWZpZXIgJyR7YnVuZGxlSWR9JyBgICtcbiAgICBgZnJvbSB0aGUgJHt0aGlzLmlzUmVhbERldmljZSgpID8gJ3JlYWwgZGV2aWNlJyA6ICdTaW11bGF0b3InfSB3aXRoIFVESUQgJyR7dGhpcy5vcHRzLmRldmljZS51ZGlkfSdgKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCB0aGlzLm9wdHMuZGV2aWNlLnJlbW92ZUFwcChidW5kbGVJZCk7XG4gICAgdGhpcy5sb2cuaW5mbyhgUmVtb3ZhbCBvZiAnJHtidW5kbGVJZH0nIHN1Y2NlZWRlZGApO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLmxvZy53YXJuKGBDYW5ub3QgcmVtb3ZlICcke2J1bmRsZUlkfScuIE9yaWdpbmFsIGVycm9yOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuY29tbWFuZHMubW9iaWxlTGF1bmNoQXBwID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlTGF1bmNoQXBwIChvcHRzID0ge30pIHtcbiAgY29uc3QgbGF1bmNoT3B0aW9ucyA9IHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSk7XG4gIGlmIChvcHRzLmFyZ3VtZW50cykge1xuICAgIGxhdW5jaE9wdGlvbnMuYXJndW1lbnRzID0gXy5pc0FycmF5KG9wdHMuYXJndW1lbnRzKSA/IG9wdHMuYXJndW1lbnRzIDogW29wdHMuYXJndW1lbnRzXTtcbiAgfVxuICBpZiAob3B0cy5lbnZpcm9ubWVudCkge1xuICAgIGxhdW5jaE9wdGlvbnMuZW52aXJvbm1lbnQgPSBvcHRzLmVudmlyb25tZW50O1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS9hcHBzL2xhdW5jaCcsICdQT1NUJywgbGF1bmNoT3B0aW9ucyk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVUZXJtaW5hdGVBcHAgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVUZXJtaW5hdGVBcHAgKG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy93ZGEvYXBwcy90ZXJtaW5hdGUnLCAnUE9TVCcsIHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSkpO1xufTtcblxuY29tbWFuZHMubW9iaWxlQWN0aXZhdGVBcHAgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVBY3RpdmF0ZUFwcCAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS9hcHBzL2FjdGl2YXRlJywgJ1BPU1QnLCByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pKTtcbn07XG5cbi8qKlxuICogS2lsbCB0aGUgZ2l2ZW4gYnVuZGxlIGlkIHByb2Nlc3MgdmlhIGluc3RydW1lbnRzIHNlcnZpY2UuXG4gKiBodHRwczovL2dpdGh1Yi5jb20vWXVlQ2hlbi1DL3B5LWlvcy1kZXZpY2UvYmxvYi81MWY0NjgzYzVjM2MzODVhMDE1ODU4YWRhMDdhNWYxYzYyZDNjZjU3L2lvc19kZXZpY2UvY2xpL2Jhc2UucHkjTDIyMFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gT3B0aW9ucyBzZXQsIHdoaWNoIG11c3QgY29udGFpbiBgYnVuZGxlSWRgIHByb3BlcnR5XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyB0cnVlIGlmIHRoZSBidW5kbGUgaWQgcHJvY2VzcyB3YXMga2lsbGVkLiBPdGhlcndpc2UgZmFsc2UuXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUtpbGxBcHAgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVLaWxsQXBwIChvcHRzID0ge30pIHtcbiAgaWYgKCF0aGlzLmlzUmVhbERldmljZSgpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5VbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yKCdBIHJlYWwgZGV2aWNlIGlzIHJlcXVpcmVkJyk7XG4gIH1cblxuICBjb25zdCB7YnVuZGxlSWR9ID0gcmVxdWlyZU9wdGlvbnMob3B0cywgWydidW5kbGVJZCddKTtcbiAgbGV0IGluc3RydW1lbnRTZXJ2aWNlO1xuICBsZXQgaW5zdGFsbFByb3h5U2VydmljZTtcbiAgdHJ5IHtcbiAgICBpbnN0YWxsUHJveHlTZXJ2aWNlID0gYXdhaXQgc2VydmljZXMuc3RhcnRJbnN0YWxsYXRpb25Qcm94eVNlcnZpY2UodGhpcy5vcHRzLmRldmljZS51ZGlkKTtcbiAgICBjb25zdCBhcHBzID0gYXdhaXQgaW5zdGFsbFByb3h5U2VydmljZS5saXN0QXBwbGljYXRpb25zKCk7XG4gICAgaWYgKCFhcHBzW2J1bmRsZUlkXSkge1xuICAgICAgdGhpcy5sb2cuaW5mbyhgVGhlIGJ1bmRsZSBpZCAnJHtidW5kbGVJZH0nIGRpZCBub3QgZXhpc3RgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgZXhlY3V0YWJsZU5hbWUgPSBhcHBzW2J1bmRsZUlkXS5DRkJ1bmRsZUV4ZWN1dGFibGU7XG4gICAgdGhpcy5sb2cuZGVidWcoYFRoZSBleGVjdXRhYmxlIG5hbWUgZm9yIHRoZSBidW5kbGUgaWQgJyR7YnVuZGxlSWR9JyB3YXMgJyR7ZXhlY3V0YWJsZU5hbWV9J2ApO1xuICAgIGluc3RydW1lbnRTZXJ2aWNlID0gYXdhaXQgc2VydmljZXMuc3RhcnRJbnN0cnVtZW50U2VydmljZSh0aGlzLm9wdHMuZGV2aWNlLnVkaWQpO1xuICAgIGNvbnN0IHByb2Nlc3NlcyA9IGF3YWl0IGluc3RydW1lbnRTZXJ2aWNlLmNhbGxDaGFubmVsKElOU1RSVU1FTlRfQ0hBTk5FTC5ERVZJQ0VfSU5GTywgJ3J1bm5pbmdQcm9jZXNzZXMnKTtcbiAgICBjb25zdCBwcm9jZXNzID0gcHJvY2Vzc2VzLnNlbGVjdG9yLmZpbmQoKHByb2Nlc3MpID0+IHByb2Nlc3MubmFtZSA9PT0gZXhlY3V0YWJsZU5hbWUpO1xuICAgIGlmICghcHJvY2Vzcykge1xuICAgICAgdGhpcy5sb2cuaW5mbyhgVGhlIHByb2Nlc3Mgb2YgdGhlIGJ1bmRsZSBpZCAnJHtidW5kbGVJZH0nIHdhcyBub3QgcnVubmluZ2ApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBhd2FpdCBpbnN0cnVtZW50U2VydmljZS5jYWxsQ2hhbm5lbChJTlNUUlVNRU5UX0NIQU5ORUwuUFJPQ0VTU19DT05UUk9MLCAna2lsbFBpZDonLCBgJHtwcm9jZXNzLnBpZH1gKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5sb2cud2FybihgRmFpbGVkIHRvIGtpbGwgJyR7YnVuZGxlSWR9Jy4gT3JpZ2luYWwgZXJyb3I6ICR7ZXJyLnN0ZGVyciB8fCBlcnIubWVzc2FnZX1gKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZmluYWxseSB7XG4gICAgaWYgKGluc3RhbGxQcm94eVNlcnZpY2UpIHtcbiAgICAgIGluc3RhbGxQcm94eVNlcnZpY2UuY2xvc2UoKTtcbiAgICB9XG4gICAgaWYgKGluc3RydW1lbnRTZXJ2aWNlKSB7XG4gICAgICBpbnN0cnVtZW50U2VydmljZS5jbG9zZSgpO1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIHN0YXRlXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBPcHRpb25zIHNldCwgd2hpY2ggbXVzdCBjb250YWluIGBidW5kbGVJZGAgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtudW1iZXJ9IFRoZSBhY3R1YWwgYXBwbGljYXRpb24gc3RhdGUgY29kZS4gU2VlXG4gKiBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWFwcGxpY2F0aW9uc3RhdGU/bGFuZ3VhZ2U9b2JqY1xuICogdG8gZ2V0IHRoZSBsaXN0IG9mIHBvc3NpYmxlIHZhbHVlcy5cbiAqL1xuY29tbWFuZHMubW9iaWxlUXVlcnlBcHBTdGF0ZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVF1ZXJ5QXBwU3RhdGUgKG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy93ZGEvYXBwcy9zdGF0ZScsICdQT1NUJywgcmVxdWlyZU9wdGlvbnMob3B0cywgWydidW5kbGVJZCddKSk7XG59O1xuXG5jb21tYW5kcy5pbnN0YWxsQXBwID0gYXN5bmMgZnVuY3Rpb24gaW5zdGFsbEFwcCAoYXBwUGF0aCwgb3B0cyA9IHt9KSB7XG4gIGF3YWl0IHRoaXMubW9iaWxlSW5zdGFsbEFwcCh7XG4gICAgLi4uKF8uaXNQbGFpbk9iamVjdChvcHRzKSA/IG9wdHMgOiB7fSksXG4gICAgYXBwOiBhcHBQYXRoLFxuICB9KTtcbn07XG5cbmNvbW1hbmRzLmFjdGl2YXRlQXBwID0gYXN5bmMgZnVuY3Rpb24gYWN0aXZhdGVBcHAgKGJ1bmRsZUlkLCBvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMubW9iaWxlTGF1bmNoQXBwKE9iamVjdC5hc3NpZ24oe30sIG9wdHMsIHtidW5kbGVJZH0pKTtcbn07XG5cbmNvbW1hbmRzLmlzQXBwSW5zdGFsbGVkID0gYXN5bmMgZnVuY3Rpb24gaXNBcHBJbnN0YWxsZWQgKGJ1bmRsZUlkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLm1vYmlsZUlzQXBwSW5zdGFsbGVkKHtidW5kbGVJZH0pO1xufTtcblxuY29tbWFuZHMudGVybWluYXRlQXBwID0gYXN5bmMgZnVuY3Rpb24gdGVybWluYXRlQXBwIChidW5kbGVJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5tb2JpbGVUZXJtaW5hdGVBcHAoe2J1bmRsZUlkfSk7XG59O1xuXG5jb21tYW5kcy5xdWVyeUFwcFN0YXRlID0gYXN5bmMgZnVuY3Rpb24gcXVlcnlBcHBTdGF0ZSAoYnVuZGxlSWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMubW9iaWxlUXVlcnlBcHBTdGF0ZSh7YnVuZGxlSWR9KTtcbn07XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gTGlzdEFwcHNPcHRpb25zXG4gKiBAcHJvcGVydHkgeydTeXN0ZW0nfCdVc2VyJ30gYXBwbGljYXRpb25UeXBlIFtVc2VyXSBUaGUgdHlwZSBvZiBhcHBsaWNhdGlvbnMgdG8gbGlzdFxuICovXG5cbi8qKlxuICogTGlzdCBhcHBsaWNhdGlvbnMgaW5zdGFsbGVkIG9uIHRoZSByZWFsIGRldmljZSB1bmRlciB0ZXN0XG4gKlxuICogQHBhcmFtIHtMaXN0QXBwc09wdGlvbnN9IG9wdHNcbiAqIEByZXR1cm5zIHtBcnJheTxPYmplY3Q+fSBBIGxpc3Qgb2YgYXBwcywgd2hlcmUgZWFjaCBpdGVtIGlzIGEgbWFwIHdoZXJlIGtleXMgYXJlXG4gKiBidW5kbGUgaWRlbnRpZmllcnMgYW5kIHZhbHVlcyBhcmUgbWFwcyBvZiBwbGF0Zm9ybS1zcGVjaWZpYyBhcHAgcHJvcGVydGllcy5cbiAqL1xuY29tbWFuZHMubW9iaWxlTGlzdEFwcHMgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVMaXN0QXBwcyAob3B0cyA9IHt9KSB7XG4gIGlmICghdGhpcy5pc1JlYWxEZXZpY2UoKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcihgVGhpcyBleHRlbnNpb24gaXMgb25seSBzdXBwb3J0ZWQgb24gcmVhbCBkZXZpY2VzYCk7XG4gIH1cblxuICBjb25zdCB7XG4gICAgYXBwbGljYXRpb25UeXBlID0gJ1VzZXInLFxuICB9ID0gb3B0cztcbiAgY29uc3Qgc2VydmljZSA9IGF3YWl0IHNlcnZpY2VzLnN0YXJ0SW5zdGFsbGF0aW9uUHJveHlTZXJ2aWNlKHRoaXMub3B0cy5kZXZpY2UudWRpZCk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHNlcnZpY2UubGlzdEFwcGxpY2F0aW9ucyh7YXBwbGljYXRpb25UeXBlfSk7XG4gIH0gZmluYWxseSB7XG4gICAgc2VydmljZS5jbG9zZSgpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxRQUFRLEdBQUcsRUFBakI7O0FBRUEsU0FBU0MsY0FBVCxDQUF5QkMsSUFBSSxHQUFHLEVBQWhDLEVBQW9DQyxPQUFPLEdBQUcsRUFBOUMsRUFBa0Q7RUFDaEQsS0FBSyxNQUFNQyxHQUFYLElBQWtCRCxPQUFsQixFQUEyQjtJQUN6QixJQUFJLENBQUNFLGVBQUEsQ0FBRUMsUUFBRixDQUFXSixJQUFJLENBQUNFLEdBQUQsQ0FBZixDQUFELElBQTBCQyxlQUFBLENBQUVFLE9BQUYsQ0FBVUwsSUFBSSxDQUFDRSxHQUFELENBQWQsQ0FBOUIsRUFBb0Q7TUFDbEQsTUFBTSxJQUFJSSxrQkFBQSxDQUFPQyxvQkFBWCxDQUNILElBQUdMLEdBQUksd0NBQXVDRixJQUFJLENBQUNFLEdBQUQsQ0FBTSxvQkFEckQsQ0FBTjtJQUdEO0VBQ0Y7O0VBQ0QsT0FBT0YsSUFBUDtBQUNEOztBQUVERixRQUFRLENBQUNVLGdCQUFULEdBQTRCLGVBQWVBLGdCQUFmLENBQWlDUixJQUFJLEdBQUcsRUFBeEMsRUFBNEM7RUFDdEUsTUFBTTtJQUFFUyxHQUFGO0lBQU9DLFNBQVA7SUFBa0JDO0VBQWxCLElBQStCWixjQUFjLENBQUNDLElBQUQsRUFBTyxDQUFDLEtBQUQsQ0FBUCxDQUFuRDtFQUNBLE1BQU1ZLFVBQVUsR0FBRyxNQUFNLEtBQUtDLE9BQUwsQ0FBYUMsWUFBYixDQUEwQkwsR0FBMUIsRUFBK0IsTUFBL0IsQ0FBekI7RUFDQSxLQUFLTSxHQUFMLENBQVNDLElBQVQsQ0FBZSxlQUFjSixVQUFXLFlBQVcsS0FBS0ssWUFBTCxLQUFzQixhQUF0QixHQUFzQyxXQUFZLEdBQXZGLEdBQ1gsY0FBYSxLQUFLakIsSUFBTCxDQUFVa0IsTUFBVixDQUFpQkMsSUFBSyxHQUR0Qzs7RUFFQSxJQUFJLEVBQUMsTUFBTUMsV0FBQSxDQUFHQyxNQUFILENBQVVULFVBQVYsQ0FBUCxDQUFKLEVBQWtDO0lBQ2hDLEtBQUtHLEdBQUwsQ0FBU08sYUFBVCxDQUF3Qix1QkFBc0JWLFVBQVcsdUNBQXpEO0VBQ0Q7O0VBQ0QsTUFBTSxLQUFLWixJQUFMLENBQVVrQixNQUFWLENBQWlCSyxVQUFqQixDQUNKWCxVQURJLEVBQ1FGLFNBRFIsYUFDUUEsU0FEUixjQUNRQSxTQURSLEdBQ3FCLEtBQUtWLElBQUwsQ0FBVXdCLGNBRC9CLEVBQytDYixRQUQvQyxhQUMrQ0EsUUFEL0MsY0FDK0NBLFFBRC9DLEdBQzJELEtBQUtYLElBQUwsQ0FBVXlCLGtCQURyRSxDQUFOO0VBR0EsS0FBS1YsR0FBTCxDQUFTQyxJQUFULENBQWUsb0JBQW1CSixVQUFXLGFBQTdDO0FBQ0QsQ0FaRDs7QUFjQWQsUUFBUSxDQUFDNEIsb0JBQVQsR0FBZ0MsZUFBZUEsb0JBQWYsQ0FBcUMxQixJQUFJLEdBQUcsRUFBNUMsRUFBZ0Q7RUFDOUUsTUFBTTtJQUFDMkI7RUFBRCxJQUFhNUIsY0FBYyxDQUFDQyxJQUFELEVBQU8sQ0FBQyxVQUFELENBQVAsQ0FBakM7RUFDQSxNQUFNNEIsU0FBUyxHQUFHLE1BQU0sS0FBSzVCLElBQUwsQ0FBVWtCLE1BQVYsQ0FBaUJXLGNBQWpCLENBQWdDRixRQUFoQyxDQUF4QjtFQUNBLEtBQUtaLEdBQUwsQ0FBU0MsSUFBVCxDQUFlLFFBQU9XLFFBQVMsT0FBTUMsU0FBUyxHQUFHLEVBQUgsR0FBUSxNQUFPLFlBQTdEO0VBQ0EsT0FBT0EsU0FBUDtBQUNELENBTEQ7O0FBT0E5QixRQUFRLENBQUNnQyxlQUFULEdBQTJCLGVBQWVBLGVBQWYsQ0FBZ0M5QixJQUFJLEdBQUcsRUFBdkMsRUFBMkM7RUFDcEUsTUFBTTtJQUFDMkI7RUFBRCxJQUFhNUIsY0FBYyxDQUFDQyxJQUFELEVBQU8sQ0FBQyxVQUFELENBQVAsQ0FBakM7RUFDQSxLQUFLZSxHQUFMLENBQVNDLElBQVQsQ0FBZSx3REFBdURXLFFBQVMsSUFBakUsR0FDWCxZQUFXLEtBQUtWLFlBQUwsS0FBc0IsYUFBdEIsR0FBc0MsV0FBWSxlQUFjLEtBQUtqQixJQUFMLENBQVVrQixNQUFWLENBQWlCQyxJQUFLLEdBRHBHOztFQUVBLElBQUk7SUFDRixNQUFNLEtBQUtuQixJQUFMLENBQVVrQixNQUFWLENBQWlCYSxTQUFqQixDQUEyQkosUUFBM0IsQ0FBTjtJQUNBLEtBQUtaLEdBQUwsQ0FBU0MsSUFBVCxDQUFlLGVBQWNXLFFBQVMsYUFBdEM7SUFDQSxPQUFPLElBQVA7RUFDRCxDQUpELENBSUUsT0FBT0ssR0FBUCxFQUFZO0lBQ1osS0FBS2pCLEdBQUwsQ0FBU2tCLElBQVQsQ0FBZSxrQkFBaUJOLFFBQVMsc0JBQXFCSyxHQUFHLENBQUNFLE9BQVEsRUFBMUU7SUFDQSxPQUFPLEtBQVA7RUFDRDtBQUNGLENBWkQ7O0FBY0FwQyxRQUFRLENBQUNxQyxlQUFULEdBQTJCLGVBQWVBLGVBQWYsQ0FBZ0NuQyxJQUFJLEdBQUcsRUFBdkMsRUFBMkM7RUFDcEUsTUFBTW9DLGFBQWEsR0FBR3JDLGNBQWMsQ0FBQ0MsSUFBRCxFQUFPLENBQUMsVUFBRCxDQUFQLENBQXBDOztFQUNBLElBQUlBLElBQUksQ0FBQ3FDLFNBQVQsRUFBb0I7SUFDbEJELGFBQWEsQ0FBQ0MsU0FBZCxHQUEwQmxDLGVBQUEsQ0FBRW1DLE9BQUYsQ0FBVXRDLElBQUksQ0FBQ3FDLFNBQWYsSUFBNEJyQyxJQUFJLENBQUNxQyxTQUFqQyxHQUE2QyxDQUFDckMsSUFBSSxDQUFDcUMsU0FBTixDQUF2RTtFQUNEOztFQUNELElBQUlyQyxJQUFJLENBQUN1QyxXQUFULEVBQXNCO0lBQ3BCSCxhQUFhLENBQUNHLFdBQWQsR0FBNEJ2QyxJQUFJLENBQUN1QyxXQUFqQztFQUNEOztFQUNELE9BQU8sTUFBTSxLQUFLQyxZQUFMLENBQWtCLGtCQUFsQixFQUFzQyxNQUF0QyxFQUE4Q0osYUFBOUMsQ0FBYjtBQUNELENBVEQ7O0FBV0F0QyxRQUFRLENBQUMyQyxrQkFBVCxHQUE4QixlQUFlQSxrQkFBZixDQUFtQ3pDLElBQUksR0FBRyxFQUExQyxFQUE4QztFQUMxRSxPQUFPLE1BQU0sS0FBS3dDLFlBQUwsQ0FBa0IscUJBQWxCLEVBQXlDLE1BQXpDLEVBQWlEekMsY0FBYyxDQUFDQyxJQUFELEVBQU8sQ0FBQyxVQUFELENBQVAsQ0FBL0QsQ0FBYjtBQUNELENBRkQ7O0FBSUFGLFFBQVEsQ0FBQzRDLGlCQUFULEdBQTZCLGVBQWVBLGlCQUFmLENBQWtDMUMsSUFBSSxHQUFHLEVBQXpDLEVBQTZDO0VBQ3hFLE9BQU8sTUFBTSxLQUFLd0MsWUFBTCxDQUFrQixvQkFBbEIsRUFBd0MsTUFBeEMsRUFBZ0R6QyxjQUFjLENBQUNDLElBQUQsRUFBTyxDQUFDLFVBQUQsQ0FBUCxDQUE5RCxDQUFiO0FBQ0QsQ0FGRDs7QUFXQUYsUUFBUSxDQUFDNkMsYUFBVCxHQUF5QixlQUFlQSxhQUFmLENBQThCM0MsSUFBSSxHQUFHLEVBQXJDLEVBQXlDO0VBQ2hFLElBQUksQ0FBQyxLQUFLaUIsWUFBTCxFQUFMLEVBQTBCO0lBQ3hCLE1BQU0sSUFBSVgsa0JBQUEsQ0FBT3NDLHlCQUFYLENBQXFDLDJCQUFyQyxDQUFOO0VBQ0Q7O0VBRUQsTUFBTTtJQUFDakI7RUFBRCxJQUFhNUIsY0FBYyxDQUFDQyxJQUFELEVBQU8sQ0FBQyxVQUFELENBQVAsQ0FBakM7RUFDQSxJQUFJNkMsaUJBQUo7RUFDQSxJQUFJQyxtQkFBSjs7RUFDQSxJQUFJO0lBQ0ZBLG1CQUFtQixHQUFHLE1BQU1DLHlCQUFBLENBQVNDLDZCQUFULENBQXVDLEtBQUtoRCxJQUFMLENBQVVrQixNQUFWLENBQWlCQyxJQUF4RCxDQUE1QjtJQUNBLE1BQU04QixJQUFJLEdBQUcsTUFBTUgsbUJBQW1CLENBQUNJLGdCQUFwQixFQUFuQjs7SUFDQSxJQUFJLENBQUNELElBQUksQ0FBQ3RCLFFBQUQsQ0FBVCxFQUFxQjtNQUNuQixLQUFLWixHQUFMLENBQVNDLElBQVQsQ0FBZSxrQkFBaUJXLFFBQVMsaUJBQXpDO01BQ0EsT0FBTyxLQUFQO0lBQ0Q7O0lBQ0QsTUFBTXdCLGNBQWMsR0FBR0YsSUFBSSxDQUFDdEIsUUFBRCxDQUFKLENBQWV5QixrQkFBdEM7SUFDQSxLQUFLckMsR0FBTCxDQUFTc0MsS0FBVCxDQUFnQiwwQ0FBeUMxQixRQUFTLFVBQVN3QixjQUFlLEdBQTFGO0lBQ0FOLGlCQUFpQixHQUFHLE1BQU1FLHlCQUFBLENBQVNPLHNCQUFULENBQWdDLEtBQUt0RCxJQUFMLENBQVVrQixNQUFWLENBQWlCQyxJQUFqRCxDQUExQjtJQUNBLE1BQU1vQyxTQUFTLEdBQUcsTUFBTVYsaUJBQWlCLENBQUNXLFdBQWxCLENBQThCQyxtQ0FBQSxDQUFtQkMsV0FBakQsRUFBOEQsa0JBQTlELENBQXhCO0lBQ0EsTUFBTUMsT0FBTyxHQUFHSixTQUFTLENBQUNLLFFBQVYsQ0FBbUJDLElBQW5CLENBQXlCRixPQUFELElBQWFBLE9BQU8sQ0FBQ0csSUFBUixLQUFpQlgsY0FBdEQsQ0FBaEI7O0lBQ0EsSUFBSSxDQUFDUSxPQUFMLEVBQWM7TUFDWixLQUFLNUMsR0FBTCxDQUFTQyxJQUFULENBQWUsaUNBQWdDVyxRQUFTLG1CQUF4RDtNQUNBLE9BQU8sS0FBUDtJQUNEOztJQUNELE1BQU1rQixpQkFBaUIsQ0FBQ1csV0FBbEIsQ0FBOEJDLG1DQUFBLENBQW1CTSxlQUFqRCxFQUFrRSxVQUFsRSxFQUErRSxHQUFFSixPQUFPLENBQUNLLEdBQUksRUFBN0YsQ0FBTjtJQUNBLE9BQU8sSUFBUDtFQUNELENBbEJELENBa0JFLE9BQU9oQyxHQUFQLEVBQVk7SUFDWixLQUFLakIsR0FBTCxDQUFTa0IsSUFBVCxDQUFlLG1CQUFrQk4sUUFBUyxzQkFBcUJLLEdBQUcsQ0FBQ2lDLE1BQUosSUFBY2pDLEdBQUcsQ0FBQ0UsT0FBUSxFQUF6RjtJQUNBLE9BQU8sS0FBUDtFQUNELENBckJELFNBcUJVO0lBQ1IsSUFBSVksbUJBQUosRUFBeUI7TUFDdkJBLG1CQUFtQixDQUFDb0IsS0FBcEI7SUFDRDs7SUFDRCxJQUFJckIsaUJBQUosRUFBdUI7TUFDckJBLGlCQUFpQixDQUFDcUIsS0FBbEI7SUFDRDtFQUNGO0FBQ0YsQ0FyQ0Q7O0FBK0NBcEUsUUFBUSxDQUFDcUUsbUJBQVQsR0FBK0IsZUFBZUEsbUJBQWYsQ0FBb0NuRSxJQUFJLEdBQUcsRUFBM0MsRUFBK0M7RUFDNUUsT0FBTyxNQUFNLEtBQUt3QyxZQUFMLENBQWtCLGlCQUFsQixFQUFxQyxNQUFyQyxFQUE2Q3pDLGNBQWMsQ0FBQ0MsSUFBRCxFQUFPLENBQUMsVUFBRCxDQUFQLENBQTNELENBQWI7QUFDRCxDQUZEOztBQUlBRixRQUFRLENBQUN5QixVQUFULEdBQXNCLGVBQWVBLFVBQWYsQ0FBMkI2QyxPQUEzQixFQUFvQ3BFLElBQUksR0FBRyxFQUEzQyxFQUErQztFQUNuRSxNQUFNLEtBQUtRLGdCQUFMLENBQXNCLEVBQzFCLElBQUlMLGVBQUEsQ0FBRWtFLGFBQUYsQ0FBZ0JyRSxJQUFoQixJQUF3QkEsSUFBeEIsR0FBK0IsRUFBbkMsQ0FEMEI7SUFFMUJTLEdBQUcsRUFBRTJEO0VBRnFCLENBQXRCLENBQU47QUFJRCxDQUxEOztBQU9BdEUsUUFBUSxDQUFDd0UsV0FBVCxHQUF1QixlQUFlQSxXQUFmLENBQTRCM0MsUUFBNUIsRUFBc0MzQixJQUFJLEdBQUcsRUFBN0MsRUFBaUQ7RUFDdEUsT0FBTyxNQUFNLEtBQUttQyxlQUFMLENBQXFCb0MsTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxFQUFrQnhFLElBQWxCLEVBQXdCO0lBQUMyQjtFQUFELENBQXhCLENBQXJCLENBQWI7QUFDRCxDQUZEOztBQUlBN0IsUUFBUSxDQUFDK0IsY0FBVCxHQUEwQixlQUFlQSxjQUFmLENBQStCRixRQUEvQixFQUF5QztFQUNqRSxPQUFPLE1BQU0sS0FBS0Qsb0JBQUwsQ0FBMEI7SUFBQ0M7RUFBRCxDQUExQixDQUFiO0FBQ0QsQ0FGRDs7QUFJQTdCLFFBQVEsQ0FBQzJFLFlBQVQsR0FBd0IsZUFBZUEsWUFBZixDQUE2QjlDLFFBQTdCLEVBQXVDO0VBQzdELE9BQU8sTUFBTSxLQUFLYyxrQkFBTCxDQUF3QjtJQUFDZDtFQUFELENBQXhCLENBQWI7QUFDRCxDQUZEOztBQUlBN0IsUUFBUSxDQUFDNEUsYUFBVCxHQUF5QixlQUFlQSxhQUFmLENBQThCL0MsUUFBOUIsRUFBd0M7RUFDL0QsT0FBTyxNQUFNLEtBQUt3QyxtQkFBTCxDQUF5QjtJQUFDeEM7RUFBRCxDQUF6QixDQUFiO0FBQ0QsQ0FGRDs7QUFnQkE3QixRQUFRLENBQUM2RSxjQUFULEdBQTBCLGVBQWVBLGNBQWYsQ0FBK0IzRSxJQUFJLEdBQUcsRUFBdEMsRUFBMEM7RUFDbEUsSUFBSSxDQUFDLEtBQUtpQixZQUFMLEVBQUwsRUFBMEI7SUFDeEIsTUFBTSxJQUFJWCxrQkFBQSxDQUFPc0UsbUJBQVgsQ0FBZ0Msa0RBQWhDLENBQU47RUFDRDs7RUFFRCxNQUFNO0lBQ0pDLGVBQWUsR0FBRztFQURkLElBRUY3RSxJQUZKO0VBR0EsTUFBTThFLE9BQU8sR0FBRyxNQUFNL0IseUJBQUEsQ0FBU0MsNkJBQVQsQ0FBdUMsS0FBS2hELElBQUwsQ0FBVWtCLE1BQVYsQ0FBaUJDLElBQXhELENBQXRCOztFQUNBLElBQUk7SUFDRixPQUFPLE1BQU0yRCxPQUFPLENBQUM1QixnQkFBUixDQUF5QjtNQUFDMkI7SUFBRCxDQUF6QixDQUFiO0VBQ0QsQ0FGRCxTQUVVO0lBQ1JDLE9BQU8sQ0FBQ1osS0FBUjtFQUNEO0FBQ0YsQ0FkRDs7ZUFnQmVwRSxRIn0=
|
|
@@ -76,4 +76,4 @@ var _default = commands;
|
|
|
76
76
|
exports.default = _default;require('source-map-support').install();
|
|
77
77
|
|
|
78
78
|
|
|
79
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2FwcGVhcmFuY2UuanMiLCJuYW1lcyI6WyJjb21tYW5kcyIsIm1vYmlsZVNldEFwcGVhcmFuY2UiLCJvcHRzIiwic3R5bGUiLCJpbmNsdWRlcyIsIl8iLCJ0b0xvd2VyIiwiRXJyb3IiLCJ1dGlsIiwiY29tcGFyZVZlcnNpb25zIiwicGxhdGZvcm1WZXJzaW9uIiwiaXNTaW11bGF0b3IiLCJkZXZpY2UiLCJzZXRBcHBlYXJhbmNlIiwiZSIsImxvZyIsImRlYnVnIiwic3RhY2siLCJwcm94eUNvbW1hbmQiLCJuYW1lIiwibW9iaWxlU2lyaUNvbW1hbmQiLCJ0ZXh0IiwibW9iaWxlR2V0QXBwZWFyYW5jZSIsImdldEFwcGVhcmFuY2UiLCJpZ24iLCJ1c2VySW50ZXJmYWNlU3R5bGUiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvY29tbWFuZHMvYXBwZWFyYW5jZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5cblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTZXRBcHBlYXJhbmNlT3B0aW9uc1xuICpcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBzdHlsZSAtIEN1cnJlbnRseSB0d28gc3R5bGVzIGFyZSBzdXBwb3J0ZWQ6XG4gKiAtIGRhcmtcbiAqIC0gbGlnaHRcbiAqL1xuXG4vKipcbiAqIFNldCB0aGUgZGV2aWNlJ3MgVUkgYXBwZWFyYW5jZSBzdHlsZVxuICpcbiAqIEBzaW5jZSBpT1MgMTIuMFxuICogQHBhcmFtIHtTZXRBcHBlYXJhbmNlT3B0aW9uc30gb3B0c1xuICogQHRocm93cyB7RXJyb3J9IGlmIHRoZSBjdXJyZW50IHBsYXRmb3JtIGRvZXMgbm90IHN1cHBvcnQgVUlcbiAqIGFwcGVhcmFuY2UgY2hhbmdlc1xuICovXG5jb21tYW5kcy5tb2JpbGVTZXRBcHBlYXJhbmNlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlU2V0QXBwZWFyYW5jZSAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBzdHlsZSxcbiAgfSA9IG9wdHM7XG4gIGlmICghWydsaWdodCcsICdkYXJrJ10uaW5jbHVkZXMoXy50b0xvd2VyKHN0eWxlKSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSAnc3R5bGUnIHZhbHVlIGlzIGV4cGVjdGVkIHRvIGVxdWFsIGVpdGhlciAnbGlnaHQnIG9yICdkYXJrJ2ApO1xuICB9XG4gIGlmICh1dGlsLmNvbXBhcmVWZXJzaW9ucyh0aGlzLm9wdHMucGxhdGZvcm1WZXJzaW9uLCAnPCcsICcxMi4wJykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NoYW5naW5nIGFwcGVhcmFuY2UgaXMgb25seSBzdXBwb3J0ZWQgc2luY2UgaU9TIDEyJyk7XG4gIH1cblxuICBpZiAodGhpcy5pc1NpbXVsYXRvcigpKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB2b2lkIChhd2FpdCB0aGlzLm9wdHMuZGV2aWNlLnNldEFwcGVhcmFuY2Uoc3R5bGUpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhlLnN0YWNrKTtcbiAgICB9XG4gIH1cbiAgdHJ5IHtcbiAgICByZXR1cm4gdm9pZCAoYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy93ZGEvZGV2aWNlL2FwcGVhcmFuY2UnLCAnUE9TVCcsIHtuYW1lOiBzdHlsZX0pKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRoaXMubG9nLmRlYnVnKGUuc3RhY2spO1xuICB9XG4gIC8vIEZhbGwgYmFjayB0byB0aGUgdWdseSBTaXJpIHdvcmthcm91bmQgaWYgdGhlIGN1cnJlbnQgU0RLIGlzIHRvbyBvbGRcbiAgYXdhaXQgdGhpcy5tb2JpbGVTaXJpQ29tbWFuZCh7XG4gICAgdGV4dDogYFR1cm4gJHtfLnRvTG93ZXIoc3R5bGUpID09PSAnZGFyaycgPyAnb24nIDogJ29mZid9IGRhcmsgbW9kZWAsXG4gIH0pO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBBcHBlYXJhbmNlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gc3R5bGUgLSBUaGUgZGV2aWNlJ3MgVUkgYXBwZWFyYW5jZSB2YWx1ZS5cbiAqIFRoaXMgY291bGQgYmUgb25lIG9mOlxuICogLSBgbGlnaHRgXG4gKiAtIGBkYXJrYFxuICogLSBgdW5rbm93bmBcbiAqIC0gYHVuc3VwcG9ydGVkYFxuICovXG5cbi8qKlxuICogR2V0IHRoZSBkZXZpY2UncyBVSSBhcHBlYXJhbmNlIHN0eWxlLlxuICpcbiAqIEBzaW5jZSBYY29kZSBTREsgMTFcbiAqIEByZXR1cm5zIHtBcHBlYXJhbmNlfVxuICovXG5jb21tYW5kcy5tb2JpbGVHZXRBcHBlYXJhbmNlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlR2V0QXBwZWFyYW5jZSAoKSB7XG4gIGlmICh1dGlsLmNvbXBhcmVWZXJzaW9ucyh0aGlzLm9wdHMucGxhdGZvcm1WZXJzaW9uLCAnPCcsICcxMi4wJykpIHtcbiAgICByZXR1cm4gJ3Vuc3VwcG9ydGVkJztcbiAgfVxuXG4gIGxldCBzdHlsZTtcbiAgaWYgKHRoaXMuaXNTaW11bGF0b3IoKSkge1xuICAgIHRyeSB7XG4gICAgICBzdHlsZSA9IGF3YWl0IHRoaXMub3B0cy5kZXZpY2UuZ2V0QXBwZWFyYW5jZSgpO1xuICAgIH0gY2F0Y2ggKGlnbikge31cbiAgfVxuICBpZiAoIXN0eWxlKSB7XG4gICAgc3R5bGUgPSAoYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy93ZGEvZGV2aWNlL2luZm8nLCAnR0VUJykpLnVzZXJJbnRlcmZhY2VTdHlsZSB8fCAndW5rbm93bic7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBzdHlsZSxcbiAgfTtcbn07XG5cblxuZXhwb3J0IHsgY29tbWFuZHMgfTtcbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUdBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjs7O0FBa0JBQSxRQUFRLENBQUNDLG1CQUFULEdBQStCLGVBQWVBLG1CQUFmLENBQW9DQyxJQUFJLEdBQUcsRUFBM0MsRUFBK0M7RUFDNUUsTUFBTTtJQUNKQztFQURJLElBRUZELElBRko7O0VBR0EsSUFBSSxDQUFDLENBQUMsT0FBRCxFQUFVLE1BQVYsRUFBa0JFLFFBQWxCLENBQTJCQyxlQUFBLENBQUVDLE9BQUYsQ0FBVUgsS0FBVixDQUEzQixDQUFMLEVBQW1EO0lBQ2pELE1BQU0sSUFBSUksS0FBSixDQUFXLGlFQUFYLENBQU47RUFDRDs7RUFDRCxJQUFJQyxhQUFBLENBQUtDLGVBQUwsQ0FBcUIsS0FBS1AsSUFBTCxDQUFVUSxlQUEvQixFQUFnRCxHQUFoRCxFQUFxRCxNQUFyRCxDQUFKLEVBQWtFO0lBQ2hFLE1BQU0sSUFBSUgsS0FBSixDQUFVLG9EQUFWLENBQU47RUFDRDs7RUFFRCxJQUFJLEtBQUtJLFdBQUwsRUFBSixFQUF3QjtJQUN0QixJQUFJO01BQ0YsT0FBTyxNQUFNLE1BQU0sS0FBS1QsSUFBTCxDQUFVVSxNQUFWLENBQWlCQyxhQUFqQixDQUErQlYsS0FBL0IsQ0FBWixDQUFQO0lBQ0QsQ0FGRCxDQUVFLE9BQU9XLENBQVAsRUFBVTtNQUNWLEtBQUtDLEdBQUwsQ0FBU0MsS0FBVCxDQUFlRixDQUFDLENBQUNHLEtBQWpCO0lBQ0Q7RUFDRjs7RUFDRCxJQUFJO0lBQ0YsT0FBTyxNQUFNLE1BQU0sS0FBS0MsWUFBTCxDQUFrQix3QkFBbEIsRUFBNEMsTUFBNUMsRUFBb0Q7TUFBQ0MsSUFBSSxFQUFFaEI7SUFBUCxDQUFwRCxDQUFaLENBQVA7RUFDRCxDQUZELENBRUUsT0FBT1csQ0FBUCxFQUFVO0lBQ1YsS0FBS0MsR0FBTCxDQUFTQyxLQUFULENBQWVGLENBQUMsQ0FBQ0csS0FBakI7RUFDRDs7RUFFRCxNQUFNLEtBQUtHLGlCQUFMLENBQXVCO0lBQzNCQyxJQUFJLEVBQUcsUUFBT2hCLGVBQUEsQ0FBRUMsT0FBRixDQUFVSCxLQUFWLE1BQXFCLE1BQXJCLEdBQThCLElBQTlCLEdBQXFDLEtBQU07RUFEOUIsQ0FBdkIsQ0FBTjtBQUdELENBM0JEOztBQTZDQUgsUUFBUSxDQUFDc0IsbUJBQVQsR0FBK0IsZUFBZUEsbUJBQWYsR0FBc0M7RUFDbkUsSUFBSWQsYUFBQSxDQUFLQyxlQUFMLENBQXFCLEtBQUtQLElBQUwsQ0FBVVEsZUFBL0IsRUFBZ0QsR0FBaEQsRUFBcUQsTUFBckQsQ0FBSixFQUFrRTtJQUNoRSxPQUFPLGFBQVA7RUFDRDs7RUFFRCxJQUFJUCxLQUFKOztFQUNBLElBQUksS0FBS1EsV0FBTCxFQUFKLEVBQXdCO0lBQ3RCLElBQUk7TUFDRlIsS0FBSyxHQUFHLE1BQU0sS0FBS0QsSUFBTCxDQUFVVSxNQUFWLENBQWlCVyxhQUFqQixFQUFkO0lBQ0QsQ0FGRCxDQUVFLE9BQU9DLEdBQVAsRUFBWSxDQUFFO0VBQ2pCOztFQUNELElBQUksQ0FBQ3JCLEtBQUwsRUFBWTtJQUNWQSxLQUFLLEdBQUcsQ0FBQyxNQUFNLEtBQUtlLFlBQUwsQ0FBa0Isa0JBQWxCLEVBQXNDLEtBQXRDLENBQVAsRUFBcURPLGtCQUFyRCxJQUEyRSxTQUFuRjtFQUNEOztFQUNELE9BQU87SUFDTHRCO0VBREssQ0FBUDtBQUdELENBakJEOztlQXFCZUgsUSJ9
|
|
@@ -20,4 +20,4 @@ var _default = extensions;
|
|
|
20
20
|
exports.default = _default;require('source-map-support').install();
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2JhdHRlcnkuanMiLCJuYW1lcyI6WyJleHRlbnNpb25zIiwiY29tbWFuZHMiLCJtb2JpbGVHZXRCYXR0ZXJ5SW5mbyIsInByb3h5Q29tbWFuZCIsIk9iamVjdCIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9iYXR0ZXJ5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImxldCBleHRlbnNpb25zID0ge30sIGNvbW1hbmRzID0ge307XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gQmF0dGVyeUluZm9cbiAqXG4gKiBAcHJvcGVydHkge251bWJlcn0gbGV2ZWwgLSBCYXR0ZXJ5IGxldmVsIGluIHJhbmdlIFswLjAsIDEuMF0sIHdoZXJlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjAgbWVhbnMgMTAwJSBjaGFyZ2UuXG4gKiBAcHJvcGVydHkge251bWJlcn0gc3RhdGUgLSBCYXR0ZXJ5IHN0YXRlLiBUaGUgZm9sbG93aW5nIHZhbHVlcyBhcmUgcG9zc2libGU6XG4gKiAgIFVJRGV2aWNlQmF0dGVyeVN0YXRlVW5rbm93biA9IDBcbiAqICAgVUlEZXZpY2VCYXR0ZXJ5U3RhdGVVbnBsdWdnZWQgPSAxICAvLyBvbiBiYXR0ZXJ5LCBkaXNjaGFyZ2luZ1xuICogICBVSURldmljZUJhdHRlcnlTdGF0ZUNoYXJnaW5nID0gMiAgIC8vIHBsdWdnZWQgaW4sIGxlc3MgdGhhbiAxMDAlXG4gKiAgIFVJRGV2aWNlQmF0dGVyeVN0YXRlRnVsbCA9IDMgICAgICAgLy8gcGx1Z2dlZCBpbiwgYXQgMTAwJVxuICovXG5cbi8qKlxuICogUmVhZHMgdGhlIGJhdHRlcnkgaW5mb3JtYXRpb24gZnJvbSB0aGUgZGV2aWNlIHVuZGVyIHRlc3QuXG4gKiBUaGlzIGVuZHBvaW50IG9ubHkgcmV0dXJucyByZWxpYWJsZSByZXN1bHQgb24gcmVhbCBkZXZpY2VzLlxuICpcbiAqIEByZXR1cm5zIHtCYXR0ZXJ5SW5mb30gVGhlIGFjdHVhbCBiYXR0ZXJ5IGluZm9cbiAqL1xuY29tbWFuZHMubW9iaWxlR2V0QmF0dGVyeUluZm8gPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVHZXRCYXR0ZXJ5SW5mbyAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS9iYXR0ZXJ5SW5mbycsICdHRVQnKTtcbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMpO1xuZXhwb3J0IHsgY29tbWFuZHMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUlBLFVBQVUsR0FBRyxFQUFqQjtBQUFBLElBQXFCQyxRQUFRLEdBQUcsRUFBaEM7OztBQW9CQUEsUUFBUSxDQUFDQyxvQkFBVCxHQUFnQyxlQUFlQSxvQkFBZixHQUF1QztFQUNyRSxPQUFPLE1BQU0sS0FBS0MsWUFBTCxDQUFrQixrQkFBbEIsRUFBc0MsS0FBdEMsQ0FBYjtBQUNELENBRkQ7O0FBSUFDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjTCxVQUFkLEVBQTBCQyxRQUExQjtlQUVlRCxVIn0=
|
|
@@ -46,4 +46,4 @@ var _default = extensions;
|
|
|
46
46
|
exports.default = _default;require('source-map-support').install();
|
|
47
47
|
|
|
48
48
|
|
|
49
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2Jpb21ldHJpYy5qcyIsIm5hbWVzIjpbImNvbW1hbmRzIiwiaGVscGVycyIsImV4dGVuc2lvbnMiLCJhc3NlcnRJc1NpbXVsYXRvciIsImRyaXZlciIsImlzU2ltdWxhdG9yIiwiRXJyb3IiLCJtb2JpbGVFbnJvbGxCaW9tZXRyaWMiLCJvcHRzIiwiaXNFbmFibGVkIiwiZGV2aWNlIiwiZW5yb2xsQmlvbWV0cmljIiwibW9iaWxlU2VuZEJpb21ldHJpY01hdGNoIiwibWF0Y2giLCJ0eXBlIiwic2VuZEJpb21ldHJpY01hdGNoIiwibW9iaWxlSXNCaW9tZXRyaWNFbnJvbGxlZCIsImlzQmlvbWV0cmljRW5yb2xsZWQiLCJPYmplY3QiLCJhc3NpZ24iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvY29tbWFuZHMvYmlvbWV0cmljLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImxldCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuZnVuY3Rpb24gYXNzZXJ0SXNTaW11bGF0b3IgKGRyaXZlcikge1xuICBpZiAoIWRyaXZlci5pc1NpbXVsYXRvcigpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdCaW9tZXRyaWMgZW5yb2xsbWVudCBjYW4gb25seSBiZSBwZXJmb3JtZWQgb24gU2ltdWxhdG9yJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBFbnJvbGxPcHRpb25zXG4gKlxuICogQHByb3BlcnR5IHs/Ym9vbGVhbn0gaXNFbmFibGVkIFt0cnVlXSAtIFdoZXRoZXIgdG8gZW5hYmxlL2Rpc2FibGUgYmlvbWV0cmljIGVucm9sbG1lbnQuXG4gKi9cblxuLyoqXG4gKiBFbnJvbGxzIGJpb21ldHJpYyBhdXRoZW50aWNhdGlvbiBvbiBTaW11bGF0b3IuXG4gKlxuICogQHBhcmFtIHtFbnJvbGxPcHRpb25zfSBvcHRzIC0gRW5yb2xsbWVudCBvcHRpb25zLlxuICogQHRocm93cyB7RXJyb3J9IElmIGVucm9sbG1lbnQgZmFpbHMgb3IgdGhlIGRldmljZSBpcyBub3QgYSBTaW11bGF0b3IuXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUVucm9sbEJpb21ldHJpYyA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUVucm9sbEJpb21ldHJpYyAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBpc0VuYWJsZWQgPSB0cnVlLFxuICB9ID0gb3B0cztcblxuICBhc3NlcnRJc1NpbXVsYXRvcih0aGlzKTtcblxuICBhd2FpdCB0aGlzLm9wdHMuZGV2aWNlLmVucm9sbEJpb21ldHJpYyhpc0VuYWJsZWQpO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBCaW9tZXRyaWNNYXRjaE9wdGlvbnNcbiAqXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IHR5cGUgW3RvdWNoSWRdIC0gVGhlIGJpb21ldHJpYyBmZWF0dXJlIG5hbWUuXG4gKiBAcHJvcGVydHkgez9ib29sZWFufSBtYXRjaCBbdHJ1ZV0gLSBXaGV0aGVyIHRvIHNpbXVsYXRlIGJpb21ldHJpYyBtYXRjaCBvciBub24tbWF0Y2guXG4gKi9cblxuLyoqXG4gKiBFbXVsYXRlcyBiaW9tZXRyaWMgbWF0Y2gvbm9uLW1hdGNoIGV2ZW50IG9uIFNpbXVsYXRvci5cbiAqIFRoZSBiaW9tZXRyaWMgZmVhdHVyZSBpcyBleHBlY3RlZCB0byBiZSBhbHJlYWR5IGVucm9sbGVkIGJlZm9yZSBleGVjdXRpbmcgdGhhdC5cbiAqXG4gKiBAcGFyYW0ge0Jpb21ldHJpY01hdGNoT3B0aW9uc30gb3B0cyAtIE1hdGNoaW5nIG9wdGlvbnMuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgbWF0Y2hpbmcgZmFpbHMgb3IgdGhlIGRldmljZSBpcyBub3QgYSBTaW11bGF0b3IuXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVNlbmRCaW9tZXRyaWNNYXRjaCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVNlbmRCaW9tZXRyaWNNYXRjaCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBtYXRjaCA9IHRydWUsXG4gICAgdHlwZSA9ICd0b3VjaElkJyxcbiAgfSA9IG9wdHM7XG5cbiAgYXNzZXJ0SXNTaW11bGF0b3IodGhpcyk7XG5cbiAgYXdhaXQgdGhpcy5vcHRzLmRldmljZS5zZW5kQmlvbWV0cmljTWF0Y2gobWF0Y2gsIHR5cGUpO1xufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBiaW9tZXRyaWMgaXMgY3VycmVudGx5IGVucm9sbGVkIG9yIG5vdC5cbiAqXG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIGJpb21ldHJpYyBpcyBlbnJvbGxlZC5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZGV0ZWN0aW9uIGZhaWxzIG9yIHRoZSBkZXZpY2UgaXMgbm90IGEgU2ltdWxhdG9yLlxuICovXG5jb21tYW5kcy5tb2JpbGVJc0Jpb21ldHJpY0Vucm9sbGVkID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlSXNCaW9tZXRyaWNFbnJvbGxlZCAoKSB7XG4gIGFzc2VydElzU2ltdWxhdG9yKHRoaXMpO1xuXG4gIHJldHVybiBhd2FpdCB0aGlzLm9wdHMuZGV2aWNlLmlzQmlvbWV0cmljRW5yb2xsZWQoKTtcbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgY29tbWFuZHMsIGhlbHBlcnMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUlBLFFBQVEsR0FBRyxFQUFmO0FBQUEsSUFBbUJDLE9BQU8sR0FBRyxFQUE3QjtBQUFBLElBQWlDQyxVQUFVLEdBQUcsRUFBOUM7Ozs7QUFFQSxTQUFTQyxpQkFBVCxDQUE0QkMsTUFBNUIsRUFBb0M7RUFDbEMsSUFBSSxDQUFDQSxNQUFNLENBQUNDLFdBQVAsRUFBTCxFQUEyQjtJQUN6QixNQUFNLElBQUlDLEtBQUosQ0FBVSx5REFBVixDQUFOO0VBQ0Q7QUFDRjs7QUFjRE4sUUFBUSxDQUFDTyxxQkFBVCxHQUFpQyxlQUFlQSxxQkFBZixDQUFzQ0MsSUFBSSxHQUFHLEVBQTdDLEVBQWlEO0VBQ2hGLE1BQU07SUFDSkMsU0FBUyxHQUFHO0VBRFIsSUFFRkQsSUFGSjtFQUlBTCxpQkFBaUIsQ0FBQyxJQUFELENBQWpCO0VBRUEsTUFBTSxLQUFLSyxJQUFMLENBQVVFLE1BQVYsQ0FBaUJDLGVBQWpCLENBQWlDRixTQUFqQyxDQUFOO0FBQ0QsQ0FSRDs7QUF3QkFULFFBQVEsQ0FBQ1ksd0JBQVQsR0FBb0MsZUFBZUEsd0JBQWYsQ0FBeUNKLElBQUksR0FBRyxFQUFoRCxFQUFvRDtFQUN0RixNQUFNO0lBQ0pLLEtBQUssR0FBRyxJQURKO0lBRUpDLElBQUksR0FBRztFQUZILElBR0ZOLElBSEo7RUFLQUwsaUJBQWlCLENBQUMsSUFBRCxDQUFqQjtFQUVBLE1BQU0sS0FBS0ssSUFBTCxDQUFVRSxNQUFWLENBQWlCSyxrQkFBakIsQ0FBb0NGLEtBQXBDLEVBQTJDQyxJQUEzQyxDQUFOO0FBQ0QsQ0FURDs7QUFpQkFkLFFBQVEsQ0FBQ2dCLHlCQUFULEdBQXFDLGVBQWVBLHlCQUFmLEdBQTRDO0VBQy9FYixpQkFBaUIsQ0FBQyxJQUFELENBQWpCO0VBRUEsT0FBTyxNQUFNLEtBQUtLLElBQUwsQ0FBVUUsTUFBVixDQUFpQk8sbUJBQWpCLEVBQWI7QUFDRCxDQUpEOztBQU1BQyxNQUFNLENBQUNDLE1BQVAsQ0FBY2pCLFVBQWQsRUFBMEJGLFFBQTFCLEVBQW9DQyxPQUFwQztlQUVlQyxVIn0=
|
|
@@ -396,4 +396,4 @@ var _default = extensions;
|
|
|
396
396
|
exports.default = _default;require('source-map-support').install();
|
|
397
397
|
|
|
398
398
|
|
|
399
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9jZXJ0aWZpY2F0ZS5qcyJdLCJuYW1lcyI6WyJleHRlbnNpb25zIiwiY29tbWFuZHMiLCJDT05GSUdfRVhURU5TSU9OIiwiSE9TVF9QT1JUX1JBTkdFIiwiVE1QU0VSVkVSX1NUQVJUVVBfVElNRU9VVCIsIlNldHRpbmdzIiwiR2VuZXJhbCIsInR5cGUiLCJ2YWx1ZSIsIlByb2ZpbGUiLCJBYm91dCIsIkNlcnRpZmljYXRlX1RydXN0X1NldHRpbmdzIiwiQnV0dG9uIiwiSW5zdGFsbCIsIkFsbG93IiwiRG9uZSIsIlJldHVybl90b19TZXR0aW5ncyIsIkFsZXJ0IiwiZXh0cmFjdENvbW1vbk5hbWUiLCJjZXJ0QnVmZmVyIiwidGVtcENlcnQiLCJ0ZW1wRGlyIiwib3BlbiIsInByZWZpeCIsInN1ZmZpeCIsImZzIiwid3JpdGVGaWxlIiwicGF0aCIsInN0ZG91dCIsInBhcnNlQ29tbW9uTmFtZSIsImVyciIsIkVycm9yIiwibWVzc2FnZSIsInJpbXJhZiIsIkxJQlJFX1NTTF9QQVRURVJOIiwiT1BFTl9TU0xfUEFUVEVSTiIsInN0cmluZ0NlcnRpZmljYXRlIiwicmVzdWx0IiwicmVkdWNlIiwiYWNjIiwiciIsIm1hdGNoIiwiZXhlYyIsInRvTW9iaWxlQ29uZmlnIiwiY29tbW9uTmFtZSIsImdldFVVSUQiLCJ1dGlsIiwidXVpZFY0IiwidG9VcHBlckNhc2UiLCJjb250ZW50VXVpZCIsIlBheWxvYWRDb250ZW50IiwiUGF5bG9hZENlcnRpZmljYXRlRmlsZU5hbWUiLCJQYXlsb2FkRGVzY3JpcHRpb24iLCJQYXlsb2FkRGlzcGxheU5hbWUiLCJQYXlsb2FkSWRlbnRpZmllciIsIlBheWxvYWRUeXBlIiwiUGF5bG9hZFVVSUQiLCJQYXlsb2FkVmVyc2lvbiIsIm9zIiwiaG9zdG5hbWUiLCJzcGxpdCIsIlBheWxvYWRSZW1vdmFsRGlzYWxsb3dlZCIsImNsaWNrRWxlbWVudCIsImRyaXZlciIsImxvY2F0b3IiLCJvcHRpb25zIiwiZWxlbWVudCIsInRpbWVvdXQiLCJza2lwSWZJbnZpc2libGUiLCJsb29rdXBEZWxheSIsImZpbmROYXRpdmVFbGVtZW50T3JFbGVtZW50cyIsIkpTT04iLCJzdHJpbmdpZnkiLCJuYXRpdmVDbGljayIsImluc3RhbGxQcmUxMjJDZXJ0aWZpY2F0ZSIsIkIiLCJkZWxheSIsInRydXN0Q2VydGlmaWNhdGVJblByZWZlcmVuY2VzIiwibmFtZSIsInN3aXRjaExvY2F0b3IiLCJtb2JpbGVTd2lwZSIsImRpcmVjdGlvbiIsInBvc3RBY2NlcHRBbGVydCIsImluc3RhbGxQb3N0MTIyQ2VydGlmaWNhdGUiLCJhY3RpdmF0ZUFwcCIsImlzQ2VydEZvdW5kIiwic3dpcGVOdW0iLCJtb2JpbGVJbnN0YWxsQ2VydGlmaWNhdGUiLCJvcHRzIiwiY29udGVudCIsImlzUm9vdCIsIl8iLCJpc0VtcHR5IiwiaXNTaW11bGF0b3IiLCJtZXRob2ROYW1lIiwiZGV2aWNlIiwic2ltY3RsIiwiQnVmZmVyIiwiZnJvbSIsInRvU3RyaW5nIiwicmF3IiwiZSIsImxvZyIsImRlYnVnIiwiaW5mbyIsImNsaWVudCIsIlB5aWRldmljZSIsInVkaWQiLCJhc3NlcnRFeGlzdHMiLCJpbnN0YWxsUHJvZmlsZSIsInBheWxvYWQiLCJ0bXBSb290Iiwib3BlbkRpciIsInRtcFBvcnQiLCJjb25maWdOYW1lIiwiY29uZmlnUGF0aCIsInJlc29sdmUiLCJ0bXBTZXJ2ZXIiLCJodHRwIiwiY3JlYXRlU2VydmVyIiwicmVzIiwiY29uZmlnRmlsZSIsInJlYWRGaWxlIiwiZW5kIiwiY24iLCJtb2JpbGVDb25maWciLCJwbGlzdCIsInVwZGF0ZVBsaXN0RmlsZSIsImhvc3QiLCJjZXJ0VXJsIiwibGlzdGVuIiwiaWduIiwid2FpdE1zIiwiaW50ZXJ2YWxNcyIsImlzUmVhbERldmljZSIsInByb3h5Q29tbWFuZCIsInVybCIsImlzV2ViQ29udGV4dCIsInNldFVybCIsIm9wZW5VcmwiLCJpc0NlcnRBbHJlYWR5SW5zdGFsbGVkIiwiY29tcGFyZVZlcnNpb25zIiwicGxhdGZvcm1WZXJzaW9uIiwiYnVuZGxlSWQiLCJ3YXJuIiwidG9Jbk1lbW9yeUJhc2U2NCIsImNsb3NlIiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFJQSxVQUFVLEdBQUcsRUFBakI7QUFBQSxJQUFxQkMsUUFBUSxHQUFHLEVBQWhDOztBQUVBLE1BQU1DLGdCQUFnQixHQUFHLGNBQXpCO0FBQ0EsTUFBTUMsZUFBZSxHQUFHLENBQUMsS0FBRCxFQUFRLEtBQVIsQ0FBeEI7QUFDQSxNQUFNQyx5QkFBeUIsR0FBRyxJQUFsQztBQUNBLE1BQU1DLFFBQVEsR0FBRztBQUNmQyxFQUFBQSxPQUFPLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFLGtCQURDO0FBRVBDLElBQUFBLEtBQUssRUFBRTtBQUZBLEdBRE07QUFLZkMsRUFBQUEsT0FBTyxFQUFFO0FBQ1BGLElBQUFBLElBQUksRUFBRSx1QkFEQztBQUVQQyxJQUFBQSxLQUFLLEVBQUc7QUFGRCxHQUxNO0FBU2ZFLEVBQUFBLEtBQUssRUFBRTtBQUNMSCxJQUFBQSxJQUFJLEVBQUUsa0JBREQ7QUFFTEMsSUFBQUEsS0FBSyxFQUFFO0FBRkYsR0FUUTtBQWFmRyxFQUFBQSwwQkFBMEIsRUFBRTtBQUMxQkosSUFBQUEsSUFBSSxFQUFFLGtCQURvQjtBQUUxQkMsSUFBQUEsS0FBSyxFQUFFO0FBRm1CO0FBYmIsQ0FBakI7QUFrQkEsTUFBTUksTUFBTSxHQUFHO0FBQ2JDLEVBQUFBLE9BQU8sRUFBRTtBQUNQTixJQUFBQSxJQUFJLEVBQUUsa0JBREM7QUFFUEMsSUFBQUEsS0FBSyxFQUFFO0FBRkEsR0FESTtBQUtiTSxFQUFBQSxLQUFLLEVBQUU7QUFDTFAsSUFBQUEsSUFBSSxFQUFFLGtCQUREO0FBRUxDLElBQUFBLEtBQUssRUFBRTtBQUZGLEdBTE07QUFTYk8sRUFBQUEsSUFBSSxFQUFF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VXVELFFBQTNCLENBQU47QUFDRCxTQUZELENBRUUsT0FBTzFDLENBQVAsRUFBVTtBQUNWLGVBQUtDLEdBQUwsQ0FBUzBDLElBQVQsQ0FBZSxtQ0FBa0MsS0FBS3hELElBQUwsQ0FBVXVELFFBQVMsc0JBQXFCMUMsQ0FBQyxDQUFDckUsT0FBUSxFQUFuRztBQUNEO0FBQ0Y7QUFDRjs7QUFFRCxXQUFPLENBQUMsTUFBTWMsY0FBS21HLGdCQUFMLENBQXNCOUIsVUFBdEIsQ0FBUCxFQUEwQ2hCLFFBQTFDLEVBQVA7QUFDRCxHQTNFRCxTQTJFVTtBQUNSLFVBQU1rQixTQUFTLENBQUM2QixLQUFWLEVBQU47QUFDQSxVQUFNekgsWUFBR1EsTUFBSCxDQUFVOEUsT0FBVixDQUFOO0FBQ0Q7QUFDRixDQXhIRDs7QUEwSEFvQyxNQUFNLENBQUNDLE1BQVAsQ0FBY3BKLFVBQWQsRUFBMEJDLFFBQTFCO2VBRWVELFUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZnMsIHBsaXN0LCB0ZW1wRGlyLCB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IHJldHJ5SW50ZXJ2YWwsIHJldHJ5LCB3YWl0Rm9yQ29uZGl0aW9uIH0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IGh0dHAgZnJvbSAnaHR0cCc7XG5pbXBvcnQgeyBleGVjIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcbmltcG9ydCB7IGZpbmRBUG9ydE5vdEluVXNlLCBjaGVja1BvcnRTdGF0dXMgfSBmcm9tICdwb3J0c2Nhbm5lcic7XG5pbXBvcnQgUHlpZGV2aWNlIGZyb20gJy4uL3B5LWlvcy1kZXZpY2UtY2xpZW50JztcblxubGV0IGV4dGVuc2lvbnMgPSB7fSwgY29tbWFuZHMgPSB7fTtcblxuY29uc3QgQ09ORklHX0VYVEVOU0lPTiA9ICdtb2JpbGVjb25maWcnO1xuY29uc3QgSE9TVF9QT1JUX1JBTkdFID0gWzM4MjAwLCAzODI5OV07XG5jb25zdCBUTVBTRVJWRVJfU1RBUlRVUF9USU1FT1VUID0gNTAwMDtcbmNvbnN0IFNldHRpbmdzID0ge1xuICBHZW5lcmFsOiB7XG4gICAgdHlwZTogJ2FjY2Vzc2liaWxpdHkgaWQnLFxuICAgIHZhbHVlOiAnR2VuZXJhbCcsXG4gIH0sXG4gIFByb2ZpbGU6IHtcbiAgICB0eXBlOiAnLWlvcyBwcmVkaWNhdGUgc3RyaW5nJyxcbiAgICB2YWx1ZTogYG5hbWUgQkVHSU5TV0lUSCAnUHJvZmlsZSdgLFxuICB9LFxuICBBYm91dDoge1xuICAgIHR5cGU6ICdhY2Nlc3NpYmlsaXR5IGlkJyxcbiAgICB2YWx1ZTogJ0Fib3V0JyxcbiAgfSxcbiAgQ2VydGlmaWNhdGVfVHJ1c3RfU2V0dGluZ3M6IHtcbiAgICB0eXBlOiAnYWNjZXNzaWJpbGl0eSBpZCcsXG4gICAgdmFsdWU6ICdDZXJ0aWZpY2F0ZSBUcnVzdCBTZXR0aW5ncycsXG4gIH0sXG59O1xuY29uc3QgQnV0dG9uID0ge1xuICBJbnN0YWxsOiB7XG4gICAgdHlwZTogJ2FjY2Vzc2liaWxpdHkgaWQnLFxuICAgIHZhbHVlOiAnSW5zdGFsbCcsXG4gIH0sXG4gIEFsbG93OiB7XG4gICAgdHlwZTogJ2FjY2Vzc2liaWxpdHkgaWQnLFxuICAgIHZhbHVlOiAnQWxsb3cnLFxuICB9LFxuICBEb25lOiB7XG4gICAgdHlwZTogJ2FjY2Vzc2liaWxpdHkgaWQnLFxuICAgIHZhbHVlOiAnRG9uZScsXG4gIH0sXG4gIFJldHVybl90b19TZXR0aW5nczoge1xuICAgIHR5cGU6ICdhY2Nlc3NpYmlsaXR5IGlkJyxcbiAgICB2YWx1ZTogJ1JldHVybiB0byBTZXR0aW5ncycsXG4gIH0sXG59O1xuY29uc3QgQWxlcnQgPSB7XG4gIEluc3RhbGw6IHtcbiAgICB0eXBlOiAnLWlvcyBjbGFzcyBjaGFpbicsXG4gICAgdmFsdWU6ICcqKi9YQ1VJRWxlbWVudFR5cGVBbnlbYHR5cGUgPT0gXFwnWENVSUVsZW1lbnRUeXBlQWxlcnRcXCcgT1IgdHlwZSA9PSBcXCdYQ1VJRWxlbWVudFR5cGVTaGVldFxcJ2BdLyoqL1hDVUlFbGVtZW50VHlwZUJ1dHRvbltgbGFiZWwgPT0gXFwnSW5zdGFsbFxcJ2BdJyxcbiAgfSxcbn07XG5cblxuYXN5bmMgZnVuY3Rpb24gZXh0cmFjdENvbW1vbk5hbWUgKGNlcnRCdWZmZXIpIHtcbiAgY29uc3QgdGVtcENlcnQgPSBhd2FpdCB0ZW1wRGlyLm9wZW4oe1xuICAgIHByZWZpeDogJ2NlcnQnLFxuICAgIHN1ZmZpeDogJy5jZXInXG4gIH0pO1xuICB0cnkge1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZSh0ZW1wQ2VydC5wYXRoLCBjZXJ0QnVmZmVyKTtcbiAgICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IGV4ZWMoJ29wZW5zc2wnLCBbJ3g1MDknLCAnLW5vb3V0JywgJy1zdWJqZWN0JywgJy1pbicsIHRlbXBDZXJ0LnBhdGhdKTtcbiAgICByZXR1cm4gcGFyc2VDb21tb25OYW1lKHN0ZG91dCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHBhcnNlIGNvbW1vbiBuYW1lIHZhbHVlIGZyb20gdGhlIGNlcnRpZmljYXRlLiBJcyBpdCB2YWxpZCBhbmQgYmFzZTY0LWVuY29kZWQ/IGAgK1xuICAgICAgICAgICAgICAgICAgICBgT3JpZ2luYWwgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgZnMucmltcmFmKHRlbXBDZXJ0LnBhdGgpO1xuICB9XG59XG5cbmNvbnN0IExJQlJFX1NTTF9QQVRURVJOID0gL1xcL0NOPShbXlxcL10rKS87IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdXNlbGVzcy1lc2NhcGVcbmNvbnN0IE9QRU5fU1NMX1BBVFRFUk4gPSAvLFxcc0NOXFxzPVxccyhbXixdKykvO1xuXG5mdW5jdGlvbiBwYXJzZUNvbW1vbk5hbWUgKHN0cmluZ0NlcnRpZmljYXRlKSB7XG4gIGNvbnN0IHJlc3VsdCA9IFtMSUJSRV9TU0xfUEFUVEVSTiwgT1BFTl9TU0xfUEFUVEVSTl0ucmVkdWNlKChhY2MsIHIpID0+IHtcbiAgICBpZiAoYWNjKSB7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH1cbiAgICBjb25zdCBtYXRjaCA9IHIuZXhlYyhzdHJpbmdDZXJ0aWZpY2F0ZSk7XG4gICAgcmV0dXJuIG1hdGNoICYmIG1hdGNoWzFdO1xuICB9LCBudWxsKTtcbiAgaWYgKCFyZXN1bHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZXJlIGlzIG5vIGNvbW1vbiBuYW1lIHZhbHVlIGluICcke3N0cmluZ0NlcnRpZmljYXRlfScgb3V0cHV0YCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgQXBwbGUncyBvdmVyLXRoZS1haXIgY29uZmlndXJhdGlvbiBwcm9maWxlXG4gKiBmb3IgY2VydGlmaWNhdGUgZGVwbG95bWVudCBiYXNlZCBvbiB0aGUgZ2l2ZW4gUEVNIGNlcnRpZmljYXRlIGNvbnRlbnQuXG4gKiBSZWFkIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9saWJyYXJ5L2NvbnRlbnQvZG9jdW1lbnRhdGlvbi9OZXR3b3JraW5nSW50ZXJuZXQvQ29uY2VwdHVhbC9pUGhvbmVPVEFDb25maWd1cmF0aW9uL0ludHJvZHVjdGlvbi9JbnRyb2R1Y3Rpb24uaHRtbFxuICogZm9yIG1vcmUgZGV0YWlscyBvbiBzdWNoIHByb2ZpbGVzLlxuICpcbiAqIEBwYXJhbSB7QnVmZmVyfSBjZXJ0QnVmZmVyIC0gVGhlIGFjdHVhbCBjb250ZW50IG9mIFBFTSBjZXJ0aWZpY2F0ZSBlbmNvZGVkIGludG8gTm9kZUpTIGJ1ZmZlclxuICogQHBhcmFtIHtzdHJpbmd9IGNvbW1vbk5hbWUgLSBDZXJ0aWZpY2F0ZSdzIGNvbW1vbiBuYW1lXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgZW5jb2RlZCBzdHJ1Y3R1cmUgb2YgdGhlIGdpdmVuIGNlcnRpZmljYXRlLCB3aGljaCBpcyByZWFkeSB0byBiZSBwYXNzZWRcbiAqIGFzIGFuIGFyZ3VtZW50IHRvIHBsaXN0IGJ1aWxkZXJcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZ2l2ZW4gY2VydGlmaWNhdGUgY2Fubm90IGJlIHBhcnNlZFxuICovXG5mdW5jdGlvbiB0b01vYmlsZUNvbmZpZyAoY2VydEJ1ZmZlciwgY29tbW9uTmFtZSkge1xuICBjb25zdCBnZXRVVUlEID0gKCkgPT4gdXRpbC51dWlkVjQoKS50b1VwcGVyQ2FzZSgpO1xuICBjb25zdCBjb250ZW50VXVpZCA9IGdldFVVSUQoKTtcbiAgcmV0dXJuIHtcbiAgICBQYXlsb2FkQ29udGVudDogW3tcbiAgICAgIFBheWxvYWRDZXJ0aWZpY2F0ZUZpbGVOYW1lOiBgJHtjb21tb25OYW1lfS5jZXJgLFxuICAgICAgUGF5bG9hZENvbnRlbnQ6IGNlcnRCdWZmZXIsXG4gICAgICBQYXlsb2FkRGVzY3JpcHRpb246ICdBZGRzIGEgQ0Egcm9vdCBjZXJ0aWZpY2F0ZScsXG4gICAgICBQYXlsb2FkRGlzcGxheU5hbWU6IGNvbW1vbk5hbWUsXG4gICAgICBQYXlsb2FkSWRlbnRpZmllcjogYGNvbS5hcHBsZS5zZWN1cml0eS5yb290LiR7Y29udGVudFV1aWR9YCxcbiAgICAgIFBheWxvYWRUeXBlOiAnY29tLmFwcGxlLnNlY3VyaXR5LnJvb3QnLFxuICAgICAgUGF5bG9hZFVVSUQ6IGNvbnRlbnRVdWlkLFxuICAgICAgUGF5bG9hZFZlcnNpb246IDFcbiAgICB9XSxcbiAgICBQYXlsb2FkRGlzcGxheU5hbWU6IGNvbW1vbk5hbWUsXG4gICAgUGF5bG9hZElkZW50aWZpZXI6IGAke29zLmhvc3RuYW1lKCkuc3BsaXQoJy4nKVswXX0uJHtnZXRVVUlEKCl9YCxcbiAgICBQYXlsb2FkUmVtb3ZhbERpc2FsbG93ZWQ6IGZhbHNlLFxuICAgIFBheWxvYWRUeXBlOiAnQ29uZmlndXJhdGlvbicsXG4gICAgUGF5bG9hZFVVSUQ6IGdldFVVSUQoKSxcbiAgICBQYXlsb2FkVmVyc2lvbjogMVxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBjbGlja0VsZW1lbnQgKGRyaXZlciwgbG9jYXRvciwgb3B0aW9ucyA9IHt9KSB7XG4gIGxldCBlbGVtZW50ID0gbnVsbDtcbiAgY29uc3Qge1xuICAgIHRpbWVvdXQgPSA1MDAwLFxuICAgIHNraXBJZkludmlzaWJsZSA9IGZhbHNlXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBsb29rdXBEZWxheSA9IDUwMDtcbiAgdHJ5IHtcbiAgICBlbGVtZW50ID0gYXdhaXQgcmV0cnlJbnRlcnZhbCh0aW1lb3V0IDwgbG9va3VwRGVsYXkgPyAxIDogdGltZW91dCAvIGxvb2t1cERlbGF5LCBsb29rdXBEZWxheSxcbiAgICAgICgpID0+IGRyaXZlci5maW5kTmF0aXZlRWxlbWVudE9yRWxlbWVudHMobG9jYXRvci50eXBlLCBsb2NhdG9yLnZhbHVlLCBmYWxzZSlcbiAgICApO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoc2tpcElmSW52aXNpYmxlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgJHtKU09OLnN0cmluZ2lmeShsb2NhdG9yKX0gd2l0aGluICR7dGltZW91dH1tcyB0aW1lb3V0YCk7XG4gIH1cbiAgYXdhaXQgZHJpdmVyLm5hdGl2ZUNsaWNrKGVsZW1lbnQpO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5zdGFsbFByZTEyMkNlcnRpZmljYXRlIChkcml2ZXIpIHtcbiAgLy8gQWNjZXB0IFNhZmFyaSBhbGVydFxuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBCdXR0b24uQWxsb3csIHtcbiAgICAvLyBjZXJ0aWZpY2F0ZSBsb2FkIG1pZ2h0IHRha2Ugc29tZSB0aW1lIG9uIHNsb3cgbWFjaGluZXNcbiAgICB0aW1lb3V0OiAxNTAwMCxcbiAgfSk7XG4gIC8vIFdhaXQgdW50aWwgUHJlZmVyZW5jZXMgYXJlIG9wZW5lZFxuICBhd2FpdCBCLmRlbGF5KDIwMDApO1xuXG4gIC8vIEdvIHRocm91Z2ggUHJlZmVyZW5jZXMgd2l6YXJkXG4gIGlmICghYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgQnV0dG9uLkluc3RhbGwsIHtcbiAgICBza2lwSWZJbnZpc2libGU6IHRydWUsXG4gIH0pKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIFdlIG5lZWQgdG8gY2xpY2sgSW5zdGFsbCBidXR0b24gb24gdHdvIGRpZmZlcmVudCB0YWJzXG4gIC8vIFRoZSBzZWNvbmQgb25lIGNvbmZpcm1zIHRoZSBwcmV2aW91c1xuICBhd2FpdCBCLmRlbGF5KDE1MDApO1xuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBCdXR0b24uSW5zdGFsbCk7XG4gIC8vIEFjY2VwdCBhbGVydFxuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBBbGVydC5JbnN0YWxsKTtcbiAgLy8gRmluaXNoIGFkZGluZyBjZXJ0aWZpY2F0ZVxuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBCdXR0b24uRG9uZSk7XG4gIHJldHVybiB0cnVlO1xufVxuXG5hc3luYyBmdW5jdGlvbiB0cnVzdENlcnRpZmljYXRlSW5QcmVmZXJlbmNlcyAoZHJpdmVyLCBuYW1lKSB7XG4gIGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIFNldHRpbmdzLkdlbmVyYWwpO1xuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBTZXR0aW5ncy5BYm91dCk7XG4gIGNvbnN0IHN3aXRjaExvY2F0b3IgPSB7XG4gICAgdHlwZTogJy1pb3MgY2xhc3MgY2hhaW4nLFxuICAgIHZhbHVlOiBgKiovWENVSUVsZW1lbnRUeXBlQ2VsbFtcXGBsYWJlbCA9PSAnJHtuYW1lfSdcXGBdLyoqL1hDVUlFbGVtZW50VHlwZVN3aXRjaGAsXG4gIH07XG4gIGF3YWl0IHJldHJ5KDUsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBkcml2ZXIubW9iaWxlU3dpcGUoe1xuICAgICAgZWxlbWVudDogYXdhaXQgZHJpdmVyLmZpbmROYXRpdmVFbGVtZW50T3JFbGVtZW50cygnY2xhc3MgbmFtZScsICdYQ1VJRWxlbWVudFR5cGVUYWJsZScsIGZhbHNlKSxcbiAgICAgIGRpcmVjdGlvbjogJ3VwJ1xuICAgIH0pO1xuICAgIGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIFNldHRpbmdzLkNlcnRpZmljYXRlX1RydXN0X1NldHRpbmdzLCB7XG4gICAgICB0aW1lb3V0OiA1MDAsXG4gICAgfSk7XG5cbiAgICBhd2FpdCBkcml2ZXIuZmluZE5hdGl2ZUVsZW1lbnRPckVsZW1lbnRzKHN3aXRjaExvY2F0b3IudHlwZSwgc3dpdGNoTG9jYXRvci52YWx1ZSwgZmFsc2UpO1xuICB9KTtcbiAgLy8gT25seSBjbGljayB0aGUgc3dpdGNoIGlmIGl0IGlzIHNldCB0byBPZmZcbiAgaWYgKGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIHtcbiAgICB0eXBlOiBzd2l0Y2hMb2NhdG9yLnR5cGUsXG4gICAgdmFsdWU6IGAke3N3aXRjaExvY2F0b3IudmFsdWV9W1xcYHZhbHVlID09ICcwJ1xcYF1gXG4gIH0sIHtcbiAgICB0aW1lb3V0OiAxMDAwLFxuICAgIHNraXBJZkludmlzaWJsZTogdHJ1ZSxcbiAgfSkpIHtcbiAgICBhd2FpdCBkcml2ZXIucG9zdEFjY2VwdEFsZXJ0KCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5zdGFsbFBvc3QxMjJDZXJ0aWZpY2F0ZSAoZHJpdmVyLCBuYW1lKSB7XG4gIC8vIEFjY2VwdCBTYWZhcmkgYWxlcnRcbiAgYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgQnV0dG9uLkFsbG93LCB7XG4gICAgLy8gY2VydGlmaWNhdGUgbG9hZCBtaWdodCB0YWtlIHNvbWUgdGltZSBvbiBzbG93IG1hY2hpbmVzXG4gICAgdGltZW91dDogMTUwMDAsXG4gIH0pO1xuICAvLyBXYWl0IGZvciB0aGUgc2Vjb25kIGFsZXJ0XG4gIGF3YWl0IEIuZGVsYXkoMjAwMCk7XG5cbiAgYXdhaXQgZHJpdmVyLnBvc3RBY2NlcHRBbGVydCgpO1xuICBhd2FpdCBkcml2ZXIuYWN0aXZhdGVBcHAoJ2NvbS5hcHBsZS5QcmVmZXJlbmNlcycpO1xuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBTZXR0aW5ncy5HZW5lcmFsKTtcbiAgYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgU2V0dGluZ3MuUHJvZmlsZSk7XG4gIC8vIFNlbGVjdCB0aGUgdGFyZ2V0IGNlcnRcbiAgbGV0IGlzQ2VydEZvdW5kID0gZmFsc2U7XG4gIGZvciAobGV0IHN3aXBlTnVtID0gMDsgc3dpcGVOdW0gPCA1OyArK3N3aXBlTnVtKSB7XG4gICAgaWYgKGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIHtcbiAgICAgIHR5cGU6ICctaW9zIGNsYXNzIGNoYWluJyxcbiAgICAgIHZhbHVlOiBgKiovWENVSUVsZW1lbnRUeXBlQ2VsbFtcXGBsYWJlbCA9PSAnJHtuYW1lfSdcXGBdYCxcbiAgICB9LCB7XG4gICAgICB0aW1lb3V0OiA1MDAsXG4gICAgICBza2lwSWZJbnZpc2libGU6IHRydWUsXG4gICAgfSkpIHtcbiAgICAgIGlzQ2VydEZvdW5kID0gdHJ1ZTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGF3YWl0IGRyaXZlci5tb2JpbGVTd2lwZSh7XG4gICAgICBlbGVtZW50OiBhd2FpdCBkcml2ZXIuZmluZE5hdGl2ZUVsZW1lbnRPckVsZW1lbnRzKCdjbGFzcyBuYW1lJywgJ1hDVUlFbGVtZW50VHlwZVRhYmxlJywgZmFsc2UpLFxuICAgICAgZGlyZWN0aW9uOiAndXAnXG4gICAgfSk7XG4gIH1cbiAgaWYgKCFpc0NlcnRGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJyR7bmFtZX0nIGNhbm5vdCBiZSBmb3VuZCBpbiB0aGUgY2VydGlmaWNhdGVzIGxpc3RgKTtcbiAgfVxuXG4gIC8vIEluc3RhbGwgb3B0aW9uIGlzIG9ubHkgdmlzaWJsZSBpZiB0aGUgY2VydCBpcyBub3QgaW5zdGFsbGVkIHlldFxuICBpZiAoIWF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIEJ1dHRvbi5JbnN0YWxsLCB7XG4gICAgc2tpcElmSW52aXNpYmxlOiB0cnVlLFxuICB9KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBhd2FpdCBCLmRlbGF5KDE1MDApO1xuICAvLyBDb25maXJtIHVudHJ1c3RlZCBjZXJ0IGluc3RhbGxcbiAgYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgQnV0dG9uLkluc3RhbGwpO1xuICAvLyBBY2NlcHQgYWxlcnRcbiAgYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgQWxlcnQuSW5zdGFsbCk7XG4gIC8vIEZpbmlzaCBhZGRpbmcgY2VydGlmaWNhdGVcbiAgYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgQnV0dG9uLkRvbmUpO1xuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IENlcnRpZmljYXRlSW5zdGFsbGF0aW9uT3B0aW9uc1xuICpcbiAqIEBwcm9wZXJ0eSB7IXN0cmluZ30gY29udGVudCAtIEJhc2U2NC1lbmNvZGVkIGNvbnRlbnQgb2YgdGhlIHB1YmxpYyBjZXJ0aWZpY2F0ZVxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBjb21tb25OYW1lIC0gQ29tbW9uIG5hbWUgb2YgdGhlIGNlcnRpZmljYXRlLiBJZiB0aGlzIGlzIG5vdCBzZXRcbiAqIHRoZW4gdGhlIHNjcmlwdCB3aWxsIHRyeSB0byBwYXJzZSBpdCBmcm9tIHRoZSBnaXZlbiBjZXJ0aWZpY2F0ZSBjb250ZW50LlxuICogQHByb3BlcnR5IHs/Ym9vbGVhbn0gaXNSb290IFt0cnVlXSAtIFRoaXMgb3B0aW9uIGRlZmluZXMgd2hlcmUgdGhlIGNlcnRpZmljYXRlIHNob3VsZCBiZVxuICogaW5zdGFsbGVkIHRvOiBlaXRoZXIgVHJ1c3RlZCBSb290IFN0b3JlIChgdHJ1ZWAsIHRoZSBkZWZhdWx0IG9wdGlvbikgb3JcbiAqIHRoZSBLZXljaGFpbiAoYGZhbHNlYCkuIE9uIGVudmlyb25tZW50cyBvdGhlciB0aGFuIFhjb2RlIDExLjQrIFNpbXVsYXRvciB0aGlzXG4gKiBvcHRpb24gaXMgaWdub3JlZC5cbiAqL1xuXG4vKipcbiAqIEluc3RhbGxzIGEgY3VzdG9tIGNlcnRpZmljYXRlIG9udG8gdGhlIGRldmljZS5cbiAqIFNpbmNlIFhjb2RlIFNESyAxMS40IEFwcGxlIGhhcyBhZGRlZCBhIGRlZGljYXRlZCBzaW1jdGwgc3ViY29tbWFuZCB0byBxdWlja2x5IGhhbmRsZVxuICogY2VydGlmaWNhdGVzIG9uIFNpbXVsYXRvciBvdmVyIENMSS5cbiAqIE9uIHJlYWwgZGV2aWNlcyBvciBzaW11bGF0b3JzIGJlZm9yZSBYY29kZSAxMS40IFNES1xuICogQXBwbGUgcHJvdmlkZXMgbm8gb2ZmaWNpYWwgd2F5IHRvIGRvIGl0IHZpYSB0aGUgY29tbWFuZCBsaW5lLlxuICogSW4gc3VjaCBjYXNlIChhbmQgYWxzbyBhcyBhIGZhbGxiYWNrIGlmIENMSSBzZXR1cCBmYWlscylcbiAqIHRoaXMgbWV0aG9kIHRyaWVzIHRvIHdyYXAgdGhlIGNlcnRpZmljYXRlIGludG8gLm1vYmlsZWNvbmZpZyBmb3JtYXRcbiAqIGFuZCB0aGVuIGRlcGxveXMgdGhlIHdyYXBwZWQgZmlsZSB0byB0aGUgaW50ZXJuYWwgSFRUUCBzZXJ2ZXIsXG4gKiBzbyBvbmUgY2FuIG9wZW4gaXQgdmlhIG1vYmlsZSBTYWZhcmkuXG4gKiBUaGVuIHRoZSBhbGdvcml0aG0gZ29lcyB0aHJvdWdoIHRoZSBwcm9maWxlIGluc3RhbGxhdGlvbiBwcm9jZWR1cmUgYnlcbiAqIGNsaWNraW5nIHRoZSBuZWNlc3NhcnkgYnV0dG9ucyB1c2luZyBXZWJEcml2ZXJBZ2VudC5cbiAqXG4gKiBAcGFyYW0ge0NlcnRpZmljYXRlSW5zdGFsbGF0aW9uT3B0aW9uc30gb3B0c1xuICogQHJldHVybnMgez9zdHJpbmd9IFRoZSBjb250ZW50IG9mIHRoZSBnZW5lcmF0ZWQgLm1vYmlsZWNvbmZpZyBmaWxlIGFzXG4gKiBiYXNlNjQtZW5jb2RlZCBzdHJpbmcuIFRoaXMgY29uZmlnIG1pZ2h0IGJlIHVzZWZ1bCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLlxuICogSWYgdGhlIGNlcnRpZmljYXRlIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBzZXQgdmlhIENMSSB0aGVuIG5vdGhpbmcgaXMgcmV0dXJuZWQuXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUluc3RhbGxDZXJ0aWZpY2F0ZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUluc3RhbGxDZXJ0aWZpY2F0ZSAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBjb250ZW50LFxuICAgIGNvbW1vbk5hbWUsXG4gICAgaXNSb290ID0gdHJ1ZSxcbiAgfSA9IG9wdHM7XG4gIGlmIChfLmlzRW1wdHkoY29udGVudCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NlcnRpZmljYXRlIGNvbnRlbnQgc2hvdWxkIG5vdCBiZSBlbXB0eScpO1xuICB9XG5cbiAgaWYgKHRoaXMuaXNTaW11bGF0b3IoKSkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtZXRob2ROYW1lID0gaXNSb290ID8gJ2FkZFJvb3RDZXJ0aWZpY2F0ZScgOiAnYWRkQ2VydGlmaWNhdGUnO1xuICAgICAgYXdhaXQgdGhpcy5vcHRzLmRldmljZS5zaW1jdGxbbWV0aG9kTmFtZV0oXG4gICAgICAgIEJ1ZmZlci5mcm9tKGNvbnRlbnQsICdiYXNlNjQnKS50b1N0cmluZygpLCB7cmF3OiB0cnVlfVxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhlKTtcbiAgICAgIHRoaXMubG9nLmluZm8oYFRoZSBjZXJ0aWZpY2F0ZSBjYW5ub3QgYmUgaW5zdGFsbGVkIHZpYSBDTEkuIGAgK1xuICAgICAgICBgRmFsbGluZyBiYWNrIHRvIFVJLWJhc2VkIGRlcGxveW1lbnRgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IFB5aWRldmljZSh0aGlzLm9wdHMudWRpZCk7XG4gICAgaWYgKGF3YWl0IGNsaWVudC5hc3NlcnRFeGlzdHMoZmFsc2UpKSB7XG4gICAgICBhd2FpdCBjbGllbnQuaW5zdGFsbFByb2ZpbGUoe3BheWxvYWQ6IEJ1ZmZlci5mcm9tKGNvbnRlbnQsICdiYXNlNjQnKX0pO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZy5pbmZvKCdweWlkZXZpY2UgaXMgbm90IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS4gJyArXG4gICAgICAgICdGYWxsaW5nIGJhY2sgdG8gdGhlIChzbG93KSBVSS1iYXNlZCBpbnN0YWxsYXRpb24nKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCB0bXBSb290ID0gYXdhaXQgdGVtcERpci5vcGVuRGlyKCk7XG4gIGNvbnN0IHRtcFBvcnQgPSBhd2FpdCBmaW5kQVBvcnROb3RJblVzZShIT1NUX1BPUlRfUkFOR0VbMF0sIEhPU1RfUE9SVF9SQU5HRVsxXSk7XG4gIGNvbnN0IGNvbmZpZ05hbWUgPSBgYXBwaXVtLiR7Q09ORklHX0VYVEVOU0lPTn1gO1xuICBjb25zdCBjb25maWdQYXRoID0gcGF0aC5yZXNvbHZlKHRtcFJvb3QsIGNvbmZpZ05hbWUpO1xuICBjb25zdCB0bXBTZXJ2ZXIgPSBodHRwLmNyZWF0ZVNlcnZlcihhc3luYyBmdW5jdGlvbiAoXywgcmVzKSB7XG4gICAgY29uc3QgY29uZmlnRmlsZSA9IGF3YWl0IGZzLnJlYWRGaWxlKGNvbmZpZ1BhdGgpO1xuICAgIHJlcy5lbmQoY29uZmlnRmlsZSk7XG4gIH0pO1xuICB0cnkge1xuICAgIGNvbnN0IGNlcnRCdWZmZXIgPSBCdWZmZXIuZnJvbShjb250ZW50LCAnYmFzZTY0Jyk7XG4gICAgY29uc3QgY24gPSBjb21tb25OYW1lIHx8IGF3YWl0IGV4dHJhY3RDb21tb25OYW1lKGNlcnRCdWZmZXIpO1xuICAgIGNvbnN0IG1vYmlsZUNvbmZpZyA9IHRvTW9iaWxlQ29uZmlnKGNlcnRCdWZmZXIsIGNuKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcGxpc3QudXBkYXRlUGxpc3RGaWxlKGNvbmZpZ1BhdGgsIG1vYmlsZUNvbmZpZywgZmFsc2UsIGZhbHNlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHN0b3JlIHRoZSBnZW5lcmF0ZWQgY29uZmlnIGFzICcke2NvbmZpZ1BhdGh9Jy4gYCArXG4gICAgICAgICAgICAgICAgICAgICAgYE9yaWdpbmFsIGVycm9yOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBob3N0ID0gb3MuaG9zdG5hbWUoKTtcbiAgICAgIGNvbnN0IGNlcnRVcmwgPSBgaHR0cDovLyR7aG9zdH06JHt0bXBQb3J0fS8ke2NvbmZpZ05hbWV9YDtcbiAgICAgIGF3YWl0IHRtcFNlcnZlci5saXN0ZW4odG1wUG9ydCk7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIChhd2FpdCBjaGVja1BvcnRTdGF0dXModG1wUG9ydCwgaG9zdCkpID09PSAnb3Blbic7XG4gICAgICAgICAgfSBjYXRjaCAoaWduKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgd2FpdE1zOiBUTVBTRVJWRVJfU1RBUlRVUF9USU1FT1VULFxuICAgICAgICAgIGludGVydmFsTXM6IDMwMCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKGBUaGUgdGVtcG9yYXJ5IHdlYiBzZXJ2ZXIgaXMgcnVubmluZyBhdCBodHRwOi8vJHtob3N0fToke3RtcFBvcnR9YCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIHRlbXBvcmFyeSB3ZWIgc2VydmVyIGNhbm5vdCBiZSBzdGFydGVkIGF0IGh0dHA6Ly8ke2hvc3R9OiR7dG1wUG9ydH0uYCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc1JlYWxEZXZpY2UoKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvdXJsJywgJ1BPU1QnLCB7dXJsOiBjZXJ0VXJsfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmICh0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgICAgICAgICAvLyBUaGUgY29tbWFuZCBhYm92ZSBkb2VzIG5vdCBhbHdheXMgd29yayBvbiByZWFsIGRldmljZXNcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2V0VXJsKGNlcnRVcmwpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB0aGlzLm9wdHMuZGV2aWNlLm9wZW5VcmwoY2VydFVybCk7XG4gICAgICB9XG5cbiAgICAgIGxldCBpc0NlcnRBbHJlYWR5SW5zdGFsbGVkID0gZmFsc2U7XG4gICAgICBpZiAodXRpbC5jb21wYXJlVmVyc2lvbnModGhpcy5vcHRzLnBsYXRmb3JtVmVyc2lvbiwgJz49JywgJzEyLjInKSkge1xuICAgICAgICBpZiAoYXdhaXQgaW5zdGFsbFBvc3QxMjJDZXJ0aWZpY2F0ZSh0aGlzLCBjbikpIHtcbiAgICAgICAgICBhd2FpdCBjbGlja0VsZW1lbnQodGhpcywgU2V0dGluZ3MuUHJvZmlsZSk7XG4gICAgICAgICAgYXdhaXQgdHJ1c3RDZXJ0aWZpY2F0ZUluUHJlZmVyZW5jZXModGhpcywgY24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzQ2VydEFscmVhZHlJbnN0YWxsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoYXdhaXQgaW5zdGFsbFByZTEyMkNlcnRpZmljYXRlKHRoaXMpKSB7XG4gICAgICAgICAgYXdhaXQgY2xpY2tFbGVtZW50KHRoaXMsIEJ1dHRvbi5SZXR1cm5fdG9fU2V0dGluZ3MpO1xuICAgICAgICAgIGF3YWl0IHRydXN0Q2VydGlmaWNhdGVJblByZWZlcmVuY2VzKHRoaXMsIGNuKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpc0NlcnRBbHJlYWR5SW5zdGFsbGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGlzQ2VydEFscmVhZHlJbnN0YWxsZWQpIHtcbiAgICAgICAgdGhpcy5sb2cuaW5mbyhgSXQgbG9va3MgbGlrZSB0aGUgJyR7Y259JyBjZXJ0aWZpY2F0ZSBoYXMgYmVlbiBhbHJlYWR5IGFkZGVkIHRvIHRoZSBDQSByb290YCk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmICh0aGlzLm9wdHMuYnVuZGxlSWQpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmFjdGl2YXRlQXBwKHRoaXMub3B0cy5idW5kbGVJZCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aGlzLmxvZy53YXJuKGBDYW5ub3QgcmVzdG9yZSB0aGUgYXBwbGljYXRpb24gJyR7dGhpcy5vcHRzLmJ1bmRsZUlkfScuIE9yaWdpbmFsIGVycm9yOiAke2UubWVzc2FnZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAoYXdhaXQgdXRpbC50b0luTWVtb3J5QmFzZTY0KGNvbmZpZ1BhdGgpKS50b1N0cmluZygpO1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IHRtcFNlcnZlci5jbG9zZSgpO1xuICAgIGF3YWl0IGZzLnJpbXJhZih0bXBSb290KTtcbiAgfVxufTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBjb21tYW5kcyk7XG5leHBvcnQgeyBjb21tYW5kcywgcGFyc2VDb21tb25OYW1lIH07XG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sImZpbGUiOiJsaWIvY29tbWFuZHMvY2VydGlmaWNhdGUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
|
|
399
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2NlcnRpZmljYXRlLmpzIiwibmFtZXMiOlsiZXh0ZW5zaW9ucyIsImNvbW1hbmRzIiwiQ09ORklHX0VYVEVOU0lPTiIsIkhPU1RfUE9SVF9SQU5HRSIsIlRNUFNFUlZFUl9TVEFSVFVQX1RJTUVPVVQiLCJTZXR0aW5ncyIsIkdlbmVyYWwiLCJ0eXBlIiwidmFsdWUiLCJQcm9maWxlIiwiQWJvdXQiLCJDZXJ0aWZpY2F0ZV9UcnVzdF9TZXR0aW5ncyIsIkJ1dHRvbiIsIkluc3RhbGwiLCJBbGxvdyIsIkRvbmUiLCJSZXR1cm5fdG9fU2V0dGluZ3MiLCJBbGVydCIsImV4dHJhY3RDb21tb25OYW1lIiwiY2VydEJ1ZmZlciIsInRlbXBDZXJ0IiwidGVtcERpciIsIm9wZW4iLCJwcmVmaXgiLCJzdWZmaXgiLCJmcyIsIndyaXRlRmlsZSIsInBhdGgiLCJzdGRvdXQiLCJleGVjIiwicGFyc2VDb21tb25OYW1lIiwiZXJyIiwiRXJyb3IiLCJtZXNzYWdlIiwicmltcmFmIiwiTElCUkVfU1NMX1BBVFRFUk4iLCJPUEVOX1NTTF9QQVRURVJOIiwic3RyaW5nQ2VydGlmaWNhdGUiLCJyZXN1bHQiLCJyZWR1Y2UiLCJhY2MiLCJyIiwibWF0Y2giLCJ0b01vYmlsZUNvbmZpZyIsImNvbW1vbk5hbWUiLCJnZXRVVUlEIiwidXRpbCIsInV1aWRWNCIsInRvVXBwZXJDYXNlIiwiY29udGVudFV1aWQiLCJQYXlsb2FkQ29udGVudCIsIlBheWxvYWRDZXJ0aWZpY2F0ZUZpbGVOYW1lIiwiUGF5bG9hZERlc2NyaXB0aW9uIiwiUGF5bG9hZERpc3BsYXlOYW1lIiwiUGF5bG9hZElkZW50aWZpZXIiLCJQYXlsb2FkVHlwZSIsIlBheWxvYWRVVUlEIiwiUGF5bG9hZFZlcnNpb24iLCJvcyIsImhvc3RuYW1lIiwic3BsaXQiLCJQYXlsb2FkUmVtb3ZhbERpc2FsbG93ZWQiLCJjbGlja0VsZW1lbnQiLCJkcml2ZXIiLCJsb2NhdG9yIiwib3B0aW9ucyIsImVsZW1lbnQiLCJ0aW1lb3V0Iiwic2tpcElmSW52aXNpYmxlIiwibG9va3VwRGVsYXkiLCJyZXRyeUludGVydmFsIiwiZmluZE5hdGl2ZUVsZW1lbnRPckVsZW1lbnRzIiwiSlNPTiIsInN0cmluZ2lmeSIsIm5hdGl2ZUNsaWNrIiwiaW5zdGFsbFByZTEyMkNlcnRpZmljYXRlIiwiQiIsImRlbGF5IiwidHJ1c3RDZXJ0aWZpY2F0ZUluUHJlZmVyZW5jZXMiLCJuYW1lIiwic3dpdGNoTG9jYXRvciIsInJldHJ5IiwibW9iaWxlU3dpcGUiLCJkaXJlY3Rpb24iLCJwb3N0QWNjZXB0QWxlcnQiLCJpbnN0YWxsUG9zdDEyMkNlcnRpZmljYXRlIiwiYWN0aXZhdGVBcHAiLCJpc0NlcnRGb3VuZCIsInN3aXBlTnVtIiwibW9iaWxlSW5zdGFsbENlcnRpZmljYXRlIiwib3B0cyIsImNvbnRlbnQiLCJpc1Jvb3QiLCJfIiwiaXNFbXB0eSIsImlzU2ltdWxhdG9yIiwibWV0aG9kTmFtZSIsImRldmljZSIsInNpbWN0bCIsIkJ1ZmZlciIsImZyb20iLCJ0b1N0cmluZyIsInJhdyIsImUiLCJsb2ciLCJkZWJ1ZyIsImluZm8iLCJjbGllbnQiLCJQeWlkZXZpY2UiLCJ1ZGlkIiwiYXNzZXJ0RXhpc3RzIiwiaW5zdGFsbFByb2ZpbGUiLCJwYXlsb2FkIiwidG1wUm9vdCIsIm9wZW5EaXIiLCJ0bXBQb3J0IiwiZmluZEFQb3J0Tm90SW5Vc2UiLCJjb25maWdOYW1lIiwiY29uZmlnUGF0aCIsInJlc29sdmUiLCJ0bXBTZXJ2ZXIiLCJodHRwIiwiY3JlYXRlU2VydmVyIiwicmVzIiwiY29uZmlnRmlsZSIsInJlYWRGaWxlIiwiZW5kIiwiY24iLCJtb2JpbGVDb25maWciLCJwbGlzdCIsInVwZGF0ZVBsaXN0RmlsZSIsImhvc3QiLCJjZXJ0VXJsIiwibGlzdGVuIiwid2FpdEZvckNvbmRpdGlvbiIsImNoZWNrUG9ydFN0YXR1cyIsImlnbiIsIndhaXRNcyIsImludGVydmFsTXMiLCJpc1JlYWxEZXZpY2UiLCJwcm94eUNvbW1hbmQiLCJ1cmwiLCJpc1dlYkNvbnRleHQiLCJzZXRVcmwiLCJvcGVuVXJsIiwiaXNDZXJ0QWxyZWFkeUluc3RhbGxlZCIsImNvbXBhcmVWZXJzaW9ucyIsInBsYXRmb3JtVmVyc2lvbiIsImJ1bmRsZUlkIiwid2FybiIsInRvSW5NZW1vcnlCYXNlNjQiLCJjbG9zZSIsIk9iamVjdCIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9jZXJ0aWZpY2F0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZnMsIHBsaXN0LCB0ZW1wRGlyLCB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IHJldHJ5SW50ZXJ2YWwsIHJldHJ5LCB3YWl0Rm9yQ29uZGl0aW9uIH0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IGh0dHAgZnJvbSAnaHR0cCc7XG5pbXBvcnQgeyBleGVjIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcbmltcG9ydCB7IGZpbmRBUG9ydE5vdEluVXNlLCBjaGVja1BvcnRTdGF0dXMgfSBmcm9tICdwb3J0c2Nhbm5lcic7XG5pbXBvcnQgUHlpZGV2aWNlIGZyb20gJy4uL3B5LWlvcy1kZXZpY2UtY2xpZW50JztcblxubGV0IGV4dGVuc2lvbnMgPSB7fSwgY29tbWFuZHMgPSB7fTtcblxuY29uc3QgQ09ORklHX0VYVEVOU0lPTiA9ICdtb2JpbGVjb25maWcnO1xuY29uc3QgSE9TVF9QT1JUX1JBTkdFID0gWzM4MjAwLCAzODI5OV07XG5jb25zdCBUTVBTRVJWRVJfU1RBUlRVUF9USU1FT1VUID0gNTAwMDtcbmNvbnN0IFNldHRpbmdzID0ge1xuICBHZW5lcmFsOiB7XG4gICAgdHlwZTogJ2FjY2Vzc2liaWxpdHkgaWQnLFxuICAgIHZhbHVlOiAnR2VuZXJhbCcsXG4gIH0sXG4gIFByb2ZpbGU6IHtcbiAgICB0eXBlOiAnLWlvcyBwcmVkaWNhdGUgc3RyaW5nJyxcbiAgICB2YWx1ZTogYG5hbWUgQkVHSU5TV0lUSCAnUHJvZmlsZSdgLFxuICB9LFxuICBBYm91dDoge1xuICAgIHR5cGU6ICdhY2Nlc3NpYmlsaXR5IGlkJyxcbiAgICB2YWx1ZTogJ0Fib3V0JyxcbiAgfSxcbiAgQ2VydGlmaWNhdGVfVHJ1c3RfU2V0dGluZ3M6IHtcbiAgICB0eXBlOiAnYWNjZXNzaWJpbGl0eSBpZCcsXG4gICAgdmFsdWU6ICdDZXJ0aWZpY2F0ZSBUcnVzdCBTZXR0aW5ncycsXG4gIH0sXG59O1xuY29uc3QgQnV0dG9uID0ge1xuICBJbnN0YWxsOiB7XG4gICAgdHlwZTogJ2FjY2Vzc2liaWxpdHkgaWQnLFxuICAgIHZhbHVlOiAnSW5zdGFsbCcsXG4gIH0sXG4gIEFsbG93OiB7XG4gICAgdHlwZTogJ2FjY2Vzc2liaWxpdHkgaWQnLFxuICAgIHZhbHVlOiAnQWxsb3cnLFxuICB9LFxuICBEb25lOiB7XG4gICAgdHlwZTogJ2FjY2Vzc2liaWxpdHkgaWQnLFxuICAgIHZhbHVlOiAnRG9uZScsXG4gIH0sXG4gIFJldHVybl90b19TZXR0aW5nczoge1xuICAgIHR5cGU6ICdhY2Nlc3NpYmlsaXR5IGlkJyxcbiAgICB2YWx1ZTogJ1JldHVybiB0byBTZXR0aW5ncycsXG4gIH0sXG59O1xuY29uc3QgQWxlcnQgPSB7XG4gIEluc3RhbGw6IHtcbiAgICB0eXBlOiAnLWlvcyBjbGFzcyBjaGFpbicsXG4gICAgdmFsdWU6ICcqKi9YQ1VJRWxlbWVudFR5cGVBbnlbYHR5cGUgPT0gXFwnWENVSUVsZW1lbnRUeXBlQWxlcnRcXCcgT1IgdHlwZSA9PSBcXCdYQ1VJRWxlbWVudFR5cGVTaGVldFxcJ2BdLyoqL1hDVUlFbGVtZW50VHlwZUJ1dHRvbltgbGFiZWwgPT0gXFwnSW5zdGFsbFxcJ2BdJyxcbiAgfSxcbn07XG5cblxuYXN5bmMgZnVuY3Rpb24gZXh0cmFjdENvbW1vbk5hbWUgKGNlcnRCdWZmZXIpIHtcbiAgY29uc3QgdGVtcENlcnQgPSBhd2FpdCB0ZW1wRGlyLm9wZW4oe1xuICAgIHByZWZpeDogJ2NlcnQnLFxuICAgIHN1ZmZpeDogJy5jZXInXG4gIH0pO1xuICB0cnkge1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZSh0ZW1wQ2VydC5wYXRoLCBjZXJ0QnVmZmVyKTtcbiAgICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IGV4ZWMoJ29wZW5zc2wnLCBbJ3g1MDknLCAnLW5vb3V0JywgJy1zdWJqZWN0JywgJy1pbicsIHRlbXBDZXJ0LnBhdGhdKTtcbiAgICByZXR1cm4gcGFyc2VDb21tb25OYW1lKHN0ZG91dCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHBhcnNlIGNvbW1vbiBuYW1lIHZhbHVlIGZyb20gdGhlIGNlcnRpZmljYXRlLiBJcyBpdCB2YWxpZCBhbmQgYmFzZTY0LWVuY29kZWQ/IGAgK1xuICAgICAgICAgICAgICAgICAgICBgT3JpZ2luYWwgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgZnMucmltcmFmKHRlbXBDZXJ0LnBhdGgpO1xuICB9XG59XG5cbmNvbnN0IExJQlJFX1NTTF9QQVRURVJOID0gL1xcL0NOPShbXlxcL10rKS87IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdXNlbGVzcy1lc2NhcGVcbmNvbnN0IE9QRU5fU1NMX1BBVFRFUk4gPSAvLFxcc0NOXFxzPVxccyhbXixdKykvO1xuXG5mdW5jdGlvbiBwYXJzZUNvbW1vbk5hbWUgKHN0cmluZ0NlcnRpZmljYXRlKSB7XG4gIGNvbnN0IHJlc3VsdCA9IFtMSUJSRV9TU0xfUEFUVEVSTiwgT1BFTl9TU0xfUEFUVEVSTl0ucmVkdWNlKChhY2MsIHIpID0+IHtcbiAgICBpZiAoYWNjKSB7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH1cbiAgICBjb25zdCBtYXRjaCA9IHIuZXhlYyhzdHJpbmdDZXJ0aWZpY2F0ZSk7XG4gICAgcmV0dXJuIG1hdGNoICYmIG1hdGNoWzFdO1xuICB9LCBudWxsKTtcbiAgaWYgKCFyZXN1bHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZXJlIGlzIG5vIGNvbW1vbiBuYW1lIHZhbHVlIGluICcke3N0cmluZ0NlcnRpZmljYXRlfScgb3V0cHV0YCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgQXBwbGUncyBvdmVyLXRoZS1haXIgY29uZmlndXJhdGlvbiBwcm9maWxlXG4gKiBmb3IgY2VydGlmaWNhdGUgZGVwbG95bWVudCBiYXNlZCBvbiB0aGUgZ2l2ZW4gUEVNIGNlcnRpZmljYXRlIGNvbnRlbnQuXG4gKiBSZWFkIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9saWJyYXJ5L2NvbnRlbnQvZG9jdW1lbnRhdGlvbi9OZXR3b3JraW5nSW50ZXJuZXQvQ29uY2VwdHVhbC9pUGhvbmVPVEFDb25maWd1cmF0aW9uL0ludHJvZHVjdGlvbi9JbnRyb2R1Y3Rpb24uaHRtbFxuICogZm9yIG1vcmUgZGV0YWlscyBvbiBzdWNoIHByb2ZpbGVzLlxuICpcbiAqIEBwYXJhbSB7QnVmZmVyfSBjZXJ0QnVmZmVyIC0gVGhlIGFjdHVhbCBjb250ZW50IG9mIFBFTSBjZXJ0aWZpY2F0ZSBlbmNvZGVkIGludG8gTm9kZUpTIGJ1ZmZlclxuICogQHBhcmFtIHtzdHJpbmd9IGNvbW1vbk5hbWUgLSBDZXJ0aWZpY2F0ZSdzIGNvbW1vbiBuYW1lXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgZW5jb2RlZCBzdHJ1Y3R1cmUgb2YgdGhlIGdpdmVuIGNlcnRpZmljYXRlLCB3aGljaCBpcyByZWFkeSB0byBiZSBwYXNzZWRcbiAqIGFzIGFuIGFyZ3VtZW50IHRvIHBsaXN0IGJ1aWxkZXJcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZ2l2ZW4gY2VydGlmaWNhdGUgY2Fubm90IGJlIHBhcnNlZFxuICovXG5mdW5jdGlvbiB0b01vYmlsZUNvbmZpZyAoY2VydEJ1ZmZlciwgY29tbW9uTmFtZSkge1xuICBjb25zdCBnZXRVVUlEID0gKCkgPT4gdXRpbC51dWlkVjQoKS50b1VwcGVyQ2FzZSgpO1xuICBjb25zdCBjb250ZW50VXVpZCA9IGdldFVVSUQoKTtcbiAgcmV0dXJuIHtcbiAgICBQYXlsb2FkQ29udGVudDogW3tcbiAgICAgIFBheWxvYWRDZXJ0aWZpY2F0ZUZpbGVOYW1lOiBgJHtjb21tb25OYW1lfS5jZXJgLFxuICAgICAgUGF5bG9hZENvbnRlbnQ6IGNlcnRCdWZmZXIsXG4gICAgICBQYXlsb2FkRGVzY3JpcHRpb246ICdBZGRzIGEgQ0Egcm9vdCBjZXJ0aWZpY2F0ZScsXG4gICAgICBQYXlsb2FkRGlzcGxheU5hbWU6IGNvbW1vbk5hbWUsXG4gICAgICBQYXlsb2FkSWRlbnRpZmllcjogYGNvbS5hcHBsZS5zZWN1cml0eS5yb290LiR7Y29udGVudFV1aWR9YCxcbiAgICAgIFBheWxvYWRUeXBlOiAnY29tLmFwcGxlLnNlY3VyaXR5LnJvb3QnLFxuICAgICAgUGF5bG9hZFVVSUQ6IGNvbnRlbnRVdWlkLFxuICAgICAgUGF5bG9hZFZlcnNpb246IDFcbiAgICB9XSxcbiAgICBQYXlsb2FkRGlzcGxheU5hbWU6IGNvbW1vbk5hbWUsXG4gICAgUGF5bG9hZElkZW50aWZpZXI6IGAke29zLmhvc3RuYW1lKCkuc3BsaXQoJy4nKVswXX0uJHtnZXRVVUlEKCl9YCxcbiAgICBQYXlsb2FkUmVtb3ZhbERpc2FsbG93ZWQ6IGZhbHNlLFxuICAgIFBheWxvYWRUeXBlOiAnQ29uZmlndXJhdGlvbicsXG4gICAgUGF5bG9hZFVVSUQ6IGdldFVVSUQoKSxcbiAgICBQYXlsb2FkVmVyc2lvbjogMVxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBjbGlja0VsZW1lbnQgKGRyaXZlciwgbG9jYXRvciwgb3B0aW9ucyA9IHt9KSB7XG4gIGxldCBlbGVtZW50ID0gbnVsbDtcbiAgY29uc3Qge1xuICAgIHRpbWVvdXQgPSA1MDAwLFxuICAgIHNraXBJZkludmlzaWJsZSA9IGZhbHNlXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBsb29rdXBEZWxheSA9IDUwMDtcbiAgdHJ5IHtcbiAgICBlbGVtZW50ID0gYXdhaXQgcmV0cnlJbnRlcnZhbCh0aW1lb3V0IDwgbG9va3VwRGVsYXkgPyAxIDogdGltZW91dCAvIGxvb2t1cERlbGF5LCBsb29rdXBEZWxheSxcbiAgICAgICgpID0+IGRyaXZlci5maW5kTmF0aXZlRWxlbWVudE9yRWxlbWVudHMobG9jYXRvci50eXBlLCBsb2NhdG9yLnZhbHVlLCBmYWxzZSlcbiAgICApO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoc2tpcElmSW52aXNpYmxlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgJHtKU09OLnN0cmluZ2lmeShsb2NhdG9yKX0gd2l0aGluICR7dGltZW91dH1tcyB0aW1lb3V0YCk7XG4gIH1cbiAgYXdhaXQgZHJpdmVyLm5hdGl2ZUNsaWNrKGVsZW1lbnQpO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5zdGFsbFByZTEyMkNlcnRpZmljYXRlIChkcml2ZXIpIHtcbiAgLy8gQWNjZXB0IFNhZmFyaSBhbGVydFxuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBCdXR0b24uQWxsb3csIHtcbiAgICAvLyBjZXJ0aWZpY2F0ZSBsb2FkIG1pZ2h0IHRha2Ugc29tZSB0aW1lIG9uIHNsb3cgbWFjaGluZXNcbiAgICB0aW1lb3V0OiAxNTAwMCxcbiAgfSk7XG4gIC8vIFdhaXQgdW50aWwgUHJlZmVyZW5jZXMgYXJlIG9wZW5lZFxuICBhd2FpdCBCLmRlbGF5KDIwMDApO1xuXG4gIC8vIEdvIHRocm91Z2ggUHJlZmVyZW5jZXMgd2l6YXJkXG4gIGlmICghYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgQnV0dG9uLkluc3RhbGwsIHtcbiAgICBza2lwSWZJbnZpc2libGU6IHRydWUsXG4gIH0pKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIFdlIG5lZWQgdG8gY2xpY2sgSW5zdGFsbCBidXR0b24gb24gdHdvIGRpZmZlcmVudCB0YWJzXG4gIC8vIFRoZSBzZWNvbmQgb25lIGNvbmZpcm1zIHRoZSBwcmV2aW91c1xuICBhd2FpdCBCLmRlbGF5KDE1MDApO1xuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBCdXR0b24uSW5zdGFsbCk7XG4gIC8vIEFjY2VwdCBhbGVydFxuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBBbGVydC5JbnN0YWxsKTtcbiAgLy8gRmluaXNoIGFkZGluZyBjZXJ0aWZpY2F0ZVxuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBCdXR0b24uRG9uZSk7XG4gIHJldHVybiB0cnVlO1xufVxuXG5hc3luYyBmdW5jdGlvbiB0cnVzdENlcnRpZmljYXRlSW5QcmVmZXJlbmNlcyAoZHJpdmVyLCBuYW1lKSB7XG4gIGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIFNldHRpbmdzLkdlbmVyYWwpO1xuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBTZXR0aW5ncy5BYm91dCk7XG4gIGNvbnN0IHN3aXRjaExvY2F0b3IgPSB7XG4gICAgdHlwZTogJy1pb3MgY2xhc3MgY2hhaW4nLFxuICAgIHZhbHVlOiBgKiovWENVSUVsZW1lbnRUeXBlQ2VsbFtcXGBsYWJlbCA9PSAnJHtuYW1lfSdcXGBdLyoqL1hDVUlFbGVtZW50VHlwZVN3aXRjaGAsXG4gIH07XG4gIGF3YWl0IHJldHJ5KDUsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBkcml2ZXIubW9iaWxlU3dpcGUoe1xuICAgICAgZWxlbWVudDogYXdhaXQgZHJpdmVyLmZpbmROYXRpdmVFbGVtZW50T3JFbGVtZW50cygnY2xhc3MgbmFtZScsICdYQ1VJRWxlbWVudFR5cGVUYWJsZScsIGZhbHNlKSxcbiAgICAgIGRpcmVjdGlvbjogJ3VwJ1xuICAgIH0pO1xuICAgIGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIFNldHRpbmdzLkNlcnRpZmljYXRlX1RydXN0X1NldHRpbmdzLCB7XG4gICAgICB0aW1lb3V0OiA1MDAsXG4gICAgfSk7XG5cbiAgICBhd2FpdCBkcml2ZXIuZmluZE5hdGl2ZUVsZW1lbnRPckVsZW1lbnRzKHN3aXRjaExvY2F0b3IudHlwZSwgc3dpdGNoTG9jYXRvci52YWx1ZSwgZmFsc2UpO1xuICB9KTtcbiAgLy8gT25seSBjbGljayB0aGUgc3dpdGNoIGlmIGl0IGlzIHNldCB0byBPZmZcbiAgaWYgKGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIHtcbiAgICB0eXBlOiBzd2l0Y2hMb2NhdG9yLnR5cGUsXG4gICAgdmFsdWU6IGAke3N3aXRjaExvY2F0b3IudmFsdWV9W1xcYHZhbHVlID09ICcwJ1xcYF1gXG4gIH0sIHtcbiAgICB0aW1lb3V0OiAxMDAwLFxuICAgIHNraXBJZkludmlzaWJsZTogdHJ1ZSxcbiAgfSkpIHtcbiAgICBhd2FpdCBkcml2ZXIucG9zdEFjY2VwdEFsZXJ0KCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5zdGFsbFBvc3QxMjJDZXJ0aWZpY2F0ZSAoZHJpdmVyLCBuYW1lKSB7XG4gIC8vIEFjY2VwdCBTYWZhcmkgYWxlcnRcbiAgYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgQnV0dG9uLkFsbG93LCB7XG4gICAgLy8gY2VydGlmaWNhdGUgbG9hZCBtaWdodCB0YWtlIHNvbWUgdGltZSBvbiBzbG93IG1hY2hpbmVzXG4gICAgdGltZW91dDogMTUwMDAsXG4gIH0pO1xuICAvLyBXYWl0IGZvciB0aGUgc2Vjb25kIGFsZXJ0XG4gIGF3YWl0IEIuZGVsYXkoMjAwMCk7XG5cbiAgYXdhaXQgZHJpdmVyLnBvc3RBY2NlcHRBbGVydCgpO1xuICBhd2FpdCBkcml2ZXIuYWN0aXZhdGVBcHAoJ2NvbS5hcHBsZS5QcmVmZXJlbmNlcycpO1xuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBTZXR0aW5ncy5HZW5lcmFsKTtcbiAgYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgU2V0dGluZ3MuUHJvZmlsZSk7XG4gIC8vIFNlbGVjdCB0aGUgdGFyZ2V0IGNlcnRcbiAgbGV0IGlzQ2VydEZvdW5kID0gZmFsc2U7XG4gIGZvciAobGV0IHN3aXBlTnVtID0gMDsgc3dpcGVOdW0gPCA1OyArK3N3aXBlTnVtKSB7XG4gICAgaWYgKGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIHtcbiAgICAgIHR5cGU6ICctaW9zIGNsYXNzIGNoYWluJyxcbiAgICAgIHZhbHVlOiBgKiovWENVSUVsZW1lbnRUeXBlQ2VsbFtcXGBsYWJlbCA9PSAnJHtuYW1lfSdcXGBdYCxcbiAgICB9LCB7XG4gICAgICB0aW1lb3V0OiA1MDAsXG4gICAgICBza2lwSWZJbnZpc2libGU6IHRydWUsXG4gICAgfSkpIHtcbiAgICAgIGlzQ2VydEZvdW5kID0gdHJ1ZTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGF3YWl0IGRyaXZlci5tb2JpbGVTd2lwZSh7XG4gICAgICBlbGVtZW50OiBhd2FpdCBkcml2ZXIuZmluZE5hdGl2ZUVsZW1lbnRPckVsZW1lbnRzKCdjbGFzcyBuYW1lJywgJ1hDVUlFbGVtZW50VHlwZVRhYmxlJywgZmFsc2UpLFxuICAgICAgZGlyZWN0aW9uOiAndXAnXG4gICAgfSk7XG4gIH1cbiAgaWYgKCFpc0NlcnRGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJyR7bmFtZX0nIGNhbm5vdCBiZSBmb3VuZCBpbiB0aGUgY2VydGlmaWNhdGVzIGxpc3RgKTtcbiAgfVxuXG4gIC8vIEluc3RhbGwgb3B0aW9uIGlzIG9ubHkgdmlzaWJsZSBpZiB0aGUgY2VydCBpcyBub3QgaW5zdGFsbGVkIHlldFxuICBpZiAoIWF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIEJ1dHRvbi5JbnN0YWxsLCB7XG4gICAgc2tpcElmSW52aXNpYmxlOiB0cnVlLFxuICB9KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBhd2FpdCBCLmRlbGF5KDE1MDApO1xuICAvLyBDb25maXJtIHVudHJ1c3RlZCBjZXJ0IGluc3RhbGxcbiAgYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgQnV0dG9uLkluc3RhbGwpO1xuICAvLyBBY2NlcHQgYWxlcnRcbiAgYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgQWxlcnQuSW5zdGFsbCk7XG4gIC8vIEZpbmlzaCBhZGRpbmcgY2VydGlmaWNhdGVcbiAgYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgQnV0dG9uLkRvbmUpO1xuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IENlcnRpZmljYXRlSW5zdGFsbGF0aW9uT3B0aW9uc1xuICpcbiAqIEBwcm9wZXJ0eSB7IXN0cmluZ30gY29udGVudCAtIEJhc2U2NC1lbmNvZGVkIGNvbnRlbnQgb2YgdGhlIHB1YmxpYyBjZXJ0aWZpY2F0ZVxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBjb21tb25OYW1lIC0gQ29tbW9uIG5hbWUgb2YgdGhlIGNlcnRpZmljYXRlLiBJZiB0aGlzIGlzIG5vdCBzZXRcbiAqIHRoZW4gdGhlIHNjcmlwdCB3aWxsIHRyeSB0byBwYXJzZSBpdCBmcm9tIHRoZSBnaXZlbiBjZXJ0aWZpY2F0ZSBjb250ZW50LlxuICogQHByb3BlcnR5IHs/Ym9vbGVhbn0gaXNSb290IFt0cnVlXSAtIFRoaXMgb3B0aW9uIGRlZmluZXMgd2hlcmUgdGhlIGNlcnRpZmljYXRlIHNob3VsZCBiZVxuICogaW5zdGFsbGVkIHRvOiBlaXRoZXIgVHJ1c3RlZCBSb290IFN0b3JlIChgdHJ1ZWAsIHRoZSBkZWZhdWx0IG9wdGlvbikgb3JcbiAqIHRoZSBLZXljaGFpbiAoYGZhbHNlYCkuIE9uIGVudmlyb25tZW50cyBvdGhlciB0aGFuIFhjb2RlIDExLjQrIFNpbXVsYXRvciB0aGlzXG4gKiBvcHRpb24gaXMgaWdub3JlZC5cbiAqL1xuXG4vKipcbiAqIEluc3RhbGxzIGEgY3VzdG9tIGNlcnRpZmljYXRlIG9udG8gdGhlIGRldmljZS5cbiAqIFNpbmNlIFhjb2RlIFNESyAxMS40IEFwcGxlIGhhcyBhZGRlZCBhIGRlZGljYXRlZCBzaW1jdGwgc3ViY29tbWFuZCB0byBxdWlja2x5IGhhbmRsZVxuICogY2VydGlmaWNhdGVzIG9uIFNpbXVsYXRvciBvdmVyIENMSS5cbiAqIE9uIHJlYWwgZGV2aWNlcyBvciBzaW11bGF0b3JzIGJlZm9yZSBYY29kZSAxMS40IFNES1xuICogQXBwbGUgcHJvdmlkZXMgbm8gb2ZmaWNpYWwgd2F5IHRvIGRvIGl0IHZpYSB0aGUgY29tbWFuZCBsaW5lLlxuICogSW4gc3VjaCBjYXNlIChhbmQgYWxzbyBhcyBhIGZhbGxiYWNrIGlmIENMSSBzZXR1cCBmYWlscylcbiAqIHRoaXMgbWV0aG9kIHRyaWVzIHRvIHdyYXAgdGhlIGNlcnRpZmljYXRlIGludG8gLm1vYmlsZWNvbmZpZyBmb3JtYXRcbiAqIGFuZCB0aGVuIGRlcGxveXMgdGhlIHdyYXBwZWQgZmlsZSB0byB0aGUgaW50ZXJuYWwgSFRUUCBzZXJ2ZXIsXG4gKiBzbyBvbmUgY2FuIG9wZW4gaXQgdmlhIG1vYmlsZSBTYWZhcmkuXG4gKiBUaGVuIHRoZSBhbGdvcml0aG0gZ29lcyB0aHJvdWdoIHRoZSBwcm9maWxlIGluc3RhbGxhdGlvbiBwcm9jZWR1cmUgYnlcbiAqIGNsaWNraW5nIHRoZSBuZWNlc3NhcnkgYnV0dG9ucyB1c2luZyBXZWJEcml2ZXJBZ2VudC5cbiAqXG4gKiBAcGFyYW0ge0NlcnRpZmljYXRlSW5zdGFsbGF0aW9uT3B0aW9uc30gb3B0c1xuICogQHJldHVybnMgez9zdHJpbmd9IFRoZSBjb250ZW50IG9mIHRoZSBnZW5lcmF0ZWQgLm1vYmlsZWNvbmZpZyBmaWxlIGFzXG4gKiBiYXNlNjQtZW5jb2RlZCBzdHJpbmcuIFRoaXMgY29uZmlnIG1pZ2h0IGJlIHVzZWZ1bCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLlxuICogSWYgdGhlIGNlcnRpZmljYXRlIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBzZXQgdmlhIENMSSB0aGVuIG5vdGhpbmcgaXMgcmV0dXJuZWQuXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUluc3RhbGxDZXJ0aWZpY2F0ZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUluc3RhbGxDZXJ0aWZpY2F0ZSAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBjb250ZW50LFxuICAgIGNvbW1vbk5hbWUsXG4gICAgaXNSb290ID0gdHJ1ZSxcbiAgfSA9IG9wdHM7XG4gIGlmIChfLmlzRW1wdHkoY29udGVudCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NlcnRpZmljYXRlIGNvbnRlbnQgc2hvdWxkIG5vdCBiZSBlbXB0eScpO1xuICB9XG5cbiAgaWYgKHRoaXMuaXNTaW11bGF0b3IoKSkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtZXRob2ROYW1lID0gaXNSb290ID8gJ2FkZFJvb3RDZXJ0aWZpY2F0ZScgOiAnYWRkQ2VydGlmaWNhdGUnO1xuICAgICAgYXdhaXQgdGhpcy5vcHRzLmRldmljZS5zaW1jdGxbbWV0aG9kTmFtZV0oXG4gICAgICAgIEJ1ZmZlci5mcm9tKGNvbnRlbnQsICdiYXNlNjQnKS50b1N0cmluZygpLCB7cmF3OiB0cnVlfVxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhlKTtcbiAgICAgIHRoaXMubG9nLmluZm8oYFRoZSBjZXJ0aWZpY2F0ZSBjYW5ub3QgYmUgaW5zdGFsbGVkIHZpYSBDTEkuIGAgK1xuICAgICAgICBgRmFsbGluZyBiYWNrIHRvIFVJLWJhc2VkIGRlcGxveW1lbnRgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IFB5aWRldmljZSh0aGlzLm9wdHMudWRpZCk7XG4gICAgaWYgKGF3YWl0IGNsaWVudC5hc3NlcnRFeGlzdHMoZmFsc2UpKSB7XG4gICAgICBhd2FpdCBjbGllbnQuaW5zdGFsbFByb2ZpbGUoe3BheWxvYWQ6IEJ1ZmZlci5mcm9tKGNvbnRlbnQsICdiYXNlNjQnKX0pO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZy5pbmZvKCdweWlkZXZpY2UgaXMgbm90IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS4gJyArXG4gICAgICAgICdGYWxsaW5nIGJhY2sgdG8gdGhlIChzbG93KSBVSS1iYXNlZCBpbnN0YWxsYXRpb24nKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCB0bXBSb290ID0gYXdhaXQgdGVtcERpci5vcGVuRGlyKCk7XG4gIGNvbnN0IHRtcFBvcnQgPSBhd2FpdCBmaW5kQVBvcnROb3RJblVzZShIT1NUX1BPUlRfUkFOR0VbMF0sIEhPU1RfUE9SVF9SQU5HRVsxXSk7XG4gIGNvbnN0IGNvbmZpZ05hbWUgPSBgYXBwaXVtLiR7Q09ORklHX0VYVEVOU0lPTn1gO1xuICBjb25zdCBjb25maWdQYXRoID0gcGF0aC5yZXNvbHZlKHRtcFJvb3QsIGNvbmZpZ05hbWUpO1xuICBjb25zdCB0bXBTZXJ2ZXIgPSBodHRwLmNyZWF0ZVNlcnZlcihhc3luYyBmdW5jdGlvbiAoXywgcmVzKSB7XG4gICAgY29uc3QgY29uZmlnRmlsZSA9IGF3YWl0IGZzLnJlYWRGaWxlKGNvbmZpZ1BhdGgpO1xuICAgIHJlcy5lbmQoY29uZmlnRmlsZSk7XG4gIH0pO1xuICB0cnkge1xuICAgIGNvbnN0IGNlcnRCdWZmZXIgPSBCdWZmZXIuZnJvbShjb250ZW50LCAnYmFzZTY0Jyk7XG4gICAgY29uc3QgY24gPSBjb21tb25OYW1lIHx8IGF3YWl0IGV4dHJhY3RDb21tb25OYW1lKGNlcnRCdWZmZXIpO1xuICAgIGNvbnN0IG1vYmlsZUNvbmZpZyA9IHRvTW9iaWxlQ29uZmlnKGNlcnRCdWZmZXIsIGNuKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcGxpc3QudXBkYXRlUGxpc3RGaWxlKGNvbmZpZ1BhdGgsIG1vYmlsZUNvbmZpZywgZmFsc2UsIGZhbHNlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHN0b3JlIHRoZSBnZW5lcmF0ZWQgY29uZmlnIGFzICcke2NvbmZpZ1BhdGh9Jy4gYCArXG4gICAgICAgICAgICAgICAgICAgICAgYE9yaWdpbmFsIGVycm9yOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBob3N0ID0gb3MuaG9zdG5hbWUoKTtcbiAgICAgIGNvbnN0IGNlcnRVcmwgPSBgaHR0cDovLyR7aG9zdH06JHt0bXBQb3J0fS8ke2NvbmZpZ05hbWV9YDtcbiAgICAgIGF3YWl0IHRtcFNlcnZlci5saXN0ZW4odG1wUG9ydCk7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIChhd2FpdCBjaGVja1BvcnRTdGF0dXModG1wUG9ydCwgaG9zdCkpID09PSAnb3Blbic7XG4gICAgICAgICAgfSBjYXRjaCAoaWduKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgd2FpdE1zOiBUTVBTRVJWRVJfU1RBUlRVUF9USU1FT1VULFxuICAgICAgICAgIGludGVydmFsTXM6IDMwMCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKGBUaGUgdGVtcG9yYXJ5IHdlYiBzZXJ2ZXIgaXMgcnVubmluZyBhdCBodHRwOi8vJHtob3N0fToke3RtcFBvcnR9YCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIHRlbXBvcmFyeSB3ZWIgc2VydmVyIGNhbm5vdCBiZSBzdGFydGVkIGF0IGh0dHA6Ly8ke2hvc3R9OiR7dG1wUG9ydH0uYCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc1JlYWxEZXZpY2UoKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvdXJsJywgJ1BPU1QnLCB7dXJsOiBjZXJ0VXJsfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmICh0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgICAgICAgICAvLyBUaGUgY29tbWFuZCBhYm92ZSBkb2VzIG5vdCBhbHdheXMgd29yayBvbiByZWFsIGRldmljZXNcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2V0VXJsKGNlcnRVcmwpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB0aGlzLm9wdHMuZGV2aWNlLm9wZW5VcmwoY2VydFVybCk7XG4gICAgICB9XG5cbiAgICAgIGxldCBpc0NlcnRBbHJlYWR5SW5zdGFsbGVkID0gZmFsc2U7XG4gICAgICBpZiAodXRpbC5jb21wYXJlVmVyc2lvbnModGhpcy5vcHRzLnBsYXRmb3JtVmVyc2lvbiwgJz49JywgJzEyLjInKSkge1xuICAgICAgICBpZiAoYXdhaXQgaW5zdGFsbFBvc3QxMjJDZXJ0aWZpY2F0ZSh0aGlzLCBjbikpIHtcbiAgICAgICAgICBhd2FpdCBjbGlja0VsZW1lbnQodGhpcywgU2V0dGluZ3MuUHJvZmlsZSk7XG4gICAgICAgICAgYXdhaXQgdHJ1c3RDZXJ0aWZpY2F0ZUluUHJlZmVyZW5jZXModGhpcywgY24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzQ2VydEFscmVhZHlJbnN0YWxsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoYXdhaXQgaW5zdGFsbFByZTEyMkNlcnRpZmljYXRlKHRoaXMpKSB7XG4gICAgICAgICAgYXdhaXQgY2xpY2tFbGVtZW50KHRoaXMsIEJ1dHRvbi5SZXR1cm5fdG9fU2V0dGluZ3MpO1xuICAgICAgICAgIGF3YWl0IHRydXN0Q2VydGlmaWNhdGVJblByZWZlcmVuY2VzKHRoaXMsIGNuKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpc0NlcnRBbHJlYWR5SW5zdGFsbGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGlzQ2VydEFscmVhZHlJbnN0YWxsZWQpIHtcbiAgICAgICAgdGhpcy5sb2cuaW5mbyhgSXQgbG9va3MgbGlrZSB0aGUgJyR7Y259JyBjZXJ0aWZpY2F0ZSBoYXMgYmVlbiBhbHJlYWR5IGFkZGVkIHRvIHRoZSBDQSByb290YCk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmICh0aGlzLm9wdHMuYnVuZGxlSWQpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmFjdGl2YXRlQXBwKHRoaXMub3B0cy5idW5kbGVJZCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aGlzLmxvZy53YXJuKGBDYW5ub3QgcmVzdG9yZSB0aGUgYXBwbGljYXRpb24gJyR7dGhpcy5vcHRzLmJ1bmRsZUlkfScuIE9yaWdpbmFsIGVycm9yOiAke2UubWVzc2FnZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAoYXdhaXQgdXRpbC50b0luTWVtb3J5QmFzZTY0KGNvbmZpZ1BhdGgpKS50b1N0cmluZygpO1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IHRtcFNlcnZlci5jbG9zZSgpO1xuICAgIGF3YWl0IGZzLnJpbXJhZih0bXBSb290KTtcbiAgfVxufTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBjb21tYW5kcyk7XG5leHBvcnQgeyBjb21tYW5kcywgcGFyc2VDb21tb25OYW1lIH07XG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFJQSxVQUFVLEdBQUcsRUFBakI7QUFBQSxJQUFxQkMsUUFBUSxHQUFHLEVBQWhDOztBQUVBLE1BQU1DLGdCQUFnQixHQUFHLGNB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
|
|
@@ -29,4 +29,4 @@ var _default = extensions;
|
|
|
29
29
|
exports.default = _default;require('source-map-support').install();
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2NsaXBib2FyZC5qcyIsIm5hbWVzIjpbImV4dGVuc2lvbnMiLCJjb21tYW5kcyIsInNldENsaXBib2FyZCIsImNvbnRlbnQiLCJjb250ZW50VHlwZSIsInByb3h5Q29tbWFuZCIsImdldENsaXBib2FyZCIsIk9iamVjdCIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9jbGlwYm9hcmQuanMiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IGV4dGVuc2lvbnMgPSB7fSwgY29tbWFuZHMgPSB7fTtcblxuXG4vKipcbiAqIFNldHMgdGhlIHByaW1hcnkgY2xpcGJvYXJkJ3MgY29udGVudCBvbiB0aGUgZGV2aWNlIHVuZGVyIHRlc3QuXG4gKlxuICogQHBhcmFtIHshc3RyaW5nfSBjb250ZW50IC0gVGhlIGNvbnRlbnQgdG8gYmUgc2V0IGFzIGJhc2U2NCBlbmNvZGVkIHN0cmluZy5cbiAqIEBwYXJhbSB7P3N0cmluZ30gY29udGVudFR5cGUgW3BsYWludGV4dF0gLSBUaGUgdHlwZSBvZiB0aGUgY29udGVudCB0byBzZXQuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25seSBgcGxhaW50ZXh0YCwgJ2ltYWdlIGFuZCAndXJsJyBhcmUgc3VwcG9ydGVkLlxuICovXG5jb21tYW5kcy5zZXRDbGlwYm9hcmQgPSBhc3luYyBmdW5jdGlvbiBzZXRDbGlwYm9hcmQgKGNvbnRlbnQsIGNvbnRlbnRUeXBlKSB7XG4gIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvd2RhL3NldFBhc3RlYm9hcmQnLCAnUE9TVCcsIHtcbiAgICBjb250ZW50LFxuICAgIGNvbnRlbnRUeXBlLFxuICB9KTtcbn07XG5cbi8qKlxuICogR2V0cyB0aGUgY29udGVudCBvZiB0aGUgcHJpbWFyeSBjbGlwYm9hcmQgb24gdGhlIGRldmljZSB1bmRlciB0ZXN0LlxuICpcbiAqIEBwYXJhbSB7P3N0cmluZ30gY29udGVudFR5cGUgW3BsYWludGV4dF0gLSBUaGUgdHlwZSBvZiB0aGUgY29udGVudCB0byBnZXQuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25seSBgcGxhaW50ZXh0YCwgJ2ltYWdlIGFuZCAndXJsJyBhcmUgc3VwcG9ydGVkLlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGFjdHVhbCBjbGlwYm9hcmQgY29udGVudCBlbmNvZGVkIGludG8gYmFzZTY0IHN0cmluZy5cbiAqIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBpZiB0aGUgY2xpcGJvYXJkIGNvbnRhaW5zIG5vIGRhdGEuXG4gKi9cbmNvbW1hbmRzLmdldENsaXBib2FyZCA9IGFzeW5jIGZ1bmN0aW9uIGdldENsaXBib2FyZCAoY29udGVudFR5cGUpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvd2RhL2dldFBhc3RlYm9hcmQnLCAnUE9TVCcsIHtcbiAgICBjb250ZW50VHlwZSxcbiAgfSk7XG59O1xuXG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMpO1xuZXhwb3J0IHsgY29tbWFuZHMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUlBLFVBQVUsR0FBRyxFQUFqQjtBQUFBLElBQXFCQyxRQUFRLEdBQUcsRUFBaEM7OztBQVVBQSxRQUFRLENBQUNDLFlBQVQsR0FBd0IsZUFBZUEsWUFBZixDQUE2QkMsT0FBN0IsRUFBc0NDLFdBQXRDLEVBQW1EO0VBQ3pFLE1BQU0sS0FBS0MsWUFBTCxDQUFrQixvQkFBbEIsRUFBd0MsTUFBeEMsRUFBZ0Q7SUFDcERGLE9BRG9EO0lBRXBEQztFQUZvRCxDQUFoRCxDQUFOO0FBSUQsQ0FMRDs7QUFlQUgsUUFBUSxDQUFDSyxZQUFULEdBQXdCLGVBQWVBLFlBQWYsQ0FBNkJGLFdBQTdCLEVBQTBDO0VBQ2hFLE9BQU8sTUFBTSxLQUFLQyxZQUFMLENBQWtCLG9CQUFsQixFQUF3QyxNQUF4QyxFQUFnRDtJQUMzREQ7RUFEMkQsQ0FBaEQsQ0FBYjtBQUdELENBSkQ7O0FBT0FHLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjUixVQUFkLEVBQTBCQyxRQUExQjtlQUVlRCxVIn0=
|