matrix-react-sdk
Version:
SDK for matrix.org using React
103 lines (100 loc) • 20.1 kB
JavaScript
;
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 _BaseDialog = _interopRequireDefault(require("./BaseDialog"));
var _languageHandler = require("../../../languageHandler");
var _EchoStore = require("../../../stores/local-echo/EchoStore");
var _DateUtils = require("../../../DateUtils");
var _SettingsStore = _interopRequireDefault(require("../../../settings/SettingsStore"));
var _RoomEchoContext = require("../../../stores/local-echo/RoomEchoContext");
var _RoomAvatar = _interopRequireDefault(require("../avatars/RoomAvatar"));
var _EchoTransaction = require("../../../stores/local-echo/EchoTransaction");
var _Spinner = _interopRequireDefault(require("../elements/Spinner"));
var _AccessibleButton = _interopRequireDefault(require("../elements/AccessibleButton"));
var _AsyncStore = require("../../../stores/AsyncStore");
var _MatrixClientPeg = require("../../../MatrixClientPeg");
/*
Copyright 2024 New Vector Ltd.
Copyright 2020 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.
*/
class ServerOfflineDialog extends _react.default.PureComponent {
constructor(...args) {
super(...args);
(0, _defineProperty2.default)(this, "onEchosUpdated", () => {
this.forceUpdate(); // no state to worry about
});
}
componentDidMount() {
_EchoStore.EchoStore.instance.on(_AsyncStore.UPDATE_EVENT, this.onEchosUpdated);
}
componentWillUnmount() {
_EchoStore.EchoStore.instance.off(_AsyncStore.UPDATE_EVENT, this.onEchosUpdated);
}
renderTimeline() {
return _EchoStore.EchoStore.instance.contexts.map((c, i) => {
if (!c.firstFailedTime) return null; // not useful
if (!(c instanceof _RoomEchoContext.RoomEchoContext)) throw new Error("Cannot render unknown context: " + c.constructor.name);
const header = /*#__PURE__*/_react.default.createElement("div", {
className: "mx_ServerOfflineDialog_content_context_timeline_header"
}, /*#__PURE__*/_react.default.createElement(_RoomAvatar.default, {
size: "24px",
room: c.room
}), /*#__PURE__*/_react.default.createElement("span", null, c.room.name));
const entries = c.transactions.filter(t => t.status === _EchoTransaction.TransactionStatus.Error || t.didPreviouslyFail).map((t, j) => {
let button = /*#__PURE__*/_react.default.createElement(_Spinner.default, {
w: 19,
h: 19
});
if (t.status === _EchoTransaction.TransactionStatus.Error) {
button = /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, {
kind: "link",
onClick: () => t.run()
}, (0, _languageHandler._t)("action|resend"));
}
return /*#__PURE__*/_react.default.createElement("div", {
className: "mx_ServerOfflineDialog_content_context_txn",
key: `txn-${j}`
}, /*#__PURE__*/_react.default.createElement("span", {
className: "mx_ServerOfflineDialog_content_context_txn_desc"
}, t.auditName), button);
});
return /*#__PURE__*/_react.default.createElement("div", {
className: "mx_ServerOfflineDialog_content_context",
key: `context-${i}`
}, /*#__PURE__*/_react.default.createElement("div", {
className: "mx_ServerOfflineDialog_content_context_timestamp"
}, (0, _DateUtils.formatTime)(c.firstFailedTime, _SettingsStore.default.getValue("showTwelveHourTimestamps"))), /*#__PURE__*/_react.default.createElement("div", {
className: "mx_ServerOfflineDialog_content_context_timeline"
}, header, entries));
});
}
render() {
let timeline = this.renderTimeline().filter(c => !!c); // remove nulls for next check
if (timeline.length === 0) {
timeline = [/*#__PURE__*/_react.default.createElement("div", {
key: 1
}, (0, _languageHandler._t)("server_offline|empty_timeline"))];
}
const serverName = _MatrixClientPeg.MatrixClientPeg.safeGet().getDomain();
return /*#__PURE__*/_react.default.createElement(_BaseDialog.default, {
title: (0, _languageHandler._t)("server_offline|title"),
className: "mx_ServerOfflineDialog",
contentId: "mx_Dialog_content",
onFinished: this.props.onFinished,
hasCancel: true
}, /*#__PURE__*/_react.default.createElement("div", {
className: "mx_ServerOfflineDialog_content"
}, /*#__PURE__*/_react.default.createElement("p", null, (0, _languageHandler._t)("server_offline|description")), /*#__PURE__*/_react.default.createElement("ul", null, /*#__PURE__*/_react.default.createElement("li", null, (0, _languageHandler._t)("server_offline|description_1", {
serverName
})), /*#__PURE__*/_react.default.createElement("li", null, (0, _languageHandler._t)("server_offline|description_2")), /*#__PURE__*/_react.default.createElement("li", null, (0, _languageHandler._t)("server_offline|description_3")), /*#__PURE__*/_react.default.createElement("li", null, (0, _languageHandler._t)("server_offline|description_4")), /*#__PURE__*/_react.default.createElement("li", null, (0, _languageHandler._t)("server_offline|description_5")), /*#__PURE__*/_react.default.createElement("li", null, (0, _languageHandler._t)("server_offline|description_6")), /*#__PURE__*/_react.default.createElement("li", null, (0, _languageHandler._t)("server_offline|description_7")), /*#__PURE__*/_react.default.createElement("li", null, (0, _languageHandler._t)("server_offline|description_8"))), /*#__PURE__*/_react.default.createElement("hr", null), /*#__PURE__*/_react.default.createElement("h2", null, (0, _languageHandler._t)("server_offline|recent_changes_heading")), timeline));
}
}
exports.default = ServerOfflineDialog;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CYXNlRGlhbG9nIiwiX2xhbmd1YWdlSGFuZGxlciIsIl9FY2hvU3RvcmUiLCJfRGF0ZVV0aWxzIiwiX1NldHRpbmdzU3RvcmUiLCJfUm9vbUVjaG9Db250ZXh0IiwiX1Jvb21BdmF0YXIiLCJfRWNob1RyYW5zYWN0aW9uIiwiX1NwaW5uZXIiLCJfQWNjZXNzaWJsZUJ1dHRvbiIsIl9Bc3luY1N0b3JlIiwiX01hdHJpeENsaWVudFBlZyIsIlNlcnZlck9mZmxpbmVEaWFsb2ciLCJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsImFyZ3MiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmYXVsdCIsImZvcmNlVXBkYXRlIiwiY29tcG9uZW50RGlkTW91bnQiLCJFY2hvU3RvcmUiLCJpbnN0YW5jZSIsIm9uIiwiVVBEQVRFX0VWRU5UIiwib25FY2hvc1VwZGF0ZWQiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsIm9mZiIsInJlbmRlclRpbWVsaW5lIiwiY29udGV4dHMiLCJtYXAiLCJjIiwiaSIsImZpcnN0RmFpbGVkVGltZSIsIlJvb21FY2hvQ29udGV4dCIsIkVycm9yIiwibmFtZSIsImhlYWRlciIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJzaXplIiwicm9vbSIsImVudHJpZXMiLCJ0cmFuc2FjdGlvbnMiLCJmaWx0ZXIiLCJ0Iiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXMiLCJkaWRQcmV2aW91c2x5RmFpbCIsImoiLCJidXR0b24iLCJ3IiwiaCIsImtpbmQiLCJvbkNsaWNrIiwicnVuIiwiX3QiLCJrZXkiLCJhdWRpdE5hbWUiLCJmb3JtYXRUaW1lIiwiU2V0dGluZ3NTdG9yZSIsImdldFZhbHVlIiwicmVuZGVyIiwidGltZWxpbmUiLCJsZW5ndGgiLCJzZXJ2ZXJOYW1lIiwiTWF0cml4Q2xpZW50UGVnIiwic2FmZUdldCIsImdldERvbWFpbiIsInRpdGxlIiwiY29udGVudElkIiwib25GaW5pc2hlZCIsInByb3BzIiwiaGFzQ2FuY2VsIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL2RpYWxvZ3MvU2VydmVyT2ZmbGluZURpYWxvZy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgQmFzZURpYWxvZyBmcm9tIFwiLi9CYXNlRGlhbG9nXCI7XG5pbXBvcnQgeyBfdCB9IGZyb20gXCIuLi8uLi8uLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCB7IEVjaG9TdG9yZSB9IGZyb20gXCIuLi8uLi8uLi9zdG9yZXMvbG9jYWwtZWNoby9FY2hvU3RvcmVcIjtcbmltcG9ydCB7IGZvcm1hdFRpbWUgfSBmcm9tIFwiLi4vLi4vLi4vRGF0ZVV0aWxzXCI7XG5pbXBvcnQgU2V0dGluZ3NTdG9yZSBmcm9tIFwiLi4vLi4vLi4vc2V0dGluZ3MvU2V0dGluZ3NTdG9yZVwiO1xuaW1wb3J0IHsgUm9vbUVjaG9Db250ZXh0IH0gZnJvbSBcIi4uLy4uLy4uL3N0b3Jlcy9sb2NhbC1lY2hvL1Jvb21FY2hvQ29udGV4dFwiO1xuaW1wb3J0IFJvb21BdmF0YXIgZnJvbSBcIi4uL2F2YXRhcnMvUm9vbUF2YXRhclwiO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25TdGF0dXMgfSBmcm9tIFwiLi4vLi4vLi4vc3RvcmVzL2xvY2FsLWVjaG8vRWNob1RyYW5zYWN0aW9uXCI7XG5pbXBvcnQgU3Bpbm5lciBmcm9tIFwiLi4vZWxlbWVudHMvU3Bpbm5lclwiO1xuaW1wb3J0IEFjY2Vzc2libGVCdXR0b24gZnJvbSBcIi4uL2VsZW1lbnRzL0FjY2Vzc2libGVCdXR0b25cIjtcbmltcG9ydCB7IFVQREFURV9FVkVOVCB9IGZyb20gXCIuLi8uLi8uLi9zdG9yZXMvQXN5bmNTdG9yZVwiO1xuaW1wb3J0IHsgTWF0cml4Q2xpZW50UGVnIH0gZnJvbSBcIi4uLy4uLy4uL01hdHJpeENsaWVudFBlZ1wiO1xuXG5pbnRlcmZhY2UgSVByb3BzIHtcbiAgICBvbkZpbmlzaGVkKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNlcnZlck9mZmxpbmVEaWFsb2cgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PElQcm9wcz4ge1xuICAgIHB1YmxpYyBjb21wb25lbnREaWRNb3VudCgpOiB2b2lkIHtcbiAgICAgICAgRWNob1N0b3JlLmluc3RhbmNlLm9uKFVQREFURV9FVkVOVCwgdGhpcy5vbkVjaG9zVXBkYXRlZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50KCk6IHZvaWQge1xuICAgICAgICBFY2hvU3RvcmUuaW5zdGFuY2Uub2ZmKFVQREFURV9FVkVOVCwgdGhpcy5vbkVjaG9zVXBkYXRlZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkVjaG9zVXBkYXRlZCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpOyAvLyBubyBzdGF0ZSB0byB3b3JyeSBhYm91dFxuICAgIH07XG5cbiAgICBwcml2YXRlIHJlbmRlclRpbWVsaW5lKCk6IFJlYWN0Tm9kZVtdIHtcbiAgICAgICAgcmV0dXJuIEVjaG9TdG9yZS5pbnN0YW5jZS5jb250ZXh0cy5tYXAoKGMsIGkpID0+IHtcbiAgICAgICAgICAgIGlmICghYy5maXJzdEZhaWxlZFRpbWUpIHJldHVybiBudWxsOyAvLyBub3QgdXNlZnVsXG4gICAgICAgICAgICBpZiAoIShjIGluc3RhbmNlb2YgUm9vbUVjaG9Db250ZXh0KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgcmVuZGVyIHVua25vd24gY29udGV4dDogXCIgKyBjLmNvbnN0cnVjdG9yLm5hbWUpO1xuICAgICAgICAgICAgY29uc3QgaGVhZGVyID0gKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfU2VydmVyT2ZmbGluZURpYWxvZ19jb250ZW50X2NvbnRleHRfdGltZWxpbmVfaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxSb29tQXZhdGFyIHNpemU9XCIyNHB4XCIgcm9vbT17Yy5yb29tfSAvPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57Yy5yb29tLm5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGVudHJpZXMgPSBjLnRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKHQpID0+IHQuc3RhdHVzID09PSBUcmFuc2FjdGlvblN0YXR1cy5FcnJvciB8fCB0LmRpZFByZXZpb3VzbHlGYWlsKVxuICAgICAgICAgICAgICAgIC5tYXAoKHQsIGopID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGJ1dHRvbiA9IDxTcGlubmVyIHc9ezE5fSBoPXsxOX0gLz47XG4gICAgICAgICAgICAgICAgICAgIGlmICh0LnN0YXR1cyA9PT0gVHJhbnNhY3Rpb25TdGF0dXMuRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbiA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWNjZXNzaWJsZUJ1dHRvbiBraW5kPVwibGlua1wiIG9uQ2xpY2s9eygpID0+IHQucnVuKCl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X3QoXCJhY3Rpb258cmVzZW5kXCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQWNjZXNzaWJsZUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfU2VydmVyT2ZmbGluZURpYWxvZ19jb250ZW50X2NvbnRleHRfdHhuXCIga2V5PXtgdHhuLSR7an1gfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJteF9TZXJ2ZXJPZmZsaW5lRGlhbG9nX2NvbnRlbnRfY29udGV4dF90eG5fZGVzY1wiPnt0LmF1ZGl0TmFtZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2J1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X1NlcnZlck9mZmxpbmVEaWFsb2dfY29udGVudF9jb250ZXh0XCIga2V5PXtgY29udGV4dC0ke2l9YH0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfU2VydmVyT2ZmbGluZURpYWxvZ19jb250ZW50X2NvbnRleHRfdGltZXN0YW1wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Zm9ybWF0VGltZShjLmZpcnN0RmFpbGVkVGltZSwgU2V0dGluZ3NTdG9yZS5nZXRWYWx1ZShcInNob3dUd2VsdmVIb3VyVGltZXN0YW1wc1wiKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X1NlcnZlck9mZmxpbmVEaWFsb2dfY29udGVudF9jb250ZXh0X3RpbWVsaW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7aGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAge2VudHJpZXN9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgICAgICBsZXQgdGltZWxpbmUgPSB0aGlzLnJlbmRlclRpbWVsaW5lKCkuZmlsdGVyKChjKSA9PiAhIWMpOyAvLyByZW1vdmUgbnVsbHMgZm9yIG5leHQgY2hlY2tcbiAgICAgICAgaWYgKHRpbWVsaW5lLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGltZWxpbmUgPSBbPGRpdiBrZXk9ezF9PntfdChcInNlcnZlcl9vZmZsaW5lfGVtcHR5X3RpbWVsaW5lXCIpfTwvZGl2Pl07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzZXJ2ZXJOYW1lID0gTWF0cml4Q2xpZW50UGVnLnNhZmVHZXQoKS5nZXREb21haW4oKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxCYXNlRGlhbG9nXG4gICAgICAgICAgICAgICAgdGl0bGU9e190KFwic2VydmVyX29mZmxpbmV8dGl0bGVcIil9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXhfU2VydmVyT2ZmbGluZURpYWxvZ1wiXG4gICAgICAgICAgICAgICAgY29udGVudElkPVwibXhfRGlhbG9nX2NvbnRlbnRcIlxuICAgICAgICAgICAgICAgIG9uRmluaXNoZWQ9e3RoaXMucHJvcHMub25GaW5pc2hlZH1cbiAgICAgICAgICAgICAgICBoYXNDYW5jZWw9e3RydWV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteF9TZXJ2ZXJPZmZsaW5lRGlhbG9nX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHA+e190KFwic2VydmVyX29mZmxpbmV8ZGVzY3JpcHRpb25cIil9PC9wPlxuICAgICAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+e190KFwic2VydmVyX29mZmxpbmV8ZGVzY3JpcHRpb25fMVwiLCB7IHNlcnZlck5hbWUgfSl9PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT57X3QoXCJzZXJ2ZXJfb2ZmbGluZXxkZXNjcmlwdGlvbl8yXCIpfTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+e190KFwic2VydmVyX29mZmxpbmV8ZGVzY3JpcHRpb25fM1wiKX08L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPntfdChcInNlcnZlcl9vZmZsaW5lfGRlc2NyaXB0aW9uXzRcIil9PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT57X3QoXCJzZXJ2ZXJfb2ZmbGluZXxkZXNjcmlwdGlvbl81XCIpfTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+e190KFwic2VydmVyX29mZmxpbmV8ZGVzY3JpcHRpb25fNlwiKX08L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPntfdChcInNlcnZlcl9vZmZsaW5lfGRlc2NyaXB0aW9uXzdcIil9PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT57X3QoXCJzZXJ2ZXJfb2ZmbGluZXxkZXNjcmlwdGlvbl84XCIpfTwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgICAgICAgICA8aDI+e190KFwic2VydmVyX29mZmxpbmV8cmVjZW50X2NoYW5nZXNfaGVhZGluZ1wiKX08L2gyPlxuICAgICAgICAgICAgICAgICAgICB7dGltZWxpbmV9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L0Jhc2VEaWFsb2c+XG4gICAgICAgICk7XG4gICAgfVxufVxuIl0sIm1hcHBp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