matrix-react-sdk
Version:
SDK for matrix.org using React
115 lines (112 loc) • 19.3 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DialogOpener = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _classnames = _interopRequireDefault(require("classnames"));
var _dispatcher = _interopRequireDefault(require("../dispatcher/dispatcher"));
var _Modal = _interopRequireDefault(require("../Modal"));
var _RoomSettingsDialog = _interopRequireDefault(require("../components/views/dialogs/RoomSettingsDialog"));
var _ForwardDialog = _interopRequireDefault(require("../components/views/dialogs/ForwardDialog"));
var _actions = require("../dispatcher/actions");
var _ReportEventDialog = _interopRequireDefault(require("../components/views/dialogs/ReportEventDialog"));
var _SpacePreferencesDialog = _interopRequireDefault(require("../components/views/dialogs/SpacePreferencesDialog"));
var _SpaceSettingsDialog = _interopRequireDefault(require("../components/views/dialogs/SpaceSettingsDialog"));
var _InviteDialog = _interopRequireDefault(require("../components/views/dialogs/InviteDialog"));
var _AddExistingToSpaceDialog = _interopRequireDefault(require("../components/views/dialogs/AddExistingToSpaceDialog"));
var _PosthogTrackers = _interopRequireDefault(require("../PosthogTrackers"));
var _space = require("./space");
var _SDKContext = require("../contexts/SDKContext");
var _DialogOpener;
/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
/**
* Auxiliary class to listen for dialog opening over the dispatcher and
* open the required dialogs. Not all dialogs run through here, but the
* ones which cause import cycles are good candidates.
*/
class DialogOpener {
constructor() {
(0, _defineProperty2.default)(this, "isRegistered", false);
(0, _defineProperty2.default)(this, "matrixClient", void 0);
(0, _defineProperty2.default)(this, "onDispatch", payload => {
if (!this.matrixClient) return;
switch (payload.action) {
case "open_room_settings":
_Modal.default.createDialog(_RoomSettingsDialog.default, {
roomId: payload.room_id || _SDKContext.SdkContextClass.instance.roomViewStore.getRoomId(),
initialTabId: payload.initial_tab_id
}, /*className=*/undefined, /*isPriority=*/false, /*isStatic=*/true);
break;
case _actions.Action.OpenForwardDialog:
_Modal.default.createDialog(_ForwardDialog.default, {
matrixClient: this.matrixClient,
event: payload.event,
permalinkCreator: payload.permalinkCreator
});
break;
case _actions.Action.OpenReportEventDialog:
_Modal.default.createDialog(_ReportEventDialog.default, {
mxEvent: payload.event
}, "mx_Dialog_reportEvent");
break;
case _actions.Action.OpenSpacePreferences:
_Modal.default.createDialog(_SpacePreferencesDialog.default, {
space: payload.space
}, undefined, false, true);
break;
case _actions.Action.OpenSpaceSettings:
_Modal.default.createDialog(_SpaceSettingsDialog.default, {
matrixClient: payload.space.client,
space: payload.space
}, /*className=*/undefined, /*isPriority=*/false, /*isStatic=*/true);
break;
case _actions.Action.OpenInviteDialog:
_Modal.default.createDialog(_InviteDialog.default, {
kind: payload.kind,
call: payload.call,
roomId: payload.roomId
}, (0, _classnames.default)("mx_InviteDialog_flexWrapper", payload.className), false, true).finished.then(results => {
payload.onFinishedCallback?.(results);
});
break;
case _actions.Action.OpenAddToExistingSpaceDialog:
{
const space = payload.space;
_Modal.default.createDialog(_AddExistingToSpaceDialog.default, {
onCreateRoomClick: ev => {
(0, _space.showCreateNewRoom)(space);
_PosthogTrackers.default.trackInteraction("WebAddExistingToSpaceDialogCreateRoomButton", ev);
},
onAddSubspaceClick: () => (0, _space.showAddExistingSubspace)(space),
space,
onFinished: added => {
if (added && _SDKContext.SdkContextClass.instance.roomViewStore.getRoomId() === space.roomId) {
_dispatcher.default.fire(_actions.Action.UpdateSpaceHierarchy);
}
}
}, "mx_AddExistingToSpaceDialog_wrapper");
break;
}
}
});
}
// We could do this in the constructor, but then we wouldn't have
// a function to call from Lifecycle to capture the class.
prepare(matrixClient) {
this.matrixClient = matrixClient;
if (this.isRegistered) return;
_dispatcher.default.register(this.onDispatch);
this.isRegistered = true;
}
}
exports.DialogOpener = DialogOpener;
_DialogOpener = DialogOpener;
(0, _defineProperty2.default)(DialogOpener, "instance", new _DialogOpener());
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2Rpc3BhdGNoZXIiLCJfTW9kYWwiLCJfUm9vbVNldHRpbmdzRGlhbG9nIiwiX0ZvcndhcmREaWFsb2ciLCJfYWN0aW9ucyIsIl9SZXBvcnRFdmVudERpYWxvZyIsIl9TcGFjZVByZWZlcmVuY2VzRGlhbG9nIiwiX1NwYWNlU2V0dGluZ3NEaWFsb2ciLCJfSW52aXRlRGlhbG9nIiwiX0FkZEV4aXN0aW5nVG9TcGFjZURpYWxvZyIsIl9Qb3N0aG9nVHJhY2tlcnMiLCJfc3BhY2UiLCJfU0RLQ29udGV4dCIsIl9EaWFsb2dPcGVuZXIiLCJEaWFsb2dPcGVuZXIiLCJjb25zdHJ1Y3RvciIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwicGF5bG9hZCIsIm1hdHJpeENsaWVudCIsImFjdGlvbiIsIk1vZGFsIiwiY3JlYXRlRGlhbG9nIiwiUm9vbVNldHRpbmdzRGlhbG9nIiwicm9vbUlkIiwicm9vbV9pZCIsIlNka0NvbnRleHRDbGFzcyIsImluc3RhbmNlIiwicm9vbVZpZXdTdG9yZSIsImdldFJvb21JZCIsImluaXRpYWxUYWJJZCIsImluaXRpYWxfdGFiX2lkIiwidW5kZWZpbmVkIiwiQWN0aW9uIiwiT3BlbkZvcndhcmREaWFsb2ciLCJGb3J3YXJkRGlhbG9nIiwiZXZlbnQiLCJwZXJtYWxpbmtDcmVhdG9yIiwiT3BlblJlcG9ydEV2ZW50RGlhbG9nIiwiUmVwb3J0RXZlbnREaWFsb2ciLCJteEV2ZW50IiwiT3BlblNwYWNlUHJlZmVyZW5jZXMiLCJTcGFjZVByZWZlcmVuY2VzRGlhbG9nIiwic3BhY2UiLCJPcGVuU3BhY2VTZXR0aW5ncyIsIlNwYWNlU2V0dGluZ3NEaWFsb2ciLCJjbGllbnQiLCJPcGVuSW52aXRlRGlhbG9nIiwiSW52aXRlRGlhbG9nIiwia2luZCIsImNhbGwiLCJjbGFzc25hbWVzIiwiY2xhc3NOYW1lIiwiZmluaXNoZWQiLCJ0aGVuIiwicmVzdWx0cyIsIm9uRmluaXNoZWRDYWxsYmFjayIsIk9wZW5BZGRUb0V4aXN0aW5nU3BhY2VEaWFsb2ciLCJBZGRFeGlzdGluZ1RvU3BhY2VEaWFsb2ciLCJvbkNyZWF0ZVJvb21DbGljayIsImV2Iiwic2hvd0NyZWF0ZU5ld1Jvb20iLCJQb3N0aG9nVHJhY2tlcnMiLCJ0cmFja0ludGVyYWN0aW9uIiwib25BZGRTdWJzcGFjZUNsaWNrIiwic2hvd0FkZEV4aXN0aW5nU3Vic3BhY2UiLCJvbkZpbmlzaGVkIiwiYWRkZWQiLCJkZWZhdWx0RGlzcGF0Y2hlciIsImZpcmUiLCJVcGRhdGVTcGFjZUhpZXJhcmNoeSIsInByZXBhcmUiLCJpc1JlZ2lzdGVyZWQiLCJyZWdpc3RlciIsIm9uRGlzcGF0Y2giLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL0RpYWxvZ09wZW5lci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xuaW1wb3J0IHsgQ29tcG9uZW50UHJvcHMgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IE1hdHJpeENsaWVudCB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcblxuaW1wb3J0IGRlZmF1bHREaXNwYXRjaGVyIGZyb20gXCIuLi9kaXNwYXRjaGVyL2Rpc3BhdGNoZXJcIjtcbmltcG9ydCB7IEFjdGlvblBheWxvYWQgfSBmcm9tIFwiLi4vZGlzcGF0Y2hlci9wYXlsb2Fkc1wiO1xuaW1wb3J0IE1vZGFsIGZyb20gXCIuLi9Nb2RhbFwiO1xuaW1wb3J0IFJvb21TZXR0aW5nc0RpYWxvZyBmcm9tIFwiLi4vY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL1Jvb21TZXR0aW5nc0RpYWxvZ1wiO1xuaW1wb3J0IEZvcndhcmREaWFsb2cgZnJvbSBcIi4uL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9Gb3J3YXJkRGlhbG9nXCI7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiLi4vZGlzcGF0Y2hlci9hY3Rpb25zXCI7XG5pbXBvcnQgUmVwb3J0RXZlbnREaWFsb2cgZnJvbSBcIi4uL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9SZXBvcnRFdmVudERpYWxvZ1wiO1xuaW1wb3J0IFNwYWNlUHJlZmVyZW5jZXNEaWFsb2cgZnJvbSBcIi4uL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9TcGFjZVByZWZlcmVuY2VzRGlhbG9nXCI7XG5pbXBvcnQgU3BhY2VTZXR0aW5nc0RpYWxvZyBmcm9tIFwiLi4vY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL1NwYWNlU2V0dGluZ3NEaWFsb2dcIjtcbmltcG9ydCBJbnZpdGVEaWFsb2cgZnJvbSBcIi4uL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9JbnZpdGVEaWFsb2dcIjtcbmltcG9ydCBBZGRFeGlzdGluZ1RvU3BhY2VEaWFsb2cgZnJvbSBcIi4uL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9BZGRFeGlzdGluZ1RvU3BhY2VEaWFsb2dcIjtcbmltcG9ydCB7IEJ1dHRvbkV2ZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvQWNjZXNzaWJsZUJ1dHRvblwiO1xuaW1wb3J0IFBvc3Rob2dUcmFja2VycyBmcm9tIFwiLi4vUG9zdGhvZ1RyYWNrZXJzXCI7XG5pbXBvcnQgeyBzaG93QWRkRXhpc3RpbmdTdWJzcGFjZSwgc2hvd0NyZWF0ZU5ld1Jvb20gfSBmcm9tIFwiLi9zcGFjZVwiO1xuaW1wb3J0IHsgU2RrQ29udGV4dENsYXNzIH0gZnJvbSBcIi4uL2NvbnRleHRzL1NES0NvbnRleHRcIjtcblxuLyoqXG4gKiBBdXhpbGlhcnkgY2xhc3MgdG8gbGlzdGVuIGZvciBkaWFsb2cgb3BlbmluZyBvdmVyIHRoZSBkaXNwYXRjaGVyIGFuZFxuICogb3BlbiB0aGUgcmVxdWlyZWQgZGlhbG9ncy4gTm90IGFsbCBkaWFsb2dzIHJ1biB0aHJvdWdoIGhlcmUsIGJ1dCB0aGVcbiAqIG9uZXMgd2hpY2ggY2F1c2UgaW1wb3J0IGN5Y2xlcyBhcmUgZ29vZCBjYW5kaWRhdGVzLlxuICovXG5leHBvcnQgY2xhc3MgRGlhbG9nT3BlbmVyIHtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGluc3RhbmNlID0gbmV3IERpYWxvZ09wZW5lcigpO1xuXG4gICAgcHJpdmF0ZSBpc1JlZ2lzdGVyZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIG1hdHJpeENsaWVudD86IE1hdHJpeENsaWVudDtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgLy8gV2UgY291bGQgZG8gdGhpcyBpbiB0aGUgY29uc3RydWN0b3IsIGJ1dCB0aGVuIHdlIHdvdWxkbid0IGhhdmVcbiAgICAvLyBhIGZ1bmN0aW9uIHRvIGNhbGwgZnJvbSBMaWZlY3ljbGUgdG8gY2FwdHVyZSB0aGUgY2xhc3MuXG4gICAgcHVibGljIHByZXBhcmUobWF0cml4Q2xpZW50OiBNYXRyaXhDbGllbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tYXRyaXhDbGllbnQgPSBtYXRyaXhDbGllbnQ7XG4gICAgICAgIGlmICh0aGlzLmlzUmVnaXN0ZXJlZCkgcmV0dXJuO1xuICAgICAgICBkZWZhdWx0RGlzcGF0Y2hlci5yZWdpc3Rlcih0aGlzLm9uRGlzcGF0Y2gpO1xuICAgICAgICB0aGlzLmlzUmVnaXN0ZXJlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkRpc3BhdGNoID0gKHBheWxvYWQ6IEFjdGlvblBheWxvYWQpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLm1hdHJpeENsaWVudCkgcmV0dXJuO1xuICAgICAgICBzd2l0Y2ggKHBheWxvYWQuYWN0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIFwib3Blbl9yb29tX3NldHRpbmdzXCI6XG4gICAgICAgICAgICAgICAgTW9kYWwuY3JlYXRlRGlhbG9nKFxuICAgICAgICAgICAgICAgICAgICBSb29tU2V0dGluZ3NEaWFsb2csXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvb21JZDogcGF5bG9hZC5yb29tX2lkIHx8IFNka0NvbnRleHRDbGFzcy5pbnN0YW5jZS5yb29tVmlld1N0b3JlLmdldFJvb21JZCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbFRhYklkOiBwYXlsb2FkLmluaXRpYWxfdGFiX2lkLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAvKmNsYXNzTmFtZT0qLyB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIC8qaXNQcmlvcml0eT0qLyBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgLyppc1N0YXRpYz0qLyB0cnVlLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEFjdGlvbi5PcGVuRm9yd2FyZERpYWxvZzpcbiAgICAgICAgICAgICAgICBNb2RhbC5jcmVhdGVEaWFsb2coRm9yd2FyZERpYWxvZywge1xuICAgICAgICAgICAgICAgICAgICBtYXRyaXhDbGllbnQ6IHRoaXMubWF0cml4Q2xpZW50LFxuICAgICAgICAgICAgICAgICAgICBldmVudDogcGF5bG9hZC5ldmVudCxcbiAgICAgICAgICAgICAgICAgICAgcGVybWFsaW5rQ3JlYXRvcjogcGF5bG9hZC5wZXJtYWxpbmtDcmVhdG9yLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBBY3Rpb24uT3BlblJlcG9ydEV2ZW50RGlhbG9nOlxuICAgICAgICAgICAgICAgIE1vZGFsLmNyZWF0ZURpYWxvZyhcbiAgICAgICAgICAgICAgICAgICAgUmVwb3J0RXZlbnREaWFsb2csXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG14RXZlbnQ6IHBheWxvYWQuZXZlbnQsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwibXhfRGlhbG9nX3JlcG9ydEV2ZW50XCIsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQWN0aW9uLk9wZW5TcGFjZVByZWZlcmVuY2VzOlxuICAgICAgICAgICAgICAgIE1vZGFsLmNyZWF0ZURpYWxvZyhcbiAgICAgICAgICAgICAgICAgICAgU3BhY2VQcmVmZXJlbmNlc0RpYWxvZyxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3BhY2U6IHBheWxvYWQuc3BhY2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQWN0aW9uLk9wZW5TcGFjZVNldHRpbmdzOlxuICAgICAgICAgICAgICAgIE1vZGFsLmNyZWF0ZURpYWxvZyhcbiAgICAgICAgICAgICAgICAgICAgU3BhY2VTZXR0aW5nc0RpYWxvZyxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF0cml4Q2xpZW50OiBwYXlsb2FkLnNwYWNlLmNsaWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwYWNlOiBwYXlsb2FkLnNwYWNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAvKmNsYXNzTmFtZT0qLyB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIC8qaXNQcmlvcml0eT0qLyBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgLyppc1N0YXRpYz0qLyB0cnVlLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEFjdGlvbi5PcGVuSW52aXRlRGlhbG9nOlxuICAgICAgICAgICAgICAgIE1vZGFsLmNyZWF0ZURpYWxvZyhcbiAgICAgICAgICAgICAgICAgICAgSW52aXRlRGlhbG9nLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBwYXlsb2FkLmtpbmQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsOiBwYXlsb2FkLmNhbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICByb29tSWQ6IHBheWxvYWQucm9vbUlkLFxuICAgICAgICAgICAgICAgICAgICB9IGFzIE9taXQ8Q29tcG9uZW50UHJvcHM8dHlwZW9mIEludml0ZURpYWxvZz4sIFwib25GaW5pc2hlZFwiPixcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NuYW1lcyhcIm14X0ludml0ZURpYWxvZ19mbGV4V3JhcHBlclwiLCBwYXlsb2FkLmNsYXNzTmFtZSksXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgICAgICkuZmluaXNoZWQudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBwYXlsb2FkLm9uRmluaXNoZWRDYWxsYmFjaz8uKHJlc3VsdHMpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBBY3Rpb24uT3BlbkFkZFRvRXhpc3RpbmdTcGFjZURpYWxvZzoge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYWNlID0gcGF5bG9hZC5zcGFjZTtcbiAgICAgICAgICAgICAgICBNb2RhbC5jcmVhdGVEaWFsb2coXG4gICAgICAgICAgICAgICAgICAgIEFkZEV4aXN0aW5nVG9TcGFjZURpYWxvZyxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25DcmVhdGVSb29tQ2xpY2s6IChldjogQnV0dG9uRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93Q3JlYXRlTmV3Um9vbShzcGFjZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zdGhvZ1RyYWNrZXJzLnRyYWNrSW50ZXJhY3Rpb24oXCJXZWJBZGRFeGlzdGluZ1RvU3BhY2VEaWFsb2dDcmVhdGVSb29tQnV0dG9uXCIsIGV2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkFkZFN1YnNwYWNlQ2xpY2s6ICgpID0+IHNob3dBZGRFeGlzdGluZ1N1YnNwYWNlKHNwYWNlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwYWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgb25GaW5pc2hlZDogKGFkZGVkOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFkZGVkICYmIFNka0NvbnRleHRDbGFzcy5pbnN0YW5jZS5yb29tVmlld1N0b3JlLmdldFJvb21JZCgpID09PSBzcGFjZS5yb29tSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdERpc3BhdGNoZXIuZmlyZShBY3Rpb24uVXBkYXRlU3BhY2VIaWVyYXJjaHkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwibXhfQWRkRXhpc3RpbmdUb1NwYWNlRGlhbG9nX3dyYXBwZXJcIixcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFRQSxJQUFBQSxXQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFJQSxJQUFBQyxXQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxNQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxtQkFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksY0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sa0JBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLHVCQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxvQkFBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsYUFBQSxHQUFBVixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVUseUJBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFXLGdCQUFBLEdBQUFaLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBWSxNQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxXQUFBLEdBQUFiLE9BQUE7QUFBeUQsSUFBQWMsYUFBQTtBQTFCekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1DLFlBQVksQ0FBQztFQU1kQyxXQUFXQSxDQUFBLEVBQUc7SUFBQSxJQUFBQyxnQkFBQSxDQUFBQyxPQUFBLHdCQUhDLEtBQUs7SUFBQSxJQUFBRCxnQkFBQSxDQUFBQyxPQUFBO0lBQUEsSUFBQUQsZ0JBQUEsQ0FBQUMsT0FBQSxzQkFjTkMsT0FBc0IsSUFBVztNQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDQyxZQUFZLEVBQUU7TUFDeEIsUUFBUUQsT0FBTyxDQUFDRSxNQUFNO1FBQ2xCLEtBQUssb0JBQW9CO1VBQ3JCQyxjQUFLLENBQUNDLFlBQVksQ0FDZEMsMkJBQWtCLEVBQ2xCO1lBQ0lDLE1BQU0sRUFBRU4sT0FBTyxDQUFDTyxPQUFPLElBQUlDLDJCQUFlLENBQUNDLFFBQVEsQ0FBQ0MsYUFBYSxDQUFDQyxTQUFTLENBQUMsQ0FBQztZQUM3RUMsWUFBWSxFQUFFWixPQUFPLENBQUNhO1VBQzFCLENBQUMsRUFDRCxjQUFlQyxTQUFTLEVBQ3hCLGVBQWdCLEtBQUssRUFDckIsYUFBYyxJQUNsQixDQUFDO1VBQ0Q7UUFDSixLQUFLQyxlQUFNLENBQUNDLGlCQUFpQjtVQUN6QmIsY0FBSyxDQUFDQyxZQUFZLENBQUNhLHNCQUFhLEVBQUU7WUFDOUJoQixZQUFZLEVBQUUsSUFBSSxDQUFDQSxZQUFZO1lBQy9CaUIsS0FBSyxFQUFFbEIsT0FBTyxDQUFDa0IsS0FBSztZQUNwQkMsZ0JBQWdCLEVBQUVuQixPQUFPLENBQUNtQjtVQUM5QixDQUFDLENBQUM7VUFDRjtRQUNKLEtBQUtKLGVBQU0sQ0FBQ0sscUJBQXFCO1VBQzdCakIsY0FBSyxDQUFDQyxZQUFZLENBQ2RpQiwwQkFBaUIsRUFDakI7WUFDSUMsT0FBTyxFQUFFdEIsT0FBTyxDQUFDa0I7VUFDckIsQ0FBQyxFQUNELHVCQUNKLENBQUM7VUFDRDtRQUNKLEtBQUtILGVBQU0sQ0FBQ1Esb0JBQW9CO1VBQzVCcEIsY0FBSyxDQUFDQyxZQUFZLENBQ2RvQiwrQkFBc0IsRUFDdEI7WUFDSUMsS0FBSyxFQUFFekIsT0FBTyxDQUFDeUI7VUFDbkIsQ0FBQyxFQUNEWCxTQUFTLEVBQ1QsS0FBSyxFQUNMLElBQ0osQ0FBQztVQUNEO1FBQ0osS0FBS0MsZUFBTSxDQUFDVyxpQkFBaUI7VUFDekJ2QixjQUFLLENBQUNDLFlBQVksQ0FDZHVCLDRCQUFtQixFQUNuQjtZQUNJMUIsWUFBWSxFQUFFRCxPQUFPLENBQUN5QixLQUFLLENBQUNHLE1BQU07WUFDbENILEtBQUssRUFBRXpCLE9BQU8sQ0FBQ3lCO1VBQ25CLENBQUMsRUFDRCxjQUFlWCxTQUFTLEVBQ3hCLGVBQWdCLEtBQUssRUFDckIsYUFBYyxJQUNsQixDQUFDO1VBQ0Q7UUFDSixLQUFLQyxlQUFNLENBQUNjLGdCQUFnQjtVQUN4QjFCLGNBQUssQ0FBQ0MsWUFBWSxDQUNkMEIscUJBQVksRUFDWjtZQUNJQyxJQUFJLEVBQUUvQixPQUFPLENBQUMrQixJQUFJO1lBQ2xCQyxJQUFJLEVBQUVoQyxPQUFPLENBQUNnQyxJQUFJO1lBQ2xCMUIsTUFBTSxFQUFFTixPQUFPLENBQUNNO1VBQ3BCLENBQUMsRUFDRCxJQUFBMkIsbUJBQVUsRUFBQyw2QkFBNkIsRUFBRWpDLE9BQU8sQ0FBQ2tDLFNBQVMsQ0FBQyxFQUM1RCxLQUFLLEVBQ0wsSUFDSixDQUFDLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSSxDQUFFQyxPQUFPLElBQUs7WUFDekJyQyxPQUFPLENBQUNzQyxrQkFBa0IsR0FBR0QsT0FBTyxDQUFDO1VBQ3pDLENBQUMsQ0FBQztVQUNGO1FBQ0osS0FBS3RCLGVBQU0sQ0FBQ3dCLDRCQUE0QjtVQUFFO1lBQ3RDLE1BQU1kLEtBQUssR0FBR3pCLE9BQU8sQ0FBQ3lCLEtBQUs7WUFDM0J0QixjQUFLLENBQUNDLFlBQVksQ0FDZG9DLGlDQUF3QixFQUN4QjtjQUNJQyxpQkFBaUIsRUFBR0MsRUFBZSxJQUFLO2dCQUNwQyxJQUFBQyx3QkFBaUIsRUFBQ2xCLEtBQUssQ0FBQztnQkFDeEJtQix3QkFBZSxDQUFDQyxnQkFBZ0IsQ0FBQyw2Q0FBNkMsRUFBRUgsRUFBRSxDQUFDO2NBQ3ZGLENBQUM7Y0FDREksa0JBQWtCLEVBQUVBLENBQUEsS0FBTSxJQUFBQyw4QkFBdUIsRUFBQ3RCLEtBQUssQ0FBQztjQUN4REEsS0FBSztjQUNMdUIsVUFBVSxFQUFHQyxLQUFjLElBQUs7Z0JBQzVCLElBQUlBLEtBQUssSUFBSXpDLDJCQUFlLENBQUNDLFFBQVEsQ0FBQ0MsYUFBYSxDQUFDQyxTQUFTLENBQUMsQ0FBQyxLQUFLYyxLQUFLLENBQUNuQixNQUFNLEVBQUU7a0JBQzlFNEMsbUJBQWlCLENBQUNDLElBQUksQ0FBQ3BDLGVBQU0sQ0FBQ3FDLG9CQUFvQixDQUFDO2dCQUN2RDtjQUNKO1lBQ0osQ0FBQyxFQUNELHFDQUNKLENBQUM7WUFDRDtVQUNKO01BQ0o7SUFDSixDQUFDO0VBdEdzQjs7RUFFdkI7RUFDQTtFQUNPQyxPQUFPQSxDQUFDcEQsWUFBMEIsRUFBUTtJQUM3QyxJQUFJLENBQUNBLFlBQVksR0FBR0EsWUFBWTtJQUNoQyxJQUFJLElBQUksQ0FBQ3FELFlBQVksRUFBRTtJQUN2QkosbUJBQWlCLENBQUNLLFFBQVEsQ0FBQyxJQUFJLENBQUNDLFVBQVUsQ0FBQztJQUMzQyxJQUFJLENBQUNGLFlBQVksR0FBRyxJQUFJO0VBQzVCO0FBOEZKO0FBQUNHLE9BQUEsQ0FBQTdELFlBQUEsR0FBQUEsWUFBQTtBQUFBRCxhQUFBLEdBN0dZQyxZQUFZO0FBQUEsSUFBQUUsZ0JBQUEsQ0FBQUMsT0FBQSxFQUFaSCxZQUFZLGNBQ2EsSUFBSUEsYUFBWSxDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=