tc-ui-toolkit
Version:
React components used to develop tools for the desktop app translationCore
211 lines (179 loc) • 20.8 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireWildcard(require("prop-types"));
var _styles = require("@material-ui/core/styles");
var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog"));
var _DialogTitle = _interopRequireDefault(require("@material-ui/core/DialogTitle"));
var _DialogActions = _interopRequireDefault(require("@material-ui/core/DialogActions"));
var _DialogContent = _interopRequireDefault(require("@material-ui/core/DialogContent"));
var _Toolbar = _interopRequireDefault(require("@material-ui/core/Toolbar"));
var _reactBootstrap = require("react-bootstrap");
var _Paper = _interopRequireDefault(require("@material-ui/core/Paper"));
var _reactDraggable = _interopRequireDefault(require("react-draggable"));
var _MyTargetVerse = _interopRequireDefault(require("../MyTargetVerse"));
require("./MyLanguageModal.styles.css");
var _fontUtils = require("../../common/fontUtils");
function PaperComponent(props) {
// component will only be draggable by element with the className in the handle prop
return /*#__PURE__*/_react["default"].createElement(_reactDraggable["default"], {
handle: ".my-language-modal-draggable-handle"
}, /*#__PURE__*/_react["default"].createElement(_Paper["default"], (0, _extends2["default"])({}, props, {
elevation: 2
})));
}
var styles = {
paperRoot: {
margin: '0px'
}
};
var MyLanguageModal = function MyLanguageModal(_ref) {
var show = _ref.show,
onHide = _ref.onHide,
chapter = _ref.chapter,
classes = _ref.classes,
bookName = _ref.bookName,
fontSize = _ref.fontSize,
translate = _ref.translate,
targetBible = _ref.targetBible,
currentVerse = _ref.currentVerse,
languageDirection = _ref.languageDirection,
targetLanguageFont = _ref.targetLanguageFont;
function scrollToCurrentVerse() {
var verseReference = 'MyTargetVerse:' + chapter.toString() + currentVerse.toString();
var element = document.getElementById(verseReference);
if (element) {
element.scrollIntoView();
}
}
var title = bookName;
var MyTargetLanguage = [];
var targetLanguageFontClassName = (0, _fontUtils.getFontClassName)(targetLanguageFont);
var contentStyle = {
padding: '0px',
height: '500px',
overflowY: 'auto',
backgroundColor: 'var(--reverse-color)'
};
if (fontSize) {
contentStyle.fontSize = fontSize;
}
if (show) {
for (var key in targetBible[chapter]) {
if (targetBible[chapter].hasOwnProperty(key)) {
var verseText = targetBible[chapter][key];
var versePaneStyle = {};
if (key == currentVerse) {
if (key % 2 == 0) {
versePaneStyle = {
borderLeft: '6px solid var(--accent-color)',
backgroundColor: 'var(--background-color-light)',
marginTop: '10px',
color: 'var(--text-color-dark)',
padding: '10px'
};
} else {
versePaneStyle = {
borderLeft: '6px solid var(--accent-color)',
marginTop: '10px',
color: 'var(--text-color-dark)',
padding: '10px'
};
}
} else if (key % 2 == 0) {
versePaneStyle = {
backgroundColor: 'var(--background-color-light)',
marginTop: '10px',
color: 'var(--text-color-dark)',
padding: '10px'
};
} else {
versePaneStyle = {
marginTop: '10px',
color: 'var(--text-color-dark)',
padding: '10px'
};
}
MyTargetLanguage.push( /*#__PURE__*/_react["default"].createElement("div", {
key: key,
id: 'MyTargetVerse:' + chapter.toString() + key.toString()
}, /*#__PURE__*/_react["default"].createElement(_MyTargetVerse["default"], {
chapter: chapter,
verse: key,
verseText: verseText,
styles: versePaneStyle,
dir: languageDirection,
targetLanguageFontClassName: targetLanguageFontClassName
})));
}
}
}
return /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
onEntered: scrollToCurrentVerse,
maxWidth: 'md',
fullWidth: true,
open: show,
onClose: onHide,
PaperComponent: PaperComponent,
PaperProps: {
className: classes.paperRoot
}
}, /*#__PURE__*/_react["default"].createElement(_Toolbar["default"], {
className: "my-language-modal-draggable-handle",
disableGutters: true,
style: {
display: 'flex',
justifyContent: 'flex-end',
backgroundColor: 'var(--accent-color-dark)',
cursor: 'move'
}
}, /*#__PURE__*/_react["default"].createElement(_DialogTitle["default"], {
disableTypography: true,
className: "verse-check-modal-title"
}, /*#__PURE__*/_react["default"].createElement("h4", {
style: {
color: 'var(--reverse-color)'
},
className: targetLanguageFontClassName
}, title), /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Glyphicon, {
onClick: onHide,
glyph: 'remove',
style: {
position: 'absolute',
right: 0,
margin: 24,
color: 'var(--reverse-color)',
cursor: 'pointer',
fontSize: '18px'
}
}))), /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], {
style: contentStyle
}, MyTargetLanguage), /*#__PURE__*/_react["default"].createElement(_DialogActions["default"], {
disableSpacing: true
}, /*#__PURE__*/_react["default"].createElement("button", {
className: "btn-prime",
onClick: onHide
}, translate('close'))));
};
MyLanguageModal.propTypes = {
show: _propTypes["default"].bool.isRequired,
onHide: _propTypes["default"].func.isRequired,
targetBible: _propTypes["default"].object.isRequired,
chapter: _propTypes["default"].number.isRequired,
currentVerse: (0, _propTypes.oneOfType)([_propTypes["default"].string, _propTypes["default"].number]).isRequired,
languageDirection: _propTypes["default"].string.isRequired,
translate: _propTypes["default"].func.isRequired,
classes: _propTypes["default"].object.isRequired,
bookName: _propTypes["default"].string.isRequired,
targetLanguageFont: _propTypes["default"].string,
fontSize: _propTypes["default"].string
};
var _default = (0, _styles.withStyles)(styles)(MyLanguageModal);
exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9WZXJzZUNoZWNrL015TGFuZ3VhZ2VNb2RhbC9pbmRleC5qcyJdLCJuYW1lcyI6WyJQYXBlckNvbXBvbmVudCIsInByb3BzIiwic3R5bGVzIiwicGFwZXJSb290IiwibWFyZ2luIiwiTXlMYW5ndWFnZU1vZGFsIiwic2hvdyIsIm9uSGlkZSIsImNoYXB0ZXIiLCJjbGFzc2VzIiwiYm9va05hbWUiLCJmb250U2l6ZSIsInRyYW5zbGF0ZSIsInRhcmdldEJpYmxlIiwiY3VycmVudFZlcnNlIiwibGFuZ3VhZ2VEaXJlY3Rpb24iLCJ0YXJnZXRMYW5ndWFnZUZvbnQiLCJzY3JvbGxUb0N1cnJlbnRWZXJzZSIsInZlcnNlUmVmZXJlbmNlIiwidG9TdHJpbmciLCJlbGVtZW50IiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInNjcm9sbEludG9WaWV3IiwidGl0bGUiLCJNeVRhcmdldExhbmd1YWdlIiwidGFyZ2V0TGFuZ3VhZ2VGb250Q2xhc3NOYW1lIiwiY29udGVudFN0eWxlIiwicGFkZGluZyIsImhlaWdodCIsIm92ZXJmbG93WSIsImJhY2tncm91bmRDb2xvciIsImtleSIsImhhc093blByb3BlcnR5IiwidmVyc2VUZXh0IiwidmVyc2VQYW5lU3R5bGUiLCJib3JkZXJMZWZ0IiwibWFyZ2luVG9wIiwiY29sb3IiLCJwdXNoIiwiY2xhc3NOYW1lIiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiY3Vyc29yIiwicG9zaXRpb24iLCJyaWdodCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImJvb2wiLCJpc1JlcXVpcmVkIiwiZnVuYyIsIm9iamVjdCIsIm51bWJlciIsInN0cmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUVBLFNBQVNBLGNBQVQsQ0FBd0JDLEtBQXhC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QjtBQUMxQnhDLEVBQUFBLElBQUksRUFBRXlDLHNCQUFVQyxJQUFWLENBQWVDLFVBREs7QUFFMUIxQyxFQUFBQSxNQUFNLEVBQUV3QyxzQkFBVUcsSUFBVixDQUFlRCxVQUZHO0FBRzFCcEMsRUFBQUEsV0FBVyxFQUFFa0Msc0JBQVVJLE1BQVYsQ0FBaUJGLFVBSEo7QUFJMUJ6QyxFQUFBQSxPQUFPLEVBQUV1QyxzQkFBVUssTUFBVixDQUFpQkgsVUFKQTtBQUsxQm5DLEVBQUFBLFlBQVksRUFBRSwwQkFBVSxDQUN0QmlDLHNCQUFVTSxNQURZLEVBRXRCTixzQkFBVUssTUFGWSxDQUFWLEVBR1hILFVBUnVCO0FBUzFCbEMsRUFBQUEsaUJBQWlCLEVBQUVnQyxzQkFBVU0sTUFBVixDQUFpQkosVUFUVjtBQVUxQnJDLEVBQUFBLFNBQVMsRUFBRW1DLHNCQUFVRyxJQUFWLENBQWVELFVBVkE7QUFXMUJ4QyxFQUFBQSxPQUFPLEVBQUVzQyxzQkFBVUksTUFBVixDQUFpQkYsVUFYQTtBQVkxQnZDLEVBQUFBLFFBQVEsRUFBRXFDLHNCQUFVTSxNQUFWLENBQWlCSixVQVpEO0FBYTFCakMsRUFBQUEsa0JBQWtCLEVBQUUrQixzQkFBVU0sTUFiSjtBQWMxQjFDLEVBQUFBLFFBQVEsRUFBRW9DLHNCQUFVTTtBQWRNLENBQTVCOztlQWlCZSx3QkFBV25ELE1BQVgsRUFBbUJHLGVBQW5CLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcywgeyBvbmVPZlR5cGUgfSBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IERpYWxvZyBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9EaWFsb2cnO1xuaW1wb3J0IERpYWxvZ1RpdGxlIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0RpYWxvZ1RpdGxlJztcbmltcG9ydCBEaWFsb2dBY3Rpb25zIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0RpYWxvZ0FjdGlvbnMnO1xuaW1wb3J0IERpYWxvZ0NvbnRlbnQgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvRGlhbG9nQ29udGVudCc7XG5pbXBvcnQgVG9vbGJhciBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9Ub29sYmFyJztcbmltcG9ydCB7IEdseXBoaWNvbiB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgUGFwZXIgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvUGFwZXInO1xuaW1wb3J0IERyYWdnYWJsZSBmcm9tICdyZWFjdC1kcmFnZ2FibGUnO1xuaW1wb3J0IE15VGFyZ2V0VmVyc2UgZnJvbSAnLi4vTXlUYXJnZXRWZXJzZSc7XG5cbmltcG9ydCAnLi9NeUxhbmd1YWdlTW9kYWwuc3R5bGVzLmNzcyc7XG5pbXBvcnQgeyBnZXRGb250Q2xhc3NOYW1lIH0gZnJvbSAnLi4vLi4vY29tbW9uL2ZvbnRVdGlscyc7XG5cbmZ1bmN0aW9uIFBhcGVyQ29tcG9uZW50KHByb3BzKSB7XG4gIC8vIGNvbXBvbmVudCB3aWxsIG9ubHkgYmUgZHJhZ2dhYmxlIGJ5IGVsZW1lbnQgd2l0aCB0aGUgY2xhc3NOYW1lIGluIHRoZSBoYW5kbGUgcHJvcFxuICByZXR1cm4gKFxuICAgIDxEcmFnZ2FibGUgaGFuZGxlPVwiLm15LWxhbmd1YWdlLW1vZGFsLWRyYWdnYWJsZS1oYW5kbGVcIj5cbiAgICAgIDxQYXBlciB7Li4ucHJvcHN9IGVsZXZhdGlvbj17Mn0gLz5cbiAgICA8L0RyYWdnYWJsZT5cbiAgKTtcbn1cblxuY29uc3Qgc3R5bGVzID0geyBwYXBlclJvb3Q6IHsgbWFyZ2luOiAnMHB4JyB9IH07XG5cbmNvbnN0IE15TGFuZ3VhZ2VNb2RhbCA9ICh7XG4gIHNob3csXG4gIG9uSGlkZSxcbiAgY2hhcHRlcixcbiAgY2xhc3NlcyxcbiAgYm9va05hbWUsXG4gIGZvbnRTaXplLFxuICB0cmFuc2xhdGUsXG4gIHRhcmdldEJpYmxlLFxuICBjdXJyZW50VmVyc2UsXG4gIGxhbmd1YWdlRGlyZWN0aW9uLFxuICB0YXJnZXRMYW5ndWFnZUZvbnQsXG59KSA9PiB7XG4gIGZ1bmN0aW9uIHNjcm9sbFRvQ3VycmVudFZlcnNlKCkge1xuICAgIGxldCB2ZXJzZVJlZmVyZW5jZSA9ICdNeVRhcmdldFZlcnNlOicgKyBjaGFwdGVyLnRvU3RyaW5nKCkgKyBjdXJyZW50VmVyc2UudG9TdHJpbmcoKTtcbiAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHZlcnNlUmVmZXJlbmNlKTtcblxuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgdGl0bGUgPSBib29rTmFtZTtcbiAgbGV0IE15VGFyZ2V0TGFuZ3VhZ2UgPSBbXTtcbiAgY29uc3QgdGFyZ2V0TGFuZ3VhZ2VGb250Q2xhc3NOYW1lID0gZ2V0Rm9udENsYXNzTmFtZSh0YXJnZXRMYW5ndWFnZUZvbnQpO1xuICBjb25zdCBjb250ZW50U3R5bGUgPSB7XG4gICAgcGFkZGluZzogJzBweCcsXG4gICAgaGVpZ2h0OiAnNTAwcHgnLFxuICAgIG92ZXJmbG93WTogJ2F1dG8nLFxuICAgIGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXJldmVyc2UtY29sb3IpJyxcbiAgfTtcblxuICBpZiAoZm9udFNpemUpIHtcbiAgICBjb250ZW50U3R5bGUuZm9udFNpemUgPSBmb250U2l6ZTtcbiAgfVxuXG4gIGlmIChzaG93KSB7XG4gICAgZm9yIChsZXQga2V5IGluIHRhcmdldEJpYmxlW2NoYXB0ZXJdKSB7XG4gICAgICBpZiAodGFyZ2V0QmlibGVbY2hhcHRlcl0uaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBsZXQgdmVyc2VUZXh0ID0gdGFyZ2V0QmlibGVbY2hhcHRlcl1ba2V5XTtcbiAgICAgICAgbGV0IHZlcnNlUGFuZVN0eWxlID0ge307XG5cbiAgICAgICAgaWYgKGtleSA9PSBjdXJyZW50VmVyc2UpIHtcbiAgICAgICAgICBpZiAoa2V5ICUgMiA9PSAwKSB7XG4gICAgICAgICAgICB2ZXJzZVBhbmVTdHlsZSA9IHtcbiAgICAgICAgICAgICAgYm9yZGVyTGVmdDogJzZweCBzb2xpZCB2YXIoLS1hY2NlbnQtY29sb3IpJywgYmFja2dyb3VuZENvbG9yOiAndmFyKC0tYmFja2dyb3VuZC1jb2xvci1saWdodCknLCBtYXJnaW5Ub3A6ICcxMHB4JywgY29sb3I6ICd2YXIoLS10ZXh0LWNvbG9yLWRhcmspJywgcGFkZGluZzogJzEwcHgnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmVyc2VQYW5lU3R5bGUgPSB7XG4gICAgICAgICAgICAgIGJvcmRlckxlZnQ6ICc2cHggc29saWQgdmFyKC0tYWNjZW50LWNvbG9yKScsIG1hcmdpblRvcDogJzEwcHgnLCBjb2xvcjogJ3ZhcigtLXRleHQtY29sb3ItZGFyayknLCBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChrZXkgJSAyID09IDApIHtcbiAgICAgICAgICB2ZXJzZVBhbmVTdHlsZSA9IHtcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLWJhY2tncm91bmQtY29sb3ItbGlnaHQpJywgbWFyZ2luVG9wOiAnMTBweCcsIGNvbG9yOiAndmFyKC0tdGV4dC1jb2xvci1kYXJrKScsIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZlcnNlUGFuZVN0eWxlID0ge1xuICAgICAgICAgICAgbWFyZ2luVG9wOiAnMTBweCcsIGNvbG9yOiAndmFyKC0tdGV4dC1jb2xvci1kYXJrKScsIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIE15VGFyZ2V0TGFuZ3VhZ2UucHVzaChcbiAgICAgICAgICA8ZGl2IGtleT17a2V5fSBpZD17J015VGFyZ2V0VmVyc2U6JyArIGNoYXB0ZXIudG9TdHJpbmcoKSArIGtleS50b1N0cmluZygpfT5cbiAgICAgICAgICAgIDxNeVRhcmdldFZlcnNlXG4gICAgICAgICAgICAgIGNoYXB0ZXI9e2NoYXB0ZXJ9XG4gICAgICAgICAgICAgIHZlcnNlPXtrZXl9XG4gICAgICAgICAgICAgIHZlcnNlVGV4dD17dmVyc2VUZXh0fVxuICAgICAgICAgICAgICBzdHlsZXM9e3ZlcnNlUGFuZVN0eWxlfVxuICAgICAgICAgICAgICBkaXI9e2xhbmd1YWdlRGlyZWN0aW9ufVxuICAgICAgICAgICAgICB0YXJnZXRMYW5ndWFnZUZvbnRDbGFzc05hbWU9e3RhcmdldExhbmd1YWdlRm9udENsYXNzTmFtZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPERpYWxvZ1xuICAgICAgb25FbnRlcmVkPXtzY3JvbGxUb0N1cnJlbnRWZXJzZX1cbiAgICAgIG1heFdpZHRoPXsnbWQnfVxuICAgICAgZnVsbFdpZHRoPXt0cnVlfVxuICAgICAgb3Blbj17c2hvd31cbiAgICAgIG9uQ2xvc2U9e29uSGlkZX1cbiAgICAgIFBhcGVyQ29tcG9uZW50PXtQYXBlckNvbXBvbmVudH1cbiAgICAgIFBhcGVyUHJvcHM9e3sgY2xhc3NOYW1lOiBjbGFzc2VzLnBhcGVyUm9vdCB9fVxuICAgID5cbiAgICAgIDxUb29sYmFyXG4gICAgICAgIGNsYXNzTmFtZT1cIm15LWxhbmd1YWdlLW1vZGFsLWRyYWdnYWJsZS1oYW5kbGVcIlxuICAgICAgICBkaXNhYmxlR3V0dGVycz17dHJ1ZX1cbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnZmxleC1lbmQnLCBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1hY2NlbnQtY29sb3ItZGFyayknLCBjdXJzb3I6ICdtb3ZlJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPERpYWxvZ1RpdGxlIGRpc2FibGVUeXBvZ3JhcGh5PXt0cnVlfSBjbGFzc05hbWU9J3ZlcnNlLWNoZWNrLW1vZGFsLXRpdGxlJz5cbiAgICAgICAgICA8aDQgc3R5bGU9e3sgY29sb3I6ICd2YXIoLS1yZXZlcnNlLWNvbG9yKScgfX0gY2xhc3NOYW1lPXt0YXJnZXRMYW5ndWFnZUZvbnRDbGFzc05hbWV9PlxuICAgICAgICAgICAge3RpdGxlfVxuICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgPEdseXBoaWNvblxuICAgICAgICAgICAgb25DbGljaz17b25IaWRlfVxuICAgICAgICAgICAgZ2x5cGg9eydyZW1vdmUnfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgcG9zaXRpb246J2Fic29sdXRlJywgcmlnaHQ6IDAsIG1hcmdpbjogMjQsIGNvbG9yOiAndmFyKC0tcmV2ZXJzZS1jb2xvciknLCBjdXJzb3I6ICdwb2ludGVyJywgZm9udFNpemU6ICcxOHB4JyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9EaWFsb2dUaXRsZT5cbiAgICAgIDwvVG9vbGJhcj5cbiAgICAgIDxEaWFsb2dDb250ZW50IHN0eWxlPXtjb250ZW50U3R5bGV9PlxuICAgICAgICB7TXlUYXJnZXRMYW5ndWFnZX1cbiAgICAgIDwvRGlhbG9nQ29udGVudD5cbiAgICAgIDxEaWFsb2dBY3Rpb25zIGRpc2FibGVTcGFjaW5nPXt0cnVlfT5cbiAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9J2J0bi1wcmltZScgb25DbGljaz17b25IaWRlfT57dHJhbnNsYXRlKCdjbG9zZScpfTwvYnV0dG9uPlxuICAgICAgPC9EaWFsb2dBY3Rpb25zPlxuICAgIDwvRGlhbG9nPlxuICApO1xufTtcblxuTXlMYW5ndWFnZU1vZGFsLnByb3BUeXBlcyA9IHtcbiAgc2hvdzogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgb25IaWRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB0YXJnZXRCaWJsZTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBjaGFwdGVyOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIGN1cnJlbnRWZXJzZTogb25lT2ZUeXBlKFtcbiAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIFByb3BUeXBlcy5udW1iZXIsXG4gIF0pLmlzUmVxdWlyZWQsXG4gIGxhbmd1YWdlRGlyZWN0aW9uOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHRyYW5zbGF0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBib29rTmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB0YXJnZXRMYW5ndWFnZUZvbnQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGZvbnRTaXplOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMpKE15TGFuZ3VhZ2VNb2RhbCk7XG4iXX0=