testcafe 3.6.0 → 3.6.1
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/lib/browser/provider/built-in/dedicated/base.js +7 -1
- package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/index.js +39 -1
- package/lib/browser/provider/built-in/dedicated/chrome/index.js +9 -1
- package/lib/browser/provider/built-in/dedicated/chrome/interfaces.js +1 -1
- package/lib/browser/provider/index.js +9 -3
- package/lib/test-run/browser-manipulation-queue.js +5 -4
- package/lib/test-run/index.js +2 -2
- package/package.json +8 -14
|
@@ -81,6 +81,12 @@ exports.default = {
|
|
|
81
81
|
const maximumSize = (0, get_maximized_headless_window_size_1.default)();
|
|
82
82
|
await this.resizeWindow(browserId, maximumSize.width, maximumSize.height, maximumSize.width, maximumSize.height);
|
|
83
83
|
},
|
|
84
|
+
async maximizeWindowNativeAutomation(browserId) {
|
|
85
|
+
await this.maximizeWindowNativeAutomation(browserId);
|
|
86
|
+
},
|
|
87
|
+
async resizeWindowNativeAutomation(browserId, width, height, currentWidth, currentHeight) {
|
|
88
|
+
await this.resizeBounds(browserId, width, height, currentWidth, currentHeight);
|
|
89
|
+
},
|
|
84
90
|
async closeBrowserChildWindow(browserId, windowId) {
|
|
85
91
|
const runtimeInfo = this.openedBrowsers[browserId];
|
|
86
92
|
const browserClient = this._getBrowserProtocolClient(runtimeInfo);
|
|
@@ -88,4 +94,4 @@ exports.default = {
|
|
|
88
94
|
},
|
|
89
95
|
};
|
|
90
96
|
module.exports = exports.default;
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9icm93c2VyL3Byb3ZpZGVyL2J1aWx0LWluL2RlZGljYXRlZC9iYXNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUVBQXdEO0FBQ3hELHdIQUE0RjtBQUM1Rix1REFBOEQ7QUFDOUQsbUZBQTRFO0FBRTVFLGtCQUFlO0lBQ1gsY0FBYyxFQUFFLEVBQUU7SUFFbEIsY0FBYyxFQUFFLEtBQUs7SUFFckIsc0JBQXNCLEVBQUUsSUFBSTtJQUU1QixpQkFBaUIsQ0FBRSxTQUFTO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLENBQUM7SUFDekQsQ0FBQztJQUVELG1CQUFtQixDQUFFLFNBQVM7O1FBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxHQUFHLE1BQUEsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxnQkFBZ0IsMENBQUUsUUFBUSxDQUFDO0lBQzlHLENBQUM7SUFFRCxpQkFBaUIsQ0FBRSxTQUFTLEVBQUUsR0FBRztRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUM7SUFDeEQsQ0FBQztJQUVELFlBQVksQ0FBRSxTQUFTO1FBQ25CLE1BQU0sV0FBVyxHQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUUzRSxPQUFPLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxtQkFBbUIsQ0FBRSxTQUFTO1FBQzFCLE1BQU0sV0FBVyxH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LElBQUEsNENBQThCLEdBQUUsQ0FBQztRQUVyRCxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNySCxDQUFDO0lBRUQsS0FBSyxDQUFDLDhCQUE4QixDQUFFLFNBQVM7UUFDM0MsTUFBTSxJQUFJLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELEtBQUssQ0FBQyw0QkFBNEIsQ0FBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsYUFBYTtRQUNyRixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxLQUFLLENBQUMsdUJBQXVCLENBQUUsU0FBUyxFQUFFLFFBQVE7UUFDOUMsTUFBTSxXQUFXLEdBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbEUsT0FBTyxhQUFhLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0QsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRCcm93c2VySW5mbyB9IGZyb20gJ3Rlc3RjYWZlLWJyb3dzZXItdG9vbHMnO1xuaW1wb3J0IGdldE1heGltaXplZEhlYWRsZXNzV2luZG93U2l6ZSBmcm9tICcuLi8uLi91dGlscy9nZXQtbWF4aW1pemVkLWhlYWRsZXNzLXdpbmRvdy1zaXplJztcbmltcG9ydCB7IGNyb3BTY3JlZW5zaG90IH0gZnJvbSAnLi4vLi4vLi4vLi4vc2NyZWVuc2hvdHMvY3JvcCc7XG5pbXBvcnQgeyByZWFkUG5nLCB3cml0ZVBuZyB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL3Byb21pc2lmaWVkLWZ1bmN0aW9ucyc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBvcGVuZWRCcm93c2Vyczoge30sXG5cbiAgICBpc011bHRpQnJvd3NlcjogZmFsc2UsXG5cbiAgICBzdXBwb3J0TXVsdGlwbGVXaW5kb3dzOiB0cnVlLFxuXG4gICAgZ2V0QWN0aXZlV2luZG93SWQgKGJyb3dzZXJJZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdLmFjdGl2ZVdpbmRvd0lkO1xuICAgIH0sXG5cbiAgICByZXNldEFjdGl2ZVdpbmRvd0lkIChicm93c2VySWQpIHtcbiAgICAgICAgdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdLmFjdGl2ZVdpbmRvd0lkID0gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdLm5hdGl2ZUF1dG9tYXRpb24/LndpbmRvd0lkO1xuICAgIH0sXG5cbiAgICBzZXRBY3RpdmVXaW5kb3dJZCAoYnJvd3NlcklkLCB2YWwpIHtcbiAgICAgICAgdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdLmFjdGl2ZVdpbmRvd0lkID0gdmFsO1xuICAgIH0sXG5cbiAgICBnZXRQYWdlVGl0bGUgKGJyb3dzZXJJZCkge1xuICAgICAgICBjb25zdCBydW50aW1lSW5mbyAgICAgPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG4gICAgICAgIGNvbnN0IGlzSWRsZVBhZ2VTaG93biA9ICFPYmplY3Qua2V5cyhydW50aW1lSW5mby53aW5kb3dEZXNjcmlwdG9ycykubGVuZ3RoO1xuXG4gICAgICAgIHJldHVybiBpc0lkbGVQYWdlU2hvd24gPyBicm93c2VySWQgOiBydW50aW1lSW5mby5hY3RpdmVXaW5kb3dJZDtcbiAgICB9LFxuXG4gICAgZ2V0V2luZG93RGVzY3JpcHRvciAoYnJvd3NlcklkKSB7XG4gICAgICAgIGNvbnN0IHJ1bnRpbWVJbmZvID0gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdO1xuXG4gICAgICAgIHJldHVybiBydW50aW1lSW5mby53aW5kb3dEZXNjcmlwdG9yc1tydW50aW1lSW5mby5hY3RpdmVXaW5kb3dJZF07XG4gICAgfSxcblxuICAgIHNldFdpbmRvd0Rlc2NyaXB0b3IgKGJyb3dzZXJJZCwgd2luZG93RGVzY3JpcHRvcikge1xuICAgICAgICBjb25zdCBydW50aW1lSW5mbyA9IHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcblxuICAgICAgICBydW50aW1lSW5mby53aW5kb3dEZXNjcmlwdG9yc1tydW50aW1lSW5mby5hY3RpdmVXaW5kb3dJZF0gPSB3aW5kb3dEZXNjcmlwdG9yO1xuICAgIH0sXG5cbiAgICBnZXRDb25maWcgKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH0sXG5cbiAgICBfZ2V0QnJvd3NlclByb3RvY29sQ2xpZW50ICgvKiBydW50aW1lSW5mbyAqLykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH0sXG5cbiAgICBfZ2V0QnJvd3Nlck5hbWUgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm92aWRlck5hbWUucmVwbGFjZSgnOicsICcnKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgaXNWYWxpZEJyb3dzZXJOYW1lIChicm93c2VyTmFtZSkge1xuICAgICAgICBjb25zdCBjb25maWcgICAgICA9IGF3YWl0IHRoaXMuZ2V0Q29uZmlnKGJyb3dzZXJOYW1lKTtcbiAgICAgICAgY29uc3QgYnJvd3NlckluZm8gPSBhd2FpdCBnZXRCcm93c2VySW5mbyhjb25maWcucGF0aCB8fCB0aGlzLl9nZXRCcm93c2VyTmFtZSgpKTtcblxuICAgICAgICByZXR1cm4gISFicm93c2VySW5mbztcbiAgICB9LFxuXG4gICAgYXN5bmMgaXNMb2NhbEJyb3dzZXIgKCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuXG4gICAgaXNIZWFkbGVzc0Jyb3dzZXIgKGJyb3dzZXJJZCwgYnJvd3Nlck5hbWUpIHtcbiAgICAgICAgaWYgKGJyb3dzZXJJZClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF0uY29uZmlnLmhlYWRsZXNzO1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuZ2V0Q29uZmlnKGJyb3dzZXJOYW1lKTtcblxuICAgICAgICByZXR1cm4gISFjb25maWcuaGVhZGxlc3M7XG4gICAgfSxcblxuICAgIF9nZXRDcm9wRGltZW5zaW9ucyAodmlld3BvcnRXaWR0aCwgdmlld3BvcnRIZWlnaHQpIHtcbiAgICAgICAgaWYgKCF2aWV3cG9ydFdpZHRoIHx8ICF2aWV3cG9ydEhlaWdodClcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsZWZ0OiAgIDAsXG4gICAgICAgICAgICB0b3A6ICAgIDAsXG4gICAgICAgICAgICByaWdodDogIHZpZXdwb3J0V2lkdGgsXG4gICAgICAgICAgICBib3R0b206IHZpZXdwb3J0SGVpZ2h0LFxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBhc3luYyB0YWtlU2NyZWVuc2hvdCAoYnJvd3NlcklkLCBwYXRoLCB2aWV3cG9ydFdpZHRoLCB2aWV3cG9ydEhlaWdodCwgZnVsbFBhZ2UpIHtcbiAgICAgICAgY29uc3QgcnVudGltZUluZm8gICAgPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG4gICAgICAgIGNvbnN0IGJyb3dzZXJDbGllbnQgID0gdGhpcy5fZ2V0QnJvd3NlclByb3RvY29sQ2xpZW50KHJ1bnRpbWVJbmZvKTtcbiAgICAgICAgY29uc3QgYmluYXJ5SW1hZ2UgICAgPSBhd2FpdCBicm93c2VyQ2xpZW50LmdldFNjcmVlbnNob3REYXRhKGZ1bGxQYWdlKTtcbiAgICAgICAgY29uc3QgY3JvcERpbWVuc2lvbnMgPSB0aGlzLl9nZXRDcm9wRGltZW5zaW9ucyh2aWV3cG9ydFdpZHRoLCB2aWV3cG9ydEhlaWdodCk7XG5cbiAgICAgICAgbGV0IHBuZ0ltYWdlID0gYXdhaXQgcmVhZFBuZyhiaW5hcnlJbWFnZSk7XG5cbiAgICAgICAgaWYgKCFmdWxsUGFnZSlcbiAgICAgICAgICAgIHBuZ0ltYWdlID0gYXdhaXQgY3JvcFNjcmVlbnNob3QocG5nSW1hZ2UsIHsgcGF0aCwgY3JvcERpbWVuc2lvbnMgfSkgfHwgcG5nSW1hZ2U7XG5cbiAgICAgICAgYXdhaXQgd3JpdGVQbmcocGF0aCwgcG5nSW1hZ2UpO1xuICAgIH0sXG5cbiAgICBhc3luYyBtYXhpbWl6ZVdpbmRvdyAoYnJvd3NlcklkKSB7XG4gICAgICAgIGNvbnN0IG1heGltdW1TaXplID0gZ2V0TWF4aW1pemVkSGVhZGxlc3NXaW5kb3dTaXplKCk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5yZXNpemVXaW5kb3coYnJvd3NlcklkLCBtYXhpbXVtU2l6ZS53aWR0aCwgbWF4aW11bVNpemUuaGVpZ2h0LCBtYXhpbXVtU2l6ZS53aWR0aCwgbWF4aW11bVNpemUuaGVpZ2h0KTtcbiAgICB9LFxuXG4gICAgYXN5bmMgbWF4aW1pemVXaW5kb3dOYXRpdmVBdXRvbWF0aW9uIChicm93c2VySWQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5tYXhpbWl6ZVdpbmRvd05hdGl2ZUF1dG9tYXRpb24oYnJvd3NlcklkKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgcmVzaXplV2luZG93TmF0aXZlQXV0b21hdGlvbiAoYnJvd3NlcklkLCB3aWR0aCwgaGVpZ2h0LCBjdXJyZW50V2lkdGgsIGN1cnJlbnRIZWlnaHQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5yZXNpemVCb3VuZHMoYnJvd3NlcklkLCB3aWR0aCwgaGVpZ2h0LCBjdXJyZW50V2lkdGgsIGN1cnJlbnRIZWlnaHQpO1xuICAgIH0sXG5cbiAgICBhc3luYyBjbG9zZUJyb3dzZXJDaGlsZFdpbmRvdyAoYnJvd3NlcklkLCB3aW5kb3dJZCkge1xuICAgICAgICBjb25zdCBydW50aW1lSW5mbyAgID0gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdO1xuICAgICAgICBjb25zdCBicm93c2VyQ2xpZW50ID0gdGhpcy5fZ2V0QnJvd3NlclByb3RvY29sQ2xpZW50KHJ1bnRpbWVJbmZvKTtcblxuICAgICAgICByZXR1cm4gYnJvd3NlckNsaWVudC5jbG9zZUJyb3dzZXJDaGlsZFdpbmRvdyh3aW5kb3dJZCk7XG4gICAgfSxcbn07XG4iXX0=
|
|
@@ -143,6 +143,44 @@ class BrowserClient {
|
|
|
143
143
|
}, elapsedTime => this._checkDropOfPerformance(elapsed_upperbounds_1.CheckedCDPMethod.SetVisibleSize, elapsedTime));
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
|
+
async maximizeWindowNativeAutomation() {
|
|
147
|
+
const target = await (0, utils_1.getFirstTab)(this._port);
|
|
148
|
+
const client = await this.getActiveClient();
|
|
149
|
+
if (client) {
|
|
150
|
+
const windowParams = await client.Browser.getWindowForTarget({ targetId: target.id });
|
|
151
|
+
await client.Browser.setWindowBounds({ windowId: windowParams.windowId, bounds: { windowState: 'maximized' } });
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
async resizeBounds(newDimensions) {
|
|
155
|
+
const { viewportSize, config } = this._runtimeInfo;
|
|
156
|
+
let nonClientWidth = 0;
|
|
157
|
+
let nonClientHeight = 0;
|
|
158
|
+
if (viewportSize.outerWidth && viewportSize.outerHeight) {
|
|
159
|
+
nonClientWidth = viewportSize.outerWidth - viewportSize.width;
|
|
160
|
+
nonClientHeight = viewportSize.outerHeight - viewportSize.height;
|
|
161
|
+
}
|
|
162
|
+
const target = await (0, utils_1.getFirstTab)(this._port);
|
|
163
|
+
const client = await this.getActiveClient();
|
|
164
|
+
if (client) {
|
|
165
|
+
await this._setDeviceMetricsOverride(client, newDimensions.width, newDimensions.height, 1, config.mobile);
|
|
166
|
+
const windowParams = await client.Browser.getWindowForTarget({ targetId: target.id });
|
|
167
|
+
if (windowParams.bounds.windowState !== 'normal') {
|
|
168
|
+
await client.Browser.setWindowBounds({
|
|
169
|
+
windowId: windowParams.windowId,
|
|
170
|
+
bounds: {
|
|
171
|
+
windowState: 'normal',
|
|
172
|
+
},
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
await client.Browser.setWindowBounds({
|
|
176
|
+
windowId: windowParams.windowId,
|
|
177
|
+
bounds: {
|
|
178
|
+
width: newDimensions.width + nonClientWidth,
|
|
179
|
+
height: newDimensions.height + nonClientHeight,
|
|
180
|
+
},
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
}
|
|
146
184
|
isHeadlessTab() {
|
|
147
185
|
return !!this._parentTarget && this._config.headless;
|
|
148
186
|
}
|
|
@@ -281,4 +319,4 @@ class BrowserClient {
|
|
|
281
319
|
}
|
|
282
320
|
}
|
|
283
321
|
exports.BrowserClient = BrowserClient;
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2NkcC1jbGllbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsZ0RBQXdCO0FBQ3hCLDRDQUFvQjtBQUNwQixzRkFBbUU7QUFDbkUsa0RBQTBCO0FBQzFCLHlFQUF1RjtBQUN2RixzR0FBOEU7QUFROUUsa0VBQXVDO0FBQ3ZDLGdFQUFvRjtBQUNwRix3R0FBOEU7QUFDOUUsMEVBQWtEO0FBTWxELDJFQUk2QztBQUU3QyxtQ0FNbUI7QUFFbkIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxFQUFVLEVBQVUsRUFBRSxDQUFDLDREQUE0RCxFQUFFLEVBQUUsQ0FBQztBQUM3RyxNQUFNLGFBQWEsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFlBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUUzRCxNQUFNLFFBQVEsR0FBRyxJQUFBLGVBQUssRUFBQyxxREFBcUQsQ0FBQyxDQUFDO0FBRTlFLE1BQU0sZUFBZTtJQUlqQixZQUFvQixNQUFnQztRQUNoRCxJQUFJLENBQUMsTUFBTSxHQUFLLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0NBQ0o7QUFFRCxNQUFNLGtCQUFrQixHQUFHO0lBQ3ZCLE1BQU0sRUFBUyxNQUFNO0lBQ3JCLGFBQWEsRUFBRSxDQUFDO0NBQ25CLENBQUM7QUFPVyxRQUFBLHNDQUFzQyxHQUFHLHdDQUF3QyxDQUFDO0FBRS9GLE1BQWEsYUFBYTtJQVN0QixZQUFvQixXQUF3QjtRQVJwQyxhQUFRLEdBQWdDLEVBQUUsQ0FBQztRQU0zQyxxQ0FBZ0MsR0FBRyxLQUFLLENBQUM7UUFHN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7UUFDaEMsSUFB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LEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWhELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSw4Q0FBMEIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVqSCxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsOENBQXNDLEVBQUUsS0FBSyxFQUFDLFVBQVUsRUFBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRW5JLE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQztDQUNKO0FBeFdELHNDQXdXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9jb25maWd1cmF0aW9uL2ludGVyZmFjZXMnO1xuaW1wb3J0IFByb3RvY29sIGZyb20gJ2RldnRvb2xzLXByb3RvY29sJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCByZW1vdGVDaHJvbWUsIHsgVGFyZ2V0SW5mbyB9IGZyb20gJ2Nocm9tZS1yZW1vdGUtaW50ZXJmYWNlJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBHRVRfV0lORE9XX0RJTUVOU0lPTlNfSU5GT19TQ1JJUFQgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9jbGllbnQtZnVuY3Rpb25zJztcbmltcG9ydCBXQVJOSU5HX01FU1NBR0UgZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbm90aWZpY2F0aW9ucy93YXJuaW5nLW1lc3NhZ2UnO1xuXG5pbXBvcnQge1xuICAgIENvbmZpZyxcbiAgICBSdW50aW1lSW5mbyxcbiAgICBUb3VjaENvbmZpZ09wdGlvbnMsXG4gICAgU2l6ZSxcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgcHJldHR5VGltZSBmcm9tICdwcmV0dHktaHJ0aW1lJztcbmltcG9ydCB7IENoZWNrZWRDRFBNZXRob2QsIEVMQVBTRURfVElNRV9VUFBFUkJPVU5EUyB9IGZyb20gJy4uL2VsYXBzZWQtdXBwZXJib3VuZHMnO1xuaW1wb3J0IGd1YXJkVGltZUV4ZWN1dGlvbiBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi91dGlscy9ndWFyZC10aW1lLWV4ZWN1dGlvbic7XG5pbXBvcnQgZGVsYXkgZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vdXRpbHMvZGVsYXknO1xuXG5pbXBvcnQgU3RhcnRTY3JlZW5jYXN0UmVxdWVzdCA9IFByb3RvY29sLlBhZ2UuU3RhcnRTY3JlZW5jYXN0UmVxdWVzdDtcbmltcG9ydCBTY3JlZW5jYXN0RnJhbWVFdmVudCA9IFByb3RvY29sLlBhZ2UuU2NyZWVuY2FzdEZyYW1lRXZlbnQ7XG5pbXBvcnQgeyBOYXRpdmVBdXRvbWF0aW9uSW5pdE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvdHlwZXMnO1xuXG5pbXBvcnQge1xuICAgIE5hdGl2ZUF1dG9tYXRpb25CYXNlLFxuICAgIE5hdGl2ZUF1dG9tYXRpb25DaGlsZFdpbmRvdyxcbiAgICBOYXRpdmVBdXRvbWF0aW9uTWFpbldpbmRvdyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbmF0aXZlLWF1dG9tYXRpb24nO1xuXG5pbXBvcnQge1xuICAgIGdldEFjdGl2ZVRhYixcbiAgICBnZXRGaXJzdFRhYixcbiAgICBnZXRUYWJCeUlkLFxuICAgIGdldFRhYnMsXG59XG4gICAgZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IERFQlVHX1NDT1BFID0gKGlkOiBzdHJpbmcpOiBzdHJpbmcgPT4gYHRlc3RjYWZlOmJyb3dzZXI6cHJvdmlkZXI6YnVpbHQtaW46Y2hyb21lOmJyb3dzZXItY2xpZW50OiR7aWR9YDtcbmNvbnN0IERPV05MT0FEU19ESVIgPSBwYXRoLmpvaW4ob3MuaG9tZWRpcigpLCAnRG93bmxvYWRzJyk7XG5cbmNvbnN0IGRlYnVnTG9nID0gZGVidWcoJ3Rlc3RjYWZlOmJyb3dzZXI6cHJvdmlkZXI6YnVpbHQtaW46ZGVkaWNhdGVkOmNocm9tZScpO1xuXG5jbGFzcyBQcm90b2NvbEFwaUluZm8ge1xuICAgIHB1YmxpYyBpbmFjdGl2ZTogYm9vbGVhbjtcbiAgICBwdWJsaWMgY2xpZW50OiByZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKGNsaWVudDogcmVtb3RlQ2hyb21lLlByb3RvY29sQXBpKSB7XG4gICAgICAgIHRoaXMuY2xpZW50ICAgPSBjbGllbnQ7XG4gICAgICAgIHRoaXMuaW5hY3RpdmUgPSBmYWxzZTtcbiAgICB9XG59XG5cbmNvbnN0IFNDUkVFTkNBU1RfT1BUSU9OUyA9IHtcbiAgICBmb3JtYXQ6ICAgICAgICAnanBlZycsXG4gICAgZXZlcnlOdGhGcmFtZTogMSxcbn07XG5cbmludGVyZmFjZSBWaWRlb0ZyYW1lRGF0YSB7XG4gICAgZGF0YTogc3RyaW5nO1xuICAgIHNlc3Npb25JZDogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgTkVXX1dJTkRPV19PUEVORURfSU5fTkFUSVZFX0FVVE9NQVRJT04gPSAnbmV3LXdpbmRvdy1vcGVuZWQtaW4tbmF0aXZlLWF1dG9tYXRpb24nO1xuXG5leHBvcnQgY2xhc3MgQnJvd3NlckNsaWVudCB7XG4gICAgcHJpdmF0ZSBfY2xpZW50czogRGljdGlvbmFyeTxQcm90b2NvbEFwaUluZm8+ID0ge307XG4gICAgcHJpdmF0ZSByZWFkb25seSBfcnVudGltZUluZm86IFJ1bnRpbWVJbmZvO1xuICAgIHByaXZhdGUgX3BhcmVudFRhcmdldD86IHJlbW90ZUNocm9tZS5UYXJnZXRJbmZvO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVidWdMb2dnZXI6IGRlYnVnLkRlYnVnZ2VyO1xuICAgIHByaXZhdGUgX3ZpZGVvRnJhbWVzQnVmZmVyOiBWaWRlb0ZyYW1lRGF0YVtdO1xuICAgIHByaXZhdGUgX2xhc3RGcmFtZTogVmlkZW9GcmFtZURhdGEgfCBudWxsO1xuICAgIHByaXZhdGUgX3NjcmVlbmNhc3RGcmFtZUxpc3RlbmVyQXR0YWNoZWQgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAocnVudGltZUluZm86IFJ1bnRpbWVJbmZvKSB7XG4gICAgICAgIHRoaXMuX3J1bnRpbWVJbmZvID0gcnVudGltZUluZm87XG4gICAgICAgIHRoaXMuZGVidWdMb2dnZXIgID0gZGVidWcoREVCVUdfU0NPUEUocnVudGltZUluZm8uYnJvd3NlcklkKSk7XG5cbiAgICAgICAgcnVudGltZUluZm8uYnJvd3NlckNsaWVudCA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5fdmlkZW9GcmFtZXNCdWZmZXIgPSBbXTtcbiAgICAgICAgdGhpcy5fbGFzdEZyYW1lICAgICAgICAgPSBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IF9wb3J0ICgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnVudGltZUluZm8uY2RwUG9ydDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBfY2xpZW50S2V5ICgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnVudGltZUluZm8uYWN0aXZlV2luZG93SWQgfHwgdGhpcy5fcnVudGltZUluZm8uYnJvd3NlcklkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IF9jb25maWcgKCk6IENvbmZpZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydW50aW1lSW5mby5jb25maWc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2hlY2tEcm9wT2ZQZXJmb3JtYW5jZSAobWV0aG9kOiBDaGVja2VkQ0RQTWV0aG9kLCBlbGFwc2VkVGltZTogW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlYnVnTG9nZ2VyKGBDRFAgbWV0aG9kICcke21ldGhvZH0nIHRvb2sgJHtwcmV0dHlUaW1lKGVsYXBzZWRUaW1lKX1gKTtcblxuICAgICAgICBjb25zdCBbIGVsYXBzZWRTZWNvbmRzIF0gPSBlbGFwc2VkVGltZTtcblxuICAgICAgICBpZiAoZWxhcHNlZFNlY29uZHMgPiBFTEFQU0VEX1RJTUVfVVBQRVJCT1VORFNbbWV0aG9kXSkge1xuICAgICAgICAgICAgdGhpcy5fcnVudGltZUluZm8ucHJvdmlkZXJNZXRob2RzLnJlcG9ydFdhcm5pbmcoXG4gICAgICAgICAgICAgICAgV0FSTklOR19NRVNTQUdFLmJyb3dzZXJQcm92aWRlckRyb3BPZlBlcmZvcm1hbmNlLFxuICAgICAgICAgICAgICAgIHRoaXMuX3J1bnRpbWVJbmZvLmJyb3dzZXJOYW1lXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfY3JlYXRlQ2xpZW50ICh0YXJnZXQ6IFRhcmdldEluZm8sIGNhY2hlS2V5OiBzdHJpbmcgPSB0aGlzLl9jbGllbnRLZXkpOiBQcm9taXNlPHJlbW90ZUNocm9tZS5Qcm90b2NvbEFwaT4ge1xuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCByZW1vdGVDaHJvbWUoeyB0YXJnZXQsIHBvcnQ6IHRoaXMuX3BvcnQgfSk7XG5cbiAgICAgICAgY29uc3QgeyBQYWdlLCBOZXR3b3JrLCBSdW50aW1lIH0gPSBjbGllbnQ7XG5cbiAgICAgICAgdGhpcy5fY2xpZW50c1tjYWNoZUtleV0gPSBuZXcgUHJvdG9jb2xBcGlJbmZvKGNsaWVudCk7XG5cbiAgICAgICAgYXdhaXQgZ3VhcmRUaW1lRXhlY3V0aW9uKFxuICAgICAgICAgICAgYXN5bmMgKCkgPT4gYXdhaXQgUGFnZS5lbmFibGUoKSxcbiAgICAgICAgICAgIGVsYXBzZWRUaW1lID0+IHRoaXMuX2NoZWNrRHJvcE9mUGVyZm9ybWFuY2UoQ2hlY2tlZENEUE1ldGhvZC5QYWdlRW5hYmxlLCBlbGFwc2VkVGltZSlcbiAgICAgICAgKTtcblxuICAgICAgICBhd2FpdCBOZXR3b3JrLmVuYWJsZSh7fSk7XG4gICAgICAgIGF3YWl0IFJ1bnRpbWUuZW5hYmxlKCk7XG5cbiAgICAgICAgcmV0dXJuIGNsaWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9zZXR1cENsaWVudCAoY2xpZW50OiByZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy5lbXVsYXRpb24pXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9zZXRFbXVsYXRpb24oY2xpZW50KTtcblxuICAgICAgICBpZiAodGhpcy5fY29uZmlnLmhlYWRsZXNzKVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2V0dXBEb3dubG9hZHMoY2xpZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9zZXREZXZpY2VNZXRyaWNzT3ZlcnJpZGUgKGNsaWVudDogcmVtb3RlQ2hyb21lLlByb3RvY29sQXBpLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgZGV2aWNlU2NhbGVGYWN0b3I6IG51bWJlciwgbW9iaWxlOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IGd1YXJkVGltZUV4ZWN1dGlvbihcbiAgICAgICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBhd2FpdCBjbGllbnQuRW11bGF0aW9uLnNldERldmljZU1ldHJpY3NPdmVycmlkZSh7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgIGRldmljZVNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgICAgICAgICBtb2JpbGUsXG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgZml0V2luZG93OiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbGFwc2VkVGltZSA9PiB0aGlzLl9jaGVja0Ryb3BPZlBlcmZvcm1hbmNlKENoZWNrZWRDRFBNZXRob2QuU2V0RGV2aWNlTWV0cmljc092ZXJyaWRlLCBlbGFwc2VkVGltZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9zZXRVc2VyQWdlbnRFbXVsYXRpb24gKGNsaWVudDogcmVtb3RlQ2hyb21lLlByb3RvY29sQXBpKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLl9jb25maWcudXNlckFnZW50ID09PSB2b2lkIDApXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgYXdhaXQgY2xpZW50Lk5ldHdvcmsuc2V0VXNlckFnZW50T3ZlcnJpZGUoeyB1c2VyQWdlbnQ6IHRoaXMuX2NvbmZpZy51c2VyQWdlbnQgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfc2V0VG91Y2hFbXVsYXRpb24gKGNsaWVudDogcmVtb3RlQ2hyb21lLlByb3RvY29sQXBpKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLl9jb25maWcudG91Y2ggPT09IHZvaWQgMClcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBjb25zdCB0b3VjaENvbmZpZzogVG91Y2hDb25maWdPcHRpb25zID0ge1xuICAgICAgICAgICAgZW5hYmxlZDogICAgICAgIHRoaXMuX2NvbmZpZy50b3VjaCxcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb246ICB0aGlzLl9jb25maWcubW9iaWxlID8gJ21vYmlsZScgOiAnZGVza3RvcCcsXG4gICAgICAgICAgICBtYXhUb3VjaFBvaW50czogMSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoY2xpZW50LkVtdWxhdGlvbi5zZXRFbWl0VG91Y2hFdmVudHNGb3JNb3VzZSlcbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5FbXVsYXRpb24uc2V0RW1pdFRvdWNoRXZlbnRzRm9yTW91c2UodG91Y2hDb25maWcpO1xuXG4gICAgICAgIGlmIChjbGllbnQuRW11bGF0aW9uLnNldFRvdWNoRW11bGF0aW9uRW5hYmxlZClcbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5FbXVsYXRpb24uc2V0VG91Y2hFbXVsYXRpb25FbmFibGVkKHRvdWNoQ29uZmlnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9zZXRFbXVsYXRpb24gKGNsaWVudDogcmVtb3RlQ2hyb21lLlByb3RvY29sQXBpKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuX3NldFVzZXJBZ2VudEVtdWxhdGlvbihjbGllbnQpO1xuICAgICAgICBhd2FpdCB0aGlzLl9zZXRUb3VjaEVtdWxhdGlvbihjbGllbnQpO1xuXG4gICAgICAgIGF3YWl0IHRoaXMucmVzaXplV2luZG93KHtcbiAgICAgICAgICAgIHdpZHRoOiAgdGhpcy5fY29uZmlnLndpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLl9jb25maWcuaGVpZ2h0LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9zZXR1cERvd25sb2FkcyAoY2xpZW50OiByZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgY2xpZW50LlBhZ2Uuc2V0RG93bmxvYWRCZWhhdmlvcih7XG4gICAgICAgICAgICBiZWhhdmlvcjogICAgICdhbGxvdycsXG4gICAgICAgICAgICBkb3dubG9hZFBhdGg6IERPV05MT0FEU19ESVIsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2V2YWx1YXRlUnVudGltZSAoY2xpZW50OiByZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGksIGV4cHJlc3Npb246IHN0cmluZywgcmV0dXJuQnlWYWx1ZSA9IGZhbHNlKTogUHJvbWlzZTxQcm90b2NvbC5SdW50aW1lLkV2YWx1YXRlUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIGNsaWVudC5SdW50aW1lLmV2YWx1YXRlKHsgZXhwcmVzc2lvbiwgcmV0dXJuQnlWYWx1ZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9jYWxjdWxhdGVFbXVsYXRlZERldmljZVBpeGVsUmF0aW8gKGNsaWVudDogcmVtb3RlQ2hyb21lLlByb3RvY29sQXBpKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghY2xpZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGRldmljZVBpeGVsUmF0aW9RdWVyeVJlc3VsdCA9IGF3YWl0IGNsaWVudC5SdW50aW1lLmV2YWx1YXRlKHsgZXhwcmVzc2lvbjogJ3dpbmRvdy5kZXZpY2VQaXhlbFJhdGlvJyB9KTtcblxuICAgICAgICB0aGlzLl9ydW50aW1lSW5mby5vcmlnaW5hbERldmljZVBpeGVsUmF0aW8gPSBkZXZpY2VQaXhlbFJhdGlvUXVlcnlSZXN1bHQucmVzdWx0LnZhbHVlO1xuICAgICAgICB0aGlzLl9ydW50aW1lSW5mby5lbXVsYXRlZERldmljZVBpeGVsUmF0aW8gPSB0aGlzLl9jb25maWcuc2NhbGVGYWN0b3IgfHwgdGhpcy5fcnVudGltZUluZm8ub3JpZ2luYWxEZXZpY2VQaXhlbFJhdGlvO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZXNpemVXaW5kb3cgKG5ld0RpbWVuc2lvbnM6IFNpemUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgeyBicm93c2VySWQsIGNvbmZpZywgdmlld3BvcnRTaXplLCBwcm92aWRlck1ldGhvZHMsIGVtdWxhdGVkRGV2aWNlUGl4ZWxSYXRpbyB9ID0gdGhpcy5fcnVudGltZUluZm87XG5cbiAgICAgICAgY29uc3QgY3VycmVudFdpZHRoICA9IHZpZXdwb3J0U2l6ZS53aWR0aDtcbiAgICAgICAgY29uc3QgY3VycmVudEhlaWdodCA9IHZpZXdwb3J0U2l6ZS5oZWlnaHQ7XG4gICAgICAgIGNvbnN0IG5ld1dpZHRoICAgICAgPSBuZXdEaW1lbnNpb25zLndpZHRoIHx8IGN1cnJlbnRXaWR0aDtcbiAgICAgICAgY29uc3QgbmV3SGVpZ2h0ICAgICA9IG5ld0RpbWVuc2lvbnMuaGVpZ2h0IHx8IGN1cnJlbnRIZWlnaHQ7XG5cbiAgICAgICAgaWYgKCFjb25maWcuaGVhZGxlc3MpXG4gICAgICAgICAgICBhd2FpdCBwcm92aWRlck1ldGhvZHMucmVzaXplTG9jYWxCcm93c2VyV2luZG93KGJyb3dzZXJJZCwgbmV3V2lkdGgsIG5ld0hlaWdodCwgY3VycmVudFdpZHRoLCBjdXJyZW50SGVpZ2h0KTtcblxuICAgICAgICB2aWV3cG9ydFNpemUud2lkdGggID0gbmV3V2lkdGg7XG4gICAgICAgIHZpZXdwb3J0U2l6ZS5oZWlnaHQgPSBuZXdIZWlnaHQ7XG5cbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgdGhpcy5nZXRBY3RpdmVDbGllbnQoKTtcblxuICAgICAgICBpZiAoY2xpZW50ICYmIGNvbmZpZy5lbXVsYXRpb24pIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldERldmljZU1ldHJpY3NPdmVycmlkZShjbGllbnQsIHZpZXdwb3J0U2l6ZS53aWR0aCwgdmlld3BvcnRTaXplLmhlaWdodCwgZW11bGF0ZWREZXZpY2VQaXhlbFJhdGlvLCBjb25maWcubW9iaWxlKTtcblxuICAgICAgICAgICAgYXdhaXQgZ3VhcmRUaW1lRXhlY3V0aW9uKFxuICAgICAgICAgICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgY2xpZW50LkVtdWxhdGlvbi5zZXRWaXNpYmxlU2l6ZSh7IHdpZHRoOiB2aWV3cG9ydFNpemUud2lkdGgsIGhlaWdodDogdmlld3BvcnRTaXplLmhlaWdodCB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVsYXBzZWRUaW1lID0+IHRoaXMuX2NoZWNrRHJvcE9mUGVyZm9ybWFuY2UoQ2hlY2tlZENEUE1ldGhvZC5TZXRWaXNpYmxlU2l6ZSwgZWxhcHNlZFRpbWUpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzSGVhZGxlc3NUYWIgKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9wYXJlbnRUYXJnZXQgJiYgdGhpcy5fY29uZmlnLmhlYWRsZXNzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZXRDbGllbnRJbmFjdGl2ZSAod2luZG93SWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBjbGllbnQgPSB0aGlzLl9jbGllbnRzW3dpbmRvd0lkXTtcblxuICAgICAgICBpZiAoY2xpZW50KVxuICAgICAgICAgICAgY2xpZW50LmluYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWN0aXZlQ2xpZW50ICgpOiBQcm9taXNlPHJlbW90ZUNocm9tZS5Qcm90b2NvbEFwaSB8IHZvaWQ+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5fY2xpZW50c1t0aGlzLl9jbGllbnRLZXldKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gYXdhaXQgZ2V0QWN0aXZlVGFiKHRoaXMuX3BvcnQsIHRoaXMuX3J1bnRpbWVJbmZvLmFjdGl2ZVdpbmRvd0lkKTtcblxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX2NyZWF0ZUNsaWVudCh0YXJnZXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGRlYnVnTG9nKGVycik7XG5cbiAgICAgICAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbmZvID0gdGhpcy5fY2xpZW50c1t0aGlzLl9jbGllbnRLZXldO1xuXG4gICAgICAgIGlmIChpbmZvLmluYWN0aXZlKVxuICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDtcblxuICAgICAgICByZXR1cm4gaW5mby5jbGllbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGluaXRNYWluV2luZG93Q2RwQ2xpZW50ICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHRhYnMgPSBhd2FpdCBnZXRUYWJzKHRoaXMuX3BvcnQpO1xuXG4gICAgICAgICAgICB0aGlzLl9wYXJlbnRUYXJnZXQgPSB0YWJzLmZpbmQodCA9PiB0LnVybC5pbmNsdWRlcyh0aGlzLl9ydW50aW1lSW5mby5icm93c2VySWQpKTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLl9wYXJlbnRUYXJnZXQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCB0aGlzLmdldEFjdGl2ZUNsaWVudCgpO1xuXG4gICAgICAgICAgICBpZiAoY2xpZW50KSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fY2FsY3VsYXRlRW11bGF0ZWREZXZpY2VQaXhlbFJhdGlvKGNsaWVudCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2V0dXBDbGllbnQoY2xpZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFNjcmVlbnNob3REYXRhIChmdWxsUGFnZT86IGJvb2xlYW4pOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICAgICAgICBsZXQgY2xpcDogUHJvdG9jb2wuUGFnZS5WaWV3cG9ydCB8IHVuZGVmaW5lZCA9IHZvaWQgMDtcblxuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCB0aGlzLmdldEFjdGl2ZUNsaWVudCgpO1xuXG4gICAgICAgIGlmICghY2xpZW50KSB7XG4gICAgICAgICAgICAvLyBOT1RFOiByZXF1aXJlZCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL0RldkV4cHJlc3MvdGVzdGNhZmUvaXNzdWVzLzYwMzdcbiAgICAgICAgICAgIGF3YWl0IGRlbGF5KDApO1xuXG4gICAgICAgICAgICByZXR1cm4gQnVmZmVyLmFsbG9jKDApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZ1bGxQYWdlKSB7XG4gICAgICAgICAgICBjb25zdCBtZXRyaWNzICAgICAgICAgICA9IGF3YWl0IGNsaWVudC5QYWdlLmdldExheW91dE1ldHJpY3MoKTtcbiAgICAgICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gbWV0cmljcy5jc3NDb250ZW50U2l6ZSB8fCBtZXRyaWNzLmNvbnRlbnRTaXplO1xuXG4gICAgICAgICAgICBjbGlwID0geyB4OiAwLCB5OiAwLCB3aWR0aCwgaGVpZ2h0LCBzY2FsZTogMSB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LlBhZ2UuY2FwdHVyZVNjcmVlbnNob3Qoe1xuICAgICAgICAgICAgY2xpcCxcbiAgICAgICAgICAgIGNhcHR1cmVCZXlvbmRWaWV3cG9ydDogZnVsbFBhZ2UsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBCdWZmZXIuZnJvbShyZXN1bHQuZGF0YSwgJ2Jhc2U2NCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjbG9zZVRhYiAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLl9wYXJlbnRUYXJnZXQpXG4gICAgICAgICAgICBhd2FpdCByZW1vdGVDaHJvbWUuQ2xvc2UoeyBpZDogdGhpcy5fcGFyZW50VGFyZ2V0LmlkLCBwb3J0OiB0aGlzLl9wb3J0IH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyB1cGRhdGVNb2JpbGVWaWV3cG9ydFNpemUgKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCB0aGlzLmdldEFjdGl2ZUNsaWVudCgpO1xuXG4gICAgICAgIGlmICghY2xpZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHdpbmRvd0RpbWVuc2lvbnNRdWVyeVJlc3VsdCA9IGF3YWl0IHRoaXMuX2V2YWx1YXRlUnVudGltZShjbGllbnQsIGAoJHtHRVRfV0lORE9XX0RJTUVOU0lPTlNfSU5GT19TQ1JJUFR9KSgpYCwgdHJ1ZSk7XG5cbiAgICAgICAgY29uc3Qgd2luZG93RGltZW5zaW9ucyA9IHdpbmRvd0RpbWVuc2lvbnNRdWVyeVJlc3VsdC5yZXN1bHQudmFsdWU7XG5cbiAgICAgICAgdGhpcy5fcnVudGltZUluZm8udmlld3BvcnRTaXplLndpZHRoICA9IHdpbmRvd0RpbWVuc2lvbnMub3V0ZXJXaWR0aDtcbiAgICAgICAgdGhpcy5fcnVudGltZUluZm8udmlld3BvcnRTaXplLmhlaWdodCA9IHdpbmRvd0RpbWVuc2lvbnMub3V0ZXJIZWlnaHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGNsb3NlQnJvd3NlckNoaWxkV2luZG93ICh3aW5kb3dJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2V0Q2xpZW50SW5hY3RpdmUod2luZG93SWQpO1xuXG4gICAgICAgIC8vIE5PVEU6IGRlbGF5IGJyb3dzZXIgd2luZG93IGNsb3NpbmdcbiAgICAgICAgYXdhaXQgZGVsYXkoMTAwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc3RhcnRDYXB0dXJpbmdWaWRlbyAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlQ2xpZW50KCk7XG5cbiAgICAgICAgaWYgKCFjbGllbnQpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgaWYgKCF0aGlzLl9zY3JlZW5jYXN0RnJhbWVMaXN0ZW5lckF0dGFjaGVkKSB7XG4gICAgICAgICAgICBjbGllbnQuUGFnZS5vbignc2NyZWVuY2FzdEZyYW1lJywgKGV2ZW50OiBTY3JlZW5jYXN0RnJhbWVFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZGVvRnJhbWVzQnVmZmVyLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiAgICAgIGV2ZW50LmRhdGEsXG4gICAgICAgICAgICAgICAgICAgIHNlc3Npb25JZDogZXZlbnQuc2Vzc2lvbklkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuX3NjcmVlbmNhc3RGcmFtZUxpc3RlbmVyQXR0YWNoZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgY2xpZW50LlBhZ2Uuc3RhcnRTY3JlZW5jYXN0KFNDUkVFTkNBU1RfT1BUSU9OUyBhcyBTdGFydFNjcmVlbmNhc3RSZXF1ZXN0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc3RvcENhcHR1cmluZ1ZpZGVvICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgdGhpcy5nZXRBY3RpdmVDbGllbnQoKTtcblxuICAgICAgICBpZiAoIWNsaWVudClcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBhd2FpdCBjbGllbnQuUGFnZS5zdG9wU2NyZWVuY2FzdCgpO1xuXG4gICAgICAgIHRoaXMuX2xhc3RGcmFtZSAgICAgICAgID0gbnVsbDtcbiAgICAgICAgdGhpcy5fdmlkZW9GcmFtZXNCdWZmZXIgPSBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0VmlkZW9GcmFtZURhdGEgKCk6IFByb21pc2U8QnVmZmVyIHwgbnVsbD4ge1xuICAgICAgICBjb25zdCBmaXJzdEZyYW1lRnJvbUJ1ZmZlciA9IHRoaXMuX3ZpZGVvRnJhbWVzQnVmZmVyLnNoaWZ0KCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWaWRlb0ZyYW1lICAgID0gZmlyc3RGcmFtZUZyb21CdWZmZXIgfHwgdGhpcy5fbGFzdEZyYW1lO1xuXG4gICAgICAgIGlmICghY3VycmVudFZpZGVvRnJhbWUpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcblxuICAgICAgICBpZiAodGhpcy5fdmlkZW9GcmFtZXNCdWZmZXIubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgdGhpcy5fbGFzdEZyYW1lID0gY3VycmVudFZpZGVvRnJhbWU7XG5cbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgdGhpcy5nZXRBY3RpdmVDbGllbnQoKTtcblxuICAgICAgICBpZiAoIWNsaWVudClcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgIGlmIChmaXJzdEZyYW1lRnJvbUJ1ZmZlcilcbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5QYWdlLnNjcmVlbmNhc3RGcmFtZUFjayh7IHNlc3Npb25JZDogY3VycmVudFZpZGVvRnJhbWUuc2Vzc2lvbklkIH0pO1xuXG4gICAgICAgIHJldHVybiBCdWZmZXIuZnJvbShjdXJyZW50VmlkZW9GcmFtZS5kYXRhLCAnYmFzZTY0Jyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfb25UYXJnZXRDcmVhdGVkSGFuZGxlciAodGFyZ2V0SW5mbzogcmVtb3RlQ2hyb21lLlRhcmdldEluZm8sIG9wdGlvbnM6IE5hdGl2ZUF1dG9tYXRpb25Jbml0T3B0aW9ucyk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBhd2FpdCBnZXRUYWJCeUlkKHRoaXMuX3BvcnQsIHRhcmdldEluZm8udGFyZ2V0SWQpO1xuXG4gICAgICAgIGlmICghdGFyZ2V0KVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGNsaWVudCAgICAgICAgICAgPSBhd2FpdCB0aGlzLl9jcmVhdGVDbGllbnQodGFyZ2V0LCB0YXJnZXRJbmZvLnRhcmdldElkKTtcbiAgICAgICAgICAgIGNvbnN0IG5hdGl2ZUF1dG9tYXRpb24gPSBuZXcgTmF0aXZlQXV0b21hdGlvbkNoaWxkV2luZG93KHRoaXMuX3J1bnRpbWVJbmZvLmJyb3dzZXJJZCwgdGFyZ2V0LmlkLCBjbGllbnQsIG9wdGlvbnMpO1xuXG4gICAgICAgICAgICBhd2FpdCBuYXRpdmVBdXRvbWF0aW9uLnN0YXJ0KCk7XG5cbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQuaWQ7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgZGVidWdMb2coZXJyKTtcblxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY3JlYXRlTWFpbldpbmRvd05hdGl2ZUF1dG9tYXRpb24gKG9wdGlvbnM6IE5hdGl2ZUF1dG9tYXRpb25Jbml0T3B0aW9ucyk6IFByb21pc2U8TmF0aXZlQXV0b21hdGlvbkJhc2UgfCBudWxsPiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGF3YWl0IGdldEZpcnN0VGFiKHRoaXMuX3BvcnQpO1xuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCB0aGlzLl9jcmVhdGVDbGllbnQodGFyZ2V0KTtcblxuICAgICAgICBjb25zdCBuYXRpdmVBdXRvbWF0aW9uID0gbmV3IE5hdGl2ZUF1dG9tYXRpb25NYWluV2luZG93KHRoaXMuX3J1bnRpbWVJbmZvLmJyb3dzZXJJZCwgdGFyZ2V0LmlkLCBjbGllbnQsIG9wdGlvbnMpO1xuXG4gICAgICAgIG5hdGl2ZUF1dG9tYXRpb24ub24oTkVXX1dJTkRPV19PUEVORURfSU5fTkFUSVZFX0FVVE9NQVRJT04sIGFzeW5jIHRhcmdldEluZm8gPT4gdGhpcy5fb25UYXJnZXRDcmVhdGVkSGFuZGxlcih0YXJnZXRJbmZvLCBvcHRpb25zKSk7XG5cbiAgICAgICAgcmV0dXJuIG5hdGl2ZUF1dG9tYXRpb247XG4gICAgfVxufVxuXG4iXX0=
|
|
322
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2NkcC1jbGllbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsZ0RBQXdCO0FBQ3hCLDRDQUFvQjtBQUNwQixzRkFBbUU7QUFDbkUsa0RBQTBCO0FBQzFCLHlFQUF1RjtBQUN2RixzR0FBOEU7QUFROUUsa0VBQXVDO0FBQ3ZDLGdFQUFvRjtBQUNwRix3R0FBOEU7QUFDOUUsMEVBQWtEO0FBTWxELDJFQUk2QztBQUU3QyxtQ0FNbUI7QUFFbkIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxFQUFVLEVBQVUsRUFBRSxDQUFDLDREQUE0RCxFQUFFLEVBQUUsQ0FBQztBQUM3RyxNQUFNLGFBQWEsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFlBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUUzRCxNQUFNLFFBQVEsR0FBRyxJQUFBLGVBQUssRUFBQyxxREFBcUQsQ0FBQyxDQUFDO0FBRTlFLE1BQU0sZUFBZTtJQUlqQixZQUFvQixNQUFnQztRQUNoRCxJQUFJLENBQUMsTUFBTSxHQUFLLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0NBQ0o7QUFFRCxNQUFNLGtCQUFrQixHQUFHO0lBQ3ZCLE1BQU0sRUFBUyxNQUFNO0lBQ3JCLGFBQWEsRUFBRSxDQUFDO0NBQ25CLENBQUM7QUFPVyxRQUFBLHNDQUFzQyxHQUFHLHdDQUF3QyxDQUFDO0FBRS9GLE1BQWEsYUFBYTtJQVN0QixZQUFvQixXQUF3QjtRQVJwQyxhQUFRLEdBQWdDLEVBQUUsQ0FBQztRQU0zQyxxQ0FBZ0MsR0FBRyxLQUFLLENBQUM7UUFHN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7UUFDaEMsSUFB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QUM7Q0FDSjtBQXpaRCxzQ0F5WkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vY29uZmlndXJhdGlvbi9pbnRlcmZhY2VzJztcbmltcG9ydCBQcm90b2NvbCBmcm9tICdkZXZ0b29scy1wcm90b2NvbCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBvcyBmcm9tICdvcyc7XG5pbXBvcnQgcmVtb3RlQ2hyb21lLCB7IFRhcmdldEluZm8gfSBmcm9tICdjaHJvbWUtcmVtb3RlLWludGVyZmFjZSc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHsgR0VUX1dJTkRPV19ESU1FTlNJT05TX0lORk9fU0NSSVBUIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvY2xpZW50LWZ1bmN0aW9ucyc7XG5pbXBvcnQgV0FSTklOR19NRVNTQUdFIGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL25vdGlmaWNhdGlvbnMvd2FybmluZy1tZXNzYWdlJztcblxuaW1wb3J0IHtcbiAgICBDb25maWcsXG4gICAgUnVudGltZUluZm8sXG4gICAgVG91Y2hDb25maWdPcHRpb25zLFxuICAgIFNpemUsXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHByZXR0eVRpbWUgZnJvbSAncHJldHR5LWhydGltZSc7XG5pbXBvcnQgeyBDaGVja2VkQ0RQTWV0aG9kLCBFTEFQU0VEX1RJTUVfVVBQRVJCT1VORFMgfSBmcm9tICcuLi9lbGFwc2VkLXVwcGVyYm91bmRzJztcbmltcG9ydCBndWFyZFRpbWVFeGVjdXRpb24gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vdXRpbHMvZ3VhcmQtdGltZS1leGVjdXRpb24nO1xuaW1wb3J0IGRlbGF5IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3V0aWxzL2RlbGF5JztcblxuaW1wb3J0IFN0YXJ0U2NyZWVuY2FzdFJlcXVlc3QgPSBQcm90b2NvbC5QYWdlLlN0YXJ0U2NyZWVuY2FzdFJlcXVlc3Q7XG5pbXBvcnQgU2NyZWVuY2FzdEZyYW1lRXZlbnQgPSBQcm90b2NvbC5QYWdlLlNjcmVlbmNhc3RGcmFtZUV2ZW50O1xuaW1wb3J0IHsgTmF0aXZlQXV0b21hdGlvbkluaXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL3R5cGVzJztcblxuaW1wb3J0IHtcbiAgICBOYXRpdmVBdXRvbWF0aW9uQmFzZSxcbiAgICBOYXRpdmVBdXRvbWF0aW9uQ2hpbGRXaW5kb3csXG4gICAgTmF0aXZlQXV0b21hdGlvbk1haW5XaW5kb3csXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL25hdGl2ZS1hdXRvbWF0aW9uJztcblxuaW1wb3J0IHtcbiAgICBnZXRBY3RpdmVUYWIsXG4gICAgZ2V0Rmlyc3RUYWIsXG4gICAgZ2V0VGFiQnlJZCxcbiAgICBnZXRUYWJzLFxufVxuICAgIGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBERUJVR19TQ09QRSA9IChpZDogc3RyaW5nKTogc3RyaW5nID0+IGB0ZXN0Y2FmZTpicm93c2VyOnByb3ZpZGVyOmJ1aWx0LWluOmNocm9tZTpicm93c2VyLWNsaWVudDoke2lkfWA7XG5jb25zdCBET1dOTE9BRFNfRElSID0gcGF0aC5qb2luKG9zLmhvbWVkaXIoKSwgJ0Rvd25sb2FkcycpO1xuXG5jb25zdCBkZWJ1Z0xvZyA9IGRlYnVnKCd0ZXN0Y2FmZTpicm93c2VyOnByb3ZpZGVyOmJ1aWx0LWluOmRlZGljYXRlZDpjaHJvbWUnKTtcblxuY2xhc3MgUHJvdG9jb2xBcGlJbmZvIHtcbiAgICBwdWJsaWMgaW5hY3RpdmU6IGJvb2xlYW47XG4gICAgcHVibGljIGNsaWVudDogcmVtb3RlQ2hyb21lLlByb3RvY29sQXBpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yIChjbGllbnQ6IHJlbW90ZUNocm9tZS5Qcm90b2NvbEFwaSkge1xuICAgICAgICB0aGlzLmNsaWVudCAgID0gY2xpZW50O1xuICAgICAgICB0aGlzLmluYWN0aXZlID0gZmFsc2U7XG4gICAgfVxufVxuXG5jb25zdCBTQ1JFRU5DQVNUX09QVElPTlMgPSB7XG4gICAgZm9ybWF0OiAgICAgICAgJ2pwZWcnLFxuICAgIGV2ZXJ5TnRoRnJhbWU6IDEsXG59O1xuXG5pbnRlcmZhY2UgVmlkZW9GcmFtZURhdGEge1xuICAgIGRhdGE6IHN0cmluZztcbiAgICBzZXNzaW9uSWQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IE5FV19XSU5ET1dfT1BFTkVEX0lOX05BVElWRV9BVVRPTUFUSU9OID0gJ25ldy13aW5kb3ctb3BlbmVkLWluLW5hdGl2ZS1hdXRvbWF0aW9uJztcblxuZXhwb3J0IGNsYXNzIEJyb3dzZXJDbGllbnQge1xuICAgIHByaXZhdGUgX2NsaWVudHM6IERpY3Rpb25hcnk8UHJvdG9jb2xBcGlJbmZvPiA9IHt9O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3J1bnRpbWVJbmZvOiBSdW50aW1lSW5mbztcbiAgICBwcml2YXRlIF9wYXJlbnRUYXJnZXQ/OiByZW1vdGVDaHJvbWUuVGFyZ2V0SW5mbztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlYnVnTG9nZ2VyOiBkZWJ1Zy5EZWJ1Z2dlcjtcbiAgICBwcml2YXRlIF92aWRlb0ZyYW1lc0J1ZmZlcjogVmlkZW9GcmFtZURhdGFbXTtcbiAgICBwcml2YXRlIF9sYXN0RnJhbWU6IFZpZGVvRnJhbWVEYXRhIHwgbnVsbDtcbiAgICBwcml2YXRlIF9zY3JlZW5jYXN0RnJhbWVMaXN0ZW5lckF0dGFjaGVkID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKHJ1bnRpbWVJbmZvOiBSdW50aW1lSW5mbykge1xuICAgICAgICB0aGlzLl9ydW50aW1lSW5mbyA9IHJ1bnRpbWVJbmZvO1xuICAgICAgICB0aGlzLmRlYnVnTG9nZ2VyICA9IGRlYnVnKERFQlVHX1NDT1BFKHJ1bnRpbWVJbmZvLmJyb3dzZXJJZCkpO1xuXG4gICAgICAgIHJ1bnRpbWVJbmZvLmJyb3dzZXJDbGllbnQgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuX3ZpZGVvRnJhbWVzQnVmZmVyID0gW107XG4gICAgICAgIHRoaXMuX2xhc3RGcmFtZSAgICAgICAgID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBfcG9ydCAoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bnRpbWVJbmZvLmNkcFBvcnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgX2NsaWVudEtleSAoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bnRpbWVJbmZvLmFjdGl2ZVdpbmRvd0lkIHx8IHRoaXMuX3J1bnRpbWVJbmZvLmJyb3dzZXJJZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBfY29uZmlnICgpOiBDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnVudGltZUluZm8uY29uZmlnO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NoZWNrRHJvcE9mUGVyZm9ybWFuY2UgKG1ldGhvZDogQ2hlY2tlZENEUE1ldGhvZCwgZWxhcHNlZFRpbWU6IFtudW1iZXIsIG51bWJlcl0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZWJ1Z0xvZ2dlcihgQ0RQIG1ldGhvZCAnJHttZXRob2R9JyB0b29rICR7cHJldHR5VGltZShlbGFwc2VkVGltZSl9YCk7XG5cbiAgICAgICAgY29uc3QgWyBlbGFwc2VkU2Vjb25kcyBdID0gZWxhcHNlZFRpbWU7XG5cbiAgICAgICAgaWYgKGVsYXBzZWRTZWNvbmRzID4gRUxBUFNFRF9USU1FX1VQUEVSQk9VTkRTW21ldGhvZF0pIHtcbiAgICAgICAgICAgIHRoaXMuX3J1bnRpbWVJbmZvLnByb3ZpZGVyTWV0aG9kcy5yZXBvcnRXYXJuaW5nKFxuICAgICAgICAgICAgICAgIFdBUk5JTkdfTUVTU0FHRS5icm93c2VyUHJvdmlkZXJEcm9wT2ZQZXJmb3JtYW5jZSxcbiAgICAgICAgICAgICAgICB0aGlzLl9ydW50aW1lSW5mby5icm93c2VyTmFtZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2NyZWF0ZUNsaWVudCAodGFyZ2V0OiBUYXJnZXRJbmZvLCBjYWNoZUtleTogc3RyaW5nID0gdGhpcy5fY2xpZW50S2V5KTogUHJvbWlzZTxyZW1vdGVDaHJvbWUuUHJvdG9jb2xBcGk+IHtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgcmVtb3RlQ2hyb21lKHsgdGFyZ2V0LCBwb3J0OiB0aGlzLl9wb3J0IH0pO1xuXG4gICAgICAgIGNvbnN0IHsgUGFnZSwgTmV0d29yaywgUnVudGltZSB9ID0gY2xpZW50O1xuXG4gICAgICAgIHRoaXMuX2NsaWVudHNbY2FjaGVLZXldID0gbmV3IFByb3RvY29sQXBpSW5mbyhjbGllbnQpO1xuXG4gICAgICAgIGF3YWl0IGd1YXJkVGltZUV4ZWN1dGlvbihcbiAgICAgICAgICAgIGFzeW5jICgpID0+IGF3YWl0IFBhZ2UuZW5hYmxlKCksXG4gICAgICAgICAgICBlbGFwc2VkVGltZSA9PiB0aGlzLl9jaGVja0Ryb3BPZlBlcmZvcm1hbmNlKENoZWNrZWRDRFBNZXRob2QuUGFnZUVuYWJsZSwgZWxhcHNlZFRpbWUpXG4gICAgICAgICk7XG5cbiAgICAgICAgYXdhaXQgTmV0d29yay5lbmFibGUoe30pO1xuICAgICAgICBhd2FpdCBSdW50aW1lLmVuYWJsZSgpO1xuXG4gICAgICAgIHJldHVybiBjbGllbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfc2V0dXBDbGllbnQgKGNsaWVudDogcmVtb3RlQ2hyb21lLlByb3RvY29sQXBpKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLl9jb25maWcuZW11bGF0aW9uKVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2V0RW11bGF0aW9uKGNsaWVudCk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy5oZWFkbGVzcylcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldHVwRG93bmxvYWRzKGNsaWVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfc2V0RGV2aWNlTWV0cmljc092ZXJyaWRlIChjbGllbnQ6IHJlbW90ZUNocm9tZS5Qcm90b2NvbEFwaSwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIGRldmljZVNjYWxlRmFjdG9yOiBudW1iZXIsIG1vYmlsZTogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCBndWFyZFRpbWVFeGVjdXRpb24oXG4gICAgICAgICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgY2xpZW50LkVtdWxhdGlvbi5zZXREZXZpY2VNZXRyaWNzT3ZlcnJpZGUoe1xuICAgICAgICAgICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICBkZXZpY2VTY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgICAgICAgbW9iaWxlLFxuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgIGZpdFdpbmRvdzogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZWxhcHNlZFRpbWUgPT4gdGhpcy5fY2hlY2tEcm9wT2ZQZXJmb3JtYW5jZShDaGVja2VkQ0RQTWV0aG9kLlNldERldmljZU1ldHJpY3NPdmVycmlkZSwgZWxhcHNlZFRpbWUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfc2V0VXNlckFnZW50RW11bGF0aW9uIChjbGllbnQ6IHJlbW90ZUNocm9tZS5Qcm90b2NvbEFwaSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5fY29uZmlnLnVzZXJBZ2VudCA9PT0gdm9pZCAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGF3YWl0IGNsaWVudC5OZXR3b3JrLnNldFVzZXJBZ2VudE92ZXJyaWRlKHsgdXNlckFnZW50OiB0aGlzLl9jb25maWcudXNlckFnZW50IH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3NldFRvdWNoRW11bGF0aW9uIChjbGllbnQ6IHJlbW90ZUNocm9tZS5Qcm90b2NvbEFwaSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5fY29uZmlnLnRvdWNoID09PSB2b2lkIDApXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgY29uc3QgdG91Y2hDb25maWc6IFRvdWNoQ29uZmlnT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGVuYWJsZWQ6ICAgICAgICB0aGlzLl9jb25maWcudG91Y2gsXG4gICAgICAgICAgICBjb25maWd1cmF0aW9uOiAgdGhpcy5fY29uZmlnLm1vYmlsZSA/ICdtb2JpbGUnIDogJ2Rlc2t0b3AnLFxuICAgICAgICAgICAgbWF4VG91Y2hQb2ludHM6IDEsXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGNsaWVudC5FbXVsYXRpb24uc2V0RW1pdFRvdWNoRXZlbnRzRm9yTW91c2UpXG4gICAgICAgICAgICBhd2FpdCBjbGllbnQuRW11bGF0aW9uLnNldEVtaXRUb3VjaEV2ZW50c0Zvck1vdXNlKHRvdWNoQ29uZmlnKTtcblxuICAgICAgICBpZiAoY2xpZW50LkVtdWxhdGlvbi5zZXRUb3VjaEVtdWxhdGlvbkVuYWJsZWQpXG4gICAgICAgICAgICBhd2FpdCBjbGllbnQuRW11bGF0aW9uLnNldFRvdWNoRW11bGF0aW9uRW5hYmxlZCh0b3VjaENvbmZpZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfc2V0RW11bGF0aW9uIChjbGllbnQ6IHJlbW90ZUNocm9tZS5Qcm90b2NvbEFwaSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLl9zZXRVc2VyQWdlbnRFbXVsYXRpb24oY2xpZW50KTtcbiAgICAgICAgYXdhaXQgdGhpcy5fc2V0VG91Y2hFbXVsYXRpb24oY2xpZW50KTtcblxuICAgICAgICBhd2FpdCB0aGlzLnJlc2l6ZVdpbmRvdyh7XG4gICAgICAgICAgICB3aWR0aDogIHRoaXMuX2NvbmZpZy53aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogdGhpcy5fY29uZmlnLmhlaWdodCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfc2V0dXBEb3dubG9hZHMgKGNsaWVudDogcmVtb3RlQ2hyb21lLlByb3RvY29sQXBpKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IGNsaWVudC5QYWdlLnNldERvd25sb2FkQmVoYXZpb3Ioe1xuICAgICAgICAgICAgYmVoYXZpb3I6ICAgICAnYWxsb3cnLFxuICAgICAgICAgICAgZG93bmxvYWRQYXRoOiBET1dOTE9BRFNfRElSLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9ldmFsdWF0ZVJ1bnRpbWUgKGNsaWVudDogcmVtb3RlQ2hyb21lLlByb3RvY29sQXBpLCBleHByZXNzaW9uOiBzdHJpbmcsIHJldHVybkJ5VmFsdWUgPSBmYWxzZSk6IFByb21pc2U8UHJvdG9jb2wuUnVudGltZS5FdmFsdWF0ZVJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiBjbGllbnQuUnVudGltZS5ldmFsdWF0ZSh7IGV4cHJlc3Npb24sIHJldHVybkJ5VmFsdWUgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfY2FsY3VsYXRlRW11bGF0ZWREZXZpY2VQaXhlbFJhdGlvIChjbGllbnQ6IHJlbW90ZUNocm9tZS5Qcm90b2NvbEFwaSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoIWNsaWVudClcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBjb25zdCBkZXZpY2VQaXhlbFJhdGlvUXVlcnlSZXN1bHQgPSBhd2FpdCBjbGllbnQuUnVudGltZS5ldmFsdWF0ZSh7IGV4cHJlc3Npb246ICd3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbycgfSk7XG5cbiAgICAgICAgdGhpcy5fcnVudGltZUluZm8ub3JpZ2luYWxEZXZpY2VQaXhlbFJhdGlvID0gZGV2aWNlUGl4ZWxSYXRpb1F1ZXJ5UmVzdWx0LnJlc3VsdC52YWx1ZTtcbiAgICAgICAgdGhpcy5fcnVudGltZUluZm8uZW11bGF0ZWREZXZpY2VQaXhlbFJhdGlvID0gdGhpcy5fY29uZmlnLnNjYWxlRmFjdG9yIHx8IHRoaXMuX3J1bnRpbWVJbmZvLm9yaWdpbmFsRGV2aWNlUGl4ZWxSYXRpbztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcmVzaXplV2luZG93IChuZXdEaW1lbnNpb25zOiBTaXplKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHsgYnJvd3NlcklkLCBjb25maWcsIHZpZXdwb3J0U2l6ZSwgcHJvdmlkZXJNZXRob2RzLCBlbXVsYXRlZERldmljZVBpeGVsUmF0aW8gfSA9IHRoaXMuX3J1bnRpbWVJbmZvO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRXaWR0aCAgPSB2aWV3cG9ydFNpemUud2lkdGg7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRIZWlnaHQgPSB2aWV3cG9ydFNpemUuaGVpZ2h0O1xuICAgICAgICBjb25zdCBuZXdXaWR0aCAgICAgID0gbmV3RGltZW5zaW9ucy53aWR0aCB8fCBjdXJyZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IG5ld0hlaWdodCAgICAgPSBuZXdEaW1lbnNpb25zLmhlaWdodCB8fCBjdXJyZW50SGVpZ2h0O1xuXG4gICAgICAgIGlmICghY29uZmlnLmhlYWRsZXNzKVxuICAgICAgICAgICAgYXdhaXQgcHJvdmlkZXJNZXRob2RzLnJlc2l6ZUxvY2FsQnJvd3NlcldpbmRvdyhicm93c2VySWQsIG5ld1dpZHRoLCBuZXdIZWlnaHQsIGN1cnJlbnRXaWR0aCwgY3VycmVudEhlaWdodCk7XG5cbiAgICAgICAgdmlld3BvcnRTaXplLndpZHRoICA9IG5ld1dpZHRoO1xuICAgICAgICB2aWV3cG9ydFNpemUuaGVpZ2h0ID0gbmV3SGVpZ2h0O1xuXG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlQ2xpZW50KCk7XG5cbiAgICAgICAgaWYgKGNsaWVudCAmJiBjb25maWcuZW11bGF0aW9uKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9zZXREZXZpY2VNZXRyaWNzT3ZlcnJpZGUoY2xpZW50LCB2aWV3cG9ydFNpemUud2lkdGgsIHZpZXdwb3J0U2l6ZS5oZWlnaHQsIGVtdWxhdGVkRGV2aWNlUGl4ZWxSYXRpbywgY29uZmlnLm1vYmlsZSk7XG5cbiAgICAgICAgICAgIGF3YWl0IGd1YXJkVGltZUV4ZWN1dGlvbihcbiAgICAgICAgICAgICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5FbXVsYXRpb24uc2V0VmlzaWJsZVNpemUoeyB3aWR0aDogdmlld3BvcnRTaXplLndpZHRoLCBoZWlnaHQ6IHZpZXdwb3J0U2l6ZS5oZWlnaHQgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbGFwc2VkVGltZSA9PiB0aGlzLl9jaGVja0Ryb3BPZlBlcmZvcm1hbmNlKENoZWNrZWRDRFBNZXRob2QuU2V0VmlzaWJsZVNpemUsIGVsYXBzZWRUaW1lKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBtYXhpbWl6ZVdpbmRvd05hdGl2ZUF1dG9tYXRpb24gKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBhd2FpdCBnZXRGaXJzdFRhYih0aGlzLl9wb3J0KTtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgdGhpcy5nZXRBY3RpdmVDbGllbnQoKTtcblxuICAgICAgICBpZiAoY2xpZW50KSB7XG4gICAgICAgICAgICBjb25zdCB3aW5kb3dQYXJhbXMgPSBhd2FpdCBjbGllbnQuQnJvd3Nlci5nZXRXaW5kb3dGb3JUYXJnZXQoeyB0YXJnZXRJZDogdGFyZ2V0LmlkIH0pO1xuXG4gICAgICAgICAgICBhd2FpdCBjbGllbnQuQnJvd3Nlci5zZXRXaW5kb3dCb3VuZHMoeyB3aW5kb3dJZDogd2luZG93UGFyYW1zLndpbmRvd0lkLCBib3VuZHM6IHsgd2luZG93U3RhdGU6ICdtYXhpbWl6ZWQnIH0gfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcmVzaXplQm91bmRzIChuZXdEaW1lbnNpb25zOiBTaXplKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHsgdmlld3BvcnRTaXplLCBjb25maWcgfSA9IHRoaXMuX3J1bnRpbWVJbmZvO1xuXG4gICAgICAgIGxldCBub25DbGllbnRXaWR0aCAgPSAwO1xuICAgICAgICBsZXQgbm9uQ2xpZW50SGVpZ2h0ID0gMDtcblxuICAgICAgICBpZiAodmlld3BvcnRTaXplLm91dGVyV2lkdGggJiYgdmlld3BvcnRTaXplLm91dGVySGVpZ2h0KSB7XG4gICAgICAgICAgICBub25DbGllbnRXaWR0aCAgPSB2aWV3cG9ydFNpemUub3V0ZXJXaWR0aCAtIHZpZXdwb3J0U2l6ZS53aWR0aDtcbiAgICAgICAgICAgIG5vbkNsaWVudEhlaWdodCA9IHZpZXdwb3J0U2l6ZS5vdXRlckhlaWdodCAtIHZpZXdwb3J0U2l6ZS5oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0YXJnZXQgPSBhd2FpdCBnZXRGaXJzdFRhYih0aGlzLl9wb3J0KTtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgdGhpcy5nZXRBY3RpdmVDbGllbnQoKTtcblxuICAgICAgICBpZiAoY2xpZW50KSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9zZXREZXZpY2VNZXRyaWNzT3ZlcnJpZGUoY2xpZW50LCBuZXdEaW1lbnNpb25zLndpZHRoLCBuZXdEaW1lbnNpb25zLmhlaWdodCwgMSwgY29uZmlnLm1vYmlsZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHdpbmRvd1BhcmFtcyA9IGF3YWl0IGNsaWVudC5Ccm93c2VyLmdldFdpbmRvd0ZvclRhcmdldCh7IHRhcmdldElkOiB0YXJnZXQuaWQgfSk7XG5cbiAgICAgICAgICAgIGlmICh3aW5kb3dQYXJhbXMuYm91bmRzLndpbmRvd1N0YXRlICE9PSAnbm9ybWFsJykge1xuICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5Ccm93c2VyLnNldFdpbmRvd0JvdW5kcyh7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvd0lkOiB3aW5kb3dQYXJhbXMud2luZG93SWQsXG4gICAgICAgICAgICAgICAgICAgIGJvdW5kczogICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dTdGF0ZTogJ25vcm1hbCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5Ccm93c2VyLnNldFdpbmRvd0JvdW5kcyh7XG4gICAgICAgICAgICAgICAgd2luZG93SWQ6IHdpbmRvd1BhcmFtcy53aW5kb3dJZCxcbiAgICAgICAgICAgICAgICBib3VuZHM6ICAge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogIG5ld0RpbWVuc2lvbnMud2lkdGggKyBub25DbGllbnRXaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBuZXdEaW1lbnNpb25zLmhlaWdodCArIG5vbkNsaWVudEhlaWdodCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaXNIZWFkbGVzc1RhYiAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX3BhcmVudFRhcmdldCAmJiB0aGlzLl9jb25maWcuaGVhZGxlc3M7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNldENsaWVudEluYWN0aXZlICh3aW5kb3dJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuX2NsaWVudHNbd2luZG93SWRdO1xuXG4gICAgICAgIGlmIChjbGllbnQpXG4gICAgICAgICAgICBjbGllbnQuaW5hY3RpdmUgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRBY3RpdmVDbGllbnQgKCk6IFByb21pc2U8cmVtb3RlQ2hyb21lLlByb3RvY29sQXBpIHwgdm9pZD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9jbGllbnRzW3RoaXMuX2NsaWVudEtleV0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBhd2FpdCBnZXRBY3RpdmVUYWIodGhpcy5fcG9ydCwgdGhpcy5fcnVudGltZUluZm8uYWN0aXZlV2luZG93SWQpO1xuXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fY3JlYXRlQ2xpZW50KHRhcmdldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgZGVidWdMb2coZXJyKTtcblxuICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluZm8gPSB0aGlzLl9jbGllbnRzW3RoaXMuX2NsaWVudEtleV07XG5cbiAgICAgICAgaWYgKGluZm8uaW5hY3RpdmUpXG4gICAgICAgICAgICByZXR1cm4gdm9pZCAwO1xuXG4gICAgICAgIHJldHVybiBpbmZvLmNsaWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgaW5pdE1haW5XaW5kb3dDZHBDbGllbnQgKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgdGFicyA9IGF3YWl0IGdldFRhYnModGhpcy5fcG9ydCk7XG5cbiAgICAgICAgICAgIHRoaXMuX3BhcmVudFRhcmdldCA9IHRhYnMuZmluZCh0ID0+IHQudXJsLmluY2x1ZGVzKHRoaXMuX3J1bnRpbWVJbmZvLmJyb3dzZXJJZCkpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuX3BhcmVudFRhcmdldClcbiAgICAgICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlQ2xpZW50KCk7XG5cbiAgICAgICAgICAgIGlmIChjbGllbnQpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9jYWxjdWxhdGVFbXVsYXRlZERldmljZVBpeGVsUmF0aW8oY2xpZW50KTtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9zZXR1cENsaWVudChjbGllbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0U2NyZWVuc2hvdERhdGEgKGZ1bGxQYWdlPzogYm9vbGVhbik6IFByb21pc2U8QnVmZmVyPiB7XG4gICAgICAgIGxldCBjbGlwOiBQcm90b2NvbC5QYWdlLlZpZXdwb3J0IHwgdW5kZWZpbmVkID0gdm9pZCAwO1xuXG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlQ2xpZW50KCk7XG5cbiAgICAgICAgaWYgKCFjbGllbnQpIHtcbiAgICAgICAgICAgIC8vIE5PVEU6IHJlcXVpcmVkIGZvciBodHRwczovL2dpdGh1Yi5jb20vRGV2RXhwcmVzcy90ZXN0Y2FmZS9pc3N1ZXMvNjAzN1xuICAgICAgICAgICAgYXdhaXQgZGVsYXkoMCk7XG5cbiAgICAgICAgICAgIHJldHVybiBCdWZmZXIuYWxsb2MoMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZnVsbFBhZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IG1ldHJpY3MgICAgICAgICAgID0gYXdhaXQgY2xpZW50LlBhZ2UuZ2V0TGF5b3V0TWV0cmljcygpO1xuICAgICAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBtZXRyaWNzLmNzc0NvbnRlbnRTaXplIHx8IG1ldHJpY3MuY29udGVudFNpemU7XG5cbiAgICAgICAgICAgIGNsaXAgPSB7IHg6IDAsIHk6IDAsIHdpZHRoLCBoZWlnaHQsIHNjYWxlOiAxIH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjbGllbnQuUGFnZS5jYXB0dXJlU2NyZWVuc2hvdCh7XG4gICAgICAgICAgICBjbGlwLFxuICAgICAgICAgICAgY2FwdHVyZUJleW9uZFZpZXdwb3J0OiBmdWxsUGFnZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHJlc3VsdC5kYXRhLCAnYmFzZTY0Jyk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGNsb3NlVGFiICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX3BhcmVudFRhcmdldClcbiAgICAgICAgICAgIGF3YWl0IHJlbW90ZUNocm9tZS5DbG9zZSh7IGlkOiB0aGlzLl9wYXJlbnRUYXJnZXQuaWQsIHBvcnQ6IHRoaXMuX3BvcnQgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHVwZGF0ZU1vYmlsZVZpZXdwb3J0U2l6ZSAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IHRoaXMuZ2V0QWN0aXZlQ2xpZW50KCk7XG5cbiAgICAgICAgaWYgKCFjbGllbnQpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgY29uc3Qgd2luZG93RGltZW5zaW9uc1F1ZXJ5UmVzdWx0ID0gYXdhaXQgdGhpcy5fZXZhbHVhdGVSdW50aW1lKGNsaWVudCwgYCgke0dFVF9XSU5ET1dfRElNRU5TSU9OU19JTkZPX1NDUklQVH0pKClgLCB0cnVlKTtcblxuICAgICAgICBjb25zdCB3aW5kb3dEaW1lbnNpb25zID0gd2luZG93RGltZW5zaW9uc1F1ZXJ5UmVzdWx0LnJlc3VsdC52YWx1ZTtcblxuICAgICAgICB0aGlzLl9ydW50aW1lSW5mby52aWV3cG9ydFNpemUud2lkdGggID0gd2luZG93RGltZW5zaW9ucy5vdXRlcldpZHRoO1xuICAgICAgICB0aGlzLl9ydW50aW1lSW5mby52aWV3cG9ydFNpemUuaGVpZ2h0ID0gd2luZG93RGltZW5zaW9ucy5vdXRlckhlaWdodDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY2xvc2VCcm93c2VyQ2hpbGRXaW5kb3cgKHdpbmRvd0lkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5zZXRDbGllbnRJbmFjdGl2ZSh3aW5kb3dJZCk7XG5cbiAgICAgICAgLy8gTk9URTogZGVsYXkgYnJvd3NlciB3aW5kb3cgY2xvc2luZ1xuICAgICAgICBhd2FpdCBkZWxheSgxMDApO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzdGFydENhcHR1cmluZ1ZpZGVvICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgdGhpcy5nZXRBY3RpdmVDbGllbnQoKTtcblxuICAgICAgICBpZiAoIWNsaWVudClcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBpZiAoIXRoaXMuX3NjcmVlbmNhc3RGcmFtZUxpc3RlbmVyQXR0YWNoZWQpIHtcbiAgICAgICAgICAgIGNsaWVudC5QYWdlLm9uKCdzY3JlZW5jYXN0RnJhbWUnLCAoZXZlbnQ6IFNjcmVlbmNhc3RGcmFtZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlkZW9GcmFtZXNCdWZmZXIucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6ICAgICAgZXZlbnQuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbklkOiBldmVudC5zZXNzaW9uSWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5fc2NyZWVuY2FzdEZyYW1lTGlzdGVuZXJBdHRhY2hlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBjbGllbnQuUGFnZS5zdGFydFNjcmVlbmNhc3QoU0NSRUVOQ0FTVF9PUFRJT05TIGFzIFN0YXJ0U2NyZWVuY2FzdFJlcXVlc3QpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzdG9wQ2FwdHVyaW5nVmlkZW8gKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCB0aGlzLmdldEFjdGl2ZUNsaWVudCgpO1xuXG4gICAgICAgIGlmICghY2xpZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGF3YWl0IGNsaWVudC5QYWdlLnN0b3BTY3JlZW5jYXN0KCk7XG5cbiAgICAgICAgdGhpcy5fbGFzdEZyYW1lICAgICAgICAgPSBudWxsO1xuICAgICAgICB0aGlzLl92aWRlb0ZyYW1lc0J1ZmZlciA9IFtdO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRWaWRlb0ZyYW1lRGF0YSAoKTogUHJvbWlzZTxCdWZmZXIgfCBudWxsPiB7XG4gICAgICAgIGNvbnN0IGZpcnN0RnJhbWVGcm9tQnVmZmVyID0gdGhpcy5fdmlkZW9GcmFtZXNCdWZmZXIuc2hpZnQoKTtcbiAgICAgICAgY29uc3QgY3VycmVudFZpZGVvRnJhbWUgICAgPSBmaXJzdEZyYW1lRnJvbUJ1ZmZlciB8fCB0aGlzLl9sYXN0RnJhbWU7XG5cbiAgICAgICAgaWYgKCFjdXJyZW50VmlkZW9GcmFtZSlcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgIGlmICh0aGlzLl92aWRlb0ZyYW1lc0J1ZmZlci5sZW5ndGggPT09IDApXG4gICAgICAgICAgICB0aGlzLl9sYXN0RnJhbWUgPSBjdXJyZW50VmlkZW9GcmFtZTtcblxuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCB0aGlzLmdldEFjdGl2ZUNsaWVudCgpO1xuXG4gICAgICAgIGlmICghY2xpZW50KVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgaWYgKGZpcnN0RnJhbWVGcm9tQnVmZmVyKVxuICAgICAgICAgICAgYXdhaXQgY2xpZW50LlBhZ2Uuc2NyZWVuY2FzdEZyYW1lQWNrKHsgc2Vzc2lvbklkOiBjdXJyZW50VmlkZW9GcmFtZS5zZXNzaW9uSWQgfSk7XG5cbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGN1cnJlbnRWaWRlb0ZyYW1lLmRhdGEsICdiYXNlNjQnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9vblRhcmdldENyZWF0ZWRIYW5kbGVyICh0YXJnZXRJbmZvOiByZW1vdGVDaHJvbWUuVGFyZ2V0SW5mbywgb3B0aW9uczogTmF0aXZlQXV0b21hdGlvbkluaXRPcHRpb25zKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGF3YWl0IGdldFRhYkJ5SWQodGhpcy5fcG9ydCwgdGFyZ2V0SW5mby50YXJnZXRJZCk7XG5cbiAgICAgICAgaWYgKCF0YXJnZXQpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY2xpZW50ICAgICAgICAgICA9IGF3YWl0IHRoaXMuX2NyZWF0ZUNsaWVudCh0YXJnZXQsIHRhcmdldEluZm8udGFyZ2V0SWQpO1xuICAgICAgICAgICAgY29uc3QgbmF0aXZlQXV0b21hdGlvbiA9IG5ldyBOYXRpdmVBdXRvbWF0aW9uQ2hpbGRXaW5kb3codGhpcy5fcnVudGltZUluZm8uYnJvd3NlcklkLCB0YXJnZXQuaWQsIGNsaWVudCwgb3B0aW9ucyk7XG5cbiAgICAgICAgICAgIGF3YWl0IG5hdGl2ZUF1dG9tYXRpb24uc3RhcnQoKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5pZDtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBkZWJ1Z0xvZyhlcnIpO1xuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjcmVhdGVNYWluV2luZG93TmF0aXZlQXV0b21hdGlvbiAob3B0aW9uczogTmF0aXZlQXV0b21hdGlvbkluaXRPcHRpb25zKTogUHJvbWlzZTxOYXRpdmVBdXRvbWF0aW9uQmFzZSB8IG51bGw+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gYXdhaXQgZ2V0Rmlyc3RUYWIodGhpcy5fcG9ydCk7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IHRoaXMuX2NyZWF0ZUNsaWVudCh0YXJnZXQpO1xuXG4gICAgICAgIGNvbnN0IG5hdGl2ZUF1dG9tYXRpb24gPSBuZXcgTmF0aXZlQXV0b21hdGlvbk1haW5XaW5kb3codGhpcy5fcnVudGltZUluZm8uYnJvd3NlcklkLCB0YXJnZXQuaWQsIGNsaWVudCwgb3B0aW9ucyk7XG5cbiAgICAgICAgbmF0aXZlQXV0b21hdGlvbi5vbihORVdfV0lORE9XX09QRU5FRF9JTl9OQVRJVkVfQVVUT01BVElPTiwgYXN5bmMgdGFyZ2V0SW5mbyA9PiB0aGlzLl9vblRhcmdldENyZWF0ZWRIYW5kbGVyKHRhcmdldEluZm8sIG9wdGlvbnMpKTtcblxuICAgICAgICByZXR1cm4gbmF0aXZlQXV0b21hdGlvbjtcbiAgICB9XG59XG5cbiJdfQ==
|
|
@@ -105,6 +105,14 @@ exports.default = Object.assign(Object.assign({}, base_1.default), { getConfig(n
|
|
|
105
105
|
}
|
|
106
106
|
await runtimeInfo.browserClient.resizeWindow({ width, height });
|
|
107
107
|
},
|
|
108
|
+
async maximizeWindowNativeAutomation(browserId) {
|
|
109
|
+
const { browserClient } = this.openedBrowsers[browserId];
|
|
110
|
+
await browserClient.maximizeWindowNativeAutomation();
|
|
111
|
+
},
|
|
112
|
+
async resizeBounds(browserId, width, height, currentWidth, currentHeight) {
|
|
113
|
+
const { browserClient } = this.openedBrowsers[browserId];
|
|
114
|
+
await browserClient.resizeBounds({ width, height, currentWidth, currentHeight });
|
|
115
|
+
},
|
|
108
116
|
async startCapturingVideo(browserId) {
|
|
109
117
|
const { browserClient } = this.openedBrowsers[browserId];
|
|
110
118
|
await browserClient.startCapturingVideo();
|
|
@@ -166,4 +174,4 @@ exports.default = Object.assign(Object.assign({}, base_1.default), { getConfig(n
|
|
|
166
174
|
return runtimeInfo.nativeAutomation.getNewWindowIdInNativeAutomation();
|
|
167
175
|
} });
|
|
168
176
|
module.exports = exports.default;
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQTJCO0FBQzNCLDZCQUF3QztBQUN4QyxtREFBNEM7QUFDNUMsa0VBQStDO0FBQy9DLHNEQUFpQztBQUNqQyxpREFJd0I7QUFDeEIsc0VBQW9GO0FBQ3BGLDZDQUE2QztBQUM3QyxvRUFBd0g7QUFDeEgsc0VBQWlGO0FBQ2pGLGtFQUFtRTtBQUNuRSx1RUFBK0M7QUFDL0MsNEVBQWdHO0FBRWhHLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBRW5DLGtEQUNPLGNBQXFCLEtBRXhCLFNBQVMsQ0FBRSxJQUFJO1FBQ1gsT0FBTyxJQUFBLGdCQUFTLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0IsQ0FBRSxTQUFTO1FBQ2pDLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sU0FBUyxHQUFXLE1BQU0sYUFBYSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRWhFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCx5QkFBeUIsQ0FBRSxXQUFXO1FBQ2xDLE9BQU8sV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsc0JBQXNCO1FBQzlELE9BQU8sc0JBQWlCLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsdUNBQXVDLENBQUUsU0FBUyxFQUFFLE1BQU07UUFDdEQsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVB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UUFFbkQsT0FBTyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7SUFDeEMsQ0FBQztJQUVELEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBRSxTQUFTO1FBQzdDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbkQsT0FBTyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQztJQUMzRSxDQUFDLElBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT1MgZnJvbSAnb3MtZmFtaWx5JztcbmltcG9ydCB7IHBhcnNlIGFzIHBhcnNlVXJsIH0gZnJvbSAndXJsJztcbmltcG9ydCBkZWRpY2F0ZWRQcm92aWRlckJhc2UgZnJvbSAnLi4vYmFzZSc7XG5pbXBvcnQgQ2hyb21lUnVuVGltZUluZm8gZnJvbSAnLi9ydW50aW1lLWluZm8nO1xuaW1wb3J0IGdldENvbmZpZyBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQge1xuICAgIHN0YXJ0IGFzIHN0YXJ0TG9jYWxDaHJvbWUsXG4gICAgc3RhcnRPbkRvY2tlciBhcyBzdGFydExvY2FsQ2hyb21lT25Eb2NrZXIsXG4gICAgc3RvcCBhcyBzdG9wTG9jYWxDaHJvbWUsXG59IGZyb20gJy4vbG9jYWwtY2hyb21lJztcbmltcG9ydCB7IEdFVF9XSU5ET1dfRElNRU5TSU9OU19JTkZPX1NDUklQVCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsaWVudC1mdW5jdGlvbnMnO1xuaW1wb3J0IHsgQnJvd3NlckNsaWVudCB9IGZyb20gJy4vY2RwLWNsaWVudCc7XG5pbXBvcnQgeyBkaXNwYXRjaEV2ZW50IGFzIGRpc3BhdGNoTmF0aXZlQXV0b21hdGlvbkV2ZW50LCBuYXZpZ2F0ZVRvIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbmF0aXZlLWF1dG9tYXRpb24vdXRpbHMvY2RwJztcbmltcG9ydCB7IGNocm9tZUJyb3dzZXJQcm92aWRlckxvZ2dlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxzL2RlYnVnLWxvZ2dlcnMnO1xuaW1wb3J0IHsgRXZlbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbmF0aXZlLWF1dG9tYXRpb24vdHlwZXMnO1xuaW1wb3J0IGRlbGF5IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxzL2RlbGF5JztcbmltcG9ydCB7IHRvTmF0aXZlQXV0b21hdGlvblNldHVwT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL25hdGl2ZS1hdXRvbWF0aW9uL3V0aWxzL2NvbnZlcnQnO1xuXG5jb25zdCBNSU5fQVZBSUxBQkxFX0RJTUVOU0lPTiA9IDUwO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgLi4uZGVkaWNhdGVkUHJvdmlkZXJCYXNlLFxuXG4gICAgZ2V0Q29uZmlnIChuYW1lKSB7XG4gICAgICAgIHJldHVybiBnZXRDb25maWcobmFtZSk7XG4gICAgfSxcblxuICAgIGFzeW5jIGdldEN1cnJlbnRDRFBTZXNzaW9uIChicm93c2VySWQpIHtcbiAgICAgICAgY29uc3QgeyBicm93c2VyQ2xpZW50IH0gPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG4gICAgICAgIGNvbnN0IGNkcENsaWVudCAgICAgICAgID0gYXdhaXQgYnJvd3NlckNsaWVudC5nZXRBY3RpdmVDbGllbnQoKTtcblxuICAgICAgICByZXR1cm4gY2RwQ2xpZW50O1xuICAgIH0sXG5cbiAgICBfZ2V0QnJvd3NlclByb3RvY29sQ2xpZW50IChydW50aW1lSW5mbykge1xuICAgICAgICByZXR1cm4gcnVudGltZUluZm8uYnJvd3NlckNsaWVudDtcbiAgICB9LFxuXG4gICAgYXN5bmMgX2NyZWF0ZVJ1blRpbWVJbmZvIChob3N0TmFtZSwgY29uZmlnLCBkaXNhYmxlTXVsdGlwbGVXaW5kb3dzKSB7XG4gICAgICAgIHJldHVybiBDaHJvbWVSdW5UaW1lSW5mby5jcmVhdGUoaG9zdE5hbWUsIGNvbmZpZywgZGlzYWJsZU11bHRpcGxlV2luZG93cyk7XG4gICAgfSxcblxuICAgIF9zZXRVc2VyQWdlbnRNZXRhSW5mb0ZvckVtdWxhdGluZ0RldmljZSAoYnJvd3NlcklkLCBjb25maWcpIHtcbiAgICAgICAgY29uc3QgeyBlbXVsYXRpb24sIGRldmljZU5hbWUgfSA9IGNvbmZpZztcbiAgICAgICAgY29uc3QgaXNEZXZpY2VFbXVsYXRpb24gICAgICAgICA9IGVtdWxhdGlvbiAmJiBkZXZpY2VOYW1lO1xuXG4gICAgICAgIGlmICghaXNEZXZpY2VFbXVsYXRpb24pXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgY29uc3QgbWV0YUluZm8gPSBgRW11bGF0aW5nICR7ZGV2aWNlTmFtZX1gO1xuICAgICAgICBjb25zdCBvcHRpb25zICA9IHtcbiAgICAgICAgICAgIGFwcGVuZFRvVXNlckFnZW50OiB0cnVlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuc2V0VXNlckFnZW50TWV0YUluZm8oYnJvd3NlcklkLCBtZXRhSW5mbywgb3B0aW9ucyk7XG4gICAgfSxcblxuICAgIGFzeW5jIF9zZXR1cE5hdGl2ZUF1dG9tYXRpb24gKHsgYnJvd3NlckNsaWVudCwgcnVudGltZUluZm8sIG5hdGl2ZUF1dG9tYXRpb25PcHRpb25zIH0pIHtcbiAgICAgICAgY29uc3QgbmF0aXZlQXV0b21hdGlvbiA9IGF3YWl0IGJyb3dzZXJDbGllbnQuY3JlYXRlTWFpbldpbmRvd05hdGl2ZUF1dG9tYXRpb24obmF0aXZlQXV0b21hdGlvbk9wdGlvbnMpO1xuXG4gICAgICAgIGF3YWl0IG5hdGl2ZUF1dG9tYXRpb24uc3RhcnQoKTtcblxuICAgICAgICBydW50aW1lSW5mby5uYXRpdmVBdXRvbWF0aW9uID0gbmF0aXZlQXV0b21hdGlvbjtcbiAgICB9LFxuXG4gICAgYXN5bmMgX3N0YXJ0Q2hyb21lIChzdGFydE9wdGlvbnMsIHBhZ2VVcmwpIHtcbiAgICAgICAgaWYgKHN0YXJ0T3B0aW9ucy5pc0NvbnRhaW5lcml6ZWQpXG4gICAgICAgICAgICBhd2FpdCBzdGFydExvY2FsQ2hyb21lT25Eb2NrZXIocGFnZVVybCwgc3RhcnRPcHRpb25zKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgYXdhaXQgc3RhcnRMb2NhbENocm9tZShwYWdlVXJsLCBzdGFydE9wdGlvbnMpO1xuICAgIH0sXG5cbiAgICBhc3luYyBvcGVuQnJvd3NlciAoYnJvd3NlcklkLCBwYWdlVXJsLCBjb25maWcsIGFkZGl0aW9uYWxPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZFBhZ2VVcmwgPSBwYXJzZVVybChwYWdlVXJsKTtcbiAgICAgICAgY29uc3QgcnVudGltZUluZm8gICA9IGF3YWl0IHRoaXMuX2NyZWF0ZVJ1blRpbWVJbmZvKHBhcnNlZFBhZ2VVcmwuaG9zdG5hbWUsIGNvbmZpZywgYWRkaXRpb25hbE9wdGlvbnMuZGlzYWJsZU11bHRpcGxlV2luZG93cyk7XG5cbiAgICAgICAgcnVudGltZUluZm8uYnJvd3Nlck5hbWUgPSB0aGlzLl9nZXRCcm93c2VyTmFtZSgpO1xuICAgICAgICBydW50aW1lSW5mby5icm93c2VySWQgICA9IGJyb3dzZXJJZDtcblxuICAgICAgICBydW50aW1lSW5mby5wcm92aWRlck1ldGhvZHMgPSB7XG4gICAgICAgICAgICByZXNpemVMb2NhbEJyb3dzZXJXaW5kb3c6ICguLi5hcmdzKSA9PiB0aGlzLnJlc2l6ZUxvY2FsQnJvd3NlcldpbmRvdyguLi5hcmdzKSxcbiAgICAgICAgICAgIHJlcG9ydFdhcm5pbmc6ICAgICAgICAgICAgKC4uLmFyZ3MpID0+IHRoaXMucmVwb3J0V2FybmluZyhicm93c2VySWQsIC4uLmFyZ3MpLFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vTk9URTogQSBub3Qtd29ya2luZyB0YWIgaXMgb3BlbmVkIHdoZW4gdGhlIGJyb3dzZXIgc3RhcnQgaW4gdGhlIGRvY2tlciBzbyB3ZSBzaG91bGQgY3JlYXRlIGEgbmV3IHRhYi5cbiAgICAgICAgYXdhaXQgdGhpcy5fc3RhcnRDaHJvbWUoT2JqZWN0LmFzc2lnbih7IGlzTmF0aXZlQXV0b21hdGlvbjogYWRkaXRpb25hbE9wdGlvbnMubmF0aXZlQXV0b21hdGlvbiB9LCBydW50aW1lSW5mbyksIHBhZ2VVcmwpO1xuICAgICAgICBhd2FpdCB0aGlzLndhaXRGb3JDb25uZWN0aW9uUmVhZHkoYnJvd3NlcklkKTtcblxuICAgICAgICBydW50aW1lSW5mby52aWV3cG9ydFNpemUgICAgICA9IGF3YWl0IHRoaXMucnVuSW5pdFNjcmlwdChicm93c2VySWQsIEdFVF9XSU5ET1dfRElNRU5TSU9OU19JTkZPX1NDUklQVCk7XG4gICAgICAgIHJ1bnRpbWVJbmZvLmFjdGl2ZVdpbmRvd0lkICAgID0gbnVsbDtcbiAgICAgICAgcnVudGltZUluZm8ud2luZG93RGVzY3JpcHRvcnMgPSB7fTtcblxuICAgICAgICBjb25zdCBicm93c2VyQ2xpZW50ID0gbmV3IEJyb3dzZXJDbGllbnQocnVudGltZUluZm8pO1xuXG4gICAgICAgIHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXSA9IHJ1bnRpbWVJbmZvO1xuXG4gICAgICAgIGlmIChhZGRpdGlvbmFsT3B0aW9ucy5uYXRpdmVBdXRvbWF0aW9uKVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2V0dXBOYXRpdmVBdXRvbWF0aW9uKHsgYnJvd3NlcklkLCBicm93c2VyQ2xpZW50LCBydW50aW1lSW5mbywgbmF0aXZlQXV0b21hdGlvbk9wdGlvbnM6IHRvTmF0aXZlQXV0b21hdGlvblNldHVwT3B0aW9ucyhhZGRpdGlvbmFsT3B0aW9ucywgY29uZmlnLmhlYWRsZXNzKSB9KTtcblxuICAgICAgICBpZiAoYWRkaXRpb25hbE9wdGlvbnMubmF0aXZlQXV0b21hdGlvbiB8fCAhYWRkaXRpb25hbE9wdGlvbnMuZGlzYWJsZU11bHRpcGxlV2luZG93cylcbiAgICAgICAgICAgIHJ1bnRpbWVJbmZvLmFjdGl2ZVdpbmRvd0lkID0gcnVudGltZUluZm8/Lm5hdGl2ZUF1dG9tYXRpb24/LndpbmRvd0lkIHx8IHRoaXMuY2FsY3VsYXRlV2luZG93SWQoKTtcblxuICAgICAgICBhd2FpdCBicm93c2VyQ2xpZW50LmluaXRNYWluV2luZG93Q2RwQ2xpZW50KCk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fZW5zdXJlV2luZG93SXNFeHBhbmRlZChicm93c2VySWQsIHJ1bnRpbWVJbmZvLnZpZXdwb3J0U2l6ZSk7XG5cbiAgICAgICAgdGhpcy5fc2V0VXNlckFnZW50TWV0YUluZm9Gb3JFbXVsYXRpbmdEZXZpY2UoYnJvd3NlcklkLCBydW50aW1lSW5mby5jb25maWcpO1xuXG4gICAgICAgIGNocm9tZUJyb3dzZXJQcm92aWRlckxvZ2dlcignYnJvd3NlciBvcGVuZWQgJXMnLCBicm93c2VySWQpO1xuICAgIH0sXG5cbiAgICBhc3luYyBjbG9zZUJyb3dzZXIgKGJyb3dzZXJJZCwgY2xvc2luZ0luZm8gPSB7fSkge1xuICAgICAgICBjb25zdCBydW50aW1lSW5mbyA9IHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcblxuICAgICAgICBpZiAocnVudGltZUluZm8ubmF0aXZlQXV0b21hdGlvbilcbiAgICAgICAgICAgIGF3YWl0IHJ1bnRpbWVJbmZvLm5hdGl2ZUF1dG9tYXRpb24uZGlzcG9zZSgpO1xuXG4gICAgICAgIGlmIChydW50aW1lSW5mby5icm93c2VyQ2xpZW50LmlzSGVhZGxlc3NUYWIoKSlcbiAgICAgICAgICAgIGF3YWl0IHJ1bnRpbWVJbmZvLmJyb3dzZXJDbGllbnQuY2xvc2VUYWIoKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5jbG9zZUxvY2FsQnJvd3Nlcihicm93c2VySWQpO1xuXG4gICAgICAgIGlmIChPUy5tYWMgfHwgcnVudGltZUluZm8uY29uZmlnLmhlYWRsZXNzKVxuICAgICAgICAgICAgYXdhaXQgc3RvcExvY2FsQ2hyb21lKHJ1bnRpbWVJbmZvKTtcblxuICAgICAgICBpZiAocnVudGltZUluZm8udGVtcFByb2ZpbGVEaXIgJiYgIWNsb3NpbmdJbmZvLmlzUmVzdGFydGluZylcbiAgICAgICAgICAgIGF3YWl0IHJ1bnRpbWVJbmZvLnRlbXBQcm9maWxlRGlyLmRpc3Bvc2UoKTtcblxuICAgICAgICBkZWxldGUgdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdO1xuXG4gICAgICAgIGNocm9tZUJyb3dzZXJQcm92aWRlckxvZ2dlcignYnJvd3NlciBjbG9zZWQgJXMnLCBicm93c2VySWQpO1xuICAgIH0sXG5cbiAgICBhc3luYyByZXNpemVXaW5kb3cgKGJyb3dzZXJJZCwgd2lkdGgsIGhlaWdodCwgY3VycmVudFdpZHRoLCBjdXJyZW50SGVpZ2h0KSB7XG4gICAgICAgIGNvbnN0IHJ1bnRpbWVJbmZvID0gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdO1xuXG4gICAgICAgIGlmIChydW50aW1lSW5mby5jb25maWcubW9iaWxlKVxuICAgICAgICAgICAgYXdhaXQgcnVudGltZUluZm8uYnJvd3NlckNsaWVudC51cGRhdGVNb2JpbGVWaWV3cG9ydFNpemUoKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBydW50aW1lSW5mby52aWV3cG9ydFNpemUud2lkdGggID0gY3VycmVudFdpZHRoO1xuICAgICAgICAgICAgcnVudGltZUluZm8udmlld3BvcnRTaXplLmhlaWdodCA9IGN1cnJlbnRIZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBydW50aW1lSW5mby5icm93c2VyQ2xpZW50LnJlc2l6ZVdpbmRvdyh7IHdpZHRoLCBoZWlnaHQgfSk7XG4gICAgfSxcblxuICAgIGFzeW5jIHN0YXJ0Q2FwdHVyaW5nVmlkZW8gKGJyb3dzZXJJZCkge1xuICAgICAgICBjb25zdCB7IGJyb3dzZXJDbGllbnQgfSA9IHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcblxuICAgICAgICBhd2FpdCBicm93c2VyQ2xpZW50LnN0YXJ0Q2FwdHVyaW5nVmlkZW8oKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgc3RvcENhcHR1cmluZ1ZpZGVvIChicm93c2VySWQpIHtcbiAgICAgICAgY29uc3QgeyBicm93c2VyQ2xpZW50IH0gPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG5cbiAgICAgICAgYXdhaXQgYnJvd3NlckNsaWVudC5zdG9wQ2FwdHVyaW5nVmlkZW8oKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgZ2V0VmlkZW9GcmFtZURhdGEgKGJyb3dzZXJJZCkge1xuICAgICAgICBjb25zdCB7IGJyb3dzZXJDbGllbnQgfSA9IHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcblxuICAgICAgICByZXR1cm4gYnJvd3NlckNsaWVudC5nZXRWaWRlb0ZyYW1lRGF0YSgpO1xuICAgIH0sXG5cbiAgICBhc3luYyBoYXNDdXN0b21BY3Rpb25Gb3JCcm93c2VyIChicm93c2VySWQpIHtcbiAgICAgICAgY29uc3QgeyBjb25maWcsIGJyb3dzZXJDbGllbnQgfSA9IHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcbiAgICAgICAgY29uc3QgY2xpZW50ICAgICAgICAgICAgICAgICAgICA9IGF3YWl0IGJyb3dzZXJDbGllbnQuZ2V0QWN0aXZlQ2xpZW50KCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhhc0Nsb3NlQnJvd3NlcjogICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgIGhhc1Jlc2l6ZVdpbmRvdzogICAgICAgICAgICAgICAgISFjbGllbnQgJiYgKGNvbmZpZy5lbXVsYXRpb24gfHwgY29uZmlnLmhlYWRsZXNzKSxcbiAgICAgICAgICAgIGhhc01heGltaXplV2luZG93OiAgICAgICAgICAgICAgISFjbGllbnQgJiYgY29uZmlnLmhlYWRsZXNzLFxuICAgICAgICAgICAgaGFzVGFrZVNjcmVlbnNob3Q6ICAgICAgICAgICAgICAhIWNsaWVudCxcbiAgICAgICAgICAgIGhhc0Nocm9tZWxlc3NTY3JlZW5zaG90czogICAgICAgISFjbGllbnQsXG4gICAgICAgICAgICBoYXNHZXRWaWRlb0ZyYW1lRGF0YTogICAgICAgICAgICEhY2xpZW50LFxuICAgICAgICAgICAgaGFzQ2FuUmVzaXplV2luZG93VG9EaW1lbnNpb25zOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICB9LFxuXG4gICAgYXN5bmMgX2Vuc3VyZVdpbmRvd0lzRXhwYW5kZWQgKGJyb3dzZXJJZCwgeyBoZWlnaHQsIHdpZHRoLCBhdmFpbGFibGVIZWlnaHQsIGF2YWlsYWJsZVdpZHRoLCBvdXRlcldpZHRoLCBvdXRlckhlaWdodCB9KSB7XG4gICAgICAgIGlmIChoZWlnaHQgPCBNSU5fQVZBSUxBQkxFX0RJTUVOU0lPTiB8fCB3aWR0aCA8IE1JTl9BVkFJTEFCTEVfRElNRU5TSU9OKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdIZWlnaHQgPSBNYXRoLm1heChhdmFpbGFibGVIZWlnaHQsIE1JTl9BVkFJTEFCTEVfRElNRU5TSU9OKTtcbiAgICAgICAgICAgIGNvbnN0IG5ld1dpZHRoICA9IE1hdGgubWF4KE1hdGguZmxvb3IoYXZhaWxhYmxlV2lkdGggLyAyKSwgTUlOX0FWQUlMQUJMRV9ESU1FTlNJT04pO1xuXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnJlc2l6ZVdpbmRvdyhicm93c2VySWQsIG5ld1dpZHRoLCBuZXdIZWlnaHQsIG91dGVyV2lkdGgsIG91dGVySGVpZ2h0KTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBhc3luYyBvcGVuRmlsZVByb3RvY29sIChicm93c2VySWQsIHVybCkge1xuICAgICAgICBjb25zdCBjZHBDbGllbnQgPSBhd2FpdCB0aGlzLmdldEN1cnJlbnRDRFBTZXNzaW9uKGJyb3dzZXJJZCk7XG5cbiAgICAgICAgYXdhaXQgbmF2aWdhdGVUbyhjZHBDbGllbnQsIHVybCk7XG4gICAgfSxcblxuICAgIGFzeW5jIGRpc3BhdGNoTmF0aXZlQXV0b21hdGlvbkV2ZW50IChicm93c2VySWQsIHR5cGUsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgY2RwQ2xpZW50ID0gYXdhaXQgdGhpcy5nZXRDdXJyZW50Q0RQU2Vzc2lvbihicm93c2VySWQpO1xuXG4gICAgICAgIGF3YWl0IGRpc3BhdGNoTmF0aXZlQXV0b21hdGlvbkV2ZW50KGNkcENsaWVudCwgdHlwZSwgb3B0aW9ucyk7XG4gICAgfSxcblxuICAgIGFzeW5jIGRpc3BhdGNoTmF0aXZlQXV0b21hdGlvbkV2ZW50U2VxdWVuY2UgKGJyb3dzZXJJZCwgZXZlbnRTZXF1ZW5jZSkge1xuICAgICAgICBjb25zdCBjZHBDbGllbnQgPSBhd2FpdCB0aGlzLmdldEN1cnJlbnRDRFBTZXNzaW9uKGJyb3dzZXJJZCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBldmVudCBvZiBldmVudFNlcXVlbmNlKSB7XG4gICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gRXZlbnRUeXBlLkRlbGF5KVxuICAgICAgICAgICAgICAgIGF3YWl0IGRlbGF5KGV2ZW50Lm9wdGlvbnMuZGVsYXkpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGF3YWl0IGRpc3BhdGNoTmF0aXZlQXV0b21hdGlvbkV2ZW50KGNkcENsaWVudCwgZXZlbnQudHlwZSwgZXZlbnQub3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgc3VwcG9ydE5hdGl2ZUF1dG9tYXRpb24gKCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuXG4gICAgZ2V0TmF0aXZlQXV0b21hdGlvbiAoYnJvd3NlcklkKSB7XG4gICAgICAgIGNvbnN0IHJ1bnRpbWVJbmZvID0gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdO1xuXG4gICAgICAgIHJldHVybiBydW50aW1lSW5mby5uYXRpdmVBdXRvbWF0aW9uO1xuICAgIH0sXG5cbiAgICBhc3luYyBnZXROZXdXaW5kb3dJZEluTmF0aXZlQXV0b21hdGlvbiAoYnJvd3NlcklkKSB7XG4gICAgICAgIGNvbnN0IHJ1bnRpbWVJbmZvID0gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdO1xuXG4gICAgICAgIHJldHVybiBydW50aW1lSW5mby5uYXRpdmVBdXRvbWF0aW9uLmdldE5ld1dpbmRvd0lkSW5OYXRpdmVBdXRvbWF0aW9uKCk7XG4gICAgfSxcbn07XG4iXX0=
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQTJCO0FBQzNCLDZCQUF3QztBQUN4QyxtREFBNEM7QUFDNUMsa0VBQStDO0FBQy9DLHNEQUFpQztBQUNqQyxpREFJd0I7QUFDeEIsc0VBQW9GO0FBQ3BGLDZDQUE2QztBQUM3QyxvRUFBd0g7QUFDeEgsc0VBQWlGO0FBQ2pGLGtFQUFtRTtBQUNuRSx1RUFBK0M7QUFDL0MsNEVBQWdHO0FBRWhHLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBRW5DLGtEQUNPLGNBQXFCLEtBRXhCLFNBQVMsQ0FBRSxJQUFJO1FBQ1gsT0FBTyxJQUFBLGdCQUFTLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0IsQ0FBRSxTQUFTO1FBQ2pDLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sU0FBUyxHQUFXLE1BQU0sYUFBYSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRWhFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCx5QkFBeUIsQ0FBRSxXQUFXO1FBQ2xDLE9BQU8sV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsc0JBQXNCO1FBQzlELE9BQU8sc0JBQWlCLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsdUNBQXVDLENBQUUsU0FBUyxFQUFFLE1BQU07UUFDdEQsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVB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UyxDQUFDLENBQUM7UUFFN0QsS0FBSyxNQUFNLEtBQUssSUFBSSxhQUFhLEVBQUU7WUFDL0IsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGlCQUFTLENBQUMsS0FBSztnQkFDOUIsTUFBTSxJQUFBLGVBQUssRUFBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDOztnQkFFakMsTUFBTSxJQUFBLG1CQUE2QixFQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNqRjtJQUNMLENBQUM7SUFFRCx1QkFBdUI7UUFDbkIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELG1CQUFtQixDQUFFLFNBQVM7UUFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVuRCxPQUFPLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGdDQUFnQyxDQUFFLFNBQVM7UUFDN0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVuRCxPQUFPLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO0lBQzNFLENBQUMsSUFDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPUyBmcm9tICdvcy1mYW1pbHknO1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VVcmwgfSBmcm9tICd1cmwnO1xuaW1wb3J0IGRlZGljYXRlZFByb3ZpZGVyQmFzZSBmcm9tICcuLi9iYXNlJztcbmltcG9ydCBDaHJvbWVSdW5UaW1lSW5mbyBmcm9tICcuL3J1bnRpbWUtaW5mbyc7XG5pbXBvcnQgZ2V0Q29uZmlnIGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7XG4gICAgc3RhcnQgYXMgc3RhcnRMb2NhbENocm9tZSxcbiAgICBzdGFydE9uRG9ja2VyIGFzIHN0YXJ0TG9jYWxDaHJvbWVPbkRvY2tlcixcbiAgICBzdG9wIGFzIHN0b3BMb2NhbENocm9tZSxcbn0gZnJvbSAnLi9sb2NhbC1jaHJvbWUnO1xuaW1wb3J0IHsgR0VUX1dJTkRPV19ESU1FTlNJT05TX0lORk9fU0NSSVBUIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xpZW50LWZ1bmN0aW9ucyc7XG5pbXBvcnQgeyBCcm93c2VyQ2xpZW50IH0gZnJvbSAnLi9jZHAtY2xpZW50JztcbmltcG9ydCB7IGRpc3BhdGNoRXZlbnQgYXMgZGlzcGF0Y2hOYXRpdmVBdXRvbWF0aW9uRXZlbnQsIG5hdmlnYXRlVG8gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9uYXRpdmUtYXV0b21hdGlvbi91dGlscy9jZHAnO1xuaW1wb3J0IHsgY2hyb21lQnJvd3NlclByb3ZpZGVyTG9nZ2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbHMvZGVidWctbG9nZ2Vycyc7XG5pbXBvcnQgeyBFdmVudFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9uYXRpdmUtYXV0b21hdGlvbi90eXBlcyc7XG5pbXBvcnQgZGVsYXkgZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbHMvZGVsYXknO1xuaW1wb3J0IHsgdG9OYXRpdmVBdXRvbWF0aW9uU2V0dXBPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbmF0aXZlLWF1dG9tYXRpb24vdXRpbHMvY29udmVydCc7XG5cbmNvbnN0IE1JTl9BVkFJTEFCTEVfRElNRU5TSU9OID0gNTA7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICAuLi5kZWRpY2F0ZWRQcm92aWRlckJhc2UsXG5cbiAgICBnZXRDb25maWcgKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGdldENvbmZpZyhuYW1lKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgZ2V0Q3VycmVudENEUFNlc3Npb24gKGJyb3dzZXJJZCkge1xuICAgICAgICBjb25zdCB7IGJyb3dzZXJDbGllbnQgfSA9IHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcbiAgICAgICAgY29uc3QgY2RwQ2xpZW50ICAgICAgICAgPSBhd2FpdCBicm93c2VyQ2xpZW50LmdldEFjdGl2ZUNsaWVudCgpO1xuXG4gICAgICAgIHJldHVybiBjZHBDbGllbnQ7XG4gICAgfSxcblxuICAgIF9nZXRCcm93c2VyUHJvdG9jb2xDbGllbnQgKHJ1bnRpbWVJbmZvKSB7XG4gICAgICAgIHJldHVybiBydW50aW1lSW5mby5icm93c2VyQ2xpZW50O1xuICAgIH0sXG5cbiAgICBhc3luYyBfY3JlYXRlUnVuVGltZUluZm8gKGhvc3ROYW1lLCBjb25maWcsIGRpc2FibGVNdWx0aXBsZVdpbmRvd3MpIHtcbiAgICAgICAgcmV0dXJuIENocm9tZVJ1blRpbWVJbmZvLmNyZWF0ZShob3N0TmFtZSwgY29uZmlnLCBkaXNhYmxlTXVsdGlwbGVXaW5kb3dzKTtcbiAgICB9LFxuXG4gICAgX3NldFVzZXJBZ2VudE1ldGFJbmZvRm9yRW11bGF0aW5nRGV2aWNlIChicm93c2VySWQsIGNvbmZpZykge1xuICAgICAgICBjb25zdCB7IGVtdWxhdGlvbiwgZGV2aWNlTmFtZSB9ID0gY29uZmlnO1xuICAgICAgICBjb25zdCBpc0RldmljZUVtdWxhdGlvbiAgICAgICAgID0gZW11bGF0aW9uICYmIGRldmljZU5hbWU7XG5cbiAgICAgICAgaWYgKCFpc0RldmljZUVtdWxhdGlvbilcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBjb25zdCBtZXRhSW5mbyA9IGBFbXVsYXRpbmcgJHtkZXZpY2VOYW1lfWA7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgID0ge1xuICAgICAgICAgICAgYXBwZW5kVG9Vc2VyQWdlbnQ6IHRydWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5zZXRVc2VyQWdlbnRNZXRhSW5mbyhicm93c2VySWQsIG1ldGFJbmZvLCBvcHRpb25zKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgX3NldHVwTmF0aXZlQXV0b21hdGlvbiAoeyBicm93c2VyQ2xpZW50LCBydW50aW1lSW5mbywgbmF0aXZlQXV0b21hdGlvbk9wdGlvbnMgfSkge1xuICAgICAgICBjb25zdCBuYXRpdmVBdXRvbWF0aW9uID0gYXdhaXQgYnJvd3NlckNsaWVudC5jcmVhdGVNYWluV2luZG93TmF0aXZlQXV0b21hdGlvbihuYXRpdmVBdXRvbWF0aW9uT3B0aW9ucyk7XG5cbiAgICAgICAgYXdhaXQgbmF0aXZlQXV0b21hdGlvbi5zdGFydCgpO1xuXG4gICAgICAgIHJ1bnRpbWVJbmZvLm5hdGl2ZUF1dG9tYXRpb24gPSBuYXRpdmVBdXRvbWF0aW9uO1xuICAgIH0sXG5cbiAgICBhc3luYyBfc3RhcnRDaHJvbWUgKHN0YXJ0T3B0aW9ucywgcGFnZVVybCkge1xuICAgICAgICBpZiAoc3RhcnRPcHRpb25zLmlzQ29udGFpbmVyaXplZClcbiAgICAgICAgICAgIGF3YWl0IHN0YXJ0TG9jYWxDaHJvbWVPbkRvY2tlcihwYWdlVXJsLCBzdGFydE9wdGlvbnMpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBhd2FpdCBzdGFydExvY2FsQ2hyb21lKHBhZ2VVcmwsIHN0YXJ0T3B0aW9ucyk7XG4gICAgfSxcblxuICAgIGFzeW5jIG9wZW5Ccm93c2VyIChicm93c2VySWQsIHBhZ2VVcmwsIGNvbmZpZywgYWRkaXRpb25hbE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkUGFnZVVybCA9IHBhcnNlVXJsKHBhZ2VVcmwpO1xuICAgICAgICBjb25zdCBydW50aW1lSW5mbyAgID0gYXdhaXQgdGhpcy5fY3JlYXRlUnVuVGltZUluZm8ocGFyc2VkUGFnZVVybC5ob3N0bmFtZSwgY29uZmlnLCBhZGRpdGlvbmFsT3B0aW9ucy5kaXNhYmxlTXVsdGlwbGVXaW5kb3dzKTtcblxuICAgICAgICBydW50aW1lSW5mby5icm93c2VyTmFtZSA9IHRoaXMuX2dldEJyb3dzZXJOYW1lKCk7XG4gICAgICAgIHJ1bnRpbWVJbmZvLmJyb3dzZXJJZCAgID0gYnJvd3NlcklkO1xuXG4gICAgICAgIHJ1bnRpbWVJbmZvLnByb3ZpZGVyTWV0aG9kcyA9IHtcbiAgICAgICAgICAgIHJlc2l6ZUxvY2FsQnJvd3NlcldpbmRvdzogKC4uLmFyZ3MpID0+IHRoaXMucmVzaXplTG9jYWxCcm93c2VyV2luZG93KC4uLmFyZ3MpLFxuICAgICAgICAgICAgcmVwb3J0V2FybmluZzogICAgICAgICAgICAoLi4uYXJncykgPT4gdGhpcy5yZXBvcnRXYXJuaW5nKGJyb3dzZXJJZCwgLi4uYXJncyksXG4gICAgICAgIH07XG5cbiAgICAgICAgLy9OT1RFOiBBIG5vdC13b3JraW5nIHRhYiBpcyBvcGVuZWQgd2hlbiB0aGUgYnJvd3NlciBzdGFydCBpbiB0aGUgZG9ja2VyIHNvIHdlIHNob3VsZCBjcmVhdGUgYSBuZXcgdGFiLlxuICAgICAgICBhd2FpdCB0aGlzLl9zdGFydENocm9tZShPYmplY3QuYXNzaWduKHsgaXNOYXRpdmVBdXRvbWF0aW9uOiBhZGRpdGlvbmFsT3B0aW9ucy5uYXRpdmVBdXRvbWF0aW9uIH0sIHJ1bnRpbWVJbmZvKSwgcGFnZVVybCk7XG4gICAgICAgIGF3YWl0IHRoaXMud2FpdEZvckNvbm5lY3Rpb25SZWFkeShicm93c2VySWQpO1xuXG4gICAgICAgIHJ1bnRpbWVJbmZvLnZpZXdwb3J0U2l6ZSAgICAgID0gYXdhaXQgdGhpcy5ydW5Jbml0U2NyaXB0KGJyb3dzZXJJZCwgR0VUX1dJTkRPV19ESU1FTlNJT05TX0lORk9fU0NSSVBUKTtcbiAgICAgICAgcnVudGltZUluZm8uYWN0aXZlV2luZG93SWQgICAgPSBudWxsO1xuICAgICAgICBydW50aW1lSW5mby53aW5kb3dEZXNjcmlwdG9ycyA9IHt9O1xuXG4gICAgICAgIGNvbnN0IGJyb3dzZXJDbGllbnQgPSBuZXcgQnJvd3NlckNsaWVudChydW50aW1lSW5mbyk7XG5cbiAgICAgICAgdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdID0gcnVudGltZUluZm87XG5cbiAgICAgICAgaWYgKGFkZGl0aW9uYWxPcHRpb25zLm5hdGl2ZUF1dG9tYXRpb24pXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9zZXR1cE5hdGl2ZUF1dG9tYXRpb24oeyBicm93c2VySWQsIGJyb3dzZXJDbGllbnQsIHJ1bnRpbWVJbmZvLCBuYXRpdmVBdXRvbWF0aW9uT3B0aW9uczogdG9OYXRpdmVBdXRvbWF0aW9uU2V0dXBPcHRpb25zKGFkZGl0aW9uYWxPcHRpb25zLCBjb25maWcuaGVhZGxlc3MpIH0pO1xuXG4gICAgICAgIGlmIChhZGRpdGlvbmFsT3B0aW9ucy5uYXRpdmVBdXRvbWF0aW9uIHx8ICFhZGRpdGlvbmFsT3B0aW9ucy5kaXNhYmxlTXVsdGlwbGVXaW5kb3dzKVxuICAgICAgICAgICAgcnVudGltZUluZm8uYWN0aXZlV2luZG93SWQgPSBydW50aW1lSW5mbz8ubmF0aXZlQXV0b21hdGlvbj8ud2luZG93SWQgfHwgdGhpcy5jYWxjdWxhdGVXaW5kb3dJZCgpO1xuXG4gICAgICAgIGF3YWl0IGJyb3dzZXJDbGllbnQuaW5pdE1haW5XaW5kb3dDZHBDbGllbnQoKTtcblxuICAgICAgICBhd2FpdCB0aGlzLl9lbnN1cmVXaW5kb3dJc0V4cGFuZGVkKGJyb3dzZXJJZCwgcnVudGltZUluZm8udmlld3BvcnRTaXplKTtcblxuICAgICAgICB0aGlzLl9zZXRVc2VyQWdlbnRNZXRhSW5mb0ZvckVtdWxhdGluZ0RldmljZShicm93c2VySWQsIHJ1bnRpbWVJbmZvLmNvbmZpZyk7XG5cbiAgICAgICAgY2hyb21lQnJvd3NlclByb3ZpZGVyTG9nZ2VyKCdicm93c2VyIG9wZW5lZCAlcycsIGJyb3dzZXJJZCk7XG4gICAgfSxcblxuICAgIGFzeW5jIGNsb3NlQnJvd3NlciAoYnJvd3NlcklkLCBjbG9zaW5nSW5mbyA9IHt9KSB7XG4gICAgICAgIGNvbnN0IHJ1bnRpbWVJbmZvID0gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdO1xuXG4gICAgICAgIGlmIChydW50aW1lSW5mby5uYXRpdmVBdXRvbWF0aW9uKVxuICAgICAgICAgICAgYXdhaXQgcnVudGltZUluZm8ubmF0aXZlQXV0b21hdGlvbi5kaXNwb3NlKCk7XG5cbiAgICAgICAgaWYgKHJ1bnRpbWVJbmZvLmJyb3dzZXJDbGllbnQuaXNIZWFkbGVzc1RhYigpKVxuICAgICAgICAgICAgYXdhaXQgcnVudGltZUluZm8uYnJvd3NlckNsaWVudC5jbG9zZVRhYigpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNsb3NlTG9jYWxCcm93c2VyKGJyb3dzZXJJZCk7XG5cbiAgICAgICAgaWYgKE9TLm1hYyB8fCBydW50aW1lSW5mby5jb25maWcuaGVhZGxlc3MpXG4gICAgICAgICAgICBhd2FpdCBzdG9wTG9jYWxDaHJvbWUocnVudGltZUluZm8pO1xuXG4gICAgICAgIGlmIChydW50aW1lSW5mby50ZW1wUHJvZmlsZURpciAmJiAhY2xvc2luZ0luZm8uaXNSZXN0YXJ0aW5nKVxuICAgICAgICAgICAgYXdhaXQgcnVudGltZUluZm8udGVtcFByb2ZpbGVEaXIuZGlzcG9zZSgpO1xuXG4gICAgICAgIGRlbGV0ZSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG5cbiAgICAgICAgY2hyb21lQnJvd3NlclByb3ZpZGVyTG9nZ2VyKCdicm93c2VyIGNsb3NlZCAlcycsIGJyb3dzZXJJZCk7XG4gICAgfSxcblxuICAgIGFzeW5jIHJlc2l6ZVdpbmRvdyAoYnJvd3NlcklkLCB3aWR0aCwgaGVpZ2h0LCBjdXJyZW50V2lkdGgsIGN1cnJlbnRIZWlnaHQpIHtcbiAgICAgICAgY29uc3QgcnVudGltZUluZm8gPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG5cbiAgICAgICAgaWYgKHJ1bnRpbWVJbmZvLmNvbmZpZy5tb2JpbGUpXG4gICAgICAgICAgICBhd2FpdCBydW50aW1lSW5mby5icm93c2VyQ2xpZW50LnVwZGF0ZU1vYmlsZVZpZXdwb3J0U2l6ZSgpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJ1bnRpbWVJbmZvLnZpZXdwb3J0U2l6ZS53aWR0aCAgPSBjdXJyZW50V2lkdGg7XG4gICAgICAgICAgICBydW50aW1lSW5mby52aWV3cG9ydFNpemUuaGVpZ2h0ID0gY3VycmVudEhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHJ1bnRpbWVJbmZvLmJyb3dzZXJDbGllbnQucmVzaXplV2luZG93KHsgd2lkdGgsIGhlaWdodCB9KTtcbiAgICB9LFxuXG4gICAgYXN5bmMgbWF4aW1pemVXaW5kb3dOYXRpdmVBdXRvbWF0aW9uIChicm93c2VySWQpIHtcbiAgICAgICAgY29uc3QgeyBicm93c2VyQ2xpZW50IH0gPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG5cbiAgICAgICAgYXdhaXQgYnJvd3NlckNsaWVudC5tYXhpbWl6ZVdpbmRvd05hdGl2ZUF1dG9tYXRpb24oKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgcmVzaXplQm91bmRzIChicm93c2VySWQsIHdpZHRoLCBoZWlnaHQsIGN1cnJlbnRXaWR0aCwgY3VycmVudEhlaWdodCkge1xuICAgICAgICBjb25zdCB7IGJyb3dzZXJDbGllbnQgfSA9IHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcblxuICAgICAgICBhd2FpdCBicm93c2VyQ2xpZW50LnJlc2l6ZUJvdW5kcyh7IHdpZHRoLCBoZWlnaHQsIGN1cnJlbnRXaWR0aCwgY3VycmVudEhlaWdodCB9KTtcbiAgICB9LFxuXG4gICAgYXN5bmMgc3RhcnRDYXB0dXJpbmdWaWRlbyAoYnJvd3NlcklkKSB7XG4gICAgICAgIGNvbnN0IHsgYnJvd3NlckNsaWVudCB9ID0gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdO1xuXG4gICAgICAgIGF3YWl0IGJyb3dzZXJDbGllbnQuc3RhcnRDYXB0dXJpbmdWaWRlbygpO1xuICAgIH0sXG5cbiAgICBhc3luYyBzdG9wQ2FwdHVyaW5nVmlkZW8gKGJyb3dzZXJJZCkge1xuICAgICAgICBjb25zdCB7IGJyb3dzZXJDbGllbnQgfSA9IHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcblxuICAgICAgICBhd2FpdCBicm93c2VyQ2xpZW50LnN0b3BDYXB0dXJpbmdWaWRlbygpO1xuICAgIH0sXG5cbiAgICBhc3luYyBnZXRWaWRlb0ZyYW1lRGF0YSAoYnJvd3NlcklkKSB7XG4gICAgICAgIGNvbnN0IHsgYnJvd3NlckNsaWVudCB9ID0gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdO1xuXG4gICAgICAgIHJldHVybiBicm93c2VyQ2xpZW50LmdldFZpZGVvRnJhbWVEYXRhKCk7XG4gICAgfSxcblxuICAgIGFzeW5jIGhhc0N1c3RvbUFjdGlvbkZvckJyb3dzZXIgKGJyb3dzZXJJZCkge1xuICAgICAgICBjb25zdCB7IGNvbmZpZywgYnJvd3NlckNsaWVudCB9ID0gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdO1xuICAgICAgICBjb25zdCBjbGllbnQgICAgICAgICAgICAgICAgICAgID0gYXdhaXQgYnJvd3NlckNsaWVudC5nZXRBY3RpdmVDbGllbnQoKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGFzQ2xvc2VCcm93c2VyOiAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgaGFzUmVzaXplV2luZG93OiAgICAgICAgICAgICAgICAhIWNsaWVudCAmJiAoY29uZmlnLmVtdWxhdGlvbiB8fCBjb25maWcuaGVhZGxlc3MpLFxuICAgICAgICAgICAgaGFzTWF4aW1pemVXaW5kb3c6ICAgICAgICAgICAgICAhIWNsaWVudCAmJiBjb25maWcuaGVhZGxlc3MsXG4gICAgICAgICAgICBoYXNUYWtlU2NyZWVuc2hvdDogICAgICAgICAgICAgICEhY2xpZW50LFxuICAgICAgICAgICAgaGFzQ2hyb21lbGVzc1NjcmVlbnNob3RzOiAgICAgICAhIWNsaWVudCxcbiAgICAgICAgICAgIGhhc0dldFZpZGVvRnJhbWVEYXRhOiAgICAgICAgICAgISFjbGllbnQsXG4gICAgICAgICAgICBoYXNDYW5SZXNpemVXaW5kb3dUb0RpbWVuc2lvbnM6IGZhbHNlLFxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBhc3luYyBfZW5zdXJlV2luZG93SXNFeHBhbmRlZCAoYnJvd3NlcklkLCB7IGhlaWdodCwgd2lkdGgsIGF2YWlsYWJsZUhlaWdodCwgYXZhaWxhYmxlV2lkdGgsIG91dGVyV2lkdGgsIG91dGVySGVpZ2h0IH0pIHtcbiAgICAgICAgaWYgKGhlaWdodCA8IE1JTl9BVkFJTEFCTEVfRElNRU5TSU9OIHx8IHdpZHRoIDwgTUlOX0FWQUlMQUJMRV9ESU1FTlNJT04pIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0hlaWdodCA9IE1hdGgubWF4KGF2YWlsYWJsZUhlaWdodCwgTUlOX0FWQUlMQUJMRV9ESU1FTlNJT04pO1xuICAgICAgICAgICAgY29uc3QgbmV3V2lkdGggID0gTWF0aC5tYXgoTWF0aC5mbG9vcihhdmFpbGFibGVXaWR0aCAvIDIpLCBNSU5fQVZBSUxBQkxFX0RJTUVOU0lPTik7XG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVzaXplV2luZG93KGJyb3dzZXJJZCwgbmV3V2lkdGgsIG5ld0hlaWdodCwgb3V0ZXJXaWR0aCwgb3V0ZXJIZWlnaHQpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGFzeW5jIG9wZW5GaWxlUHJvdG9jb2wgKGJyb3dzZXJJZCwgdXJsKSB7XG4gICAgICAgIGNvbnN0IGNkcENsaWVudCA9IGF3YWl0IHRoaXMuZ2V0Q3VycmVudENEUFNlc3Npb24oYnJvd3NlcklkKTtcblxuICAgICAgICBhd2FpdCBuYXZpZ2F0ZVRvKGNkcENsaWVudCwgdXJsKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgZGlzcGF0Y2hOYXRpdmVBdXRvbWF0aW9uRXZlbnQgKGJyb3dzZXJJZCwgdHlwZSwgb3B0aW9ucykge1xuICAgICAgICBjb25zdCBjZHBDbGllbnQgPSBhd2FpdCB0aGlzLmdldEN1cnJlbnRDRFBTZXNzaW9uKGJyb3dzZXJJZCk7XG5cbiAgICAgICAgYXdhaXQgZGlzcGF0Y2hOYXRpdmVBdXRvbWF0aW9uRXZlbnQoY2RwQ2xpZW50LCB0eXBlLCBvcHRpb25zKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgZGlzcGF0Y2hOYXRpdmVBdXRvbWF0aW9uRXZlbnRTZXF1ZW5jZSAoYnJvd3NlcklkLCBldmVudFNlcXVlbmNlKSB7XG4gICAgICAgIGNvbnN0IGNkcENsaWVudCA9IGF3YWl0IHRoaXMuZ2V0Q3VycmVudENEUFNlc3Npb24oYnJvd3NlcklkKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIGV2ZW50U2VxdWVuY2UpIHtcbiAgICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBFdmVudFR5cGUuRGVsYXkpXG4gICAgICAgICAgICAgICAgYXdhaXQgZGVsYXkoZXZlbnQub3B0aW9ucy5kZWxheSk7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgYXdhaXQgZGlzcGF0Y2hOYXRpdmVBdXRvbWF0aW9uRXZlbnQoY2RwQ2xpZW50LCBldmVudC50eXBlLCBldmVudC5vcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBzdXBwb3J0TmF0aXZlQXV0b21hdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0sXG5cbiAgICBnZXROYXRpdmVBdXRvbWF0aW9uIChicm93c2VySWQpIHtcbiAgICAgICAgY29uc3QgcnVudGltZUluZm8gPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG5cbiAgICAgICAgcmV0dXJuIHJ1bnRpbWVJbmZvLm5hdGl2ZUF1dG9tYXRpb247XG4gICAgfSxcblxuICAgIGFzeW5jIGdldE5ld1dpbmRvd0lkSW5OYXRpdmVBdXRvbWF0aW9uIChicm93c2VySWQpIHtcbiAgICAgICAgY29uc3QgcnVudGltZUluZm8gPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG5cbiAgICAgICAgcmV0dXJuIHJ1bnRpbWVJbmZvLm5hdGl2ZUF1dG9tYXRpb24uZ2V0TmV3V2luZG93SWRJbk5hdGl2ZUF1dG9tYXRpb24oKTtcbiAgICB9LFxufTtcbiJdfQ==
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9icm93c2VyL3Byb3ZpZGVyL2J1aWx0LWluL2RlZGljYXRlZC9jaHJvbWUvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJvd3NlckNsaWVudCB9IGZyb20gJy4vY2RwLWNsaWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2l6ZSB7XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBoZWlnaHQ6IG51bWJlcjtcbiAgICBvdXRlcldpZHRoPzogbnVtYmVyO1xuICAgIG91dGVySGVpZ2h0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZyB7XG4gICAgY2RwUG9ydDogbnVtYmVyO1xuICAgIGRldmljZU5hbWU/OiBzdHJpbmc7XG4gICAgaGVhZGxlc3M6IGJvb2xlYW47XG4gICAgbW9iaWxlOiBib29sZWFuO1xuICAgIGVtdWxhdGlvbjogZmFsc2U7XG4gICAgdXNlckFnZW50Pzogc3RyaW5nO1xuICAgIHRvdWNoPzogYm9vbGVhbjtcbiAgICB3aWR0aDogbnVtYmVyO1xuICAgIGhlaWdodDogbnVtYmVyO1xuICAgIHNjYWxlRmFjdG9yOiBudW1iZXI7XG4gICAgdXNlclByb2ZpbGU6IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJNZXRob2RzIHtcbiAgICByZXNpemVMb2NhbEJyb3dzZXJXaW5kb3cgKGJyb3dzZXJJZDogc3RyaW5nLCBuZXdXaWR0aDogbnVtYmVyLCBuZXdIZWlnaHQ6IG51bWJlciwgY3VycmVudFdpZHRoOiBudW1iZXIsIGN1cnJlbnRIZWlnaHQ6IG51bWJlcik6IFByb21pc2U8dm9pZD47XG4gICAgcmVwb3J0V2FybmluZyguLi5hcmdzOiBhbnlbXSk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZUluZm8ge1xuICAgIGFjdGl2ZVdpbmRvd0lkOiBzdHJpbmc7XG4gICAgYnJvd3NlcklkOiBzdHJpbmc7XG4gICAgY2RwUG9ydDogbnVtYmVyO1xuICAgIGJyb3dzZXJDbGllbnQ6IEJyb3dzZXJDbGllbnQ7XG4gICAgY29uZmlnOiBDb25maWc7XG4gICAgdmlld3BvcnRTaXplOiBTaXplO1xuICAgIGVtdWxhdGVkRGV2aWNlUGl4ZWxSYXRpbzogbnVtYmVyO1xuICAgIG9yaWdpbmFsRGV2aWNlUGl4ZWxSYXRpbzogbnVtYmVyO1xuICAgIHByb3ZpZGVyTWV0aG9kczogUHJvdmlkZXJNZXRob2RzO1xuICAgIGJyb3dzZXJOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG91Y2hDb25maWdPcHRpb25zIHtcbiAgICBlbmFibGVkOiBib29sZWFuO1xuICAgIGNvbmZpZ3VyYXRpb246ICdkZXNrdG9wJyB8ICdtb2JpbGUnO1xuICAgIG1heFRvdWNoUG9pbnRzOiBudW1iZXI7XG59XG4iXX0=
|