tc-ui-toolkit
Version:
React components used to develop tools for the desktop app translationCore
219 lines (196 loc) • 25.3 kB
JavaScript
"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 _propTypes = _interopRequireDefault(require("prop-types"));
var _DefaultArea = _interopRequireDefault(require("../DefaultArea"));
var _SelectionArea = _interopRequireDefault(require("../SelectionArea"));
var _InstructionsArea = _interopRequireDefault(require("../InstructionsArea"));
var _EditVerseArea = _interopRequireDefault(require("../EditVerseArea"));
var _CommentArea = _interopRequireDefault(require("../CommentArea"));
require("./CheckArea.styles.css");
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
var CheckArea = function CheckArea(_ref) {
var mode = _ref.mode,
tags = _ref.tags,
comment = _ref.comment,
verseText = _ref.verseText,
translate = _ref.translate,
contextId = _ref.contextId,
selections = _ref.selections,
invalidated = _ref.invalidated,
targetBible = _ref.targetBible,
bookDetails = _ref.bookDetails,
newSelections = _ref.newSelections,
alignedGLText = _ref.alignedGLText,
handleComment = _ref.handleComment,
toolsSettings = _ref.toolsSettings,
isVerseChanged = _ref.isVerseChanged,
nothingToSelect = _ref.nothingToSelect,
openAlertDialog = _ref.openAlertDialog,
handleEditVerse = _ref.handleEditVerse,
setToolSettings = _ref.setToolSettings,
maximumSelections = _ref.maximumSelections,
handleTagsCheckbox = _ref.handleTagsCheckbox,
validateSelections = _ref.validateSelections,
targetLanguageFont = _ref.targetLanguageFont,
unfilteredVerseText = _ref.unfilteredVerseText,
checkIfVerseChanged = _ref.checkIfVerseChanged,
checkIfCommentChanged = _ref.checkIfCommentChanged,
targetLanguageDetails = _ref.targetLanguageDetails,
changeSelectionsInLocalState = _ref.changeSelectionsInLocalState;
var modeArea;
var _ref2 = targetLanguageDetails || {},
_ref2$direction = _ref2.direction,
targetLanguageDirection = _ref2$direction === void 0 ? 'ltr' : _ref2$direction;
switch (mode) {
case 'edit':
var fontSize = toolsSettings['CheckArea'] && toolsSettings['CheckArea'].fontSize || 100;
modeArea = /*#__PURE__*/_react["default"].createElement(_EditVerseArea["default"], {
tags: tags,
verseText: unfilteredVerseText,
isVerseChanged: isVerseChanged,
handleTagsCheckbox: handleTagsCheckbox,
handleEditVerse: handleEditVerse,
checkIfVerseChanged: checkIfVerseChanged,
languageDirection: targetLanguageDirection,
translate: translate,
targetLanguageFont: targetLanguageFont,
targetLanguageFontSize: "".concat(fontSize, "%")
});
break;
case 'comment':
modeArea = /*#__PURE__*/_react["default"].createElement(_CommentArea["default"], {
comment: comment,
translate: translate,
handleComment: handleComment,
checkIfCommentChanged: checkIfCommentChanged
});
break;
case 'select':
modeArea = /*#__PURE__*/_react["default"].createElement("div", {
style: {
WebkitUserSelect: 'none',
display: 'flex',
flex: '1',
justifyContent: 'center',
alignItems: 'center',
overflow: 'auto'
}
}, /*#__PURE__*/_react["default"].createElement(_InstructionsArea["default"], {
verseText: verseText,
selections: selections,
alignedGLText: alignedGLText,
mode: mode,
translate: translate,
invalidated: invalidated,
targetLanguageFont: targetLanguageFont,
targetLanguageDirection: targetLanguageDirection
}));
break;
case 'default':
default:
modeArea = /*#__PURE__*/_react["default"].createElement("div", {
style: {
WebkitUserSelect: 'none',
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
height: '100%'
}
}, /*#__PURE__*/_react["default"].createElement(_InstructionsArea["default"], {
dontShowTranslation: true,
verseText: verseText,
selections: selections,
alignedGLText: alignedGLText,
translate: translate,
invalidated: invalidated,
nothingToSelect: nothingToSelect,
targetLanguageFont: targetLanguageFont,
targetLanguageDirection: targetLanguageDirection
}));
}
var reference = contextId.reference;
if (contextId.verseSpan) {
// if are in a verse span, use it
reference = _objectSpread(_objectSpread({}, contextId.reference), {}, {
verse: contextId.verseSpan
});
}
return /*#__PURE__*/_react["default"].createElement("div", {
className: "check-area"
}, mode === 'select' ? /*#__PURE__*/_react["default"].createElement(_SelectionArea["default"], {
mode: mode,
translate: translate,
verseText: verseText,
bookDetails: bookDetails,
targetBible: targetBible,
selections: newSelections,
toolsSettings: toolsSettings,
reference: reference,
setToolSettings: setToolSettings,
openAlertDialog: openAlertDialog,
maximumSelections: maximumSelections,
targetLanguageFont: targetLanguageFont,
targetLanguageDetails: targetLanguageDetails,
changeSelectionsInLocalState: changeSelectionsInLocalState
}) : /*#__PURE__*/_react["default"].createElement(_DefaultArea["default"], {
translate: translate,
verseText: verseText,
selections: selections,
targetBible: targetBible,
bookDetails: bookDetails,
toolsSettings: toolsSettings,
reference: reference,
setToolSettings: setToolSettings,
validateSelections: validateSelections,
targetLanguageFont: targetLanguageFont,
targetLanguageDetails: targetLanguageDetails
}), /*#__PURE__*/_react["default"].createElement("div", {
style: {
borderLeft: '1px solid var(--border-color)',
flex: 1,
overflowY: 'auto',
display: 'flex',
justifyContent: 'center'
}
}, modeArea));
};
CheckArea.propTypes = {
tags: _propTypes["default"].array.isRequired,
mode: _propTypes["default"].string.isRequired,
targetLanguageFont: _propTypes["default"].string,
translate: _propTypes["default"].func.isRequired,
comment: _propTypes["default"].string.isRequired,
invalidated: _propTypes["default"].bool.isRequired,
verseText: _propTypes["default"].string.isRequired,
contextId: _propTypes["default"].object.isRequired,
selections: _propTypes["default"].array.isRequired,
bookDetails: _propTypes["default"].object.isRequired,
handleComment: _propTypes["default"].func.isRequired,
targetBible: _propTypes["default"].object.isRequired,
newSelections: _propTypes["default"].array.isRequired,
isVerseChanged: _propTypes["default"].bool.isRequired,
alignedGLText: _propTypes["default"].string.isRequired,
nothingToSelect: _propTypes["default"].bool.isRequired,
handleEditVerse: _propTypes["default"].func.isRequired,
openAlertDialog: _propTypes["default"].func.isRequired,
toolsSettings: _propTypes["default"].object.isRequired,
setToolSettings: _propTypes["default"].func.isRequired,
validateSelections: _propTypes["default"].func.isRequired,
handleTagsCheckbox: _propTypes["default"].func.isRequired,
checkIfVerseChanged: _propTypes["default"].func.isRequired,
maximumSelections: _propTypes["default"].number.isRequired,
unfilteredVerseText: _propTypes["default"].string.isRequired,
checkIfCommentChanged: _propTypes["default"].func.isRequired,
targetLanguageDetails: _propTypes["default"].object.isRequired,
changeSelectionsInLocalState: _propTypes["default"].func.isRequired
};
var _default = CheckArea;
exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9WZXJzZUNoZWNrL0NoZWNrQXJlYS9pbmRleC5qcyJdLCJuYW1lcyI6WyJDaGVja0FyZWEiLCJtb2RlIiwidGFncyIsImNvbW1lbnQiLCJ2ZXJzZVRleHQiLCJ0cmFuc2xhdGUiLCJjb250ZXh0SWQiLCJzZWxlY3Rpb25zIiwiaW52YWxpZGF0ZWQiLCJ0YXJnZXRCaWJsZSIsImJvb2tEZXRhaWxzIiwibmV3U2VsZWN0aW9ucyIsImFsaWduZWRHTFRleHQiLCJoYW5kbGVDb21tZW50IiwidG9vbHNTZXR0aW5ncyIsImlzVmVyc2VDaGFuZ2VkIiwibm90aGluZ1RvU2VsZWN0Iiwib3BlbkFsZXJ0RGlhbG9nIiwiaGFuZGxlRWRpdFZlcnNlIiwic2V0VG9vbFNldHRpbmdzIiwibWF4aW11bVNlbGVjdGlvbnMiLCJoYW5kbGVUYWdzQ2hlY2tib3giLCJ2YWxpZGF0ZVNlbGVjdGlvbnMiLCJ0YXJnZXRMYW5ndWFnZUZvbnQiLCJ1bmZpbHRlcmVkVmVyc2VUZXh0IiwiY2hlY2tJZlZlcnNlQ2hhbmdlZCIsImNoZWNrSWZDb21tZW50Q2hhbmdlZCIsInRhcmdldExhbmd1YWdlRGV0YWlscyIsImNoYW5nZVNlbGVjdGlvbnNJbkxvY2FsU3RhdGUiLCJtb2RlQXJlYSIsImRpcmVjdGlvbiIsInRhcmdldExhbmd1YWdlRGlyZWN0aW9uIiwiZm9udFNpemUiLCJXZWJraXRVc2VyU2VsZWN0IiwiZGlzcGxheSIsImZsZXgiLCJqdXN0aWZ5Q29udGVudCIsImFsaWduSXRlbXMiLCJvdmVyZmxvdyIsImhlaWdodCIsInJlZmVyZW5jZSIsInZlcnNlU3BhbiIsInZlcnNlIiwiYm9yZGVyTGVmdCIsIm92ZXJmbG93WSIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImFycmF5IiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImZ1bmMiLCJib29sIiwib2JqZWN0IiwibnVtYmVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUNB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VUFkWDtBQWVwQnBDLEVBQUFBLGFBQWEsRUFBRWtDLHNCQUFVRyxNQUFWLENBQWlCRCxVQWZaO0FBZ0JwQmhDLEVBQUFBLGVBQWUsRUFBRThCLHNCQUFVSyxJQUFWLENBQWVILFVBaEJaO0FBaUJwQjlCLEVBQUFBLGVBQWUsRUFBRTRCLHNCQUFVSSxJQUFWLENBQWVGLFVBakJaO0FBa0JwQi9CLEVBQUFBLGVBQWUsRUFBRTZCLHNCQUFVSSxJQUFWLENBQWVGLFVBbEJaO0FBbUJwQmxDLEVBQUFBLGFBQWEsRUFBRWdDLHNCQUFVTSxNQUFWLENBQWlCSixVQW5CWjtBQW9CcEI3QixFQUFBQSxlQUFlLEVBQUUyQixzQkFBVUksSUFBVixDQUFlRixVQXBCWjtBQXFCcEIxQixFQUFBQSxrQkFBa0IsRUFBRXdCLHNCQUFVSSxJQUFWLENBQWVGLFVBckJmO0FBc0JwQjNCLEVBQUFBLGtCQUFrQixFQUFFeUIsc0JBQVVJLElBQVYsQ0FBZUYsVUF0QmY7QUF1QnBCdkIsRUFBQUEsbUJBQW1CLEVBQUVxQixzQkFBVUksSUFBVixDQUFlRixVQXZCaEI7QUF3QnBCNUIsRUFBQUEsaUJBQWlCLEVBQUUwQixzQkFBVU8sTUFBVixDQUFpQkwsVUF4QmhCO0FBeUJwQnhCLEVBQUFBLG1CQUFtQixFQUFFc0Isc0JBQVVHLE1BQVYsQ0FBaUJELFVBekJsQjtBQTBCcEJ0QixFQUFBQSxxQkFBcUIsRUFBRW9CLHNCQUFVSSxJQUFWLENBQWVGLFVBMUJsQjtBQTJCcEJyQixFQUFBQSxxQkFBcUIsRUFBRW1CLHNCQUFVTSxNQUFWLENBQWlCSixVQTNCcEI7QUE0QnBCcEIsRUFBQUEsNEJBQTRCLEVBQUVrQixzQkFBVUksSUFBVixDQUFlRjtBQTVCekIsQ0FBdEI7ZUErQmVoRCxTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG4vLyBjb21wb25lbnRzXG5pbXBvcnQgRGVmYXVsdEFyZWEgZnJvbSAnLi4vRGVmYXVsdEFyZWEnO1xuaW1wb3J0IFNlbGVjdGlvbkFyZWEgZnJvbSAnLi4vU2VsZWN0aW9uQXJlYSc7XG5pbXBvcnQgSW5zdHJ1Y3Rpb25zQXJlYSBmcm9tICcuLi9JbnN0cnVjdGlvbnNBcmVhJztcbmltcG9ydCBFZGl0VmVyc2VBcmVhIGZyb20gJy4uL0VkaXRWZXJzZUFyZWEnO1xuaW1wb3J0IENvbW1lbnRBcmVhIGZyb20gJy4uL0NvbW1lbnRBcmVhJztcbmltcG9ydCAnLi9DaGVja0FyZWEuc3R5bGVzLmNzcyc7XG5cbmNvbnN0IENoZWNrQXJlYSA9ICh7XG4gIG1vZGUsXG4gIHRhZ3MsXG4gIGNvbW1lbnQsXG4gIHZlcnNlVGV4dCxcbiAgdHJhbnNsYXRlLFxuICBjb250ZXh0SWQsXG4gIHNlbGVjdGlvbnMsXG4gIGludmFsaWRhdGVkLFxuICB0YXJnZXRCaWJsZSxcbiAgYm9va0RldGFpbHMsXG4gIG5ld1NlbGVjdGlvbnMsXG4gIGFsaWduZWRHTFRleHQsXG4gIGhhbmRsZUNvbW1lbnQsXG4gIHRvb2xzU2V0dGluZ3MsXG4gIGlzVmVyc2VDaGFuZ2VkLFxuICBub3RoaW5nVG9TZWxlY3QsXG4gIG9wZW5BbGVydERpYWxvZyxcbiAgaGFuZGxlRWRpdFZlcnNlLFxuICBzZXRUb29sU2V0dGluZ3MsXG4gIG1heGltdW1TZWxlY3Rpb25zLFxuICBoYW5kbGVUYWdzQ2hlY2tib3gsXG4gIHZhbGlkYXRlU2VsZWN0aW9ucyxcbiAgdGFyZ2V0TGFuZ3VhZ2VGb250LFxuICB1bmZpbHRlcmVkVmVyc2VUZXh0LFxuICBjaGVja0lmVmVyc2VDaGFuZ2VkLFxuICBjaGVja0lmQ29tbWVudENoYW5nZWQsXG4gIHRhcmdldExhbmd1YWdlRGV0YWlscyxcbiAgY2hhbmdlU2VsZWN0aW9uc0luTG9jYWxTdGF0ZSxcbn0pID0+IHtcbiAgbGV0IG1vZGVBcmVhO1xuICBjb25zdCB7IGRpcmVjdGlvbjogdGFyZ2V0TGFuZ3VhZ2VEaXJlY3Rpb24gPSAnbHRyJyB9ID0gdGFyZ2V0TGFuZ3VhZ2VEZXRhaWxzIHx8IHt9O1xuXG4gIHN3aXRjaCAobW9kZSkge1xuICBjYXNlICdlZGl0JzpcbiAgICB2YXIgZm9udFNpemUgPSAodG9vbHNTZXR0aW5nc1snQ2hlY2tBcmVhJ10gJiYgdG9vbHNTZXR0aW5nc1snQ2hlY2tBcmVhJ10uZm9udFNpemUpIHx8IDEwMDtcblxuICAgIG1vZGVBcmVhID0gKFxuICAgICAgPEVkaXRWZXJzZUFyZWFcbiAgICAgICAgdGFncz17dGFnc31cbiAgICAgICAgdmVyc2VUZXh0PXt1bmZpbHRlcmVkVmVyc2VUZXh0fVxuICAgICAgICBpc1ZlcnNlQ2hhbmdlZD17aXNWZXJzZUNoYW5nZWR9XG4gICAgICAgIGhhbmRsZVRhZ3NDaGVja2JveD17aGFuZGxlVGFnc0NoZWNrYm94fVxuICAgICAgICBoYW5kbGVFZGl0VmVyc2U9e2hhbmRsZUVkaXRWZXJzZX1cbiAgICAgICAgY2hlY2tJZlZlcnNlQ2hhbmdlZD17Y2hlY2tJZlZlcnNlQ2hhbmdlZH1cbiAgICAgICAgbGFuZ3VhZ2VEaXJlY3Rpb249e3RhcmdldExhbmd1YWdlRGlyZWN0aW9ufVxuICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VGb250PXt0YXJnZXRMYW5ndWFnZUZvbnR9XG4gICAgICAgIHRhcmdldExhbmd1YWdlRm9udFNpemU9e2Ake2ZvbnRTaXplfSVgfVxuICAgICAgLz5cbiAgICApO1xuICAgIGJyZWFrO1xuICBjYXNlICdjb21tZW50JzpcbiAgICBtb2RlQXJlYSA9IChcbiAgICAgIDxDb21tZW50QXJlYVxuICAgICAgICBjb21tZW50PXtjb21tZW50fVxuICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgaGFuZGxlQ29tbWVudD17aGFuZGxlQ29tbWVudH1cbiAgICAgICAgY2hlY2tJZkNvbW1lbnRDaGFuZ2VkPXtjaGVja0lmQ29tbWVudENoYW5nZWR9XG4gICAgICAvPlxuICAgICk7XG4gICAgYnJlYWs7XG4gIGNhc2UgJ3NlbGVjdCc6XG4gICAgbW9kZUFyZWEgPSAoXG4gICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgIFdlYmtpdFVzZXJTZWxlY3Q6ICdub25lJywgZGlzcGxheTogJ2ZsZXgnLCBmbGV4OiAnMScsIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJywgYWxpZ25JdGVtczogJ2NlbnRlcicsIG92ZXJmbG93OiAnYXV0bycsXG4gICAgICB9fT5cbiAgICAgICAgPEluc3RydWN0aW9uc0FyZWFcbiAgICAgICAgICB2ZXJzZVRleHQ9e3ZlcnNlVGV4dH1cbiAgICAgICAgICBzZWxlY3Rpb25zPXtzZWxlY3Rpb25zfVxuICAgICAgICAgIGFsaWduZWRHTFRleHQ9e2FsaWduZWRHTFRleHR9XG4gICAgICAgICAgbW9kZT17bW9kZX1cbiAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICBpbnZhbGlkYXRlZD17aW52YWxpZGF0ZWR9XG4gICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VGb250PXt0YXJnZXRMYW5ndWFnZUZvbnR9XG4gICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VEaXJlY3Rpb249e3RhcmdldExhbmd1YWdlRGlyZWN0aW9ufVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+KTtcbiAgICBicmVhaztcbiAgY2FzZSAnZGVmYXVsdCc6XG4gIGRlZmF1bHQ6XG4gICAgbW9kZUFyZWEgPSAoXG4gICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgIFdlYmtpdFVzZXJTZWxlY3Q6ICdub25lJywgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgIH19PlxuICAgICAgICA8SW5zdHJ1Y3Rpb25zQXJlYVxuICAgICAgICAgIGRvbnRTaG93VHJhbnNsYXRpb249e3RydWV9XG4gICAgICAgICAgdmVyc2VUZXh0PXt2ZXJzZVRleHR9XG4gICAgICAgICAgc2VsZWN0aW9ucz17c2VsZWN0aW9uc31cbiAgICAgICAgICBhbGlnbmVkR0xUZXh0PXthbGlnbmVkR0xUZXh0fVxuICAgICAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgICAgICAgIGludmFsaWRhdGVkPXtpbnZhbGlkYXRlZH1cbiAgICAgICAgICBub3RoaW5nVG9TZWxlY3Q9e25vdGhpbmdUb1NlbGVjdH1cbiAgICAgICAgICB0YXJnZXRMYW5ndWFnZUZvbnQ9e3RhcmdldExhbmd1YWdlRm9udH1cbiAgICAgICAgICB0YXJnZXRMYW5ndWFnZURpcmVjdGlvbj17dGFyZ2V0TGFuZ3VhZ2VEaXJlY3Rpb259XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgbGV0IHJlZmVyZW5jZSA9IGNvbnRleHRJZC5yZWZlcmVuY2U7XG5cbiAgaWYgKGNvbnRleHRJZC52ZXJzZVNwYW4pIHsgLy8gaWYgYXJlIGluIGEgdmVyc2Ugc3BhbiwgdXNlIGl0XG4gICAgcmVmZXJlbmNlID0ge1xuICAgICAgLi4uY29udGV4dElkLnJlZmVyZW5jZSxcbiAgICAgIHZlcnNlOiBjb250ZXh0SWQudmVyc2VTcGFuLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPSdjaGVjay1hcmVhJz5cbiAgICAgIHttb2RlID09PSAnc2VsZWN0JyA/XG4gICAgICAgIDxTZWxlY3Rpb25BcmVhXG4gICAgICAgICAgbW9kZT17bW9kZX1cbiAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICB2ZXJzZVRleHQ9e3ZlcnNlVGV4dH1cbiAgICAgICAgICBib29rRGV0YWlscz17Ym9va0RldGFpbHN9XG4gICAgICAgICAgdGFyZ2V0QmlibGU9e3RhcmdldEJpYmxlfVxuICAgICAgICAgIHNlbGVjdGlvbnM9e25ld1NlbGVjdGlvbnN9XG4gICAgICAgICAgdG9vbHNTZXR0aW5ncz17dG9vbHNTZXR0aW5nc31cbiAgICAgICAgICByZWZlcmVuY2U9e3JlZmVyZW5jZX1cbiAgICAgICAgICBzZXRUb29sU2V0dGluZ3M9e3NldFRvb2xTZXR0aW5nc31cbiAgICAgICAgICBvcGVuQWxlcnREaWFsb2c9e29wZW5BbGVydERpYWxvZ31cbiAgICAgICAgICBtYXhpbXVtU2VsZWN0aW9ucz17bWF4aW11bVNlbGVjdGlvbnN9XG4gICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VGb250PXt0YXJnZXRMYW5ndWFnZUZvbnR9XG4gICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VEZXRhaWxzPXt0YXJnZXRMYW5ndWFnZURldGFpbHN9XG4gICAgICAgICAgY2hhbmdlU2VsZWN0aW9uc0luTG9jYWxTdGF0ZT17Y2hhbmdlU2VsZWN0aW9uc0luTG9jYWxTdGF0ZX1cbiAgICAgICAgLz5cbiAgICAgICAgOlxuICAgICAgICA8RGVmYXVsdEFyZWFcbiAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICB2ZXJzZVRleHQ9e3ZlcnNlVGV4dH1cbiAgICAgICAgICBzZWxlY3Rpb25zPXtzZWxlY3Rpb25zfVxuICAgICAgICAgIHRhcmdldEJpYmxlPXt0YXJnZXRCaWJsZX1cbiAgICAgICAgICBib29rRGV0YWlscz17Ym9va0RldGFpbHN9XG4gICAgICAgICAgdG9vbHNTZXR0aW5ncz17dG9vbHNTZXR0aW5nc31cbiAgICAgICAgICByZWZlcmVuY2U9e3JlZmVyZW5jZX1cbiAgICAgICAgICBzZXRUb29sU2V0dGluZ3M9e3NldFRvb2xTZXR0aW5nc31cbiAgICAgICAgICB2YWxpZGF0ZVNlbGVjdGlvbnM9e3ZhbGlkYXRlU2VsZWN0aW9uc31cbiAgICAgICAgICB0YXJnZXRMYW5ndWFnZUZvbnQ9e3RhcmdldExhbmd1YWdlRm9udH1cbiAgICAgICAgICB0YXJnZXRMYW5ndWFnZURldGFpbHM9e3RhcmdldExhbmd1YWdlRGV0YWlsc31cbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgYm9yZGVyTGVmdDogJzFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpJywgZmxleDogMSwgb3ZlcmZsb3dZOiAnYXV0bycsIGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgfX0+XG4gICAgICAgIHttb2RlQXJlYX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuQ2hlY2tBcmVhLnByb3BUeXBlcyA9IHtcbiAgdGFnczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIG1vZGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgdGFyZ2V0TGFuZ3VhZ2VGb250OiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0cmFuc2xhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNvbW1lbnQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgaW52YWxpZGF0ZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIHZlcnNlVGV4dDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBjb250ZXh0SWQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgc2VsZWN0aW9uczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIGJvb2tEZXRhaWxzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGhhbmRsZUNvbW1lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHRhcmdldEJpYmxlOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIG5ld1NlbGVjdGlvbnM6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICBpc1ZlcnNlQ2hhbmdlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgYWxpZ25lZEdMVGV4dDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBub3RoaW5nVG9TZWxlY3Q6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGhhbmRsZUVkaXRWZXJzZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb3BlbkFsZXJ0RGlhbG9nOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB0b29sc1NldHRpbmdzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIHNldFRvb2xTZXR0aW5nczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgdmFsaWRhdGVTZWxlY3Rpb25zOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBoYW5kbGVUYWdzQ2hlY2tib3g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNoZWNrSWZWZXJzZUNoYW5nZWQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG1heGltdW1TZWxlY3Rpb25zOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIHVuZmlsdGVyZWRWZXJzZVRleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgY2hlY2tJZkNvbW1lbnRDaGFuZ2VkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB0YXJnZXRMYW5ndWFnZURldGFpbHM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgY2hhbmdlU2VsZWN0aW9uc0luTG9jYWxTdGF0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENoZWNrQXJlYTtcbiJdfQ==