From da631e3eb608762181f5a9b7455193237240eb44 Mon Sep 17 00:00:00 2001 From: aminya Date: Wed, 11 Nov 2020 11:34:33 -0600 Subject: [PATCH 1/2] fix: use rxjs-compat instead of rxjs --- lib/debugger/RemoteDebuggerCommandService.js | 4 ++-- lib/debugger/utils.js | 2 +- package.json | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/debugger/RemoteDebuggerCommandService.js b/lib/debugger/RemoteDebuggerCommandService.js index 56be4025..821742ae 100644 --- a/lib/debugger/RemoteDebuggerCommandService.js +++ b/lib/debugger/RemoteDebuggerCommandService.js @@ -1,8 +1,8 @@ -import type {ConnectableObservable} from 'rxjs'; +import type {ConnectableObservable} from 'rxjs-compat/bundles/rxjs-compat.umd.min.js'; import http from 'http'; import net from 'net'; -import {Observable, Subject} from 'rxjs'; +import {Observable, Subject} from 'rxjs-compat/bundles/rxjs-compat.umd.min.js'; import {getLogger} from 'log4js'; import {sleep} from '@atom-ide-community/nuclide-commons/promise'; diff --git a/lib/debugger/utils.js b/lib/debugger/utils.js index b5ed9213..48443340 100644 --- a/lib/debugger/utils.js +++ b/lib/debugger/utils.js @@ -11,7 +11,7 @@ import {observeAddedHostnames} from '@atom-ide-community/nuclide-commons-atom/pr import nuclideUri from '@atom-ide-community/nuclide-commons/nuclideUri'; import {fastDebounce} from '@atom-ide-community/nuclide-commons/observable'; import UniversalDisposable from '@atom-ide-community/nuclide-commons/UniversalDisposable'; -import {Observable} from 'rxjs'; +import {Observable} from 'rxjs-compat/bundles/rxjs-compat.umd.min.js'; import {track} from '@atom-ide-community/nuclide-commons/analytics'; import * as RemoteDebuggerCommandServiceLocal from './RemoteDebuggerCommandService'; import nullthrows from 'nullthrows'; diff --git a/package.json b/package.json index 2894ef57..43405581 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "react": "16.6.3", "reflect-metadata": "0.1.12", "rxjs": "5.5.9", + "rxjs-compat": "6.3.3", "semver": "5.5.0", "tmp": "0.0.29", "tree-kill": "1.1.0", From 0e87456a41a34c8ac47c30b99189e20480291ce5 Mon Sep 17 00:00:00 2001 From: aminya Date: Wed, 11 Nov 2020 11:36:15 -0600 Subject: [PATCH 2/2] chore: add built files --- dist/debugger/RemoteDebuggerCommandService.js | 12 ++++++------ dist/debugger/utils.js | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/dist/debugger/RemoteDebuggerCommandService.js b/dist/debugger/RemoteDebuggerCommandService.js index 56db8c3b..e7b5cff5 100644 --- a/dist/debugger/RemoteDebuggerCommandService.js +++ b/dist/debugger/RemoteDebuggerCommandService.js @@ -10,7 +10,7 @@ var _http = _interopRequireDefault(require("http")); var _net = _interopRequireDefault(require("net")); -var _rxjs = require("rxjs"); +var _rxjsCompatUmdMin = require("rxjs-compat/bundles/rxjs-compat.umd.min.js"); var _log4js = require("log4js"); @@ -19,7 +19,7 @@ var _promise = require("@atom-ide-community/nuclide-commons/promise"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } let isServerSetup = false; -const debugRequests = new _rxjs.Subject(); +const debugRequests = new _rxjsCompatUmdMin.Subject(); const attachReady = new Map(); const DEBUGGER_REGISTRY_PORT = 9615; @@ -27,9 +27,9 @@ function observeRemoteDebugCommands() { let setupStep; if (!isServerSetup) { - setupStep = _rxjs.Observable.fromPromise(setupServer()).ignoreElements(); + setupStep = _rxjsCompatUmdMin.Observable.fromPromise(setupServer()).ignoreElements(); } else { - setupStep = _rxjs.Observable.empty(); + setupStep = _rxjsCompatUmdMin.Observable.empty(); } return setupStep.concat(debugRequests).publish(); @@ -39,7 +39,7 @@ function observeAttachDebugTargets() { // Validate attach-ready values with the processes with used ports (ready to attach). // Note: we can't use process ids because we could be debugging processes inside containers // where the process ids don't map to the host running this code. - return _rxjs.Observable.interval(3000).startWith(0).switchMap(() => Promise.all(Array.from(attachReady.values()).map(async target => { + return _rxjsCompatUmdMin.Observable.interval(3000).startWith(0).switchMap(() => Promise.all(Array.from(attachReady.values()).map(async target => { if (!(await isPortUsed(target.port))) { attachReady.delete(target.port); } @@ -152,4 +152,4 @@ function handleJsonRequest(body, res) { success })); } -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlJlbW90ZURlYnVnZ2VyQ29tbWFuZFNlcnZpY2UuanMiXSwibmFtZXMiOlsiaXNTZXJ2ZXJTZXR1cCIsImRlYnVnUmVxdWVzdHMiLCJTdWJqZWN0IiwiYXR0YWNoUmVhZHkiLCJNYXAiLCJERUJVR0dFUl9SRUdJU1RSWV9QT1JUIiwib2JzZXJ2ZVJlbW90ZURlYnVnQ29tbWFuZHMiLCJzZXR1cFN0ZXAiLCJPYnNlcnZhYmxlIiwiZnJvbVByb21pc2UiLCJzZXR1cFNlcnZlciIsImlnbm9yZUVsZW1lbnRzIiwiZW1wdHkiLCJjb25jYXQiLCJwdWJsaXNoIiwib2JzZXJ2ZUF0dGFjaERlYnVnVGFyZ2V0cyIsImludGVydmFsIiwic3RhcnRXaXRoIiwic3dpdGNoTWFwIiwiUHJvbWlzZSIsImFsbCIsIkFycmF5IiwiZnJvbSIsInZhbHVlcyIsIm1hcCIsInRhcmdldCIsImlzUG9ydFVzZWQiLCJwb3J0IiwiZGVsZXRlIiwidHJ5Q29ubmVjdFByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiY2xpZW50IiwibmV0IiwiU29ja2V0Iiwib25jZSIsImNsZWFuVXAiLCJlcnIiLCJjb2RlIiwicmVtb3ZlQWxsTGlzdGVuZXJzIiwiZW5kIiwiZGVzdHJveSIsInVucmVmIiwiY29ubmVjdCIsImhvc3QiLCJjb25uZWN0VGltZW91dFByb21pc2UiLCJ0aGVuIiwicmFjZSIsImh0dHAiLCJjcmVhdGVTZXJ2ZXIiLCJyZXEiLCJyZXMiLCJtZXRob2QiLCJ3cml0ZUhlYWQiLCJib2R5Iiwib24iLCJkYXRhIiwiaGFuZGxlSnNvblJlcXVlc3QiLCJKU09OIiwicGFyc2UiLCJsaXN0ZW4iLCJkb21haW4iLCJjb21tYW5kIiwidHlwZSIsInN1Y2Nlc3MiLCJzdHJpbmdpZnkiLCJOdW1iZXIiLCJvcHRpb25zIiwiaWQiLCJsb2NhbFJvb3QiLCJyZW1vdGVSb290IiwiZGVidWdPcHRpb25zIiwic2V0IiwiaW5mbyIsImdldCIsIm5leHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxJQUFJQSxhQUFhLEdBQUcsS0FBcEI7QUFnQkEsTUFBTUMsYUFBaUQsR0FBRyxJQUFJQyxhQUFKLEVBQTFEO0FBQ0EsTUFBTUMsV0FBb0QsR0FBRyxJQUFJQyxHQUFKLEVBQTdEO0FBQ0EsTUFBTUMsc0JBQXNCLEdBQUcsSUFBL0I7O0FBRU8sU0FBU0MsMEJBQVQsR0FFTDtBQUNBLE1BQUlDLFNBQUo7O0FBQ0EsTUFBSSxDQUFDUCxhQUFMLEVBQW9CO0FBQ2xCTyxJQUFBQSxTQUFTLEdBQUdDLGlCQUFXQyxXQUFYLENBQXVCQyxXQUFXLEVBQWxDLEVBQXNDQyxjQUF0QyxFQUFaO0FBQ0QsR0FGRCxNQUVPO0FBQ0xKLElBQUFBLFNBQVMsR0FBR0MsaUJBQVdJLEtBQVgsRUFBWjtBQUNEOztBQUNELFNBQU9MLFNBQVMsQ0FBQ00sTUFBVixDQUFpQlosYUFBakIsRUFBZ0NhLE9BQWhDLEVBQVA7QUFDRDs7QUFFTSxTQUFTQyx5QkFBVCxHQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBT1AsaUJBQVdRLFFBQVgsQ0FBb0IsSUFBcEIsRUFDSkMsU0FESSxDQUNNLENBRE4sRUFFSkMsU0FGSSxDQUVNLE1BQ1RDLE9BQU8sQ0FBQ0MsR0FBUixDQUNFQyxLQUFLLENBQUNDLElBQU4sQ0FBV25CLFdBQVcsQ0FBQ29CLE1BQVosRUFBWCxFQUFpQ0MsR0FBakMsQ0FBcUMsTUFBTUMsTUFBTixJQUFnQjtBQUNuRCxRQUFJLEVBQUUsTUFBTUMsVUFBVSxDQUFDRCxNQUFNLENBQUNFLElBQVIsQ0FBbEIsQ0FBSixFQUFzQztBQUNwQ3hCLE1BQUFBLFdBQVcsQ0FBQ3lCLE1BQVosQ0FBbUJILE1BQU0sQ0FBQ0UsSUFBMUI7QUFDRDtBQUNGLEdBSkQsQ0FERixDQUhHLEVBV0pILEdBWEksQ0FXQSxNQUFNSCxLQUFLLENBQUNDLElBQU4sQ0FBV25CLFdBQVcsQ0FBQ29CLE1BQVosRUFBWCxDQVhOLEVBWUpULE9BWkksRUFBUDtBQWFEOztBQUVELFNBQVNZLFVBQVQsQ0FBb0JDLElBQXBCLEVBQW9EO0FBQ2xELFFBQU1FLGlCQUFpQixHQUFHLElBQUlWLE9BQUosQ0FBWSxDQUFDVyxPQUFELEVBQVVDLE1BQVYsS0FBcUI7QUFDekQsVUFBTUMsTUFBTSxHQUFHLElBQUlDLGFBQUlDLE1BQVIsRUFBZjtBQUNBRixJQUFBQSxNQUFNLENBQ0hHLElBREgsQ0FDUSxTQURSLEVBQ21CLE1BQU07QUFDckJDLE1BQUFBLE9BQU87QUFDUE4sTUFBQUEsT0FBTyxDQUFDLElBQUQsQ0FBUDtBQUNELEtBSkgsRUFLR0ssSUFMSCxDQUtRLE9BTFIsRUFLaUJFLEdBQUcsSUFBSTtBQUNwQkQsTUFBQUEsT0FBTztBQUNQTixNQUFBQSxPQUFPLENBQUNPLEdBQUcsQ0FBQ0MsSUFBSixLQUFhLGNBQWQsQ0FBUDtBQUNELEtBUkg7O0FBVUEsYUFBU0YsT0FBVCxHQUFtQjtBQUNqQkosTUFBQUEsTUFBTSxDQUFDTyxrQkFBUCxDQUEwQixTQUExQjtBQUNBUCxNQUFBQSxNQUFNLENBQUNPLGtCQUFQLENBQTBCLE9BQTFCO0FBQ0FQLE1BQUFBLE1BQU0sQ0FBQ1EsR0FBUDtBQUNBUixNQUFBQSxNQUFNLENBQUNTLE9BQVA7QUFDQVQsTUFBQUEsTUFBTSxDQUFDVSxLQUFQO0FBQ0Q7O0FBRURWLElBQUFBLE1BQU0sQ0FBQ1csT0FBUCxDQUFlO0FBQUNoQixNQUFBQSxJQUFEO0FBQU9pQixNQUFBQSxJQUFJLEVBQUU7QUFBYixLQUFmO0FBQ0QsR0FyQnlCLENBQTFCLENBRGtELENBdUJsRDtBQUNBOztBQUNBLFFBQU1DLHFCQUFxQixHQUFHLG9CQUFNLElBQU4sRUFBWUMsSUFBWixDQUFpQixNQUFNLElBQXZCLENBQTlCO0FBQ0EsU0FBTzNCLE9BQU8sQ0FBQzRCLElBQVIsQ0FBYSxDQUFDbEIsaUJBQUQsRUFBb0JnQixxQkFBcEIsQ0FBYixDQUFQO0FBQ0Q7O0FBRUQsU0FBU25DLFdBQVQsR0FBc0M7QUFDcEMsU0FBTyxJQUFJUyxPQUFKLENBQVksQ0FBQ1csT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0FBQ3RDaUIsa0JBQ0dDLFlBREgsQ0FDZ0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFDMUIsVUFBSUQsR0FBRyxDQUFDRSxNQUFKLEtBQWUsTUFBbkIsRUFBMkI7QUFDekJELFFBQUFBLEdBQUcsQ0FBQ0UsU0FBSixDQUFjLEdBQWQsRUFBbUI7QUFBQywwQkFBZ0I7QUFBakIsU0FBbkI7QUFDQUYsUUFBQUEsR0FBRyxDQUFDWCxHQUFKLENBQVEsaUJBQVI7QUFDRCxPQUhELE1BR087QUFDTCxZQUFJYyxJQUFJLEdBQUcsRUFBWDtBQUNBSixRQUFBQSxHQUFHLENBQUNLLEVBQUosQ0FBTyxNQUFQLEVBQWVDLElBQUksSUFBSTtBQUNyQkYsVUFBQUEsSUFBSSxJQUFJRSxJQUFSO0FBQ0QsU0FGRDtBQUdBTixRQUFBQSxHQUFHLENBQUNLLEVBQUosQ0FBTyxLQUFQLEVBQWMsTUFBTTtBQUNsQkUsVUFBQUEsaUJBQWlCLENBQUNDLElBQUksQ0FBQ0MsS0FBTCxDQUFXTCxJQUFYLENBQUQsRUFBbUJILEdBQW5CLENBQWpCO0FBQ0QsU0FGRDtBQUdEO0FBQ0YsS0FkSCxFQWVHSSxFQWZILENBZU0sT0FmTixFQWVleEIsTUFmZixFQWdCRzZCLE1BaEJILENBZ0JXdkQsc0JBaEJYLEVBZ0J5QyxNQUFNO0FBQzNDTCxNQUFBQSxhQUFhLEdBQUcsSUFBaEI7QUFDQThCLE1BQUFBLE9BQU87QUFDUixLQW5CSDtBQW9CRCxHQXJCTSxDQUFQO0FBc0JEOztBQUVELFNBQVMyQixpQkFBVCxDQUEyQkgsSUFBM0IsRUFBaUNILEdBQWpDLEVBQXNDO0FBQ3BDQSxFQUFBQSxHQUFHLENBQUNFLFNBQUosQ0FBYyxHQUFkLEVBQW1CO0FBQUMsb0JBQWdCO0FBQWpCLEdBQW5CO0FBQ0EsUUFBTTtBQUFDUSxJQUFBQSxNQUFEO0FBQVNDLElBQUFBLE9BQVQ7QUFBa0JDLElBQUFBO0FBQWxCLE1BQTBCVCxJQUFoQztBQUNBLE1BQUlVLE9BQU8sR0FBRyxLQUFkOztBQUNBLE1BQUlILE1BQU0sS0FBSyxPQUFYLElBQXNCRSxJQUFJLEtBQUssUUFBbkMsRUFBNkM7QUFDM0NaLElBQUFBLEdBQUcsQ0FBQ1gsR0FBSixDQUFRa0IsSUFBSSxDQUFDTyxTQUFMLENBQWU7QUFBQ0QsTUFBQUE7QUFBRCxLQUFmLENBQVI7QUFDQTtBQUNEOztBQUNELE1BQUlGLE9BQU8sS0FBSyxlQUFoQixFQUFpQztBQUMvQixVQUFNbkMsSUFBSSxHQUFHdUMsTUFBTSxDQUFDWixJQUFJLENBQUMzQixJQUFOLENBQW5CO0FBQ0EsVUFBTTtBQUFDd0MsTUFBQUE7QUFBRCxRQUFZYixJQUFsQjtBQUNBLFVBQU03QixNQUFNLEdBQUc7QUFDYkUsTUFBQUEsSUFEYTtBQUVieUMsTUFBQUEsRUFBRSxFQUFFRCxPQUFPLENBQUNDLEVBRkM7QUFHYkMsTUFBQUEsU0FBUyxFQUFFRixPQUFPLENBQUNFLFNBSE47QUFJYkMsTUFBQUEsVUFBVSxFQUFFSCxPQUFPLENBQUNHLFVBSlA7QUFLYkMsTUFBQUEsWUFBWSxFQUFFSixPQUFPLENBQUNJO0FBTFQsS0FBZjtBQU9BcEUsSUFBQUEsV0FBVyxDQUFDcUUsR0FBWixDQUFnQjdDLElBQWhCLEVBQXNCRixNQUF0QjtBQUNBLDZCQUFZZ0QsSUFBWixDQUFpQix3Q0FBakIsRUFBMkRoRCxNQUEzRDtBQUNBdUMsSUFBQUEsT0FBTyxHQUFHLElBQVY7QUFDRCxHQWJELE1BYU8sSUFBSUYsT0FBTyxLQUFLLFFBQWhCLEVBQTBCO0FBQy9CLFVBQU1uQyxJQUFJLEdBQUd1QyxNQUFNLENBQUNaLElBQUksQ0FBQzNCLElBQU4sQ0FBbkI7QUFDQSw2QkFBWThDLElBQVosQ0FBaUIsb0NBQWpCLEVBQXVEbkIsSUFBdkQ7QUFDQSxVQUFNN0IsTUFBTSxHQUFHdEIsV0FBVyxDQUFDdUUsR0FBWixDQUFnQi9DLElBQWhCLENBQWY7O0FBQ0EsUUFBSUYsTUFBTSxJQUFJLElBQWQsRUFBb0I7QUFDbEJ4QixNQUFBQSxhQUFhLENBQUMwRSxJQUFkLENBQW1CO0FBQ2pCWixRQUFBQSxJQURpQjtBQUVqQkQsUUFBQUEsT0FGaUI7QUFHakJyQyxRQUFBQTtBQUhpQixPQUFuQjtBQUtBdUMsTUFBQUEsT0FBTyxHQUFHLElBQVY7QUFDRDtBQUNGOztBQUNEYixFQUFBQSxHQUFHLENBQUNYLEdBQUosQ0FBUWtCLElBQUksQ0FBQ08sU0FBTCxDQUFlO0FBQUNELElBQUFBO0FBQUQsR0FBZixDQUFSO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7Q29ubmVjdGFibGVPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnO1xyXG5pbXBvcnQgbmV0IGZyb20gJ25ldCc7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7Z2V0TG9nZ2VyfSBmcm9tICdsb2c0anMnO1xyXG5pbXBvcnQge3NsZWVwfSBmcm9tICdAYXRvbS1pZGUtY29tbXVuaXR5L251Y2xpZGUtY29tbW9ucy9wcm9taXNlJztcclxuXHJcbmxldCBpc1NlcnZlclNldHVwID0gZmFsc2U7XHJcblxyXG5leHBvcnQgdHlwZSBSZW1vdGVEZWJ1Z0NvbW1hbmRSZXF1ZXN0ID0ge1xyXG4gIHR5cGU6ICdweXRob24nLFxyXG4gIGNvbW1hbmQ6ICdhdHRhY2gnLFxyXG4gIHRhcmdldDogUHl0aG9uRGVidWdnZXJBdHRhY2hUYXJnZXQsXHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBQeXRob25EZWJ1Z2dlckF0dGFjaFRhcmdldCA9IHtcclxuICBwb3J0OiBudW1iZXIsXHJcbiAgbG9jYWxSb290OiA/c3RyaW5nLFxyXG4gIHJlbW90ZVJvb3Q6ID9zdHJpbmcsXHJcbiAgZGVidWdPcHRpb25zOiA/QXJyYXk8c3RyaW5nPixcclxuICBpZDogP3N0cmluZyxcclxufTtcclxuXHJcbmNvbnN0IGRlYnVnUmVxdWVzdHM6IFN1YmplY3Q8UmVtb3RlRGVidWdDb21tYW5kUmVxdWVzdD4gPSBuZXcgU3ViamVjdCgpO1xyXG5jb25zdCBhdHRhY2hSZWFkeTogTWFwPG51bWJlciwgUHl0aG9uRGVidWdnZXJBdHRhY2hUYXJnZXQ+ID0gbmV3IE1hcCgpO1xyXG5jb25zdCBERUJVR0dFUl9SRUdJU1RSWV9QT1JUID0gOTYxNTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBvYnNlcnZlUmVtb3RlRGVidWdDb21tYW5kcygpOiBDb25uZWN0YWJsZU9ic2VydmFibGU8XHJcbiAgUmVtb3RlRGVidWdDb21tYW5kUmVxdWVzdCxcclxuPiB7XHJcbiAgbGV0IHNldHVwU3RlcDtcclxuICBpZiAoIWlzU2VydmVyU2V0dXApIHtcclxuICAgIHNldHVwU3RlcCA9IE9ic2VydmFibGUuZnJvbVByb21pc2Uoc2V0dXBTZXJ2ZXIoKSkuaWdub3JlRWxlbWVudHMoKTtcclxuICB9IGVsc2Uge1xyXG4gICAgc2V0dXBTdGVwID0gT2JzZXJ2YWJsZS5lbXB0eSgpO1xyXG4gIH1cclxuICByZXR1cm4gc2V0dXBTdGVwLmNvbmNhdChkZWJ1Z1JlcXVlc3RzKS5wdWJsaXNoKCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBvYnNlcnZlQXR0YWNoRGVidWdUYXJnZXRzKCk6IENvbm5lY3RhYmxlT2JzZXJ2YWJsZTxcclxuICBBcnJheTxQeXRob25EZWJ1Z2dlckF0dGFjaFRhcmdldD4sXHJcbj4ge1xyXG4gIC8vIFZhbGlkYXRlIGF0dGFjaC1yZWFkeSB2YWx1ZXMgd2l0aCB0aGUgcHJvY2Vzc2VzIHdpdGggdXNlZCBwb3J0cyAocmVhZHkgdG8gYXR0YWNoKS5cclxuICAvLyBOb3RlOiB3ZSBjYW4ndCB1c2UgcHJvY2VzcyBpZHMgYmVjYXVzZSB3ZSBjb3VsZCBiZSBkZWJ1Z2dpbmcgcHJvY2Vzc2VzIGluc2lkZSBjb250YWluZXJzXHJcbiAgLy8gd2hlcmUgdGhlIHByb2Nlc3MgaWRzIGRvbid0IG1hcCB0byB0aGUgaG9zdCBydW5uaW5nIHRoaXMgY29kZS5cclxuICByZXR1cm4gT2JzZXJ2YWJsZS5pbnRlcnZhbCgzMDAwKVxyXG4gICAgLnN0YXJ0V2l0aCgwKVxyXG4gICAgLnN3aXRjaE1hcCgoKSA9PlxyXG4gICAgICBQcm9taXNlLmFsbChcclxuICAgICAgICBBcnJheS5mcm9tKGF0dGFjaFJlYWR5LnZhbHVlcygpKS5tYXAoYXN5bmMgdGFyZ2V0ID0+IHtcclxuICAgICAgICAgIGlmICghKGF3YWl0IGlzUG9ydFVzZWQodGFyZ2V0LnBvcnQpKSkge1xyXG4gICAgICAgICAgICBhdHRhY2hSZWFkeS5kZWxldGUodGFyZ2V0LnBvcnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICApLFxyXG4gICAgKVxyXG4gICAgLm1hcCgoKSA9PiBBcnJheS5mcm9tKGF0dGFjaFJlYWR5LnZhbHVlcygpKSlcclxuICAgIC5wdWJsaXNoKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzUG9ydFVzZWQocG9ydDogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgY29uc3QgdHJ5Q29ubmVjdFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgbmV0LlNvY2tldCgpO1xyXG4gICAgY2xpZW50XHJcbiAgICAgIC5vbmNlKCdjb25uZWN0JywgKCkgPT4ge1xyXG4gICAgICAgIGNsZWFuVXAoKTtcclxuICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICB9KVxyXG4gICAgICAub25jZSgnZXJyb3InLCBlcnIgPT4ge1xyXG4gICAgICAgIGNsZWFuVXAoKTtcclxuICAgICAgICByZXNvbHZlKGVyci5jb2RlICE9PSAnRUNPTk5SRUZVU0VEJyk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIGZ1bmN0aW9uIGNsZWFuVXAoKSB7XHJcbiAgICAgIGNsaWVudC5yZW1vdmVBbGxMaXN0ZW5lcnMoJ2Nvbm5lY3QnKTtcclxuICAgICAgY2xpZW50LnJlbW92ZUFsbExpc3RlbmVycygnZXJyb3InKTtcclxuICAgICAgY2xpZW50LmVuZCgpO1xyXG4gICAgICBjbGllbnQuZGVzdHJveSgpO1xyXG4gICAgICBjbGllbnQudW5yZWYoKTtcclxuICAgIH1cclxuXHJcbiAgICBjbGllbnQuY29ubmVjdCh7cG9ydCwgaG9zdDogJzEyNy4wLjAuMSd9KTtcclxuICB9KTtcclxuICAvLyBUcnlpbmcgdG8gY29ubmVjdCBjYW4gdGFrZSBtdWx0aXBsZSBzZWNvbmRzLCB0aGVuIHRpbWVzIG91dCAoaWYgdGhlIHNlcnZlciBpcyBidXN5KS5cclxuICAvLyBIZW5jZSwgd2UgbmVlZCB0byBmYWxsYmFjayB0byBgdHJ1ZWAuXHJcbiAgY29uc3QgY29ubmVjdFRpbWVvdXRQcm9taXNlID0gc2xlZXAoMTAwMCkudGhlbigoKSA9PiB0cnVlKTtcclxuICByZXR1cm4gUHJvbWlzZS5yYWNlKFt0cnlDb25uZWN0UHJvbWlzZSwgY29ubmVjdFRpbWVvdXRQcm9taXNlXSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNldHVwU2VydmVyKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICBodHRwXHJcbiAgICAgIC5jcmVhdGVTZXJ2ZXIoKHJlcSwgcmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcS5tZXRob2QgIT09ICdQT1NUJykge1xyXG4gICAgICAgICAgcmVzLndyaXRlSGVhZCg1MDAsIHsnQ29udGVudC1UeXBlJzogJ3RleHQvaHRtbCd9KTtcclxuICAgICAgICAgIHJlcy5lbmQoJ0ludmFsaWQgcmVxdWVzdCcpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgYm9keSA9ICcnO1xyXG4gICAgICAgICAgcmVxLm9uKCdkYXRhJywgZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIGJvZHkgKz0gZGF0YTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmVxLm9uKCdlbmQnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGhhbmRsZUpzb25SZXF1ZXN0KEpTT04ucGFyc2UoYm9keSksIHJlcyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIC5vbignZXJyb3InLCByZWplY3QpXHJcbiAgICAgIC5saXN0ZW4oKERFQlVHR0VSX1JFR0lTVFJZX1BPUlQ6IGFueSksICgpID0+IHtcclxuICAgICAgICBpc1NlcnZlclNldHVwID0gdHJ1ZTtcclxuICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgIH0pO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBoYW5kbGVKc29uUmVxdWVzdChib2R5LCByZXMpIHtcclxuICByZXMud3JpdGVIZWFkKDIwMCwgeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbid9KTtcclxuICBjb25zdCB7ZG9tYWluLCBjb21tYW5kLCB0eXBlfSA9IGJvZHk7XHJcbiAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcclxuICBpZiAoZG9tYWluICE9PSAnZGVidWcnIHx8IHR5cGUgIT09ICdweXRob24nKSB7XHJcbiAgICByZXMuZW5kKEpTT04uc3RyaW5naWZ5KHtzdWNjZXNzfSkpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBpZiAoY29tbWFuZCA9PT0gJ2VuYWJsZS1hdHRhY2gnKSB7XHJcbiAgICBjb25zdCBwb3J0ID0gTnVtYmVyKGJvZHkucG9ydCk7XHJcbiAgICBjb25zdCB7b3B0aW9uc30gPSBib2R5O1xyXG4gICAgY29uc3QgdGFyZ2V0ID0ge1xyXG4gICAgICBwb3J0LFxyXG4gICAgICBpZDogb3B0aW9ucy5pZCxcclxuICAgICAgbG9jYWxSb290OiBvcHRpb25zLmxvY2FsUm9vdCxcclxuICAgICAgcmVtb3RlUm9vdDogb3B0aW9ucy5yZW1vdGVSb290LFxyXG4gICAgICBkZWJ1Z09wdGlvbnM6IG9wdGlvbnMuZGVidWdPcHRpb25zLFxyXG4gICAgfTtcclxuICAgIGF0dGFjaFJlYWR5LnNldChwb3J0LCB0YXJnZXQpO1xyXG4gICAgZ2V0TG9nZ2VyKCkuaW5mbygnUmVtb3RlIGRlYnVnIHRhcmdldCBpcyByZWFkeSB0byBhdHRhY2gnLCB0YXJnZXQpO1xyXG4gICAgc3VjY2VzcyA9IHRydWU7XHJcbiAgfSBlbHNlIGlmIChjb21tYW5kID09PSAnYXR0YWNoJykge1xyXG4gICAgY29uc3QgcG9ydCA9IE51bWJlcihib2R5LnBvcnQpO1xyXG4gICAgZ2V0TG9nZ2VyKCkuaW5mbygnUmVtb3RlIGRlYnVnIHRhcmdldCBhdHRhY2ggcmVxdWVzdCcsIGJvZHkpO1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gYXR0YWNoUmVhZHkuZ2V0KHBvcnQpO1xyXG4gICAgaWYgKHRhcmdldCAhPSBudWxsKSB7XHJcbiAgICAgIGRlYnVnUmVxdWVzdHMubmV4dCh7XHJcbiAgICAgICAgdHlwZSxcclxuICAgICAgICBjb21tYW5kLFxyXG4gICAgICAgIHRhcmdldCxcclxuICAgICAgfSk7XHJcbiAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXMuZW5kKEpTT04uc3RyaW5naWZ5KHtzdWNjZXNzfSkpO1xyXG59XHJcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlJlbW90ZURlYnVnZ2VyQ29tbWFuZFNlcnZpY2UuanMiXSwibmFtZXMiOlsiaXNTZXJ2ZXJTZXR1cCIsImRlYnVnUmVxdWVzdHMiLCJTdWJqZWN0IiwiYXR0YWNoUmVhZHkiLCJNYXAiLCJERUJVR0dFUl9SRUdJU1RSWV9QT1JUIiwib2JzZXJ2ZVJlbW90ZURlYnVnQ29tbWFuZHMiLCJzZXR1cFN0ZXAiLCJPYnNlcnZhYmxlIiwiZnJvbVByb21pc2UiLCJzZXR1cFNlcnZlciIsImlnbm9yZUVsZW1lbnRzIiwiZW1wdHkiLCJjb25jYXQiLCJwdWJsaXNoIiwib2JzZXJ2ZUF0dGFjaERlYnVnVGFyZ2V0cyIsImludGVydmFsIiwic3RhcnRXaXRoIiwic3dpdGNoTWFwIiwiUHJvbWlzZSIsImFsbCIsIkFycmF5IiwiZnJvbSIsInZhbHVlcyIsIm1hcCIsInRhcmdldCIsImlzUG9ydFVzZWQiLCJwb3J0IiwiZGVsZXRlIiwidHJ5Q29ubmVjdFByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiY2xpZW50IiwibmV0IiwiU29ja2V0Iiwib25jZSIsImNsZWFuVXAiLCJlcnIiLCJjb2RlIiwicmVtb3ZlQWxsTGlzdGVuZXJzIiwiZW5kIiwiZGVzdHJveSIsInVucmVmIiwiY29ubmVjdCIsImhvc3QiLCJjb25uZWN0VGltZW91dFByb21pc2UiLCJ0aGVuIiwicmFjZSIsImh0dHAiLCJjcmVhdGVTZXJ2ZXIiLCJyZXEiLCJyZXMiLCJtZXRob2QiLCJ3cml0ZUhlYWQiLCJib2R5Iiwib24iLCJkYXRhIiwiaGFuZGxlSnNvblJlcXVlc3QiLCJKU09OIiwicGFyc2UiLCJsaXN0ZW4iLCJkb21haW4iLCJjb21tYW5kIiwidHlwZSIsInN1Y2Nlc3MiLCJzdHJpbmdpZnkiLCJOdW1iZXIiLCJvcHRpb25zIiwiaWQiLCJsb2NhbFJvb3QiLCJyZW1vdGVSb290IiwiZGVidWdPcHRpb25zIiwic2V0IiwiaW5mbyIsImdldCIsIm5leHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FB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O0FBR2pCckMsUUFBQUE7QUFIaUIsT0FBbkI7QUFLQXVDLE1BQUFBLE9BQU8sR0FBRyxJQUFWO0FBQ0Q7QUFDRjs7QUFDRGIsRUFBQUEsR0FBRyxDQUFDWCxHQUFKLENBQVFrQixJQUFJLENBQUNPLFNBQUwsQ0FBZTtBQUFDRCxJQUFBQTtBQUFELEdBQWYsQ0FBUjtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge0Nvbm5lY3RhYmxlT2JzZXJ2YWJsZX0gZnJvbSAncnhqcy1jb21wYXQvYnVuZGxlcy9yeGpzLWNvbXBhdC51bWQubWluLmpzJztcclxuXHJcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnO1xyXG5pbXBvcnQgbmV0IGZyb20gJ25ldCc7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcy1jb21wYXQvYnVuZGxlcy9yeGpzLWNvbXBhdC51bWQubWluLmpzJztcclxuaW1wb3J0IHtnZXRMb2dnZXJ9IGZyb20gJ2xvZzRqcyc7XHJcbmltcG9ydCB7c2xlZXB9IGZyb20gJ0BhdG9tLWlkZS1jb21tdW5pdHkvbnVjbGlkZS1jb21tb25zL3Byb21pc2UnO1xyXG5cclxubGV0IGlzU2VydmVyU2V0dXAgPSBmYWxzZTtcclxuXHJcbmV4cG9ydCB0eXBlIFJlbW90ZURlYnVnQ29tbWFuZFJlcXVlc3QgPSB7XHJcbiAgdHlwZTogJ3B5dGhvbicsXHJcbiAgY29tbWFuZDogJ2F0dGFjaCcsXHJcbiAgdGFyZ2V0OiBQeXRob25EZWJ1Z2dlckF0dGFjaFRhcmdldCxcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIFB5dGhvbkRlYnVnZ2VyQXR0YWNoVGFyZ2V0ID0ge1xyXG4gIHBvcnQ6IG51bWJlcixcclxuICBsb2NhbFJvb3Q6ID9zdHJpbmcsXHJcbiAgcmVtb3RlUm9vdDogP3N0cmluZyxcclxuICBkZWJ1Z09wdGlvbnM6ID9BcnJheTxzdHJpbmc+LFxyXG4gIGlkOiA/c3RyaW5nLFxyXG59O1xyXG5cclxuY29uc3QgZGVidWdSZXF1ZXN0czogU3ViamVjdDxSZW1vdGVEZWJ1Z0NvbW1hbmRSZXF1ZXN0PiA9IG5ldyBTdWJqZWN0KCk7XHJcbmNvbnN0IGF0dGFjaFJlYWR5OiBNYXA8bnVtYmVyLCBQeXRob25EZWJ1Z2dlckF0dGFjaFRhcmdldD4gPSBuZXcgTWFwKCk7XHJcbmNvbnN0IERFQlVHR0VSX1JFR0lTVFJZX1BPUlQgPSA5NjE1O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG9ic2VydmVSZW1vdGVEZWJ1Z0NvbW1hbmRzKCk6IENvbm5lY3RhYmxlT2JzZXJ2YWJsZTxcclxuICBSZW1vdGVEZWJ1Z0NvbW1hbmRSZXF1ZXN0LFxyXG4+IHtcclxuICBsZXQgc2V0dXBTdGVwO1xyXG4gIGlmICghaXNTZXJ2ZXJTZXR1cCkge1xyXG4gICAgc2V0dXBTdGVwID0gT2JzZXJ2YWJsZS5mcm9tUHJvbWlzZShzZXR1cFNlcnZlcigpKS5pZ25vcmVFbGVtZW50cygpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBzZXR1cFN0ZXAgPSBPYnNlcnZhYmxlLmVtcHR5KCk7XHJcbiAgfVxyXG4gIHJldHVybiBzZXR1cFN0ZXAuY29uY2F0KGRlYnVnUmVxdWVzdHMpLnB1Ymxpc2goKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG9ic2VydmVBdHRhY2hEZWJ1Z1RhcmdldHMoKTogQ29ubmVjdGFibGVPYnNlcnZhYmxlPFxyXG4gIEFycmF5PFB5dGhvbkRlYnVnZ2VyQXR0YWNoVGFyZ2V0PixcclxuPiB7XHJcbiAgLy8gVmFsaWRhdGUgYXR0YWNoLXJlYWR5IHZhbHVlcyB3aXRoIHRoZSBwcm9jZXNzZXMgd2l0aCB1c2VkIHBvcnRzIChyZWFkeSB0byBhdHRhY2gpLlxyXG4gIC8vIE5vdGU6IHdlIGNhbid0IHVzZSBwcm9jZXNzIGlkcyBiZWNhdXNlIHdlIGNvdWxkIGJlIGRlYnVnZ2luZyBwcm9jZXNzZXMgaW5zaWRlIGNvbnRhaW5lcnNcclxuICAvLyB3aGVyZSB0aGUgcHJvY2VzcyBpZHMgZG9uJ3QgbWFwIHRvIHRoZSBob3N0IHJ1bm5pbmcgdGhpcyBjb2RlLlxyXG4gIHJldHVybiBPYnNlcnZhYmxlLmludGVydmFsKDMwMDApXHJcbiAgICAuc3RhcnRXaXRoKDApXHJcbiAgICAuc3dpdGNoTWFwKCgpID0+XHJcbiAgICAgIFByb21pc2UuYWxsKFxyXG4gICAgICAgIEFycmF5LmZyb20oYXR0YWNoUmVhZHkudmFsdWVzKCkpLm1hcChhc3luYyB0YXJnZXQgPT4ge1xyXG4gICAgICAgICAgaWYgKCEoYXdhaXQgaXNQb3J0VXNlZCh0YXJnZXQucG9ydCkpKSB7XHJcbiAgICAgICAgICAgIGF0dGFjaFJlYWR5LmRlbGV0ZSh0YXJnZXQucG9ydCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICksXHJcbiAgICApXHJcbiAgICAubWFwKCgpID0+IEFycmF5LmZyb20oYXR0YWNoUmVhZHkudmFsdWVzKCkpKVxyXG4gICAgLnB1Ymxpc2goKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNQb3J0VXNlZChwb3J0OiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICBjb25zdCB0cnlDb25uZWN0UHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBuZXQuU29ja2V0KCk7XHJcbiAgICBjbGllbnRcclxuICAgICAgLm9uY2UoJ2Nvbm5lY3QnLCAoKSA9PiB7XHJcbiAgICAgICAgY2xlYW5VcCgpO1xyXG4gICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5vbmNlKCdlcnJvcicsIGVyciA9PiB7XHJcbiAgICAgICAgY2xlYW5VcCgpO1xyXG4gICAgICAgIHJlc29sdmUoZXJyLmNvZGUgIT09ICdFQ09OTlJFRlVTRUQnKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgZnVuY3Rpb24gY2xlYW5VcCgpIHtcclxuICAgICAgY2xpZW50LnJlbW92ZUFsbExpc3RlbmVycygnY29ubmVjdCcpO1xyXG4gICAgICBjbGllbnQucmVtb3ZlQWxsTGlzdGVuZXJzKCdlcnJvcicpO1xyXG4gICAgICBjbGllbnQuZW5kKCk7XHJcbiAgICAgIGNsaWVudC5kZXN0cm95KCk7XHJcbiAgICAgIGNsaWVudC51bnJlZigpO1xyXG4gICAgfVxyXG5cclxuICAgIGNsaWVudC5jb25uZWN0KHtwb3J0LCBob3N0OiAnMTI3LjAuMC4xJ30pO1xyXG4gIH0pO1xyXG4gIC8vIFRyeWluZyB0byBjb25uZWN0IGNhbiB0YWtlIG11bHRpcGxlIHNlY29uZHMsIHRoZW4gdGltZXMgb3V0IChpZiB0aGUgc2VydmVyIGlzIGJ1c3kpLlxyXG4gIC8vIEhlbmNlLCB3ZSBuZWVkIHRvIGZhbGxiYWNrIHRvIGB0cnVlYC5cclxuICBjb25zdCBjb25uZWN0VGltZW91dFByb21pc2UgPSBzbGVlcCgxMDAwKS50aGVuKCgpID0+IHRydWUpO1xyXG4gIHJldHVybiBQcm9taXNlLnJhY2UoW3RyeUNvbm5lY3RQcm9taXNlLCBjb25uZWN0VGltZW91dFByb21pc2VdKTtcclxufVxyXG5cclxuZnVuY3Rpb24gc2V0dXBTZXJ2ZXIoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgIGh0dHBcclxuICAgICAgLmNyZWF0ZVNlcnZlcigocmVxLCByZXMpID0+IHtcclxuICAgICAgICBpZiAocmVxLm1ldGhvZCAhPT0gJ1BPU1QnKSB7XHJcbiAgICAgICAgICByZXMud3JpdGVIZWFkKDUwMCwgeydDb250ZW50LVR5cGUnOiAndGV4dC9odG1sJ30pO1xyXG4gICAgICAgICAgcmVzLmVuZCgnSW52YWxpZCByZXF1ZXN0Jyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxldCBib2R5ID0gJyc7XHJcbiAgICAgICAgICByZXEub24oJ2RhdGEnLCBkYXRhID0+IHtcclxuICAgICAgICAgICAgYm9keSArPSBkYXRhO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXEub24oJ2VuZCcsICgpID0+IHtcclxuICAgICAgICAgICAgaGFuZGxlSnNvblJlcXVlc3QoSlNPTi5wYXJzZShib2R5KSwgcmVzKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgLm9uKCdlcnJvcicsIHJlamVjdClcclxuICAgICAgLmxpc3RlbigoREVCVUdHRVJfUkVHSVNUUllfUE9SVDogYW55KSwgKCkgPT4ge1xyXG4gICAgICAgIGlzU2VydmVyU2V0dXAgPSB0cnVlO1xyXG4gICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgfSk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGhhbmRsZUpzb25SZXF1ZXN0KGJvZHksIHJlcykge1xyXG4gIHJlcy53cml0ZUhlYWQoMjAwLCB7J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ30pO1xyXG4gIGNvbnN0IHtkb21haW4sIGNvbW1hbmQsIHR5cGV9ID0gYm9keTtcclxuICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xyXG4gIGlmIChkb21haW4gIT09ICdkZWJ1ZycgfHwgdHlwZSAhPT0gJ3B5dGhvbicpIHtcclxuICAgIHJlcy5lbmQoSlNPTi5zdHJpbmdpZnkoe3N1Y2Nlc3N9KSk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGlmIChjb21tYW5kID09PSAnZW5hYmxlLWF0dGFjaCcpIHtcclxuICAgIGNvbnN0IHBvcnQgPSBOdW1iZXIoYm9keS5wb3J0KTtcclxuICAgIGNvbnN0IHtvcHRpb25zfSA9IGJvZHk7XHJcbiAgICBjb25zdCB0YXJnZXQgPSB7XHJcbiAgICAgIHBvcnQsXHJcbiAgICAgIGlkOiBvcHRpb25zLmlkLFxyXG4gICAgICBsb2NhbFJvb3Q6IG9wdGlvbnMubG9jYWxSb290LFxyXG4gICAgICByZW1vdGVSb290OiBvcHRpb25zLnJlbW90ZVJvb3QsXHJcbiAgICAgIGRlYnVnT3B0aW9uczogb3B0aW9ucy5kZWJ1Z09wdGlvbnMsXHJcbiAgICB9O1xyXG4gICAgYXR0YWNoUmVhZHkuc2V0KHBvcnQsIHRhcmdldCk7XHJcbiAgICBnZXRMb2dnZXIoKS5pbmZvKCdSZW1vdGUgZGVidWcgdGFyZ2V0IGlzIHJlYWR5IHRvIGF0dGFjaCcsIHRhcmdldCk7XHJcbiAgICBzdWNjZXNzID0gdHJ1ZTtcclxuICB9IGVsc2UgaWYgKGNvbW1hbmQgPT09ICdhdHRhY2gnKSB7XHJcbiAgICBjb25zdCBwb3J0ID0gTnVtYmVyKGJvZHkucG9ydCk7XHJcbiAgICBnZXRMb2dnZXIoKS5pbmZvKCdSZW1vdGUgZGVidWcgdGFyZ2V0IGF0dGFjaCByZXF1ZXN0JywgYm9keSk7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBhdHRhY2hSZWFkeS5nZXQocG9ydCk7XHJcbiAgICBpZiAodGFyZ2V0ICE9IG51bGwpIHtcclxuICAgICAgZGVidWdSZXF1ZXN0cy5uZXh0KHtcclxuICAgICAgICB0eXBlLFxyXG4gICAgICAgIGNvbW1hbmQsXHJcbiAgICAgICAgdGFyZ2V0LFxyXG4gICAgICB9KTtcclxuICAgICAgc3VjY2VzcyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlcy5lbmQoSlNPTi5zdHJpbmdpZnkoe3N1Y2Nlc3N9KSk7XHJcbn1cclxuIl19 \ No newline at end of file diff --git a/dist/debugger/utils.js b/dist/debugger/utils.js index e6a95560..41a1de42 100644 --- a/dist/debugger/utils.js +++ b/dist/debugger/utils.js @@ -17,7 +17,7 @@ var _observable = require("@atom-ide-community/nuclide-commons/observable"); var _UniversalDisposable = _interopRequireDefault(require("@atom-ide-community/nuclide-commons/UniversalDisposable")); -var _rxjs = require("rxjs"); +var _rxjsCompatUmdMin = require("rxjs-compat/bundles/rxjs-compat.umd.min.js"); var _analytics = require("@atom-ide-community/nuclide-commons/analytics"); @@ -69,9 +69,9 @@ function listenToRemoteDebugCommands() { if (service == null) { (0, _log4js.getLogger)().error('null remote command service for uri:', rootUri); - return _rxjs.Observable.empty(); + return _rxjsCompatUmdMin.Observable.empty(); } else { - return _rxjs.Observable.of({ + return _rxjsCompatUmdMin.Observable.of({ service, rootUri }); @@ -89,7 +89,7 @@ function listenToRemoteDebugCommands() { return service.observeRemoteDebugCommands().refCount().catch(error => { // eslint-disable-next-line no-console console.warn('Failed to listen to remote debug commands - ' + 'You could be running locally with two Atom windows. ' + `IsLocal: ${String(rootUri === '')}`); - return _rxjs.Observable.empty(); + return _rxjsCompatUmdMin.Observable.empty(); }).map(command => ({ rootUri, command @@ -159,4 +159,4 @@ function getRemoteDebuggerCommandServiceByNuclideUri(uri) { return (0, _nullthrows.default)(_rpcService).getServiceByNuclideUri('RemoteDebuggerCommandService', uri); } -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbIl9ycGNTZXJ2aWNlIiwiZ2V0UHl0aG9uQXR0YWNoVGFyZ2V0UHJvY2Vzc0NvbmZpZyIsInRhcmdldFJvb3RVcmkiLCJ0YXJnZXQiLCJ0YXJnZXRVcmkiLCJkZWJ1Z01vZGUiLCJhZGFwdGVyVHlwZSIsImNvbmZpZyIsImdldFB5dGhvbkF0dGFjaFRhcmdldENvbmZpZyIsInNlcnZpY2VkRmlsZUV4dGVuc2lvbnMiLCJsb2NhbFJvb3QiLCJyZW1vdGVSb290IiwicG9ydCIsImhvc3QiLCJzZXRScGNTZXJ2aWNlIiwicnBjU2VydmljZSIsIlVuaXZlcnNhbERpc3Bvc2FibGUiLCJsaXN0ZW5Ub1JlbW90ZURlYnVnQ29tbWFuZHMiLCJhZGRlZEhvc3RuYW1lcyIsInN0YXJ0V2l0aCIsInJlbW90ZURlYnVnZ2VyU2VydmljZXMiLCJmbGF0TWFwIiwiaG9zdG5hbWUiLCJyb290VXJpIiwibnVjbGlkZVVyaSIsImNyZWF0ZVJlbW90ZVVyaSIsInNlcnZpY2UiLCJnZXRSZW1vdGVEZWJ1Z2dlckNvbW1hbmRTZXJ2aWNlQnlOdWNsaWRlVXJpIiwiZXJyb3IiLCJPYnNlcnZhYmxlIiwiZW1wdHkiLCJvZiIsIm9ic2VydmVBdHRhY2hEZWJ1Z1RhcmdldHMiLCJyZWZDb3VudCIsIm1hcCIsInRhcmdldHMiLCJmaW5kRHVwbGljYXRlQXR0YWNoVGFyZ2V0SWRzIiwic3Vic2NyaWJlIiwiZHVwbGljYXRlVGFyZ2V0SWRzIiwibm90aWZ5RHVwbGljYXRlRGVidWdUYXJnZXRzIiwib2JzZXJ2ZVJlbW90ZURlYnVnQ29tbWFuZHMiLCJjYXRjaCIsImNvbnNvbGUiLCJ3YXJuIiwiU3RyaW5nIiwiY29tbWFuZCIsImxldCIsImF0dGFjaFByb2Nlc3NDb25maWciLCJkZWJ1Z2dlclNlcnZpY2UiLCJzdGFydFZzcERlYnVnZ2luZyIsInNob3VsZE5vdGlmeUR1cGxpY2F0ZVRhcmdldHMiLCJkdXBsaWNhdGVUYXJnZXRzTm90aWZpY2F0aW9uIiwic2l6ZSIsImZvcm1hdHRlZElkcyIsIkFycmF5IiwiZnJvbSIsImpvaW4iLCJhdG9tIiwibm90aWZpY2F0aW9ucyIsImFkZEluZm8iLCJidXR0b25zIiwib25EaWRDbGljayIsImRpc21pc3MiLCJ0ZXh0IiwiZGVzY3JpcHRpb24iLCJkaXNtaXNzYWJsZSIsIm9uRGlkRGlzbWlzcyIsInRhcmdldElkcyIsIlNldCIsImZvckVhY2giLCJpZCIsImhhcyIsImFkZCIsInVyaSIsImlzUmVtb3RlIiwiUmVtb3RlRGVidWdnZXJDb21tYW5kU2VydmljZUxvY2FsIiwiZ2V0U2VydmljZUJ5TnVjbGlkZVVyaSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBUUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7O0FBRUEsSUFBSUEsV0FBZ0MsR0FBRyxJQUF2Qzs7QUFFQSxTQUFTQyxrQ0FBVCxDQUNFQyxhQURGLEVBRUVDLE1BRkYsRUFHa0I7QUFDaEIsU0FBTztBQUNMQyxJQUFBQSxTQUFTLEVBQUVGLGFBRE47QUFFTEcsSUFBQUEsU0FBUyxFQUFFLFFBRk47QUFHTEMsSUFBQUEsV0FBVyxFQUFFLFFBSFI7QUFJTEMsSUFBQUEsTUFBTSxFQUFFQywyQkFBMkIsQ0FBQ0wsTUFBRCxDQUo5QjtBQUtMTSxJQUFBQSxzQkFBc0IsRUFBRSxDQUFDLElBQUQ7QUFMbkIsR0FBUDtBQU9EOztBQUVELFNBQVNELDJCQUFULENBQ0VMLE1BREYsRUFFVTtBQUNSLFNBQU87QUFDTE8sSUFBQUEsU0FBUyxFQUFFUCxNQUFNLENBQUNPLFNBRGI7QUFFTEMsSUFBQUEsVUFBVSxFQUFFUixNQUFNLENBQUNRLFVBRmQ7QUFHTEMsSUFBQUEsSUFBSSxFQUFFVCxNQUFNLENBQUNTLElBSFI7QUFJTEMsSUFBQUEsSUFBSSxFQUFFO0FBSkQsR0FBUDtBQU1EOztBQUVNLFNBQVNDLGFBQVQsQ0FBdUJDLFVBQXZCLEVBQW9FO0FBQ3pFZixFQUFBQSxXQUFXLEdBQUdlLFVBQWQ7QUFD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QUNEOztBQUVNLFNBQVNYLDJDQUFULENBQ0w4QyxHQURLLEVBRXlCO0FBQzlCLE1BQUl6RSxXQUFXLElBQUksSUFBZixJQUF1QixDQUFDd0Isb0JBQVdrRCxRQUFYLENBQW9CRCxHQUFwQixDQUE1QixFQUFzRDtBQUNwRCxXQUFPRSxpQ0FBUDtBQUNEOztBQUVELFNBQU8seUJBQVczRSxXQUFYLEVBQXdCNEUsc0JBQXhCLENBQ0wsOEJBREssRUFFTEgsR0FGSyxDQUFQO0FBSUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7TnVjbGlkZVVyaX0gZnJvbSAnQGF0b20taWRlLWNvbW11bml0eS9udWNsaWRlLWNvbW1vbnMvbnVjbGlkZVVyaSc7XHJcbmltcG9ydCB0eXBlIHtcclxuICBQeXRob25EZWJ1Z2dlckF0dGFjaFRhcmdldCxcclxuICBSZW1vdGVEZWJ1Z0NvbW1hbmRSZXF1ZXN0LFxyXG59IGZyb20gJy4vUmVtb3RlRGVidWdnZXJDb21tYW5kU2VydmljZSc7XHJcbmltcG9ydCB0eXBlIHtJUHJvY2Vzc0NvbmZpZ30gZnJvbSAnQGF0b20taWRlLWNvbW11bml0eS9udWNsaWRlLWRlYnVnZ2VyLWNvbW1vbic7XHJcbmltcG9ydCB0eXBlb2YgKiBhcyBSZW1vdGVEZWJ1Z2dlckNvbW1hbmRTZXJ2aWNlIGZyb20gJy4vUmVtb3RlRGVidWdnZXJDb21tYW5kU2VydmljZSc7XHJcblxyXG5pbXBvcnQge2dldERlYnVnZ2VyU2VydmljZX0gZnJvbSAnQGF0b20taWRlLWNvbW11bml0eS9udWNsaWRlLWNvbW1vbnMtYXRvbS9kZWJ1Z2dlcic7XHJcbmltcG9ydCB7b2JzZXJ2ZUFkZGVkSG9zdG5hbWVzfSBmcm9tICdAYXRvbS1pZGUtY29tbXVuaXR5L251Y2xpZGUtY29tbW9ucy1hdG9tL3Byb2plY3RzJztcclxuaW1wb3J0IG51Y2xpZGVVcmkgZnJvbSAnQGF0b20taWRlLWNvbW11bml0eS9udWNsaWRlLWNvbW1vbnMvbnVjbGlkZVVyaSc7XHJcbmltcG9ydCB7ZmFzdERlYm91bmNlfSBmcm9tICdAYXRvbS1pZGUtY29tbXVuaXR5L251Y2xpZGUtY29tbW9ucy9vYnNlcnZhYmxlJztcclxuaW1wb3J0IFVuaXZlcnNhbERpc3Bvc2FibGUgZnJvbSAnQGF0b20taWRlLWNvbW11bml0eS9udWNsaWRlLWNvbW1vbnMvVW5pdmVyc2FsRGlzcG9zYWJsZSc7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7dHJhY2t9IGZyb20gJ0BhdG9tLWlkZS1jb21tdW5pdHkvbnVjbGlkZS1jb21tb25zL2FuYWx5dGljcyc7XHJcbmltcG9ydCAqIGFzIFJlbW90ZURlYnVnZ2VyQ29tbWFuZFNlcnZpY2VMb2NhbCBmcm9tICcuL1JlbW90ZURlYnVnZ2VyQ29tbWFuZFNlcnZpY2UnO1xyXG5pbXBvcnQgbnVsbHRocm93cyBmcm9tICdudWxsdGhyb3dzJztcclxuaW1wb3J0IHtnZXRMb2dnZXJ9IGZyb20gJ2xvZzRqcyc7XHJcblxyXG5sZXQgX3JwY1NlcnZpY2U6ID9udWNsaWRlJFJwY1NlcnZpY2UgPSBudWxsO1xyXG5cclxuZnVuY3Rpb24gZ2V0UHl0aG9uQXR0YWNoVGFyZ2V0UHJvY2Vzc0NvbmZpZyhcclxuICB0YXJnZXRSb290VXJpOiBOdWNsaWRlVXJpLFxyXG4gIHRhcmdldDogUHl0aG9uRGVidWdnZXJBdHRhY2hUYXJnZXQsXHJcbik6IElQcm9jZXNzQ29uZmlnIHtcclxuICByZXR1cm4ge1xyXG4gICAgdGFyZ2V0VXJpOiB0YXJnZXRSb290VXJpLFxyXG4gICAgZGVidWdNb2RlOiAnYXR0YWNoJyxcclxuICAgIGFkYXB0ZXJUeXBlOiBcInB5dGhvblwiLFxyXG4gICAgY29uZmlnOiBnZXRQeXRob25BdHRhY2hUYXJnZXRDb25maWcodGFyZ2V0KSxcclxuICAgIHNlcnZpY2VkRmlsZUV4dGVuc2lvbnM6IFsncHknXSxcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRQeXRob25BdHRhY2hUYXJnZXRDb25maWcoXHJcbiAgdGFyZ2V0OiBQeXRob25EZWJ1Z2dlckF0dGFjaFRhcmdldCxcclxuKTogT2JqZWN0IHtcclxuICByZXR1cm4ge1xyXG4gICAgbG9jYWxSb290OiB0YXJnZXQubG9jYWxSb290LFxyXG4gICAgcmVtb3RlUm9vdDogdGFyZ2V0LnJlbW90ZVJvb3QsXHJcbiAgICBwb3J0OiB0YXJnZXQucG9ydCxcclxuICAgIGhvc3Q6ICcxMjcuMC4wLjEnLFxyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRScGNTZXJ2aWNlKHJwY1NlcnZpY2U6IG51Y2xpZGUkUnBjU2VydmljZSk6IElEaXNwb3NhYmxlIHtcclxuICBfcnBjU2VydmljZSA9IHJwY1NlcnZpY2U7XHJcbiAgcmV0dXJuIG5ldyBVbml2ZXJzYWxEaXNwb3NhYmxlKCgpID0+IHtcclxuICAgIF9ycGNTZXJ2aWNlID0gbnVsbDtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxpc3RlblRvUmVtb3RlRGVidWdDb21tYW5kcygpOiBJRGlzcG9zYWJsZSB7XHJcbiAgY29uc3QgYWRkZWRIb3N0bmFtZXMgPSBvYnNlcnZlQWRkZWRIb3N0bmFtZXMoKS5zdGFydFdpdGgoJ2xvY2FsJyk7XHJcblxyXG4gIGNvbnN0IHJlbW90ZURlYnVnZ2VyU2VydmljZXMgPSBhZGRlZEhvc3RuYW1lcy5mbGF0TWFwKGhvc3RuYW1lID0+IHtcclxuICAgIGNvbnN0IHJvb3RVcmkgPVxyXG4gICAgICBob3N0bmFtZSA9PT0gJ2xvY2FsJyA/ICcnIDogbnVjbGlkZVVyaS5jcmVhdGVSZW1vdGVVcmkoaG9zdG5hbWUsICcvJyk7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gZ2V0UmVtb3RlRGVidWdnZXJDb21tYW5kU2VydmljZUJ5TnVjbGlkZVVyaShyb290VXJpKTtcclxuICAgIGlmIChzZXJ2aWNlID09IG51bGwpIHtcclxuICAgICAgZ2V0TG9nZ2VyKCkuZXJyb3IoJ251bGwgcmVtb3RlIGNvbW1hbmQgc2VydmljZSBmb3IgdXJpOicsIHJvb3RVcmkpO1xyXG4gICAgICByZXR1cm4gT2JzZXJ2YWJsZS5lbXB0eSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIE9ic2VydmFibGUub2Yoe3NlcnZpY2UsIHJvb3RVcml9KTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIG5ldyBVbml2ZXJzYWxEaXNwb3NhYmxlKFxyXG4gICAgcmVtb3RlRGVidWdnZXJTZXJ2aWNlc1xyXG4gICAgICAuZmxhdE1hcCgoe3NlcnZpY2UsIHJvb3RVcml9KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHNlcnZpY2VcclxuICAgICAgICAgIC5vYnNlcnZlQXR0YWNoRGVidWdUYXJnZXRzKClcclxuICAgICAgICAgIC5yZWZDb3VudCgpXHJcbiAgICAgICAgICAubWFwKHRhcmdldHMgPT4gZmluZER1cGxpY2F0ZUF0dGFjaFRhcmdldElkcyh0YXJnZXRzKSk7XHJcbiAgICAgIH0pXHJcblxyXG4gICAgICAuc3Vic2NyaWJlKGR1cGxpY2F0ZVRhcmdldElkcyA9PlxyXG4gICAgICAgIG5vdGlmeUR1cGxpY2F0ZURlYnVnVGFyZ2V0cyhkdXBsaWNhdGVUYXJnZXRJZHMpLFxyXG4gICAgICApLFxyXG4gICAgcmVtb3RlRGVidWdnZXJTZXJ2aWNlc1xyXG4gICAgICAuZmxhdE1hcCgoe3NlcnZpY2UsIHJvb3RVcml9KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHNlcnZpY2VcclxuICAgICAgICAgIC5vYnNlcnZlUmVtb3RlRGVidWdDb21tYW5kcygpXHJcbiAgICAgICAgICAucmVmQ291bnQoKVxyXG4gICAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICAgICAgICdGYWlsZWQgdG8gbGlzdGVuIHRvIHJlbW90ZSBkZWJ1ZyBjb21tYW5kcyAtICcgK1xyXG4gICAgICAgICAgICAgICAgJ1lvdSBjb3VsZCBiZSBydW5uaW5nIGxvY2FsbHkgd2l0aCB0d28gQXRvbSB3aW5kb3dzLiAnICtcclxuICAgICAgICAgICAgICAgIGBJc0xvY2FsOiAke1N0cmluZyhyb290VXJpID09PSAnJyl9YCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgcmV0dXJuIE9ic2VydmFibGUuZW1wdHkoKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAubWFwKChjb21tYW5kOiBSZW1vdGVEZWJ1Z0NvbW1hbmRSZXF1ZXN0KSA9PiAoe3Jvb3RVcmksIGNvbW1hbmR9KSk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5sZXQoZmFzdERlYm91bmNlKDUwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKHtyb290VXJpLCBjb21tYW5kfSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGF0dGFjaFByb2Nlc3NDb25maWcgPSBnZXRQeXRob25BdHRhY2hUYXJnZXRQcm9jZXNzQ29uZmlnKFxyXG4gICAgICAgICAgcm9vdFVyaSxcclxuICAgICAgICAgIGNvbW1hbmQudGFyZ2V0LFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgZGVidWdnZXJTZXJ2aWNlID0gYXdhaXQgZ2V0RGVidWdnZXJTZXJ2aWNlKCk7XHJcbiAgICAgICAgdHJhY2soJ2ZiLXB5dGhvbi1kZWJ1Z2dlci1hdXRvLWF0dGFjaCcpO1xyXG4gICAgICAgIGRlYnVnZ2VyU2VydmljZS5zdGFydFZzcERlYnVnZ2luZyhhdHRhY2hQcm9jZXNzQ29uZmlnKTtcclxuICAgICAgICAvLyBPdGhlcndpc2UsIHdlJ3JlIGFscmVhZHkgZGVidWdnaW5nIHRoYXQgdGFyZ2V0LlxyXG4gICAgICB9KSxcclxuICApO1xyXG59XHJcblxyXG5sZXQgc2hvdWxkTm90aWZ5RHVwbGljYXRlVGFyZ2V0cyA9IHRydWU7XHJcbmxldCBkdXBsaWNhdGVUYXJnZXRzTm90aWZpY2F0aW9uO1xyXG5cclxuZnVuY3Rpb24gbm90aWZ5RHVwbGljYXRlRGVidWdUYXJnZXRzKGR1cGxpY2F0ZVRhcmdldElkczogU2V0PHN0cmluZz4pOiB2b2lkIHtcclxuICBpZiAoXHJcbiAgICBkdXBsaWNhdGVUYXJnZXRJZHMuc2l6ZSA+IDAgJiZcclxuICAgIHNob3VsZE5vdGlmeUR1cGxpY2F0ZVRhcmdldHMgJiZcclxuICAgIGR1cGxpY2F0ZVRhcmdldHNOb3RpZmljYXRpb24gPT0gbnVsbFxyXG4gICkge1xyXG4gICAgY29uc3QgZm9ybWF0dGVkSWRzID0gQXJyYXkuZnJvbShkdXBsaWNhdGVUYXJnZXRJZHMpLmpvaW4oJywgJyk7XHJcbiAgICBkdXBsaWNhdGVUYXJnZXRzTm90aWZpY2F0aW9uID0gYXRvbS5ub3RpZmljYXRpb25zLmFkZEluZm8oXHJcbiAgICAgIGBEZWJ1Z2dlcjogZHVwbGljYXRlIGF0dGFjaCB0YXJnZXRzOiBcXGAke2Zvcm1hdHRlZElkc31cXGBgLFxyXG4gICAgICB7XHJcbiAgICAgICAgYnV0dG9uczogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBvbkRpZENsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgc2hvdWxkTm90aWZ5RHVwbGljYXRlVGFyZ2V0cyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIGlmIChkdXBsaWNhdGVUYXJnZXRzTm90aWZpY2F0aW9uICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGR1cGxpY2F0ZVRhcmdldHNOb3RpZmljYXRpb24uZGlzbWlzcygpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdGV4dDogJ0lnbm9yZScsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgZGVzY3JpcHRpb246XHJcbiAgICAgICAgICBgTnVjbGlkZSBkZWJ1Z2dlciBkZXRlY3RlZCBkdXBsaWNhdGUgYXR0YWNoIHRhcmdldHMgd2l0aCBpZHMgKCR7Zm9ybWF0dGVkSWRzfSkgYCArXHJcbiAgICAgICAgICAnVGhhdCBjb3VsZCBiZSBpbnN0YWdyYW0gcnVubmluZyBtdWx0aXBsZSBwcm9jZXNzZXMgLSBjaGVjayBvdXQgaHR0cHM6Ly9vdXIuaW50ZXJuLmZhY2Vib29rLmNvbS9pbnRlcm4vZGV4L2luc3RhZ3JhbS1zZXJ2ZXIvZGVidWdnaW5nLXdpdGgtbnVjbGlkZS8nLFxyXG4gICAgICAgIGRpc21pc3NhYmxlOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgKTtcclxuICAgIGR1cGxpY2F0ZVRhcmdldHNOb3RpZmljYXRpb24ub25EaWREaXNtaXNzKCgpID0+IHtcclxuICAgICAgZHVwbGljYXRlVGFyZ2V0c05vdGlmaWNhdGlvbiA9IG51bGw7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmREdXBsaWNhdGVBdHRhY2hUYXJnZXRJZHMoXHJcbiAgdGFyZ2V0czogQXJyYXk8UHl0aG9uRGVidWdnZXJBdHRhY2hUYXJnZXQ+LFxyXG4pOiBTZXQ8c3RyaW5nPiB7XHJcbiAgY29uc3QgdGFyZ2V0SWRzID0gbmV3IFNldCgpO1xyXG4gIGNvbnN0IGR1cGxpY2F0ZVRhcmdldElkcyA9IG5ldyBTZXQoKTtcclxuICB0YXJnZXRzLmZvckVhY2godGFyZ2V0ID0+IHtcclxuICAgIGNvbnN0IHtpZH0gPSB0YXJnZXQ7XHJcbiAgICBpZiAoaWQgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGFyZ2V0SWRzLmhhcyhpZCkpIHtcclxuICAgICAgZHVwbGljYXRlVGFyZ2V0SWRzLmFkZChpZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0YXJnZXRJZHMuYWRkKGlkKTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gZHVwbGljYXRlVGFyZ2V0SWRzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVtb3RlRGVidWdnZXJDb21tYW5kU2VydmljZUJ5TnVjbGlkZVVyaShcclxuICB1cmk6IE51Y2xpZGVVcmksXHJcbik6IFJlbW90ZURlYnVnZ2VyQ29tbWFuZFNlcnZpY2Uge1xyXG4gIGlmIChfcnBjU2VydmljZSA9PSBudWxsICYmICFudWNsaWRlVXJpLmlzUmVtb3RlKHVyaSkpIHtcclxuICAgIHJldHVybiBSZW1vdGVEZWJ1Z2dlckNvbW1hbmRTZXJ2aWNlTG9jYWw7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbnVsbHRocm93cyhfcnBjU2VydmljZSkuZ2V0U2VydmljZUJ5TnVjbGlkZVVyaShcclxuICAgICdSZW1vdGVEZWJ1Z2dlckNvbW1hbmRTZXJ2aWNlJyxcclxuICAgIHVyaSxcclxuICApO1xyXG59XHJcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbIl9ycGNTZXJ2aWNlIiwiZ2V0UHl0aG9uQXR0YWNoVGFyZ2V0UHJvY2Vzc0NvbmZpZyIsInRhcmdldFJvb3RVcmkiLCJ0YXJnZXQiLCJ0YXJnZXRVcmkiLCJkZWJ1Z01vZGUiLCJhZGFwdGVyVHlwZSIsImNvbmZpZyIsImdldFB5dGhvbkF0dGFjaFRhcmdldENvbmZpZyIsInNlcnZpY2VkRmlsZUV4dGVuc2lvbnMiLCJsb2NhbFJvb3QiLCJyZW1vdGVSb290IiwicG9ydCIsImhvc3QiLCJzZXRScGNTZXJ2aWNlIiwicnBjU2VydmljZSIsIlVuaXZlcnNhbERpc3Bvc2FibGUiLCJsaXN0ZW5Ub1JlbW90ZURlYnVnQ29tbWFuZHMiLCJhZGRlZEhvc3RuYW1lcyIsInN0YXJ0V2l0aCIsInJlbW90ZURlYnVnZ2VyU2VydmljZXMiLCJmbGF0TWFwIiwiaG9zdG5hbWUiLCJyb290VXJpIiwibnVjbGlkZVVyaSIsImNyZWF0ZVJlbW90ZVVyaSIsInNlcnZpY2UiLCJnZXRSZW1vdGVEZWJ1Z2dlckNvbW1hbmRTZXJ2aWNlQnlOdWNsaWRlVXJpIiwiZXJyb3IiLCJPYnNlcnZhYmxlIiwiZW1wdHkiLCJvZiIsIm9ic2VydmVBdHRhY2hEZWJ1Z1RhcmdldHMiLCJyZWZDb3VudCIsIm1hcCIsInRhcmdldHMiLCJmaW5kRHVwbGljYXRlQXR0YWNoVGFyZ2V0SWRzIiwic3Vic2NyaWJlIiwiZHVwbGljYXRlVGFyZ2V0SWRzIiwibm90aWZ5RHVwbGljYXRlRGVidWdUYXJnZXRzIiwib2JzZXJ2ZVJlbW90ZURlYnVnQ29tbWFuZHMiLCJjYXRjaCIsImNvbnNvbGUiLCJ3YXJuIiwiU3RyaW5nIiwiY29tbWFuZCIsImxldCIsImF0dGFjaFByb2Nlc3NDb25maWciLCJkZWJ1Z2dlclNlcnZpY2UiLCJzdGFydFZzcERlYnVnZ2luZyIsInNob3VsZE5vdGlmeUR1cGxpY2F0ZVRhcmdldHMiLCJkdXBsaWNhdGVUYXJnZXRzTm90aWZpY2F0aW9uIiwic2l6ZSIsImZvcm1hdHRlZElkcyIsIkFycmF5IiwiZnJvbSIsImpvaW4iLCJhdG9tIiwibm90aWZpY2F0aW9ucyIsImFkZEluZm8iLCJidXR0b25zIiwib25EaWRDbGljayIsImRpc21pc3MiLCJ0ZXh0IiwiZGVzY3JpcHRpb24iLCJkaXNtaXNzYWJsZSIsIm9uRGlkRGlzbWlzcyIsInRhcmdldElkcyIsIlNldCIsImZvckVhY2giLCJpZCIsImhhcyIsImFkZCIsInVyaSIsImlzUmVtb3RlIiwiUmVtb3RlRGVidWdnZXJDb21tYW5kU2VydmljZUxvY2FsIiwiZ2V0U2VydmljZUJ5TnVjbGlkZVVyaSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBUUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7O0FBRUEsSUFBSUEsV0FBZ0MsR0FBRyxJQUF2Qzs7QUFFQSxTQUFTQyxrQ0FBVCxDQUNFQyxhQURGLEVBRUVDLE1BRkYsRUFHa0I7QUFDaEIsU0FBTztBQUNMQyxJQUFBQSxTQUFTLEVBQUVGLGFBRE47QUFFTEcsSUFBQUEsU0FBUyxFQUFFLFFBRk47QUFHTEMsSUFBQUEsV0FBVyxFQUFFLFFBSFI7QUFJTEMsSUFBQUEsTUFBTSxFQUFFQywyQkFBMkIsQ0FBQ0wsTUFBRCxDQUo5QjtBQUtMTSxJQUFBQSxzQkFBc0IsRUFBRSxDQUFDLElBQUQ7QUFMbkIsR0FBUDtBQU9EOztBQUVELFNBQVNELDJCQUFULENBQ0VMLE1BREYsRUFFVTtBQUNSLFNBQU87QUFDTE8sSUFBQUEsU0FBUyxFQUFFUCxNQUFNLENBQUNPLFNBRGI7QUFFTEMsSUFBQUEsVUFBVSxFQUFFUixNQUFNLENBQUNRLFVBRmQ7QUFHTEMsSUFBQUEsSUFBSSxFQUFFVCxNQUFNLENBQUNTLElBSFI7QUFJTEMsSUFBQUEsSUFBSSxFQUFFO0FBSkQsR0FBUDtBQU1EOztBQUVNLFNBQVNDLGFBQVQsQ0FBdUJDLFVBQXZCLEVBQW9FO0FBQ3pFZixFQUFBQSxXQUFXLEdBQUdlLFVBQWQ7QUFD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QUNEOztBQUVNLFNBQVNYLDJDQUFULENBQ0w4QyxHQURLLEVBRXlCO0FBQzlCLE1BQUl6RSxXQUFXLElBQUksSUFBZixJQUF1QixDQUFDd0Isb0JBQVdrRCxRQUFYLENBQW9CRCxHQUFwQixDQUE1QixFQUFzRDtBQUNwRCxXQUFPRSxpQ0FBUDtBQUNEOztBQUVELFNBQU8seUJBQVczRSxXQUFYLEVBQXdCNEUsc0JBQXhCLENBQ0wsOEJBREssRUFFTEgsR0FGSyxDQUFQO0FBSUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7TnVjbGlkZVVyaX0gZnJvbSAnQGF0b20taWRlLWNvbW11bml0eS9udWNsaWRlLWNvbW1vbnMvbnVjbGlkZVVyaSc7XHJcbmltcG9ydCB0eXBlIHtcclxuICBQeXRob25EZWJ1Z2dlckF0dGFjaFRhcmdldCxcclxuICBSZW1vdGVEZWJ1Z0NvbW1hbmRSZXF1ZXN0LFxyXG59IGZyb20gJy4vUmVtb3RlRGVidWdnZXJDb21tYW5kU2VydmljZSc7XHJcbmltcG9ydCB0eXBlIHtJUHJvY2Vzc0NvbmZpZ30gZnJvbSAnQGF0b20taWRlLWNvbW11bml0eS9udWNsaWRlLWRlYnVnZ2VyLWNvbW1vbic7XHJcbmltcG9ydCB0eXBlb2YgKiBhcyBSZW1vdGVEZWJ1Z2dlckNvbW1hbmRTZXJ2aWNlIGZyb20gJy4vUmVtb3RlRGVidWdnZXJDb21tYW5kU2VydmljZSc7XHJcblxyXG5pbXBvcnQge2dldERlYnVnZ2VyU2VydmljZX0gZnJvbSAnQGF0b20taWRlLWNvbW11bml0eS9udWNsaWRlLWNvbW1vbnMtYXRvbS9kZWJ1Z2dlcic7XHJcbmltcG9ydCB7b2JzZXJ2ZUFkZGVkSG9zdG5hbWVzfSBmcm9tICdAYXRvbS1pZGUtY29tbXVuaXR5L251Y2xpZGUtY29tbW9ucy1hdG9tL3Byb2plY3RzJztcclxuaW1wb3J0IG51Y2xpZGVVcmkgZnJvbSAnQGF0b20taWRlLWNvbW11bml0eS9udWNsaWRlLWNvbW1vbnMvbnVjbGlkZVVyaSc7XHJcbmltcG9ydCB7ZmFzdERlYm91bmNlfSBmcm9tICdAYXRvbS1pZGUtY29tbXVuaXR5L251Y2xpZGUtY29tbW9ucy9vYnNlcnZhYmxlJztcclxuaW1wb3J0IFVuaXZlcnNhbERpc3Bvc2FibGUgZnJvbSAnQGF0b20taWRlLWNvbW11bml0eS9udWNsaWRlLWNvbW1vbnMvVW5pdmVyc2FsRGlzcG9zYWJsZSc7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcy1jb21wYXQvYnVuZGxlcy9yeGpzLWNvbXBhdC51bWQubWluLmpzJztcclxuaW1wb3J0IHt0cmFja30gZnJvbSAnQGF0b20taWRlLWNvbW11bml0eS9udWNsaWRlLWNvbW1vbnMvYW5hbHl0aWNzJztcclxuaW1wb3J0ICogYXMgUmVtb3RlRGVidWdnZXJDb21tYW5kU2VydmljZUxvY2FsIGZyb20gJy4vUmVtb3RlRGVidWdnZXJDb21tYW5kU2VydmljZSc7XHJcbmltcG9ydCBudWxsdGhyb3dzIGZyb20gJ251bGx0aHJvd3MnO1xyXG5pbXBvcnQge2dldExvZ2dlcn0gZnJvbSAnbG9nNGpzJztcclxuXHJcbmxldCBfcnBjU2VydmljZTogP251Y2xpZGUkUnBjU2VydmljZSA9IG51bGw7XHJcblxyXG5mdW5jdGlvbiBnZXRQeXRob25BdHRhY2hUYXJnZXRQcm9jZXNzQ29uZmlnKFxyXG4gIHRhcmdldFJvb3RVcmk6IE51Y2xpZGVVcmksXHJcbiAgdGFyZ2V0OiBQeXRob25EZWJ1Z2dlckF0dGFjaFRhcmdldCxcclxuKTogSVByb2Nlc3NDb25maWcge1xyXG4gIHJldHVybiB7XHJcbiAgICB0YXJnZXRVcmk6IHRhcmdldFJvb3RVcmksXHJcbiAgICBkZWJ1Z01vZGU6ICdhdHRhY2gnLFxyXG4gICAgYWRhcHRlclR5cGU6IFwicHl0aG9uXCIsXHJcbiAgICBjb25maWc6IGdldFB5dGhvbkF0dGFjaFRhcmdldENvbmZpZyh0YXJnZXQpLFxyXG4gICAgc2VydmljZWRGaWxlRXh0ZW5zaW9uczogWydweSddLFxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFB5dGhvbkF0dGFjaFRhcmdldENvbmZpZyhcclxuICB0YXJnZXQ6IFB5dGhvbkRlYnVnZ2VyQXR0YWNoVGFyZ2V0LFxyXG4pOiBPYmplY3Qge1xyXG4gIHJldHVybiB7XHJcbiAgICBsb2NhbFJvb3Q6IHRhcmdldC5sb2NhbFJvb3QsXHJcbiAgICByZW1vdGVSb290OiB0YXJnZXQucmVtb3RlUm9vdCxcclxuICAgIHBvcnQ6IHRhcmdldC5wb3J0LFxyXG4gICAgaG9zdDogJzEyNy4wLjAuMScsXHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFJwY1NlcnZpY2UocnBjU2VydmljZTogbnVjbGlkZSRScGNTZXJ2aWNlKTogSURpc3Bvc2FibGUge1xyXG4gIF9ycGNTZXJ2aWNlID0gcnBjU2VydmljZTtcclxuICByZXR1cm4gbmV3IFVuaXZlcnNhbERpc3Bvc2FibGUoKCkgPT4ge1xyXG4gICAgX3JwY1NlcnZpY2UgPSBudWxsO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbGlzdGVuVG9SZW1vdGVEZWJ1Z0NvbW1hbmRzKCk6IElEaXNwb3NhYmxlIHtcclxuICBjb25zdCBhZGRlZEhvc3RuYW1lcyA9IG9ic2VydmVBZGRlZEhvc3RuYW1lcygpLnN0YXJ0V2l0aCgnbG9jYWwnKTtcclxuXHJcbiAgY29uc3QgcmVtb3RlRGVidWdnZXJTZXJ2aWNlcyA9IGFkZGVkSG9zdG5hbWVzLmZsYXRNYXAoaG9zdG5hbWUgPT4ge1xyXG4gICAgY29uc3Qgcm9vdFVyaSA9XHJcbiAgICAgIGhvc3RuYW1lID09PSAnbG9jYWwnID8gJycgOiBudWNsaWRlVXJpLmNyZWF0ZVJlbW90ZVVyaShob3N0bmFtZSwgJy8nKTtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBnZXRSZW1vdGVEZWJ1Z2dlckNvbW1hbmRTZXJ2aWNlQnlOdWNsaWRlVXJpKHJvb3RVcmkpO1xyXG4gICAgaWYgKHNlcnZpY2UgPT0gbnVsbCkge1xyXG4gICAgICBnZXRMb2dnZXIoKS5lcnJvcignbnVsbCByZW1vdGUgY29tbWFuZCBzZXJ2aWNlIGZvciB1cmk6Jywgcm9vdFVyaSk7XHJcbiAgICAgIHJldHVybiBPYnNlcnZhYmxlLmVtcHR5KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gT2JzZXJ2YWJsZS5vZih7c2VydmljZSwgcm9vdFVyaX0pO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gbmV3IFVuaXZlcnNhbERpc3Bvc2FibGUoXHJcbiAgICByZW1vdGVEZWJ1Z2dlclNlcnZpY2VzXHJcbiAgICAgIC5mbGF0TWFwKCh7c2VydmljZSwgcm9vdFVyaX0pID0+IHtcclxuICAgICAgICByZXR1cm4gc2VydmljZVxyXG4gICAgICAgICAgLm9ic2VydmVBdHRhY2hEZWJ1Z1RhcmdldHMoKVxyXG4gICAgICAgICAgLnJlZkNvdW50KClcclxuICAgICAgICAgIC5tYXAodGFyZ2V0cyA9PiBmaW5kRHVwbGljYXRlQXR0YWNoVGFyZ2V0SWRzKHRhcmdldHMpKTtcclxuICAgICAgfSlcclxuXHJcbiAgICAgIC5zdWJzY3JpYmUoZHVwbGljYXRlVGFyZ2V0SWRzID0+XHJcbiAgICAgICAgbm90aWZ5RHVwbGljYXRlRGVidWdUYXJnZXRzKGR1cGxpY2F0ZVRhcmdldElkcyksXHJcbiAgICAgICksXHJcbiAgICByZW1vdGVEZWJ1Z2dlclNlcnZpY2VzXHJcbiAgICAgIC5mbGF0TWFwKCh7c2VydmljZSwgcm9vdFVyaX0pID0+IHtcclxuICAgICAgICByZXR1cm4gc2VydmljZVxyXG4gICAgICAgICAgLm9ic2VydmVSZW1vdGVEZWJ1Z0NvbW1hbmRzKClcclxuICAgICAgICAgIC5yZWZDb3VudCgpXHJcbiAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBsaXN0ZW4gdG8gcmVtb3RlIGRlYnVnIGNvbW1hbmRzIC0gJyArXHJcbiAgICAgICAgICAgICAgICAnWW91IGNvdWxkIGJlIHJ1bm5pbmcgbG9jYWxseSB3aXRoIHR3byBBdG9tIHdpbmRvd3MuICcgK1xyXG4gICAgICAgICAgICAgICAgYElzTG9jYWw6ICR7U3RyaW5nKHJvb3RVcmkgPT09ICcnKX1gLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICByZXR1cm4gT2JzZXJ2YWJsZS5lbXB0eSgpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5tYXAoKGNvbW1hbmQ6IFJlbW90ZURlYnVnQ29tbWFuZFJlcXVlc3QpID0+ICh7cm9vdFVyaSwgY29tbWFuZH0pKTtcclxuICAgICAgfSlcclxuICAgICAgLmxldChmYXN0RGVib3VuY2UoNTAwKSlcclxuICAgICAgLnN1YnNjcmliZShhc3luYyAoe3Jvb3RVcmksIGNvbW1hbmR9KSA9PiB7XHJcbiAgICAgICAgY29uc3QgYXR0YWNoUHJvY2Vzc0NvbmZpZyA9IGdldFB5dGhvbkF0dGFjaFRhcmdldFByb2Nlc3NDb25maWcoXHJcbiAgICAgICAgICByb290VXJpLFxyXG4gICAgICAgICAgY29tbWFuZC50YXJnZXQsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBkZWJ1Z2dlclNlcnZpY2UgPSBhd2FpdCBnZXREZWJ1Z2dlclNlcnZpY2UoKTtcclxuICAgICAgICB0cmFjaygnZmItcHl0aG9uLWRlYnVnZ2VyLWF1dG8tYXR0YWNoJyk7XHJcbiAgICAgICAgZGVidWdnZXJTZXJ2aWNlLnN0YXJ0VnNwRGVidWdnaW5nKGF0dGFjaFByb2Nlc3NDb25maWcpO1xyXG4gICAgICAgIC8vIE90aGVyd2lzZSwgd2UncmUgYWxyZWFkeSBkZWJ1Z2dpbmcgdGhhdCB0YXJnZXQuXHJcbiAgICAgIH0pLFxyXG4gICk7XHJcbn1cclxuXHJcbmxldCBzaG91bGROb3RpZnlEdXBsaWNhdGVUYXJnZXRzID0gdHJ1ZTtcclxubGV0IGR1cGxpY2F0ZVRhcmdldHNOb3RpZmljYXRpb247XHJcblxyXG5mdW5jdGlvbiBub3RpZnlEdXBsaWNhdGVEZWJ1Z1RhcmdldHMoZHVwbGljYXRlVGFyZ2V0SWRzOiBTZXQ8c3RyaW5nPik6IHZvaWQge1xyXG4gIGlmIChcclxuICAgIGR1cGxpY2F0ZVRhcmdldElkcy5zaXplID4gMCAmJlxyXG4gICAgc2hvdWxkTm90aWZ5RHVwbGljYXRlVGFyZ2V0cyAmJlxyXG4gICAgZHVwbGljYXRlVGFyZ2V0c05vdGlmaWNhdGlvbiA9PSBudWxsXHJcbiAgKSB7XHJcbiAgICBjb25zdCBmb3JtYXR0ZWRJZHMgPSBBcnJheS5mcm9tKGR1cGxpY2F0ZVRhcmdldElkcykuam9pbignLCAnKTtcclxuICAgIGR1cGxpY2F0ZVRhcmdldHNOb3RpZmljYXRpb24gPSBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkSW5mbyhcclxuICAgICAgYERlYnVnZ2VyOiBkdXBsaWNhdGUgYXR0YWNoIHRhcmdldHM6IFxcYCR7Zm9ybWF0dGVkSWRzfVxcYGAsXHJcbiAgICAgIHtcclxuICAgICAgICBidXR0b25zOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIG9uRGlkQ2xpY2s6ICgpID0+IHtcclxuICAgICAgICAgICAgICBzaG91bGROb3RpZnlEdXBsaWNhdGVUYXJnZXRzID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgaWYgKGR1cGxpY2F0ZVRhcmdldHNOb3RpZmljYXRpb24gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgZHVwbGljYXRlVGFyZ2V0c05vdGlmaWNhdGlvbi5kaXNtaXNzKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0ZXh0OiAnSWdub3JlJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgIGBOdWNsaWRlIGRlYnVnZ2VyIGRldGVjdGVkIGR1cGxpY2F0ZSBhdHRhY2ggdGFyZ2V0cyB3aXRoIGlkcyAoJHtmb3JtYXR0ZWRJZHN9KSBgICtcclxuICAgICAgICAgICdUaGF0IGNvdWxkIGJlIGluc3RhZ3JhbSBydW5uaW5nIG11bHRpcGxlIHByb2Nlc3NlcyAtIGNoZWNrIG91dCBodHRwczovL291ci5pbnRlcm4uZmFjZWJvb2suY29tL2ludGVybi9kZXgvaW5zdGFncmFtLXNlcnZlci9kZWJ1Z2dpbmctd2l0aC1udWNsaWRlLycsXHJcbiAgICAgICAgZGlzbWlzc2FibGU6IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICApO1xyXG4gICAgZHVwbGljYXRlVGFyZ2V0c05vdGlmaWNhdGlvbi5vbkRpZERpc21pc3MoKCkgPT4ge1xyXG4gICAgICBkdXBsaWNhdGVUYXJnZXRzTm90aWZpY2F0aW9uID0gbnVsbDtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZmluZER1cGxpY2F0ZUF0dGFjaFRhcmdldElkcyhcclxuICB0YXJnZXRzOiBBcnJheTxQeXRob25EZWJ1Z2dlckF0dGFjaFRhcmdldD4sXHJcbik6IFNldDxzdHJpbmc+IHtcclxuICBjb25zdCB0YXJnZXRJZHMgPSBuZXcgU2V0KCk7XHJcbiAgY29uc3QgZHVwbGljYXRlVGFyZ2V0SWRzID0gbmV3IFNldCgpO1xyXG4gIHRhcmdldHMuZm9yRWFjaCh0YXJnZXQgPT4ge1xyXG4gICAgY29uc3Qge2lkfSA9IHRhcmdldDtcclxuICAgIGlmIChpZCA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0YXJnZXRJZHMuaGFzKGlkKSkge1xyXG4gICAgICBkdXBsaWNhdGVUYXJnZXRJZHMuYWRkKGlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRhcmdldElkcy5hZGQoaWQpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBkdXBsaWNhdGVUYXJnZXRJZHM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRSZW1vdGVEZWJ1Z2dlckNvbW1hbmRTZXJ2aWNlQnlOdWNsaWRlVXJpKFxyXG4gIHVyaTogTnVjbGlkZVVyaSxcclxuKTogUmVtb3RlRGVidWdnZXJDb21tYW5kU2VydmljZSB7XHJcbiAgaWYgKF9ycGNTZXJ2aWNlID09IG51bGwgJiYgIW51Y2xpZGVVcmkuaXNSZW1vdGUodXJpKSkge1xyXG4gICAgcmV0dXJuIFJlbW90ZURlYnVnZ2VyQ29tbWFuZFNlcnZpY2VMb2NhbDtcclxuICB9XHJcblxyXG4gIHJldHVybiBudWxsdGhyb3dzKF9ycGNTZXJ2aWNlKS5nZXRTZXJ2aWNlQnlOdWNsaWRlVXJpKFxyXG4gICAgJ1JlbW90ZURlYnVnZ2VyQ29tbWFuZFNlcnZpY2UnLFxyXG4gICAgdXJpLFxyXG4gICk7XHJcbn1cclxuIl19 \ No newline at end of file