UNPKG

matrix-react-sdk

Version:
103 lines (100 loc) 13.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _matrix = require("matrix-js-sdk/src/matrix"); var _Modal = _interopRequireDefault(require("../../Modal")); var _languageHandler = require("../../languageHandler"); var _ErrorDialog = _interopRequireDefault(require("../views/dialogs/ErrorDialog")); var _MainSplit = _interopRequireDefault(require("./MainSplit")); var _RightPanel = _interopRequireDefault(require("./RightPanel")); var _Spinner = _interopRequireDefault(require("../views/elements/Spinner")); var _RightPanelStorePhases = require("../../stores/right-panel/RightPanelStorePhases"); var _UserOnboardingPage = require("../views/user-onboarding/UserOnboardingPage"); var _MatrixClientContext = _interopRequireDefault(require("../../contexts/MatrixClientContext")); /* Copyright 2019-2024 New Vector Ltd. Copyright 2019 Michael Telatynski <7t3chguy@gmail.com> SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ class UserView extends _react.default.Component { constructor(props, context) { super(props, context); this.state = { loading: true }; } componentDidMount() { if (this.props.userId) { this.loadProfileInfo(); } } componentDidUpdate(prevProps) { // XXX: We shouldn't need to null check the userId here, but we declare // it as optional and MatrixChat sometimes fires in a way which results // in an NPE when we try to update the profile info. if (prevProps.userId !== this.props.userId && this.props.userId) { this.loadProfileInfo(); } } async loadProfileInfo() { this.setState({ loading: true }); let profileInfo; try { profileInfo = await this.context.getProfileInfo(this.props.userId); } catch (err) { _Modal.default.createDialog(_ErrorDialog.default, { title: (0, _languageHandler._t)("error_dialog|error_loading_user_profile"), description: err instanceof Error ? err.message : (0, _languageHandler._t)("invite|failed_generic") }); this.setState({ loading: false }); return; } const fakeEvent = new _matrix.MatrixEvent({ type: "m.room.member", content: profileInfo }); // We pass an empty string room ID here, this is slight abuse of the class to simplify code const member = new _matrix.RoomMember("", this.props.userId); member.setMembershipEvent(fakeEvent); this.setState({ member, loading: false }); } render() { if (this.state.loading) { return /*#__PURE__*/_react.default.createElement(_Spinner.default, null); } else if (this.state.member) { const panel = /*#__PURE__*/_react.default.createElement(_RightPanel.default, { overwriteCard: { phase: _RightPanelStorePhases.RightPanelPhases.RoomMemberInfo, state: { member: this.state.member } }, resizeNotifier: this.props.resizeNotifier }); return /*#__PURE__*/_react.default.createElement(_MainSplit.default, { panel: panel, resizeNotifier: this.props.resizeNotifier, defaultSize: 420, analyticsRoomType: "user_profile" }, /*#__PURE__*/_react.default.createElement(_UserOnboardingPage.UserOnboardingPage, null)); } else { return /*#__PURE__*/_react.default.createElement("div", null); } } } exports.default = UserView; (0, _defineProperty2.default)(UserView, "contextType", _MatrixClientContext.default); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9tYXRyaXgiLCJfTW9kYWwiLCJfbGFuZ3VhZ2VIYW5kbGVyIiwiX0Vycm9yRGlhbG9nIiwiX01haW5TcGxpdCIsIl9SaWdodFBhbmVsIiwiX1NwaW5uZXIiLCJfUmlnaHRQYW5lbFN0b3JlUGhhc2VzIiwiX1VzZXJPbmJvYXJkaW5nUGFnZSIsIl9NYXRyaXhDbGllbnRDb250ZXh0IiwiVXNlclZpZXciLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJjb250ZXh0Iiwic3RhdGUiLCJsb2FkaW5nIiwiY29tcG9uZW50RGlkTW91bnQiLCJ1c2VySWQiLCJsb2FkUHJvZmlsZUluZm8iLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJzZXRTdGF0ZSIsInByb2ZpbGVJbmZvIiwiZ2V0UHJvZmlsZUluZm8iLCJlcnIiLCJNb2RhbCIsImNyZWF0ZURpYWxvZyIsIkVycm9yRGlhbG9nIiwidGl0bGUiLCJfdCIsImRlc2NyaXB0aW9uIiwiRXJyb3IiLCJtZXNzYWdlIiwiZmFrZUV2ZW50IiwiTWF0cml4RXZlbnQiLCJ0eXBlIiwiY29udGVudCIsIm1lbWJlciIsIlJvb21NZW1iZXIiLCJzZXRNZW1iZXJzaGlwRXZlbnQiLCJyZW5kZXIiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsInBhbmVsIiwib3ZlcndyaXRlQ2FyZCIsInBoYXNlIiwiUmlnaHRQYW5lbFBoYXNlcyIsIlJvb21NZW1iZXJJbmZvIiwicmVzaXplTm90aWZpZXIiLCJkZWZhdWx0U2l6ZSIsImFuYWx5dGljc1Jvb21UeXBlIiwiVXNlck9uYm9hcmRpbmdQYWdlIiwiZXhwb3J0cyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJNYXRyaXhDbGllbnRDb250ZXh0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc3RydWN0dXJlcy9Vc2VyVmlldy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBNaWNoYWVsIFRlbGF0eW5za2kgPDd0M2NoZ3V5QGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgTWF0cml4RXZlbnQsIFJvb21NZW1iZXIsIE1hdHJpeENsaWVudCB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcblxuaW1wb3J0IE1vZGFsIGZyb20gXCIuLi8uLi9Nb2RhbFwiO1xuaW1wb3J0IHsgX3QgfSBmcm9tIFwiLi4vLi4vbGFuZ3VhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgRXJyb3JEaWFsb2cgZnJvbSBcIi4uL3ZpZXdzL2RpYWxvZ3MvRXJyb3JEaWFsb2dcIjtcbmltcG9ydCBNYWluU3BsaXQgZnJvbSBcIi4vTWFpblNwbGl0XCI7XG5pbXBvcnQgUmlnaHRQYW5lbCBmcm9tIFwiLi9SaWdodFBhbmVsXCI7XG5pbXBvcnQgU3Bpbm5lciBmcm9tIFwiLi4vdmlld3MvZWxlbWVudHMvU3Bpbm5lclwiO1xuaW1wb3J0IFJlc2l6ZU5vdGlmaWVyIGZyb20gXCIuLi8uLi91dGlscy9SZXNpemVOb3RpZmllclwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbFBoYXNlcyB9IGZyb20gXCIuLi8uLi9zdG9yZXMvcmlnaHQtcGFuZWwvUmlnaHRQYW5lbFN0b3JlUGhhc2VzXCI7XG5pbXBvcnQgeyBVc2VyT25ib2FyZGluZ1BhZ2UgfSBmcm9tIFwiLi4vdmlld3MvdXNlci1vbmJvYXJkaW5nL1VzZXJPbmJvYXJkaW5nUGFnZVwiO1xuaW1wb3J0IE1hdHJpeENsaWVudENvbnRleHQgZnJvbSBcIi4uLy4uL2NvbnRleHRzL01hdHJpeENsaWVudENvbnRleHRcIjtcblxuaW50ZXJmYWNlIElQcm9wcyB7XG4gICAgdXNlcklkOiBzdHJpbmc7XG4gICAgcmVzaXplTm90aWZpZXI6IFJlc2l6ZU5vdGlmaWVyO1xufVxuXG5pbnRlcmZhY2UgSVN0YXRlIHtcbiAgICBsb2FkaW5nOiBib29sZWFuO1xuICAgIG1lbWJlcj86IFJvb21NZW1iZXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFVzZXJWaWV3IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElQcm9wcywgSVN0YXRlPiB7XG4gICAgcHVibGljIHN0YXRpYyBjb250ZXh0VHlwZSA9IE1hdHJpeENsaWVudENvbnRleHQ7XG4gICAgcHVibGljIGRlY2xhcmUgY29udGV4dDogUmVhY3QuQ29udGV4dFR5cGU8dHlwZW9mIE1hdHJpeENsaWVudENvbnRleHQ+O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBJUHJvcHMsIGNvbnRleHQ6IFJlYWN0LkNvbnRleHRUeXBlPHR5cGVvZiBNYXRyaXhDbGllbnRDb250ZXh0Pikge1xuICAgICAgICBzdXBlcihwcm9wcywgY29udGV4dCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBsb2FkaW5nOiB0cnVlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBjb21wb25lbnREaWRNb3VudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMudXNlcklkKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRQcm9maWxlSW5mbygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHM6IElQcm9wcyk6IHZvaWQge1xuICAgICAgICAvLyBYWFg6IFdlIHNob3VsZG4ndCBuZWVkIHRvIG51bGwgY2hlY2sgdGhlIHVzZXJJZCBoZXJlLCBidXQgd2UgZGVjbGFyZVxuICAgICAgICAvLyBpdCBhcyBvcHRpb25hbCBhbmQgTWF0cml4Q2hhdCBzb21ldGltZXMgZmlyZXMgaW4gYSB3YXkgd2hpY2ggcmVzdWx0c1xuICAgICAgICAvLyBpbiBhbiBOUEUgd2hlbiB3ZSB0cnkgdG8gdXBkYXRlIHRoZSBwcm9maWxlIGluZm8uXG4gICAgICAgIGlmIChwcmV2UHJvcHMudXNlcklkICE9PSB0aGlzLnByb3BzLnVzZXJJZCAmJiB0aGlzLnByb3BzLnVzZXJJZCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkUHJvZmlsZUluZm8oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgbG9hZFByb2ZpbGVJbmZvKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcbiAgICAgICAgbGV0IHByb2ZpbGVJbmZvOiBBd2FpdGVkPFJldHVyblR5cGU8TWF0cml4Q2xpZW50W1wiZ2V0UHJvZmlsZUluZm9cIl0+PjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHByb2ZpbGVJbmZvID0gYXdhaXQgdGhpcy5jb250ZXh0LmdldFByb2ZpbGVJbmZvKHRoaXMucHJvcHMudXNlcklkKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBNb2RhbC5jcmVhdGVEaWFsb2coRXJyb3JEaWFsb2csIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogX3QoXCJlcnJvcl9kaWFsb2d8ZXJyb3JfbG9hZGluZ191c2VyX3Byb2ZpbGVcIiksXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBfdChcImludml0ZXxmYWlsZWRfZ2VuZXJpY1wiKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZha2VFdmVudCA9IG5ldyBNYXRyaXhFdmVudCh7IHR5cGU6IFwibS5yb29tLm1lbWJlclwiLCBjb250ZW50OiBwcm9maWxlSW5mbyB9KTtcbiAgICAgICAgLy8gV2UgcGFzcyBhbiBlbXB0eSBzdHJpbmcgcm9vbSBJRCBoZXJlLCB0aGlzIGlzIHNsaWdodCBhYnVzZSBvZiB0aGUgY2xhc3MgdG8gc2ltcGxpZnkgY29kZVxuICAgICAgICBjb25zdCBtZW1iZXIgPSBuZXcgUm9vbU1lbWJlcihcIlwiLCB0aGlzLnByb3BzLnVzZXJJZCk7XG4gICAgICAgIG1lbWJlci5zZXRNZW1iZXJzaGlwRXZlbnQoZmFrZUV2ZW50KTtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG1lbWJlciwgbG9hZGluZzogZmFsc2UgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZS5sb2FkaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gPFNwaW5uZXIgLz47XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZS5tZW1iZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhbmVsID0gKFxuICAgICAgICAgICAgICAgIDxSaWdodFBhbmVsXG4gICAgICAgICAgICAgICAgICAgIG92ZXJ3cml0ZUNhcmQ9e3sgcGhhc2U6IFJpZ2h0UGFuZWxQaGFzZXMuUm9vbU1lbWJlckluZm8sIHN0YXRlOiB7IG1lbWJlcjogdGhpcy5zdGF0ZS5tZW1iZXIgfSB9fVxuICAgICAgICAgICAgICAgICAgICByZXNpemVOb3RpZmllcj17dGhpcy5wcm9wcy5yZXNpemVOb3RpZmllcn1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPE1haW5TcGxpdFxuICAgICAgICAgICAgICAgICAgICBwYW5lbD17cGFuZWx9XG4gICAgICAgICAgICAgICAgICAgIHJlc2l6ZU5vdGlmaWVyPXt0aGlzLnByb3BzLnJlc2l6ZU5vdGlmaWVyfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0U2l6ZT17NDIwfVxuICAgICAgICAgICAgICAgICAgICBhbmFseXRpY3NSb29tVHlwZT1cInVzZXJfcHJvZmlsZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8VXNlck9uYm9hcmRpbmdQYWdlIC8+XG4gICAgICAgICAgICAgICAgPC9NYWluU3BsaXQ+XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIDxkaXYgLz47XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBUUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsTUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsZ0JBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFlBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLFFBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFRLHNCQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxtQkFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsb0JBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQXBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUEwQmUsTUFBTVcsUUFBUSxTQUFTQyxjQUFLLENBQUNDLFNBQVMsQ0FBaUI7RUFJM0RDLFdBQVdBLENBQUNDLEtBQWEsRUFBRUMsT0FBc0QsRUFBRTtJQUN0RixLQUFLLENBQUNELEtBQUssRUFBRUMsT0FBTyxDQUFDO0lBQ3JCLElBQUksQ0FBQ0MsS0FBSyxHQUFHO01BQ1RDLE9BQU8sRUFBRTtJQUNiLENBQUM7RUFDTDtFQUVPQyxpQkFBaUJBLENBQUEsRUFBUztJQUM3QixJQUFJLElBQUksQ0FBQ0osS0FBSyxDQUFDSyxNQUFNLEVBQUU7TUFDbkIsSUFBSSxDQUFDQyxlQUFlLENBQUMsQ0FBQztJQUMxQjtFQUNKO0VBRU9DLGtCQUFrQkEsQ0FBQ0MsU0FBaUIsRUFBUTtJQUMvQztJQUNBO0lBQ0E7SUFDQSxJQUFJQSxTQUFTLENBQUNILE1BQU0sS0FBSyxJQUFJLENBQUNMLEtBQUssQ0FBQ0ssTUFBTSxJQUFJLElBQUksQ0FBQ0wsS0FBSyxDQUFDSyxNQUFNLEVBQUU7TUFDN0QsSUFBSSxDQUFDQyxlQUFlLENBQUMsQ0FBQztJQUMxQjtFQUNKO0VBRUEsTUFBY0EsZUFBZUEsQ0FBQSxFQUFrQjtJQUMzQyxJQUFJLENBQUNHLFFBQVEsQ0FBQztNQUFFTixPQUFPLEVBQUU7SUFBSyxDQUFDLENBQUM7SUFDaEMsSUFBSU8sV0FBZ0U7SUFDcEUsSUFBSTtNQUNBQSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUNULE9BQU8sQ0FBQ1UsY0FBYyxDQUFDLElBQUksQ0FBQ1gsS0FBSyxDQUFDSyxNQUFNLENBQUM7SUFDdEUsQ0FBQyxDQUFDLE9BQU9PLEdBQUcsRUFBRTtNQUNWQyxjQUFLLENBQUNDLFlBQVksQ0FBQ0Msb0JBQVcsRUFBRTtRQUM1QkMsS0FBSyxFQUFFLElBQUFDLG1CQUFFLEVBQUMseUNBQXlDLENBQUM7UUFDcERDLFdBQVcsRUFBRU4sR0FBRyxZQUFZTyxLQUFLLEdBQUdQLEdBQUcsQ0FBQ1EsT0FBTyxHQUFHLElBQUFILG1CQUFFLEVBQUMsdUJBQXVCO01BQ2hGLENBQUMsQ0FBQztNQUNGLElBQUksQ0FBQ1IsUUFBUSxDQUFDO1FBQUVOLE9BQU8sRUFBRTtNQUFNLENBQUMsQ0FBQztNQUNqQztJQUNKO0lBQ0EsTUFBTWtCLFNBQVMsR0FBRyxJQUFJQyxtQkFBVyxDQUFDO01BQUVDLElBQUksRUFBRSxlQUFlO01BQUVDLE9BQU8sRUFBRWQ7SUFBWSxDQUFDLENBQUM7SUFDbEY7SUFDQSxNQUFNZSxNQUFNLEdBQUcsSUFBSUMsa0JBQVUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDMUIsS0FBSyxDQUFDSyxNQUFNLENBQUM7SUFDcERvQixNQUFNLENBQUNFLGtCQUFrQixDQUFDTixTQUFTLENBQUM7SUFDcEMsSUFBSSxDQUFDWixRQUFRLENBQUM7TUFBRWdCLE1BQU07TUFBRXRCLE9BQU8sRUFBRTtJQUFNLENBQUMsQ0FBQztFQUM3QztFQUVPeUIsTUFBTUEsQ0FBQSxFQUFvQjtJQUM3QixJQUFJLElBQUksQ0FBQzFCLEtBQUssQ0FBQ0MsT0FBTyxFQUFFO01BQ3BCLG9CQUFPcEIsTUFBQSxDQUFBOEMsT0FBQSxDQUFBQyxhQUFBLENBQUN0QyxRQUFBLENBQUFxQyxPQUFPLE1BQUUsQ0FBQztJQUN0QixDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMzQixLQUFLLENBQUN1QixNQUFNLEVBQUU7TUFDMUIsTUFBTU0sS0FBSyxnQkFDUGhELE1BQUEsQ0FBQThDLE9BQUEsQ0FBQUMsYUFBQSxDQUFDdkMsV0FBQSxDQUFBc0MsT0FBVTtRQUNQRyxhQUFhLEVBQUU7VUFBRUMsS0FBSyxFQUFFQyx1Q0FBZ0IsQ0FBQ0MsY0FBYztVQUFFakMsS0FBSyxFQUFFO1lBQUV1QixNQUFNLEVBQUUsSUFBSSxDQUFDdkIsS0FBSyxDQUFDdUI7VUFBTztRQUFFLENBQUU7UUFDaEdXLGNBQWMsRUFBRSxJQUFJLENBQUNwQyxLQUFLLENBQUNvQztNQUFlLENBQzdDLENBQ0o7TUFDRCxvQkFDSXJELE1BQUEsQ0FBQThDLE9BQUEsQ0FBQUMsYUFBQSxDQUFDeEMsVUFBQSxDQUFBdUMsT0FBUztRQUNORSxLQUFLLEVBQUVBLEtBQU07UUFDYkssY0FBYyxFQUFFLElBQUksQ0FBQ3BDLEtBQUssQ0FBQ29DLGNBQWU7UUFDMUNDLFdBQVcsRUFBRSxHQUFJO1FBQ2pCQyxpQkFBaUIsRUFBQztNQUFjLGdCQUVoQ3ZELE1BQUEsQ0FBQThDLE9BQUEsQ0FBQUMsYUFBQSxDQUFDcEMsbUJBQUEsQ0FBQTZDLGtCQUFrQixNQUFFLENBQ2QsQ0FBQztJQUVwQixDQUFDLE1BQU07TUFDSCxvQkFBT3hELE1BQUEsQ0FBQThDLE9BQUEsQ0FBQUMsYUFBQSxZQUFNLENBQUM7SUFDbEI7RUFDSjtBQUNKO0FBQUNVLE9BQUEsQ0FBQVgsT0FBQSxHQUFBakMsUUFBQTtBQUFBLElBQUE2QyxnQkFBQSxDQUFBWixPQUFBLEVBdEVvQmpDLFFBQVEsaUJBQ0c4Qyw0QkFBbUIiLCJpZ25vcmVMaXN0IjpbXX0=