"use strict";
(self["webpackChunk_core_volunteer_app"] = self["webpackChunk_core_volunteer_app"] || []).push([["main-src_shared_views_main_i"],{
/***/ "./src/shared/views/main/interested_team/form.tsx":
/*!********************************************************!*\
!*** ./src/shared/views/main/interested_team/form.tsx ***!
\********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_select__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/select */ "../../../node_modules/antd/lib/select/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../services/interested_team/core/actions */ "./src/services/interested_team/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditInterestedTeamPage = function NewEditInterestedTeamPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_8__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_10__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_8__.useSelector)(function (state) {
return state.interestedTeam;
}),
interestedTeams = _useSelector.interestedTeams,
interestedTeam = _useSelector.interestedTeam,
registerErrorMessage = _useSelector.registerErrorMessage,
interestedTeamUpdatePending = _useSelector.interestedTeamUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_7__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_7__.useEffect)(function () {
if (id) {
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_9__.interestedTeamDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_7__.useEffect)(function () {
if (id && interestedTeam) {
form.setFieldsValue({
name: interestedTeam.name || '',
description: interestedTeam.description || '',
parent_id: interestedTeam.parent_id || null
});
}
}, [interestedTeam, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_7__.useEffect)(function () {
if (!interestedTeamUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/interested-teams');
}
}
}, [interestedTeamUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_9__.updateInterestedTeamAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_9__.createInterestedTeamAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement((react__WEBPACK_IMPORTED_MODULE_7___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("h2", null, id ? 'αααααααααα»αα
αΆααα’αΆαααααα' : 'ααααααααααΈαααα»αα
αΆααα’αΆαααααα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_3__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_4__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_3__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"].Item, {
label: "Parent Team",
name: "parent_id"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_2__["default"], {
allowClear: true,
placeholder: "Select Parent Team"
}, Array.isArray(interestedTeams) && interestedTeams.map(function (team) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(Option, {
key: team.id,
value: team.id
}, team.name);
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_3__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799 (Optional)",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_11__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_3__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: interestedTeamUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_3__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_6__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/interested-teams');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditInterestedTeamPage);
/***/ }),
/***/ "./src/shared/views/main/interested_team/index.tsx":
/*!*********************************************************!*\
!*** ./src/shared/views/main/interested_team/index.tsx ***!
\*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../services/interested_team/core/actions */ "./src/services/interested_team/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_12__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var InterestedTeamList = function InterestedTeamList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(function (state) {
return state.interestedTeam;
}),
interestedTeams = _useSelector.interestedTeams,
interestedTeamsPending = _useSelector.interestedTeamsPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchInterestedTeams)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_11__.interestedTeamDetailAction)(id));
navigate("/interested-teams/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n
\n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_11__.deleteInterestedTeamAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchInterestedTeams)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (interestedTeams || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1780\u17D2\u179A\u17BB\u1798\u1785\u17B6\u1794\u17CB\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/interested-teams/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__["default"], {
visible: interestedTeamsPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (InterestedTeamList);
/***/ }),
/***/ "./src/shared/views/main/language/form.tsx":
/*!*************************************************!*\
!*** ./src/shared/views/main/language/form.tsx ***!
\*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_language_core_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../services/language/core/actions */ "./src/services/language/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditLanguagePage = function NewEditLanguagePage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_9__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useSelector)(function (state) {
return state.language;
}),
language = _useSelector.language,
registerErrorMessage = _useSelector.registerErrorMessage,
languageUpdatePending = _useSelector.languageUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_6__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id) {
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_8__.languageDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id && language) {
form.setFieldsValue({
name: language.name || '',
description: language.description || ''
});
}
}, [language, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (!languageUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/languages');
}
}
}, [languageUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_8__.updateLanguageAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_8__.createLanguageAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((react__WEBPACK_IMPORTED_MODULE_6___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement("h2", null, id ? 'ααααααααΆααΆ' : 'ααααααααααΈααΆααΆ'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: languageUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/languages');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditLanguagePage);
/***/ }),
/***/ "./src/shared/views/main/language/index.tsx":
/*!**************************************************!*\
!*** ./src/shared/views/main/language/index.tsx ***!
\**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_language_core_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../services/language/core/actions */ "./src/services/language/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_12__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var LanguageList = function LanguageList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(function (state) {
return state.language;
}),
languages = _useSelector.languages,
languagesPending = _useSelector.languagesPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchLanguages)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_11__.languageDetailAction)(id));
navigate("/languages/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_11__.deleteLanguageAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchLanguages)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (languages || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1797\u17B6\u179F\u17B6"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/languages/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__["default"], {
visible: languagesPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LanguageList);
/***/ }),
/***/ "./src/shared/views/main/notification/core/notification_service.ts":
/*!*************************************************************************!*\
!*** ./src/shared/views/main/notification/core/notification_service.ts ***!
\*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ notifyUserByStatus: () => (/* binding */ notifyUserByStatus),
/* harmony export */ notifyUserTelegramService: () => (/* binding */ notifyUserTelegramService)
/* harmony export */ });
/* harmony import */ var _core_base_services__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../core/base/services */ "./src/shared/core/base/services.ts");
/* harmony import */ var _configs_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../configs/constants */ "./src/shared/configs/constants.ts");
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
var notifyUserTelegramService = /*#__PURE__*/function () {
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(user_id, message) {
return _regenerator().w(function (_context) {
while (1) switch (_context.n) {
case 0:
_context.n = 1;
return (0,_core_base_services__WEBPACK_IMPORTED_MODULE_0__.getWithConfig)("".concat(_configs_constants__WEBPACK_IMPORTED_MODULE_1__.URL.NOTIFY, "?user_id=").concat(user_id, "&message=").concat(message));
case 1:
return _context.a(2, _context.v);
}
}, _callee);
}));
return function notifyUserTelegramService(_x, _x2) {
return _ref.apply(this, arguments);
};
}();
var notifyUserByStatus = /*#__PURE__*/function () {
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(status, message) {
return _regenerator().w(function (_context2) {
while (1) switch (_context2.n) {
case 0:
_context2.n = 1;
return (0,_core_base_services__WEBPACK_IMPORTED_MODULE_0__.getWithConfig)("".concat(_configs_constants__WEBPACK_IMPORTED_MODULE_1__.URL.NOTIFY_STATUS, "?status=").concat(status, "&message=").concat(message));
case 1:
return _context2.a(2, _context2.v);
}
}, _callee2);
}));
return function notifyUserByStatus(_x3, _x4) {
return _ref2.apply(this, arguments);
};
}();
/***/ }),
/***/ "./src/shared/views/main/notification/index.tsx":
/*!******************************************************!*\
!*** ./src/shared/views/main/notification/index.tsx ***!
\******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_modal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/modal */ "../../../node_modules/antd/lib/modal/index.js");
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/select */ "../../../node_modules/antd/lib/select/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _core_notification_service__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./core/notification_service */ "./src/shared/views/main/notification/core/notification_service.ts");
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var Option = antd_es_select__WEBPACK_IMPORTED_MODULE_6__["default"].Option;
var Invitation_to_Volunteer_Briefing_Meeting = "\n\uD83D\uDCE2 **\u1780\u17B6\u179A\u17A2\u1789\u17D2\u1787\u17BE\u1789\u1785\u17BC\u179B\u179A\u17BD\u1798\u1780\u17B7\u1785\u17D2\u1785\u1794\u17D2\u179A\u1787\u17BB\u17C6\u1795\u17D2\u179F\u1796\u17D2\u179C\u1795\u17D2\u179F\u17B6\u1799\u17A2\u17C6\u1796\u17B8\u178F\u17BD\u1793\u17B6\u1791\u17B8\u1797\u17B6\u179A\u1780\u17B7\u1785\u17D2\u1785**\n\n\n\uD83D\uDCDD **\u179F\u17BC\u1798\u17A2\u1789\u17D2\u1787\u17BE\u1789\u179B\u17C4\u1780\u17A2\u17D2\u1793\u1780** \u1785\u17BC\u179B\u179A\u17BD\u1798\u1780\u17B7\u1785\u17D2\u1785\u1794\u17D2\u179A\u1787\u17BB\u17C6\u1795\u17D2\u179F\u1796\u17D2\u179C\u1795\u17D2\u179F\u17B6\u1799\u17A2\u17C6\u1796\u17B8 **\u178F\u17BD\u1793\u17B6\u1791\u17B8\u1797\u17B6\u179A\u1780\u17B7\u1785\u17D2\u1785\u1780\u17D2\u179A\u17BB\u1798\u1780\u17B6\u179A\u1784\u17B6\u179A**\n\u178A\u17BE\u1798\u17D2\u1794\u17B8\u179A\u17C0\u1794\u1785\u17C6\u1781\u17D2\u179B\u17BD\u1793\u1787\u17B6\u179F\u17D2\u1798\u17D0\u1782\u17D2\u179A\u1785\u17B7\u178F\u17D2\u178F\u1780\u17D2\u1793\u17BB\u1784 **\u1796\u17D2\u179A\u17B9\u178F\u17D2\u178F\u17B7\u1780\u17B6\u179A\u178E\u17CD\u17A2\u1784\u17D2\u1782\u179A\u179F\u1784\u17D2\u1780\u17D2\u179A\u17B6\u1793\u17D2\u178F \u17E2\u17E0\u17E2\u17E5**\u3002\n\n\n\uD83D\uDCC5 \u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791\u17D6 \u1790\u17D2\u1784\u17C3\u179F\u17C5\u179A\u17CD \u1791\u17B8 \u17E2\u17E9 \u1781\u17C2\u1798\u17B8\u1793\u17B6 \u17E2\u17E0\u17E2\u17E5\n\u23F0 \u1796\u17C1\u179B\u179C\u17C1\u179B\u17B6\u17D6 \u17E9:\u17E0\u17E0 \u1796\u17D2\u179A\u17B9\u1780\n\uD83D\uDCCD \u1791\u17B8\u178F\u17B6\u17C6\u1784\u17D6 \u1791\u17B8\u179B\u17B6\u1793\u1795\u17D2\u178F\u17B6\u1785\u17CB\u1796\u17D2\u179A\u17D0\u178F\u17D2\u179A\u179F\u17A0\u1796\u17D0\u1793\u17D2\u1792\u1780\u17B8\u17A1\u17B6\u1794\u17CA\u17BC\u179B \u1793\u17B7\u1784\u1794\u17C9\u17C1\u178F\u1784\u17CB\u1780\u1798\u17D2\u1796\u17BB\u1787\u17B6 (\u1796\u17A0\u17BB\u1780\u17B8\u17A1\u178A\u17D2\u178B\u17B6\u1793\u1787\u17B6\u178F\u17B7)\n\uD83D\uDC55 \u179F\u1798\u17D2\u179B\u17C0\u1780\u1794\u17C6\u1796\u17B6\u1780\u17CB\u17D6 \u179F\u1798\u179A\u1798\u17D2\u1799\n\n\uD83D\uDCDE \u1796\u17D0\u178F\u17CC\u1798\u17B6\u1793\u179B\u1798\u17D2\u17A2\u17B7\u178F\u179F\u17BC\u1798\u1791\u17C6\u1793\u17B6\u1780\u17CB\u1791\u17C6\u1793\u1784\u17D6 098 89 87 67\n";
var NotificationPage = function NotificationPage() {
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_7__.useState)("PARTICIPANTS"),
_useState2 = _slicedToArray(_useState, 2),
selectedStatus = _useState2[0],
setSelectedStatus = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_7__.useState)(Invitation_to_Volunteer_Briefing_Meeting),
_useState4 = _slicedToArray(_useState3, 2),
messageText = _useState4[0],
setMessageText = _useState4[1];
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_7__.useState)(false),
_useState6 = _slicedToArray(_useState5, 2),
loading = _useState6[0],
setLoading = _useState6[1];
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_7__.useState)(false),
_useState8 = _slicedToArray(_useState7, 2),
confirmVisible = _useState8[0],
setConfirmVisible = _useState8[1];
var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_7__.useState)(false),
_useState0 = _slicedToArray(_useState9, 2),
finalConfirmVisible = _useState0[0],
setFinalConfirmVisible = _useState0[1];
var _useState1 = (0,react__WEBPACK_IMPORTED_MODULE_7__.useState)(""),
_useState10 = _slicedToArray(_useState1, 2),
sendType = _useState10[0],
setSendType = _useState10[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_8__.useSelector)(function (state) {
return state;
}),
auth = _useSelector.auth;
var users = auth.users;
var userStatuses = ["PARTICIPANTS", "SHORTLIST", "INTERVIEW", "RESERVE", "FAILED", "RESIGNATION", "DISQUALIFICATION", "REGISTER"];
var showConfirmDialog = function showConfirmDialog(type) {
if (!messageText) {
return antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].warning("Please enter a message before sending.");
}
setSendType(type);
setConfirmVisible(true);
};
var handleFirstConfirm = function handleFirstConfirm() {
setConfirmVisible(false);
setFinalConfirmVisible(true);
};
var handleConfirmSend = /*#__PURE__*/function () {
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
var _t;
return _regenerator().w(function (_context) {
while (1) switch (_context.p = _context.n) {
case 0:
setLoading(true);
setFinalConfirmVisible(false);
_context.p = 1;
if (!(sendType === "user")) {
_context.n = 3;
break;
}
_context.n = 2;
return (0,_core_notification_service__WEBPACK_IMPORTED_MODULE_9__.notifyUserTelegramService)(users.id, messageText);
case 2:
_context.n = 4;
break;
case 3:
_context.n = 4;
return (0,_core_notification_service__WEBPACK_IMPORTED_MODULE_9__.notifyUserByStatus)(selectedStatus, messageText);
case 4:
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success("Message(s) sent successfully!");
setMessageText(Invitation_to_Volunteer_Briefing_Meeting);
_context.n = 6;
break;
case 5:
_context.p = 5;
_t = _context.v;
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error("Failed to send message(s)!");
case 6:
setLoading(false);
case 7:
return _context.a(2);
}
}, _callee, null, [[1, 5]]);
}));
return function handleConfirmSend() {
return _ref.apply(this, arguments);
};
}();
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("div", {
style: {
padding: 20
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("h2", null, "Send Notifications"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("div", {
style: {
marginBottom: 20
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [16, 16]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 16,
lg: 24
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_6__["default"], {
placeholder: "Select User Status",
value: selectedStatus,
onChange: setSelectedStatus,
style: {
width: 200
}
}, userStatuses.map(function (status) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(Option, {
key: status,
value: status
}, status);
}))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 16,
lg: 24
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"].TextArea, {
placeholder: "Enter Message",
value: messageText,
onChange: function onChange(e) {
return setMessageText(e.target.value);
},
rows: 20
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 16,
lg: 24
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_2___default()), {
type: "primary",
onClick: function onClick() {
return showConfirmDialog("status");
},
loading: loading
}, "Send by Status")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_modal__WEBPACK_IMPORTED_MODULE_0__["default"], {
title: "Confirm Sending Message",
visible: confirmVisible,
onOk: handleFirstConfirm,
onCancel: function onCancel() {
return setConfirmVisible(false);
},
okText: "Proceed",
cancelText: "Cancel"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], null, "Are you sure you want to send this message?"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("p", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("strong", null, "Message:"), " ", messageText), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("p", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("strong", null, "User Status:"), " ", selectedStatus)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement(antd_es_modal__WEBPACK_IMPORTED_MODULE_0__["default"], {
title: "Final Confirmation",
visible: finalConfirmVisible,
onOk: handleConfirmSend,
onCancel: function onCancel() {
return setFinalConfirmVisible(false);
},
okText: "Yes, Send",
cancelText: "Cancel"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7___default().createElement("p", null, "This is your final confirmation. Do you want to proceed with sending the message?")));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NotificationPage);
/***/ }),
/***/ "./src/shared/views/main/occupation/form.tsx":
/*!***************************************************!*\
!*** ./src/shared/views/main/occupation/form.tsx ***!
\***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../services/occupation/core/actions */ "./src/services/occupation/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditOccupationPage = function NewEditOccupationPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_9__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useSelector)(function (state) {
return state.occupation;
}),
occupation = _useSelector.occupation,
registerErrorMessage = _useSelector.registerErrorMessage,
occupationUpdatePending = _useSelector.occupationUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_6__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id) {
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_8__.occupationDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id && occupation) {
form.setFieldsValue({
name: occupation.name || '',
description: occupation.description || ''
});
}
}, [occupation, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (!occupationUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/occupations');
}
}
}, [occupationUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_8__.updateOccupationAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_8__.createOccupationAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((react__WEBPACK_IMPORTED_MODULE_6___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement("h2", null, id ? 'αααααααα»αααα' : 'ααααααααααΈαα»αααα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: occupationUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/occupations');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditOccupationPage);
/***/ }),
/***/ "./src/shared/views/main/occupation/index.tsx":
/*!****************************************************!*\
!*** ./src/shared/views/main/occupation/index.tsx ***!
\****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../services/occupation/core/actions */ "./src/services/occupation/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_12__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var OccupationList = function OccupationList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(function (state) {
return state.occupation;
}),
occupations = _useSelector.occupations,
occupationsPending = _useSelector.occupationsPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchOccupations)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_11__.occupationDetailAction)(id));
navigate("/occupations/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_11__.deleteOccupationAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchOccupations)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (occupations || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1798\u17BB\u1781\u179A\u1794\u179A"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/occupations/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__["default"], {
visible: occupationsPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OccupationList);
/***/ }),
/***/ "./src/shared/views/main/offer_program/form.tsx":
/*!******************************************************!*\
!*** ./src/shared/views/main/offer_program/form.tsx ***!
\******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../services/offer_program/core/actions */ "./src/services/offer_program/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditOfferProgramPage = function NewEditOfferProgramPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_9__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useSelector)(function (state) {
return state.offerProgram;
}),
offerProgram = _useSelector.offerProgram,
registerErrorMessage = _useSelector.registerErrorMessage,
offerProgramUpdatePending = _useSelector.offerProgramUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_6__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id) {
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_8__.offerProgramDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id && offerProgram) {
form.setFieldsValue({
name: offerProgram.name || '',
description: offerProgram.description || ''
});
}
}, [offerProgram, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (!offerProgramUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/offer-programs');
}
}
}, [offerProgramUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_8__.updateOfferProgramAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_8__.createOfferProgramAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((react__WEBPACK_IMPORTED_MODULE_6___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement("h2", null, id ? 'ααααααααααααΈααΈαααααααΌαβ' : 'ααααααααααΈααααααΈααΈαααααααΌαβ'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: offerProgramUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/offer-programs');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditOfferProgramPage);
/***/ }),
/***/ "./src/shared/views/main/offer_program/index.tsx":
/*!*******************************************************!*\
!*** ./src/shared/views/main/offer_program/index.tsx ***!
\*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../services/offer_program/core/actions */ "./src/services/offer_program/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_12__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var OfferProgramList = function OfferProgramList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(function (state) {
return state.offerProgram;
}),
offerPrograms = _useSelector.offerPrograms,
offerProgramsPending = _useSelector.offerProgramsPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchOfferPrograms)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_11__.offerProgramDetailAction)(id));
navigate("/offer-programs/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_11__.deleteOfferProgramAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchOfferPrograms)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (offerPrograms || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1780\u1798\u17D2\u1798\u179C\u17B8\u1792\u17B8\u1795\u17D2\u178A\u179B\u17CB\u1787\u17BC\u1793\u200B"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/offer-programs/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__["default"], {
visible: offerProgramsPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OfferProgramList);
/***/ }),
/***/ "./src/shared/views/main/opportunity_source/form.tsx":
/*!***********************************************************!*\
!*** ./src/shared/views/main/opportunity_source/form.tsx ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../services/opportunity_source/core/actions */ "./src/services/opportunity_source/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditOpportunitySourcePage = function NewEditOpportunitySourcePage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_9__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useSelector)(function (state) {
return state.opportunitySource;
}),
opportunitySource = _useSelector.opportunitySource,
registerErrorMessage = _useSelector.registerErrorMessage,
opportunitySourceUpdatePending = _useSelector.opportunitySourceUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_6__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id) {
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_8__.opportunitySourceDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id && opportunitySource) {
form.setFieldsValue({
name: opportunitySource.name || '',
description: opportunitySource.description || ''
});
}
}, [opportunitySource, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (!opportunitySourceUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/opportunity-sources');
}
}
}, [opportunitySourceUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_8__.updateOpportunitySourceAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_8__.createOpportunitySourceAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((react__WEBPACK_IMPORTED_MODULE_6___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement("h2", null, id ? 'αααααααααααα±ααΆα' : 'ααααααααααΈαααααα±ααΆα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: opportunitySourceUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/opportunity-sources');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditOpportunitySourcePage);
/***/ }),
/***/ "./src/shared/views/main/opportunity_source/index.tsx":
/*!************************************************************!*\
!*** ./src/shared/views/main/opportunity_source/index.tsx ***!
\************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../services/opportunity_source/core/actions */ "./src/services/opportunity_source/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_12__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var OpportunitySourceList = function OpportunitySourceList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(function (state) {
return state.opportunitySource;
}),
opportunitySources = _useSelector.opportunitySources,
opportunitySourcesPending = _useSelector.opportunitySourcesPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchOpportunitySources)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_11__.opportunitySourceDetailAction)(id));
navigate("/opportunity-sources/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_11__.deleteOpportunitySourceAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchOpportunitySources)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (opportunitySources || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1794\u17D2\u179A\u1797\u1796\u17B1\u1780\u17B6\u179F"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/opportunity-sources/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__["default"], {
visible: opportunitySourcesPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpportunitySourceList);
/***/ }),
/***/ "./src/shared/views/main/province/form.tsx":
/*!*************************************************!*\
!*** ./src/shared/views/main/province/form.tsx ***!
\*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_province_core_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../services/province/core/actions */ "./src/services/province/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditProvincePage = function NewEditProvincePage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_9__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useSelector)(function (state) {
return state.province;
}),
province = _useSelector.province,
registerErrorMessage = _useSelector.registerErrorMessage,
provinceUpdatePending = _useSelector.provinceUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_6__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id) {
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_8__.provinceDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id && province) {
form.setFieldsValue({
name: province.name || '',
description: province.description || ''
});
}
}, [province, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (!provinceUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/provinces');
}
}
}, [provinceUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_8__.updateProvinceAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_8__.createProvinceAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((react__WEBPACK_IMPORTED_MODULE_6___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement("h2", null, id ? 'ααααααααααα' : 'ααααααααααΈααααα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: provinceUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/provinces');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditProvincePage);
/***/ }),
/***/ "./src/shared/views/main/province/index.tsx":
/*!**************************************************!*\
!*** ./src/shared/views/main/province/index.tsx ***!
\**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_province_core_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../services/province/core/actions */ "./src/services/province/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_12__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var ProvinceList = function ProvinceList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(function (state) {
return state.province;
}),
provinces = _useSelector.provinces,
provincesPending = _useSelector.provincesPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchProvinces)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_11__.provinceDetailAction)(id));
navigate("/provinces/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_11__.deleteProvinceAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchProvinces)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (provinces || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1781\u17C1\u178F\u17D2\u178F"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/provinces/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__["default"], {
visible: provincesPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProvinceList);
/***/ }),
/***/ "./src/shared/views/main/skill/form.tsx":
/*!**********************************************!*\
!*** ./src/shared/views/main/skill/form.tsx ***!
\**********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_skill_core_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../services/skill/core/actions */ "./src/services/skill/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditSkillPage = function NewEditSkillPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_9__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useSelector)(function (state) {
return state.skill;
}),
skill = _useSelector.skill,
registerErrorMessage = _useSelector.registerErrorMessage,
skillUpdatePending = _useSelector.skillUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_6__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id) {
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_8__.skillDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id && skill) {
form.setFieldsValue({
name: skill.name || '',
description: skill.description || ''
});
}
}, [skill, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (!skillUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/skills');
}
}
}, [skillUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_8__.updateSkillAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_8__.createSkillAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((react__WEBPACK_IMPORTED_MODULE_6___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement("h2", null, id ? 'ααααααααααΆα' : 'ααααααααααΈααααΆα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: skillUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/skills');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditSkillPage);
/***/ }),
/***/ "./src/shared/views/main/skill/index.tsx":
/*!***********************************************!*\
!*** ./src/shared/views/main/skill/index.tsx ***!
\***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_skill_core_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../services/skill/core/actions */ "./src/services/skill/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_12__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var SkillList = function SkillList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(function (state) {
return state.skill;
}),
skills = _useSelector.skills,
skillsPending = _useSelector.skillsPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchSkills)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_11__.skillDetailAction)(id));
navigate("/skills/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_11__.deleteSkillAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchSkills)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (skills || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1787\u17C6\u1793\u17B6\u1789"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/skills/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__["default"], {
visible: skillsPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SkillList);
/***/ }),
/***/ "./src/shared/views/main/terms_condition/form.tsx":
/*!********************************************************!*\
!*** ./src/shared/views/main/terms_condition/form.tsx ***!
\********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../services/terms_condition/core/actions */ "./src/services/terms_condition/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditTermsConditionPage = function NewEditTermsConditionPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_9__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useSelector)(function (state) {
return state.termsCondition;
}),
termsCondition = _useSelector.termsCondition,
registerErrorMessage = _useSelector.registerErrorMessage,
termsConditionUpdatePending = _useSelector.termsConditionUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_6__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id) {
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_8__.termsConditionDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id && termsCondition) {
form.setFieldsValue({
name: termsCondition.name || '',
description: termsCondition.description || ''
});
}
}, [termsCondition, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (!termsConditionUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/terms-conditions');
}
}
}, [termsConditionUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_8__.updateTermsConditionAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_8__.createTermsConditionAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((react__WEBPACK_IMPORTED_MODULE_6___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement("h2", null, id ? 'αααααααααααααα' : 'ααααααααααΈαααααααα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: termsConditionUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/terms-conditions');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditTermsConditionPage);
/***/ }),
/***/ "./src/shared/views/main/terms_condition/index.tsx":
/*!*********************************************************!*\
!*** ./src/shared/views/main/terms_condition/index.tsx ***!
\*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../services/terms_condition/core/actions */ "./src/services/terms_condition/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_12__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var TermsConditionList = function TermsConditionList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(function (state) {
return state.termsCondition;
}),
termsConditions = _useSelector.termsConditions,
termsConditionsPending = _useSelector.termsConditionsPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchTermsConditions)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_11__.termsConditionDetailAction)(id));
navigate("/terms-conditions/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_11__.deleteTermsConditionAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchTermsConditions)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (termsConditions || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u179B\u1780\u17D2\u1781\u1781\u178E\u17D2\u178C"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/terms-conditions/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__["default"], {
visible: termsConditionsPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TermsConditionList);
/***/ }),
/***/ "./src/shared/views/main/training_session/form.tsx":
/*!*********************************************************!*\
!*** ./src/shared/views/main/training_session/form.tsx ***!
\*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../services/training_session/core/actions */ "./src/services/training_session/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditTrainingSessionPage = function NewEditTrainingSessionPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_9__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useSelector)(function (state) {
return state.trainingSession;
}),
trainingSession = _useSelector.trainingSession,
registerErrorMessage = _useSelector.registerErrorMessage,
trainingSessionUpdatePending = _useSelector.trainingSessionUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_6__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id) {
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_8__.trainingSessionDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id && trainingSession) {
form.setFieldsValue({
name: trainingSession.name || '',
description: trainingSession.description || ''
});
}
}, [trainingSession, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (!trainingSessionUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/training-sessions');
}
}
}, [trainingSessionUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_8__.updateTrainingSessionAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_8__.createTrainingSessionAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((react__WEBPACK_IMPORTED_MODULE_6___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement("h2", null, id ? 'ααααααααααααααα»ααααααΆα' : 'ααααααααααΈααααααααα»ααααααΆα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: trainingSessionUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/training-sessions');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditTrainingSessionPage);
/***/ }),
/***/ "./src/shared/views/main/training_session/index.tsx":
/*!**********************************************************!*\
!*** ./src/shared/views/main/training_session/index.tsx ***!
\**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../services/training_session/core/actions */ "./src/services/training_session/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_12__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var TrainingSessionList = function TrainingSessionList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(function (state) {
return state.trainingSession;
}),
trainingSessions = _useSelector.trainingSessions,
trainingSessionsPending = _useSelector.trainingSessionsPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchTrainingSessions)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_11__.trainingSessionDetailAction)(id));
navigate("/training-sessions/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_11__.deleteTrainingSessionAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchTrainingSessions)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (trainingSessions || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u179C\u1782\u17D2\u1782\u1794\u178E\u17D2\u178F\u17BB\u17C7\u1794\u178E\u17D2\u178F\u17B6\u179B"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/training-sessions/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__["default"], {
visible: trainingSessionsPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TrainingSessionList);
/***/ }),
/***/ "./src/shared/views/main/travel_day/form.tsx":
/*!***************************************************!*\
!*** ./src/shared/views/main/travel_day/form.tsx ***!
\***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../services/travel_day/core/actions */ "./src/services/travel_day/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditTravelDayPage = function NewEditTravelDayPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_9__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_7__.useSelector)(function (state) {
return state.travelDay;
}),
travelDay = _useSelector.travelDay,
registerErrorMessage = _useSelector.registerErrorMessage,
travelDayUpdatePending = _useSelector.travelDayUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_6__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id) {
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_8__.travelDayDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (id && travelDay) {
form.setFieldsValue({
name: travelDay.name || '',
description: travelDay.description || ''
});
}
}, [travelDay, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
if (!travelDayUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/travel-days');
}
}
}, [travelDayUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_8__.updateTravelDayAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_8__.createTravelDayAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((react__WEBPACK_IMPORTED_MODULE_6___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement("h2", null, id ? 'ααααααααααααααΎααααΎα' : 'ααααααααααΈααααααααΎααααΎα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: travelDayUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/travel-days');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditTravelDayPage);
/***/ }),
/***/ "./src/shared/views/main/travel_day/index.tsx":
/*!****************************************************!*\
!*** ./src/shared/views/main/travel_day/index.tsx ***!
\****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../services/travel_day/core/actions */ "./src/services/travel_day/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_12__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var TravelDayList = function TravelDayList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(function (state) {
return state.travelDay;
}),
travelDays = _useSelector.travelDays,
travelDaysPending = _useSelector.travelDaysPending;
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchTravelDays)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_11__.travelDayDetailAction)(id));
navigate("/travel-days/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_11__.deleteTravelDayAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_11__.fetchTravelDays)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_12___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (travelDays || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1790\u17D2\u1784\u17C3\u1792\u17D2\u179C\u17BE\u178A\u17C6\u178E\u17BE\u179A"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/travel-days/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_7__["default"], {
visible: travelDaysPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TravelDayList);
/***/ }),
/***/ "./src/shared/views/main/user/form.tsx":
/*!*********************************************!*\
!*** ./src/shared/views/main/user/form.tsx ***!
\*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_modal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/modal */ "../../../node_modules/antd/lib/modal/index.js");
/* harmony import */ var antd_es_select__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/select */ "../../../node_modules/antd/lib/select/index.js");
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_upload__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/upload */ "../../../node_modules/antd/lib/upload/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_user_core_actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../services/user/core/actions */ "./src/services/user/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _shared_core_base_services__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../../../shared/core/base/services */ "./src/shared/core/base/services.ts");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/UploadOutlined.js");
/* harmony import */ var antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! antd/es/mentions */ "../../../node_modules/antd/lib/mentions/index.js");
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditUserPage = function NewEditUserPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_10__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_12__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_10__.useSelector)(function (state) {
return state.user;
}),
user = _useSelector.user,
registerErrorMessage = _useSelector.registerErrorMessage,
userUpdatePending = _useSelector.userUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_9__.useState)(''),
_useState2 = _slicedToArray(_useState, 2),
photoUrl = _useState2[0],
setPhotoUrl = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_9__.useState)(false),
_useState4 = _slicedToArray(_useState3, 2),
previewVisible = _useState4[0],
setPreviewVisible = _useState4[1];
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_9__.useState)(''),
_useState6 = _slicedToArray(_useState5, 2),
previewTitle = _useState6[0],
setPreviewTitle = _useState6[1];
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_9__.useState)(null),
_useState8 = _slicedToArray(_useState7, 2),
previewContent = _useState8[0],
setPreviewContent = _useState8[1];
var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_9__.useState)([]),
_useState0 = _slicedToArray(_useState9, 2),
photoList = _useState0[0],
setPhotoList = _useState0[1];
var _useSelector2 = (0,react_redux__WEBPACK_IMPORTED_MODULE_10__.useSelector)(function (state) {
return state;
}),
auth = _useSelector2.auth; // Get user role
var currentUser = auth.currentUser;
var isAdmin = (currentUser === null || currentUser === void 0 ? void 0 : currentUser.role) === "super_admin"; // Check if user is admin
var _useState1 = (0,react__WEBPACK_IMPORTED_MODULE_9__.useState)(false),
_useState10 = _slicedToArray(_useState1, 2),
isClick = _useState10[0],
setIsClick = _useState10[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_9__.useEffect)(function () {
if (id) {
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_11__.userDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_9__.useEffect)(function () {
if (id && user) {
form.setFieldsValue({
first_name: user.first_name || '',
last_name: user.last_name || '',
username: user.username || '',
email: user.email || '',
phone: user.phone || '',
role: user.role || '',
telegram_id: user.telegram_id || '',
photo_url: user.photo_url || '',
grad_type: user.grad_type || '',
status: user.status || ''
});
setPhotoUrl(user.photo_url || '');
}
}, [user, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_9__.useEffect)(function () {
if (!userUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_7__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_7__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/users');
}
}
}, [userUpdatePending, registerErrorMessage, id, isClick, navigate]);
// Common helper function for file uploads
var handleFileChange = /*#__PURE__*/function () {
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(file, fieldName, form) {
var formData, response, _t;
return _regenerator().w(function (_context) {
while (1) switch (_context.p = _context.n) {
case 0:
if (isAdmin) {
_context.n = 1;
break;
}
return _context.a(2);
case 1:
if (file) {
_context.n = 2;
break;
}
console.error("".concat(fieldName, " Upload Error: No file selected."));
return _context.a(2);
case 2:
_context.p = 2;
formData = new FormData();
formData.append("file", file);
_context.n = 3;
return (0,_shared_core_base_services__WEBPACK_IMPORTED_MODULE_13__.postUpload)(formData);
case 3:
response = _context.v;
if (response !== null && response !== void 0 && response.url) {
form.setFieldsValue(_defineProperty({}, fieldName, response.url));
}
_context.n = 5;
break;
case 4:
_context.p = 4;
_t = _context.v;
console.error("".concat(fieldName, " Upload Error:"), _t);
case 5:
return _context.a(2);
}
}, _callee, null, [[2, 4]]);
}));
return function handleFileChange(_x, _x2, _x3) {
return _ref.apply(this, arguments);
};
}();
var handlePhotoUploadChange = /*#__PURE__*/function () {
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(photoFile) {
return _regenerator().w(function (_context2) {
while (1) switch (_context2.n) {
case 0:
if (isAdmin) {
_context2.n = 1;
break;
}
return _context2.a(2);
case 1:
_context2.n = 2;
return handleFileChange(photoFile, "photo_url", form);
case 2:
return _context2.a(2);
}
}, _callee2);
}));
return function handlePhotoUploadChange(_x4) {
return _ref2.apply(this, arguments);
};
}();
var handleFileChangeNew = /*#__PURE__*/function () {
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(fileList, setFileList, fieldName) {
var updatedFileList, formData, response, doneFileList, errorFileList, _t2;
return _regenerator().w(function (_context3) {
while (1) switch (_context3.p = _context3.n) {
case 0:
// updatedFileList: mark all files as "uploading"
updatedFileList = fileList.map(function (file) {
return _objectSpread(_objectSpread({}, file), {}, {
status: "uploading" // inferred as the literal "uploading"
});
});
setFileList(updatedFileList);
_context3.p = 1;
formData = new FormData();
updatedFileList.forEach(function (file) {
if (file.originFileObj) {
formData.append("file", file.originFileObj);
}
});
_context3.n = 2;
return (0,_shared_core_base_services__WEBPACK_IMPORTED_MODULE_13__.postUpload)(formData);
case 2:
response = _context3.v;
if (response.url) {
form.setFieldsValue(_defineProperty({}, fieldName, response.url));
// doneFileList: mark all files as "done" on successful upload
doneFileList = updatedFileList.map(function (file) {
return _objectSpread(_objectSpread({}, file), {}, {
status: "done"
});
});
setFileList(doneFileList);
}
_context3.n = 4;
break;
case 3:
_context3.p = 3;
_t2 = _context3.v;
console.error("".concat(fieldName, " Upload Error:"), _t2);
// errorFileList: mark all files as "error" on failure
errorFileList = updatedFileList.map(function (file) {
return _objectSpread(_objectSpread({}, file), {}, {
status: "error"
});
});
setFileList(errorFileList);
case 4:
return _context3.a(2);
}
}, _callee3, null, [[1, 3]]);
}));
return function handleFileChangeNew(_x5, _x6, _x7) {
return _ref3.apply(this, arguments);
};
}();
var handlePhotoUploadChangeNew = /*#__PURE__*/function () {
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(_ref4) {
var fileList;
return _regenerator().w(function (_context4) {
while (1) switch (_context4.n) {
case 0:
fileList = _ref4.fileList;
_context4.n = 1;
return handleFileChangeNew(fileList, setPhotoList, "photo_url");
case 1:
return _context4.a(2);
}
}, _callee4);
}));
return function handlePhotoUploadChangeNew(_x8) {
return _ref5.apply(this, arguments);
};
}();
var beforeUpload = function beforeUpload(file) {
var isImage = file.type.startsWith("image/");
if (!isImage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_7__["default"].error("You can only upload image files (JPG/PNG)!");
}
return isImage;
};
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_11__.updateUserAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_11__.createUserAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
var handlePreview = function handlePreview(url, title) {
setPreviewTitle(title);
setPreviewContent(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement("div", {
style: {
width: '70%',
margin: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement("img", {
src: url,
alt: title,
style: {
width: '100%'
}
})));
setPreviewVisible(true);
};
var uploadButton = function uploadButton(url, setUrl, label, fieldName) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement("div", {
style: {
position: 'relative',
display: 'inline-block'
}
}, url ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement((react__WEBPACK_IMPORTED_MODULE_9___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement("div", {
style: {
cursor: 'pointer'
},
onClick: function onClick() {
return handlePreview(url, label);
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement("img", {
src: url,
alt: label,
style: {
width: '100%',
maxHeight: '300px',
borderRadius: '8px',
display: 'block'
}
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_6___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_14__["default"], null),
size: "small",
style: {
position: 'absolute',
bottom: 12,
right: 8,
background: '#1890ff',
color: '#fff'
},
onClick: function onClick() {
var _document$getElementB;
return (_document$getElementB = document.getElementById("upload-".concat(label))) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.click();
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement("input", {
id: "upload-".concat(label),
type: "file",
style: {
display: 'none'
},
onChange: function onChange(e) {
var file = e.target.files[0];
if (file) {
// You can add your logic here for different file handling
handlePhotoUploadChange(file);
setUrl(URL.createObjectURL(file));
}
}
})) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement((react__WEBPACK_IMPORTED_MODULE_9___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_upload__WEBPACK_IMPORTED_MODULE_5__["default"], {
listType: "picture",
fileList: photoList,
onChange: handlePhotoUploadChangeNew,
beforeUpload: beforeUpload,
showUploadList: {
showPreviewIcon: true,
showRemoveIcon: true
},
className: "w-full custom-upload"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_15__["default"], null))));
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement((react__WEBPACK_IMPORTED_MODULE_9___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement("h2", null, id ? 'ααααααα’αααααααΎααααΆαα' : 'ααααααααααΈα’αααααααΎααααΆαα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_2__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 6
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u179A\u17BC\u1794\u1790\u178F",
name: "photo_url"
}, uploadButton(photoUrl, setPhotoUrl, 'ααΌααα', 'photo_url'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 18
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_2__["default"], {
gutter: [12, 0]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u1793\u17B6\u1798\u1781\u17D2\u179B\u17BD\u1793",
name: "first_name",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u1793\u17B6\u1798\u178F\u17D2\u179A\u1780\u17BC\u179B",
name: "last_name",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7\u17A2\u17D2\u1793\u1780\u1794\u17D2\u179A\u17BE\u1794\u17D2\u179A\u17B6\u179F\u17CB",
name: "username",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null)))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_2__["default"], {
gutter: [12, 0]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u17A2\u17CA\u17B8\u1798\u17C2\u179B",
name: "email",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u179B\u17C1\u1781\u1791\u17BC\u179A\u179F\u17D0\u1796\u17D2\u1791",
name: "phone",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u178F\u17BD\u1793\u17B6\u1791\u17B8",
name: "role",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_1__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__.Option, {
value: "super_admin"
}, "Super admin"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__.Option, {
value: "admin"
}, "Admin"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__.Option, {
value: "user"
}, "User"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__.Option, {
value: "reporter"
}, "Reporter"))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_2__["default"], {
gutter: [12, 0]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u178F\u17C1\u179B\u17C1\u1780\u17D2\u179A\u17B6\u1798\u200B ID",
name: "telegram_id",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u1794\u17D2\u179A\u1797\u17C1\u1791",
name: "grad_type",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_1__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__.Option, {
value: "password"
}, "Password"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__.Option, {
value: "telegram"
}, "Telegram")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u179F\u17D2\u1790\u17B6\u1793\u1797\u17B6\u1796",
name: "status",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_1__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__.Option, {
value: "ACTIVE"
}, "Active"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_16__.Option, {
value: "DISABLE"
}, "Disable"))))), !id && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_2__["default"], {
gutter: [12, 0]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, {
label: "\u1796\u17B6\u1780\u17D2\u1799\u179F\u1798\u17D2\u1784\u17B6\u178F\u17CB",
name: "password",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_3__["default"], {
type: "password"
})))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_2__["default"], {
gutter: [12, 12],
justify: "end"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_6___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: userUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_4__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_8__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_6___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/users');
}
}, "Cancel")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9___default().createElement(antd_es_modal__WEBPACK_IMPORTED_MODULE_0__["default"], {
visible: previewVisible,
title: previewTitle,
footer: null,
onCancel: function onCancel() {
return setPreviewVisible(false);
}
}, previewContent)));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditUserPage);
/***/ }),
/***/ "./src/shared/views/main/user/index.tsx":
/*!**********************************************!*\
!*** ./src/shared/views/main/user/index.tsx ***!
\**********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var antd_es_image__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/image */ "../../../node_modules/antd/lib/image/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_user_core_actions__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../../services/user/core/actions */ "./src/services/user/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_13__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var UserList = function UserList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_7__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useSelector)(function (state) {
return state.user;
}),
users = _useSelector.users,
usersPending = _useSelector.usersPending;
(0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () {
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_12__.fetchUsers)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_12__.userDetailAction)(id));
navigate("/users/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_13___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_13___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_13___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_12__.deleteUserAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_13___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_12__.fetchUsers)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_13___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_13___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααΆααααα½α',
dataIndex: 'first_name',
key: 'first_name',
responsive: ['sm']
}, {
title: 'ααΆααααααΌα',
dataIndex: 'last_name',
key: 'last_name',
responsive: ['sm']
}, {
title: 'αααααα’αααααααΎααααΆαα',
dataIndex: 'username',
key: 'username',
responsive: ['sm']
}, {
title: 'α’ααΈααα',
dataIndex: 'email',
key: 'email',
responsive: ['sm']
}, {
title: 'αααααΌαααααα',
dataIndex: 'phone',
key: 'phone',
responsive: ['sm']
}, {
title: 'αα½ααΆααΈ',
dataIndex: 'role',
key: 'role',
responsive: ['sm']
}, {
title: 'ααααααααΆαβ ID',
dataIndex: 'telegram_id',
key: 'telegram_id',
responsive: ['sm']
}, {
title: 'ααΌααα',
dataIndex: 'photo_url',
key: 'photo_url',
responsive: ['sm'],
render: function render(text) {
return text ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_image__WEBPACK_IMPORTED_MODULE_4__["default"], {
width: 50,
src: text,
alt: "Photo",
style: {
borderRadius: 5,
border: '1px solid #ddd'
}
}) : 'No Image';
}
}, {
title: 'αααααα',
dataIndex: 'grad_type',
key: 'grad_type',
responsive: ['sm']
}, {
title: 'ααααΆαααΆα',
dataIndex: 'status',
key: 'status',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (users || []).filter(function (it) {
var _it$email, _it$username, _it$role, _it$first_name, _it$last_name, _it$phone, _it$telegram_id, _it$grad_type, _it$status;
var search = searchText.toLowerCase();
return ((_it$email = it.email) === null || _it$email === void 0 ? void 0 : _it$email.toLowerCase().includes(search)) || ((_it$username = it.username) === null || _it$username === void 0 ? void 0 : _it$username.toLowerCase().includes(search)) || ((_it$role = it.role) === null || _it$role === void 0 ? void 0 : _it$role.toLowerCase().includes(search)) || ((_it$first_name = it.first_name) === null || _it$first_name === void 0 ? void 0 : _it$first_name.toLowerCase().includes(search)) || ((_it$last_name = it.last_name) === null || _it$last_name === void 0 ? void 0 : _it$last_name.toLowerCase().includes(search)) || ((_it$phone = it.phone) === null || _it$phone === void 0 ? void 0 : _it$phone.toLowerCase().includes(search)) || ((_it$telegram_id = it.telegram_id) === null || _it$telegram_id === void 0 ? void 0 : _it$telegram_id.toLowerCase().includes(search)) || ((_it$grad_type = it.grad_type) === null || _it$grad_type === void 0 ? void 0 : _it$grad_type.toLowerCase().includes(search)) || ((_it$status = it.status) === null || _it$status === void 0 ? void 0 : _it$status.toLowerCase().includes(search));
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u17A2\u17D2\u1793\u1780\u1794\u17D2\u179A\u17BE\u1794\u17D2\u179A\u17B6\u179F\u17CB"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/users/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.first_name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_8__["default"], {
visible: usersPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (UserList);
/***/ }),
/***/ "./src/shared/views/main/user_attendance/form.tsx":
/*!********************************************************!*\
!*** ./src/shared/views/main/user_attendance/form.tsx ***!
\********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_typography__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/typography */ "../../../node_modules/antd/lib/typography/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../services/user_attendance/core/actions */ "./src/services/user_attendance/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! moment */ "../../../node_modules/moment/moment.js");
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_9__);
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditUserAttendancePage = function NewEditUserAttendancePage() {
var _userAttendance$volun, _userAttendance$volun2, _userAttendance$volun3, _userAttendance$volun4, _userAttendance$volun5, _userAttendance$volun6, _userAttendance$volun7, _userAttendance$volun8, _userAttendance$volun9, _userAttendance$volun0, _userAttendance$volun1, _userAttendance$volun10, _userAttendance$volun11, _userAttendance$volun12, _userAttendance$volun13, _userAttendance$volun14, _userAttendance$volun15;
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_8__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useSelector)(function (state) {
return state.userAttendance;
}),
userAttendance = _useSelector.userAttendance,
registerErrorMessage = _useSelector.registerErrorMessage,
userAttendanceUpdatePending = _useSelector.userAttendanceUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () {
if (id) {
dispatch((0,_services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_7__.userAttendanceDetailAction)(Number(id)));
}
}, [dispatch, id]);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((react__WEBPACK_IMPORTED_MODULE_5___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("h2", null, "User Attendance detail"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Code: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
color: userAttendance !== null && userAttendance !== void 0 && (_userAttendance$volun = userAttendance.volunteer) !== null && _userAttendance$volun !== void 0 && _userAttendance$volun.main_code ? 'green' : 'inherit'
}
}, (userAttendance === null || userAttendance === void 0 || (_userAttendance$volun2 = userAttendance.volunteer) === null || _userAttendance$volun2 === void 0 ? void 0 : _userAttendance$volun2.main_code) || (userAttendance === null || userAttendance === void 0 || (_userAttendance$volun3 = userAttendance.volunteer) === null || _userAttendance$volun3 === void 0 ? void 0 : _userAttendance$volun3.code))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Meeting Note: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 ? void 0 : userAttendance.meeting_note)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Meeting Time: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, moment__WEBPACK_IMPORTED_MODULE_9___default()(userAttendance === null || userAttendance === void 0 ? void 0 : userAttendance.meeting_time).format('MMMM Do YYYY, h:mm:ss a') || '-'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Photo: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("img", {
src: userAttendance === null || userAttendance === void 0 || (_userAttendance$volun4 = userAttendance.volunteer) === null || _userAttendance$volun4 === void 0 ? void 0 : _userAttendance$volun4.photo,
alt: "photo",
style: {
maxHeight: '100px',
borderRadius: '8px',
display: 'block'
}
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Name Khmer: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun5 = userAttendance.volunteer) === null || _userAttendance$volun5 === void 0 ? void 0 : _userAttendance$volun5.last_name_khmer, " ", userAttendance === null || userAttendance === void 0 || (_userAttendance$volun6 = userAttendance.volunteer) === null || _userAttendance$volun6 === void 0 ? void 0 : _userAttendance$volun6.first_name_khmer)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Name Latin: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun7 = userAttendance.volunteer) === null || _userAttendance$volun7 === void 0 ? void 0 : _userAttendance$volun7.last_name_latin, " ", userAttendance === null || userAttendance === void 0 || (_userAttendance$volun8 = userAttendance.volunteer) === null || _userAttendance$volun8 === void 0 ? void 0 : _userAttendance$volun8.first_name_latin))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Volunteer Status: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun9 = userAttendance.volunteer) === null || _userAttendance$volun9 === void 0 ? void 0 : _userAttendance$volun9.volunteer_status)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Gender: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun0 = userAttendance.volunteer) === null || _userAttendance$volun0 === void 0 ? void 0 : _userAttendance$volun0.gender)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Date of Birth: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun1 = userAttendance.volunteer) === null || _userAttendance$volun1 === void 0 ? void 0 : _userAttendance$volun1.date_of_birth))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Phone Number: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun10 = userAttendance.volunteer) === null || _userAttendance$volun10 === void 0 ? void 0 : _userAttendance$volun10.phone_number)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Email: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun11 = userAttendance.volunteer) === null || _userAttendance$volun11 === void 0 ? void 0 : _userAttendance$volun11.email)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 8
}, "Address: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_3__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun12 = userAttendance.volunteer) === null || _userAttendance$volun12 === void 0 ? void 0 : _userAttendance$volun12.phumi, " ", userAttendance === null || userAttendance === void 0 || (_userAttendance$volun13 = userAttendance.volunteer) === null || _userAttendance$volun13 === void 0 ? void 0 : _userAttendance$volun13.sangkat, " ", userAttendance === null || userAttendance === void 0 || (_userAttendance$volun14 = userAttendance.volunteer) === null || _userAttendance$volun14 === void 0 ? void 0 : _userAttendance$volun14.khan, " ", userAttendance === null || userAttendance === void 0 || (_userAttendance$volun15 = userAttendance.volunteer) === null || _userAttendance$volun15 === void 0 ? void 0 : _userAttendance$volun15.province_id))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_1__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_2__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_0___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/user-attendances');
}
}, "Cancel")))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditUserAttendancePage);
/***/ }),
/***/ "./src/shared/views/main/user_attendance/index.tsx":
/*!*********************************************************!*\
!*** ./src/shared/views/main/user_attendance/index.tsx ***!
\*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var antd_es_typography__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/typography */ "../../../node_modules/antd/lib/typography/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../services/user_attendance/core/actions */ "./src/services/user_attendance/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! moment */ "../../../node_modules/moment/moment.js");
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_12__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var UserAttendanceList = function UserAttendanceList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_7__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useSelector)(function (state) {
return state.userAttendance;
}),
userAttendances = _useSelector.userAttendances,
userAttendancesPending = _useSelector.userAttendancesPending;
(0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () {
dispatch((0,_services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_10__.fetchUserAttendances)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_10__.userAttendanceDetailAction)(id));
navigate("/user-attendances/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_11___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_11___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_11___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_10__.deleteUserAttendanceAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_11___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_10__.fetchUserAttendances)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_11___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_11___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'αααααΌα',
key: 'code',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
var _record$volunteer, _record$volunteer2, _record$volunteer3;
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "small"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
type: "link",
onClick: function onClick() {
return handleEdit(record.id);
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_4__["default"].Text, {
style: {
color: record !== null && record !== void 0 && (_record$volunteer = record.volunteer) !== null && _record$volunteer !== void 0 && _record$volunteer.main_code ? 'green' : 'inherit'
}
}, (record === null || record === void 0 || (_record$volunteer2 = record.volunteer) === null || _record$volunteer2 === void 0 ? void 0 : _record$volunteer2.main_code) || (record === null || record === void 0 || (_record$volunteer3 = record.volunteer) === null || _record$volunteer3 === void 0 ? void 0 : _record$volunteer3.code))));
}
}, {
title: 'αααααααααα',
dataIndex: 'nameKhmer',
key: 'nameKhmer',
responsive: ['sm']
}, {
title: 'αααααααΆααΆααΆα‘αΆααΆαα',
dataIndex: 'nameLatin',
key: 'nameLatin',
responsive: ['sm']
}, {
title: 'ααα',
dataIndex: 'gender',
key: 'gender',
responsive: ['sm']
}, {
title: 'αααααΌαααααα',
dataIndex: 'phoneNumber',
key: 'phoneNumber',
responsive: ['sm']
}, {
title: 'αααααα
αααΆααα·α
αα
ααααα»α',
dataIndex: 'meeting_note',
key: 'meeting_note',
responsive: ['sm']
}, {
title: 'αααααααΆααααα»α',
dataIndex: 'meeting_time',
key: 'meeting_time',
responsive: ['sm'],
render: function render(_, record) {
return moment__WEBPACK_IMPORTED_MODULE_12___default()(record.meeting_time).format('MMMM Do YYYY, h:mm:ss a') || '-';
}
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (userAttendances || []).filter(function (it) {
var _it$meeting_note, _it$meeting_time, _it$volunteer, _it$volunteer2, _it$volunteer3, _it$volunteer4, _it$volunteer5, _it$volunteer6, _it$volunteer7, _it$volunteer8;
var search = searchText.toLowerCase();
return ((_it$meeting_note = it.meeting_note) === null || _it$meeting_note === void 0 ? void 0 : _it$meeting_note.toLowerCase().includes(search)) || ((_it$meeting_time = it.meeting_time) === null || _it$meeting_time === void 0 ? void 0 : _it$meeting_time.toLowerCase().includes(search)) || ((_it$volunteer = it.volunteer) === null || _it$volunteer === void 0 || (_it$volunteer = _it$volunteer.code) === null || _it$volunteer === void 0 ? void 0 : _it$volunteer.toLowerCase().includes(search)) || ((_it$volunteer2 = it.volunteer) === null || _it$volunteer2 === void 0 || (_it$volunteer2 = _it$volunteer2.main_code) === null || _it$volunteer2 === void 0 ? void 0 : _it$volunteer2.toLowerCase().includes(search)) || ((_it$volunteer3 = it.volunteer) === null || _it$volunteer3 === void 0 || (_it$volunteer3 = _it$volunteer3.last_name_khmer) === null || _it$volunteer3 === void 0 ? void 0 : _it$volunteer3.toLowerCase().includes(search)) || ((_it$volunteer4 = it.volunteer) === null || _it$volunteer4 === void 0 || (_it$volunteer4 = _it$volunteer4.first_name_khmer) === null || _it$volunteer4 === void 0 ? void 0 : _it$volunteer4.toLowerCase().includes(search)) || ((_it$volunteer5 = it.volunteer) === null || _it$volunteer5 === void 0 || (_it$volunteer5 = _it$volunteer5.last_name_latin) === null || _it$volunteer5 === void 0 ? void 0 : _it$volunteer5.toLowerCase().includes(search)) || ((_it$volunteer6 = it.volunteer) === null || _it$volunteer6 === void 0 || (_it$volunteer6 = _it$volunteer6.first_name_latin) === null || _it$volunteer6 === void 0 ? void 0 : _it$volunteer6.toLowerCase().includes(search)) || ((_it$volunteer7 = it.volunteer) === null || _it$volunteer7 === void 0 || (_it$volunteer7 = _it$volunteer7.gender) === null || _it$volunteer7 === void 0 ? void 0 : _it$volunteer7.toLowerCase().includes(search)) || ((_it$volunteer8 = it.volunteer) === null || _it$volunteer8 === void 0 || (_it$volunteer8 = _it$volunteer8.phone_number) === null || _it$volunteer8 === void 0 ? void 0 : _it$volunteer8.toLowerCase().includes(search));
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("h2", null, "User Attendance List"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_2__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_1__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_3___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_0__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
var _it$volunteer9, _it$volunteer0, _it$volunteer1, _it$volunteer10, _it$volunteer11, _it$volunteer12;
return _objectSpread({
key: it.id,
index: index + 1,
nameKhmer: "".concat(it === null || it === void 0 || (_it$volunteer9 = it.volunteer) === null || _it$volunteer9 === void 0 ? void 0 : _it$volunteer9.last_name_khmer, " ").concat(it === null || it === void 0 || (_it$volunteer0 = it.volunteer) === null || _it$volunteer0 === void 0 ? void 0 : _it$volunteer0.first_name_khmer),
nameLatin: "".concat(it === null || it === void 0 || (_it$volunteer1 = it.volunteer) === null || _it$volunteer1 === void 0 ? void 0 : _it$volunteer1.last_name_latin, " ").concat(it === null || it === void 0 || (_it$volunteer10 = it.volunteer) === null || _it$volunteer10 === void 0 ? void 0 : _it$volunteer10.first_name_latin),
gender: it === null || it === void 0 || (_it$volunteer11 = it.volunteer) === null || _it$volunteer11 === void 0 ? void 0 : _it$volunteer11.gender,
phoneNumber: it === null || it === void 0 || (_it$volunteer12 = it.volunteer) === null || _it$volunteer12 === void 0 ? void 0 : _it$volunteer12.phone_number
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_8__["default"], {
visible: userAttendancesPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (UserAttendanceList);
/***/ })
}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianMvbWFpbi1zcmNfc2hhcmVkX3ZpZXdzX21haW5faS52b2x1bnRlZXJhcGkuMTUzZmEyMGY5MzJiM2E3ODhkNDMuYnVuZGxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQW1EO0FBR0k7QUFFZ0c7QUFDeEc7QUFDRDtBQUU5QyxJQUFNVSx5QkFBbUMsR0FBRyxTQUF0Q0EseUJBQW1DQSxDQUFBLEVBQVM7RUFDaEQsSUFBTUMsUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw4REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQUssWUFBQSxHQUE4RlQsd0RBQVcsQ0FDdkcsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUNDLGNBQWM7SUFBQSxDQUM1QyxDQUFDO0lBRk1DLGVBQWUsR0FBQUgsWUFBQSxDQUFmRyxlQUFlO0lBQUVELGNBQWMsR0FBQUYsWUFBQSxDQUFkRSxjQUFjO0lBQUVFLG9CQUFvQixHQUFBSixZQUFBLENBQXBCSSxvQkFBb0I7SUFBRUMsMkJBQTJCLEdBQUFMLFlBQUEsQ0FBM0JLLDJCQUEyQjtFQUd6RixJQUFBQyxhQUFBLEdBQWVDLG9EQUFBLENBQUtDLE9BQU8sQ0FBQyxDQUFDO0lBQUFDLGNBQUEsR0FBQUMsY0FBQSxDQUFBSixhQUFBO0lBQXRCSyxJQUFJLEdBQUFGLGNBQUE7RUFFWCxJQUFNRyxZQUFZLEdBQUcsSUFBSUMsZUFBZSxDQUFDQyxRQUFRLENBQUNDLE1BQU0sQ0FBQztFQUN6RCxJQUFNQyxFQUFFLEdBQUdKLFlBQVksQ0FBQ0ssR0FBRyxDQUFDLElBQUksQ0FBQztFQUVqQyxJQUFBQyxTQUFBLEdBQThCN0IsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQThCLFVBQUEsR0FBQVQsY0FBQSxDQUFBUSxTQUFBO0lBQXRDRSxPQUFPLEdBQUFELFVBQUE7SUFBRUUsVUFBVSxHQUFBRixVQUFBOztFQUUxQjtFQUNBL0IsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSTRCLEVBQUUsRUFBRTtNQUNObEIsUUFBUSxDQUFDTCxrR0FBMEIsQ0FBQzZCLE1BQU0sQ0FBQ04sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDLE1BQU07TUFDTEwsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEI7RUFDRixDQUFDLEVBQUUsQ0FBQ3pCLFFBQVEsRUFBRWtCLEVBQUUsRUFBRUwsSUFBSSxDQUFDLENBQUM7O0VBRXhCO0VBQ0F2QixnREFBUyxDQUFDLFlBQU07SUFDZCxJQUFJNEIsRUFBRSxJQUFJZCxjQUFjLEVBQUU7TUFDeEJTLElBQUksQ0FBQ2EsY0FBYyxDQUFDO1FBQ2xCQyxJQUFJLEVBQUV2QixjQUFjLENBQUN1QixJQUFJLElBQUksRUFBRTtRQUMvQkMsV0FBVyxFQUFFeEIsY0FBYyxDQUFDd0IsV0FBVyxJQUFJLEVBQUU7UUFDN0NDLFNBQVMsRUFBRXpCLGNBQWMsQ0FBQ3lCLFNBQVMsSUFBSTtNQUN6QyxDQUFDLENBQUM7SUFDSjtFQUNGLENBQUMsRUFBRSxDQUFDekIsY0FBYyxFQUFFUyxJQUFJLEVBQUVLLEVBQUUsQ0FBQyxDQUFDOztFQUU5QjtFQUNBNUIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDaUIsMkJBQTJCLElBQUllLE9BQU8sRUFBRTtNQUMzQyxJQUFJaEIsb0JBQW9CLEVBQUU7UUFDeEJ3Qix1REFBQSxDQUFRQyxLQUFLLENBQUN6QixvQkFBb0IsQ0FBQztNQUNyQyxDQUFDLE1BQU07UUFDTHdCLHVEQUFBLENBQVFFLE9BQU8sQ0FBQ2QsRUFBRSxHQUFHLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ3ZFakIsUUFBUSxDQUFDLG1CQUFtQixDQUFDO01BQy9CO0lBQ0Y7RUFDRixDQUFDLEVBQUUsQ0FBQ00sMkJBQTJCLEVBQUVELG9CQUFvQixFQUFFWSxFQUFFLEVBQUVJLE9BQU8sRUFBRXJCLFFBQVEsQ0FBQyxDQUFDOztFQUU5RTtFQUNBLElBQU1nQyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUMsTUFBc0IsRUFBSztJQUMzQyxJQUFJaEIsRUFBRSxFQUFFO01BQ05sQixRQUFRLENBQUNKLGtHQUEwQixDQUFDO1FBQUVzQixFQUFFLEVBQUVNLE1BQU0sQ0FBQ04sRUFBRSxDQUFDO1FBQUVpQixJQUFJLEVBQUVEO01BQU8sQ0FBQyxDQUFDLENBQUM7TUFDdEVyQixJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDO0lBQ3BCLENBQUMsTUFBTTtNQUNMekIsUUFBUSxDQUFDTixrR0FBMEIsQ0FBQztRQUFFeUMsSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQ3REckIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEI7SUFDQUYsVUFBVSxDQUFDLElBQUksQ0FBQztFQUNsQixDQUFDO0VBRUQsb0JBQ0VsQywwREFBQSxDQUFBQSx1REFBQSxxQkFDRUEsMERBQUEsYUFBSzZCLEVBQUUsR0FBRyx5QkFBeUIsR0FBRyw2QkFBa0MsQ0FBQyxlQUN6RTdCLDBEQUFBLENBQUFvQixvREFBQTtJQUFNSSxJQUFJLEVBQUVBLElBQUs7SUFBQ3lCLE1BQU0sRUFBQyxVQUFVO0lBQUNMLFFBQVEsRUFBRUEsUUFBUztJQUFDTSxLQUFLLEVBQUU7TUFBRUMsUUFBUSxFQUFFLE1BQU07TUFBRUMsTUFBTSxFQUFFO0lBQVM7RUFBRSxnQkFDcEdwRCwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFBRSxnQkFDcEJ0RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUcsZ0JBQ1p4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUk7SUFBQ0MsS0FBSyxFQUFDLGdDQUFPO0lBQUNwQixJQUFJLEVBQUMsTUFBTTtJQUFDcUIsS0FBSyxFQUFFLENBQUM7TUFBRUMsUUFBUSxFQUFFLElBQUk7TUFBRUMsT0FBTyxFQUFFO0lBQXNCLENBQUM7RUFBRSxnQkFDL0Y3RCwwREFBQSxDQUFBOEQscURBQUEsTUFBUSxDQUNDLENBQ1IsQ0FBQyxlQUVOOUQsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFHLGdCQUNaeEQsMERBQUEsQ0FBQW9CLG9EQUFBLENBQU1xQyxJQUFJO0lBQUNDLEtBQUssRUFBQyxhQUFhO0lBQUNwQixJQUFJLEVBQUM7RUFBVyxnQkFDN0N0QywwREFBQSxDQUFBK0Qsc0RBQUE7SUFBUUMsVUFBVTtJQUFDQyxXQUFXLEVBQUM7RUFBb0IsR0FDaERDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDbkQsZUFBZSxDQUFDLElBQUlBLGVBQWUsQ0FBQ29ELEdBQUcsQ0FBQyxVQUFDQyxJQUFJO0lBQUEsb0JBQzFEckUsMERBQUEsQ0FBQ3NFLE1BQU07TUFBQ0MsR0FBRyxFQUFFRixJQUFJLENBQUN4QyxFQUFHO01BQUMyQyxLQUFLLEVBQUVILElBQUksQ0FBQ3hDO0lBQUcsR0FBRXdDLElBQUksQ0FBQy9CLElBQWEsQ0FBQztFQUFBLENBQzNELENBQ0ssQ0FDQyxDQUNSLENBQUMsZUFFTnRDLDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRyxnQkFDWnhELDBEQUFBLENBQUFvQixvREFBQSxDQUFNcUMsSUFBSTtJQUFDQyxLQUFLLEVBQUMsaURBQW1CO0lBQUNwQixJQUFJLEVBQUM7RUFBYSxnQkFDckR0QywwREFBQSxDQUFDUywrREFBUTtJQUFDZ0UsSUFBSSxFQUFFO0VBQUUsQ0FBRSxDQUNYLENBQ1IsQ0FDRixDQUFDLGVBQ056RSwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFBRSxnQkFDcEJ0RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUkscUJBQ1J6RCwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUMsSUFBSSxFQUFDLFNBQVM7SUFBQ0MsS0FBSztJQUFDQyxRQUFRLEVBQUMsUUFBUTtJQUFDQyxPQUFPLEVBQUU1RDtFQUE0QixHQUFDLFFBRTdFLENBQ0MsQ0FDUixDQUFDLGVBQ05sQiwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUkscUJBQ1J6RCwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUcsUUFBUSxFQUFDLFFBQVE7SUFBQ0UsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRbkUsUUFBUSxDQUFDLG1CQUFtQixDQUFDO0lBQUE7RUFBQyxHQUFDLFFBRWhFLENBQ0MsQ0FDUixDQUNGLENBQ0QsQ0FDTixDQUFDO0FBRVAsQ0FBQztBQUVELGlFQUFlRix5QkFBeUIsRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNsSFc7QUFFSTtBQUVSO0FBQ3VCO0FBQ1M7QUFDa0U7QUFDbEg7QUFFL0IsSUFBTTZFLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUEsRUFBUztFQUMvQixJQUFNNUUsUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQXVCLFNBQUEsR0FBd0M3QiwrQ0FBUSxDQUFNLEVBQUUsQ0FBQztJQUFBOEIsVUFBQSxHQUFBVCxjQUFBLENBQUFRLFNBQUE7SUFBbER5RCxZQUFZLEdBQUF4RCxVQUFBO0lBQUV5RCxlQUFlLEdBQUF6RCxVQUFBO0VBQ3BDLElBQUEwRCxVQUFBLEdBQW9DeEYsK0NBQVEsQ0FBQyxFQUFFLENBQUM7SUFBQXlGLFVBQUEsR0FBQXBFLGNBQUEsQ0FBQW1FLFVBQUE7SUFBekNFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQTlFLFlBQUEsR0FBb0RULHdEQUFXLENBQUMsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUNDLGNBQWM7SUFBQSxFQUFDO0lBQW5HQyxlQUFlLEdBQUFILFlBQUEsQ0FBZkcsZUFBZTtJQUFFOEUsc0JBQXNCLEdBQUFqRixZQUFBLENBQXRCaUYsc0JBQXNCO0VBRS9DN0YsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2RVLFFBQVEsQ0FBQzBFLDZGQUFvQixDQUFDLENBQUMsQ0FBQztFQUNsQyxDQUFDLEVBQUUsQ0FBQzFFLFFBQVEsQ0FBQyxDQUFDO0VBRWQsSUFBTW9GLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJbEUsRUFBTyxFQUFLO0lBQzlCbEIsUUFBUSxDQUFDTCxtR0FBMEIsQ0FBQ3VCLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDakIsUUFBUSw4QkFBQW9GLE1BQUEsQ0FBOEJuRSxFQUFFLENBQUUsQ0FBQztFQUM3QyxDQUFDO0VBRUQsSUFBTW9FLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJcEUsRUFBTyxFQUFLO0lBQ2hDeUQsd0RBQVMsQ0FBQztNQUNSYSxLQUFLLEVBQUUsZUFBZTtNQUN0QkMsSUFBSSxFQUFFLG9DQUFvQztNQUMxQ0MsSUFBSSxFQUFFLFNBQVM7TUFDZkMsaUJBQWlCLEVBQUUsS0FBSztNQUN4QkMsZ0JBQWdCLEVBQUUsS0FBSztNQUN2QkMsSUFBSSwyWEFLSDtNQUNEQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFRO1FBQUEsSUFBQUMsY0FBQSxFQUFBQyxlQUFBO1FBQ2IsSUFBTUMsYUFBYSxJQUFBRixjQUFBLEdBQUdwQiw0REFBYSxDQUFDLENBQUMsY0FBQW9CLGNBQUEsdUJBQWZBLGNBQUEsQ0FBaUJJLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztRQUN2RSxJQUFNQyxZQUFZLElBQUFKLGVBQUEsR0FBR3JCLDREQUFhLENBQUMsQ0FBQyxjQUFBcUIsZUFBQSx1QkFBZkEsZUFBQSxDQUFpQkcsYUFBYSxDQUFDLGdCQUFnQixDQUFDO1FBRXJFRixhQUFhLGFBQWJBLGFBQWEsZUFBYkEsYUFBYSxDQUFFSSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBTTtVQUM3Q3JHLFFBQVEsQ0FBQ3lFLG1HQUEwQixDQUFDdkQsRUFBRSxDQUFDLENBQUMsQ0FBQ29GLElBQUksQ0FBQyxZQUFNO1lBQ2xEM0Isd0RBQVMsQ0FBQyxVQUFVLEVBQUUsNEJBQTRCLEVBQUUsU0FBUyxDQUFDO1lBQzlEM0UsUUFBUSxDQUFDMEUsNkZBQW9CLENBQUMsQ0FBQyxDQUFDO1VBQ2xDLENBQUMsQ0FBQztVQUNGQyx5REFBVSxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUM7UUFFRnlCLFlBQVksYUFBWkEsWUFBWSxlQUFaQSxZQUFZLENBQUVDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFNO1VBQzVDMUIseURBQVUsQ0FBQyxDQUFDO1FBQ2QsQ0FBQyxDQUFDO01BQ0o7SUFDRixDQUFDLENBQUM7RUFDSixDQUFDO0VBRUQsSUFBTTZCLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBLEVBQVM7SUFDekI7SUFDQXRCLGFBQWEsQ0FBQ0QsVUFBVSxDQUFDd0IsSUFBSSxDQUFDLENBQUMsQ0FBQztFQUNsQyxDQUFDO0VBRUQsSUFBTUMsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUEsRUFBUztJQUN4QjtJQUNBeEIsYUFBYSxDQUFDLEVBQUUsQ0FBQztFQUNuQixDQUFDO0VBRUQsSUFBTXlCLE9BQU8sR0FBRyxDQUNkO0lBQUVuQixLQUFLLEVBQUUsUUFBUTtJQUFFb0IsU0FBUyxFQUFFLE9BQU87SUFBRWhELEdBQUcsRUFBRSxPQUFPO0lBQUVpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUN6RTtJQUFFckIsS0FBSyxFQUFFLE9BQU87SUFBRW9CLFNBQVMsRUFBRSxNQUFNO0lBQUVoRCxHQUFHLEVBQUUsTUFBTTtJQUFFaUQsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDdEU7SUFBRXJCLEtBQUssRUFBRSxRQUFRO0lBQUVvQixTQUFTLEVBQUUsYUFBYTtJQUFFaEQsR0FBRyxFQUFFLGFBQWE7SUFBRWlELFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3JGO0lBQ0VyQixLQUFLLEVBQUUsUUFBUTtJQUNmNUIsR0FBRyxFQUFFLFFBQVE7SUFDYmlELFVBQVUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztJQUNwQ0MsTUFBTSxFQUFFLFNBQVJBLE1BQU1BLENBQUdDLENBQVMsRUFBRUMsTUFBVztNQUFBLG9CQUM3QjNILDBEQUFBLENBQUE0SCxxREFBQTtRQUFPQyxJQUFJLEVBQUM7TUFBUSxnQkFDbEI3SCwwREFBQSxDQUFBMEUsdURBQUE7UUFBUTJCLElBQUksZUFBRXJHLDBEQUFBLENBQUNrRix5REFBWSxNQUFFLENBQUU7UUFBQ1AsSUFBSSxFQUFDLFNBQVM7UUFBQ0ksT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7VUFBQSxPQUFRZ0IsVUFBVSxDQUFDNEIsTUFBTSxDQUFDOUYsRUFBRSxDQUFDO1FBQUE7TUFBQyxDQUFFLENBQUMsZUFDdkY3QiwwREFBQSxDQUFBMEUsdURBQUE7UUFBUTJCLElBQUksZUFBRXJHLDBEQUFBLENBQUNpRix5REFBYyxNQUFFLENBQUU7UUFBQzZDLE1BQU07UUFBQy9DLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUWtCLFlBQVksQ0FBQzBCLE1BQU0sQ0FBQzlGLEVBQUUsQ0FBQztRQUFBO01BQUMsQ0FBRSxDQUM3RSxDQUFDO0lBQUE7RUFFWixDQUFDLENBQ0Y7RUFFRCxJQUFNa0csWUFBWSxHQUFHLENBQUMvRyxlQUFlLElBQUksRUFBRSxFQUFFZ0gsTUFBTSxDQUFDLFVBQUNDLEVBQUU7SUFBQSxJQUFBQyxRQUFBO0lBQUEsUUFBQUEsUUFBQSxHQUNyREQsRUFBRSxDQUFDM0YsSUFBSSxjQUFBNEYsUUFBQSx1QkFBUEEsUUFBQSxDQUFTQyxXQUFXLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUN4QyxVQUFVLENBQUN1QyxXQUFXLENBQUMsQ0FBQyxDQUFDO0VBQUEsQ0FDM0QsQ0FBQztFQUVELG9CQUNFbkksMERBQUE7SUFBS2tELEtBQUssRUFBRTtNQUFFbUYsU0FBUyxFQUFFO0lBQU87RUFBRSxnQkFDaENySSwwREFBQSxhQUFJLHNJQUEwQixDQUFDLGVBQy9CQSwwREFBQTtJQUNFa0QsS0FBSyxFQUFFO01BQ0xvRixPQUFPLEVBQUUsTUFBTTtNQUNmQyxjQUFjLEVBQUUsZUFBZTtNQUMvQkMsT0FBTyxFQUFFLE1BQU07TUFDZkMsVUFBVSxFQUFFLFNBQVM7TUFDckJDLFlBQVksRUFBRSxNQUFNO01BQ3BCQyxRQUFRLEVBQUU7SUFDWjtFQUFFLGdCQUVGM0ksMERBQUEsQ0FBQTRILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1Q1SSwwREFBQSxlQUFNLDRCQUFNLEVBQUMsQ0FBQStILFlBQVksYUFBWkEsWUFBWSx1QkFBWkEsWUFBWSxDQUFFYyxNQUFNLEtBQUksQ0FBUSxDQUFDLGVBQzlDN0ksMERBQUEsQ0FBQThELHFEQUFBO0lBQ0VHLFdBQVcsRUFBQywrQ0FBWTtJQUN4QmYsS0FBSyxFQUFFO01BQUU0RixLQUFLLEVBQUU7SUFBSSxDQUFFO0lBQ3RCdEUsS0FBSyxFQUFFb0IsVUFBVztJQUNsQm1ELFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHQyxDQUFDO01BQUEsT0FBS25ELGFBQWEsQ0FBQ21ELENBQUMsQ0FBQ0MsTUFBTSxDQUFDekUsS0FBSyxDQUFDO0lBQUE7RUFBQyxDQUNoRCxDQUFDLGVBQ0Z4RSwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUssT0FBTyxFQUFFb0MsWUFBYTtJQUFDeEMsSUFBSSxFQUFDO0VBQVMsR0FBQyxzQ0FBYyxDQUFDLGVBQzdEM0UsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFLLE9BQU8sRUFBRXNDO0VBQVksR0FBQyxvRUFBbUIsQ0FDNUMsQ0FBQyxlQUNSckgsMERBQUEsQ0FBQTRILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1Q1SSwwREFBQSxDQUFBMEUsdURBQUE7SUFBUTJCLElBQUksZUFBRXJHLDBEQUFBLENBQUNtRiwwREFBWSxNQUFFLENBQUU7SUFBQ1IsSUFBSSxFQUFDLFNBQVM7SUFBQ0ksT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRbkUsUUFBUSx5QkFBeUIsQ0FBQztJQUFBO0VBQUMsR0FBQyw4REFBa0IsQ0FDL0csQ0FDSixDQUFDLGVBQ05aLDBEQUFBLENBQUFrSixxREFBQTtJQUNFQyxZQUFZLEVBQUU7TUFDWnhFLElBQUksRUFBRSxVQUFVO01BQ2hCb0UsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdyQixDQUFDLEVBQUVsQyxZQUFZO1FBQUEsT0FBS0MsZUFBZSxDQUFDRCxZQUFZLENBQUM7TUFBQTtJQUM5RCxDQUFFO0lBQ0Y4QixPQUFPLEVBQUVBLE9BQVE7SUFDakI4QixVQUFVLEVBQUVyQixZQUFZLENBQUMzRCxHQUFHLENBQUMsVUFBQzZELEVBQUUsRUFBRW9CLEtBQUs7TUFBQSxPQUFBQyxhQUFBO1FBQ3JDL0UsR0FBRyxFQUFFMEQsRUFBRSxDQUFDcEcsRUFBRTtRQUNWd0gsS0FBSyxFQUFFQSxLQUFLLEdBQUcsQ0FBQztRQUNoQi9HLElBQUksRUFBRTJGLEVBQUUsQ0FBQzNGO01BQUksR0FDVjJGLEVBQUU7SUFBQSxDQUNMLENBQUU7SUFDSnNCLFVBQVUsRUFBRTtNQUFFQyxRQUFRLEVBQUUsRUFBRTtNQUFFQyxlQUFlLEVBQUU7SUFBSyxDQUFFO0lBQ3BEQyxNQUFNLEVBQUU7TUFBRUMsQ0FBQyxFQUFFO0lBQWM7RUFBRSxDQUM5QixDQUFDLGVBQ0YzSiwwREFBQSxDQUFDZ0YseUVBQWE7SUFBQzRFLE9BQU8sRUFBRTlEO0VBQXVCLENBQUUsQ0FDOUMsQ0FBQztBQUVWLENBQUM7QUFFRCxpRUFBZVAsa0JBQWtCLEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3pJa0I7QUFHSTtBQUV1RTtBQUMvRTtBQUNEO0FBRTlDLElBQU15RSxtQkFBNkIsR0FBRyxTQUFoQ0EsbUJBQTZCQSxDQUFBLEVBQVM7RUFDMUMsSUFBTXJKLFFBQVEsR0FBR1Isd0RBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQU1TLFFBQVEsR0FBR0osNkRBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQUFLLFlBQUEsR0FBa0VULHdEQUFXLENBQzNFLFVBQUNVLEtBQWdCO01BQUEsT0FBS0EsS0FBSyxDQUFDbUosUUFBUTtJQUFBLENBQ3RDLENBQUM7SUFGT0EsUUFBUSxHQUFBcEosWUFBQSxDQUFSb0osUUFBUTtJQUFFaEosb0JBQW9CLEdBQUFKLFlBQUEsQ0FBcEJJLG9CQUFvQjtJQUFFaUoscUJBQXFCLEdBQUFySixZQUFBLENBQXJCcUoscUJBQXFCO0VBRzdELElBQUEvSSxhQUFBLEdBQWVDLG9EQUFBLENBQUtDLE9BQU8sQ0FBQyxDQUFDO0lBQUFDLGNBQUEsR0FBQUMsY0FBQSxDQUFBSixhQUFBO0lBQXRCSyxJQUFJLEdBQUFGLGNBQUE7RUFFWCxJQUFNRyxZQUFZLEdBQUcsSUFBSUMsZUFBZSxDQUFDQyxRQUFRLENBQUNDLE1BQU0sQ0FBQztFQUN6RCxJQUFNQyxFQUFFLEdBQUdKLFlBQVksQ0FBQ0ssR0FBRyxDQUFDLElBQUksQ0FBQztFQUVqQyxJQUFBQyxTQUFBLEdBQThCN0IsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQThCLFVBQUEsR0FBQVQsY0FBQSxDQUFBUSxTQUFBO0lBQXRDRSxPQUFPLEdBQUFELFVBQUE7SUFBRUUsVUFBVSxHQUFBRixVQUFBOztFQUUxQjtFQUNBL0IsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSTRCLEVBQUUsRUFBRTtNQUNObEIsUUFBUSxDQUFDbUoscUZBQW9CLENBQUMzSCxNQUFNLENBQUNOLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQyxNQUFNO01BQ0xMLElBQUksQ0FBQ1ksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCO0VBQ0YsQ0FBQyxFQUFFLENBQUN6QixRQUFRLEVBQUVrQixFQUFFLEVBQUVMLElBQUksQ0FBQyxDQUFDOztFQUV4QjtFQUNBdkIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSTRCLEVBQUUsSUFBSW9JLFFBQVEsRUFBRTtNQUNsQnpJLElBQUksQ0FBQ2EsY0FBYyxDQUFDO1FBQ2xCQyxJQUFJLEVBQUUySCxRQUFRLENBQUMzSCxJQUFJLElBQUksRUFBRTtRQUN6QkMsV0FBVyxFQUFFMEgsUUFBUSxDQUFDMUgsV0FBVyxJQUFJO01BQ3ZDLENBQUMsQ0FBQztJQUNKO0VBQ0YsQ0FBQyxFQUFFLENBQUMwSCxRQUFRLEVBQUV6SSxJQUFJLEVBQUVLLEVBQUUsQ0FBQyxDQUFDOztFQUV4QjtFQUNBNUIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDaUsscUJBQXFCLElBQUlqSSxPQUFPLEVBQUU7TUFDckMsSUFBSWhCLG9CQUFvQixFQUFFO1FBQ3hCd0IsdURBQUEsQ0FBUUMsS0FBSyxDQUFDekIsb0JBQW9CLENBQUM7TUFDckMsQ0FBQyxNQUFNO1FBQ0x3Qix1REFBQSxDQUFRRSxPQUFPLENBQUNkLEVBQUUsR0FBRyx1QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztRQUN2RWpCLFFBQVEsQ0FBQyxZQUFZLENBQUM7TUFDeEI7SUFDRjtFQUNGLENBQUMsRUFBRSxDQUFDc0oscUJBQXFCLEVBQUVqSixvQkFBb0IsRUFBRVksRUFBRSxFQUFFSSxPQUFPLEVBQUVyQixRQUFRLENBQUMsQ0FBQzs7RUFFeEU7RUFDQSxJQUFNZ0MsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUlDLE1BQWdCLEVBQUs7SUFDckMsSUFBSWhCLEVBQUUsRUFBRTtNQUNObEIsUUFBUSxDQUFDb0oscUZBQW9CLENBQUM7UUFBRWxJLEVBQUUsRUFBRU0sTUFBTSxDQUFDTixFQUFFLENBQUM7UUFBRWlCLElBQUksRUFBRUQ7TUFBTyxDQUFDLENBQUMsQ0FBQztNQUNoRXJCLElBQUksQ0FBQ1ksV0FBVyxDQUFDLENBQUM7SUFDcEIsQ0FBQyxNQUFNO01BQ0x6QixRQUFRLENBQUNrSixxRkFBb0IsQ0FBQztRQUFFL0csSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQ2hEckIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEI7SUFDQUYsVUFBVSxDQUFDLElBQUksQ0FBQztFQUNsQixDQUFDO0VBRUQsb0JBQ0VsQywwREFBQSxDQUFBQSx1REFBQSxxQkFDRUEsMERBQUEsYUFBSzZCLEVBQUUsR0FBRyxZQUFZLEdBQUcsZ0JBQXFCLENBQUMsZUFDL0M3QiwwREFBQSxDQUFBb0Isb0RBQUE7SUFBTUksSUFBSSxFQUFFQSxJQUFLO0lBQUN5QixNQUFNLEVBQUMsVUFBVTtJQUFDTCxRQUFRLEVBQUVBLFFBQVM7SUFBQ00sS0FBSyxFQUFFO01BQUVDLFFBQVEsRUFBRSxNQUFNO01BQUVDLE1BQU0sRUFBRTtJQUFTO0VBQUUsZ0JBQ3BHcEQsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0VBQUUsZ0JBQ3BCdEQsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFHLGdCQUNaeEQsMERBQUEsQ0FBQW9CLG9EQUFBLENBQU1xQyxJQUFJO0lBQUNDLEtBQUssRUFBQyxnQ0FBTztJQUFDcEIsSUFBSSxFQUFDLE1BQU07SUFBQ3FCLEtBQUssRUFBRSxDQUFDO01BQUVDLFFBQVEsRUFBRSxJQUFJO01BQUVDLE9BQU8sRUFBRTtJQUFzQixDQUFDO0VBQUUsZ0JBQy9GN0QsMERBQUEsQ0FBQThELHFEQUFBLE1BQVEsQ0FDQyxDQUNSLENBQUMsZUFDTjlELDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRyxnQkFDWnhELDBEQUFBLENBQUFvQixvREFBQSxDQUFNcUMsSUFBSTtJQUFDQyxLQUFLLEVBQUMsc0NBQVE7SUFBQ3BCLElBQUksRUFBQztFQUFhLGdCQUMxQ3RDLDBEQUFBLENBQUNTLCtEQUFRO0lBQUNnRSxJQUFJLEVBQUU7RUFBRSxDQUFFLENBQ1gsQ0FDUixDQUNGLENBQUMsZUFDTnpFLDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtFQUFFLGdCQUNwQnRELDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHhELDBEQUFBLENBQUFvQixvREFBQSxDQUFNcUMsSUFBSSxxQkFDUnpELDBEQUFBLENBQUEwRSx1REFBQTtJQUFRQyxJQUFJLEVBQUMsU0FBUztJQUFDQyxLQUFLO0lBQUNDLFFBQVEsRUFBQyxRQUFRO0lBQUNDLE9BQU8sRUFBRW9GO0VBQXNCLEdBQUMsUUFFdkUsQ0FDQyxDQUNSLENBQUMsZUFDTmxLLDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHhELDBEQUFBLENBQUFvQixvREFBQSxDQUFNcUMsSUFBSSxxQkFDUnpELDBEQUFBLENBQUEwRSx1REFBQTtJQUFRRyxRQUFRLEVBQUMsUUFBUTtJQUFDRSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVFuRSxRQUFRLENBQUMsWUFBWSxDQUFDO0lBQUE7RUFBQyxHQUFDLFFBRXpELENBQ0MsQ0FDUixDQUNGLENBQ0QsQ0FDTixDQUFDO0FBRVAsQ0FBQztBQUVELGlFQUFlb0osbUJBQW1CLEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEdpQjtBQUVJO0FBRVI7QUFDdUI7QUFDUztBQUN5QztBQUN6RjtBQUUvQixJQUFNSyxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQSxFQUFTO0VBQ3pCLElBQU0xSixRQUFRLEdBQUdSLHdEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFNUyxRQUFRLEdBQUdKLDZEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFBdUIsU0FBQSxHQUF3QzdCLCtDQUFRLENBQU0sRUFBRSxDQUFDO0lBQUE4QixVQUFBLEdBQUFULGNBQUEsQ0FBQVEsU0FBQTtJQUFsRHlELFlBQVksR0FBQXhELFVBQUE7SUFBRXlELGVBQWUsR0FBQXpELFVBQUE7RUFDcEMsSUFBQTBELFVBQUEsR0FBb0N4RiwrQ0FBUSxDQUFDLEVBQUUsQ0FBQztJQUFBeUYsVUFBQSxHQUFBcEUsY0FBQSxDQUFBbUUsVUFBQTtJQUF6Q0UsVUFBVSxHQUFBRCxVQUFBO0lBQUVFLGFBQWEsR0FBQUYsVUFBQTtFQUNoQyxJQUFBOUUsWUFBQSxHQUF3Q1Qsd0RBQVcsQ0FBQyxVQUFDVSxLQUFnQjtNQUFBLE9BQUtBLEtBQUssQ0FBQ21KLFFBQVE7SUFBQSxFQUFDO0lBQWpGSyxTQUFTLEdBQUF6SixZQUFBLENBQVR5SixTQUFTO0lBQUVDLGdCQUFnQixHQUFBMUosWUFBQSxDQUFoQjBKLGdCQUFnQjtFQUVuQ3RLLGdEQUFTLENBQUMsWUFBTTtJQUNkVSxRQUFRLENBQUN5SixnRkFBYyxDQUFDLENBQUMsQ0FBQztFQUM1QixDQUFDLEVBQUUsQ0FBQ3pKLFFBQVEsQ0FBQyxDQUFDO0VBRWQsSUFBTW9GLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJbEUsRUFBTyxFQUFLO0lBQzlCbEIsUUFBUSxDQUFDbUosc0ZBQW9CLENBQUNqSSxFQUFFLENBQUMsQ0FBQztJQUNsQ2pCLFFBQVEsdUJBQUFvRixNQUFBLENBQXVCbkUsRUFBRSxDQUFFLENBQUM7RUFDdEMsQ0FBQztFQUVELElBQU1vRSxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBSXBFLEVBQU8sRUFBSztJQUNoQ3lELHdEQUFTLENBQUM7TUFDUmEsS0FBSyxFQUFFLGVBQWU7TUFDdEJDLElBQUksRUFBRSxvQ0FBb0M7TUFDMUNDLElBQUksRUFBRSxTQUFTO01BQ2ZDLGlCQUFpQixFQUFFLEtBQUs7TUFDeEJDLGdCQUFnQixFQUFFLEtBQUs7TUFDdkJDLElBQUksMlhBS0g7TUFDREMsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUEsRUFBUTtRQUFBLElBQUFDLGNBQUEsRUFBQUMsZUFBQTtRQUNiLElBQU1DLGFBQWEsSUFBQUYsY0FBQSxHQUFHcEIsNERBQWEsQ0FBQyxDQUFDLGNBQUFvQixjQUFBLHVCQUFmQSxjQUFBLENBQWlCSSxhQUFhLENBQUMsaUJBQWlCLENBQUM7UUFDdkUsSUFBTUMsWUFBWSxJQUFBSixlQUFBLEdBQUdyQiw0REFBYSxDQUFDLENBQUMsY0FBQXFCLGVBQUEsdUJBQWZBLGVBQUEsQ0FBaUJHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUVyRUYsYUFBYSxhQUFiQSxhQUFhLGVBQWJBLGFBQWEsQ0FBRUksZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDN0NyRyxRQUFRLENBQUN3SixzRkFBb0IsQ0FBQ3RJLEVBQUUsQ0FBQyxDQUFDLENBQUNvRixJQUFJLENBQUMsWUFBTTtZQUM1QzNCLHdEQUFTLENBQUMsVUFBVSxFQUFFLDRCQUE0QixFQUFFLFNBQVMsQ0FBQztZQUM5RDNFLFFBQVEsQ0FBQ3lKLGdGQUFjLENBQUMsQ0FBQyxDQUFDO1VBQzVCLENBQUMsQ0FBQztVQUNGOUUseURBQVUsQ0FBQyxDQUFDO1FBQ2QsQ0FBQyxDQUFDO1FBRUZ5QixZQUFZLGFBQVpBLFlBQVksZUFBWkEsWUFBWSxDQUFFQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBTTtVQUM1QzFCLHlEQUFVLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQztNQUNKO0lBQ0YsQ0FBQyxDQUFDO0VBQ0osQ0FBQztFQUVELElBQU02QixZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQSxFQUFTO0lBQ3pCO0lBQ0F0QixhQUFhLENBQUNELFVBQVUsQ0FBQ3dCLElBQUksQ0FBQyxDQUFDLENBQUM7RUFDbEMsQ0FBQztFQUVELElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFBLEVBQVM7SUFDeEI7SUFDQXhCLGFBQWEsQ0FBQyxFQUFFLENBQUM7RUFDbkIsQ0FBQztFQUVELElBQU15QixPQUFPLEdBQUcsQ0FDZDtJQUFFbkIsS0FBSyxFQUFFLFFBQVE7SUFBRW9CLFNBQVMsRUFBRSxPQUFPO0lBQUVoRCxHQUFHLEVBQUUsT0FBTztJQUFFaUQsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDekU7SUFBRXJCLEtBQUssRUFBRSxPQUFPO0lBQUVvQixTQUFTLEVBQUUsTUFBTTtJQUFFaEQsR0FBRyxFQUFFLE1BQU07SUFBRWlELFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3RFO0lBQUVyQixLQUFLLEVBQUUsUUFBUTtJQUFFb0IsU0FBUyxFQUFFLGFBQWE7SUFBRWhELEdBQUcsRUFBRSxhQUFhO0lBQUVpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUNyRjtJQUNFckIsS0FBSyxFQUFFLFFBQVE7SUFDZjVCLEdBQUcsRUFBRSxRQUFRO0lBQ2JpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7SUFDcENDLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFHQyxDQUFTLEVBQUVDLE1BQVc7TUFBQSxvQkFDN0IzSCwwREFBQSxDQUFBNEgscURBQUE7UUFBT0MsSUFBSSxFQUFDO01BQVEsZ0JBQ2xCN0gsMERBQUEsQ0FBQTBFLHVEQUFBO1FBQVEyQixJQUFJLGVBQUVyRywwREFBQSxDQUFDa0YseURBQVksTUFBRSxDQUFFO1FBQUNQLElBQUksRUFBQyxTQUFTO1FBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUWdCLFVBQVUsQ0FBQzRCLE1BQU0sQ0FBQzlGLEVBQUUsQ0FBQztRQUFBO01BQUMsQ0FBRSxDQUFDLGVBQ3ZGN0IsMERBQUEsQ0FBQTBFLHVEQUFBO1FBQVEyQixJQUFJLGVBQUVyRywwREFBQSxDQUFDaUYseURBQWMsTUFBRSxDQUFFO1FBQUM2QyxNQUFNO1FBQUMvQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFrQixZQUFZLENBQUMwQixNQUFNLENBQUM5RixFQUFFLENBQUM7UUFBQTtNQUFDLENBQUUsQ0FDN0UsQ0FBQztJQUFBO0VBRVosQ0FBQyxDQUNGO0VBRUQsSUFBTWtHLFlBQVksR0FBRyxDQUFDdUMsU0FBUyxJQUFJLEVBQUUsRUFBRXRDLE1BQU0sQ0FBQyxVQUFDQyxFQUFFO0lBQUEsSUFBQUMsUUFBQTtJQUFBLFFBQUFBLFFBQUEsR0FDL0NELEVBQUUsQ0FBQzNGLElBQUksY0FBQTRGLFFBQUEsdUJBQVBBLFFBQUEsQ0FBU0MsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDeEMsVUFBVSxDQUFDdUMsV0FBVyxDQUFDLENBQUMsQ0FBQztFQUFBLENBQzNELENBQUM7RUFFRCxvQkFDRW5JLDBEQUFBO0lBQUtrRCxLQUFLLEVBQUU7TUFBRW1GLFNBQVMsRUFBRTtJQUFPO0VBQUUsZ0JBQ2hDckksMERBQUEsYUFBSSx3REFBYSxDQUFDLGVBQ2xCQSwwREFBQTtJQUNFa0QsS0FBSyxFQUFFO01BQ0xvRixPQUFPLEVBQUUsTUFBTTtNQUNmQyxjQUFjLEVBQUUsZUFBZTtNQUMvQkMsT0FBTyxFQUFFLE1BQU07TUFDZkMsVUFBVSxFQUFFLFNBQVM7TUFDckJDLFlBQVksRUFBRSxNQUFNO01BQ3BCQyxRQUFRLEVBQUU7SUFDWjtFQUFFLGdCQUVGM0ksMERBQUEsQ0FBQTRILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1Q1SSwwREFBQSxlQUFNLDRCQUFNLEVBQUMsQ0FBQStILFlBQVksYUFBWkEsWUFBWSx1QkFBWkEsWUFBWSxDQUFFYyxNQUFNLEtBQUksQ0FBUSxDQUFDLGVBQzlDN0ksMERBQUEsQ0FBQThELHFEQUFBO0lBQ0VHLFdBQVcsRUFBQywrQ0FBWTtJQUN4QmYsS0FBSyxFQUFFO01BQUU0RixLQUFLLEVBQUU7SUFBSSxDQUFFO0lBQ3RCdEUsS0FBSyxFQUFFb0IsVUFBVztJQUNsQm1ELFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHQyxDQUFDO01BQUEsT0FBS25ELGFBQWEsQ0FBQ21ELENBQUMsQ0FBQ0MsTUFBTSxDQUFDekUsS0FBSyxDQUFDO0lBQUE7RUFBQyxDQUNoRCxDQUFDLGVBQ0Z4RSwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUssT0FBTyxFQUFFb0MsWUFBYTtJQUFDeEMsSUFBSSxFQUFDO0VBQVMsR0FBQyxzQ0FBYyxDQUFDLGVBQzdEM0UsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFLLE9BQU8sRUFBRXNDO0VBQVksR0FBQyxvRUFBbUIsQ0FDNUMsQ0FBQyxlQUNSckgsMERBQUEsQ0FBQTRILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1Q1SSwwREFBQSxDQUFBMEUsdURBQUE7SUFBUTJCLElBQUksZUFBRXJHLDBEQUFBLENBQUNtRiwwREFBWSxNQUFFLENBQUU7SUFBQ1IsSUFBSSxFQUFDLFNBQVM7SUFBQ0ksT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRbkUsUUFBUSxrQkFBa0IsQ0FBQztJQUFBO0VBQUMsR0FBQyw4REFBa0IsQ0FDeEcsQ0FDSixDQUFDLGVBQ05aLDBEQUFBLENBQUFrSixxREFBQTtJQUNFQyxZQUFZLEVBQUU7TUFDWnhFLElBQUksRUFBRSxVQUFVO01BQ2hCb0UsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdyQixDQUFDLEVBQUVsQyxZQUFZO1FBQUEsT0FBS0MsZUFBZSxDQUFDRCxZQUFZLENBQUM7TUFBQTtJQUM5RCxDQUFFO0lBQ0Y4QixPQUFPLEVBQUVBLE9BQVE7SUFDakI4QixVQUFVLEVBQUVyQixZQUFZLENBQUMzRCxHQUFHLENBQUMsVUFBQzZELEVBQUUsRUFBRW9CLEtBQUs7TUFBQSxPQUFBQyxhQUFBO1FBQ3JDL0UsR0FBRyxFQUFFMEQsRUFBRSxDQUFDcEcsRUFBRTtRQUNWd0gsS0FBSyxFQUFFQSxLQUFLLEdBQUcsQ0FBQztRQUNoQi9HLElBQUksRUFBRTJGLEVBQUUsQ0FBQzNGO01BQUksR0FDVjJGLEVBQUU7SUFBQSxDQUNMLENBQUU7SUFDSnNCLFVBQVUsRUFBRTtNQUFFQyxRQUFRLEVBQUUsRUFBRTtNQUFFQyxlQUFlLEVBQUU7SUFBSyxDQUFFO0lBQ3BEQyxNQUFNLEVBQUU7TUFBRUMsQ0FBQyxFQUFFO0lBQWM7RUFBRSxDQUM5QixDQUFDLGVBQ0YzSiwwREFBQSxDQUFDZ0YseUVBQWE7SUFBQzRFLE9BQU8sRUFBRVc7RUFBaUIsQ0FBRSxDQUN4QyxDQUFDO0FBRVYsQ0FBQztBQUVELGlFQUFlRixZQUFZLEU7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQ3hJM0IsdUtBQUFyQixDQUFBLEVBQUF3QixDQUFBLEVBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsUUFBQSxrQkFBQUMsQ0FBQSxHQUFBSixDQUFBLENBQUFLLFdBQUEsOEJBQUFDLEVBQUFOLENBQUEsRUFBQUUsQ0FBQSxFQUFBRSxDQUFBLEVBQUFFLENBQUEsUUFBQUMsQ0FBQSxHQUFBTCxDQUFBLElBQUFBLENBQUEsQ0FBQU0sU0FBQSxZQUFBQyxTQUFBLEdBQUFQLENBQUEsR0FBQU8sU0FBQSxFQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxDQUFBTCxDQUFBLENBQUFDLFNBQUEsVUFBQUssbUJBQUEsQ0FBQUgsQ0FBQSx1QkFBQVYsQ0FBQSxFQUFBRSxDQUFBLEVBQUFFLENBQUEsUUFBQUUsQ0FBQSxFQUFBQyxDQUFBLEVBQUFHLENBQUEsRUFBQUksQ0FBQSxNQUFBQyxDQUFBLEdBQUFYLENBQUEsUUFBQVksQ0FBQSxPQUFBQyxDQUFBLEtBQUFGLENBQUEsS0FBQWIsQ0FBQSxLQUFBZ0IsQ0FBQSxFQUFBM0MsQ0FBQSxFQUFBNEMsQ0FBQSxFQUFBQyxDQUFBLEVBQUFOLENBQUEsRUFBQU0sQ0FBQSxDQUFBQyxJQUFBLENBQUE5QyxDQUFBLE1BQUE2QyxDQUFBLFdBQUFBLEVBQUFyQixDQUFBLEVBQUFDLENBQUEsV0FBQU0sQ0FBQSxHQUFBUCxDQUFBLEVBQUFRLENBQUEsTUFBQUcsQ0FBQSxHQUFBbkMsQ0FBQSxFQUFBMEMsQ0FBQSxDQUFBZixDQUFBLEdBQUFGLENBQUEsRUFBQW1CLENBQUEsZ0JBQUFDLEVBQUFwQixDQUFBLEVBQUFFLENBQUEsU0FBQUssQ0FBQSxHQUFBUCxDQUFBLEVBQUFVLENBQUEsR0FBQVIsQ0FBQSxFQUFBSCxDQUFBLE9BQUFpQixDQUFBLElBQUFGLENBQUEsS0FBQVYsQ0FBQSxJQUFBTCxDQUFBLEdBQUFnQixDQUFBLENBQUEzQyxNQUFBLEVBQUEyQixDQUFBLFVBQUFLLENBQUEsRUFBQUUsQ0FBQSxHQUFBUyxDQUFBLENBQUFoQixDQUFBLEdBQUFxQixDQUFBLEdBQUFILENBQUEsQ0FBQUYsQ0FBQSxFQUFBTyxDQUFBLEdBQUFoQixDQUFBLEtBQUFOLENBQUEsUUFBQUksQ0FBQSxHQUFBa0IsQ0FBQSxLQUFBcEIsQ0FBQSxNQUFBUSxDQUFBLEdBQUFKLENBQUEsRUFBQUMsQ0FBQSxHQUFBRCxDQUFBLFlBQUFDLENBQUEsV0FBQUQsQ0FBQSxNQUFBQSxDQUFBLE1BQUEvQixDQUFBLElBQUErQixDQUFBLE9BQUFjLENBQUEsTUFBQWhCLENBQUEsR0FBQUosQ0FBQSxRQUFBb0IsQ0FBQSxHQUFBZCxDQUFBLFFBQUFDLENBQUEsTUFBQVUsQ0FBQSxDQUFBQyxDQUFBLEdBQUFoQixDQUFBLEVBQUFlLENBQUEsQ0FBQWYsQ0FBQSxHQUFBSSxDQUFBLE9BQUFjLENBQUEsR0FBQUUsQ0FBQSxLQUFBbEIsQ0FBQSxHQUFBSixDQUFBLFFBQUFNLENBQUEsTUFBQUosQ0FBQSxJQUFBQSxDQUFBLEdBQUFvQixDQUFBLE1BQUFoQixDQUFBLE1BQUFOLENBQUEsRUFBQU0sQ0FBQSxNQUFBSixDQUFBLEVBQUFlLENBQUEsQ0FBQWYsQ0FBQSxHQUFBb0IsQ0FBQSxFQUFBZixDQUFBLGNBQUFILENBQUEsSUFBQUosQ0FBQSxhQUFBbUIsQ0FBQSxRQUFBSCxDQUFBLE9BQUFkLENBQUEscUJBQUFFLENBQUEsRUFBQVcsQ0FBQSxFQUFBTyxDQUFBLFFBQUFSLENBQUEsWUFBQVMsU0FBQSx1Q0FBQVAsQ0FBQSxVQUFBRCxDQUFBLElBQUFLLENBQUEsQ0FBQUwsQ0FBQSxFQUFBTyxDQUFBLEdBQUFmLENBQUEsR0FBQVEsQ0FBQSxFQUFBTCxDQUFBLEdBQUFZLENBQUEsR0FBQXZCLENBQUEsR0FBQVEsQ0FBQSxPQUFBaEMsQ0FBQSxHQUFBbUMsQ0FBQSxNQUFBTSxDQUFBLEtBQUFWLENBQUEsS0FBQUMsQ0FBQSxHQUFBQSxDQUFBLFFBQUFBLENBQUEsU0FBQVUsQ0FBQSxDQUFBZixDQUFBLFFBQUFrQixDQUFBLENBQUFiLENBQUEsRUFBQUcsQ0FBQSxLQUFBTyxDQUFBLENBQUFmLENBQUEsR0FBQVEsQ0FBQSxHQUFBTyxDQUFBLENBQUFDLENBQUEsR0FBQVIsQ0FBQSxhQUFBSSxDQUFBLE1BQUFSLENBQUEsUUFBQUMsQ0FBQSxLQUFBSCxDQUFBLFlBQUFMLENBQUEsR0FBQU8sQ0FBQSxDQUFBRixDQUFBLFdBQUFMLENBQUEsR0FBQUEsQ0FBQSxDQUFBeUIsSUFBQSxDQUFBbEIsQ0FBQSxFQUFBSSxDQUFBLFVBQUFhLFNBQUEsMkNBQUF4QixDQUFBLENBQUEwQixJQUFBLFNBQUExQixDQUFBLEVBQUFXLENBQUEsR0FBQVgsQ0FBQSxDQUFBaEcsS0FBQSxFQUFBd0csQ0FBQSxTQUFBQSxDQUFBLG9CQUFBQSxDQUFBLEtBQUFSLENBQUEsR0FBQU8sQ0FBQSxlQUFBUCxDQUFBLENBQUF5QixJQUFBLENBQUFsQixDQUFBLEdBQUFDLENBQUEsU0FBQUcsQ0FBQSxHQUFBYSxTQUFBLHVDQUFBbkIsQ0FBQSxnQkFBQUcsQ0FBQSxPQUFBRCxDQUFBLEdBQUEvQixDQUFBLGNBQUF3QixDQUFBLElBQUFpQixDQUFBLEdBQUFDLENBQUEsQ0FBQWYsQ0FBQSxRQUFBUSxDQUFBLEdBQUFWLENBQUEsQ0FBQXdCLElBQUEsQ0FBQXRCLENBQUEsRUFBQWUsQ0FBQSxPQUFBRSxDQUFBLGtCQUFBcEIsQ0FBQSxJQUFBTyxDQUFBLEdBQUEvQixDQUFBLEVBQUFnQyxDQUFBLE1BQUFHLENBQUEsR0FBQVgsQ0FBQSxjQUFBZSxDQUFBLG1CQUFBL0csS0FBQSxFQUFBZ0csQ0FBQSxFQUFBMEIsSUFBQSxFQUFBVCxDQUFBLFNBQUFoQixDQUFBLEVBQUFJLENBQUEsRUFBQUUsQ0FBQSxRQUFBSSxDQUFBLFFBQUFTLENBQUEsZ0JBQUFWLFVBQUEsY0FBQWlCLGtCQUFBLGNBQUFDLDJCQUFBLEtBQUE1QixDQUFBLEdBQUFZLE1BQUEsQ0FBQWlCLGNBQUEsTUFBQXJCLENBQUEsTUFBQUwsQ0FBQSxJQUFBSCxDQUFBLENBQUFBLENBQUEsSUFBQUcsQ0FBQSxTQUFBVyxtQkFBQSxDQUFBZCxDQUFBLE9BQUFHLENBQUEsaUNBQUFILENBQUEsR0FBQVcsQ0FBQSxHQUFBaUIsMEJBQUEsQ0FBQW5CLFNBQUEsR0FBQUMsU0FBQSxDQUFBRCxTQUFBLEdBQUFHLE1BQUEsQ0FBQUMsTUFBQSxDQUFBTCxDQUFBLFlBQUFPLEVBQUF2QyxDQUFBLFdBQUFvQyxNQUFBLENBQUFrQixjQUFBLEdBQUFsQixNQUFBLENBQUFrQixjQUFBLENBQUF0RCxDQUFBLEVBQUFvRCwwQkFBQSxLQUFBcEQsQ0FBQSxDQUFBdUQsU0FBQSxHQUFBSCwwQkFBQSxFQUFBZCxtQkFBQSxDQUFBdEMsQ0FBQSxFQUFBNkIsQ0FBQSx5QkFBQTdCLENBQUEsQ0FBQWlDLFNBQUEsR0FBQUcsTUFBQSxDQUFBQyxNQUFBLENBQUFGLENBQUEsR0FBQW5DLENBQUEsV0FBQW1ELGlCQUFBLENBQUFsQixTQUFBLEdBQUFtQiwwQkFBQSxFQUFBZCxtQkFBQSxDQUFBSCxDQUFBLGlCQUFBaUIsMEJBQUEsR0FBQWQsbUJBQUEsQ0FBQWMsMEJBQUEsaUJBQUFELGlCQUFBLEdBQUFBLGlCQUFBLENBQUFLLFdBQUEsd0JBQUFsQixtQkFBQSxDQUFBYywwQkFBQSxFQUFBdkIsQ0FBQSx3QkFBQVMsbUJBQUEsQ0FBQUgsQ0FBQSxHQUFBRyxtQkFBQSxDQUFBSCxDQUFBLEVBQUFOLENBQUEsZ0JBQUFTLG1CQUFBLENBQUFILENBQUEsRUFBQVIsQ0FBQSxpQ0FBQVcsbUJBQUEsQ0FBQUgsQ0FBQSw4REFBQXNCLFlBQUEsWUFBQUEsYUFBQSxhQUFBQyxDQUFBLEVBQUEzQixDQUFBLEVBQUE0QixDQUFBLEVBQUFwQixDQUFBO0FBQUEsU0FBQUQsb0JBQUF0QyxDQUFBLEVBQUF5QixDQUFBLEVBQUFFLENBQUEsRUFBQUgsQ0FBQSxRQUFBTyxDQUFBLEdBQUFLLE1BQUEsQ0FBQXdCLGNBQUEsUUFBQTdCLENBQUEsdUJBQUEvQixDQUFBLElBQUErQixDQUFBLFFBQUFPLG1CQUFBLFlBQUF1QixtQkFBQTdELENBQUEsRUFBQXlCLENBQUEsRUFBQUUsQ0FBQSxFQUFBSCxDQUFBLGFBQUFLLEVBQUFKLENBQUEsRUFBQUUsQ0FBQSxJQUFBVyxtQkFBQSxDQUFBdEMsQ0FBQSxFQUFBeUIsQ0FBQSxZQUFBekIsQ0FBQSxnQkFBQThELE9BQUEsQ0FBQXJDLENBQUEsRUFBQUUsQ0FBQSxFQUFBM0IsQ0FBQSxTQUFBeUIsQ0FBQSxHQUFBTSxDQUFBLEdBQUFBLENBQUEsQ0FBQS9CLENBQUEsRUFBQXlCLENBQUEsSUFBQWpHLEtBQUEsRUFBQW1HLENBQUEsRUFBQW9DLFVBQUEsR0FBQXZDLENBQUEsRUFBQXdDLFlBQUEsR0FBQXhDLENBQUEsRUFBQXlDLFFBQUEsR0FBQXpDLENBQUEsTUFBQXhCLENBQUEsQ0FBQXlCLENBQUEsSUFBQUUsQ0FBQSxJQUFBRSxDQUFBLGFBQUFBLENBQUEsY0FBQUEsQ0FBQSxtQkFBQVMsbUJBQUEsQ0FBQXRDLENBQUEsRUFBQXlCLENBQUEsRUFBQUUsQ0FBQSxFQUFBSCxDQUFBO0FBQUEsU0FBQTBDLG1CQUFBdkMsQ0FBQSxFQUFBSCxDQUFBLEVBQUF4QixDQUFBLEVBQUF5QixDQUFBLEVBQUFJLENBQUEsRUFBQWUsQ0FBQSxFQUFBWixDQUFBLGNBQUFELENBQUEsR0FBQUosQ0FBQSxDQUFBaUIsQ0FBQSxFQUFBWixDQUFBLEdBQUFHLENBQUEsR0FBQUosQ0FBQSxDQUFBdkcsS0FBQSxXQUFBbUcsQ0FBQSxnQkFBQTNCLENBQUEsQ0FBQTJCLENBQUEsS0FBQUksQ0FBQSxDQUFBbUIsSUFBQSxHQUFBMUIsQ0FBQSxDQUFBVyxDQUFBLElBQUFnQyxPQUFBLENBQUFDLE9BQUEsQ0FBQWpDLENBQUEsRUFBQWxFLElBQUEsQ0FBQXdELENBQUEsRUFBQUksQ0FBQTtBQUFBLFNBQUF3QyxrQkFBQTFDLENBQUEsNkJBQUFILENBQUEsU0FBQXhCLENBQUEsR0FBQXNFLFNBQUEsYUFBQUgsT0FBQSxXQUFBMUMsQ0FBQSxFQUFBSSxDQUFBLFFBQUFlLENBQUEsR0FBQWpCLENBQUEsQ0FBQTRDLEtBQUEsQ0FBQS9DLENBQUEsRUFBQXhCLENBQUEsWUFBQXdFLE1BQUE3QyxDQUFBLElBQUF1QyxrQkFBQSxDQUFBdEIsQ0FBQSxFQUFBbkIsQ0FBQSxFQUFBSSxDQUFBLEVBQUEyQyxLQUFBLEVBQUFDLE1BQUEsVUFBQTlDLENBQUEsY0FBQThDLE9BQUE5QyxDQUFBLElBQUF1QyxrQkFBQSxDQUFBdEIsQ0FBQSxFQUFBbkIsQ0FBQSxFQUFBSSxDQUFBLEVBQUEyQyxLQUFBLEVBQUFDLE1BQUEsV0FBQTlDLENBQUEsS0FBQTZDLEtBQUE7QUFEK0U7QUFDM0I7QUFFN0MsSUFBTUkseUJBQXlCO0VBQUEsSUFBQUMsSUFBQSxHQUFBUixpQkFBQSxjQUFBWixZQUFBLEdBQUFFLENBQUEsQ0FBRyxTQUFBbUIsUUFBT0MsT0FBZSxFQUFFbEssT0FBZTtJQUFBLE9BQUE0SSxZQUFBLEdBQUFDLENBQUEsV0FBQXNCLFFBQUE7TUFBQSxrQkFBQUEsUUFBQSxDQUFBckQsQ0FBQTtRQUFBO1VBQUFxRCxRQUFBLENBQUFyRCxDQUFBO1VBQUEsT0FDL0QrQyxrRUFBYSxJQUFBMUgsTUFBQSxDQUNuQjJILG1EQUFHLENBQUNNLE1BQU0sZUFBQWpJLE1BQUEsQ0FBWStILE9BQU8sZUFBQS9ILE1BQUEsQ0FBWW5DLE9BQU8sQ0FDdkQsQ0FBQztRQUFBO1VBQUEsT0FBQW1LLFFBQUEsQ0FBQXBDLENBQUEsSUFBQW9DLFFBQUEsQ0FBQXJDLENBQUE7TUFBQTtJQUFBLEdBQUFtQyxPQUFBO0VBQUEsQ0FDSjtFQUFBLGdCQUpZRix5QkFBeUJBLENBQUFNLEVBQUEsRUFBQUMsR0FBQTtJQUFBLE9BQUFOLElBQUEsQ0FBQU4sS0FBQSxPQUFBRCxTQUFBO0VBQUE7QUFBQSxHQUlyQztBQUlNLElBQU1jLGtCQUFrQjtFQUFBLElBQUFDLEtBQUEsR0FBQWhCLGlCQUFBLGNBQUFaLFlBQUEsR0FBQUUsQ0FBQSxDQUFHLFNBQUEyQixTQUFPQyxNQUFjLEVBQUUxSyxPQUFlO0lBQUEsT0FBQTRJLFlBQUEsR0FBQUMsQ0FBQSxXQUFBOEIsU0FBQTtNQUFBLGtCQUFBQSxTQUFBLENBQUE3RCxDQUFBO1FBQUE7VUFBQTZELFNBQUEsQ0FBQTdELENBQUE7VUFBQSxPQUN2RCtDLGtFQUFhLElBQUExSCxNQUFBLENBQ25CMkgsbURBQUcsQ0FBQ2MsYUFBYSxjQUFBekksTUFBQSxDQUFXdUksTUFBTSxlQUFBdkksTUFBQSxDQUFZbkMsT0FBTyxDQUM1RCxDQUFDO1FBQUE7VUFBQSxPQUFBMkssU0FBQSxDQUFBNUMsQ0FBQSxJQUFBNEMsU0FBQSxDQUFBN0MsQ0FBQTtNQUFBO0lBQUEsR0FBQTJDLFFBQUE7RUFBQSxDQUNKO0VBQUEsZ0JBSllGLGtCQUFrQkEsQ0FBQU0sR0FBQSxFQUFBQyxHQUFBO0lBQUEsT0FBQU4sS0FBQSxDQUFBZCxLQUFBLE9BQUFELFNBQUE7RUFBQTtBQUFBLEdBSTlCLEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJDZEQsdUtBQUF0RSxDQUFBLEVBQUF3QixDQUFBLEVBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsUUFBQSxrQkFBQUMsQ0FBQSxHQUFBSixDQUFBLENBQUFLLFdBQUEsOEJBQUFDLEVBQUFOLENBQUEsRUFBQUUsQ0FBQSxFQUFBRSxDQUFBLEVBQUFFLENBQUEsUUFBQUMsQ0FBQSxHQUFBTCxDQUFBLElBQUFBLENBQUEsQ0FBQU0sU0FBQSxZQUFBQyxTQUFBLEdBQUFQLENBQUEsR0FBQU8sU0FBQSxFQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxDQUFBTCxDQUFBLENBQUFDLFNBQUEsVUFBQUssbUJBQUEsQ0FBQUgsQ0FBQSx1QkFBQVYsQ0FBQSxFQUFBRSxDQUFBLEVBQUFFLENBQUEsUUFBQUUsQ0FBQSxFQUFBQyxDQUFBLEVBQUFHLENBQUEsRUFBQUksQ0FBQSxNQUFBQyxDQUFBLEdBQUFYLENBQUEsUUFBQVksQ0FBQSxPQUFBQyxDQUFBLEtBQUFGLENBQUEsS0FBQWIsQ0FBQSxLQUFBZ0IsQ0FBQSxFQUFBM0MsQ0FBQSxFQUFBNEMsQ0FBQSxFQUFBQyxDQUFBLEVBQUFOLENBQUEsRUFBQU0sQ0FBQSxDQUFBQyxJQUFBLENBQUE5QyxDQUFBLE1BQUE2QyxDQUFBLFdBQUFBLEVBQUFyQixDQUFBLEVBQUFDLENBQUEsV0FBQU0sQ0FBQSxHQUFBUCxDQUFBLEVBQUFRLENBQUEsTUFBQUcsQ0FBQSxHQUFBbkMsQ0FBQSxFQUFBMEMsQ0FBQSxDQUFBZixDQUFBLEdBQUFGLENBQUEsRUFBQW1CLENBQUEsZ0JBQUFDLEVBQUFwQixDQUFBLEVBQUFFLENBQUEsU0FBQUssQ0FBQSxHQUFBUCxDQUFBLEVBQUFVLENBQUEsR0FBQVIsQ0FBQSxFQUFBSCxDQUFBLE9BQUFpQixDQUFBLElBQUFGLENBQUEsS0FBQVYsQ0FBQSxJQUFBTCxDQUFBLEdBQUFnQixDQUFBLENBQUEzQyxNQUFBLEVBQUEyQixDQUFBLFVBQUFLLENBQUEsRUFBQUUsQ0FBQSxHQUFBUyxDQUFBLENBQUFoQixDQUFBLEdBQUFxQixDQUFBLEdBQUFILENBQUEsQ0FBQUYsQ0FBQSxFQUFBTyxDQUFBLEdBQUFoQixDQUFBLEtBQUFOLENBQUEsUUFBQUksQ0FBQSxHQUFBa0IsQ0FBQSxLQUFBcEIsQ0FBQSxNQUFBUSxDQUFBLEdBQUFKLENBQUEsRUFBQUMsQ0FBQSxHQUFBRCxDQUFBLFlBQUFDLENBQUEsV0FBQUQsQ0FBQSxNQUFBQSxDQUFBLE1BQUEvQixDQUFBLElBQUErQixDQUFBLE9BQUFjLENBQUEsTUFBQWhCLENBQUEsR0FBQUosQ0FBQSxRQUFBb0IsQ0FBQSxHQUFBZCxDQUFBLFFBQUFDLENBQUEsTUFBQVUsQ0FBQSxDQUFBQyxDQUFBLEdBQUFoQixDQUFBLEVBQUFlLENBQUEsQ0FBQWYsQ0FBQSxHQUFBSSxDQUFBLE9BQUFjLENBQUEsR0FBQUUsQ0FBQSxLQUFBbEIsQ0FBQSxHQUFBSixDQUFBLFFBQUFNLENBQUEsTUFBQUosQ0FBQSxJQUFBQSxDQUFBLEdBQUFvQixDQUFBLE1BQUFoQixDQUFBLE1BQUFOLENBQUEsRUFBQU0sQ0FBQSxNQUFBSixDQUFBLEVBQUFlLENBQUEsQ0FBQWYsQ0FBQSxHQUFBb0IsQ0FBQSxFQUFBZixDQUFBLGNBQUFILENBQUEsSUFBQUosQ0FBQSxhQUFBbUIsQ0FBQSxRQUFBSCxDQUFBLE9BQUFkLENBQUEscUJBQUFFLENBQUEsRUFBQVcsQ0FBQSxFQUFBTyxDQUFBLFFBQUFSLENBQUEsWUFBQVMsU0FBQSx1Q0FBQVAsQ0FBQSxVQUFBRCxDQUFBLElBQUFLLENBQUEsQ0FBQUwsQ0FBQSxFQUFBTyxDQUFBLEdBQUFmLENBQUEsR0FBQVEsQ0FBQSxFQUFBTCxDQUFBLEdBQUFZLENBQUEsR0FBQXZCLENBQUEsR0FBQVEsQ0FBQSxPQUFBaEMsQ0FBQSxHQUFBbUMsQ0FBQSxNQUFBTSxDQUFBLEtBQUFWLENBQUEsS0FBQUMsQ0FBQSxHQUFBQSxDQUFBLFFBQUFBLENBQUEsU0FBQVUsQ0FBQSxDQUFBZixDQUFBLFFBQUFrQixDQUFBLENBQUFiLENBQUEsRUFBQUcsQ0FBQSxLQUFBTyxDQUFBLENBQUFmLENBQUEsR0FBQVEsQ0FBQSxHQUFBTyxDQUFBLENBQUFDLENBQUEsR0FBQVIsQ0FBQSxhQUFBSSxDQUFBLE1BQUFSLENBQUEsUUFBQUMsQ0FBQSxLQUFBSCxDQUFBLFlBQUFMLENBQUEsR0FBQU8sQ0FBQSxDQUFBRixDQUFBLFdBQUFMLENBQUEsR0FBQUEsQ0FBQSxDQUFBeUIsSUFBQSxDQUFBbEIsQ0FBQSxFQUFBSSxDQUFBLFVBQUFhLFNBQUEsMkNBQUF4QixDQUFBLENBQUEwQixJQUFBLFNBQUExQixDQUFBLEVBQUFXLENBQUEsR0FBQVgsQ0FBQSxDQUFBaEcsS0FBQSxFQUFBd0csQ0FBQSxTQUFBQSxDQUFBLG9CQUFBQSxDQUFBLEtBQUFSLENBQUEsR0FBQU8sQ0FBQSxlQUFBUCxDQUFBLENBQUF5QixJQUFBLENBQUFsQixDQUFBLEdBQUFDLENBQUEsU0FBQUcsQ0FBQSxHQUFBYSxTQUFBLHVDQUFBbkIsQ0FBQSxnQkFBQUcsQ0FBQSxPQUFBRCxDQUFBLEdBQUEvQixDQUFBLGNBQUF3QixDQUFBLElBQUFpQixDQUFBLEdBQUFDLENBQUEsQ0FBQWYsQ0FBQSxRQUFBUSxDQUFBLEdBQUFWLENBQUEsQ0FBQXdCLElBQUEsQ0FBQXRCLENBQUEsRUFBQWUsQ0FBQSxPQUFBRSxDQUFBLGtCQUFBcEIsQ0FBQSxJQUFBTyxDQUFBLEdBQUEvQixDQUFBLEVBQUFnQyxDQUFBLE1BQUFHLENBQUEsR0FBQVgsQ0FBQSxjQUFBZSxDQUFBLG1CQUFBL0csS0FBQSxFQUFBZ0csQ0FBQSxFQUFBMEIsSUFBQSxFQUFBVCxDQUFBLFNBQUFoQixDQUFBLEVBQUFJLENBQUEsRUFBQUUsQ0FBQSxRQUFBSSxDQUFBLFFBQUFTLENBQUEsZ0JBQUFWLFVBQUEsY0FBQWlCLGtCQUFBLGNBQUFDLDJCQUFBLEtBQUE1QixDQUFBLEdBQUFZLE1BQUEsQ0FBQWlCLGNBQUEsTUFBQXJCLENBQUEsTUFBQUwsQ0FBQSxJQUFBSCxDQUFBLENBQUFBLENBQUEsSUFBQUcsQ0FBQSxTQUFBVyxtQkFBQSxDQUFBZCxDQUFBLE9BQUFHLENBQUEsaUNBQUFILENBQUEsR0FBQVcsQ0FBQSxHQUFBaUIsMEJBQUEsQ0FBQW5CLFNBQUEsR0FBQUMsU0FBQSxDQUFBRCxTQUFBLEdBQUFHLE1BQUEsQ0FBQUMsTUFBQSxDQUFBTCxDQUFBLFlBQUFPLEVBQUF2QyxDQUFBLFdBQUFvQyxNQUFBLENBQUFrQixjQUFBLEdBQUFsQixNQUFBLENBQUFrQixjQUFBLENBQUF0RCxDQUFBLEVBQUFvRCwwQkFBQSxLQUFBcEQsQ0FBQSxDQUFBdUQsU0FBQSxHQUFBSCwwQkFBQSxFQUFBZCxtQkFBQSxDQUFBdEMsQ0FBQSxFQUFBNkIsQ0FBQSx5QkFBQTdCLENBQUEsQ0FBQWlDLFNBQUEsR0FBQUcsTUFBQSxDQUFBQyxNQUFBLENBQUFGLENBQUEsR0FBQW5DLENBQUEsV0FBQW1ELGlCQUFBLENBQUFsQixTQUFBLEdBQUFtQiwwQkFBQSxFQUFBZCxtQkFBQSxDQUFBSCxDQUFBLGlCQUFBaUIsMEJBQUEsR0FBQWQsbUJBQUEsQ0FBQWMsMEJBQUEsaUJBQUFELGlCQUFBLEdBQUFBLGlCQUFBLENBQUFLLFdBQUEsd0JBQUFsQixtQkFBQSxDQUFBYywwQkFBQSxFQUFBdkIsQ0FBQSx3QkFBQVMsbUJBQUEsQ0FBQUgsQ0FBQSxHQUFBRyxtQkFBQSxDQUFBSCxDQUFBLEVBQUFOLENBQUEsZ0JBQUFTLG1CQUFBLENBQUFILENBQUEsRUFBQVIsQ0FBQSxpQ0FBQVcsbUJBQUEsQ0FBQUgsQ0FBQSw4REFBQXNCLFlBQUEsWUFBQUEsYUFBQSxhQUFBQyxDQUFBLEVBQUEzQixDQUFBLEVBQUE0QixDQUFBLEVBQUFwQixDQUFBO0FBQUEsU0FBQUQsb0JBQUF0QyxDQUFBLEVBQUF5QixDQUFBLEVBQUFFLENBQUEsRUFBQUgsQ0FBQSxRQUFBTyxDQUFBLEdBQUFLLE1BQUEsQ0FBQXdCLGNBQUEsUUFBQTdCLENBQUEsdUJBQUEvQixDQUFBLElBQUErQixDQUFBLFFBQUFPLG1CQUFBLFlBQUF1QixtQkFBQTdELENBQUEsRUFBQXlCLENBQUEsRUFBQUUsQ0FBQSxFQUFBSCxDQUFBLGFBQUFLLEVBQUFKLENBQUEsRUFBQUUsQ0FBQSxJQUFBVyxtQkFBQSxDQUFBdEMsQ0FBQSxFQUFBeUIsQ0FBQSxZQUFBekIsQ0FBQSxnQkFBQThELE9BQUEsQ0FBQXJDLENBQUEsRUFBQUUsQ0FBQSxFQUFBM0IsQ0FBQSxTQUFBeUIsQ0FBQSxHQUFBTSxDQUFBLEdBQUFBLENBQUEsQ0FBQS9CLENBQUEsRUFBQXlCLENBQUEsSUFBQWpHLEtBQUEsRUFBQW1HLENBQUEsRUFBQW9DLFVBQUEsR0FBQXZDLENBQUEsRUFBQXdDLFlBQUEsR0FBQXhDLENBQUEsRUFBQXlDLFFBQUEsR0FBQXpDLENBQUEsTUFBQXhCLENBQUEsQ0FBQXlCLENBQUEsSUFBQUUsQ0FBQSxJQUFBRSxDQUFBLGFBQUFBLENBQUEsY0FBQUEsQ0FBQSxtQkFBQVMsbUJBQUEsQ0FBQXRDLENBQUEsRUFBQXlCLENBQUEsRUFBQUUsQ0FBQSxFQUFBSCxDQUFBO0FBQUEsU0FBQTBDLG1CQUFBdkMsQ0FBQSxFQUFBSCxDQUFBLEVBQUF4QixDQUFBLEVBQUF5QixDQUFBLEVBQUFJLENBQUEsRUFBQWUsQ0FBQSxFQUFBWixDQUFBLGNBQUFELENBQUEsR0FBQUosQ0FBQSxDQUFBaUIsQ0FBQSxFQUFBWixDQUFBLEdBQUFHLENBQUEsR0FBQUosQ0FBQSxDQUFBdkcsS0FBQSxXQUFBbUcsQ0FBQSxnQkFBQTNCLENBQUEsQ0FBQTJCLENBQUEsS0FBQUksQ0FBQSxDQUFBbUIsSUFBQSxHQUFBMUIsQ0FBQSxDQUFBVyxDQUFBLElBQUFnQyxPQUFBLENBQUFDLE9BQUEsQ0FBQWpDLENBQUEsRUFBQWxFLElBQUEsQ0FBQXdELENBQUEsRUFBQUksQ0FBQTtBQUFBLFNBQUF3QyxrQkFBQTFDLENBQUEsNkJBQUFILENBQUEsU0FBQXhCLENBQUEsR0FBQXNFLFNBQUEsYUFBQUgsT0FBQSxXQUFBMUMsQ0FBQSxFQUFBSSxDQUFBLFFBQUFlLENBQUEsR0FBQWpCLENBQUEsQ0FBQTRDLEtBQUEsQ0FBQS9DLENBQUEsRUFBQXhCLENBQUEsWUFBQXdFLE1BQUE3QyxDQUFBLElBQUF1QyxrQkFBQSxDQUFBdEIsQ0FBQSxFQUFBbkIsQ0FBQSxFQUFBSSxDQUFBLEVBQUEyQyxLQUFBLEVBQUFDLE1BQUEsVUFBQTlDLENBQUEsY0FBQThDLE9BQUE5QyxDQUFBLElBQUF1QyxrQkFBQSxDQUFBdEIsQ0FBQSxFQUFBbkIsQ0FBQSxFQUFBSSxDQUFBLEVBQUEyQyxLQUFBLEVBQUFDLE1BQUEsV0FBQTlDLENBQUEsS0FBQTZDLEtBQUE7QUFBQSxTQUFBak0sZUFBQWtKLENBQUEsRUFBQXpCLENBQUEsV0FBQTRGLGVBQUEsQ0FBQW5FLENBQUEsS0FBQW9FLHFCQUFBLENBQUFwRSxDQUFBLEVBQUF6QixDQUFBLEtBQUE4RiwyQkFBQSxDQUFBckUsQ0FBQSxFQUFBekIsQ0FBQSxLQUFBK0YsZ0JBQUE7QUFBQSxTQUFBQSxpQkFBQSxjQUFBL0MsU0FBQTtBQUFBLFNBQUE4Qyw0QkFBQXJFLENBQUEsRUFBQW1CLENBQUEsUUFBQW5CLENBQUEsMkJBQUFBLENBQUEsU0FBQXVFLGlCQUFBLENBQUF2RSxDQUFBLEVBQUFtQixDQUFBLE9BQUFwQixDQUFBLE1BQUF5RSxRQUFBLENBQUFoRCxJQUFBLENBQUF4QixDQUFBLEVBQUF5RSxLQUFBLDZCQUFBMUUsQ0FBQSxJQUFBQyxDQUFBLENBQUEwRSxXQUFBLEtBQUEzRSxDQUFBLEdBQUFDLENBQUEsQ0FBQTBFLFdBQUEsQ0FBQTdNLElBQUEsYUFBQWtJLENBQUEsY0FBQUEsQ0FBQSxHQUFBdEcsS0FBQSxDQUFBa0wsSUFBQSxDQUFBM0UsQ0FBQSxvQkFBQUQsQ0FBQSwrQ0FBQTZFLElBQUEsQ0FBQTdFLENBQUEsSUFBQXdFLGlCQUFBLENBQUF2RSxDQUFBLEVBQUFtQixDQUFBO0FBQUEsU0FBQW9ELGtCQUFBdkUsQ0FBQSxFQUFBbUIsQ0FBQSxhQUFBQSxDQUFBLElBQUFBLENBQUEsR0FBQW5CLENBQUEsQ0FBQTVCLE1BQUEsTUFBQStDLENBQUEsR0FBQW5CLENBQUEsQ0FBQTVCLE1BQUEsWUFBQUcsQ0FBQSxNQUFBMkIsQ0FBQSxHQUFBekcsS0FBQSxDQUFBMEgsQ0FBQSxHQUFBNUMsQ0FBQSxHQUFBNEMsQ0FBQSxFQUFBNUMsQ0FBQSxJQUFBMkIsQ0FBQSxDQUFBM0IsQ0FBQSxJQUFBeUIsQ0FBQSxDQUFBekIsQ0FBQSxVQUFBMkIsQ0FBQTtBQUFBLFNBQUFrRSxzQkFBQXBFLENBQUEsRUFBQXNCLENBQUEsUUFBQXZCLENBQUEsV0FBQUMsQ0FBQSxnQ0FBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFDLE1BQUEsQ0FBQUUsUUFBQSxLQUFBSCxDQUFBLDRCQUFBRCxDQUFBLFFBQUF4QixDQUFBLEVBQUEyQixDQUFBLEVBQUFJLENBQUEsRUFBQUksQ0FBQSxFQUFBUyxDQUFBLE9BQUFMLENBQUEsT0FBQVYsQ0FBQSxpQkFBQUUsQ0FBQSxJQUFBUCxDQUFBLEdBQUFBLENBQUEsQ0FBQXlCLElBQUEsQ0FBQXhCLENBQUEsR0FBQTZFLElBQUEsUUFBQXZELENBQUEsUUFBQVgsTUFBQSxDQUFBWixDQUFBLE1BQUFBLENBQUEsVUFBQWUsQ0FBQSx1QkFBQUEsQ0FBQSxJQUFBdkMsQ0FBQSxHQUFBK0IsQ0FBQSxDQUFBa0IsSUFBQSxDQUFBekIsQ0FBQSxHQUFBMEIsSUFBQSxNQUFBTixDQUFBLENBQUEyRCxJQUFBLENBQUF2RyxDQUFBLENBQUF4RSxLQUFBLEdBQUFvSCxDQUFBLENBQUEvQyxNQUFBLEtBQUFrRCxDQUFBLEdBQUFSLENBQUEsaUJBQUFkLENBQUEsSUFBQUksQ0FBQSxPQUFBRixDQUFBLEdBQUFGLENBQUEseUJBQUFjLENBQUEsWUFBQWYsQ0FBQSxlQUFBVyxDQUFBLEdBQUFYLENBQUEsY0FBQVksTUFBQSxDQUFBRCxDQUFBLE1BQUFBLENBQUEsMkJBQUFOLENBQUEsUUFBQUYsQ0FBQSxhQUFBaUIsQ0FBQTtBQUFBLFNBQUFnRCxnQkFBQW5FLENBQUEsUUFBQXZHLEtBQUEsQ0FBQUMsT0FBQSxDQUFBc0csQ0FBQSxVQUFBQSxDQUFBO0FBRHdDO0FBRUU7QUFFa0Q7QUFFNUYsSUFBUW5HLE1BQU0sR0FBQVAsc0RBQUEsQ0FBTk8sTUFBTTtBQUVkLElBQU1rTCx3Q0FBd0MsdXlFQWM3QztBQUVELElBQU1DLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUEsRUFBUztFQUM3QixJQUFBMU4sU0FBQSxHQUE0QzdCLCtDQUFRLENBQUMsY0FBYyxDQUFDO0lBQUE4QixVQUFBLEdBQUFULGNBQUEsQ0FBQVEsU0FBQTtJQUE3RDJOLGNBQWMsR0FBQTFOLFVBQUE7SUFBRTJOLGlCQUFpQixHQUFBM04sVUFBQTtFQUN4QyxJQUFBMEQsVUFBQSxHQUFzQ3hGLCtDQUFRLENBQUNzUCx3Q0FBd0MsQ0FBQztJQUFBN0osVUFBQSxHQUFBcEUsY0FBQSxDQUFBbUUsVUFBQTtJQUFqRmtLLFdBQVcsR0FBQWpLLFVBQUE7SUFBRWtLLGNBQWMsR0FBQWxLLFVBQUE7RUFDbEMsSUFBQW1LLFVBQUEsR0FBOEI1UCwrQ0FBUSxDQUFDLEtBQUssQ0FBQztJQUFBNlAsVUFBQSxHQUFBeE8sY0FBQSxDQUFBdU8sVUFBQTtJQUF0Q2hMLE9BQU8sR0FBQWlMLFVBQUE7SUFBRUMsVUFBVSxHQUFBRCxVQUFBO0VBQzFCLElBQUFFLFVBQUEsR0FBNEMvUCwrQ0FBUSxDQUFDLEtBQUssQ0FBQztJQUFBZ1EsVUFBQSxHQUFBM08sY0FBQSxDQUFBME8sVUFBQTtJQUFwREUsY0FBYyxHQUFBRCxVQUFBO0lBQUVFLGlCQUFpQixHQUFBRixVQUFBO0VBQ3hDLElBQUFHLFVBQUEsR0FBc0RuUSwrQ0FBUSxDQUFDLEtBQUssQ0FBQztJQUFBb1EsVUFBQSxHQUFBL08sY0FBQSxDQUFBOE8sVUFBQTtJQUE5REUsbUJBQW1CLEdBQUFELFVBQUE7SUFBRUUsc0JBQXNCLEdBQUFGLFVBQUE7RUFDbEQsSUFBQUcsVUFBQSxHQUFnQ3ZRLCtDQUFRLENBQUMsRUFBRSxDQUFDO0lBQUF3USxXQUFBLEdBQUFuUCxjQUFBLENBQUFrUCxVQUFBO0lBQXJDRSxRQUFRLEdBQUFELFdBQUE7SUFBRUUsV0FBVyxHQUFBRixXQUFBO0VBRTVCLElBQUE3UCxZQUFBLEdBQWlCVCx3REFBVyxDQUFDLFVBQUNVLEtBQWdCO01BQUEsT0FBS0EsS0FBSztJQUFBLEVBQUM7SUFBakQrUCxJQUFJLEdBQUFoUSxZQUFBLENBQUpnUSxJQUFJO0VBQ1osSUFBUUMsS0FBSyxHQUFLRCxJQUFJLENBQWRDLEtBQUs7RUFFYixJQUFNQyxZQUFZLEdBQUcsQ0FBQyxjQUFjLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBQyxVQUFVLENBQUM7RUFFakksSUFBTUMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBSXJNLElBQXVCLEVBQUs7SUFDckQsSUFBSSxDQUFDaUwsV0FBVyxFQUFFO01BQ2hCLE9BQU9uTix1REFBQSxDQUFZd08sT0FBTyxDQUFDLHdDQUF3QyxDQUFDO0lBQ3RFO0lBQ0FMLFdBQVcsQ0FBQ2pNLElBQUksQ0FBQztJQUNqQnlMLGlCQUFpQixDQUFDLElBQUksQ0FBQztFQUN6QixDQUFDO0VBRUQsSUFBTWMsa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFrQkEsQ0FBQSxFQUFTO0lBQy9CZCxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7SUFDeEJJLHNCQUFzQixDQUFDLElBQUksQ0FBQztFQUM5QixDQUFDO0VBRUQsSUFBTVcsaUJBQWlCO0lBQUEsSUFBQXRELElBQUEsR0FBQVIsaUJBQUEsY0FBQVosWUFBQSxHQUFBRSxDQUFBLENBQUcsU0FBQW1CLFFBQUE7TUFBQSxJQUFBc0QsRUFBQTtNQUFBLE9BQUEzRSxZQUFBLEdBQUFDLENBQUEsV0FBQXNCLFFBQUE7UUFBQSxrQkFBQUEsUUFBQSxDQUFBeEMsQ0FBQSxHQUFBd0MsUUFBQSxDQUFBckQsQ0FBQTtVQUFBO1lBQ3hCcUYsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNoQlEsc0JBQXNCLENBQUMsS0FBSyxDQUFDO1lBQUN4QyxRQUFBLENBQUF4QyxDQUFBO1lBQUEsTUFHeEJtRixRQUFRLEtBQUssTUFBTTtjQUFBM0MsUUFBQSxDQUFBckQsQ0FBQTtjQUFBO1lBQUE7WUFBQXFELFFBQUEsQ0FBQXJELENBQUE7WUFBQSxPQUNmaUQscUZBQXlCLENBQUNrRCxLQUFLLENBQUNqUCxFQUFFLEVBQUUrTixXQUFXLENBQUM7VUFBQTtZQUFBNUIsUUFBQSxDQUFBckQsQ0FBQTtZQUFBO1VBQUE7WUFBQXFELFFBQUEsQ0FBQXJELENBQUE7WUFBQSxPQUVoRHlELDhFQUFrQixDQUFDc0IsY0FBYyxFQUFFRSxXQUFXLENBQUM7VUFBQTtZQUV2RG5OLHVEQUFBLENBQVlFLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQztZQUNwRGtOLGNBQWMsQ0FBQ0wsd0NBQXdDLENBQUM7WUFBQ3hCLFFBQUEsQ0FBQXJELENBQUE7WUFBQTtVQUFBO1lBQUFxRCxRQUFBLENBQUF4QyxDQUFBO1lBQUE0RixFQUFBLEdBQUFwRCxRQUFBLENBQUFyQyxDQUFBO1lBRXpEbEosdURBQUEsQ0FBWUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDO1VBQUM7WUFFbERzTixVQUFVLENBQUMsS0FBSyxDQUFDO1VBQUM7WUFBQSxPQUFBaEMsUUFBQSxDQUFBcEMsQ0FBQTtRQUFBO01BQUEsR0FBQWtDLE9BQUE7SUFBQSxDQUNuQjtJQUFBLGdCQWhCS3FELGlCQUFpQkEsQ0FBQTtNQUFBLE9BQUF0RCxJQUFBLENBQUFOLEtBQUEsT0FBQUQsU0FBQTtJQUFBO0VBQUEsR0FnQnRCO0VBRUQsb0JBQ0V0TiwwREFBQTtJQUFLa0QsS0FBSyxFQUFFO01BQUVzRixPQUFPLEVBQUU7SUFBRztFQUFFLGdCQUMxQnhJLDBEQUFBLGFBQUksb0JBQXNCLENBQUMsZUFDM0JBLDBEQUFBO0lBQUtrRCxLQUFLLEVBQUU7TUFBRXdGLFlBQVksRUFBRTtJQUFHO0VBQUUsZ0JBQy9CMUksMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQyxFQUFFO0VBQUUsZ0JBQ25CdEQsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRSxFQUFHO0lBQUM2TixFQUFFLEVBQUU7RUFBRyxnQkFDdEJyUiwwREFBQSxDQUFBK0Qsc0RBQUE7SUFDRUUsV0FBVyxFQUFDLG9CQUFvQjtJQUNoQ08sS0FBSyxFQUFFa0wsY0FBZTtJQUN0QjNHLFFBQVEsRUFBRTRHLGlCQUFrQjtJQUM1QnpNLEtBQUssRUFBRTtNQUFFNEYsS0FBSyxFQUFFO0lBQUk7RUFBRSxHQUVyQmlJLFlBQVksQ0FBQzNNLEdBQUcsQ0FBQyxVQUFDbUssTUFBTTtJQUFBLG9CQUN2QnZPLDBEQUFBLENBQUNzRSxNQUFNO01BQUNDLEdBQUcsRUFBRWdLLE1BQU87TUFBQy9KLEtBQUssRUFBRStKO0lBQU8sR0FDaENBLE1BQ0ssQ0FBQztFQUFBLENBQ1YsQ0FDSyxDQUNILENBQUMsZUFDTnZPLDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUUsRUFBRztJQUFDNk4sRUFBRSxFQUFFO0VBQUcsZ0JBQ3RCclIsMERBQUEsQ0FBQThELHFEQUFBLENBQU9yRCxRQUFRO0lBQ2J3RCxXQUFXLEVBQUMsZUFBZTtJQUMzQk8sS0FBSyxFQUFFb0wsV0FBWTtJQUNuQjdHLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHQyxDQUFDO01BQUEsT0FBSzZHLGNBQWMsQ0FBQzdHLENBQUMsQ0FBQ0MsTUFBTSxDQUFDekUsS0FBSyxDQUFDO0lBQUEsQ0FBQztJQUNoREMsSUFBSSxFQUFFO0VBQUcsQ0FDVixDQUNJLENBQUMsZUFDTnpFLDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUUsRUFBRztJQUFDNk4sRUFBRSxFQUFFO0VBQUcsZ0JBQ3RCclIsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFDLElBQUksRUFBQyxTQUFTO0lBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUWlNLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztJQUFBLENBQUM7SUFBQ2xNLE9BQU8sRUFBRUE7RUFBUSxHQUFDLGdCQUU3RSxDQUNILENBQ0YsQ0FDRixDQUFDLGVBQ045RSwwREFBQSxDQUFBc1IscURBQUE7SUFDRW5MLEtBQUssRUFBQyx5QkFBeUI7SUFDL0J5RCxPQUFPLEVBQUV1RyxjQUFlO0lBQ3hCb0IsSUFBSSxFQUFFTCxrQkFBbUI7SUFDekJNLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFBO01BQUEsT0FBUXBCLGlCQUFpQixDQUFDLEtBQUssQ0FBQztJQUFBLENBQUM7SUFDekNxQixNQUFNLEVBQUMsU0FBUztJQUNoQkMsVUFBVSxFQUFDO0VBQVEsZ0JBRW5CMVIsMERBQUEsQ0FBQXVELG1EQUFBLFFBQUssNkNBQWdELENBQUMsZUFDdER2RCwwREFBQSx5QkFDRUEsMERBQUEsaUJBQVEsVUFBZ0IsQ0FBQyxLQUFDLEVBQUM0UCxXQUMxQixDQUFDLGVBQ0o1UCwwREFBQSx5QkFDRUEsMERBQUEsaUJBQVEsY0FBb0IsQ0FBQyxLQUFDLEVBQUMwUCxjQUM5QixDQUNFLENBQUMsZUFDUjFQLDBEQUFBLENBQUFzUixxREFBQTtJQUNFbkwsS0FBSyxFQUFDLG9CQUFvQjtJQUMxQnlELE9BQU8sRUFBRTJHLG1CQUFvQjtJQUM3QmdCLElBQUksRUFBRUosaUJBQWtCO0lBQ3hCSyxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBQTtNQUFBLE9BQVFoQixzQkFBc0IsQ0FBQyxLQUFLLENBQUM7SUFBQSxDQUFDO0lBQzlDaUIsTUFBTSxFQUFDLFdBQVc7SUFDbEJDLFVBQVUsRUFBQztFQUFRLGdCQUVuQjFSLDBEQUFBLFlBQUcsbUZBQW9GLENBQ2xGLENBQ0osQ0FBQztBQUVWLENBQUM7QUFFRCxpRUFBZXlQLGdCQUFnQixFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNwSW9CO0FBR0k7QUFFK0U7QUFDdkY7QUFDRDtBQUU5QyxJQUFNcUMscUJBQStCLEdBQUcsU0FBbENBLHFCQUErQkEsQ0FBQSxFQUFTO0VBQzVDLElBQU1uUixRQUFRLEdBQUdSLHdEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFNUyxRQUFRLEdBQUdKLDZEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFBSyxZQUFBLEdBQXNFVCx3REFBVyxDQUMvRSxVQUFDVSxLQUFnQjtNQUFBLE9BQUtBLEtBQUssQ0FBQ2lSLFVBQVU7SUFBQSxDQUN4QyxDQUFDO0lBRk9BLFVBQVUsR0FBQWxSLFlBQUEsQ0FBVmtSLFVBQVU7SUFBRTlRLG9CQUFvQixHQUFBSixZQUFBLENBQXBCSSxvQkFBb0I7SUFBRStRLHVCQUF1QixHQUFBblIsWUFBQSxDQUF2Qm1SLHVCQUF1QjtFQUdqRSxJQUFBN1EsYUFBQSxHQUFlQyxvREFBQSxDQUFLQyxPQUFPLENBQUMsQ0FBQztJQUFBQyxjQUFBLEdBQUFDLGNBQUEsQ0FBQUosYUFBQTtJQUF0QkssSUFBSSxHQUFBRixjQUFBO0VBRVgsSUFBTUcsWUFBWSxHQUFHLElBQUlDLGVBQWUsQ0FBQ0MsUUFBUSxDQUFDQyxNQUFNLENBQUM7RUFDekQsSUFBTUMsRUFBRSxHQUFHSixZQUFZLENBQUNLLEdBQUcsQ0FBQyxJQUFJLENBQUM7RUFFakMsSUFBQUMsU0FBQSxHQUE4QjdCLCtDQUFRLENBQUMsS0FBSyxDQUFDO0lBQUE4QixVQUFBLEdBQUFULGNBQUEsQ0FBQVEsU0FBQTtJQUF0Q0UsT0FBTyxHQUFBRCxVQUFBO0lBQUVFLFVBQVUsR0FBQUYsVUFBQTs7RUFFMUI7RUFDQS9CLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUk0QixFQUFFLEVBQUU7TUFDTmxCLFFBQVEsQ0FBQ2lSLHlGQUFzQixDQUFDelAsTUFBTSxDQUFDTixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUMsTUFBTTtNQUNMTCxJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtFQUNGLENBQUMsRUFBRSxDQUFDekIsUUFBUSxFQUFFa0IsRUFBRSxFQUFFTCxJQUFJLENBQUMsQ0FBQzs7RUFFeEI7RUFDQXZCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUk0QixFQUFFLElBQUlrUSxVQUFVLEVBQUU7TUFDcEJ2USxJQUFJLENBQUNhLGNBQWMsQ0FBQztRQUNsQkMsSUFBSSxFQUFFeVAsVUFBVSxDQUFDelAsSUFBSSxJQUFJLEVBQUU7UUFDM0JDLFdBQVcsRUFBRXdQLFVBQVUsQ0FBQ3hQLFdBQVcsSUFBSTtNQUN6QyxDQUFDLENBQUM7SUFDSjtFQUNGLENBQUMsRUFBRSxDQUFDd1AsVUFBVSxFQUFFdlEsSUFBSSxFQUFFSyxFQUFFLENBQUMsQ0FBQzs7RUFFMUI7RUFDQTVCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUksQ0FBQytSLHVCQUF1QixJQUFJL1AsT0FBTyxFQUFFO01BQ3ZDLElBQUloQixvQkFBb0IsRUFBRTtRQUN4QndCLHVEQUFBLENBQVFDLEtBQUssQ0FBQ3pCLG9CQUFvQixDQUFDO01BQ3JDLENBQUMsTUFBTTtRQUNMd0IsdURBQUEsQ0FBUUUsT0FBTyxDQUFDZCxFQUFFLEdBQUcsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDdkVqQixRQUFRLENBQUMsY0FBYyxDQUFDO01BQzFCO0lBQ0Y7RUFDRixDQUFDLEVBQUUsQ0FBQ29SLHVCQUF1QixFQUFFL1Esb0JBQW9CLEVBQUVZLEVBQUUsRUFBRUksT0FBTyxFQUFFckIsUUFBUSxDQUFDLENBQUM7O0VBRTFFO0VBQ0EsSUFBTWdDLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFJQyxNQUFrQixFQUFLO0lBQ3ZDLElBQUloQixFQUFFLEVBQUU7TUFDTmxCLFFBQVEsQ0FBQ2tSLHlGQUFzQixDQUFDO1FBQUVoUSxFQUFFLEVBQUVNLE1BQU0sQ0FBQ04sRUFBRSxDQUFDO1FBQUVpQixJQUFJLEVBQUVEO01BQU8sQ0FBQyxDQUFDLENBQUM7TUFDbEVyQixJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDO0lBQ3BCLENBQUMsTUFBTTtNQUNMekIsUUFBUSxDQUFDZ1IseUZBQXNCLENBQUM7UUFBRTdPLElBQUksRUFBRUQ7TUFBTyxDQUFDLENBQUMsQ0FBQztNQUNsRHJCLElBQUksQ0FBQ1ksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCO0lBQ0FGLFVBQVUsQ0FBQyxJQUFJLENBQUM7RUFDbEIsQ0FBQztFQUVELG9CQUNFbEMsMERBQUEsQ0FBQUEsdURBQUEscUJBQ0VBLDBEQUFBLGFBQUs2QixFQUFFLEdBQUcsY0FBYyxHQUFHLGtCQUF1QixDQUFDLGVBQ25EN0IsMERBQUEsQ0FBQW9CLG9EQUFBO0lBQU1JLElBQUksRUFBRUEsSUFBSztJQUFDeUIsTUFBTSxFQUFDLFVBQVU7SUFBQ0wsUUFBUSxFQUFFQSxRQUFTO0lBQUNNLEtBQUssRUFBRTtNQUFFQyxRQUFRLEVBQUUsTUFBTTtNQUFFQyxNQUFNLEVBQUU7SUFBUztFQUFFLGdCQUNwR3BELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtFQUFFLGdCQUNwQnRELDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRyxnQkFDWnhELDBEQUFBLENBQUFvQixvREFBQSxDQUFNcUMsSUFBSTtJQUFDQyxLQUFLLEVBQUMsZ0NBQU87SUFBQ3BCLElBQUksRUFBQyxNQUFNO0lBQUNxQixLQUFLLEVBQUUsQ0FBQztNQUFFQyxRQUFRLEVBQUUsSUFBSTtNQUFFQyxPQUFPLEVBQUU7SUFBc0IsQ0FBQztFQUFFLGdCQUMvRjdELDBEQUFBLENBQUE4RCxxREFBQSxNQUFRLENBQ0MsQ0FDUixDQUFDLGVBQ045RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUcsZ0JBQ1p4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUk7SUFBQ0MsS0FBSyxFQUFDLHNDQUFRO0lBQUNwQixJQUFJLEVBQUM7RUFBYSxnQkFDMUN0QywwREFBQSxDQUFDUywrREFBUTtJQUFDZ0UsSUFBSSxFQUFFO0VBQUUsQ0FBRSxDQUNYLENBQ1IsQ0FDRixDQUFDLGVBQ056RSwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFBRSxnQkFDcEJ0RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUkscUJBQ1J6RCwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUMsSUFBSSxFQUFDLFNBQVM7SUFBQ0MsS0FBSztJQUFDQyxRQUFRLEVBQUMsUUFBUTtJQUFDQyxPQUFPLEVBQUVrTjtFQUF3QixHQUFDLFFBRXpFLENBQ0MsQ0FDUixDQUFDLGVBQ05oUywwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUkscUJBQ1J6RCwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUcsUUFBUSxFQUFDLFFBQVE7SUFBQ0UsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRbkUsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUFBO0VBQUMsR0FBQyxRQUUzRCxDQUNDLENBQ1IsQ0FDRixDQUNELENBQ04sQ0FBQztBQUVQLENBQUM7QUFFRCxpRUFBZWtSLHFCQUFxQixFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RHZTtBQUVJO0FBRVI7QUFDdUI7QUFDUztBQUNpRDtBQUNqRztBQUUvQixJQUFNSyxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUEsRUFBUztFQUMzQixJQUFNeFIsUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQXVCLFNBQUEsR0FBd0M3QiwrQ0FBUSxDQUFNLEVBQUUsQ0FBQztJQUFBOEIsVUFBQSxHQUFBVCxjQUFBLENBQUFRLFNBQUE7SUFBbER5RCxZQUFZLEdBQUF4RCxVQUFBO0lBQUV5RCxlQUFlLEdBQUF6RCxVQUFBO0VBQ3BDLElBQUEwRCxVQUFBLEdBQW9DeEYsK0NBQVEsQ0FBQyxFQUFFLENBQUM7SUFBQXlGLFVBQUEsR0FBQXBFLGNBQUEsQ0FBQW1FLFVBQUE7SUFBekNFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQTlFLFlBQUEsR0FBNENULHdEQUFXLENBQUMsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUNpUixVQUFVO0lBQUEsRUFBQztJQUF2RkssV0FBVyxHQUFBdlIsWUFBQSxDQUFYdVIsV0FBVztJQUFFQyxrQkFBa0IsR0FBQXhSLFlBQUEsQ0FBbEJ3UixrQkFBa0I7RUFFdkNwUyxnREFBUyxDQUFDLFlBQU07SUFDZFUsUUFBUSxDQUFDdVIsb0ZBQWdCLENBQUMsQ0FBQyxDQUFDO0VBQzlCLENBQUMsRUFBRSxDQUFDdlIsUUFBUSxDQUFDLENBQUM7RUFFZCxJQUFNb0YsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUlsRSxFQUFPLEVBQUs7SUFDOUJsQixRQUFRLENBQUNpUiwwRkFBc0IsQ0FBQy9QLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDakIsUUFBUSx5QkFBQW9GLE1BQUEsQ0FBeUJuRSxFQUFFLENBQUUsQ0FBQztFQUN4QyxDQUFDO0VBRUQsSUFBTW9FLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJcEUsRUFBTyxFQUFLO0lBQ2hDeUQsd0RBQVMsQ0FBQztNQUNSYSxLQUFLLEVBQUUsZUFBZTtNQUN0QkMsSUFBSSxFQUFFLG9DQUFvQztNQUMxQ0MsSUFBSSxFQUFFLFNBQVM7TUFDZkMsaUJBQWlCLEVBQUUsS0FBSztNQUN4QkMsZ0JBQWdCLEVBQUUsS0FBSztNQUN2QkMsSUFBSSwyWEFLSDtNQUNEQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFRO1FBQUEsSUFBQUMsY0FBQSxFQUFBQyxlQUFBO1FBQ2IsSUFBTUMsYUFBYSxJQUFBRixjQUFBLEdBQUdwQiw0REFBYSxDQUFDLENBQUMsY0FBQW9CLGNBQUEsdUJBQWZBLGNBQUEsQ0FBaUJJLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztRQUN2RSxJQUFNQyxZQUFZLElBQUFKLGVBQUEsR0FBR3JCLDREQUFhLENBQUMsQ0FBQyxjQUFBcUIsZUFBQSx1QkFBZkEsZUFBQSxDQUFpQkcsYUFBYSxDQUFDLGdCQUFnQixDQUFDO1FBRXJFRixhQUFhLGFBQWJBLGFBQWEsZUFBYkEsYUFBYSxDQUFFSSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBTTtVQUM3Q3JHLFFBQVEsQ0FBQ3NSLDBGQUFzQixDQUFDcFEsRUFBRSxDQUFDLENBQUMsQ0FBQ29GLElBQUksQ0FBQyxZQUFNO1lBQzlDM0Isd0RBQVMsQ0FBQyxVQUFVLEVBQUUsNEJBQTRCLEVBQUUsU0FBUyxDQUFDO1lBQzlEM0UsUUFBUSxDQUFDdVIsb0ZBQWdCLENBQUMsQ0FBQyxDQUFDO1VBQzlCLENBQUMsQ0FBQztVQUNGNU0seURBQVUsQ0FBQyxDQUFDO1FBQ2QsQ0FBQyxDQUFDO1FBRUZ5QixZQUFZLGFBQVpBLFlBQVksZUFBWkEsWUFBWSxDQUFFQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBTTtVQUM1QzFCLHlEQUFVLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQztNQUNKO0lBQ0YsQ0FBQyxDQUFDO0VBQ0osQ0FBQztFQUVELElBQU02QixZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQSxFQUFTO0lBQ3pCO0lBQ0F0QixhQUFhLENBQUNELFVBQVUsQ0FBQ3dCLElBQUksQ0FBQyxDQUFDLENBQUM7RUFDbEMsQ0FBQztFQUVELElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFBLEVBQVM7SUFDeEI7SUFDQXhCLGFBQWEsQ0FBQyxFQUFFLENBQUM7RUFDbkIsQ0FBQztFQUVELElBQU15QixPQUFPLEdBQUcsQ0FDZDtJQUFFbkIsS0FBSyxFQUFFLFFBQVE7SUFBRW9CLFNBQVMsRUFBRSxPQUFPO0lBQUVoRCxHQUFHLEVBQUUsT0FBTztJQUFFaUQsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDekU7SUFBRXJCLEtBQUssRUFBRSxPQUFPO0lBQUVvQixTQUFTLEVBQUUsTUFBTTtJQUFFaEQsR0FBRyxFQUFFLE1BQU07SUFBRWlELFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3RFO0lBQUVyQixLQUFLLEVBQUUsUUFBUTtJQUFFb0IsU0FBUyxFQUFFLGFBQWE7SUFBRWhELEdBQUcsRUFBRSxhQUFhO0lBQUVpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUNyRjtJQUNFckIsS0FBSyxFQUFFLFFBQVE7SUFDZjVCLEdBQUcsRUFBRSxRQUFRO0lBQ2JpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7SUFDcENDLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFHQyxDQUFTLEVBQUVDLE1BQVc7TUFBQSxvQkFDN0IzSCwwREFBQSxDQUFBNEgscURBQUE7UUFBT0MsSUFBSSxFQUFDO01BQVEsZ0JBQ2xCN0gsMERBQUEsQ0FBQTBFLHVEQUFBO1FBQVEyQixJQUFJLGVBQUVyRywwREFBQSxDQUFDa0YseURBQVksTUFBRSxDQUFFO1FBQUNQLElBQUksRUFBQyxTQUFTO1FBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUWdCLFVBQVUsQ0FBQzRCLE1BQU0sQ0FBQzlGLEVBQUUsQ0FBQztRQUFBO01BQUMsQ0FBRSxDQUFDLGVBQ3ZGN0IsMERBQUEsQ0FBQTBFLHVEQUFBO1FBQVEyQixJQUFJLGVBQUVyRywwREFBQSxDQUFDaUYseURBQWMsTUFBRSxDQUFFO1FBQUM2QyxNQUFNO1FBQUMvQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFrQixZQUFZLENBQUMwQixNQUFNLENBQUM5RixFQUFFLENBQUM7UUFBQTtNQUFDLENBQUUsQ0FDN0UsQ0FBQztJQUFBO0VBRVosQ0FBQyxDQUNGO0VBRUQsSUFBTWtHLFlBQVksR0FBRyxDQUFDcUssV0FBVyxJQUFJLEVBQUUsRUFBRXBLLE1BQU0sQ0FBQyxVQUFDQyxFQUFFO0lBQUEsSUFBQUMsUUFBQTtJQUFBLFFBQUFBLFFBQUEsR0FDakRELEVBQUUsQ0FBQzNGLElBQUksY0FBQTRGLFFBQUEsdUJBQVBBLFFBQUEsQ0FBU0MsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDeEMsVUFBVSxDQUFDdUMsV0FBVyxDQUFDLENBQUMsQ0FBQztFQUFBLENBQzNELENBQUM7RUFFRCxvQkFDRW5JLDBEQUFBO0lBQUtrRCxLQUFLLEVBQUU7TUFBRW1GLFNBQVMsRUFBRTtJQUFPO0VBQUUsZ0JBQ2hDckksMERBQUEsYUFBSSxvRUFBZSxDQUFDLGVBQ3BCQSwwREFBQTtJQUNFa0QsS0FBSyxFQUFFO01BQ0xvRixPQUFPLEVBQUUsTUFBTTtNQUNmQyxjQUFjLEVBQUUsZUFBZTtNQUMvQkMsT0FBTyxFQUFFLE1BQU07TUFDZkMsVUFBVSxFQUFFLFNBQVM7TUFDckJDLFlBQVksRUFBRSxNQUFNO01BQ3BCQyxRQUFRLEVBQUU7SUFDWjtFQUFFLGdCQUVGM0ksMERBQUEsQ0FBQTRILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1Q1SSwwREFBQSxlQUFNLDRCQUFNLEVBQUMsQ0FBQStILFlBQVksYUFBWkEsWUFBWSx1QkFBWkEsWUFBWSxDQUFFYyxNQUFNLEtBQUksQ0FBUSxDQUFDLGVBQzlDN0ksMERBQUEsQ0FBQThELHFEQUFBO0lBQ0VHLFdBQVcsRUFBQywrQ0FBWTtJQUN4QmYsS0FBSyxFQUFFO01BQUU0RixLQUFLLEVBQUU7SUFBSSxDQUFFO0lBQ3RCdEUsS0FBSyxFQUFFb0IsVUFBVztJQUNsQm1ELFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHQyxDQUFDO01BQUEsT0FBS25ELGFBQWEsQ0FBQ21ELENBQUMsQ0FBQ0MsTUFBTSxDQUFDekUsS0FBSyxDQUFDO0lBQUE7RUFBQyxDQUNoRCxDQUFDLGVBQ0Z4RSwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUssT0FBTyxFQUFFb0MsWUFBYTtJQUFDeEMsSUFBSSxFQUFDO0VBQVMsR0FBQyxzQ0FBYyxDQUFDLGVBQzdEM0UsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFLLE9BQU8sRUFBRXNDO0VBQVksR0FBQyxvRUFBbUIsQ0FDNUMsQ0FBQyxlQUNSckgsMERBQUEsQ0FBQTRILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1Q1SSwwREFBQSxDQUFBMEUsdURBQUE7SUFBUTJCLElBQUksZUFBRXJHLDBEQUFBLENBQUNtRiwwREFBWSxNQUFFLENBQUU7SUFBQ1IsSUFBSSxFQUFDLFNBQVM7SUFBQ0ksT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRbkUsUUFBUSxvQkFBb0IsQ0FBQztJQUFBO0VBQUMsR0FBQyw4REFBa0IsQ0FDMUcsQ0FDSixDQUFDLGVBQ05aLDBEQUFBLENBQUFrSixxREFBQTtJQUNFQyxZQUFZLEVBQUU7TUFDWnhFLElBQUksRUFBRSxVQUFVO01BQ2hCb0UsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdyQixDQUFDLEVBQUVsQyxZQUFZO1FBQUEsT0FBS0MsZUFBZSxDQUFDRCxZQUFZLENBQUM7TUFBQTtJQUM5RCxDQUFFO0lBQ0Y4QixPQUFPLEVBQUVBLE9BQVE7SUFDakI4QixVQUFVLEVBQUVyQixZQUFZLENBQUMzRCxHQUFHLENBQUMsVUFBQzZELEVBQUUsRUFBRW9CLEtBQUs7TUFBQSxPQUFBQyxhQUFBO1FBQ3JDL0UsR0FBRyxFQUFFMEQsRUFBRSxDQUFDcEcsRUFBRTtRQUNWd0gsS0FBSyxFQUFFQSxLQUFLLEdBQUcsQ0FBQztRQUNoQi9HLElBQUksRUFBRTJGLEVBQUUsQ0FBQzNGO01BQUksR0FDVjJGLEVBQUU7SUFBQSxDQUNMLENBQUU7SUFDSnNCLFVBQVUsRUFBRTtNQUFFQyxRQUFRLEVBQUUsRUFBRTtNQUFFQyxlQUFlLEVBQUU7SUFBSyxDQUFFO0lBQ3BEQyxNQUFNLEVBQUU7TUFBRUMsQ0FBQyxFQUFFO0lBQWM7RUFBRSxDQUM5QixDQUFDLGVBQ0YzSiwwREFBQSxDQUFDZ0YseUVBQWE7SUFBQzRFLE9BQU8sRUFBRXlJO0VBQW1CLENBQUUsQ0FDMUMsQ0FBQztBQUVWLENBQUM7QUFFRCxpRUFBZUYsY0FBYyxFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN6SXNCO0FBR0k7QUFFd0Y7QUFDaEc7QUFDRDtBQUU5QyxJQUFNTSx1QkFBaUMsR0FBRyxTQUFwQ0EsdUJBQWlDQSxDQUFBLEVBQVM7RUFDOUMsSUFBTTlSLFFBQVEsR0FBR1Isd0RBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQU1TLFFBQVEsR0FBR0osNkRBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQUFLLFlBQUEsR0FBMEVULHdEQUFXLENBQ25GLFVBQUNVLEtBQWdCO01BQUEsT0FBS0EsS0FBSyxDQUFDNFIsWUFBWTtJQUFBLENBQzFDLENBQUM7SUFGT0EsWUFBWSxHQUFBN1IsWUFBQSxDQUFaNlIsWUFBWTtJQUFFelIsb0JBQW9CLEdBQUFKLFlBQUEsQ0FBcEJJLG9CQUFvQjtJQUFFMFIseUJBQXlCLEdBQUE5UixZQUFBLENBQXpCOFIseUJBQXlCO0VBR3JFLElBQUF4UixhQUFBLEdBQWVDLG9EQUFBLENBQUtDLE9BQU8sQ0FBQyxDQUFDO0lBQUFDLGNBQUEsR0FBQUMsY0FBQSxDQUFBSixhQUFBO0lBQXRCSyxJQUFJLEdBQUFGLGNBQUE7RUFFWCxJQUFNRyxZQUFZLEdBQUcsSUFBSUMsZUFBZSxDQUFDQyxRQUFRLENBQUNDLE1BQU0sQ0FBQztFQUN6RCxJQUFNQyxFQUFFLEdBQUdKLFlBQVksQ0FBQ0ssR0FBRyxDQUFDLElBQUksQ0FBQztFQUVqQyxJQUFBQyxTQUFBLEdBQThCN0IsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQThCLFVBQUEsR0FBQVQsY0FBQSxDQUFBUSxTQUFBO0lBQXRDRSxPQUFPLEdBQUFELFVBQUE7SUFBRUUsVUFBVSxHQUFBRixVQUFBOztFQUUxQjtFQUNBL0IsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSTRCLEVBQUUsRUFBRTtNQUNObEIsUUFBUSxDQUFDNFIsOEZBQXdCLENBQUNwUSxNQUFNLENBQUNOLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQyxNQUFNO01BQ0xMLElBQUksQ0FBQ1ksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCO0VBQ0YsQ0FBQyxFQUFFLENBQUN6QixRQUFRLEVBQUVrQixFQUFFLEVBQUVMLElBQUksQ0FBQyxDQUFDOztFQUV4QjtFQUNBdkIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSTRCLEVBQUUsSUFBSTZRLFlBQVksRUFBRTtNQUN0QmxSLElBQUksQ0FBQ2EsY0FBYyxDQUFDO1FBQ2xCQyxJQUFJLEVBQUVvUSxZQUFZLENBQUNwUSxJQUFJLElBQUksRUFBRTtRQUM3QkMsV0FBVyxFQUFFbVEsWUFBWSxDQUFDblEsV0FBVyxJQUFJO01BQzNDLENBQUMsQ0FBQztJQUNKO0VBQ0YsQ0FBQyxFQUFFLENBQUNtUSxZQUFZLEVBQUVsUixJQUFJLEVBQUVLLEVBQUUsQ0FBQyxDQUFDOztFQUU1QjtFQUNBNUIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDMFMseUJBQXlCLElBQUkxUSxPQUFPLEVBQUU7TUFDekMsSUFBSWhCLG9CQUFvQixFQUFFO1FBQ3hCd0IsdURBQUEsQ0FBUUMsS0FBSyxDQUFDekIsb0JBQW9CLENBQUM7TUFDckMsQ0FBQyxNQUFNO1FBQ0x3Qix1REFBQSxDQUFRRSxPQUFPLENBQUNkLEVBQUUsR0FBRyx1QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztRQUN2RWpCLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztNQUM3QjtJQUNGO0VBQ0YsQ0FBQyxFQUFFLENBQUMrUix5QkFBeUIsRUFBRTFSLG9CQUFvQixFQUFFWSxFQUFFLEVBQUVJLE9BQU8sRUFBRXJCLFFBQVEsQ0FBQyxDQUFDOztFQUU1RTtFQUNBLElBQU1nQyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUMsTUFBb0IsRUFBSztJQUN6QyxJQUFJaEIsRUFBRSxFQUFFO01BQ05sQixRQUFRLENBQUM2Uiw4RkFBd0IsQ0FBQztRQUFFM1EsRUFBRSxFQUFFTSxNQUFNLENBQUNOLEVBQUUsQ0FBQztRQUFFaUIsSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQ3BFckIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQztJQUNwQixDQUFDLE1BQU07TUFDTHpCLFFBQVEsQ0FBQzJSLDhGQUF3QixDQUFDO1FBQUV4UCxJQUFJLEVBQUVEO01BQU8sQ0FBQyxDQUFDLENBQUM7TUFDcERyQixJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtJQUNBRixVQUFVLENBQUMsSUFBSSxDQUFDO0VBQ2xCLENBQUM7RUFFRCxvQkFDRWxDLDBEQUFBLENBQUFBLHVEQUFBLHFCQUNFQSwwREFBQSxhQUFLNkIsRUFBRSxHQUFHLHlCQUF5QixHQUFHLDZCQUFrQyxDQUFDLGVBQ3pFN0IsMERBQUEsQ0FBQW9CLG9EQUFBO0lBQU1JLElBQUksRUFBRUEsSUFBSztJQUFDeUIsTUFBTSxFQUFDLFVBQVU7SUFBQ0wsUUFBUSxFQUFFQSxRQUFTO0lBQUNNLEtBQUssRUFBRTtNQUFFQyxRQUFRLEVBQUUsTUFBTTtNQUFFQyxNQUFNLEVBQUU7SUFBUztFQUFFLGdCQUNwR3BELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtFQUFFLGdCQUNwQnRELDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRyxnQkFDWnhELDBEQUFBLENBQUFvQixvREFBQSxDQUFNcUMsSUFBSTtJQUFDQyxLQUFLLEVBQUMsZ0NBQU87SUFBQ3BCLElBQUksRUFBQyxNQUFNO0lBQUNxQixLQUFLLEVBQUUsQ0FBQztNQUFFQyxRQUFRLEVBQUUsSUFBSTtNQUFFQyxPQUFPLEVBQUU7SUFBc0IsQ0FBQztFQUFFLGdCQUMvRjdELDBEQUFBLENBQUE4RCxxREFBQSxNQUFRLENBQ0MsQ0FDUixDQUFDLGVBQ045RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUcsZ0JBQ1p4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUk7SUFBQ0MsS0FBSyxFQUFDLHNDQUFRO0lBQUNwQixJQUFJLEVBQUM7RUFBYSxnQkFDMUN0QywwREFBQSxDQUFDUywrREFBUTtJQUFDZ0UsSUFBSSxFQUFFO0VBQUUsQ0FBRSxDQUNYLENBQ1IsQ0FDRixDQUFDLGVBQ056RSwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFBRSxnQkFDcEJ0RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUkscUJBQ1J6RCwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUMsSUFBSSxFQUFDLFNBQVM7SUFBQ0MsS0FBSztJQUFDQyxRQUFRLEVBQUMsUUFBUTtJQUFDQyxPQUFPLEVBQUU2TjtFQUEwQixHQUFDLFFBRTNFLENBQ0MsQ0FDUixDQUFDLGVBQ04zUywwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUkscUJBQ1J6RCwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUcsUUFBUSxFQUFDLFFBQVE7SUFBQ0UsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRbkUsUUFBUSxDQUFDLGlCQUFpQixDQUFDO0lBQUE7RUFBQyxHQUFDLFFBRTlELENBQ0MsQ0FDUixDQUNGLENBQ0QsQ0FDTixDQUFDO0FBRVAsQ0FBQztBQUVELGlFQUFlNlIsdUJBQXVCLEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEdhO0FBRUk7QUFFUjtBQUN1QjtBQUNTO0FBQzBEO0FBQzFHO0FBRS9CLElBQU1LLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUEsRUFBUztFQUM3QixJQUFNblMsUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQXVCLFNBQUEsR0FBd0M3QiwrQ0FBUSxDQUFNLEVBQUUsQ0FBQztJQUFBOEIsVUFBQSxHQUFBVCxjQUFBLENBQUFRLFNBQUE7SUFBbER5RCxZQUFZLEdBQUF4RCxVQUFBO0lBQUV5RCxlQUFlLEdBQUF6RCxVQUFBO0VBQ3BDLElBQUEwRCxVQUFBLEdBQW9DeEYsK0NBQVEsQ0FBQyxFQUFFLENBQUM7SUFBQXlGLFVBQUEsR0FBQXBFLGNBQUEsQ0FBQW1FLFVBQUE7SUFBekNFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQTlFLFlBQUEsR0FBZ0RULHdEQUFXLENBQUMsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUM0UixZQUFZO0lBQUEsRUFBQztJQUE3RkssYUFBYSxHQUFBbFMsWUFBQSxDQUFia1MsYUFBYTtJQUFFQyxvQkFBb0IsR0FBQW5TLFlBQUEsQ0FBcEJtUyxvQkFBb0I7RUFFM0MvUyxnREFBUyxDQUFDLFlBQU07SUFDZFUsUUFBUSxDQUFDa1MseUZBQWtCLENBQUMsQ0FBQyxDQUFDO0VBQ2hDLENBQUMsRUFBRSxDQUFDbFMsUUFBUSxDQUFDLENBQUM7RUFFZCxJQUFNb0YsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUlsRSxFQUFPLEVBQUs7SUFDOUJsQixRQUFRLENBQUM0UiwrRkFBd0IsQ0FBQzFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDakIsUUFBUSw0QkFBQW9GLE1BQUEsQ0FBNEJuRSxFQUFFLENBQUUsQ0FBQztFQUMzQyxDQUFDO0VBRUQsSUFBTW9FLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJcEUsRUFBTyxFQUFLO0lBQ2hDeUQsd0RBQVMsQ0FBQztNQUNSYSxLQUFLLEVBQUUsZUFBZTtNQUN0QkMsSUFBSSxFQUFFLG9DQUFvQztNQUMxQ0MsSUFBSSxFQUFFLFNBQVM7TUFDZkMsaUJBQWlCLEVBQUUsS0FBSztNQUN4QkMsZ0JBQWdCLEVBQUUsS0FBSztNQUN2QkMsSUFBSSwyWEFLSDtNQUNEQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFRO1FBQUEsSUFBQUMsY0FBQSxFQUFBQyxlQUFBO1FBQ2IsSUFBTUMsYUFBYSxJQUFBRixjQUFBLEdBQUdwQiw0REFBYSxDQUFDLENBQUMsY0FBQW9CLGNBQUEsdUJBQWZBLGNBQUEsQ0FBaUJJLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztRQUN2RSxJQUFNQyxZQUFZLElBQUFKLGVBQUEsR0FBR3JCLDREQUFhLENBQUMsQ0FBQyxjQUFBcUIsZUFBQSx1QkFBZkEsZUFBQSxDQUFpQkcsYUFBYSxDQUFDLGdCQUFnQixDQUFDO1FBRXJFRixhQUFhLGFBQWJBLGFBQWEsZUFBYkEsYUFBYSxDQUFFSSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBTTtVQUM3Q3JHLFFBQVEsQ0FBQ2lTLCtGQUF3QixDQUFDL1EsRUFBRSxDQUFDLENBQUMsQ0FBQ29GLElBQUksQ0FBQyxZQUFNO1lBQ2hEM0Isd0RBQVMsQ0FBQyxVQUFVLEVBQUUsNEJBQTRCLEVBQUUsU0FBUyxDQUFDO1lBQzlEM0UsUUFBUSxDQUFDa1MseUZBQWtCLENBQUMsQ0FBQyxDQUFDO1VBQ2hDLENBQUMsQ0FBQztVQUNGdk4seURBQVUsQ0FBQyxDQUFDO1FBQ2QsQ0FBQyxDQUFDO1FBRUZ5QixZQUFZLGFBQVpBLFlBQVksZUFBWkEsWUFBWSxDQUFFQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBTTtVQUM1QzFCLHlEQUFVLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQztNQUNKO0lBQ0YsQ0FBQyxDQUFDO0VBQ0osQ0FBQztFQUVELElBQU02QixZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQSxFQUFTO0lBQ3pCO0lBQ0F0QixhQUFhLENBQUNELFVBQVUsQ0FBQ3dCLElBQUksQ0FBQyxDQUFDLENBQUM7RUFDbEMsQ0FBQztFQUVELElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFBLEVBQVM7SUFDeEI7SUFDQXhCLGFBQWEsQ0FBQyxFQUFFLENBQUM7RUFDbkIsQ0FBQztFQUVELElBQU15QixPQUFPLEdBQUcsQ0FDZDtJQUFFbkIsS0FBSyxFQUFFLFFBQVE7SUFBRW9CLFNBQVMsRUFBRSxPQUFPO0lBQUVoRCxHQUFHLEVBQUUsT0FBTztJQUFFaUQsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDekU7SUFBRXJCLEtBQUssRUFBRSxPQUFPO0lBQUVvQixTQUFTLEVBQUUsTUFBTTtJQUFFaEQsR0FBRyxFQUFFLE1BQU07SUFBRWlELFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3RFO0lBQUVyQixLQUFLLEVBQUUsUUFBUTtJQUFFb0IsU0FBUyxFQUFFLGFBQWE7SUFBRWhELEdBQUcsRUFBRSxhQUFhO0lBQUVpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUNyRjtJQUNFckIsS0FBSyxFQUFFLFFBQVE7SUFDZjVCLEdBQUcsRUFBRSxRQUFRO0lBQ2JpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7SUFDcENDLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFHQyxDQUFTLEVBQUVDLE1BQVc7TUFBQSxvQkFDN0IzSCwwREFBQSxDQUFBNEgscURBQUE7UUFBT0MsSUFBSSxFQUFDO01BQVEsZ0JBQ2xCN0gsMERBQUEsQ0FBQTBFLHVEQUFBO1FBQVEyQixJQUFJLGVBQUVyRywwREFBQSxDQUFDa0YseURBQVksTUFBRSxDQUFFO1FBQUNQLElBQUksRUFBQyxTQUFTO1FBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUWdCLFVBQVUsQ0FBQzRCLE1BQU0sQ0FBQzlGLEVBQUUsQ0FBQztRQUFBO01BQUMsQ0FBRSxDQUFDLGVBQ3ZGN0IsMERBQUEsQ0FBQTBFLHVEQUFBO1FBQVEyQixJQUFJLGVBQUVyRywwREFBQSxDQUFDaUYseURBQWMsTUFBRSxDQUFFO1FBQUM2QyxNQUFNO1FBQUMvQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFrQixZQUFZLENBQUMwQixNQUFNLENBQUM5RixFQUFFLENBQUM7UUFBQTtNQUFDLENBQUUsQ0FDN0UsQ0FBQztJQUFBO0VBRVosQ0FBQyxDQUNGO0VBRUQsSUFBTWtHLFlBQVksR0FBRyxDQUFDZ0wsYUFBYSxJQUFJLEVBQUUsRUFBRS9LLE1BQU0sQ0FBQyxVQUFDQyxFQUFFO0lBQUEsSUFBQUMsUUFBQTtJQUFBLFFBQUFBLFFBQUEsR0FDbkRELEVBQUUsQ0FBQzNGLElBQUksY0FBQTRGLFFBQUEsdUJBQVBBLFFBQUEsQ0FBU0MsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDeEMsVUFBVSxDQUFDdUMsV0FBVyxDQUFDLENBQUMsQ0FBQztFQUFBLENBQzNELENBQUM7RUFFRCxvQkFDRW5JLDBEQUFBO0lBQUtrRCxLQUFLLEVBQUU7TUFBRW1GLFNBQVMsRUFBRTtJQUFPO0VBQUUsZ0JBQ2hDckksMERBQUEsYUFBSSxzSUFBMEIsQ0FBQyxlQUMvQkEsMERBQUE7SUFDRWtELEtBQUssRUFBRTtNQUNMb0YsT0FBTyxFQUFFLE1BQU07TUFDZkMsY0FBYyxFQUFFLGVBQWU7TUFDL0JDLE9BQU8sRUFBRSxNQUFNO01BQ2ZDLFVBQVUsRUFBRSxTQUFTO01BQ3JCQyxZQUFZLEVBQUUsTUFBTTtNQUNwQkMsUUFBUSxFQUFFO0lBQ1o7RUFBRSxnQkFFRjNJLDBEQUFBLENBQUE0SCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUNUksMERBQUEsZUFBTSw0QkFBTSxFQUFDLENBQUErSCxZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRWMsTUFBTSxLQUFJLENBQVEsQ0FBQyxlQUM5QzdJLDBEQUFBLENBQUE4RCxxREFBQTtJQUNFRyxXQUFXLEVBQUMsK0NBQVk7SUFDeEJmLEtBQUssRUFBRTtNQUFFNEYsS0FBSyxFQUFFO0lBQUksQ0FBRTtJQUN0QnRFLEtBQUssRUFBRW9CLFVBQVc7SUFDbEJtRCxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBR0MsQ0FBQztNQUFBLE9BQUtuRCxhQUFhLENBQUNtRCxDQUFDLENBQUNDLE1BQU0sQ0FBQ3pFLEtBQUssQ0FBQztJQUFBO0VBQUMsQ0FDaEQsQ0FBQyxlQUNGeEUsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFLLE9BQU8sRUFBRW9DLFlBQWE7SUFBQ3hDLElBQUksRUFBQztFQUFTLEdBQUMsc0NBQWMsQ0FBQyxlQUM3RDNFLDBEQUFBLENBQUEwRSx1REFBQTtJQUFRSyxPQUFPLEVBQUVzQztFQUFZLEdBQUMsb0VBQW1CLENBQzVDLENBQUMsZUFDUnJILDBEQUFBLENBQUE0SCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUNUksMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVEyQixJQUFJLGVBQUVyRywwREFBQSxDQUFDbUYsMERBQVksTUFBRSxDQUFFO0lBQUNSLElBQUksRUFBQyxTQUFTO0lBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUW5FLFFBQVEsdUJBQXVCLENBQUM7SUFBQTtFQUFDLEdBQUMsOERBQWtCLENBQzdHLENBQ0osQ0FBQyxlQUNOWiwwREFBQSxDQUFBa0oscURBQUE7SUFDRUMsWUFBWSxFQUFFO01BQ1p4RSxJQUFJLEVBQUUsVUFBVTtNQUNoQm9FLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHckIsQ0FBQyxFQUFFbEMsWUFBWTtRQUFBLE9BQUtDLGVBQWUsQ0FBQ0QsWUFBWSxDQUFDO01BQUE7SUFDOUQsQ0FBRTtJQUNGOEIsT0FBTyxFQUFFQSxPQUFRO0lBQ2pCOEIsVUFBVSxFQUFFckIsWUFBWSxDQUFDM0QsR0FBRyxDQUFDLFVBQUM2RCxFQUFFLEVBQUVvQixLQUFLO01BQUEsT0FBQUMsYUFBQTtRQUNyQy9FLEdBQUcsRUFBRTBELEVBQUUsQ0FBQ3BHLEVBQUU7UUFDVndILEtBQUssRUFBRUEsS0FBSyxHQUFHLENBQUM7UUFDaEIvRyxJQUFJLEVBQUUyRixFQUFFLENBQUMzRjtNQUFJLEdBQ1YyRixFQUFFO0lBQUEsQ0FDTCxDQUFFO0lBQ0pzQixVQUFVLEVBQUU7TUFBRUMsUUFBUSxFQUFFLEVBQUU7TUFBRUMsZUFBZSxFQUFFO0lBQUssQ0FBRTtJQUNwREMsTUFBTSxFQUFFO01BQUVDLENBQUMsRUFBRTtJQUFjO0VBQUUsQ0FDOUIsQ0FBQyxlQUNGM0osMERBQUEsQ0FBQ2dGLHlFQUFhO0lBQUM0RSxPQUFPLEVBQUVvSjtFQUFxQixDQUFFLENBQzVDLENBQUM7QUFFVixDQUFDO0FBRUQsaUVBQWVGLGdCQUFnQixFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN6SW9CO0FBR0k7QUFFNEc7QUFDcEg7QUFDRDtBQUU5QyxJQUFNTSw0QkFBc0MsR0FBRyxTQUF6Q0EsNEJBQXNDQSxDQUFBLEVBQVM7RUFDbkQsSUFBTXpTLFFBQVEsR0FBR1Isd0RBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQU1TLFFBQVEsR0FBR0osNkRBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQUFLLFlBQUEsR0FBb0ZULHdEQUFXLENBQzdGLFVBQUNVLEtBQWdCO01BQUEsT0FBS0EsS0FBSyxDQUFDdVMsaUJBQWlCO0lBQUEsQ0FDL0MsQ0FBQztJQUZPQSxpQkFBaUIsR0FBQXhTLFlBQUEsQ0FBakJ3UyxpQkFBaUI7SUFBRXBTLG9CQUFvQixHQUFBSixZQUFBLENBQXBCSSxvQkFBb0I7SUFBRXFTLDhCQUE4QixHQUFBelMsWUFBQSxDQUE5QnlTLDhCQUE4QjtFQUcvRSxJQUFBblMsYUFBQSxHQUFlQyxvREFBQSxDQUFLQyxPQUFPLENBQUMsQ0FBQztJQUFBQyxjQUFBLEdBQUFDLGNBQUEsQ0FBQUosYUFBQTtJQUF0QkssSUFBSSxHQUFBRixjQUFBO0VBRVgsSUFBTUcsWUFBWSxHQUFHLElBQUlDLGVBQWUsQ0FBQ0MsUUFBUSxDQUFDQyxNQUFNLENBQUM7RUFDekQsSUFBTUMsRUFBRSxHQUFHSixZQUFZLENBQUNLLEdBQUcsQ0FBQyxJQUFJLENBQUM7RUFFakMsSUFBQUMsU0FBQSxHQUE4QjdCLCtDQUFRLENBQUMsS0FBSyxDQUFDO0lBQUE4QixVQUFBLEdBQUFULGNBQUEsQ0FBQVEsU0FBQTtJQUF0Q0UsT0FBTyxHQUFBRCxVQUFBO0lBQUVFLFVBQVUsR0FBQUYsVUFBQTs7RUFFMUI7RUFDQS9CLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUk0QixFQUFFLEVBQUU7TUFDTmxCLFFBQVEsQ0FBQ3VTLHdHQUE2QixDQUFDL1EsTUFBTSxDQUFDTixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUMsTUFBTTtNQUNMTCxJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtFQUNGLENBQUMsRUFBRSxDQUFDekIsUUFBUSxFQUFFa0IsRUFBRSxFQUFFTCxJQUFJLENBQUMsQ0FBQzs7RUFFeEI7RUFDQXZCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUk0QixFQUFFLElBQUl3UixpQkFBaUIsRUFBRTtNQUMzQjdSLElBQUksQ0FBQ2EsY0FBYyxDQUFDO1FBQ2xCQyxJQUFJLEVBQUUrUSxpQkFBaUIsQ0FBQy9RLElBQUksSUFBSSxFQUFFO1FBQ2xDQyxXQUFXLEVBQUU4USxpQkFBaUIsQ0FBQzlRLFdBQVcsSUFBSTtNQUNoRCxDQUFDLENBQUM7SUFDSjtFQUNGLENBQUMsRUFBRSxDQUFDOFEsaUJBQWlCLEVBQUU3UixJQUFJLEVBQUVLLEVBQUUsQ0FBQyxDQUFDOztFQUVqQztFQUNBNUIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDcVQsOEJBQThCLElBQUlyUixPQUFPLEVBQUU7TUFDOUMsSUFBSWhCLG9CQUFvQixFQUFFO1FBQ3hCd0IsdURBQUEsQ0FBUUMsS0FBSyxDQUFDekIsb0JBQW9CLENBQUM7TUFDckMsQ0FBQyxNQUFNO1FBQ0x3Qix1REFBQSxDQUFRRSxPQUFPLENBQUNkLEVBQUUsR0FBRyx1QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztRQUN2RWpCLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQztNQUNsQztJQUNGO0VBQ0YsQ0FBQyxFQUFFLENBQUMwUyw4QkFBOEIsRUFBRXJTLG9CQUFvQixFQUFFWSxFQUFFLEVBQUVJLE9BQU8sRUFBRXJCLFFBQVEsQ0FBQyxDQUFDOztFQUVqRjtFQUNBLElBQU1nQyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUMsTUFBeUIsRUFBSztJQUM5QyxJQUFJaEIsRUFBRSxFQUFFO01BQ05sQixRQUFRLENBQUN3Uyx3R0FBNkIsQ0FBQztRQUFFdFIsRUFBRSxFQUFFTSxNQUFNLENBQUNOLEVBQUUsQ0FBQztRQUFFaUIsSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQ3pFckIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQztJQUNwQixDQUFDLE1BQU07TUFDTHpCLFFBQVEsQ0FBQ3NTLHdHQUE2QixDQUFDO1FBQUVuUSxJQUFJLEVBQUVEO01BQU8sQ0FBQyxDQUFDLENBQUM7TUFDekRyQixJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtJQUNBRixVQUFVLENBQUMsSUFBSSxDQUFDO0VBQ2xCLENBQUM7RUFFRCxvQkFDRWxDLDBEQUFBLENBQUFBLHVEQUFBLHFCQUNFQSwwREFBQSxhQUFLNkIsRUFBRSxHQUFHLGlCQUFpQixHQUFHLHFCQUEwQixDQUFDLGVBQ3pEN0IsMERBQUEsQ0FBQW9CLG9EQUFBO0lBQU1JLElBQUksRUFBRUEsSUFBSztJQUFDeUIsTUFBTSxFQUFDLFVBQVU7SUFBQ0wsUUFBUSxFQUFFQSxRQUFTO0lBQUNNLEtBQUssRUFBRTtNQUFFQyxRQUFRLEVBQUUsTUFBTTtNQUFFQyxNQUFNLEVBQUU7SUFBUztFQUFFLGdCQUNwR3BELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtFQUFFLGdCQUNwQnRELDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRyxnQkFDWnhELDBEQUFBLENBQUFvQixvREFBQSxDQUFNcUMsSUFBSTtJQUFDQyxLQUFLLEVBQUMsZ0NBQU87SUFBQ3BCLElBQUksRUFBQyxNQUFNO0lBQUNxQixLQUFLLEVBQUUsQ0FBQztNQUFFQyxRQUFRLEVBQUUsSUFBSTtNQUFFQyxPQUFPLEVBQUU7SUFBc0IsQ0FBQztFQUFFLGdCQUMvRjdELDBEQUFBLENBQUE4RCxxREFBQSxNQUFRLENBQ0MsQ0FDUixDQUFDLGVBQ045RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUcsZ0JBQ1p4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUk7SUFBQ0MsS0FBSyxFQUFDLHNDQUFRO0lBQUNwQixJQUFJLEVBQUM7RUFBYSxnQkFDMUN0QywwREFBQSxDQUFDUywrREFBUTtJQUFDZ0UsSUFBSSxFQUFFO0VBQUUsQ0FBRSxDQUNYLENBQ1IsQ0FDRixDQUFDLGVBQ056RSwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFBRSxnQkFDcEJ0RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUkscUJBQ1J6RCwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUMsSUFBSSxFQUFDLFNBQVM7SUFBQ0MsS0FBSztJQUFDQyxRQUFRLEVBQUMsUUFBUTtJQUFDQyxPQUFPLEVBQUV3TztFQUErQixHQUFDLFFBRWhGLENBQ0MsQ0FDUixDQUFDLGVBQ050VCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUkscUJBQ1J6RCwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUcsUUFBUSxFQUFDLFFBQVE7SUFBQ0UsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRbkUsUUFBUSxDQUFDLHNCQUFzQixDQUFDO0lBQUE7RUFBQyxHQUFDLFFBRW5FLENBQ0MsQ0FDUixDQUNGLENBQ0QsQ0FDTixDQUFDO0FBRVAsQ0FBQztBQUVELGlFQUFld1MsNEJBQTRCLEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEdRO0FBRUk7QUFFUjtBQUN1QjtBQUNTO0FBQzhFO0FBQzlIO0FBRS9CLElBQU1LLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUEsRUFBUztFQUNsQyxJQUFNOVMsUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQXVCLFNBQUEsR0FBd0M3QiwrQ0FBUSxDQUFNLEVBQUUsQ0FBQztJQUFBOEIsVUFBQSxHQUFBVCxjQUFBLENBQUFRLFNBQUE7SUFBbER5RCxZQUFZLEdBQUF4RCxVQUFBO0lBQUV5RCxlQUFlLEdBQUF6RCxVQUFBO0VBQ3BDLElBQUEwRCxVQUFBLEdBQW9DeEYsK0NBQVEsQ0FBQyxFQUFFLENBQUM7SUFBQXlGLFVBQUEsR0FBQXBFLGNBQUEsQ0FBQW1FLFVBQUE7SUFBekNFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQTlFLFlBQUEsR0FBMERULHdEQUFXLENBQUMsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUN1UyxpQkFBaUI7SUFBQSxFQUFDO0lBQTVHSyxrQkFBa0IsR0FBQTdTLFlBQUEsQ0FBbEI2UyxrQkFBa0I7SUFBRUMseUJBQXlCLEdBQUE5UyxZQUFBLENBQXpCOFMseUJBQXlCO0VBRXJEMVQsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2RVLFFBQVEsQ0FBQzZTLG1HQUF1QixDQUFDLENBQUMsQ0FBQztFQUNyQyxDQUFDLEVBQUUsQ0FBQzdTLFFBQVEsQ0FBQyxDQUFDO0VBRWQsSUFBTW9GLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJbEUsRUFBTyxFQUFLO0lBQzlCbEIsUUFBUSxDQUFDdVMseUdBQTZCLENBQUNyUixFQUFFLENBQUMsQ0FBQztJQUMzQ2pCLFFBQVEsaUNBQUFvRixNQUFBLENBQWlDbkUsRUFBRSxDQUFFLENBQUM7RUFDaEQsQ0FBQztFQUVELElBQU1vRSxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBSXBFLEVBQU8sRUFBSztJQUNoQ3lELHdEQUFTLENBQUM7TUFDUmEsS0FBSyxFQUFFLGVBQWU7TUFDdEJDLElBQUksRUFBRSxvQ0FBb0M7TUFDMUNDLElBQUksRUFBRSxTQUFTO01BQ2ZDLGlCQUFpQixFQUFFLEtBQUs7TUFDeEJDLGdCQUFnQixFQUFFLEtBQUs7TUFDdkJDLElBQUksMlhBS0g7TUFDREMsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUEsRUFBUTtRQUFBLElBQUFDLGNBQUEsRUFBQUMsZUFBQTtRQUNiLElBQU1DLGFBQWEsSUFBQUYsY0FBQSxHQUFHcEIsNERBQWEsQ0FBQyxDQUFDLGNBQUFvQixjQUFBLHVCQUFmQSxjQUFBLENBQWlCSSxhQUFhLENBQUMsaUJBQWlCLENBQUM7UUFDdkUsSUFBTUMsWUFBWSxJQUFBSixlQUFBLEdBQUdyQiw0REFBYSxDQUFDLENBQUMsY0FBQXFCLGVBQUEsdUJBQWZBLGVBQUEsQ0FBaUJHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUVyRUYsYUFBYSxhQUFiQSxhQUFhLGVBQWJBLGFBQWEsQ0FBRUksZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDN0NyRyxRQUFRLENBQUM0Uyx5R0FBNkIsQ0FBQzFSLEVBQUUsQ0FBQyxDQUFDLENBQUNvRixJQUFJLENBQUMsWUFBTTtZQUNyRDNCLHdEQUFTLENBQUMsVUFBVSxFQUFFLDRCQUE0QixFQUFFLFNBQVMsQ0FBQztZQUM5RDNFLFFBQVEsQ0FBQzZTLG1HQUF1QixDQUFDLENBQUMsQ0FBQztVQUNyQyxDQUFDLENBQUM7VUFDRmxPLHlEQUFVLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQztRQUVGeUIsWUFBWSxhQUFaQSxZQUFZLGVBQVpBLFlBQVksQ0FBRUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDNUMxQix5REFBVSxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUM7TUFDSjtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxJQUFNNkIsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztJQUN6QjtJQUNBdEIsYUFBYSxDQUFDRCxVQUFVLENBQUN3QixJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ2xDLENBQUM7RUFFRCxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQSxFQUFTO0lBQ3hCO0lBQ0F4QixhQUFhLENBQUMsRUFBRSxDQUFDO0VBQ25CLENBQUM7RUFFRCxJQUFNeUIsT0FBTyxHQUFHLENBQ2Q7SUFBRW5CLEtBQUssRUFBRSxRQUFRO0lBQUVvQixTQUFTLEVBQUUsT0FBTztJQUFFaEQsR0FBRyxFQUFFLE9BQU87SUFBRWlELFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3pFO0lBQUVyQixLQUFLLEVBQUUsT0FBTztJQUFFb0IsU0FBUyxFQUFFLE1BQU07SUFBRWhELEdBQUcsRUFBRSxNQUFNO0lBQUVpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUN0RTtJQUFFckIsS0FBSyxFQUFFLFFBQVE7SUFBRW9CLFNBQVMsRUFBRSxhQUFhO0lBQUVoRCxHQUFHLEVBQUUsYUFBYTtJQUFFaUQsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDckY7SUFDRXJCLEtBQUssRUFBRSxRQUFRO0lBQ2Y1QixHQUFHLEVBQUUsUUFBUTtJQUNiaUQsVUFBVSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0lBQ3BDQyxNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBR0MsQ0FBUyxFQUFFQyxNQUFXO01BQUEsb0JBQzdCM0gsMERBQUEsQ0FBQTRILHFEQUFBO1FBQU9DLElBQUksRUFBQztNQUFRLGdCQUNsQjdILDBEQUFBLENBQUEwRSx1REFBQTtRQUFRMkIsSUFBSSxlQUFFckcsMERBQUEsQ0FBQ2tGLHlEQUFZLE1BQUUsQ0FBRTtRQUFDUCxJQUFJLEVBQUMsU0FBUztRQUFDSSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFnQixVQUFVLENBQUM0QixNQUFNLENBQUM5RixFQUFFLENBQUM7UUFBQTtNQUFDLENBQUUsQ0FBQyxlQUN2RjdCLDBEQUFBLENBQUEwRSx1REFBQTtRQUFRMkIsSUFBSSxlQUFFckcsMERBQUEsQ0FBQ2lGLHlEQUFjLE1BQUUsQ0FBRTtRQUFDNkMsTUFBTTtRQUFDL0MsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7VUFBQSxPQUFRa0IsWUFBWSxDQUFDMEIsTUFBTSxDQUFDOUYsRUFBRSxDQUFDO1FBQUE7TUFBQyxDQUFFLENBQzdFLENBQUM7SUFBQTtFQUVaLENBQUMsQ0FDRjtFQUVELElBQU1rRyxZQUFZLEdBQUcsQ0FBQzJMLGtCQUFrQixJQUFJLEVBQUUsRUFBRTFMLE1BQU0sQ0FBQyxVQUFDQyxFQUFFO0lBQUEsSUFBQUMsUUFBQTtJQUFBLFFBQUFBLFFBQUEsR0FDeERELEVBQUUsQ0FBQzNGLElBQUksY0FBQTRGLFFBQUEsdUJBQVBBLFFBQUEsQ0FBU0MsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDeEMsVUFBVSxDQUFDdUMsV0FBVyxDQUFDLENBQUMsQ0FBQztFQUFBLENBQzNELENBQUM7RUFFRCxvQkFDRW5JLDBEQUFBO0lBQUtrRCxLQUFLLEVBQUU7TUFBRW1GLFNBQVMsRUFBRTtJQUFPO0VBQUUsZ0JBQ2hDckksMERBQUEsYUFBSSxzRkFBa0IsQ0FBQyxlQUN2QkEsMERBQUE7SUFDRWtELEtBQUssRUFBRTtNQUNMb0YsT0FBTyxFQUFFLE1BQU07TUFDZkMsY0FBYyxFQUFFLGVBQWU7TUFDL0JDLE9BQU8sRUFBRSxNQUFNO01BQ2ZDLFVBQVUsRUFBRSxTQUFTO01BQ3JCQyxZQUFZLEVBQUUsTUFBTTtNQUNwQkMsUUFBUSxFQUFFO0lBQ1o7RUFBRSxnQkFFRjNJLDBEQUFBLENBQUE0SCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUNUksMERBQUEsZUFBTSw0QkFBTSxFQUFDLENBQUErSCxZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRWMsTUFBTSxLQUFJLENBQVEsQ0FBQyxlQUM5QzdJLDBEQUFBLENBQUE4RCxxREFBQTtJQUNFRyxXQUFXLEVBQUMsK0NBQVk7SUFDeEJmLEtBQUssRUFBRTtNQUFFNEYsS0FBSyxFQUFFO0lBQUksQ0FBRTtJQUN0QnRFLEtBQUssRUFBRW9CLFVBQVc7SUFDbEJtRCxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBR0MsQ0FBQztNQUFBLE9BQUtuRCxhQUFhLENBQUNtRCxDQUFDLENBQUNDLE1BQU0sQ0FBQ3pFLEtBQUssQ0FBQztJQUFBO0VBQUMsQ0FDaEQsQ0FBQyxlQUNGeEUsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFLLE9BQU8sRUFBRW9DLFlBQWE7SUFBQ3hDLElBQUksRUFBQztFQUFTLEdBQUMsc0NBQWMsQ0FBQyxlQUM3RDNFLDBEQUFBLENBQUEwRSx1REFBQTtJQUFRSyxPQUFPLEVBQUVzQztFQUFZLEdBQUMsb0VBQW1CLENBQzVDLENBQUMsZUFDUnJILDBEQUFBLENBQUE0SCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUNUksMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVEyQixJQUFJLGVBQUVyRywwREFBQSxDQUFDbUYsMERBQVksTUFBRSxDQUFFO0lBQUNSLElBQUksRUFBQyxTQUFTO0lBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUW5FLFFBQVEsNEJBQTRCLENBQUM7SUFBQTtFQUFDLEdBQUMsOERBQWtCLENBQ2xILENBQ0osQ0FBQyxlQUNOWiwwREFBQSxDQUFBa0oscURBQUE7SUFDRUMsWUFBWSxFQUFFO01BQ1p4RSxJQUFJLEVBQUUsVUFBVTtNQUNoQm9FLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHckIsQ0FBQyxFQUFFbEMsWUFBWTtRQUFBLE9BQUtDLGVBQWUsQ0FBQ0QsWUFBWSxDQUFDO01BQUE7SUFDOUQsQ0FBRTtJQUNGOEIsT0FBTyxFQUFFQSxPQUFRO0lBQ2pCOEIsVUFBVSxFQUFFckIsWUFBWSxDQUFDM0QsR0FBRyxDQUFDLFVBQUM2RCxFQUFFLEVBQUVvQixLQUFLO01BQUEsT0FBQUMsYUFBQTtRQUNyQy9FLEdBQUcsRUFBRTBELEVBQUUsQ0FBQ3BHLEVBQUU7UUFDVndILEtBQUssRUFBRUEsS0FBSyxHQUFHLENBQUM7UUFDaEIvRyxJQUFJLEVBQUUyRixFQUFFLENBQUMzRjtNQUFJLEdBQ1YyRixFQUFFO0lBQUEsQ0FDTCxDQUFFO0lBQ0pzQixVQUFVLEVBQUU7TUFBRUMsUUFBUSxFQUFFLEVBQUU7TUFBRUMsZUFBZSxFQUFFO0lBQUssQ0FBRTtJQUNwREMsTUFBTSxFQUFFO01BQUVDLENBQUMsRUFBRTtJQUFjO0VBQUUsQ0FDOUIsQ0FBQyxlQUNGM0osMERBQUEsQ0FBQ2dGLHlFQUFhO0lBQUM0RSxPQUFPLEVBQUUrSjtFQUEwQixDQUFFLENBQ2pELENBQUM7QUFFVixDQUFDO0FBRUQsaUVBQWVGLHFCQUFxQixFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN6SWU7QUFHSTtBQUV1RTtBQUMvRTtBQUNEO0FBRTlDLElBQU1NLG1CQUE2QixHQUFHLFNBQWhDQSxtQkFBNkJBLENBQUEsRUFBUztFQUMxQyxJQUFNcFQsUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQUssWUFBQSxHQUFrRVQsd0RBQVcsQ0FDM0UsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUNrVCxRQUFRO0lBQUEsQ0FDdEMsQ0FBQztJQUZPQSxRQUFRLEdBQUFuVCxZQUFBLENBQVJtVCxRQUFRO0lBQUUvUyxvQkFBb0IsR0FBQUosWUFBQSxDQUFwQkksb0JBQW9CO0lBQUVnVCxxQkFBcUIsR0FBQXBULFlBQUEsQ0FBckJvVCxxQkFBcUI7RUFHN0QsSUFBQTlTLGFBQUEsR0FBZUMsb0RBQUEsQ0FBS0MsT0FBTyxDQUFDLENBQUM7SUFBQUMsY0FBQSxHQUFBQyxjQUFBLENBQUFKLGFBQUE7SUFBdEJLLElBQUksR0FBQUYsY0FBQTtFQUVYLElBQU1HLFlBQVksR0FBRyxJQUFJQyxlQUFlLENBQUNDLFFBQVEsQ0FBQ0MsTUFBTSxDQUFDO0VBQ3pELElBQU1DLEVBQUUsR0FBR0osWUFBWSxDQUFDSyxHQUFHLENBQUMsSUFBSSxDQUFDO0VBRWpDLElBQUFDLFNBQUEsR0FBOEI3QiwrQ0FBUSxDQUFDLEtBQUssQ0FBQztJQUFBOEIsVUFBQSxHQUFBVCxjQUFBLENBQUFRLFNBQUE7SUFBdENFLE9BQU8sR0FBQUQsVUFBQTtJQUFFRSxVQUFVLEdBQUFGLFVBQUE7O0VBRTFCO0VBQ0EvQixnREFBUyxDQUFDLFlBQU07SUFDZCxJQUFJNEIsRUFBRSxFQUFFO01BQ05sQixRQUFRLENBQUNrVCxxRkFBb0IsQ0FBQzFSLE1BQU0sQ0FBQ04sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDLE1BQU07TUFDTEwsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEI7RUFDRixDQUFDLEVBQUUsQ0FBQ3pCLFFBQVEsRUFBRWtCLEVBQUUsRUFBRUwsSUFBSSxDQUFDLENBQUM7O0VBRXhCO0VBQ0F2QixnREFBUyxDQUFDLFlBQU07SUFDZCxJQUFJNEIsRUFBRSxJQUFJbVMsUUFBUSxFQUFFO01BQ2xCeFMsSUFBSSxDQUFDYSxjQUFjLENBQUM7UUFDbEJDLElBQUksRUFBRTBSLFFBQVEsQ0FBQzFSLElBQUksSUFBSSxFQUFFO1FBQ3pCQyxXQUFXLEVBQUV5UixRQUFRLENBQUN6UixXQUFXLElBQUk7TUFDdkMsQ0FBQyxDQUFDO0lBQ0o7RUFDRixDQUFDLEVBQUUsQ0FBQ3lSLFFBQVEsRUFBRXhTLElBQUksRUFBRUssRUFBRSxDQUFDLENBQUM7O0VBRXhCO0VBQ0E1QixnREFBUyxDQUFDLFlBQU07SUFDZCxJQUFJLENBQUNnVSxxQkFBcUIsSUFBSWhTLE9BQU8sRUFBRTtNQUNyQyxJQUFJaEIsb0JBQW9CLEVBQUU7UUFDeEJ3Qix1REFBQSxDQUFRQyxLQUFLLENBQUN6QixvQkFBb0IsQ0FBQztNQUNyQyxDQUFDLE1BQU07UUFDTHdCLHVEQUFBLENBQVFFLE9BQU8sQ0FBQ2QsRUFBRSxHQUFHLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ3ZFakIsUUFBUSxDQUFDLFlBQVksQ0FBQztNQUN4QjtJQUNGO0VBQ0YsQ0FBQyxFQUFFLENBQUNxVCxxQkFBcUIsRUFBRWhULG9CQUFvQixFQUFFWSxFQUFFLEVBQUVJLE9BQU8sRUFBRXJCLFFBQVEsQ0FBQyxDQUFDOztFQUV4RTtFQUNBLElBQU1nQyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUMsTUFBZ0IsRUFBSztJQUNyQyxJQUFJaEIsRUFBRSxFQUFFO01BQ05sQixRQUFRLENBQUNtVCxxRkFBb0IsQ0FBQztRQUFFalMsRUFBRSxFQUFFTSxNQUFNLENBQUNOLEVBQUUsQ0FBQztRQUFFaUIsSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQ2hFckIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQztJQUNwQixDQUFDLE1BQU07TUFDTHpCLFFBQVEsQ0FBQ2lULHFGQUFvQixDQUFDO1FBQUU5USxJQUFJLEVBQUVEO01BQU8sQ0FBQyxDQUFDLENBQUM7TUFDaERyQixJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtJQUNBRixVQUFVLENBQUMsSUFBSSxDQUFDO0VBQ2xCLENBQUM7RUFFRCxvQkFDRWxDLDBEQUFBLENBQUFBLHVEQUFBLHFCQUNFQSwwREFBQSxhQUFLNkIsRUFBRSxHQUFHLGFBQWEsR0FBRyxpQkFBc0IsQ0FBQyxlQUNqRDdCLDBEQUFBLENBQUFvQixvREFBQTtJQUFNSSxJQUFJLEVBQUVBLElBQUs7SUFBQ3lCLE1BQU0sRUFBQyxVQUFVO0lBQUNMLFFBQVEsRUFBRUEsUUFBUztJQUFDTSxLQUFLLEVBQUU7TUFBRUMsUUFBUSxFQUFFLE1BQU07TUFBRUMsTUFBTSxFQUFFO0lBQVM7RUFBRSxnQkFDcEdwRCwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFBRSxnQkFDcEJ0RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUcsZ0JBQ1p4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUk7SUFBQ0MsS0FBSyxFQUFDLGdDQUFPO0lBQUNwQixJQUFJLEVBQUMsTUFBTTtJQUFDcUIsS0FBSyxFQUFFLENBQUM7TUFBRUMsUUFBUSxFQUFFLElBQUk7TUFBRUMsT0FBTyxFQUFFO0lBQXNCLENBQUM7RUFBRSxnQkFDL0Y3RCwwREFBQSxDQUFBOEQscURBQUEsTUFBUSxDQUNDLENBQ1IsQ0FBQyxlQUNOOUQsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFHLGdCQUNaeEQsMERBQUEsQ0FBQW9CLG9EQUFBLENBQU1xQyxJQUFJO0lBQUNDLEtBQUssRUFBQyxzQ0FBUTtJQUFDcEIsSUFBSSxFQUFDO0VBQWEsZ0JBQzFDdEMsMERBQUEsQ0FBQ1MsK0RBQVE7SUFBQ2dFLElBQUksRUFBRTtFQUFFLENBQUUsQ0FDWCxDQUNSLENBQ0YsQ0FBQyxlQUNOekUsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0VBQUUsZ0JBQ3BCdEQsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLGdCQUNYeEQsMERBQUEsQ0FBQW9CLG9EQUFBLENBQU1xQyxJQUFJLHFCQUNSekQsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFDLElBQUksRUFBQyxTQUFTO0lBQUNDLEtBQUs7SUFBQ0MsUUFBUSxFQUFDLFFBQVE7SUFBQ0MsT0FBTyxFQUFFbVA7RUFBc0IsR0FBQyxRQUV2RSxDQUNDLENBQ1IsQ0FBQyxlQUNOalUsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLGdCQUNYeEQsMERBQUEsQ0FBQW9CLG9EQUFBLENBQU1xQyxJQUFJLHFCQUNSekQsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFHLFFBQVEsRUFBQyxRQUFRO0lBQUNFLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUW5FLFFBQVEsQ0FBQyxZQUFZLENBQUM7SUFBQTtFQUFDLEdBQUMsUUFFekQsQ0FDQyxDQUNSLENBQ0YsQ0FDRCxDQUNOLENBQUM7QUFFUCxDQUFDO0FBRUQsaUVBQWVtVCxtQkFBbUIsRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0R2lCO0FBRUk7QUFFUjtBQUN1QjtBQUNTO0FBQ3lDO0FBQ3pGO0FBRS9CLElBQU1LLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBLEVBQVM7RUFDekIsSUFBTXpULFFBQVEsR0FBR1Isd0RBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQU1TLFFBQVEsR0FBR0osNkRBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQUF1QixTQUFBLEdBQXdDN0IsK0NBQVEsQ0FBTSxFQUFFLENBQUM7SUFBQThCLFVBQUEsR0FBQVQsY0FBQSxDQUFBUSxTQUFBO0lBQWxEeUQsWUFBWSxHQUFBeEQsVUFBQTtJQUFFeUQsZUFBZSxHQUFBekQsVUFBQTtFQUNwQyxJQUFBMEQsVUFBQSxHQUFvQ3hGLCtDQUFRLENBQUMsRUFBRSxDQUFDO0lBQUF5RixVQUFBLEdBQUFwRSxjQUFBLENBQUFtRSxVQUFBO0lBQXpDRSxVQUFVLEdBQUFELFVBQUE7SUFBRUUsYUFBYSxHQUFBRixVQUFBO0VBQ2hDLElBQUE5RSxZQUFBLEdBQXdDVCx3REFBVyxDQUFDLFVBQUNVLEtBQWdCO01BQUEsT0FBS0EsS0FBSyxDQUFDa1QsUUFBUTtJQUFBLEVBQUM7SUFBakZLLFNBQVMsR0FBQXhULFlBQUEsQ0FBVHdULFNBQVM7SUFBRUMsZ0JBQWdCLEdBQUF6VCxZQUFBLENBQWhCeVQsZ0JBQWdCO0VBRW5DclUsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2RVLFFBQVEsQ0FBQ3dULGdGQUFjLENBQUMsQ0FBQyxDQUFDO0VBQzVCLENBQUMsRUFBRSxDQUFDeFQsUUFBUSxDQUFDLENBQUM7RUFFZCxJQUFNb0YsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUlsRSxFQUFPLEVBQUs7SUFDOUJsQixRQUFRLENBQUNrVCxzRkFBb0IsQ0FBQ2hTLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDakIsUUFBUSx1QkFBQW9GLE1BQUEsQ0FBdUJuRSxFQUFFLENBQUUsQ0FBQztFQUN0QyxDQUFDO0VBRUQsSUFBTW9FLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJcEUsRUFBTyxFQUFLO0lBQ2hDeUQsd0RBQVMsQ0FBQztNQUNSYSxLQUFLLEVBQUUsZUFBZTtNQUN0QkMsSUFBSSxFQUFFLG9DQUFvQztNQUMxQ0MsSUFBSSxFQUFFLFNBQVM7TUFDZkMsaUJBQWlCLEVBQUUsS0FBSztNQUN4QkMsZ0JBQWdCLEVBQUUsS0FBSztNQUN2QkMsSUFBSSwyWEFLSDtNQUNEQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFRO1FBQUEsSUFBQUMsY0FBQSxFQUFBQyxlQUFBO1FBQ2IsSUFBTUMsYUFBYSxJQUFBRixjQUFBLEdBQUdwQiw0REFBYSxDQUFDLENBQUMsY0FBQW9CLGNBQUEsdUJBQWZBLGNBQUEsQ0FBaUJJLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztRQUN2RSxJQUFNQyxZQUFZLElBQUFKLGVBQUEsR0FBR3JCLDREQUFhLENBQUMsQ0FBQyxjQUFBcUIsZUFBQSx1QkFBZkEsZUFBQSxDQUFpQkcsYUFBYSxDQUFDLGdCQUFnQixDQUFDO1FBRXJFRixhQUFhLGFBQWJBLGFBQWEsZUFBYkEsYUFBYSxDQUFFSSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBTTtVQUM3Q3JHLFFBQVEsQ0FBQ3VULHNGQUFvQixDQUFDclMsRUFBRSxDQUFDLENBQUMsQ0FBQ29GLElBQUksQ0FBQyxZQUFNO1lBQzVDM0Isd0RBQVMsQ0FBQyxVQUFVLEVBQUUsNEJBQTRCLEVBQUUsU0FBUyxDQUFDO1lBQzlEM0UsUUFBUSxDQUFDd1QsZ0ZBQWMsQ0FBQyxDQUFDLENBQUM7VUFDNUIsQ0FBQyxDQUFDO1VBQ0Y3Tyx5REFBVSxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUM7UUFFRnlCLFlBQVksYUFBWkEsWUFBWSxlQUFaQSxZQUFZLENBQUVDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFNO1VBQzVDMUIseURBQVUsQ0FBQyxDQUFDO1FBQ2QsQ0FBQyxDQUFDO01BQ0o7SUFDRixDQUFDLENBQUM7RUFDSixDQUFDO0VBRUQsSUFBTTZCLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBLEVBQVM7SUFDekI7SUFDQXRCLGFBQWEsQ0FBQ0QsVUFBVSxDQUFDd0IsSUFBSSxDQUFDLENBQUMsQ0FBQztFQUNsQyxDQUFDO0VBRUQsSUFBTUMsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUEsRUFBUztJQUN4QjtJQUNBeEIsYUFBYSxDQUFDLEVBQUUsQ0FBQztFQUNuQixDQUFDO0VBRUQsSUFBTXlCLE9BQU8sR0FBRyxDQUNkO0lBQUVuQixLQUFLLEVBQUUsUUFBUTtJQUFFb0IsU0FBUyxFQUFFLE9BQU87SUFBRWhELEdBQUcsRUFBRSxPQUFPO0lBQUVpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUN6RTtJQUFFckIsS0FBSyxFQUFFLE9BQU87SUFBRW9CLFNBQVMsRUFBRSxNQUFNO0lBQUVoRCxHQUFHLEVBQUUsTUFBTTtJQUFFaUQsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDdEU7SUFBRXJCLEtBQUssRUFBRSxRQUFRO0lBQUVvQixTQUFTLEVBQUUsYUFBYTtJQUFFaEQsR0FBRyxFQUFFLGFBQWE7SUFBRWlELFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3JGO0lBQ0VyQixLQUFLLEVBQUUsUUFBUTtJQUNmNUIsR0FBRyxFQUFFLFFBQVE7SUFDYmlELFVBQVUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztJQUNwQ0MsTUFBTSxFQUFFLFNBQVJBLE1BQU1BLENBQUdDLENBQVMsRUFBRUMsTUFBVztNQUFBLG9CQUM3QjNILDBEQUFBLENBQUE0SCxxREFBQTtRQUFPQyxJQUFJLEVBQUM7TUFBUSxnQkFDbEI3SCwwREFBQSxDQUFBMEUsdURBQUE7UUFBUTJCLElBQUksZUFBRXJHLDBEQUFBLENBQUNrRix5REFBWSxNQUFFLENBQUU7UUFBQ1AsSUFBSSxFQUFDLFNBQVM7UUFBQ0ksT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7VUFBQSxPQUFRZ0IsVUFBVSxDQUFDNEIsTUFBTSxDQUFDOUYsRUFBRSxDQUFDO1FBQUE7TUFBQyxDQUFFLENBQUMsZUFDdkY3QiwwREFBQSxDQUFBMEUsdURBQUE7UUFBUTJCLElBQUksZUFBRXJHLDBEQUFBLENBQUNpRix5REFBYyxNQUFFLENBQUU7UUFBQzZDLE1BQU07UUFBQy9DLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUWtCLFlBQVksQ0FBQzBCLE1BQU0sQ0FBQzlGLEVBQUUsQ0FBQztRQUFBO01BQUMsQ0FBRSxDQUM3RSxDQUFDO0lBQUE7RUFFWixDQUFDLENBQ0Y7RUFFRCxJQUFNa0csWUFBWSxHQUFHLENBQUNzTSxTQUFTLElBQUksRUFBRSxFQUFFck0sTUFBTSxDQUFDLFVBQUNDLEVBQUU7SUFBQSxJQUFBQyxRQUFBO0lBQUEsUUFBQUEsUUFBQSxHQUMvQ0QsRUFBRSxDQUFDM0YsSUFBSSxjQUFBNEYsUUFBQSx1QkFBUEEsUUFBQSxDQUFTQyxXQUFXLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUN4QyxVQUFVLENBQUN1QyxXQUFXLENBQUMsQ0FBQyxDQUFDO0VBQUEsQ0FDM0QsQ0FBQztFQUVELG9CQUNFbkksMERBQUE7SUFBS2tELEtBQUssRUFBRTtNQUFFbUYsU0FBUyxFQUFFO0lBQU87RUFBRSxnQkFDaENySSwwREFBQSxhQUFJLDhEQUFjLENBQUMsZUFDbkJBLDBEQUFBO0lBQ0VrRCxLQUFLLEVBQUU7TUFDTG9GLE9BQU8sRUFBRSxNQUFNO01BQ2ZDLGNBQWMsRUFBRSxlQUFlO01BQy9CQyxPQUFPLEVBQUUsTUFBTTtNQUNmQyxVQUFVLEVBQUUsU0FBUztNQUNyQkMsWUFBWSxFQUFFLE1BQU07TUFDcEJDLFFBQVEsRUFBRTtJQUNaO0VBQUUsZ0JBRUYzSSwwREFBQSxDQUFBNEgscURBQUE7SUFBT2dCLElBQUk7RUFBQSxnQkFDVDVJLDBEQUFBLGVBQU0sNEJBQU0sRUFBQyxDQUFBK0gsWUFBWSxhQUFaQSxZQUFZLHVCQUFaQSxZQUFZLENBQUVjLE1BQU0sS0FBSSxDQUFRLENBQUMsZUFDOUM3SSwwREFBQSxDQUFBOEQscURBQUE7SUFDRUcsV0FBVyxFQUFDLCtDQUFZO0lBQ3hCZixLQUFLLEVBQUU7TUFBRTRGLEtBQUssRUFBRTtJQUFJLENBQUU7SUFDdEJ0RSxLQUFLLEVBQUVvQixVQUFXO0lBQ2xCbUQsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdDLENBQUM7TUFBQSxPQUFLbkQsYUFBYSxDQUFDbUQsQ0FBQyxDQUFDQyxNQUFNLENBQUN6RSxLQUFLLENBQUM7SUFBQTtFQUFDLENBQ2hELENBQUMsZUFDRnhFLDBEQUFBLENBQUEwRSx1REFBQTtJQUFRSyxPQUFPLEVBQUVvQyxZQUFhO0lBQUN4QyxJQUFJLEVBQUM7RUFBUyxHQUFDLHNDQUFjLENBQUMsZUFDN0QzRSwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUssT0FBTyxFQUFFc0M7RUFBWSxHQUFDLG9FQUFtQixDQUM1QyxDQUFDLGVBQ1JySCwwREFBQSxDQUFBNEgscURBQUE7SUFBT2dCLElBQUk7RUFBQSxnQkFDVDVJLDBEQUFBLENBQUEwRSx1REFBQTtJQUFRMkIsSUFBSSxlQUFFckcsMERBQUEsQ0FBQ21GLDBEQUFZLE1BQUUsQ0FBRTtJQUFDUixJQUFJLEVBQUMsU0FBUztJQUFDSSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVFuRSxRQUFRLGtCQUFrQixDQUFDO0lBQUE7RUFBQyxHQUFDLDhEQUFrQixDQUN4RyxDQUNKLENBQUMsZUFDTlosMERBQUEsQ0FBQWtKLHFEQUFBO0lBQ0VDLFlBQVksRUFBRTtNQUNaeEUsSUFBSSxFQUFFLFVBQVU7TUFDaEJvRSxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBR3JCLENBQUMsRUFBRWxDLFlBQVk7UUFBQSxPQUFLQyxlQUFlLENBQUNELFlBQVksQ0FBQztNQUFBO0lBQzlELENBQUU7SUFDRjhCLE9BQU8sRUFBRUEsT0FBUTtJQUNqQjhCLFVBQVUsRUFBRXJCLFlBQVksQ0FBQzNELEdBQUcsQ0FBQyxVQUFDNkQsRUFBRSxFQUFFb0IsS0FBSztNQUFBLE9BQUFDLGFBQUE7UUFDckMvRSxHQUFHLEVBQUUwRCxFQUFFLENBQUNwRyxFQUFFO1FBQ1Z3SCxLQUFLLEVBQUVBLEtBQUssR0FBRyxDQUFDO1FBQ2hCL0csSUFBSSxFQUFFMkYsRUFBRSxDQUFDM0Y7TUFBSSxHQUNWMkYsRUFBRTtJQUFBLENBQ0wsQ0FBRTtJQUNKc0IsVUFBVSxFQUFFO01BQUVDLFFBQVEsRUFBRSxFQUFFO01BQUVDLGVBQWUsRUFBRTtJQUFLLENBQUU7SUFDcERDLE1BQU0sRUFBRTtNQUFFQyxDQUFDLEVBQUU7SUFBYztFQUFFLENBQzlCLENBQUMsZUFDRjNKLDBEQUFBLENBQUNnRix5RUFBYTtJQUFDNEUsT0FBTyxFQUFFMEs7RUFBaUIsQ0FBRSxDQUN4QyxDQUFDO0FBRVYsQ0FBQztBQUVELGlFQUFlRixZQUFZLEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3pJd0I7QUFHSTtBQUUyRDtBQUNuRTtBQUNEO0FBRTlDLElBQU1NLGdCQUEwQixHQUFHLFNBQTdCQSxnQkFBMEJBLENBQUEsRUFBUztFQUN2QyxJQUFNL1QsUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQUssWUFBQSxHQUE0RFQsd0RBQVcsQ0FDckUsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUM2VCxLQUFLO0lBQUEsQ0FDbkMsQ0FBQztJQUZPQSxLQUFLLEdBQUE5VCxZQUFBLENBQUw4VCxLQUFLO0lBQUUxVCxvQkFBb0IsR0FBQUosWUFBQSxDQUFwQkksb0JBQW9CO0lBQUUyVCxrQkFBa0IsR0FBQS9ULFlBQUEsQ0FBbEIrVCxrQkFBa0I7RUFHdkQsSUFBQXpULGFBQUEsR0FBZUMsb0RBQUEsQ0FBS0MsT0FBTyxDQUFDLENBQUM7SUFBQUMsY0FBQSxHQUFBQyxjQUFBLENBQUFKLGFBQUE7SUFBdEJLLElBQUksR0FBQUYsY0FBQTtFQUVYLElBQU1HLFlBQVksR0FBRyxJQUFJQyxlQUFlLENBQUNDLFFBQVEsQ0FBQ0MsTUFBTSxDQUFDO0VBQ3pELElBQU1DLEVBQUUsR0FBR0osWUFBWSxDQUFDSyxHQUFHLENBQUMsSUFBSSxDQUFDO0VBRWpDLElBQUFDLFNBQUEsR0FBOEI3QiwrQ0FBUSxDQUFDLEtBQUssQ0FBQztJQUFBOEIsVUFBQSxHQUFBVCxjQUFBLENBQUFRLFNBQUE7SUFBdENFLE9BQU8sR0FBQUQsVUFBQTtJQUFFRSxVQUFVLEdBQUFGLFVBQUE7O0VBRTFCO0VBQ0EvQixnREFBUyxDQUFDLFlBQU07SUFDZCxJQUFJNEIsRUFBRSxFQUFFO01BQ05sQixRQUFRLENBQUM2VCwrRUFBaUIsQ0FBQ3JTLE1BQU0sQ0FBQ04sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDLE1BQU07TUFDTEwsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEI7RUFDRixDQUFDLEVBQUUsQ0FBQ3pCLFFBQVEsRUFBRWtCLEVBQUUsRUFBRUwsSUFBSSxDQUFDLENBQUM7O0VBRXhCO0VBQ0F2QixnREFBUyxDQUFDLFlBQU07SUFDZCxJQUFJNEIsRUFBRSxJQUFJOFMsS0FBSyxFQUFFO01BQ2ZuVCxJQUFJLENBQUNhLGNBQWMsQ0FBQztRQUNsQkMsSUFBSSxFQUFFcVMsS0FBSyxDQUFDclMsSUFBSSxJQUFJLEVBQUU7UUFDdEJDLFdBQVcsRUFBRW9TLEtBQUssQ0FBQ3BTLFdBQVcsSUFBSTtNQUNwQyxDQUFDLENBQUM7SUFDSjtFQUNGLENBQUMsRUFBRSxDQUFDb1MsS0FBSyxFQUFFblQsSUFBSSxFQUFFSyxFQUFFLENBQUMsQ0FBQzs7RUFFckI7RUFDQTVCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUksQ0FBQzJVLGtCQUFrQixJQUFJM1MsT0FBTyxFQUFFO01BQ2xDLElBQUloQixvQkFBb0IsRUFBRTtRQUN4QndCLHVEQUFBLENBQVFDLEtBQUssQ0FBQ3pCLG9CQUFvQixDQUFDO01BQ3JDLENBQUMsTUFBTTtRQUNMd0IsdURBQUEsQ0FBUUUsT0FBTyxDQUFDZCxFQUFFLEdBQUcsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDdkVqQixRQUFRLENBQUMsU0FBUyxDQUFDO01BQ3JCO0lBQ0Y7RUFDRixDQUFDLEVBQUUsQ0FBQ2dVLGtCQUFrQixFQUFFM1Qsb0JBQW9CLEVBQUVZLEVBQUUsRUFBRUksT0FBTyxFQUFFckIsUUFBUSxDQUFDLENBQUM7O0VBRXJFO0VBQ0EsSUFBTWdDLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFJQyxNQUFhLEVBQUs7SUFDbEMsSUFBSWhCLEVBQUUsRUFBRTtNQUNObEIsUUFBUSxDQUFDOFQsK0VBQWlCLENBQUM7UUFBRTVTLEVBQUUsRUFBRU0sTUFBTSxDQUFDTixFQUFFLENBQUM7UUFBRWlCLElBQUksRUFBRUQ7TUFBTyxDQUFDLENBQUMsQ0FBQztNQUM3RHJCLElBQUksQ0FBQ1ksV0FBVyxDQUFDLENBQUM7SUFDcEIsQ0FBQyxNQUFNO01BQ0x6QixRQUFRLENBQUM0VCwrRUFBaUIsQ0FBQztRQUFFelIsSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQzdDckIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEI7SUFDQUYsVUFBVSxDQUFDLElBQUksQ0FBQztFQUNsQixDQUFDO0VBRUQsb0JBQ0VsQywwREFBQSxDQUFBQSx1REFBQSxxQkFDRUEsMERBQUEsYUFBSzZCLEVBQUUsR0FBRyxhQUFhLEdBQUcsaUJBQXNCLENBQUMsZUFDakQ3QiwwREFBQSxDQUFBb0Isb0RBQUE7SUFBTUksSUFBSSxFQUFFQSxJQUFLO0lBQUN5QixNQUFNLEVBQUMsVUFBVTtJQUFDTCxRQUFRLEVBQUVBLFFBQVM7SUFBQ00sS0FBSyxFQUFFO01BQUVDLFFBQVEsRUFBRSxNQUFNO01BQUVDLE1BQU0sRUFBRTtJQUFTO0VBQUUsZ0JBQ3BHcEQsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0VBQUUsZ0JBQ3BCdEQsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFHLGdCQUNaeEQsMERBQUEsQ0FBQW9CLG9EQUFBLENBQU1xQyxJQUFJO0lBQUNDLEtBQUssRUFBQyxnQ0FBTztJQUFDcEIsSUFBSSxFQUFDLE1BQU07SUFBQ3FCLEtBQUssRUFBRSxDQUFDO01BQUVDLFFBQVEsRUFBRSxJQUFJO01BQUVDLE9BQU8sRUFBRTtJQUFzQixDQUFDO0VBQUUsZ0JBQy9GN0QsMERBQUEsQ0FBQThELHFEQUFBLE1BQVEsQ0FDQyxDQUNSLENBQUMsZUFDTjlELDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRyxnQkFDWnhELDBEQUFBLENBQUFvQixvREFBQSxDQUFNcUMsSUFBSTtJQUFDQyxLQUFLLEVBQUMsc0NBQVE7SUFBQ3BCLElBQUksRUFBQztFQUFhLGdCQUMxQ3RDLDBEQUFBLENBQUNTLCtEQUFRO0lBQUNnRSxJQUFJLEVBQUU7RUFBRSxDQUFFLENBQ1gsQ0FDUixDQUNGLENBQUMsZUFDTnpFLDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtFQUFFLGdCQUNwQnRELDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHhELDBEQUFBLENBQUFvQixvREFBQSxDQUFNcUMsSUFBSSxxQkFDUnpELDBEQUFBLENBQUEwRSx1REFBQTtJQUFRQyxJQUFJLEVBQUMsU0FBUztJQUFDQyxLQUFLO0lBQUNDLFFBQVEsRUFBQyxRQUFRO0lBQUNDLE9BQU8sRUFBRThQO0VBQW1CLEdBQUMsUUFFcEUsQ0FDQyxDQUNSLENBQUMsZUFDTjVVLDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHhELDBEQUFBLENBQUFvQixvREFBQSxDQUFNcUMsSUFBSSxxQkFDUnpELDBEQUFBLENBQUEwRSx1REFBQTtJQUFRRyxRQUFRLEVBQUMsUUFBUTtJQUFDRSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVFuRSxRQUFRLENBQUMsU0FBUyxDQUFDO0lBQUE7RUFBQyxHQUFDLFFBRXRELENBQ0MsQ0FDUixDQUNGLENBQ0QsQ0FDTixDQUFDO0FBRVAsQ0FBQztBQUVELGlFQUFlOFQsZ0JBQWdCLEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEdvQjtBQUVJO0FBRVI7QUFDdUI7QUFDUztBQUM2QjtBQUM3RTtBQUUvQixJQUFNSyxTQUFTLEdBQUcsU0FBWkEsU0FBU0EsQ0FBQSxFQUFTO0VBQ3RCLElBQU1wVSxRQUFRLEdBQUdSLHdEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFNUyxRQUFRLEdBQUdKLDZEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFBdUIsU0FBQSxHQUF3QzdCLCtDQUFRLENBQU0sRUFBRSxDQUFDO0lBQUE4QixVQUFBLEdBQUFULGNBQUEsQ0FBQVEsU0FBQTtJQUFsRHlELFlBQVksR0FBQXhELFVBQUE7SUFBRXlELGVBQWUsR0FBQXpELFVBQUE7RUFDcEMsSUFBQTBELFVBQUEsR0FBb0N4RiwrQ0FBUSxDQUFDLEVBQUUsQ0FBQztJQUFBeUYsVUFBQSxHQUFBcEUsY0FBQSxDQUFBbUUsVUFBQTtJQUF6Q0UsVUFBVSxHQUFBRCxVQUFBO0lBQUVFLGFBQWEsR0FBQUYsVUFBQTtFQUNoQyxJQUFBOUUsWUFBQSxHQUFrQ1Qsd0RBQVcsQ0FBQyxVQUFDVSxLQUFnQjtNQUFBLE9BQUtBLEtBQUssQ0FBQzZULEtBQUs7SUFBQSxFQUFDO0lBQXhFSyxNQUFNLEdBQUFuVSxZQUFBLENBQU5tVSxNQUFNO0lBQUVDLGFBQWEsR0FBQXBVLFlBQUEsQ0FBYm9VLGFBQWE7RUFFN0JoVixnREFBUyxDQUFDLFlBQU07SUFDZFUsUUFBUSxDQUFDbVUsMEVBQVcsQ0FBQyxDQUFDLENBQUM7RUFDekIsQ0FBQyxFQUFFLENBQUNuVSxRQUFRLENBQUMsQ0FBQztFQUVkLElBQU1vRixVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBSWxFLEVBQU8sRUFBSztJQUM5QmxCLFFBQVEsQ0FBQzZULGdGQUFpQixDQUFDM1MsRUFBRSxDQUFDLENBQUM7SUFDL0JqQixRQUFRLG9CQUFBb0YsTUFBQSxDQUFvQm5FLEVBQUUsQ0FBRSxDQUFDO0VBQ25DLENBQUM7RUFFRCxJQUFNb0UsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUlwRSxFQUFPLEVBQUs7SUFDaEN5RCx3REFBUyxDQUFDO01BQ1JhLEtBQUssRUFBRSxlQUFlO01BQ3RCQyxJQUFJLEVBQUUsb0NBQW9DO01BQzFDQyxJQUFJLEVBQUUsU0FBUztNQUNmQyxpQkFBaUIsRUFBRSxLQUFLO01BQ3hCQyxnQkFBZ0IsRUFBRSxLQUFLO01BQ3ZCQyxJQUFJLDJYQUtIO01BQ0RDLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQVE7UUFBQSxJQUFBQyxjQUFBLEVBQUFDLGVBQUE7UUFDYixJQUFNQyxhQUFhLElBQUFGLGNBQUEsR0FBR3BCLDREQUFhLENBQUMsQ0FBQyxjQUFBb0IsY0FBQSx1QkFBZkEsY0FBQSxDQUFpQkksYUFBYSxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZFLElBQU1DLFlBQVksSUFBQUosZUFBQSxHQUFHckIsNERBQWEsQ0FBQyxDQUFDLGNBQUFxQixlQUFBLHVCQUFmQSxlQUFBLENBQWlCRyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7UUFFckVGLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUVJLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFNO1VBQzdDckcsUUFBUSxDQUFDa1UsZ0ZBQWlCLENBQUNoVCxFQUFFLENBQUMsQ0FBQyxDQUFDb0YsSUFBSSxDQUFDLFlBQU07WUFDekMzQix3REFBUyxDQUFDLFVBQVUsRUFBRSw0QkFBNEIsRUFBRSxTQUFTLENBQUM7WUFDOUQzRSxRQUFRLENBQUNtVSwwRUFBVyxDQUFDLENBQUMsQ0FBQztVQUN6QixDQUFDLENBQUM7VUFDRnhQLHlEQUFVLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQztRQUVGeUIsWUFBWSxhQUFaQSxZQUFZLGVBQVpBLFlBQVksQ0FBRUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDNUMxQix5REFBVSxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUM7TUFDSjtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxJQUFNNkIsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztJQUN6QjtJQUNBdEIsYUFBYSxDQUFDRCxVQUFVLENBQUN3QixJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ2xDLENBQUM7RUFFRCxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQSxFQUFTO0lBQ3hCO0lBQ0F4QixhQUFhLENBQUMsRUFBRSxDQUFDO0VBQ25CLENBQUM7RUFFRCxJQUFNeUIsT0FBTyxHQUFHLENBQ2Q7SUFBRW5CLEtBQUssRUFBRSxRQUFRO0lBQUVvQixTQUFTLEVBQUUsT0FBTztJQUFFaEQsR0FBRyxFQUFFLE9BQU87SUFBRWlELFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3pFO0lBQUVyQixLQUFLLEVBQUUsT0FBTztJQUFFb0IsU0FBUyxFQUFFLE1BQU07SUFBRWhELEdBQUcsRUFBRSxNQUFNO0lBQUVpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUN0RTtJQUFFckIsS0FBSyxFQUFFLFFBQVE7SUFBRW9CLFNBQVMsRUFBRSxhQUFhO0lBQUVoRCxHQUFHLEVBQUUsYUFBYTtJQUFFaUQsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDckY7SUFDRXJCLEtBQUssRUFBRSxRQUFRO0lBQ2Y1QixHQUFHLEVBQUUsUUFBUTtJQUNiaUQsVUFBVSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0lBQ3BDQyxNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBR0MsQ0FBUyxFQUFFQyxNQUFXO01BQUEsb0JBQzdCM0gsMERBQUEsQ0FBQTRILHFEQUFBO1FBQU9DLElBQUksRUFBQztNQUFRLGdCQUNsQjdILDBEQUFBLENBQUEwRSx1REFBQTtRQUFRMkIsSUFBSSxlQUFFckcsMERBQUEsQ0FBQ2tGLHlEQUFZLE1BQUUsQ0FBRTtRQUFDUCxJQUFJLEVBQUMsU0FBUztRQUFDSSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFnQixVQUFVLENBQUM0QixNQUFNLENBQUM5RixFQUFFLENBQUM7UUFBQTtNQUFDLENBQUUsQ0FBQyxlQUN2RjdCLDBEQUFBLENBQUEwRSx1REFBQTtRQUFRMkIsSUFBSSxlQUFFckcsMERBQUEsQ0FBQ2lGLHlEQUFjLE1BQUUsQ0FBRTtRQUFDNkMsTUFBTTtRQUFDL0MsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7VUFBQSxPQUFRa0IsWUFBWSxDQUFDMEIsTUFBTSxDQUFDOUYsRUFBRSxDQUFDO1FBQUE7TUFBQyxDQUFFLENBQzdFLENBQUM7SUFBQTtFQUVaLENBQUMsQ0FDRjtFQUVELElBQU1rRyxZQUFZLEdBQUcsQ0FBQ2lOLE1BQU0sSUFBSSxFQUFFLEVBQUVoTixNQUFNLENBQUMsVUFBQ0MsRUFBRTtJQUFBLElBQUFDLFFBQUE7SUFBQSxRQUFBQSxRQUFBLEdBQzVDRCxFQUFFLENBQUMzRixJQUFJLGNBQUE0RixRQUFBLHVCQUFQQSxRQUFBLENBQVNDLFdBQVcsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQ3hDLFVBQVUsQ0FBQ3VDLFdBQVcsQ0FBQyxDQUFDLENBQUM7RUFBQSxDQUMzRCxDQUFDO0VBRUQsb0JBQ0VuSSwwREFBQTtJQUFLa0QsS0FBSyxFQUFFO01BQUVtRixTQUFTLEVBQUU7SUFBTztFQUFFLGdCQUNoQ3JJLDBEQUFBLGFBQUksOERBQWMsQ0FBQyxlQUNuQkEsMERBQUE7SUFDRWtELEtBQUssRUFBRTtNQUNMb0YsT0FBTyxFQUFFLE1BQU07TUFDZkMsY0FBYyxFQUFFLGVBQWU7TUFDL0JDLE9BQU8sRUFBRSxNQUFNO01BQ2ZDLFVBQVUsRUFBRSxTQUFTO01BQ3JCQyxZQUFZLEVBQUUsTUFBTTtNQUNwQkMsUUFBUSxFQUFFO0lBQ1o7RUFBRSxnQkFFRjNJLDBEQUFBLENBQUE0SCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUNUksMERBQUEsZUFBTSw0QkFBTSxFQUFDLENBQUErSCxZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRWMsTUFBTSxLQUFJLENBQVEsQ0FBQyxlQUM5QzdJLDBEQUFBLENBQUE4RCxxREFBQTtJQUNFRyxXQUFXLEVBQUMsK0NBQVk7SUFDeEJmLEtBQUssRUFBRTtNQUFFNEYsS0FBSyxFQUFFO0lBQUksQ0FBRTtJQUN0QnRFLEtBQUssRUFBRW9CLFVBQVc7SUFDbEJtRCxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBR0MsQ0FBQztNQUFBLE9BQUtuRCxhQUFhLENBQUNtRCxDQUFDLENBQUNDLE1BQU0sQ0FBQ3pFLEtBQUssQ0FBQztJQUFBO0VBQUMsQ0FDaEQsQ0FBQyxlQUNGeEUsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFLLE9BQU8sRUFBRW9DLFlBQWE7SUFBQ3hDLElBQUksRUFBQztFQUFTLEdBQUMsc0NBQWMsQ0FBQyxlQUM3RDNFLDBEQUFBLENBQUEwRSx1REFBQTtJQUFRSyxPQUFPLEVBQUVzQztFQUFZLEdBQUMsb0VBQW1CLENBQzVDLENBQUMsZUFDUnJILDBEQUFBLENBQUE0SCxxREFBQTtJQUFPZ0IsSUFBSTtFQUFBLGdCQUNUNUksMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVEyQixJQUFJLGVBQUVyRywwREFBQSxDQUFDbUYsMERBQVksTUFBRSxDQUFFO0lBQUNSLElBQUksRUFBQyxTQUFTO0lBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUW5FLFFBQVEsZUFBZSxDQUFDO0lBQUE7RUFBQyxHQUFDLDhEQUFrQixDQUNyRyxDQUNKLENBQUMsZUFDTlosMERBQUEsQ0FBQWtKLHFEQUFBO0lBQ0VDLFlBQVksRUFBRTtNQUNaeEUsSUFBSSxFQUFFLFVBQVU7TUFDaEJvRSxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBR3JCLENBQUMsRUFBRWxDLFlBQVk7UUFBQSxPQUFLQyxlQUFlLENBQUNELFlBQVksQ0FBQztNQUFBO0lBQzlELENBQUU7SUFDRjhCLE9BQU8sRUFBRUEsT0FBUTtJQUNqQjhCLFVBQVUsRUFBRXJCLFlBQVksQ0FBQzNELEdBQUcsQ0FBQyxVQUFDNkQsRUFBRSxFQUFFb0IsS0FBSztNQUFBLE9BQUFDLGFBQUE7UUFDckMvRSxHQUFHLEVBQUUwRCxFQUFFLENBQUNwRyxFQUFFO1FBQ1Z3SCxLQUFLLEVBQUVBLEtBQUssR0FBRyxDQUFDO1FBQ2hCL0csSUFBSSxFQUFFMkYsRUFBRSxDQUFDM0Y7TUFBSSxHQUNWMkYsRUFBRTtJQUFBLENBQ0wsQ0FBRTtJQUNKc0IsVUFBVSxFQUFFO01BQUVDLFFBQVEsRUFBRSxFQUFFO01BQUVDLGVBQWUsRUFBRTtJQUFLLENBQUU7SUFDcERDLE1BQU0sRUFBRTtNQUFFQyxDQUFDLEVBQUU7SUFBYztFQUFFLENBQzlCLENBQUMsZUFDRjNKLDBEQUFBLENBQUNnRix5RUFBYTtJQUFDNEUsT0FBTyxFQUFFcUw7RUFBYyxDQUFFLENBQ3JDLENBQUM7QUFFVixDQUFDO0FBRUQsaUVBQWVGLFNBQVMsRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDekkyQjtBQUdJO0FBRWdHO0FBQ3hHO0FBQ0Q7QUFFOUMsSUFBTU0seUJBQW1DLEdBQUcsU0FBdENBLHlCQUFtQ0EsQ0FBQSxFQUFTO0VBQ2hELElBQU0xVSxRQUFRLEdBQUdSLHdEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFNUyxRQUFRLEdBQUdKLDZEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFBSyxZQUFBLEdBQThFVCx3REFBVyxDQUN2RixVQUFDVSxLQUFnQjtNQUFBLE9BQUtBLEtBQUssQ0FBQ3dVLGNBQWM7SUFBQSxDQUM1QyxDQUFDO0lBRk9BLGNBQWMsR0FBQXpVLFlBQUEsQ0FBZHlVLGNBQWM7SUFBRXJVLG9CQUFvQixHQUFBSixZQUFBLENBQXBCSSxvQkFBb0I7SUFBRXNVLDJCQUEyQixHQUFBMVUsWUFBQSxDQUEzQjBVLDJCQUEyQjtFQUd6RSxJQUFBcFUsYUFBQSxHQUFlQyxvREFBQSxDQUFLQyxPQUFPLENBQUMsQ0FBQztJQUFBQyxjQUFBLEdBQUFDLGNBQUEsQ0FBQUosYUFBQTtJQUF0QkssSUFBSSxHQUFBRixjQUFBO0VBRVgsSUFBTUcsWUFBWSxHQUFHLElBQUlDLGVBQWUsQ0FBQ0MsUUFBUSxDQUFDQyxNQUFNLENBQUM7RUFDekQsSUFBTUMsRUFBRSxHQUFHSixZQUFZLENBQUNLLEdBQUcsQ0FBQyxJQUFJLENBQUM7RUFFakMsSUFBQUMsU0FBQSxHQUE4QjdCLCtDQUFRLENBQUMsS0FBSyxDQUFDO0lBQUE4QixVQUFBLEdBQUFULGNBQUEsQ0FBQVEsU0FBQTtJQUF0Q0UsT0FBTyxHQUFBRCxVQUFBO0lBQUVFLFVBQVUsR0FBQUYsVUFBQTs7RUFFMUI7RUFDQS9CLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUk0QixFQUFFLEVBQUU7TUFDTmxCLFFBQVEsQ0FBQ3dVLGtHQUEwQixDQUFDaFQsTUFBTSxDQUFDTixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUMsTUFBTTtNQUNMTCxJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtFQUNGLENBQUMsRUFBRSxDQUFDekIsUUFBUSxFQUFFa0IsRUFBRSxFQUFFTCxJQUFJLENBQUMsQ0FBQzs7RUFFeEI7RUFDQXZCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUk0QixFQUFFLElBQUl5VCxjQUFjLEVBQUU7TUFDeEI5VCxJQUFJLENBQUNhLGNBQWMsQ0FBQztRQUNsQkMsSUFBSSxFQUFFZ1QsY0FBYyxDQUFDaFQsSUFBSSxJQUFJLEVBQUU7UUFDL0JDLFdBQVcsRUFBRStTLGNBQWMsQ0FBQy9TLFdBQVcsSUFBSTtNQUM3QyxDQUFDLENBQUM7SUFDSjtFQUNGLENBQUMsRUFBRSxDQUFDK1MsY0FBYyxFQUFFOVQsSUFBSSxFQUFFSyxFQUFFLENBQUMsQ0FBQzs7RUFFOUI7RUFDQTVCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUksQ0FBQ3NWLDJCQUEyQixJQUFJdFQsT0FBTyxFQUFFO01BQzNDLElBQUloQixvQkFBb0IsRUFBRTtRQUN4QndCLHVEQUFBLENBQVFDLEtBQUssQ0FBQ3pCLG9CQUFvQixDQUFDO01BQ3JDLENBQUMsTUFBTTtRQUNMd0IsdURBQUEsQ0FBUUUsT0FBTyxDQUFDZCxFQUFFLEdBQUcsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDdkVqQixRQUFRLENBQUMsbUJBQW1CLENBQUM7TUFDL0I7SUFDRjtFQUNGLENBQUMsRUFBRSxDQUFDMlUsMkJBQTJCLEVBQUV0VSxvQkFBb0IsRUFBRVksRUFBRSxFQUFFSSxPQUFPLEVBQUVyQixRQUFRLENBQUMsQ0FBQzs7RUFFOUU7RUFDQSxJQUFNZ0MsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUlDLE1BQXNCLEVBQUs7SUFDM0MsSUFBSWhCLEVBQUUsRUFBRTtNQUNObEIsUUFBUSxDQUFDeVUsa0dBQTBCLENBQUM7UUFBRXZULEVBQUUsRUFBRU0sTUFBTSxDQUFDTixFQUFFLENBQUM7UUFBRWlCLElBQUksRUFBRUQ7TUFBTyxDQUFDLENBQUMsQ0FBQztNQUN0RXJCLElBQUksQ0FBQ1ksV0FBVyxDQUFDLENBQUM7SUFDcEIsQ0FBQyxNQUFNO01BQ0x6QixRQUFRLENBQUN1VSxrR0FBMEIsQ0FBQztRQUFFcFMsSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQ3REckIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEI7SUFDQUYsVUFBVSxDQUFDLElBQUksQ0FBQztFQUNsQixDQUFDO0VBRUQsb0JBQ0VsQywwREFBQSxDQUFBQSx1REFBQSxxQkFDRUEsMERBQUEsYUFBSzZCLEVBQUUsR0FBRyxnQkFBZ0IsR0FBRyxvQkFBeUIsQ0FBQyxlQUN2RDdCLDBEQUFBLENBQUFvQixvREFBQTtJQUFNSSxJQUFJLEVBQUVBLElBQUs7SUFBQ3lCLE1BQU0sRUFBQyxVQUFVO0lBQUNMLFFBQVEsRUFBRUEsUUFBUztJQUFDTSxLQUFLLEVBQUU7TUFBRUMsUUFBUSxFQUFFLE1BQU07TUFBRUMsTUFBTSxFQUFFO0lBQVM7RUFBRSxnQkFDcEdwRCwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFBRSxnQkFDcEJ0RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUcsZ0JBQ1p4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUk7SUFBQ0MsS0FBSyxFQUFDLGdDQUFPO0lBQUNwQixJQUFJLEVBQUMsTUFBTTtJQUFDcUIsS0FBSyxFQUFFLENBQUM7TUFBRUMsUUFBUSxFQUFFLElBQUk7TUFBRUMsT0FBTyxFQUFFO0lBQXNCLENBQUM7RUFBRSxnQkFDL0Y3RCwwREFBQSxDQUFBOEQscURBQUEsTUFBUSxDQUNDLENBQ1IsQ0FBQyxlQUNOOUQsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFHLGdCQUNaeEQsMERBQUEsQ0FBQW9CLG9EQUFBLENBQU1xQyxJQUFJO0lBQUNDLEtBQUssRUFBQyxzQ0FBUTtJQUFDcEIsSUFBSSxFQUFDO0VBQWEsZ0JBQzFDdEMsMERBQUEsQ0FBQ1MsK0RBQVE7SUFBQ2dFLElBQUksRUFBRTtFQUFFLENBQUUsQ0FDWCxDQUNSLENBQ0YsQ0FBQyxlQUNOekUsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0VBQUUsZ0JBQ3BCdEQsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLGdCQUNYeEQsMERBQUEsQ0FBQW9CLG9EQUFBLENBQU1xQyxJQUFJLHFCQUNSekQsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFDLElBQUksRUFBQyxTQUFTO0lBQUNDLEtBQUs7SUFBQ0MsUUFBUSxFQUFDLFFBQVE7SUFBQ0MsT0FBTyxFQUFFeVE7RUFBNEIsR0FBQyxRQUU3RSxDQUNDLENBQ1IsQ0FBQyxlQUNOdlYsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLGdCQUNYeEQsMERBQUEsQ0FBQW9CLG9EQUFBLENBQU1xQyxJQUFJLHFCQUNSekQsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFHLFFBQVEsRUFBQyxRQUFRO0lBQUNFLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUW5FLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQztJQUFBO0VBQUMsR0FBQyxRQUVoRSxDQUNDLENBQ1IsQ0FDRixDQUNELENBQ04sQ0FBQztBQUVQLENBQUM7QUFFRCxpRUFBZXlVLHlCQUF5QixFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RHVztBQUVJO0FBRVI7QUFDdUI7QUFDUztBQUNrRTtBQUNsSDtBQUUvQixJQUFNSyxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBLEVBQVM7RUFDL0IsSUFBTS9VLFFBQVEsR0FBR1Isd0RBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQU1TLFFBQVEsR0FBR0osNkRBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQUF1QixTQUFBLEdBQXdDN0IsK0NBQVEsQ0FBTSxFQUFFLENBQUM7SUFBQThCLFVBQUEsR0FBQVQsY0FBQSxDQUFBUSxTQUFBO0lBQWxEeUQsWUFBWSxHQUFBeEQsVUFBQTtJQUFFeUQsZUFBZSxHQUFBekQsVUFBQTtFQUNwQyxJQUFBMEQsVUFBQSxHQUFvQ3hGLCtDQUFRLENBQUMsRUFBRSxDQUFDO0lBQUF5RixVQUFBLEdBQUFwRSxjQUFBLENBQUFtRSxVQUFBO0lBQXpDRSxVQUFVLEdBQUFELFVBQUE7SUFBRUUsYUFBYSxHQUFBRixVQUFBO0VBQ2hDLElBQUE5RSxZQUFBLEdBQW9EVCx3REFBVyxDQUFDLFVBQUNVLEtBQWdCO01BQUEsT0FBS0EsS0FBSyxDQUFDd1UsY0FBYztJQUFBLEVBQUM7SUFBbkdLLGVBQWUsR0FBQTlVLFlBQUEsQ0FBZjhVLGVBQWU7SUFBRUMsc0JBQXNCLEdBQUEvVSxZQUFBLENBQXRCK1Usc0JBQXNCO0VBRS9DM1YsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2RVLFFBQVEsQ0FBQzhVLDZGQUFvQixDQUFDLENBQUMsQ0FBQztFQUNsQyxDQUFDLEVBQUUsQ0FBQzlVLFFBQVEsQ0FBQyxDQUFDO0VBRWQsSUFBTW9GLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJbEUsRUFBTyxFQUFLO0lBQzlCbEIsUUFBUSxDQUFDd1UsbUdBQTBCLENBQUN0VCxFQUFFLENBQUMsQ0FBQztJQUN4Q2pCLFFBQVEsOEJBQUFvRixNQUFBLENBQThCbkUsRUFBRSxDQUFFLENBQUM7RUFDN0MsQ0FBQztFQUVELElBQU1vRSxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBSXBFLEVBQU8sRUFBSztJQUNoQ3lELHdEQUFTLENBQUM7TUFDUmEsS0FBSyxFQUFFLGVBQWU7TUFDdEJDLElBQUksRUFBRSxvQ0FBb0M7TUFDMUNDLElBQUksRUFBRSxTQUFTO01BQ2ZDLGlCQUFpQixFQUFFLEtBQUs7TUFDeEJDLGdCQUFnQixFQUFFLEtBQUs7TUFDdkJDLElBQUksMlhBS0g7TUFDREMsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUEsRUFBUTtRQUFBLElBQUFDLGNBQUEsRUFBQUMsZUFBQTtRQUNiLElBQU1DLGFBQWEsSUFBQUYsY0FBQSxHQUFHcEIsNERBQWEsQ0FBQyxDQUFDLGNBQUFvQixjQUFBLHVCQUFmQSxjQUFBLENBQWlCSSxhQUFhLENBQUMsaUJBQWlCLENBQUM7UUFDdkUsSUFBTUMsWUFBWSxJQUFBSixlQUFBLEdBQUdyQiw0REFBYSxDQUFDLENBQUMsY0FBQXFCLGVBQUEsdUJBQWZBLGVBQUEsQ0FBaUJHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUVyRUYsYUFBYSxhQUFiQSxhQUFhLGVBQWJBLGFBQWEsQ0FBRUksZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDN0NyRyxRQUFRLENBQUM2VSxtR0FBMEIsQ0FBQzNULEVBQUUsQ0FBQyxDQUFDLENBQUNvRixJQUFJLENBQUMsWUFBTTtZQUNsRDNCLHdEQUFTLENBQUMsVUFBVSxFQUFFLDRCQUE0QixFQUFFLFNBQVMsQ0FBQztZQUM5RDNFLFFBQVEsQ0FBQzhVLDZGQUFvQixDQUFDLENBQUMsQ0FBQztVQUNsQyxDQUFDLENBQUM7VUFDRm5RLHlEQUFVLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQztRQUVGeUIsWUFBWSxhQUFaQSxZQUFZLGVBQVpBLFlBQVksQ0FBRUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDNUMxQix5REFBVSxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUM7TUFDSjtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxJQUFNNkIsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztJQUN6QjtJQUNBdEIsYUFBYSxDQUFDRCxVQUFVLENBQUN3QixJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ2xDLENBQUM7RUFFRCxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQSxFQUFTO0lBQ3hCO0lBQ0F4QixhQUFhLENBQUMsRUFBRSxDQUFDO0VBQ25CLENBQUM7RUFFRCxJQUFNeUIsT0FBTyxHQUFHLENBQ2Q7SUFBRW5CLEtBQUssRUFBRSxRQUFRO0lBQUVvQixTQUFTLEVBQUUsT0FBTztJQUFFaEQsR0FBRyxFQUFFLE9BQU87SUFBRWlELFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3pFO0lBQUVyQixLQUFLLEVBQUUsT0FBTztJQUFFb0IsU0FBUyxFQUFFLE1BQU07SUFBRWhELEdBQUcsRUFBRSxNQUFNO0lBQUVpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUN0RTtJQUFFckIsS0FBSyxFQUFFLFFBQVE7SUFBRW9CLFNBQVMsRUFBRSxhQUFhO0lBQUVoRCxHQUFHLEVBQUUsYUFBYTtJQUFFaUQsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDckY7SUFDRXJCLEtBQUssRUFBRSxRQUFRO0lBQ2Y1QixHQUFHLEVBQUUsUUFBUTtJQUNiaUQsVUFBVSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0lBQ3BDQyxNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBR0MsQ0FBUyxFQUFFQyxNQUFXO01BQUEsb0JBQzdCM0gsMERBQUEsQ0FBQTRILHFEQUFBO1FBQU9DLElBQUksRUFBQztNQUFRLGdCQUNsQjdILDBEQUFBLENBQUEwRSx1REFBQTtRQUFRMkIsSUFBSSxlQUFFckcsMERBQUEsQ0FBQ2tGLHlEQUFZLE1BQUUsQ0FBRTtRQUFDUCxJQUFJLEVBQUMsU0FBUztRQUFDSSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFnQixVQUFVLENBQUM0QixNQUFNLENBQUM5RixFQUFFLENBQUM7UUFBQTtNQUFDLENBQUUsQ0FBQyxlQUN2RjdCLDBEQUFBLENBQUEwRSx1REFBQTtRQUFRMkIsSUFBSSxlQUFFckcsMERBQUEsQ0FBQ2lGLHlEQUFjLE1BQUUsQ0FBRTtRQUFDNkMsTUFBTTtRQUFDL0MsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7VUFBQSxPQUFRa0IsWUFBWSxDQUFDMEIsTUFBTSxDQUFDOUYsRUFBRSxDQUFDO1FBQUE7TUFBQyxDQUFFLENBQzdFLENBQUM7SUFBQTtFQUVaLENBQUMsQ0FDRjtFQUVELElBQU1rRyxZQUFZLEdBQUcsQ0FBQzROLGVBQWUsSUFBSSxFQUFFLEVBQUUzTixNQUFNLENBQUMsVUFBQ0MsRUFBRTtJQUFBLElBQUFDLFFBQUE7SUFBQSxRQUFBQSxRQUFBLEdBQ3JERCxFQUFFLENBQUMzRixJQUFJLGNBQUE0RixRQUFBLHVCQUFQQSxRQUFBLENBQVNDLFdBQVcsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQ3hDLFVBQVUsQ0FBQ3VDLFdBQVcsQ0FBQyxDQUFDLENBQUM7RUFBQSxDQUMzRCxDQUFDO0VBRUQsb0JBQ0VuSSwwREFBQTtJQUFLa0QsS0FBSyxFQUFFO01BQUVtRixTQUFTLEVBQUU7SUFBTztFQUFFLGdCQUNoQ3JJLDBEQUFBLGFBQUksZ0ZBQWlCLENBQUMsZUFDdEJBLDBEQUFBO0lBQ0VrRCxLQUFLLEVBQUU7TUFDTG9GLE9BQU8sRUFBRSxNQUFNO01BQ2ZDLGNBQWMsRUFBRSxlQUFlO01BQy9CQyxPQUFPLEVBQUUsTUFBTTtNQUNmQyxVQUFVLEVBQUUsU0FBUztNQUNyQkMsWUFBWSxFQUFFLE1BQU07TUFDcEJDLFFBQVEsRUFBRTtJQUNaO0VBQUUsZ0JBRUYzSSwwREFBQSxDQUFBNEgscURBQUE7SUFBT2dCLElBQUk7RUFBQSxnQkFDVDVJLDBEQUFBLGVBQU0sNEJBQU0sRUFBQyxDQUFBK0gsWUFBWSxhQUFaQSxZQUFZLHVCQUFaQSxZQUFZLENBQUVjLE1BQU0sS0FBSSxDQUFRLENBQUMsZUFDOUM3SSwwREFBQSxDQUFBOEQscURBQUE7SUFDRUcsV0FBVyxFQUFDLCtDQUFZO0lBQ3hCZixLQUFLLEVBQUU7TUFBRTRGLEtBQUssRUFBRTtJQUFJLENBQUU7SUFDdEJ0RSxLQUFLLEVBQUVvQixVQUFXO0lBQ2xCbUQsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdDLENBQUM7TUFBQSxPQUFLbkQsYUFBYSxDQUFDbUQsQ0FBQyxDQUFDQyxNQUFNLENBQUN6RSxLQUFLLENBQUM7SUFBQTtFQUFDLENBQ2hELENBQUMsZUFDRnhFLDBEQUFBLENBQUEwRSx1REFBQTtJQUFRSyxPQUFPLEVBQUVvQyxZQUFhO0lBQUN4QyxJQUFJLEVBQUM7RUFBUyxHQUFDLHNDQUFjLENBQUMsZUFDN0QzRSwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUssT0FBTyxFQUFFc0M7RUFBWSxHQUFDLG9FQUFtQixDQUM1QyxDQUFDLGVBQ1JySCwwREFBQSxDQUFBNEgscURBQUE7SUFBT2dCLElBQUk7RUFBQSxnQkFDVDVJLDBEQUFBLENBQUEwRSx1REFBQTtJQUFRMkIsSUFBSSxlQUFFckcsMERBQUEsQ0FBQ21GLDBEQUFZLE1BQUUsQ0FBRTtJQUFDUixJQUFJLEVBQUMsU0FBUztJQUFDSSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVFuRSxRQUFRLHlCQUF5QixDQUFDO0lBQUE7RUFBQyxHQUFDLDhEQUFrQixDQUMvRyxDQUNKLENBQUMsZUFDTlosMERBQUEsQ0FBQWtKLHFEQUFBO0lBQ0VDLFlBQVksRUFBRTtNQUNaeEUsSUFBSSxFQUFFLFVBQVU7TUFDaEJvRSxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBR3JCLENBQUMsRUFBRWxDLFlBQVk7UUFBQSxPQUFLQyxlQUFlLENBQUNELFlBQVksQ0FBQztNQUFBO0lBQzlELENBQUU7SUFDRjhCLE9BQU8sRUFBRUEsT0FBUTtJQUNqQjhCLFVBQVUsRUFBRXJCLFlBQVksQ0FBQzNELEdBQUcsQ0FBQyxVQUFDNkQsRUFBRSxFQUFFb0IsS0FBSztNQUFBLE9BQUFDLGFBQUE7UUFDckMvRSxHQUFHLEVBQUUwRCxFQUFFLENBQUNwRyxFQUFFO1FBQ1Z3SCxLQUFLLEVBQUVBLEtBQUssR0FBRyxDQUFDO1FBQ2hCL0csSUFBSSxFQUFFMkYsRUFBRSxDQUFDM0Y7TUFBSSxHQUNWMkYsRUFBRTtJQUFBLENBQ0wsQ0FBRTtJQUNKc0IsVUFBVSxFQUFFO01BQUVDLFFBQVEsRUFBRSxFQUFFO01BQUVDLGVBQWUsRUFBRTtJQUFLLENBQUU7SUFDcERDLE1BQU0sRUFBRTtNQUFFQyxDQUFDLEVBQUU7SUFBYztFQUFFLENBQzlCLENBQUMsZUFDRjNKLDBEQUFBLENBQUNnRix5RUFBYTtJQUFDNEUsT0FBTyxFQUFFZ007RUFBdUIsQ0FBRSxDQUM5QyxDQUFDO0FBRVYsQ0FBQztBQUVELGlFQUFlRixrQkFBa0IsRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDeklrQjtBQUdJO0FBRW9HO0FBQzVHO0FBQ0Q7QUFFOUMsSUFBTU0sMEJBQW9DLEdBQUcsU0FBdkNBLDBCQUFvQ0EsQ0FBQSxFQUFTO0VBQ2pELElBQU1yVixRQUFRLEdBQUdSLHdEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFNUyxRQUFRLEdBQUdKLDZEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFBSyxZQUFBLEdBQWdGVCx3REFBVyxDQUN6RixVQUFDVSxLQUFnQjtNQUFBLE9BQUtBLEtBQUssQ0FBQ21WLGVBQWU7SUFBQSxDQUM3QyxDQUFDO0lBRk9BLGVBQWUsR0FBQXBWLFlBQUEsQ0FBZm9WLGVBQWU7SUFBRWhWLG9CQUFvQixHQUFBSixZQUFBLENBQXBCSSxvQkFBb0I7SUFBRWlWLDRCQUE0QixHQUFBclYsWUFBQSxDQUE1QnFWLDRCQUE0QjtFQUczRSxJQUFBL1UsYUFBQSxHQUFlQyxvREFBQSxDQUFLQyxPQUFPLENBQUMsQ0FBQztJQUFBQyxjQUFBLEdBQUFDLGNBQUEsQ0FBQUosYUFBQTtJQUF0QkssSUFBSSxHQUFBRixjQUFBO0VBRVgsSUFBTUcsWUFBWSxHQUFHLElBQUlDLGVBQWUsQ0FBQ0MsUUFBUSxDQUFDQyxNQUFNLENBQUM7RUFDekQsSUFBTUMsRUFBRSxHQUFHSixZQUFZLENBQUNLLEdBQUcsQ0FBQyxJQUFJLENBQUM7RUFFakMsSUFBQUMsU0FBQSxHQUE4QjdCLCtDQUFRLENBQUMsS0FBSyxDQUFDO0lBQUE4QixVQUFBLEdBQUFULGNBQUEsQ0FBQVEsU0FBQTtJQUF0Q0UsT0FBTyxHQUFBRCxVQUFBO0lBQUVFLFVBQVUsR0FBQUYsVUFBQTs7RUFFMUI7RUFDQS9CLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUk0QixFQUFFLEVBQUU7TUFDTmxCLFFBQVEsQ0FBQ21WLG9HQUEyQixDQUFDM1QsTUFBTSxDQUFDTixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUMsTUFBTTtNQUNMTCxJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtFQUNGLENBQUMsRUFBRSxDQUFDekIsUUFBUSxFQUFFa0IsRUFBRSxFQUFFTCxJQUFJLENBQUMsQ0FBQzs7RUFFeEI7RUFDQXZCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUk0QixFQUFFLElBQUlvVSxlQUFlLEVBQUU7TUFDekJ6VSxJQUFJLENBQUNhLGNBQWMsQ0FBQztRQUNsQkMsSUFBSSxFQUFFMlQsZUFBZSxDQUFDM1QsSUFBSSxJQUFJLEVBQUU7UUFDaENDLFdBQVcsRUFBRTBULGVBQWUsQ0FBQzFULFdBQVcsSUFBSTtNQUM5QyxDQUFDLENBQUM7SUFDSjtFQUNGLENBQUMsRUFBRSxDQUFDMFQsZUFBZSxFQUFFelUsSUFBSSxFQUFFSyxFQUFFLENBQUMsQ0FBQzs7RUFFL0I7RUFDQTVCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUksQ0FBQ2lXLDRCQUE0QixJQUFJalUsT0FBTyxFQUFFO01BQzVDLElBQUloQixvQkFBb0IsRUFBRTtRQUN4QndCLHVEQUFBLENBQVFDLEtBQUssQ0FBQ3pCLG9CQUFvQixDQUFDO01BQ3JDLENBQUMsTUFBTTtRQUNMd0IsdURBQUEsQ0FBUUUsT0FBTyxDQUFDZCxFQUFFLEdBQUcsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDdkVqQixRQUFRLENBQUMsb0JBQW9CLENBQUM7TUFDaEM7SUFDRjtFQUNGLENBQUMsRUFBRSxDQUFDc1YsNEJBQTRCLEVBQUVqVixvQkFBb0IsRUFBRVksRUFBRSxFQUFFSSxPQUFPLEVBQUVyQixRQUFRLENBQUMsQ0FBQzs7RUFFL0U7RUFDQSxJQUFNZ0MsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUlDLE1BQXVCLEVBQUs7SUFDNUMsSUFBSWhCLEVBQUUsRUFBRTtNQUNObEIsUUFBUSxDQUFDb1Ysb0dBQTJCLENBQUM7UUFBRWxVLEVBQUUsRUFBRU0sTUFBTSxDQUFDTixFQUFFLENBQUM7UUFBRWlCLElBQUksRUFBRUQ7TUFBTyxDQUFDLENBQUMsQ0FBQztNQUN2RXJCLElBQUksQ0FBQ1ksV0FBVyxDQUFDLENBQUM7SUFDcEIsQ0FBQyxNQUFNO01BQ0x6QixRQUFRLENBQUNrVixvR0FBMkIsQ0FBQztRQUFFL1MsSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQ3ZEckIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEI7SUFDQUYsVUFBVSxDQUFDLElBQUksQ0FBQztFQUNsQixDQUFDO0VBRUQsb0JBQ0VsQywwREFBQSxDQUFBQSx1REFBQSxxQkFDRUEsMERBQUEsYUFBSzZCLEVBQUUsR0FBRyx3QkFBd0IsR0FBRyw0QkFBaUMsQ0FBQyxlQUN2RTdCLDBEQUFBLENBQUFvQixvREFBQTtJQUFNSSxJQUFJLEVBQUVBLElBQUs7SUFBQ3lCLE1BQU0sRUFBQyxVQUFVO0lBQUNMLFFBQVEsRUFBRUEsUUFBUztJQUFDTSxLQUFLLEVBQUU7TUFBRUMsUUFBUSxFQUFFLE1BQU07TUFBRUMsTUFBTSxFQUFFO0lBQVM7RUFBRSxnQkFDcEdwRCwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFBRSxnQkFDcEJ0RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUcsZ0JBQ1p4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUk7SUFBQ0MsS0FBSyxFQUFDLGdDQUFPO0lBQUNwQixJQUFJLEVBQUMsTUFBTTtJQUFDcUIsS0FBSyxFQUFFLENBQUM7TUFBRUMsUUFBUSxFQUFFLElBQUk7TUFBRUMsT0FBTyxFQUFFO0lBQXNCLENBQUM7RUFBRSxnQkFDL0Y3RCwwREFBQSxDQUFBOEQscURBQUEsTUFBUSxDQUNDLENBQ1IsQ0FBQyxlQUNOOUQsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFHLGdCQUNaeEQsMERBQUEsQ0FBQW9CLG9EQUFBLENBQU1xQyxJQUFJO0lBQUNDLEtBQUssRUFBQyxzQ0FBUTtJQUFDcEIsSUFBSSxFQUFDO0VBQWEsZ0JBQzFDdEMsMERBQUEsQ0FBQ1MsK0RBQVE7SUFBQ2dFLElBQUksRUFBRTtFQUFFLENBQUUsQ0FDWCxDQUNSLENBQ0YsQ0FBQyxlQUNOekUsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0VBQUUsZ0JBQ3BCdEQsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLGdCQUNYeEQsMERBQUEsQ0FBQW9CLG9EQUFBLENBQU1xQyxJQUFJLHFCQUNSekQsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFDLElBQUksRUFBQyxTQUFTO0lBQUNDLEtBQUs7SUFBQ0MsUUFBUSxFQUFDLFFBQVE7SUFBQ0MsT0FBTyxFQUFFb1I7RUFBNkIsR0FBQyxRQUU5RSxDQUNDLENBQ1IsQ0FBQyxlQUNObFcsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLGdCQUNYeEQsMERBQUEsQ0FBQW9CLG9EQUFBLENBQU1xQyxJQUFJLHFCQUNSekQsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFHLFFBQVEsRUFBQyxRQUFRO0lBQUNFLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUW5FLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQztJQUFBO0VBQUMsR0FBQyxRQUVqRSxDQUNDLENBQ1IsQ0FDRixDQUNELENBQ04sQ0FBQztBQUVQLENBQUM7QUFFRCxpRUFBZW9WLDBCQUEwQixFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RHVTtBQUVJO0FBRVI7QUFDdUI7QUFDUztBQUNzRTtBQUN0SDtBQUUvQixJQUFNSyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFBLEVBQVM7RUFDaEMsSUFBTTFWLFFBQVEsR0FBR1Isd0RBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQU1TLFFBQVEsR0FBR0osNkRBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQUF1QixTQUFBLEdBQXdDN0IsK0NBQVEsQ0FBTSxFQUFFLENBQUM7SUFBQThCLFVBQUEsR0FBQVQsY0FBQSxDQUFBUSxTQUFBO0lBQWxEeUQsWUFBWSxHQUFBeEQsVUFBQTtJQUFFeUQsZUFBZSxHQUFBekQsVUFBQTtFQUNwQyxJQUFBMEQsVUFBQSxHQUFvQ3hGLCtDQUFRLENBQUMsRUFBRSxDQUFDO0lBQUF5RixVQUFBLEdBQUFwRSxjQUFBLENBQUFtRSxVQUFBO0lBQXpDRSxVQUFVLEdBQUFELFVBQUE7SUFBRUUsYUFBYSxHQUFBRixVQUFBO0VBQ2hDLElBQUE5RSxZQUFBLEdBQXNEVCx3REFBVyxDQUFDLFVBQUNVLEtBQWdCO01BQUEsT0FBS0EsS0FBSyxDQUFDbVYsZUFBZTtJQUFBLEVBQUM7SUFBdEdLLGdCQUFnQixHQUFBelYsWUFBQSxDQUFoQnlWLGdCQUFnQjtJQUFFQyx1QkFBdUIsR0FBQTFWLFlBQUEsQ0FBdkIwVix1QkFBdUI7RUFFakR0VyxnREFBUyxDQUFDLFlBQU07SUFDZFUsUUFBUSxDQUFDeVYsK0ZBQXFCLENBQUMsQ0FBQyxDQUFDO0VBQ25DLENBQUMsRUFBRSxDQUFDelYsUUFBUSxDQUFDLENBQUM7RUFFZCxJQUFNb0YsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUlsRSxFQUFPLEVBQUs7SUFDOUJsQixRQUFRLENBQUNtVixxR0FBMkIsQ0FBQ2pVLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDakIsUUFBUSwrQkFBQW9GLE1BQUEsQ0FBK0JuRSxFQUFFLENBQUUsQ0FBQztFQUM5QyxDQUFDO0VBRUQsSUFBTW9FLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJcEUsRUFBTyxFQUFLO0lBQ2hDeUQsd0RBQVMsQ0FBQztNQUNSYSxLQUFLLEVBQUUsZUFBZTtNQUN0QkMsSUFBSSxFQUFFLG9DQUFvQztNQUMxQ0MsSUFBSSxFQUFFLFNBQVM7TUFDZkMsaUJBQWlCLEVBQUUsS0FBSztNQUN4QkMsZ0JBQWdCLEVBQUUsS0FBSztNQUN2QkMsSUFBSSwyWEFLSDtNQUNEQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFRO1FBQUEsSUFBQUMsY0FBQSxFQUFBQyxlQUFBO1FBQ2IsSUFBTUMsYUFBYSxJQUFBRixjQUFBLEdBQUdwQiw0REFBYSxDQUFDLENBQUMsY0FBQW9CLGNBQUEsdUJBQWZBLGNBQUEsQ0FBaUJJLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztRQUN2RSxJQUFNQyxZQUFZLElBQUFKLGVBQUEsR0FBR3JCLDREQUFhLENBQUMsQ0FBQyxjQUFBcUIsZUFBQSx1QkFBZkEsZUFBQSxDQUFpQkcsYUFBYSxDQUFDLGdCQUFnQixDQUFDO1FBRXJFRixhQUFhLGFBQWJBLGFBQWEsZUFBYkEsYUFBYSxDQUFFSSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBTTtVQUM3Q3JHLFFBQVEsQ0FBQ3dWLHFHQUEyQixDQUFDdFUsRUFBRSxDQUFDLENBQUMsQ0FBQ29GLElBQUksQ0FBQyxZQUFNO1lBQ25EM0Isd0RBQVMsQ0FBQyxVQUFVLEVBQUUsNEJBQTRCLEVBQUUsU0FBUyxDQUFDO1lBQzlEM0UsUUFBUSxDQUFDeVYsK0ZBQXFCLENBQUMsQ0FBQyxDQUFDO1VBQ25DLENBQUMsQ0FBQztVQUNGOVEseURBQVUsQ0FBQyxDQUFDO1FBQ2QsQ0FBQyxDQUFDO1FBRUZ5QixZQUFZLGFBQVpBLFlBQVksZUFBWkEsWUFBWSxDQUFFQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBTTtVQUM1QzFCLHlEQUFVLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQztNQUNKO0lBQ0YsQ0FBQyxDQUFDO0VBQ0osQ0FBQztFQUVELElBQU02QixZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQSxFQUFTO0lBQ3pCO0lBQ0F0QixhQUFhLENBQUNELFVBQVUsQ0FBQ3dCLElBQUksQ0FBQyxDQUFDLENBQUM7RUFDbEMsQ0FBQztFQUVELElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFBLEVBQVM7SUFDeEI7SUFDQXhCLGFBQWEsQ0FBQyxFQUFFLENBQUM7RUFDbkIsQ0FBQztFQUVELElBQU15QixPQUFPLEdBQUcsQ0FDZDtJQUFFbkIsS0FBSyxFQUFFLFFBQVE7SUFBRW9CLFNBQVMsRUFBRSxPQUFPO0lBQUVoRCxHQUFHLEVBQUUsT0FBTztJQUFFaUQsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDekU7SUFBRXJCLEtBQUssRUFBRSxPQUFPO0lBQUVvQixTQUFTLEVBQUUsTUFBTTtJQUFFaEQsR0FBRyxFQUFFLE1BQU07SUFBRWlELFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3RFO0lBQUVyQixLQUFLLEVBQUUsUUFBUTtJQUFFb0IsU0FBUyxFQUFFLGFBQWE7SUFBRWhELEdBQUcsRUFBRSxhQUFhO0lBQUVpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUNyRjtJQUNFckIsS0FBSyxFQUFFLFFBQVE7SUFDZjVCLEdBQUcsRUFBRSxRQUFRO0lBQ2JpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7SUFDcENDLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFHQyxDQUFTLEVBQUVDLE1BQVc7TUFBQSxvQkFDN0IzSCwwREFBQSxDQUFBNEgscURBQUE7UUFBT0MsSUFBSSxFQUFDO01BQVEsZ0JBQ2xCN0gsMERBQUEsQ0FBQTBFLHVEQUFBO1FBQVEyQixJQUFJLGVBQUVyRywwREFBQSxDQUFDa0YseURBQVksTUFBRSxDQUFFO1FBQUNQLElBQUksRUFBQyxTQUFTO1FBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUWdCLFVBQVUsQ0FBQzRCLE1BQU0sQ0FBQzlGLEVBQUUsQ0FBQztRQUFBO01BQUMsQ0FBRSxDQUFDLGVBQ3ZGN0IsMERBQUEsQ0FBQTBFLHVEQUFBO1FBQVEyQixJQUFJLGVBQUVyRywwREFBQSxDQUFDaUYseURBQWMsTUFBRSxDQUFFO1FBQUM2QyxNQUFNO1FBQUMvQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFrQixZQUFZLENBQUMwQixNQUFNLENBQUM5RixFQUFFLENBQUM7UUFBQTtNQUFDLENBQUUsQ0FDN0UsQ0FBQztJQUFBO0VBRVosQ0FBQyxDQUNGO0VBRUQsSUFBTWtHLFlBQVksR0FBRyxDQUFDdU8sZ0JBQWdCLElBQUksRUFBRSxFQUFFdE8sTUFBTSxDQUFDLFVBQUNDLEVBQUU7SUFBQSxJQUFBQyxRQUFBO0lBQUEsUUFBQUEsUUFBQSxHQUN0REQsRUFBRSxDQUFDM0YsSUFBSSxjQUFBNEYsUUFBQSx1QkFBUEEsUUFBQSxDQUFTQyxXQUFXLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUN4QyxVQUFVLENBQUN1QyxXQUFXLENBQUMsQ0FBQyxDQUFDO0VBQUEsQ0FDM0QsQ0FBQztFQUVELG9CQUNFbkksMERBQUE7SUFBS2tELEtBQUssRUFBRTtNQUFFbUYsU0FBUyxFQUFFO0lBQU87RUFBRSxnQkFDaENySSwwREFBQSxhQUFJLGdJQUF5QixDQUFDLGVBQzlCQSwwREFBQTtJQUNFa0QsS0FBSyxFQUFFO01BQ0xvRixPQUFPLEVBQUUsTUFBTTtNQUNmQyxjQUFjLEVBQUUsZUFBZTtNQUMvQkMsT0FBTyxFQUFFLE1BQU07TUFDZkMsVUFBVSxFQUFFLFNBQVM7TUFDckJDLFlBQVksRUFBRSxNQUFNO01BQ3BCQyxRQUFRLEVBQUU7SUFDWjtFQUFFLGdCQUVGM0ksMERBQUEsQ0FBQTRILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1Q1SSwwREFBQSxlQUFNLDRCQUFNLEVBQUMsQ0FBQStILFlBQVksYUFBWkEsWUFBWSx1QkFBWkEsWUFBWSxDQUFFYyxNQUFNLEtBQUksQ0FBUSxDQUFDLGVBQzlDN0ksMERBQUEsQ0FBQThELHFEQUFBO0lBQ0VHLFdBQVcsRUFBQywrQ0FBWTtJQUN4QmYsS0FBSyxFQUFFO01BQUU0RixLQUFLLEVBQUU7SUFBSSxDQUFFO0lBQ3RCdEUsS0FBSyxFQUFFb0IsVUFBVztJQUNsQm1ELFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHQyxDQUFDO01BQUEsT0FBS25ELGFBQWEsQ0FBQ21ELENBQUMsQ0FBQ0MsTUFBTSxDQUFDekUsS0FBSyxDQUFDO0lBQUE7RUFBQyxDQUNoRCxDQUFDLGVBQ0Z4RSwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUssT0FBTyxFQUFFb0MsWUFBYTtJQUFDeEMsSUFBSSxFQUFDO0VBQVMsR0FBQyxzQ0FBYyxDQUFDLGVBQzdEM0UsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFLLE9BQU8sRUFBRXNDO0VBQVksR0FBQyxvRUFBbUIsQ0FDNUMsQ0FBQyxlQUNSckgsMERBQUEsQ0FBQTRILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1Q1SSwwREFBQSxDQUFBMEUsdURBQUE7SUFBUTJCLElBQUksZUFBRXJHLDBEQUFBLENBQUNtRiwwREFBWSxNQUFFLENBQUU7SUFBQ1IsSUFBSSxFQUFDLFNBQVM7SUFBQ0ksT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRbkUsUUFBUSwwQkFBMEIsQ0FBQztJQUFBO0VBQUMsR0FBQyw4REFBa0IsQ0FDaEgsQ0FDSixDQUFDLGVBQ05aLDBEQUFBLENBQUFrSixxREFBQTtJQUNFQyxZQUFZLEVBQUU7TUFDWnhFLElBQUksRUFBRSxVQUFVO01BQ2hCb0UsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdyQixDQUFDLEVBQUVsQyxZQUFZO1FBQUEsT0FBS0MsZUFBZSxDQUFDRCxZQUFZLENBQUM7TUFBQTtJQUM5RCxDQUFFO0lBQ0Y4QixPQUFPLEVBQUVBLE9BQVE7SUFDakI4QixVQUFVLEVBQUVyQixZQUFZLENBQUMzRCxHQUFHLENBQUMsVUFBQzZELEVBQUUsRUFBRW9CLEtBQUs7TUFBQSxPQUFBQyxhQUFBO1FBQ3JDL0UsR0FBRyxFQUFFMEQsRUFBRSxDQUFDcEcsRUFBRTtRQUNWd0gsS0FBSyxFQUFFQSxLQUFLLEdBQUcsQ0FBQztRQUNoQi9HLElBQUksRUFBRTJGLEVBQUUsQ0FBQzNGO01BQUksR0FDVjJGLEVBQUU7SUFBQSxDQUNMLENBQUU7SUFDSnNCLFVBQVUsRUFBRTtNQUFFQyxRQUFRLEVBQUUsRUFBRTtNQUFFQyxlQUFlLEVBQUU7SUFBSyxDQUFFO0lBQ3BEQyxNQUFNLEVBQUU7TUFBRUMsQ0FBQyxFQUFFO0lBQWM7RUFBRSxDQUM5QixDQUFDLGVBQ0YzSiwwREFBQSxDQUFDZ0YseUVBQWE7SUFBQzRFLE9BQU8sRUFBRTJNO0VBQXdCLENBQUUsQ0FDL0MsQ0FBQztBQUVWLENBQUM7QUFFRCxpRUFBZUYsbUJBQW1CLEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3pJaUI7QUFHSTtBQUU0RTtBQUNwRjtBQUNEO0FBRTlDLElBQU1NLG9CQUE4QixHQUFHLFNBQWpDQSxvQkFBOEJBLENBQUEsRUFBUztFQUMzQyxJQUFNaFcsUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQUssWUFBQSxHQUFvRVQsd0RBQVcsQ0FDN0UsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUM4VixTQUFTO0lBQUEsQ0FDdkMsQ0FBQztJQUZPQSxTQUFTLEdBQUEvVixZQUFBLENBQVQrVixTQUFTO0lBQUUzVixvQkFBb0IsR0FBQUosWUFBQSxDQUFwQkksb0JBQW9CO0lBQUU0VixzQkFBc0IsR0FBQWhXLFlBQUEsQ0FBdEJnVyxzQkFBc0I7RUFHL0QsSUFBQTFWLGFBQUEsR0FBZUMsb0RBQUEsQ0FBS0MsT0FBTyxDQUFDLENBQUM7SUFBQUMsY0FBQSxHQUFBQyxjQUFBLENBQUFKLGFBQUE7SUFBdEJLLElBQUksR0FBQUYsY0FBQTtFQUVYLElBQU1HLFlBQVksR0FBRyxJQUFJQyxlQUFlLENBQUNDLFFBQVEsQ0FBQ0MsTUFBTSxDQUFDO0VBQ3pELElBQU1DLEVBQUUsR0FBR0osWUFBWSxDQUFDSyxHQUFHLENBQUMsSUFBSSxDQUFDO0VBRWpDLElBQUFDLFNBQUEsR0FBOEI3QiwrQ0FBUSxDQUFDLEtBQUssQ0FBQztJQUFBOEIsVUFBQSxHQUFBVCxjQUFBLENBQUFRLFNBQUE7SUFBdENFLE9BQU8sR0FBQUQsVUFBQTtJQUFFRSxVQUFVLEdBQUFGLFVBQUE7O0VBRTFCO0VBQ0EvQixnREFBUyxDQUFDLFlBQU07SUFDZCxJQUFJNEIsRUFBRSxFQUFFO01BQ05sQixRQUFRLENBQUM4Vix3RkFBcUIsQ0FBQ3RVLE1BQU0sQ0FBQ04sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDLE1BQU07TUFDTEwsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEI7RUFDRixDQUFDLEVBQUUsQ0FBQ3pCLFFBQVEsRUFBRWtCLEVBQUUsRUFBRUwsSUFBSSxDQUFDLENBQUM7O0VBRXhCO0VBQ0F2QixnREFBUyxDQUFDLFlBQU07SUFDZCxJQUFJNEIsRUFBRSxJQUFJK1UsU0FBUyxFQUFFO01BQ25CcFYsSUFBSSxDQUFDYSxjQUFjLENBQUM7UUFDbEJDLElBQUksRUFBRXNVLFNBQVMsQ0FBQ3RVLElBQUksSUFBSSxFQUFFO1FBQzFCQyxXQUFXLEVBQUVxVSxTQUFTLENBQUNyVSxXQUFXLElBQUk7TUFDeEMsQ0FBQyxDQUFDO0lBQ0o7RUFDRixDQUFDLEVBQUUsQ0FBQ3FVLFNBQVMsRUFBRXBWLElBQUksRUFBRUssRUFBRSxDQUFDLENBQUM7O0VBRXpCO0VBQ0E1QixnREFBUyxDQUFDLFlBQU07SUFDZCxJQUFJLENBQUM0VyxzQkFBc0IsSUFBSTVVLE9BQU8sRUFBRTtNQUN0QyxJQUFJaEIsb0JBQW9CLEVBQUU7UUFDeEJ3Qix1REFBQSxDQUFRQyxLQUFLLENBQUN6QixvQkFBb0IsQ0FBQztNQUNyQyxDQUFDLE1BQU07UUFDTHdCLHVEQUFBLENBQVFFLE9BQU8sQ0FBQ2QsRUFBRSxHQUFHLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ3ZFakIsUUFBUSxDQUFDLGNBQWMsQ0FBQztNQUMxQjtJQUNGO0VBQ0YsQ0FBQyxFQUFFLENBQUNpVyxzQkFBc0IsRUFBRTVWLG9CQUFvQixFQUFFWSxFQUFFLEVBQUVJLE9BQU8sRUFBRXJCLFFBQVEsQ0FBQyxDQUFDOztFQUV6RTtFQUNBLElBQU1nQyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUMsTUFBaUIsRUFBSztJQUN0QyxJQUFJaEIsRUFBRSxFQUFFO01BQ05sQixRQUFRLENBQUMrVix3RkFBcUIsQ0FBQztRQUFFN1UsRUFBRSxFQUFFTSxNQUFNLENBQUNOLEVBQUUsQ0FBQztRQUFFaUIsSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQ2pFckIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQztJQUNwQixDQUFDLE1BQU07TUFDTHpCLFFBQVEsQ0FBQzZWLHdGQUFxQixDQUFDO1FBQUUxVCxJQUFJLEVBQUVEO01BQU8sQ0FBQyxDQUFDLENBQUM7TUFDakRyQixJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtJQUNBRixVQUFVLENBQUMsSUFBSSxDQUFDO0VBQ2xCLENBQUM7RUFFRCxvQkFDRWxDLDBEQUFBLENBQUFBLHVEQUFBLHFCQUNFQSwwREFBQSxhQUFLNkIsRUFBRSxHQUFHLHFCQUFxQixHQUFHLHlCQUE4QixDQUFDLGVBQ2pFN0IsMERBQUEsQ0FBQW9CLG9EQUFBO0lBQU1JLElBQUksRUFBRUEsSUFBSztJQUFDeUIsTUFBTSxFQUFDLFVBQVU7SUFBQ0wsUUFBUSxFQUFFQSxRQUFTO0lBQUNNLEtBQUssRUFBRTtNQUFFQyxRQUFRLEVBQUUsTUFBTTtNQUFFQyxNQUFNLEVBQUU7SUFBUztFQUFFLGdCQUNwR3BELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtFQUFFLGdCQUNwQnRELDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRyxnQkFDWnhELDBEQUFBLENBQUFvQixvREFBQSxDQUFNcUMsSUFBSTtJQUFDQyxLQUFLLEVBQUMsZ0NBQU87SUFBQ3BCLElBQUksRUFBQyxNQUFNO0lBQUNxQixLQUFLLEVBQUUsQ0FBQztNQUFFQyxRQUFRLEVBQUUsSUFBSTtNQUFFQyxPQUFPLEVBQUU7SUFBc0IsQ0FBQztFQUFFLGdCQUMvRjdELDBEQUFBLENBQUE4RCxxREFBQSxNQUFRLENBQ0MsQ0FDUixDQUFDLGVBQ045RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUcsZ0JBQ1p4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUk7SUFBQ0MsS0FBSyxFQUFDLHNDQUFRO0lBQUNwQixJQUFJLEVBQUM7RUFBYSxnQkFDMUN0QywwREFBQSxDQUFDUywrREFBUTtJQUFDZ0UsSUFBSSxFQUFFO0VBQUUsQ0FBRSxDQUNYLENBQ1IsQ0FDRixDQUFDLGVBQ056RSwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFBRSxnQkFDcEJ0RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUkscUJBQ1J6RCwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUMsSUFBSSxFQUFDLFNBQVM7SUFBQ0MsS0FBSztJQUFDQyxRQUFRLEVBQUMsUUFBUTtJQUFDQyxPQUFPLEVBQUUrUjtFQUF1QixHQUFDLFFBRXhFLENBQ0MsQ0FDUixDQUFDLGVBQ043VywwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUkscUJBQ1J6RCwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUcsUUFBUSxFQUFDLFFBQVE7SUFBQ0UsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRbkUsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUFBO0VBQUMsR0FBQyxRQUUzRCxDQUNDLENBQ1IsQ0FDRixDQUNELENBQ04sQ0FBQztBQUVQLENBQUM7QUFFRCxpRUFBZStWLG9CQUFvQixFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RHZ0I7QUFFSTtBQUVSO0FBQ3VCO0FBQ1M7QUFDOEM7QUFDOUY7QUFFL0IsSUFBTUssYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFBLEVBQVM7RUFDMUIsSUFBTXJXLFFBQVEsR0FBR1Isd0RBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQU1TLFFBQVEsR0FBR0osNkRBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQUF1QixTQUFBLEdBQXdDN0IsK0NBQVEsQ0FBTSxFQUFFLENBQUM7SUFBQThCLFVBQUEsR0FBQVQsY0FBQSxDQUFBUSxTQUFBO0lBQWxEeUQsWUFBWSxHQUFBeEQsVUFBQTtJQUFFeUQsZUFBZSxHQUFBekQsVUFBQTtFQUNwQyxJQUFBMEQsVUFBQSxHQUFvQ3hGLCtDQUFRLENBQUMsRUFBRSxDQUFDO0lBQUF5RixVQUFBLEdBQUFwRSxjQUFBLENBQUFtRSxVQUFBO0lBQXpDRSxVQUFVLEdBQUFELFVBQUE7SUFBRUUsYUFBYSxHQUFBRixVQUFBO0VBQ2hDLElBQUE5RSxZQUFBLEdBQTBDVCx3REFBVyxDQUFDLFVBQUNVLEtBQWdCO01BQUEsT0FBS0EsS0FBSyxDQUFDOFYsU0FBUztJQUFBLEVBQUM7SUFBcEZLLFVBQVUsR0FBQXBXLFlBQUEsQ0FBVm9XLFVBQVU7SUFBRUMsaUJBQWlCLEdBQUFyVyxZQUFBLENBQWpCcVcsaUJBQWlCO0VBRXJDalgsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2RVLFFBQVEsQ0FBQ29XLG1GQUFlLENBQUMsQ0FBQyxDQUFDO0VBQzdCLENBQUMsRUFBRSxDQUFDcFcsUUFBUSxDQUFDLENBQUM7RUFFZCxJQUFNb0YsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUlsRSxFQUFPLEVBQUs7SUFDOUJsQixRQUFRLENBQUM4Vix5RkFBcUIsQ0FBQzVVLEVBQUUsQ0FBQyxDQUFDO0lBQ25DakIsUUFBUSx5QkFBQW9GLE1BQUEsQ0FBeUJuRSxFQUFFLENBQUUsQ0FBQztFQUN4QyxDQUFDO0VBRUQsSUFBTW9FLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJcEUsRUFBTyxFQUFLO0lBQ2hDeUQsd0RBQVMsQ0FBQztNQUNSYSxLQUFLLEVBQUUsZUFBZTtNQUN0QkMsSUFBSSxFQUFFLG9DQUFvQztNQUMxQ0MsSUFBSSxFQUFFLFNBQVM7TUFDZkMsaUJBQWlCLEVBQUUsS0FBSztNQUN4QkMsZ0JBQWdCLEVBQUUsS0FBSztNQUN2QkMsSUFBSSwyWEFLSDtNQUNEQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFRO1FBQUEsSUFBQUMsY0FBQSxFQUFBQyxlQUFBO1FBQ2IsSUFBTUMsYUFBYSxJQUFBRixjQUFBLEdBQUdwQiw0REFBYSxDQUFDLENBQUMsY0FBQW9CLGNBQUEsdUJBQWZBLGNBQUEsQ0FBaUJJLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztRQUN2RSxJQUFNQyxZQUFZLElBQUFKLGVBQUEsR0FBR3JCLDREQUFhLENBQUMsQ0FBQyxjQUFBcUIsZUFBQSx1QkFBZkEsZUFBQSxDQUFpQkcsYUFBYSxDQUFDLGdCQUFnQixDQUFDO1FBRXJFRixhQUFhLGFBQWJBLGFBQWEsZUFBYkEsYUFBYSxDQUFFSSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBTTtVQUM3Q3JHLFFBQVEsQ0FBQ21XLHlGQUFxQixDQUFDalYsRUFBRSxDQUFDLENBQUMsQ0FBQ29GLElBQUksQ0FBQyxZQUFNO1lBQzdDM0Isd0RBQVMsQ0FBQyxVQUFVLEVBQUUsNEJBQTRCLEVBQUUsU0FBUyxDQUFDO1lBQzlEM0UsUUFBUSxDQUFDb1csbUZBQWUsQ0FBQyxDQUFDLENBQUM7VUFDN0IsQ0FBQyxDQUFDO1VBQ0Z6Uix5REFBVSxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUM7UUFFRnlCLFlBQVksYUFBWkEsWUFBWSxlQUFaQSxZQUFZLENBQUVDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFNO1VBQzVDMUIseURBQVUsQ0FBQyxDQUFDO1FBQ2QsQ0FBQyxDQUFDO01BQ0o7SUFDRixDQUFDLENBQUM7RUFDSixDQUFDO0VBRUQsSUFBTTZCLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBLEVBQVM7SUFDekI7SUFDQXRCLGFBQWEsQ0FBQ0QsVUFBVSxDQUFDd0IsSUFBSSxDQUFDLENBQUMsQ0FBQztFQUNsQyxDQUFDO0VBRUQsSUFBTUMsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUEsRUFBUztJQUN4QjtJQUNBeEIsYUFBYSxDQUFDLEVBQUUsQ0FBQztFQUNuQixDQUFDO0VBRUQsSUFBTXlCLE9BQU8sR0FBRyxDQUNkO0lBQUVuQixLQUFLLEVBQUUsUUFBUTtJQUFFb0IsU0FBUyxFQUFFLE9BQU87SUFBRWhELEdBQUcsRUFBRSxPQUFPO0lBQUVpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUN6RTtJQUFFckIsS0FBSyxFQUFFLE9BQU87SUFBRW9CLFNBQVMsRUFBRSxNQUFNO0lBQUVoRCxHQUFHLEVBQUUsTUFBTTtJQUFFaUQsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDdEU7SUFBRXJCLEtBQUssRUFBRSxRQUFRO0lBQUVvQixTQUFTLEVBQUUsYUFBYTtJQUFFaEQsR0FBRyxFQUFFLGFBQWE7SUFBRWlELFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3JGO0lBQ0VyQixLQUFLLEVBQUUsUUFBUTtJQUNmNUIsR0FBRyxFQUFFLFFBQVE7SUFDYmlELFVBQVUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztJQUNwQ0MsTUFBTSxFQUFFLFNBQVJBLE1BQU1BLENBQUdDLENBQVMsRUFBRUMsTUFBVztNQUFBLG9CQUM3QjNILDBEQUFBLENBQUE0SCxxREFBQTtRQUFPQyxJQUFJLEVBQUM7TUFBUSxnQkFDbEI3SCwwREFBQSxDQUFBMEUsdURBQUE7UUFBUTJCLElBQUksZUFBRXJHLDBEQUFBLENBQUNrRix5REFBWSxNQUFFLENBQUU7UUFBQ1AsSUFBSSxFQUFDLFNBQVM7UUFBQ0ksT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7VUFBQSxPQUFRZ0IsVUFBVSxDQUFDNEIsTUFBTSxDQUFDOUYsRUFBRSxDQUFDO1FBQUE7TUFBQyxDQUFFLENBQUMsZUFDdkY3QiwwREFBQSxDQUFBMEUsdURBQUE7UUFBUTJCLElBQUksZUFBRXJHLDBEQUFBLENBQUNpRix5REFBYyxNQUFFLENBQUU7UUFBQzZDLE1BQU07UUFBQy9DLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUWtCLFlBQVksQ0FBQzBCLE1BQU0sQ0FBQzlGLEVBQUUsQ0FBQztRQUFBO01BQUMsQ0FBRSxDQUM3RSxDQUFDO0lBQUE7RUFFWixDQUFDLENBQ0Y7RUFFRCxJQUFNa0csWUFBWSxHQUFHLENBQUNrUCxVQUFVLElBQUksRUFBRSxFQUFFalAsTUFBTSxDQUFDLFVBQUNDLEVBQUU7SUFBQSxJQUFBQyxRQUFBO0lBQUEsUUFBQUEsUUFBQSxHQUNoREQsRUFBRSxDQUFDM0YsSUFBSSxjQUFBNEYsUUFBQSx1QkFBUEEsUUFBQSxDQUFTQyxXQUFXLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUN4QyxVQUFVLENBQUN1QyxXQUFXLENBQUMsQ0FBQyxDQUFDO0VBQUEsQ0FDM0QsQ0FBQztFQUVELG9CQUNFbkksMERBQUE7SUFBS2tELEtBQUssRUFBRTtNQUFFbUYsU0FBUyxFQUFFO0lBQU87RUFBRSxnQkFDaENySSwwREFBQSxhQUFJLDhHQUFzQixDQUFDLGVBQzNCQSwwREFBQTtJQUNFa0QsS0FBSyxFQUFFO01BQ0xvRixPQUFPLEVBQUUsTUFBTTtNQUNmQyxjQUFjLEVBQUUsZUFBZTtNQUMvQkMsT0FBTyxFQUFFLE1BQU07TUFDZkMsVUFBVSxFQUFFLFNBQVM7TUFDckJDLFlBQVksRUFBRSxNQUFNO01BQ3BCQyxRQUFRLEVBQUU7SUFDWjtFQUFFLGdCQUVGM0ksMERBQUEsQ0FBQTRILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1Q1SSwwREFBQSxlQUFNLDRCQUFNLEVBQUMsQ0FBQStILFlBQVksYUFBWkEsWUFBWSx1QkFBWkEsWUFBWSxDQUFFYyxNQUFNLEtBQUksQ0FBUSxDQUFDLGVBQzlDN0ksMERBQUEsQ0FBQThELHFEQUFBO0lBQ0VHLFdBQVcsRUFBQywrQ0FBWTtJQUN4QmYsS0FBSyxFQUFFO01BQUU0RixLQUFLLEVBQUU7SUFBSSxDQUFFO0lBQ3RCdEUsS0FBSyxFQUFFb0IsVUFBVztJQUNsQm1ELFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHQyxDQUFDO01BQUEsT0FBS25ELGFBQWEsQ0FBQ21ELENBQUMsQ0FBQ0MsTUFBTSxDQUFDekUsS0FBSyxDQUFDO0lBQUE7RUFBQyxDQUNoRCxDQUFDLGVBQ0Z4RSwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUssT0FBTyxFQUFFb0MsWUFBYTtJQUFDeEMsSUFBSSxFQUFDO0VBQVMsR0FBQyxzQ0FBYyxDQUFDLGVBQzdEM0UsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFLLE9BQU8sRUFBRXNDO0VBQVksR0FBQyxvRUFBbUIsQ0FDNUMsQ0FBQyxlQUNSckgsMERBQUEsQ0FBQTRILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1Q1SSwwREFBQSxDQUFBMEUsdURBQUE7SUFBUTJCLElBQUksZUFBRXJHLDBEQUFBLENBQUNtRiwwREFBWSxNQUFFLENBQUU7SUFBQ1IsSUFBSSxFQUFDLFNBQVM7SUFBQ0ksT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRbkUsUUFBUSxvQkFBb0IsQ0FBQztJQUFBO0VBQUMsR0FBQyw4REFBa0IsQ0FDMUcsQ0FDSixDQUFDLGVBQ05aLDBEQUFBLENBQUFrSixxREFBQTtJQUNFQyxZQUFZLEVBQUU7TUFDWnhFLElBQUksRUFBRSxVQUFVO01BQ2hCb0UsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdyQixDQUFDLEVBQUVsQyxZQUFZO1FBQUEsT0FBS0MsZUFBZSxDQUFDRCxZQUFZLENBQUM7TUFBQTtJQUM5RCxDQUFFO0lBQ0Y4QixPQUFPLEVBQUVBLE9BQVE7SUFDakI4QixVQUFVLEVBQUVyQixZQUFZLENBQUMzRCxHQUFHLENBQUMsVUFBQzZELEVBQUUsRUFBRW9CLEtBQUs7TUFBQSxPQUFBQyxhQUFBO1FBQ3JDL0UsR0FBRyxFQUFFMEQsRUFBRSxDQUFDcEcsRUFBRTtRQUNWd0gsS0FBSyxFQUFFQSxLQUFLLEdBQUcsQ0FBQztRQUNoQi9HLElBQUksRUFBRTJGLEVBQUUsQ0FBQzNGO01BQUksR0FDVjJGLEVBQUU7SUFBQSxDQUNMLENBQUU7SUFDSnNCLFVBQVUsRUFBRTtNQUFFQyxRQUFRLEVBQUUsRUFBRTtNQUFFQyxlQUFlLEVBQUU7SUFBSyxDQUFFO0lBQ3BEQyxNQUFNLEVBQUU7TUFBRUMsQ0FBQyxFQUFFO0lBQWM7RUFBRSxDQUM5QixDQUFDLGVBQ0YzSiwwREFBQSxDQUFDZ0YseUVBQWE7SUFBQzRFLE9BQU8sRUFBRXNOO0VBQWtCLENBQUUsQ0FDekMsQ0FBQztBQUVWLENBQUM7QUFFRCxpRUFBZUYsYUFBYSxFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJDeEk1Qix1S0FBQWhPLENBQUEsRUFBQXdCLENBQUEsRUFBQUMsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxDQUFBRyxRQUFBLGtCQUFBQyxDQUFBLEdBQUFKLENBQUEsQ0FBQUssV0FBQSw4QkFBQUMsRUFBQU4sQ0FBQSxFQUFBRSxDQUFBLEVBQUFFLENBQUEsRUFBQUUsQ0FBQSxRQUFBQyxDQUFBLEdBQUFMLENBQUEsSUFBQUEsQ0FBQSxDQUFBTSxTQUFBLFlBQUFDLFNBQUEsR0FBQVAsQ0FBQSxHQUFBTyxTQUFBLEVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxNQUFBLENBQUFMLENBQUEsQ0FBQUMsU0FBQSxVQUFBSyxtQkFBQSxDQUFBSCxDQUFBLHVCQUFBVixDQUFBLEVBQUFFLENBQUEsRUFBQUUsQ0FBQSxRQUFBRSxDQUFBLEVBQUFDLENBQUEsRUFBQUcsQ0FBQSxFQUFBSSxDQUFBLE1BQUFDLENBQUEsR0FBQVgsQ0FBQSxRQUFBWSxDQUFBLE9BQUFDLENBQUEsS0FBQUYsQ0FBQSxLQUFBYixDQUFBLEtBQUFnQixDQUFBLEVBQUEzQyxDQUFBLEVBQUE0QyxDQUFBLEVBQUFDLENBQUEsRUFBQU4sQ0FBQSxFQUFBTSxDQUFBLENBQUFDLElBQUEsQ0FBQTlDLENBQUEsTUFBQTZDLENBQUEsV0FBQUEsRUFBQXJCLENBQUEsRUFBQUMsQ0FBQSxXQUFBTSxDQUFBLEdBQUFQLENBQUEsRUFBQVEsQ0FBQSxNQUFBRyxDQUFBLEdBQUFuQyxDQUFBLEVBQUEwQyxDQUFBLENBQUFmLENBQUEsR0FBQUYsQ0FBQSxFQUFBbUIsQ0FBQSxnQkFBQUMsRUFBQXBCLENBQUEsRUFBQUUsQ0FBQSxTQUFBSyxDQUFBLEdBQUFQLENBQUEsRUFBQVUsQ0FBQSxHQUFBUixDQUFBLEVBQUFILENBQUEsT0FBQWlCLENBQUEsSUFBQUYsQ0FBQSxLQUFBVixDQUFBLElBQUFMLENBQUEsR0FBQWdCLENBQUEsQ0FBQTNDLE1BQUEsRUFBQTJCLENBQUEsVUFBQUssQ0FBQSxFQUFBRSxDQUFBLEdBQUFTLENBQUEsQ0FBQWhCLENBQUEsR0FBQXFCLENBQUEsR0FBQUgsQ0FBQSxDQUFBRixDQUFBLEVBQUFPLENBQUEsR0FBQWhCLENBQUEsS0FBQU4sQ0FBQSxRQUFBSSxDQUFBLEdBQUFrQixDQUFBLEtBQUFwQixDQUFBLE1BQUFRLENBQUEsR0FBQUosQ0FBQSxFQUFBQyxDQUFBLEdBQUFELENBQUEsWUFBQUMsQ0FBQSxXQUFBRCxDQUFBLE1BQUFBLENBQUEsTUFBQS9CLENBQUEsSUFBQStCLENBQUEsT0FBQWMsQ0FBQSxNQUFBaEIsQ0FBQSxHQUFBSixDQUFBLFFBQUFvQixDQUFBLEdBQUFkLENBQUEsUUFBQUMsQ0FBQSxNQUFBVSxDQUFBLENBQUFDLENBQUEsR0FBQWhCLENBQUEsRUFBQWUsQ0FBQSxDQUFBZixDQUFBLEdBQUFJLENBQUEsT0FBQWMsQ0FBQSxHQUFBRSxDQUFBLEtBQUFsQixDQUFBLEdBQUFKLENBQUEsUUFBQU0sQ0FBQSxNQUFBSixDQUFBLElBQUFBLENBQUEsR0FBQW9CLENBQUEsTUFBQWhCLENBQUEsTUFBQU4sQ0FBQSxFQUFBTSxDQUFBLE1BQUFKLENBQUEsRUFBQWUsQ0FBQSxDQUFBZixDQUFBLEdBQUFvQixDQUFBLEVBQUFmLENBQUEsY0FBQUgsQ0FBQSxJQUFBSixDQUFBLGFBQUFtQixDQUFBLFFBQUFILENBQUEsT0FBQWQsQ0FBQSxxQkFBQUUsQ0FBQSxFQUFBVyxDQUFBLEVBQUFPLENBQUEsUUFBQVIsQ0FBQSxZQUFBUyxTQUFBLHVDQUFBUCxDQUFBLFVBQUFELENBQUEsSUFBQUssQ0FBQSxDQUFBTCxDQUFBLEVBQUFPLENBQUEsR0FBQWYsQ0FBQSxHQUFBUSxDQUFBLEVBQUFMLENBQUEsR0FBQVksQ0FBQSxHQUFBdkIsQ0FBQSxHQUFBUSxDQUFBLE9BQUFoQyxDQUFBLEdBQUFtQyxDQUFBLE1BQUFNLENBQUEsS0FBQVYsQ0FBQSxLQUFBQyxDQUFBLEdBQUFBLENBQUEsUUFBQUEsQ0FBQSxTQUFBVSxDQUFBLENBQUFmLENBQUEsUUFBQWtCLENBQUEsQ0FBQWIsQ0FBQSxFQUFBRyxDQUFBLEtBQUFPLENBQUEsQ0FBQWYsQ0FBQSxHQUFBUSxDQUFBLEdBQUFPLENBQUEsQ0FBQUMsQ0FBQSxHQUFBUixDQUFBLGFBQUFJLENBQUEsTUFBQVIsQ0FBQSxRQUFBQyxDQUFBLEtBQUFILENBQUEsWUFBQUwsQ0FBQSxHQUFBTyxDQUFBLENBQUFGLENBQUEsV0FBQUwsQ0FBQSxHQUFBQSxDQUFBLENBQUF5QixJQUFBLENBQUFsQixDQUFBLEVBQUFJLENBQUEsVUFBQWEsU0FBQSwyQ0FBQXhCLENBQUEsQ0FBQTBCLElBQUEsU0FBQTFCLENBQUEsRUFBQVcsQ0FBQSxHQUFBWCxDQUFBLENBQUFoRyxLQUFBLEVBQUF3RyxDQUFBLFNBQUFBLENBQUEsb0JBQUFBLENBQUEsS0FBQVIsQ0FBQSxHQUFBTyxDQUFBLGVBQUFQLENBQUEsQ0FBQXlCLElBQUEsQ0FBQWxCLENBQUEsR0FBQUMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFhLFNBQUEsdUNBQUFuQixDQUFBLGdCQUFBRyxDQUFBLE9BQUFELENBQUEsR0FBQS9CLENBQUEsY0FBQXdCLENBQUEsSUFBQWlCLENBQUEsR0FBQUMsQ0FBQSxDQUFBZixDQUFBLFFBQUFRLENBQUEsR0FBQVYsQ0FBQSxDQUFBd0IsSUFBQSxDQUFBdEIsQ0FBQSxFQUFBZSxDQUFBLE9BQUFFLENBQUEsa0JBQUFwQixDQUFBLElBQUFPLENBQUEsR0FBQS9CLENBQUEsRUFBQWdDLENBQUEsTUFBQUcsQ0FBQSxHQUFBWCxDQUFBLGNBQUFlLENBQUEsbUJBQUEvRyxLQUFBLEVBQUFnRyxDQUFBLEVBQUEwQixJQUFBLEVBQUFULENBQUEsU0FBQWhCLENBQUEsRUFBQUksQ0FBQSxFQUFBRSxDQUFBLFFBQUFJLENBQUEsUUFBQVMsQ0FBQSxnQkFBQVYsVUFBQSxjQUFBaUIsa0JBQUEsY0FBQUMsMkJBQUEsS0FBQTVCLENBQUEsR0FBQVksTUFBQSxDQUFBaUIsY0FBQSxNQUFBckIsQ0FBQSxNQUFBTCxDQUFBLElBQUFILENBQUEsQ0FBQUEsQ0FBQSxJQUFBRyxDQUFBLFNBQUFXLG1CQUFBLENBQUFkLENBQUEsT0FBQUcsQ0FBQSxpQ0FBQUgsQ0FBQSxHQUFBVyxDQUFBLEdBQUFpQiwwQkFBQSxDQUFBbkIsU0FBQSxHQUFBQyxTQUFBLENBQUFELFNBQUEsR0FBQUcsTUFBQSxDQUFBQyxNQUFBLENBQUFMLENBQUEsWUFBQU8sRUFBQXZDLENBQUEsV0FBQW9DLE1BQUEsQ0FBQWtCLGNBQUEsR0FBQWxCLE1BQUEsQ0FBQWtCLGNBQUEsQ0FBQXRELENBQUEsRUFBQW9ELDBCQUFBLEtBQUFwRCxDQUFBLENBQUF1RCxTQUFBLEdBQUFILDBCQUFBLEVBQUFkLG1CQUFBLENBQUF0QyxDQUFBLEVBQUE2QixDQUFBLHlCQUFBN0IsQ0FBQSxDQUFBaUMsU0FBQSxHQUFBRyxNQUFBLENBQUFDLE1BQUEsQ0FBQUYsQ0FBQSxHQUFBbkMsQ0FBQSxXQUFBbUQsaUJBQUEsQ0FBQWxCLFNBQUEsR0FBQW1CLDBCQUFBLEVBQUFkLG1CQUFBLENBQUFILENBQUEsaUJBQUFpQiwwQkFBQSxHQUFBZCxtQkFBQSxDQUFBYywwQkFBQSxpQkFBQUQsaUJBQUEsR0FBQUEsaUJBQUEsQ0FBQUssV0FBQSx3QkFBQWxCLG1CQUFBLENBQUFjLDBCQUFBLEVBQUF2QixDQUFBLHdCQUFBUyxtQkFBQSxDQUFBSCxDQUFBLEdBQUFHLG1CQUFBLENBQUFILENBQUEsRUFBQU4sQ0FBQSxnQkFBQVMsbUJBQUEsQ0FBQUgsQ0FBQSxFQUFBUixDQUFBLGlDQUFBVyxtQkFBQSxDQUFBSCxDQUFBLDhEQUFBc0IsWUFBQSxZQUFBQSxhQUFBLGFBQUFDLENBQUEsRUFBQTNCLENBQUEsRUFBQTRCLENBQUEsRUFBQXBCLENBQUE7QUFBQSxTQUFBRCxvQkFBQXRDLENBQUEsRUFBQXlCLENBQUEsRUFBQUUsQ0FBQSxFQUFBSCxDQUFBLFFBQUFPLENBQUEsR0FBQUssTUFBQSxDQUFBd0IsY0FBQSxRQUFBN0IsQ0FBQSx1QkFBQS9CLENBQUEsSUFBQStCLENBQUEsUUFBQU8sbUJBQUEsWUFBQXVCLG1CQUFBN0QsQ0FBQSxFQUFBeUIsQ0FBQSxFQUFBRSxDQUFBLEVBQUFILENBQUEsYUFBQUssRUFBQUosQ0FBQSxFQUFBRSxDQUFBLElBQUFXLG1CQUFBLENBQUF0QyxDQUFBLEVBQUF5QixDQUFBLFlBQUF6QixDQUFBLGdCQUFBOEQsT0FBQSxDQUFBckMsQ0FBQSxFQUFBRSxDQUFBLEVBQUEzQixDQUFBLFNBQUF5QixDQUFBLEdBQUFNLENBQUEsR0FBQUEsQ0FBQSxDQUFBL0IsQ0FBQSxFQUFBeUIsQ0FBQSxJQUFBakcsS0FBQSxFQUFBbUcsQ0FBQSxFQUFBb0MsVUFBQSxHQUFBdkMsQ0FBQSxFQUFBd0MsWUFBQSxHQUFBeEMsQ0FBQSxFQUFBeUMsUUFBQSxHQUFBekMsQ0FBQSxNQUFBeEIsQ0FBQSxDQUFBeUIsQ0FBQSxJQUFBRSxDQUFBLElBQUFFLENBQUEsYUFBQUEsQ0FBQSxjQUFBQSxDQUFBLG1CQUFBUyxtQkFBQSxDQUFBdEMsQ0FBQSxFQUFBeUIsQ0FBQSxFQUFBRSxDQUFBLEVBQUFILENBQUE7QUFBQSxTQUFBMk0sZ0JBQUFuTyxDQUFBLEVBQUF5QixDQUFBLEVBQUFELENBQUEsWUFBQUMsQ0FBQSxHQUFBMk0sY0FBQSxDQUFBM00sQ0FBQSxNQUFBekIsQ0FBQSxHQUFBb0MsTUFBQSxDQUFBd0IsY0FBQSxDQUFBNUQsQ0FBQSxFQUFBeUIsQ0FBQSxJQUFBakcsS0FBQSxFQUFBZ0csQ0FBQSxFQUFBdUMsVUFBQSxNQUFBQyxZQUFBLE1BQUFDLFFBQUEsVUFBQWpFLENBQUEsQ0FBQXlCLENBQUEsSUFBQUQsQ0FBQSxFQUFBeEIsQ0FBQTtBQUFBLFNBQUFvTyxlQUFBNU0sQ0FBQSxRQUFBTyxDQUFBLEdBQUFzTSxZQUFBLENBQUE3TSxDQUFBLGdDQUFBOE0sT0FBQSxDQUFBdk0sQ0FBQSxJQUFBQSxDQUFBLEdBQUFBLENBQUE7QUFBQSxTQUFBc00sYUFBQTdNLENBQUEsRUFBQUMsQ0FBQSxvQkFBQTZNLE9BQUEsQ0FBQTlNLENBQUEsTUFBQUEsQ0FBQSxTQUFBQSxDQUFBLE1BQUF4QixDQUFBLEdBQUF3QixDQUFBLENBQUFFLE1BQUEsQ0FBQTZNLFdBQUEsa0JBQUF2TyxDQUFBLFFBQUErQixDQUFBLEdBQUEvQixDQUFBLENBQUFpRCxJQUFBLENBQUF6QixDQUFBLEVBQUFDLENBQUEsZ0NBQUE2TSxPQUFBLENBQUF2TSxDQUFBLFVBQUFBLENBQUEsWUFBQWlCLFNBQUEseUVBQUF2QixDQUFBLEdBQUErTSxNQUFBLEdBQUFyVixNQUFBLEVBQUFxSSxDQUFBO0FBQUEsU0FBQTBDLG1CQUFBdkMsQ0FBQSxFQUFBSCxDQUFBLEVBQUF4QixDQUFBLEVBQUF5QixDQUFBLEVBQUFJLENBQUEsRUFBQWUsQ0FBQSxFQUFBWixDQUFBLGNBQUFELENBQUEsR0FBQUosQ0FBQSxDQUFBaUIsQ0FBQSxFQUFBWixDQUFBLEdBQUFHLENBQUEsR0FBQUosQ0FBQSxDQUFBdkcsS0FBQSxXQUFBbUcsQ0FBQSxnQkFBQTNCLENBQUEsQ0FBQTJCLENBQUEsS0FBQUksQ0FBQSxDQUFBbUIsSUFBQSxHQUFBMUIsQ0FBQSxDQUFBVyxDQUFBLElBQUFnQyxPQUFBLENBQUFDLE9BQUEsQ0FBQWpDLENBQUEsRUFBQWxFLElBQUEsQ0FBQXdELENBQUEsRUFBQUksQ0FBQTtBQUFBLFNBQUF3QyxrQkFBQTFDLENBQUEsNkJBQUFILENBQUEsU0FBQXhCLENBQUEsR0FBQXNFLFNBQUEsYUFBQUgsT0FBQSxXQUFBMUMsQ0FBQSxFQUFBSSxDQUFBLFFBQUFlLENBQUEsR0FBQWpCLENBQUEsQ0FBQTRDLEtBQUEsQ0FBQS9DLENBQUEsRUFBQXhCLENBQUEsWUFBQXdFLE1BQUE3QyxDQUFBLElBQUF1QyxrQkFBQSxDQUFBdEIsQ0FBQSxFQUFBbkIsQ0FBQSxFQUFBSSxDQUFBLEVBQUEyQyxLQUFBLEVBQUFDLE1BQUEsVUFBQTlDLENBQUEsY0FBQThDLE9BQUE5QyxDQUFBLElBQUF1QyxrQkFBQSxDQUFBdEIsQ0FBQSxFQUFBbkIsQ0FBQSxFQUFBSSxDQUFBLEVBQUEyQyxLQUFBLEVBQUFDLE1BQUEsV0FBQTlDLENBQUEsS0FBQTZDLEtBQUE7QUFBQSxTQUFBak0sZUFBQWtKLENBQUEsRUFBQXpCLENBQUEsV0FBQTRGLGVBQUEsQ0FBQW5FLENBQUEsS0FBQW9FLHFCQUFBLENBQUFwRSxDQUFBLEVBQUF6QixDQUFBLEtBQUE4RiwyQkFBQSxDQUFBckUsQ0FBQSxFQUFBekIsQ0FBQSxLQUFBK0YsZ0JBQUE7QUFBQSxTQUFBQSxpQkFBQSxjQUFBL0MsU0FBQTtBQUFBLFNBQUE4Qyw0QkFBQXJFLENBQUEsRUFBQW1CLENBQUEsUUFBQW5CLENBQUEsMkJBQUFBLENBQUEsU0FBQXVFLGlCQUFBLENBQUF2RSxDQUFBLEVBQUFtQixDQUFBLE9BQUFwQixDQUFBLE1BQUF5RSxRQUFBLENBQUFoRCxJQUFBLENBQUF4QixDQUFBLEVBQUF5RSxLQUFBLDZCQUFBMUUsQ0FBQSxJQUFBQyxDQUFBLENBQUEwRSxXQUFBLEtBQUEzRSxDQUFBLEdBQUFDLENBQUEsQ0FBQTBFLFdBQUEsQ0FBQTdNLElBQUEsYUFBQWtJLENBQUEsY0FBQUEsQ0FBQSxHQUFBdEcsS0FBQSxDQUFBa0wsSUFBQSxDQUFBM0UsQ0FBQSxvQkFBQUQsQ0FBQSwrQ0FBQTZFLElBQUEsQ0FBQTdFLENBQUEsSUFBQXdFLGlCQUFBLENBQUF2RSxDQUFBLEVBQUFtQixDQUFBO0FBQUEsU0FBQW9ELGtCQUFBdkUsQ0FBQSxFQUFBbUIsQ0FBQSxhQUFBQSxDQUFBLElBQUFBLENBQUEsR0FBQW5CLENBQUEsQ0FBQTVCLE1BQUEsTUFBQStDLENBQUEsR0FBQW5CLENBQUEsQ0FBQTVCLE1BQUEsWUFBQUcsQ0FBQSxNQUFBMkIsQ0FBQSxHQUFBekcsS0FBQSxDQUFBMEgsQ0FBQSxHQUFBNUMsQ0FBQSxHQUFBNEMsQ0FBQSxFQUFBNUMsQ0FBQSxJQUFBMkIsQ0FBQSxDQUFBM0IsQ0FBQSxJQUFBeUIsQ0FBQSxDQUFBekIsQ0FBQSxVQUFBMkIsQ0FBQTtBQUFBLFNBQUFrRSxzQkFBQXBFLENBQUEsRUFBQXNCLENBQUEsUUFBQXZCLENBQUEsV0FBQUMsQ0FBQSxnQ0FBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFDLE1BQUEsQ0FBQUUsUUFBQSxLQUFBSCxDQUFBLDRCQUFBRCxDQUFBLFFBQUF4QixDQUFBLEVBQUEyQixDQUFBLEVBQUFJLENBQUEsRUFBQUksQ0FBQSxFQUFBUyxDQUFBLE9BQUFMLENBQUEsT0FBQVYsQ0FBQSxpQkFBQUUsQ0FBQSxJQUFBUCxDQUFBLEdBQUFBLENBQUEsQ0FBQXlCLElBQUEsQ0FBQXhCLENBQUEsR0FBQTZFLElBQUEsUUFBQXZELENBQUEsUUFBQVgsTUFBQSxDQUFBWixDQUFBLE1BQUFBLENBQUEsVUFBQWUsQ0FBQSx1QkFBQUEsQ0FBQSxJQUFBdkMsQ0FBQSxHQUFBK0IsQ0FBQSxDQUFBa0IsSUFBQSxDQUFBekIsQ0FBQSxHQUFBMEIsSUFBQSxNQUFBTixDQUFBLENBQUEyRCxJQUFBLENBQUF2RyxDQUFBLENBQUF4RSxLQUFBLEdBQUFvSCxDQUFBLENBQUEvQyxNQUFBLEtBQUFrRCxDQUFBLEdBQUFSLENBQUEsaUJBQUFkLENBQUEsSUFBQUksQ0FBQSxPQUFBRixDQUFBLEdBQUFGLENBQUEseUJBQUFjLENBQUEsWUFBQWYsQ0FBQSxlQUFBVyxDQUFBLEdBQUFYLENBQUEsY0FBQVksTUFBQSxDQUFBRCxDQUFBLE1BQUFBLENBQUEsMkJBQUFOLENBQUEsUUFBQUYsQ0FBQSxhQUFBaUIsQ0FBQTtBQUFBLFNBQUFnRCxnQkFBQW5FLENBQUEsUUFBQXZHLEtBQUEsQ0FBQUMsT0FBQSxDQUFBc0csQ0FBQSxVQUFBQSxDQUFBO0FBRG1EO0FBR0k7QUFFdUQ7QUFDL0Q7QUFDb0I7QUFDRjtBQUN2QjtBQUUxQyxJQUFNcU4sZUFBeUIsR0FBRyxTQUE1QkEsZUFBeUJBLENBQUEsRUFBUztFQUN0QyxJQUFNblgsUUFBUSxHQUFHUix5REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw4REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQUssWUFBQSxHQUEwRFQseURBQVcsQ0FDbkUsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUNpWCxJQUFJO0lBQUEsQ0FDbEMsQ0FBQztJQUZPQSxJQUFJLEdBQUFsWCxZQUFBLENBQUprWCxJQUFJO0lBQUU5VyxvQkFBb0IsR0FBQUosWUFBQSxDQUFwQkksb0JBQW9CO0lBQUUrVyxpQkFBaUIsR0FBQW5YLFlBQUEsQ0FBakJtWCxpQkFBaUI7RUFHckQsSUFBQTdXLGFBQUEsR0FBZUMsb0RBQUEsQ0FBS0MsT0FBTyxDQUFDLENBQUM7SUFBQUMsY0FBQSxHQUFBQyxjQUFBLENBQUFKLGFBQUE7SUFBdEJLLElBQUksR0FBQUYsY0FBQTtFQUVYLElBQU1HLFlBQVksR0FBRyxJQUFJQyxlQUFlLENBQUNDLFFBQVEsQ0FBQ0MsTUFBTSxDQUFDO0VBQ3pELElBQU1DLEVBQUUsR0FBR0osWUFBWSxDQUFDSyxHQUFHLENBQUMsSUFBSSxDQUFDO0VBQ2pDLElBQUFDLFNBQUEsR0FBZ0M3QiwrQ0FBUSxDQUFDLEVBQUUsQ0FBQztJQUFBOEIsVUFBQSxHQUFBVCxjQUFBLENBQUFRLFNBQUE7SUFBckNrVyxRQUFRLEdBQUFqVyxVQUFBO0lBQUVrVyxXQUFXLEdBQUFsVyxVQUFBO0VBQzVCLElBQUEwRCxVQUFBLEdBQTRDeEYsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXlGLFVBQUEsR0FBQXBFLGNBQUEsQ0FBQW1FLFVBQUE7SUFBcER5UyxjQUFjLEdBQUF4UyxVQUFBO0lBQUV5UyxpQkFBaUIsR0FBQXpTLFVBQUE7RUFDeEMsSUFBQW1LLFVBQUEsR0FBd0M1UCwrQ0FBUSxDQUFDLEVBQUUsQ0FBQztJQUFBNlAsVUFBQSxHQUFBeE8sY0FBQSxDQUFBdU8sVUFBQTtJQUE3Q3VJLFlBQVksR0FBQXRJLFVBQUE7SUFBRXVJLGVBQWUsR0FBQXZJLFVBQUE7RUFDcEMsSUFBQUUsVUFBQSxHQUE0Qy9QLCtDQUFRLENBQU0sSUFBSSxDQUFDO0lBQUFnUSxVQUFBLEdBQUEzTyxjQUFBLENBQUEwTyxVQUFBO0lBQXhEc0ksY0FBYyxHQUFBckksVUFBQTtJQUFFc0ksaUJBQWlCLEdBQUF0SSxVQUFBO0VBQ3hDLElBQUFHLFVBQUEsR0FBa0NuUSwrQ0FBUSxDQUFlLEVBQUUsQ0FBQztJQUFBb1EsVUFBQSxHQUFBL08sY0FBQSxDQUFBOE8sVUFBQTtJQUFyRG9JLFNBQVMsR0FBQW5JLFVBQUE7SUFBRW9JLFlBQVksR0FBQXBJLFVBQUE7RUFDOUIsSUFBQXFJLGFBQUEsR0FBaUJ2WSx5REFBVyxDQUFDLFVBQUNVLEtBQWdCO01BQUEsT0FBS0EsS0FBSztJQUFBLEVBQUM7SUFBakQrUCxJQUFJLEdBQUE4SCxhQUFBLENBQUo5SCxJQUFJLENBQThDLENBQUM7RUFDM0QsSUFBUStILFdBQVcsR0FBSy9ILElBQUksQ0FBcEIrSCxXQUFXO0VBQ25CLElBQU1DLE9BQU8sR0FBRyxDQUFBRCxXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRUUsSUFBSSxNQUFLLGFBQWEsQ0FBQyxDQUFDOztFQUVyRCxJQUFBckksVUFBQSxHQUE4QnZRLCtDQUFRLENBQUMsS0FBSyxDQUFDO0lBQUF3USxXQUFBLEdBQUFuUCxjQUFBLENBQUFrUCxVQUFBO0lBQXRDeE8sT0FBTyxHQUFBeU8sV0FBQTtJQUFFeE8sVUFBVSxHQUFBd08sV0FBQTs7RUFFMUI7RUFDQXpRLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUk0QixFQUFFLEVBQUU7TUFDTmxCLFFBQVEsQ0FBQytXLDhFQUFnQixDQUFDdlYsTUFBTSxDQUFDTixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUMsTUFBTTtNQUNMTCxJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtFQUNGLENBQUMsRUFBRSxDQUFDekIsUUFBUSxFQUFFa0IsRUFBRSxFQUFFTCxJQUFJLENBQUMsQ0FBQzs7RUFFeEI7RUFDQXZCLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUk0QixFQUFFLElBQUlrVyxJQUFJLEVBQUU7TUFDZHZXLElBQUksQ0FBQ2EsY0FBYyxDQUFDO1FBQ2xCMFcsVUFBVSxFQUFFaEIsSUFBSSxDQUFDZ0IsVUFBVSxJQUFJLEVBQUU7UUFDakNDLFNBQVMsRUFBRWpCLElBQUksQ0FBQ2lCLFNBQVMsSUFBSSxFQUFFO1FBQy9CQyxRQUFRLEVBQUVsQixJQUFJLENBQUNrQixRQUFRLElBQUksRUFBRTtRQUM3QkMsS0FBSyxFQUFFbkIsSUFBSSxDQUFDbUIsS0FBSyxJQUFJLEVBQUU7UUFDdkJDLEtBQUssRUFBRXBCLElBQUksQ0FBQ29CLEtBQUssSUFBSSxFQUFFO1FBQ3ZCTCxJQUFJLEVBQUVmLElBQUksQ0FBQ2UsSUFBSSxJQUFJLEVBQUU7UUFDckJNLFdBQVcsRUFBRXJCLElBQUksQ0FBQ3FCLFdBQVcsSUFBSSxFQUFFO1FBQ25DQyxTQUFTLEVBQUV0QixJQUFJLENBQUNzQixTQUFTLElBQUksRUFBRTtRQUMvQkMsU0FBUyxFQUFFdkIsSUFBSSxDQUFDdUIsU0FBUyxJQUFJLEVBQUU7UUFDL0IvSyxNQUFNLEVBQUV3SixJQUFJLENBQUN4SixNQUFNLElBQUk7TUFDekIsQ0FBQyxDQUFDO01BRUYySixXQUFXLENBQUNILElBQUksQ0FBQ3NCLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFDbkM7RUFDRixDQUFDLEVBQUUsQ0FBQ3RCLElBQUksRUFBRXZXLElBQUksRUFBRUssRUFBRSxDQUFDLENBQUM7O0VBRXBCO0VBQ0E1QixnREFBUyxDQUFDLFlBQU07SUFDZCxJQUFJLENBQUMrWCxpQkFBaUIsSUFBSS9WLE9BQU8sRUFBRTtNQUNqQyxJQUFJaEIsb0JBQW9CLEVBQUU7UUFDeEJ3Qix1REFBQSxDQUFRQyxLQUFLLENBQUN6QixvQkFBb0IsQ0FBQztNQUNyQyxDQUFDLE1BQU07UUFDTHdCLHVEQUFBLENBQVFFLE9BQU8sQ0FBQ2QsRUFBRSxHQUFHLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ3ZFakIsUUFBUSxDQUFDLFFBQVEsQ0FBQztNQUNwQjtJQUNGO0VBQ0YsQ0FBQyxFQUFFLENBQUNvWCxpQkFBaUIsRUFBRS9XLG9CQUFvQixFQUFFWSxFQUFFLEVBQUVJLE9BQU8sRUFBRXJCLFFBQVEsQ0FBQyxDQUFDOztFQUdwRTtFQUNBLElBQU0yWSxnQkFBZ0I7SUFBQSxJQUFBMUwsSUFBQSxHQUFBUixpQkFBQSxjQUFBWixZQUFBLEdBQUFFLENBQUEsQ0FBRyxTQUFBbUIsUUFDdkIwTCxJQUFVLEVBQ1ZDLFNBQWlCLEVBQ2pCalksSUFBUztNQUFBLElBQUFrWSxRQUFBLEVBQUFDLFFBQUEsRUFBQXZJLEVBQUE7TUFBQSxPQUFBM0UsWUFBQSxHQUFBQyxDQUFBLFdBQUFzQixRQUFBO1FBQUEsa0JBQUFBLFFBQUEsQ0FBQXhDLENBQUEsR0FBQXdDLFFBQUEsQ0FBQXJELENBQUE7VUFBQTtZQUFBLElBRUprTyxPQUFPO2NBQUE3SyxRQUFBLENBQUFyRCxDQUFBO2NBQUE7WUFBQTtZQUFBLE9BQUFxRCxRQUFBLENBQUFwQyxDQUFBO1VBQUE7WUFBQSxJQUNQNE4sSUFBSTtjQUFBeEwsUUFBQSxDQUFBckQsQ0FBQTtjQUFBO1lBQUE7WUFDUGlQLE9BQU8sQ0FBQ2xYLEtBQUssSUFBQXNELE1BQUEsQ0FBSXlULFNBQVMscUNBQWtDLENBQUM7WUFBQyxPQUFBekwsUUFBQSxDQUFBcEMsQ0FBQTtVQUFBO1lBQUFvQyxRQUFBLENBQUF4QyxDQUFBO1lBS3hEa08sUUFBUSxHQUFHLElBQUlHLFFBQVEsQ0FBQyxDQUFDO1lBQy9CSCxRQUFRLENBQUNJLE1BQU0sQ0FBQyxNQUFNLEVBQUVOLElBQUksQ0FBQztZQUFDeEwsUUFBQSxDQUFBckQsQ0FBQTtZQUFBLE9BRVBpTix1RUFBVSxDQUFDOEIsUUFBUSxDQUFDO1VBQUE7WUFBckNDLFFBQVEsR0FBQTNMLFFBQUEsQ0FBQXJDLENBQUE7WUFFZCxJQUFJZ08sUUFBUSxhQUFSQSxRQUFRLGVBQVJBLFFBQVEsQ0FBRUksR0FBRyxFQUFFO2NBQ2pCdlksSUFBSSxDQUFDYSxjQUFjLENBQUE4VSxlQUFBLEtBQUlzQyxTQUFTLEVBQUdFLFFBQVEsQ0FBQ0ksR0FBRyxDQUFFLENBQUM7WUFDcEQ7WUFBQy9MLFFBQUEsQ0FBQXJELENBQUE7WUFBQTtVQUFBO1lBQUFxRCxRQUFBLENBQUF4QyxDQUFBO1lBQUE0RixFQUFBLEdBQUFwRCxRQUFBLENBQUFyQyxDQUFBO1lBRURpTyxPQUFPLENBQUNsWCxLQUFLLElBQUFzRCxNQUFBLENBQUl5VCxTQUFTLHFCQUFBckksRUFBdUIsQ0FBQztVQUFDO1lBQUEsT0FBQXBELFFBQUEsQ0FBQXBDLENBQUE7UUFBQTtNQUFBLEdBQUFrQyxPQUFBO0lBQUEsQ0FFdEQ7SUFBQSxnQkF2Qkt5TCxnQkFBZ0JBLENBQUFyTCxFQUFBLEVBQUFDLEdBQUEsRUFBQU8sR0FBQTtNQUFBLE9BQUFiLElBQUEsQ0FBQU4sS0FBQSxPQUFBRCxTQUFBO0lBQUE7RUFBQSxHQXVCckI7RUFDRCxJQUFNME0sdUJBQXVCO0lBQUEsSUFBQTNMLEtBQUEsR0FBQWhCLGlCQUFBLGNBQUFaLFlBQUEsR0FBQUUsQ0FBQSxDQUFHLFNBQUEyQixTQUFPMkwsU0FBZTtNQUFBLE9BQUF4TixZQUFBLEdBQUFDLENBQUEsV0FBQThCLFNBQUE7UUFBQSxrQkFBQUEsU0FBQSxDQUFBN0QsQ0FBQTtVQUFBO1lBQUEsSUFDL0NrTyxPQUFPO2NBQUFySyxTQUFBLENBQUE3RCxDQUFBO2NBQUE7WUFBQTtZQUFBLE9BQUE2RCxTQUFBLENBQUE1QyxDQUFBO1VBQUE7WUFBQTRDLFNBQUEsQ0FBQTdELENBQUE7WUFBQSxPQUNONE8sZ0JBQWdCLENBQUNVLFNBQVMsRUFBRSxXQUFXLEVBQUV6WSxJQUFJLENBQUM7VUFBQTtZQUFBLE9BQUFnTixTQUFBLENBQUE1QyxDQUFBO1FBQUE7TUFBQSxHQUFBMEMsUUFBQTtJQUFBLENBQ3JEO0lBQUEsZ0JBSEswTCx1QkFBdUJBLENBQUFyTCxHQUFBO01BQUEsT0FBQU4sS0FBQSxDQUFBZCxLQUFBLE9BQUFELFNBQUE7SUFBQTtFQUFBLEdBRzVCO0VBRUQsSUFBTTRNLG1CQUFtQjtJQUFBLElBQUFDLEtBQUEsR0FBQTlNLGlCQUFBLGNBQUFaLFlBQUEsR0FBQUUsQ0FBQSxDQUFHLFNBQUF5TixTQUMxQkMsUUFBc0IsRUFDdEJDLFdBQStELEVBQy9EYixTQUFpQjtNQUFBLElBQUFjLGVBQUEsRUFBQWIsUUFBQSxFQUFBQyxRQUFBLEVBQUFhLFlBQUEsRUFBQUMsYUFBQSxFQUFBQyxHQUFBO01BQUEsT0FBQWpPLFlBQUEsR0FBQUMsQ0FBQSxXQUFBaU8sU0FBQTtRQUFBLGtCQUFBQSxTQUFBLENBQUFuUCxDQUFBLEdBQUFtUCxTQUFBLENBQUFoUSxDQUFBO1VBQUE7WUFFakI7WUFDTTRQLGVBQWUsR0FBR0YsUUFBUSxDQUFDalcsR0FBRyxDQUFDLFVBQUNvVixJQUFJO2NBQUEsT0FBQWxRLGFBQUEsQ0FBQUEsYUFBQSxLQUNyQ2tRLElBQUk7Z0JBQ1BqTCxNQUFNLEVBQUUsV0FBVyxDQUFFO2NBQUE7WUFBQSxDQUNyQixDQUFDO1lBQ0grTCxXQUFXLENBQUNDLGVBQWUsQ0FBQztZQUFDSSxTQUFBLENBQUFuUCxDQUFBO1lBR3JCa08sUUFBUSxHQUFHLElBQUlHLFFBQVEsQ0FBQyxDQUFDO1lBQy9CVSxlQUFlLENBQUNLLE9BQU8sQ0FBQyxVQUFDcEIsSUFBSSxFQUFLO2NBQ2hDLElBQUlBLElBQUksQ0FBQ3FCLGFBQWEsRUFBRTtnQkFDdEJuQixRQUFRLENBQUNJLE1BQU0sQ0FBQyxNQUFNLEVBQUVOLElBQUksQ0FBQ3FCLGFBQWEsQ0FBQztjQUM3QztZQUNGLENBQUMsQ0FBQztZQUFDRixTQUFBLENBQUFoUSxDQUFBO1lBQUEsT0FFb0JpTix1RUFBVSxDQUFDOEIsUUFBUSxDQUFDO1VBQUE7WUFBckNDLFFBQVEsR0FBQWdCLFNBQUEsQ0FBQWhQLENBQUE7WUFDZCxJQUFJZ08sUUFBUSxDQUFDSSxHQUFHLEVBQUU7Y0FDaEJ2WSxJQUFJLENBQUNhLGNBQWMsQ0FBQThVLGVBQUEsS0FBSXNDLFNBQVMsRUFBR0UsUUFBUSxDQUFDSSxHQUFHLENBQUUsQ0FBQztjQUNsRDtjQUNNUyxZQUFZLEdBQUdELGVBQWUsQ0FBQ25XLEdBQUcsQ0FBQyxVQUFDb1YsSUFBSTtnQkFBQSxPQUFBbFEsYUFBQSxDQUFBQSxhQUFBLEtBQ3pDa1EsSUFBSTtrQkFDUGpMLE1BQU0sRUFBRTtnQkFBTTtjQUFBLENBQ2QsQ0FBQztjQUNIK0wsV0FBVyxDQUFDRSxZQUFZLENBQUM7WUFDM0I7WUFBQ0csU0FBQSxDQUFBaFEsQ0FBQTtZQUFBO1VBQUE7WUFBQWdRLFNBQUEsQ0FBQW5QLENBQUE7WUFBQWtQLEdBQUEsR0FBQUMsU0FBQSxDQUFBaFAsQ0FBQTtZQUVEaU8sT0FBTyxDQUFDbFgsS0FBSyxJQUFBc0QsTUFBQSxDQUFJeVQsU0FBUyxxQkFBQWlCLEdBQXVCLENBQUM7WUFDbEQ7WUFDTUQsYUFBYSxHQUFHRixlQUFlLENBQUNuVyxHQUFHLENBQUMsVUFBQ29WLElBQUk7Y0FBQSxPQUFBbFEsYUFBQSxDQUFBQSxhQUFBLEtBQzFDa1EsSUFBSTtnQkFDUGpMLE1BQU0sRUFBRTtjQUFPO1lBQUEsQ0FDZixDQUFDO1lBQ0grTCxXQUFXLENBQUNHLGFBQWEsQ0FBQztVQUFDO1lBQUEsT0FBQUUsU0FBQSxDQUFBL08sQ0FBQTtRQUFBO01BQUEsR0FBQXdPLFFBQUE7SUFBQSxDQUU5QjtJQUFBLGdCQXZDS0YsbUJBQW1CQSxDQUFBWSxHQUFBLEVBQUFDLEdBQUEsRUFBQUMsR0FBQTtNQUFBLE9BQUFiLEtBQUEsQ0FBQTVNLEtBQUEsT0FBQUQsU0FBQTtJQUFBO0VBQUEsR0F1Q3hCO0VBR0QsSUFBTTJOLDBCQUFtRDtJQUFBLElBQUFDLEtBQUEsR0FBQTdOLGlCQUFBLGNBQUFaLFlBQUEsR0FBQUUsQ0FBQSxDQUFHLFNBQUF3TyxTQUFBQyxLQUFBO01BQUEsSUFBQWYsUUFBQTtNQUFBLE9BQUE1TixZQUFBLEdBQUFDLENBQUEsV0FBQTJPLFNBQUE7UUFBQSxrQkFBQUEsU0FBQSxDQUFBMVEsQ0FBQTtVQUFBO1lBQVMwUCxRQUFRLEdBQUFlLEtBQUEsQ0FBUmYsUUFBUTtZQUFBZ0IsU0FBQSxDQUFBMVEsQ0FBQTtZQUFBLE9BQ3JFdVAsbUJBQW1CLENBQUNHLFFBQVEsRUFBRTNCLFlBQVksRUFBRSxXQUFXLENBQUM7VUFBQTtZQUFBLE9BQUEyQyxTQUFBLENBQUF6UCxDQUFBO1FBQUE7TUFBQSxHQUFBdVAsUUFBQTtJQUFBLENBQy9EO0lBQUEsZ0JBRktGLDBCQUFtREEsQ0FBQUssR0FBQTtNQUFBLE9BQUFKLEtBQUEsQ0FBQTNOLEtBQUEsT0FBQUQsU0FBQTtJQUFBO0VBQUEsR0FFeEQ7RUFFRCxJQUFNaU8sWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUkvQixJQUFTLEVBQUs7SUFDbEMsSUFBTWdDLE9BQU8sR0FBR2hDLElBQUksQ0FBQzdVLElBQUksQ0FBQzhXLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDOUMsSUFBSSxDQUFDRCxPQUFPLEVBQUU7TUFDWi9ZLHVEQUFBLENBQVFDLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQztJQUM3RDtJQUNBLE9BQU84WSxPQUFPO0VBQ2hCLENBQUM7O0VBRUQ7RUFDQSxJQUFNNVksUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUlDLE1BQVksRUFBSztJQUNqQyxJQUFJaEIsRUFBRSxFQUFFO01BQ05sQixRQUFRLENBQUNnWCw4RUFBZ0IsQ0FBQztRQUFFOVYsRUFBRSxFQUFFTSxNQUFNLENBQUNOLEVBQUUsQ0FBQztRQUFFaUIsSUFBSSxFQUFFRDtNQUFPLENBQUMsQ0FBQyxDQUFDO01BQzVEckIsSUFBSSxDQUFDWSxXQUFXLENBQUMsQ0FBQztJQUNwQixDQUFDLE1BQU07TUFDTHpCLFFBQVEsQ0FBQzhXLDhFQUFnQixDQUFDO1FBQUUzVSxJQUFJLEVBQUVEO01BQU8sQ0FBQyxDQUFDLENBQUM7TUFDNUNyQixJQUFJLENBQUNZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QjtJQUNBRixVQUFVLENBQUMsSUFBSSxDQUFDO0VBQ2xCLENBQUM7RUFHRCxJQUFNd1osYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFJM0IsR0FBVyxFQUFFNVQsS0FBYSxFQUFLO0lBQ3BEbVMsZUFBZSxDQUFDblMsS0FBSyxDQUFDO0lBQ3RCcVMsaUJBQWlCLGNBQUN4WSwwREFBQTtNQUFLa0QsS0FBSyxFQUFFO1FBQUU0RixLQUFLLEVBQUUsS0FBSztRQUFFMUYsTUFBTSxFQUFFO01BQU87SUFBRSxnQkFBQ3BELDBEQUFBO01BQUsyYixHQUFHLEVBQUU1QixHQUFJO01BQUM2QixHQUFHLEVBQUV6VixLQUFNO01BQUNqRCxLQUFLLEVBQUU7UUFBRTRGLEtBQUssRUFBRTtNQUFPO0lBQUUsQ0FBRSxDQUFNLENBQUMsQ0FBQztJQUM5SHNQLGlCQUFpQixDQUFDLElBQUksQ0FBQztFQUN6QixDQUFDO0VBRUQsSUFBTXlELFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUNoQjlCLEdBQVcsRUFDWCtCLE1BQW9ELEVBQ3BEcFksS0FBYSxFQUNiK1YsU0FBaUI7SUFBQSxvQkFFakJ6WiwwREFBQTtNQUFLa0QsS0FBSyxFQUFFO1FBQUU2WSxRQUFRLEVBQUUsVUFBVTtRQUFFelQsT0FBTyxFQUFFO01BQWU7SUFBRSxHQUMzRHlSLEdBQUcsZ0JBQ0YvWiwwREFBQSxDQUFBQSx1REFBQSxxQkFDRUEsMERBQUE7TUFBS2tELEtBQUssRUFBRTtRQUFFOFksTUFBTSxFQUFFO01BQVUsQ0FBRTtNQUFDalgsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7UUFBQSxPQUFRMlcsYUFBYSxDQUFDM0IsR0FBRyxFQUFFclcsS0FBSyxDQUFDO01BQUE7SUFBQyxnQkFDMUUxRCwwREFBQTtNQUNFMmIsR0FBRyxFQUFFNUIsR0FBSTtNQUNUNkIsR0FBRyxFQUFFbFksS0FBTTtNQUNYUixLQUFLLEVBQUU7UUFDTDRGLEtBQUssRUFBRSxNQUFNO1FBQ2JtVCxTQUFTLEVBQUUsT0FBTztRQUNsQkMsWUFBWSxFQUFFLEtBQUs7UUFDbkI1VCxPQUFPLEVBQUU7TUFDWDtJQUFFLENBQ0gsQ0FDRSxDQUFDLGVBQ050SSwwREFBQSxDQUFBMEUsdURBQUE7TUFDRTJCLElBQUksZUFBRXJHLDBEQUFBLENBQUNtRiwwREFBWSxNQUFFLENBQUU7TUFDdkIwQyxJQUFJLEVBQUMsT0FBTztNQUNaM0UsS0FBSyxFQUFFO1FBQUU2WSxRQUFRLEVBQUUsVUFBVTtRQUFFSSxNQUFNLEVBQUUsRUFBRTtRQUFFQyxLQUFLLEVBQUUsQ0FBQztRQUFFM1QsVUFBVSxFQUFFLFNBQVM7UUFBRTRULEtBQUssRUFBRTtNQUFPLENBQUU7TUFDNUZ0WCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtRQUFBLElBQUF1WCxxQkFBQTtRQUFBLFFBQUFBLHFCQUFBLEdBQVFDLFFBQVEsQ0FBQ0MsY0FBYyxXQUFBeFcsTUFBQSxDQUFXdEMsS0FBSyxDQUFFLENBQUMsY0FBQTRZLHFCQUFBLHVCQUExQ0EscUJBQUEsQ0FBNENHLEtBQUssQ0FBQyxDQUFDO01BQUE7SUFBQyxDQUNwRSxDQUFDLGVBQ0Z6YywwREFBQTtNQUNFNkIsRUFBRSxZQUFBbUUsTUFBQSxDQUFZdEMsS0FBSyxDQUFHO01BQ3RCaUIsSUFBSSxFQUFDLE1BQU07TUFDWHpCLEtBQUssRUFBRTtRQUFFb0YsT0FBTyxFQUFFO01BQU8sQ0FBRTtNQUMzQlMsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdDLENBQU0sRUFBSztRQUNwQixJQUFNd1EsSUFBSSxHQUFHeFEsQ0FBQyxDQUFDQyxNQUFNLENBQUN5VCxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUlsRCxJQUFJLEVBQUU7VUFDUjtVQUNBUSx1QkFBdUIsQ0FBQ1IsSUFBSSxDQUFDO1VBQzdCc0MsTUFBTSxDQUFDbk8sR0FBRyxDQUFDZ1AsZUFBZSxDQUFDbkQsSUFBSSxDQUFDLENBQUM7UUFDbkM7TUFDRjtJQUFFLENBQ0gsQ0FDRCxDQUFDLGdCQUVIeFosMERBQUEsQ0FBQUEsdURBQUEscUJBQ0VBLDBEQUFBLENBQUE0YyxzREFBQTtNQUNFQyxRQUFRLEVBQUMsU0FBUztNQUNsQnhDLFFBQVEsRUFBRTVCLFNBQVU7TUFDcEIxUCxRQUFRLEVBQUVrUywwQkFBMkI7TUFDckNNLFlBQVksRUFBRUEsWUFBYTtNQUMzQnVCLGNBQWMsRUFBRTtRQUFFQyxlQUFlLEVBQUUsSUFBSTtRQUFFQyxjQUFjLEVBQUU7TUFBSyxDQUFFO01BQ2hFQyxTQUFTLEVBQUM7SUFBc0IsZ0JBRWhDamQsMERBQUEsQ0FBQzZYLDBEQUFjLE1BQUUsQ0FDWCxDQUNSLENBRUQsQ0FBQztFQUFBLENBQ1A7RUFFRCxvQkFDRTdYLDBEQUFBLENBQUFBLHVEQUFBLHFCQUNFQSwwREFBQSxhQUFLNkIsRUFBRSxHQUFHLHNCQUFzQixHQUFHLDBCQUErQixDQUFDLGVBQ25FN0IsMERBQUEsQ0FBQW9CLG9EQUFBO0lBQU1JLElBQUksRUFBRUEsSUFBSztJQUFDeUIsTUFBTSxFQUFDLFVBQVU7SUFBQ0wsUUFBUSxFQUFFQSxRQUFTO0lBQUNNLEtBQUssRUFBRTtNQUFFQyxRQUFRLEVBQUUsTUFBTTtNQUFFQyxNQUFNLEVBQUU7SUFBUztFQUFFLGdCQUNwR3BELDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtFQUFFLGdCQUNwQnRELDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHhELDBEQUFBLENBQUFvQixvREFBQSxDQUFNcUMsSUFBSTtJQUFDQyxLQUFLLEVBQUMsZ0NBQU87SUFBQ3BCLElBQUksRUFBQztFQUFXLEdBQ3RDdVosWUFBWSxDQUFDNUQsUUFBUSxFQUFFQyxXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FDaEQsQ0FDUixDQUFDLGVBQ05sWSwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUcsZ0JBQ1p4RCwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7RUFBRSxnQkFDbkJ0RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUk7SUFBQ0MsS0FBSyxFQUFDLGtEQUFVO0lBQUNwQixJQUFJLEVBQUMsWUFBWTtJQUFDcUIsS0FBSyxFQUFFLENBQUM7TUFBRUMsUUFBUSxFQUFFO0lBQU0sQ0FBQztFQUFFLGdCQUN6RTVELDBEQUFBLENBQUE4RCxxREFBQSxNQUFRLENBQ0MsQ0FDUixDQUFDLGVBQ045RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUk7SUFBQ0MsS0FBSyxFQUFDLHdEQUFXO0lBQUNwQixJQUFJLEVBQUMsV0FBVztJQUFDcUIsS0FBSyxFQUFFLENBQUM7TUFBRUMsUUFBUSxFQUFFO0lBQU0sQ0FBQztFQUFFLGdCQUN6RTVELDBEQUFBLENBQUE4RCxxREFBQSxNQUFRLENBQ0MsQ0FDUixDQUFDLGVBQ045RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUk7SUFBQ0MsS0FBSyxFQUFDLG9IQUFxQjtJQUFDcEIsSUFBSSxFQUFDLFVBQVU7SUFBQ3FCLEtBQUssRUFBRSxDQUFDO01BQUVDLFFBQVEsRUFBRTtJQUFNLENBQUM7RUFBRSxnQkFDbEY1RCwwREFBQSxDQUFBOEQscURBQUEsTUFBUSxDQUNDLENBQ1IsQ0FDRixDQUFDLGVBQ045RCwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7RUFBRSxnQkFDbkJ0RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUk7SUFBQ0MsS0FBSyxFQUFDLHNDQUFRO0lBQUNwQixJQUFJLEVBQUMsT0FBTztJQUFDcUIsS0FBSyxFQUFFLENBQUM7TUFBRUMsUUFBUSxFQUFFO0lBQU0sQ0FBQztFQUFFLGdCQUNsRTVELDBEQUFBLENBQUE4RCxxREFBQSxNQUFRLENBQ0MsQ0FDUixDQUFDLGVBQ045RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUk7SUFBQ0MsS0FBSyxFQUFDLG9FQUFhO0lBQUNwQixJQUFJLEVBQUMsT0FBTztJQUFDcUIsS0FBSyxFQUFFLENBQUM7TUFBRUMsUUFBUSxFQUFFO0lBQU0sQ0FBQztFQUFFLGdCQUN2RTVELDBEQUFBLENBQUE4RCxxREFBQSxNQUFRLENBQ0MsQ0FDUixDQUFDLGVBQ045RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUk7SUFBQ0MsS0FBSyxFQUFDLHNDQUFRO0lBQUNwQixJQUFJLEVBQUMsTUFBTTtJQUFDcUIsS0FBSyxFQUFFLENBQUM7TUFBRUMsUUFBUSxFQUFFO0lBQU0sQ0FBQztFQUFFLGdCQUNqRTVELDBEQUFBLENBQUErRCxzREFBQSxxQkFDRS9ELDBEQUFBLENBQUNzRSxxREFBTTtJQUFDRSxLQUFLLEVBQUM7RUFBYSxHQUFDLGFBQW1CLENBQUMsZUFDaER4RSwwREFBQSxDQUFDc0UscURBQU07SUFBQ0UsS0FBSyxFQUFDO0VBQU8sR0FBQyxPQUFhLENBQUMsZUFDcEN4RSwwREFBQSxDQUFDc0UscURBQU07SUFBQ0UsS0FBSyxFQUFDO0VBQU0sR0FBQyxNQUFZLENBQUMsZUFDbEN4RSwwREFBQSxDQUFDc0UscURBQU07SUFBQ0UsS0FBSyxFQUFDO0VBQVUsR0FBQyxVQUFnQixDQUNuQyxDQUNDLENBQ1IsQ0FDRixDQUFDLGVBQ054RSwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7RUFBRSxnQkFDbkJ0RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUk7SUFBQ0MsS0FBSyxFQUFDLGlFQUFlO0lBQUNwQixJQUFJLEVBQUMsYUFBYTtJQUFDcUIsS0FBSyxFQUFFLENBQUM7TUFBRUMsUUFBUSxFQUFFO0lBQU0sQ0FBQztFQUFFLGdCQUMvRTVELDBEQUFBLENBQUE4RCxxREFBQSxNQUFRLENBQ0MsQ0FDUixDQUFDLGVBQ045RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsZ0JBQ1h4RCwwREFBQSxDQUFBb0Isb0RBQUEsQ0FBTXFDLElBQUk7SUFBQ0MsS0FBSyxFQUFDLHNDQUFRO0lBQUNwQixJQUFJLEVBQUMsV0FBVztJQUFDcUIsS0FBSyxFQUFFLENBQUM7TUFBRUMsUUFBUSxFQUFFO0lBQU0sQ0FBQztFQUFFLGdCQUN0RTVELDBEQUFBLENBQUErRCxzREFBQSxxQkFDRS9ELDBEQUFBLENBQUNzRSxxREFBTTtJQUFDRSxLQUFLLEVBQUM7RUFBVSxHQUFDLFVBQWdCLENBQUMsZUFDMUN4RSwwREFBQSxDQUFDc0UscURBQU07SUFBQ0UsS0FBSyxFQUFDO0VBQVUsR0FBQyxVQUFnQixDQUNuQyxDQUNDLENBQ1IsQ0FBQyxlQUNOeEUsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLGdCQUNYeEQsMERBQUEsQ0FBQW9CLG9EQUFBLENBQU1xQyxJQUFJO0lBQUNDLEtBQUssRUFBQyxrREFBVTtJQUFDcEIsSUFBSSxFQUFDLFFBQVE7SUFBQ3FCLEtBQUssRUFBRSxDQUFDO01BQUVDLFFBQVEsRUFBRTtJQUFNLENBQUM7RUFBRSxnQkFDckU1RCwwREFBQSxDQUFBK0Qsc0RBQUEscUJBQ0UvRCwwREFBQSxDQUFDc0UscURBQU07SUFBQ0UsS0FBSyxFQUFDO0VBQVEsR0FBQyxRQUFjLENBQUMsZUFDdEN4RSwwREFBQSxDQUFDc0UscURBQU07SUFBQ0UsS0FBSyxFQUFDO0VBQVMsR0FBQyxTQUFlLENBQ2pDLENBQ0MsQ0FDUixDQUNGLENBQUMsRUFDTCxDQUFDM0MsRUFBRSxpQkFDRjdCLDBEQUFBLENBQUFxRCxtREFBQTtJQUFLQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUFFLGdCQUNuQnRELDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxnQkFDWHhELDBEQUFBLENBQUFvQixvREFBQSxDQUFNcUMsSUFBSTtJQUFDQyxLQUFLLEVBQUMsMEVBQWM7SUFBQ3BCLElBQUksRUFBQyxVQUFVO0lBQUNxQixLQUFLLEVBQUUsQ0FBQztNQUFFQyxRQUFRLEVBQUU7SUFBTSxDQUFDO0VBQUUsZ0JBQzNFNUQsMERBQUEsQ0FBQThELHFEQUFBO0lBQU9hLElBQUksRUFBQztFQUFVLENBQUUsQ0FDZixDQUNSLENBQ0YsQ0FFSixDQUNGLENBQUMsZUFDTjNFLDBEQUFBLFdBQUssQ0FBQyxlQUNOQSwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBRTtJQUFDNFosT0FBTyxFQUFDO0VBQUssZ0JBQ2xDbGQsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLGdCQUNYeEQsMERBQUEsQ0FBQW9CLG9EQUFBLENBQU1xQyxJQUFJLHFCQUNSekQsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFDLElBQUksRUFBQyxTQUFTO0lBQUNDLEtBQUs7SUFBQ0MsUUFBUSxFQUFDLFFBQVE7SUFBQ0MsT0FBTyxFQUFFa1Q7RUFBa0IsR0FBQyxRQUVuRSxDQUNDLENBQ1IsQ0FBQyxlQUNOaFksMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLGdCQUNYeEQsMERBQUEsQ0FBQW9CLG9EQUFBLENBQU1xQyxJQUFJLHFCQUNSekQsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFHLFFBQVEsRUFBQyxRQUFRO0lBQUNFLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUW5FLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFBQTtFQUFDLEdBQUMsUUFFckQsQ0FDQyxDQUNSLENBQ0YsQ0FBQyxlQUVOWiwwREFBQSxDQUFBc1IscURBQUE7SUFBTzFILE9BQU8sRUFBRXVPLGNBQWU7SUFBQ2hTLEtBQUssRUFBRWtTLFlBQWE7SUFBQzhFLE1BQU0sRUFBRSxJQUFLO0lBQUMzTCxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBQTtNQUFBLE9BQVE0RyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7SUFBQTtFQUFDLEdBQ3pHRyxjQUNJLENBQ0gsQ0FDTixDQUFDO0FBRVAsQ0FBQztBQUVELGlFQUFlVCxlQUFlLEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDelZxQjtBQUVJO0FBRVI7QUFDdUI7QUFDUztBQUN5QjtBQUN6RTtBQUUvQixJQUFNd0YsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUEsRUFBUztFQUNyQixJQUFNM2MsUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQXVCLFNBQUEsR0FBd0M3QiwrQ0FBUSxDQUFNLEVBQUUsQ0FBQztJQUFBOEIsVUFBQSxHQUFBVCxjQUFBLENBQUFRLFNBQUE7SUFBbER5RCxZQUFZLEdBQUF4RCxVQUFBO0lBQUV5RCxlQUFlLEdBQUF6RCxVQUFBO0VBQ3BDLElBQUEwRCxVQUFBLEdBQW9DeEYsK0NBQVEsQ0FBQyxFQUFFLENBQUM7SUFBQXlGLFVBQUEsR0FBQXBFLGNBQUEsQ0FBQW1FLFVBQUE7SUFBekNFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQTlFLFlBQUEsR0FBZ0NULHdEQUFXLENBQUMsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUNpWCxJQUFJO0lBQUEsRUFBQztJQUFyRWpILEtBQUssR0FBQWpRLFlBQUEsQ0FBTGlRLEtBQUs7SUFBRXlNLFlBQVksR0FBQTFjLFlBQUEsQ0FBWjBjLFlBQVk7RUFFM0J0ZCxnREFBUyxDQUFDLFlBQU07SUFDZFUsUUFBUSxDQUFDMGMsd0VBQVUsQ0FBQyxDQUFDLENBQUM7RUFDeEIsQ0FBQyxFQUFFLENBQUMxYyxRQUFRLENBQUMsQ0FBQztFQUVkLElBQU1vRixVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBSWxFLEVBQU8sRUFBSztJQUM5QmxCLFFBQVEsQ0FBQytXLDhFQUFnQixDQUFDN1YsRUFBRSxDQUFDLENBQUM7SUFDOUJqQixRQUFRLG1CQUFBb0YsTUFBQSxDQUFtQm5FLEVBQUUsQ0FBRSxDQUFDO0VBQ2xDLENBQUM7RUFFRCxJQUFNb0UsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUlwRSxFQUFPLEVBQUs7SUFDaEN5RCx3REFBUyxDQUFDO01BQ1JhLEtBQUssRUFBRSxlQUFlO01BQ3RCQyxJQUFJLEVBQUUsb0NBQW9DO01BQzFDQyxJQUFJLEVBQUUsU0FBUztNQUNmQyxpQkFBaUIsRUFBRSxLQUFLO01BQ3hCQyxnQkFBZ0IsRUFBRSxLQUFLO01BQ3ZCQyxJQUFJLDJYQUtIO01BQ0RDLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQVE7UUFBQSxJQUFBQyxjQUFBLEVBQUFDLGVBQUE7UUFDYixJQUFNQyxhQUFhLElBQUFGLGNBQUEsR0FBR3BCLDREQUFhLENBQUMsQ0FBQyxjQUFBb0IsY0FBQSx1QkFBZkEsY0FBQSxDQUFpQkksYUFBYSxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZFLElBQU1DLFlBQVksSUFBQUosZUFBQSxHQUFHckIsNERBQWEsQ0FBQyxDQUFDLGNBQUFxQixlQUFBLHVCQUFmQSxlQUFBLENBQWlCRyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7UUFFckVGLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUVJLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFNO1VBQzdDckcsUUFBUSxDQUFDeWMsOEVBQWdCLENBQUN2YixFQUFFLENBQUMsQ0FBQyxDQUFDb0YsSUFBSSxDQUFDLFlBQU07WUFDeEMzQix3REFBUyxDQUFDLFVBQVUsRUFBRSw0QkFBNEIsRUFBRSxTQUFTLENBQUM7WUFDOUQzRSxRQUFRLENBQUMwYyx3RUFBVSxDQUFDLENBQUMsQ0FBQztVQUN4QixDQUFDLENBQUM7VUFDRi9YLHlEQUFVLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQztRQUVGeUIsWUFBWSxhQUFaQSxZQUFZLGVBQVpBLFlBQVksQ0FBRUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDNUMxQix5REFBVSxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUM7TUFDSjtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxJQUFNNkIsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztJQUN6QjtJQUNBdEIsYUFBYSxDQUFDRCxVQUFVLENBQUN3QixJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ2xDLENBQUM7RUFFRCxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQSxFQUFTO0lBQ3hCO0lBQ0F4QixhQUFhLENBQUMsRUFBRSxDQUFDO0VBQ25CLENBQUM7RUFFRCxJQUFNeUIsT0FBTyxHQUFHLENBQ2Q7SUFBRW5CLEtBQUssRUFBRSxRQUFRO0lBQUVvQixTQUFTLEVBQUUsT0FBTztJQUFFaEQsR0FBRyxFQUFFLE9BQU87SUFBRWlELFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3pFO0lBQUVyQixLQUFLLEVBQUUsVUFBVTtJQUFFb0IsU0FBUyxFQUFFLFlBQVk7SUFBRWhELEdBQUcsRUFBRSxZQUFZO0lBQUVpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUNyRjtJQUFFckIsS0FBSyxFQUFFLFdBQVc7SUFBRW9CLFNBQVMsRUFBRSxXQUFXO0lBQUVoRCxHQUFHLEVBQUUsV0FBVztJQUFFaUQsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDcEY7SUFBRXJCLEtBQUssRUFBRSxxQkFBcUI7SUFBRW9CLFNBQVMsRUFBRSxVQUFVO0lBQUVoRCxHQUFHLEVBQUUsVUFBVTtJQUFFaUQsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDNUY7SUFBRXJCLEtBQUssRUFBRSxRQUFRO0lBQUVvQixTQUFTLEVBQUUsT0FBTztJQUFFaEQsR0FBRyxFQUFFLE9BQU87SUFBRWlELFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3pFO0lBQUVyQixLQUFLLEVBQUUsYUFBYTtJQUFFb0IsU0FBUyxFQUFFLE9BQU87SUFBRWhELEdBQUcsRUFBRSxPQUFPO0lBQUVpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUM5RTtJQUFFckIsS0FBSyxFQUFFLFFBQVE7SUFBRW9CLFNBQVMsRUFBRSxNQUFNO0lBQUVoRCxHQUFHLEVBQUUsTUFBTTtJQUFFaUQsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDdkU7SUFBRXJCLEtBQUssRUFBRSxlQUFlO0lBQUVvQixTQUFTLEVBQUUsYUFBYTtJQUFFaEQsR0FBRyxFQUFFLGFBQWE7SUFBRWlELFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQzVGO0lBQUVyQixLQUFLLEVBQUUsT0FBTztJQUFFb0IsU0FBUyxFQUFFLFdBQVc7SUFBRWhELEdBQUcsRUFBRSxXQUFXO0lBQUVpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDNUVDLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFHckIsSUFBUztNQUFBLE9BQ2hCQSxJQUFJLGdCQUFHcEcsMERBQUEsQ0FBQXdkLHFEQUFBO1FBQU8xVSxLQUFLLEVBQUUsRUFBRztRQUFDNlMsR0FBRyxFQUFFdlYsSUFBSztRQUFDd1YsR0FBRyxFQUFDLE9BQU87UUFBQzFZLEtBQUssRUFBRTtVQUFFZ1osWUFBWSxFQUFFLENBQUM7VUFBRXVCLE1BQU0sRUFBRTtRQUFpQjtNQUFFLENBQUUsQ0FBQyxHQUFHLFVBQVU7SUFBQTtFQUN6SCxDQUFDLEVBQ0Q7SUFBRXRYLEtBQUssRUFBRSxRQUFRO0lBQUVvQixTQUFTLEVBQUUsV0FBVztJQUFFaEQsR0FBRyxFQUFFLFdBQVc7SUFBRWlELFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ2pGO0lBQUVyQixLQUFLLEVBQUUsVUFBVTtJQUFFb0IsU0FBUyxFQUFFLFFBQVE7SUFBRWhELEdBQUcsRUFBRSxRQUFRO0lBQUVpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUM3RTtJQUNFckIsS0FBSyxFQUFFLFFBQVE7SUFDZjVCLEdBQUcsRUFBRSxRQUFRO0lBQ2JpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7SUFDcENDLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFHQyxDQUFTLEVBQUVDLE1BQVc7TUFBQSxvQkFDN0IzSCwwREFBQSxDQUFBNEgscURBQUE7UUFBT0MsSUFBSSxFQUFDO01BQVEsZ0JBQ2xCN0gsMERBQUEsQ0FBQTBFLHVEQUFBO1FBQVEyQixJQUFJLGVBQUVyRywwREFBQSxDQUFDa0YsMERBQVksTUFBRSxDQUFFO1FBQUNQLElBQUksRUFBQyxTQUFTO1FBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUWdCLFVBQVUsQ0FBQzRCLE1BQU0sQ0FBQzlGLEVBQUUsQ0FBQztRQUFBO01BQUMsQ0FBRSxDQUFDLGVBQ3ZGN0IsMERBQUEsQ0FBQTBFLHVEQUFBO1FBQVEyQixJQUFJLGVBQUVyRywwREFBQSxDQUFDaUYseURBQWMsTUFBRSxDQUFFO1FBQUM2QyxNQUFNO1FBQUMvQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFrQixZQUFZLENBQUMwQixNQUFNLENBQUM5RixFQUFFLENBQUM7UUFBQTtNQUFDLENBQUUsQ0FDN0UsQ0FBQztJQUFBO0VBRVosQ0FBQyxDQUNGO0VBRUQsSUFBTWtHLFlBQVksR0FBRyxDQUFDK0ksS0FBSyxJQUFJLEVBQUUsRUFBRTlJLE1BQU0sQ0FBQyxVQUFDQyxFQUFFLEVBQUs7SUFBQSxJQUFBeVYsU0FBQSxFQUFBQyxZQUFBLEVBQUFDLFFBQUEsRUFBQUMsY0FBQSxFQUFBQyxhQUFBLEVBQUFDLFNBQUEsRUFBQUMsZUFBQSxFQUFBQyxhQUFBLEVBQUFDLFVBQUE7SUFDaEQsSUFBTXRjLE1BQU0sR0FBR2dFLFVBQVUsQ0FBQ3VDLFdBQVcsQ0FBQyxDQUFDO0lBRXZDLE9BQ0UsRUFBQXVWLFNBQUEsR0FBQXpWLEVBQUUsQ0FBQ2lSLEtBQUssY0FBQXdFLFNBQUEsdUJBQVJBLFNBQUEsQ0FBVXZWLFdBQVcsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQ3hHLE1BQU0sQ0FBQyxPQUFBK2IsWUFBQSxHQUN4QzFWLEVBQUUsQ0FBQ2dSLFFBQVEsY0FBQTBFLFlBQUEsdUJBQVhBLFlBQUEsQ0FBYXhWLFdBQVcsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQ3hHLE1BQU0sQ0FBQyxPQUFBZ2MsUUFBQSxHQUMzQzNWLEVBQUUsQ0FBQzZRLElBQUksY0FBQThFLFFBQUEsdUJBQVBBLFFBQUEsQ0FBU3pWLFdBQVcsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQ3hHLE1BQU0sQ0FBQyxPQUFBaWMsY0FBQSxHQUN2QzVWLEVBQUUsQ0FBQzhRLFVBQVUsY0FBQThFLGNBQUEsdUJBQWJBLGNBQUEsQ0FBZTFWLFdBQVcsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQ3hHLE1BQU0sQ0FBQyxPQUFBa2MsYUFBQSxHQUM3QzdWLEVBQUUsQ0FBQytRLFNBQVMsY0FBQThFLGFBQUEsdUJBQVpBLGFBQUEsQ0FBYzNWLFdBQVcsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQ3hHLE1BQU0sQ0FBQyxPQUFBbWMsU0FBQSxHQUM1QzlWLEVBQUUsQ0FBQ2tSLEtBQUssY0FBQTRFLFNBQUEsdUJBQVJBLFNBQUEsQ0FBVTVWLFdBQVcsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQ3hHLE1BQU0sQ0FBQyxPQUFBb2MsZUFBQSxHQUN4Qy9WLEVBQUUsQ0FBQ21SLFdBQVcsY0FBQTRFLGVBQUEsdUJBQWRBLGVBQUEsQ0FBZ0I3VixXQUFXLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUN4RyxNQUFNLENBQUMsT0FBQXFjLGFBQUEsR0FDOUNoVyxFQUFFLENBQUNxUixTQUFTLGNBQUEyRSxhQUFBLHVCQUFaQSxhQUFBLENBQWM5VixXQUFXLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUN4RyxNQUFNLENBQUMsT0FBQXNjLFVBQUEsR0FDNUNqVyxFQUFFLENBQUNzRyxNQUFNLGNBQUEyUCxVQUFBLHVCQUFUQSxVQUFBLENBQVcvVixXQUFXLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUN4RyxNQUFNLENBQUM7RUFFN0MsQ0FBQyxDQUFDO0VBRUYsb0JBQ0U1QiwwREFBQTtJQUFLa0QsS0FBSyxFQUFFO01BQUVtRixTQUFTLEVBQUU7SUFBTztFQUFFLGdCQUNoQ3JJLDBEQUFBLGFBQUksb0hBQXVCLENBQUMsZUFDNUJBLDBEQUFBO0lBQ0VrRCxLQUFLLEVBQUU7TUFDTG9GLE9BQU8sRUFBRSxNQUFNO01BQ2ZDLGNBQWMsRUFBRSxlQUFlO01BQy9CQyxPQUFPLEVBQUUsTUFBTTtNQUNmQyxVQUFVLEVBQUUsU0FBUztNQUNyQkMsWUFBWSxFQUFFLE1BQU07TUFDcEJDLFFBQVEsRUFBRTtJQUNaO0VBQUUsZ0JBRUYzSSwwREFBQSxDQUFBNEgscURBQUE7SUFBT2dCLElBQUk7RUFBQSxnQkFDVDVJLDBEQUFBLGVBQU0sNEJBQU0sRUFBQyxDQUFBK0gsWUFBWSxhQUFaQSxZQUFZLHVCQUFaQSxZQUFZLENBQUVjLE1BQU0sS0FBSSxDQUFRLENBQUMsZUFDOUM3SSwwREFBQSxDQUFBOEQscURBQUE7SUFDRUcsV0FBVyxFQUFDLCtDQUFZO0lBQ3hCZixLQUFLLEVBQUU7TUFBRTRGLEtBQUssRUFBRTtJQUFJLENBQUU7SUFDdEJ0RSxLQUFLLEVBQUVvQixVQUFXO0lBQ2xCbUQsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdDLENBQUM7TUFBQSxPQUFLbkQsYUFBYSxDQUFDbUQsQ0FBQyxDQUFDQyxNQUFNLENBQUN6RSxLQUFLLENBQUM7SUFBQTtFQUFDLENBQ2hELENBQUMsZUFDRnhFLDBEQUFBLENBQUEwRSx1REFBQTtJQUFRSyxPQUFPLEVBQUVvQyxZQUFhO0lBQUN4QyxJQUFJLEVBQUM7RUFBUyxHQUFDLHNDQUFjLENBQUMsZUFDN0QzRSwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUssT0FBTyxFQUFFc0M7RUFBWSxHQUFDLG9FQUFtQixDQUM1QyxDQUFDLGVBQ1JySCwwREFBQSxDQUFBNEgscURBQUE7SUFBT2dCLElBQUk7RUFBQSxnQkFDVDVJLDBEQUFBLENBQUEwRSx1REFBQTtJQUFRMkIsSUFBSSxlQUFFckcsMERBQUEsQ0FBQ21GLDBEQUFZLE1BQUUsQ0FBRTtJQUFDUixJQUFJLEVBQUMsU0FBUztJQUFDSSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVFuRSxRQUFRLGNBQWMsQ0FBQztJQUFBO0VBQUMsR0FBQyw4REFBa0IsQ0FDcEcsQ0FDSixDQUFDLGVBQ05aLDBEQUFBLENBQUFrSixxREFBQTtJQUNFQyxZQUFZLEVBQUU7TUFDWnhFLElBQUksRUFBRSxVQUFVO01BQ2hCb0UsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdyQixDQUFDLEVBQUVsQyxZQUFZO1FBQUEsT0FBS0MsZUFBZSxDQUFDRCxZQUFZLENBQUM7TUFBQTtJQUM5RCxDQUFFO0lBQ0Y4QixPQUFPLEVBQUVBLE9BQVE7SUFDakI4QixVQUFVLEVBQUVyQixZQUFZLENBQUMzRCxHQUFHLENBQUMsVUFBQzZELEVBQUUsRUFBRW9CLEtBQUs7TUFBQSxPQUFBQyxhQUFBO1FBQ3JDL0UsR0FBRyxFQUFFMEQsRUFBRSxDQUFDcEcsRUFBRTtRQUNWd0gsS0FBSyxFQUFFQSxLQUFLLEdBQUcsQ0FBQztRQUNoQi9HLElBQUksRUFBRTJGLEVBQUUsQ0FBQzhRO01BQVUsR0FDaEI5USxFQUFFO0lBQUEsQ0FDTCxDQUFFO0lBQ0pzQixVQUFVLEVBQUU7TUFBRUMsUUFBUSxFQUFFLEVBQUU7TUFBRUMsZUFBZSxFQUFFO0lBQUssQ0FBRTtJQUNwREMsTUFBTSxFQUFFO01BQUVDLENBQUMsRUFBRTtJQUFjO0VBQUUsQ0FDOUIsQ0FBQyxlQUNGM0osMERBQUEsQ0FBQ2dGLHlFQUFhO0lBQUM0RSxPQUFPLEVBQUUyVDtFQUFhLENBQUUsQ0FDcEMsQ0FBQztBQUVWLENBQUM7QUFFRCxpRUFBZUQsUUFBUSxFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDaEs0QjtBQUdJO0FBRWdHO0FBQ3hHO0FBQ25CO0FBRTVCLElBQU1lLHlCQUFtQyxHQUFHLFNBQXRDQSx5QkFBbUNBLENBQUEsRUFBUztFQUFBLElBQUFDLHFCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHVCQUFBLEVBQUFDLHVCQUFBLEVBQUFDLHVCQUFBLEVBQUFDLHVCQUFBLEVBQUFDLHVCQUFBLEVBQUFDLHVCQUFBO0VBQ2hELElBQU0zZSxRQUFRLEdBQUdSLHdEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFNUyxRQUFRLEdBQUdKLDZEQUFXLENBQUMsQ0FBQztFQUM5QixJQUFBSyxZQUFBLEdBQThFVCx3REFBVyxDQUN2RixVQUFDVSxLQUFnQjtNQUFBLE9BQUtBLEtBQUssQ0FBQ3llLGNBQWM7SUFBQSxDQUM1QyxDQUFDO0lBRk9BLGNBQWMsR0FBQTFlLFlBQUEsQ0FBZDBlLGNBQWM7SUFBRXRlLG9CQUFvQixHQUFBSixZQUFBLENBQXBCSSxvQkFBb0I7SUFBRXVlLDJCQUEyQixHQUFBM2UsWUFBQSxDQUEzQjJlLDJCQUEyQjtFQUd6RSxJQUFBcmUsYUFBQSxHQUFlQyxvREFBQSxDQUFLQyxPQUFPLENBQUMsQ0FBQztJQUFBQyxjQUFBLEdBQUFDLGNBQUEsQ0FBQUosYUFBQTtJQUF0QkssSUFBSSxHQUFBRixjQUFBO0VBRVgsSUFBTUcsWUFBWSxHQUFHLElBQUlDLGVBQWUsQ0FBQ0MsUUFBUSxDQUFDQyxNQUFNLENBQUM7RUFDekQsSUFBTUMsRUFBRSxHQUFHSixZQUFZLENBQUNLLEdBQUcsQ0FBQyxJQUFJLENBQUM7RUFFakMsSUFBQUMsU0FBQSxHQUE4QjdCLCtDQUFRLENBQUMsS0FBSyxDQUFDO0lBQUE4QixVQUFBLEdBQUFULGNBQUEsQ0FBQVEsU0FBQTtJQUF0Q0UsT0FBTyxHQUFBRCxVQUFBO0lBQUVFLFVBQVUsR0FBQUYsVUFBQTs7RUFFMUI7RUFDQS9CLGdEQUFTLENBQUMsWUFBTTtJQUNkLElBQUk0QixFQUFFLEVBQUU7TUFDTmxCLFFBQVEsQ0FBQ3dkLGtHQUEwQixDQUFDaGMsTUFBTSxDQUFDTixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xEO0VBQ0YsQ0FBQyxFQUFFLENBQUNsQixRQUFRLEVBQUVrQixFQUFFLENBQUMsQ0FBQztFQUVsQixvQkFDRTdCLDBEQUFBLENBQUFBLHVEQUFBLHFCQUNFQSwwREFBQSxhQUFJLHdCQUEwQixDQUFDLGVBQy9CQSwwREFBQSxDQUFBcUQsbURBQUE7SUFBS0MsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFBRSxnQkFDcEJ0RCwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsR0FBQyxRQUNOLGVBQUF4RCwwREFBQSxDQUFBeWYsMERBQUEsQ0FBWUMsSUFBSTtJQUFDeGMsS0FBSyxFQUFFO01BQUVtWixLQUFLLEVBQUVrRCxjQUFjLGFBQWRBLGNBQWMsZ0JBQUFqQixxQkFBQSxHQUFkaUIsY0FBYyxDQUFFSSxTQUFTLGNBQUFyQixxQkFBQSxlQUF6QkEscUJBQUEsQ0FBMkJzQixTQUFTLEdBQUcsT0FBTyxHQUFHO0lBQVU7RUFBRSxHQUMzRixDQUFBTCxjQUFjLGFBQWRBLGNBQWMsZ0JBQUFoQixzQkFBQSxHQUFkZ0IsY0FBYyxDQUFFSSxTQUFTLGNBQUFwQixzQkFBQSx1QkFBekJBLHNCQUFBLENBQTJCcUIsU0FBUyxNQUFJTCxjQUFjLGFBQWRBLGNBQWMsZ0JBQUFmLHNCQUFBLEdBQWRlLGNBQWMsQ0FBRUksU0FBUyxjQUFBbkIsc0JBQUEsdUJBQXpCQSxzQkFBQSxDQUEyQnFCLElBQUksQ0FDekQsQ0FDcEIsQ0FBQyxlQUNON2YsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLEdBQUMsZ0JBQ0UsZUFBQXhELDBEQUFBLENBQUF5ZiwwREFBQSxDQUFZQyxJQUFJO0lBQUN4YyxLQUFLLEVBQUU7TUFBRTRjLFVBQVUsRUFBRTtJQUFNO0VBQUUsR0FBRVAsY0FBYyxhQUFkQSxjQUFjLHVCQUFkQSxjQUFjLENBQUVRLFlBQThCLENBQ3pHLENBQUMsZUFDTi9mLDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxHQUFDLGdCQUNFLGVBQUF4RCwwREFBQSxDQUFBeWYsMERBQUEsQ0FBWUMsSUFBSTtJQUFDeGMsS0FBSyxFQUFFO01BQUU0YyxVQUFVLEVBQUU7SUFBTTtFQUFFLEdBQUUxQiw2Q0FBTSxDQUFDbUIsY0FBYyxhQUFkQSxjQUFjLHVCQUFkQSxjQUFjLENBQUVTLFlBQVksQ0FBQyxDQUFDQyxNQUFNLENBQUMseUJBQXlCLENBQUMsSUFBSSxHQUFxQixDQUMxSixDQUNGLENBQUMsZUFBQWpnQiwwREFBQSxXQUFLLENBQUMsZUFDWkEsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0VBQUUsZ0JBQ3BCdEQsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLEdBQUMsU0FDTCxlQUFBeEQsMERBQUE7SUFDRzJiLEdBQUcsRUFBRTRELGNBQWMsYUFBZEEsY0FBYyxnQkFBQWQsc0JBQUEsR0FBZGMsY0FBYyxDQUFFSSxTQUFTLGNBQUFsQixzQkFBQSx1QkFBekJBLHNCQUFBLENBQTJCeUIsS0FBTTtJQUN0Q3RFLEdBQUcsRUFBQyxPQUFPO0lBQ1gxWSxLQUFLLEVBQUU7TUFDSCtZLFNBQVMsRUFBRSxPQUFPO01BQ2xCQyxZQUFZLEVBQUUsS0FBSztNQUNuQjVULE9BQU8sRUFBRTtJQUNiO0VBQUUsQ0FDTCxDQUNKLENBQUMsZUFDTnRJLDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxHQUFDLGNBQ0EsZUFBQXhELDBEQUFBLENBQUF5ZiwwREFBQSxDQUFZQyxJQUFJO0lBQUN4YyxLQUFLLEVBQUU7TUFBRTRjLFVBQVUsRUFBRTtJQUFNO0VBQUUsR0FBRVAsY0FBYyxhQUFkQSxjQUFjLGdCQUFBYixzQkFBQSxHQUFkYSxjQUFjLENBQUVJLFNBQVMsY0FBQWpCLHNCQUFBLHVCQUF6QkEsc0JBQUEsQ0FBMkJ5QixlQUFlLEVBQUMsR0FBQyxFQUFDWixjQUFjLGFBQWRBLGNBQWMsZ0JBQUFaLHNCQUFBLEdBQWRZLGNBQWMsQ0FBRUksU0FBUyxjQUFBaEIsc0JBQUEsdUJBQXpCQSxzQkFBQSxDQUEyQnlCLGdCQUFrQyxDQUNuSyxDQUFDLGVBQ05wZ0IsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLEdBQUMsY0FDQSxlQUFBeEQsMERBQUEsQ0FBQXlmLDBEQUFBLENBQVlDLElBQUk7SUFBQ3hjLEtBQUssRUFBRTtNQUFFNGMsVUFBVSxFQUFFO0lBQU07RUFBRSxHQUFFUCxjQUFjLGFBQWRBLGNBQWMsZ0JBQUFYLHNCQUFBLEdBQWRXLGNBQWMsQ0FBRUksU0FBUyxjQUFBZixzQkFBQSx1QkFBekJBLHNCQUFBLENBQTJCeUIsZUFBZSxFQUFDLEdBQUMsRUFBQ2QsY0FBYyxhQUFkQSxjQUFjLGdCQUFBVixzQkFBQSxHQUFkVSxjQUFjLENBQUVJLFNBQVMsY0FBQWQsc0JBQUEsdUJBQXpCQSxzQkFBQSxDQUEyQnlCLGdCQUFrQyxDQUNuSyxDQUNGLENBQUMsZUFDTnRnQiwwREFBQSxXQUFLLENBQUMsZUFDTkEsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0VBQUUsZ0JBQ3BCdEQsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLEdBQUMsb0JBQ00sZUFBQXhELDBEQUFBLENBQUF5ZiwwREFBQSxDQUFZQyxJQUFJO0lBQUN4YyxLQUFLLEVBQUU7TUFBRTRjLFVBQVUsRUFBRTtJQUFNO0VBQUUsR0FBRVAsY0FBYyxhQUFkQSxjQUFjLGdCQUFBVCxzQkFBQSxHQUFkUyxjQUFjLENBQUVJLFNBQVMsY0FBQWIsc0JBQUEsdUJBQXpCQSxzQkFBQSxDQUEyQnlCLGdCQUFrQyxDQUM1SCxDQUFDLGVBQ052Z0IsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLEdBQUMsVUFDSixlQUFBeEQsMERBQUEsQ0FBQXlmLDBEQUFBLENBQVlDLElBQUk7SUFBQ3hjLEtBQUssRUFBRTtNQUFFNGMsVUFBVSxFQUFFO0lBQU07RUFBRSxHQUFFUCxjQUFjLGFBQWRBLGNBQWMsZ0JBQUFSLHNCQUFBLEdBQWRRLGNBQWMsQ0FBRUksU0FBUyxjQUFBWixzQkFBQSx1QkFBekJBLHNCQUFBLENBQTJCeUIsTUFBd0IsQ0FDeEcsQ0FBQyxlQUNOeGdCLDBEQUFBLENBQUF1RCxtREFBQTtJQUFLQyxJQUFJLEVBQUU7RUFBRSxHQUFDLGlCQUNHLGVBQUF4RCwwREFBQSxDQUFBeWYsMERBQUEsQ0FBWUMsSUFBSTtJQUFDeGMsS0FBSyxFQUFFO01BQUU0YyxVQUFVLEVBQUU7SUFBTTtFQUFFLEdBQUVQLGNBQWMsYUFBZEEsY0FBYyxnQkFBQVAsc0JBQUEsR0FBZE8sY0FBYyxDQUFFSSxTQUFTLGNBQUFYLHNCQUFBLHVCQUF6QkEsc0JBQUEsQ0FBMkJ5QixhQUErQixDQUN0SCxDQUNGLENBQUMsZUFDTnpnQiwwREFBQSxXQUFLLENBQUMsZUFDTkEsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0VBQUUsZ0JBQ3BCdEQsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLEdBQUMsZ0JBQ0UsZUFBQXhELDBEQUFBLENBQUF5ZiwwREFBQSxDQUFZQyxJQUFJO0lBQUN4YyxLQUFLLEVBQUU7TUFBRTRjLFVBQVUsRUFBRTtJQUFNO0VBQUUsR0FBRVAsY0FBYyxhQUFkQSxjQUFjLGdCQUFBTix1QkFBQSxHQUFkTSxjQUFjLENBQUVJLFNBQVMsY0FBQVYsdUJBQUEsdUJBQXpCQSx1QkFBQSxDQUEyQnlCLFlBQThCLENBQ3BILENBQUMsZUFDTjFnQiwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsR0FBQyxTQUNMLGVBQUF4RCwwREFBQSxDQUFBeWYsMERBQUEsQ0FBWUMsSUFBSTtJQUFDeGMsS0FBSyxFQUFFO01BQUU0YyxVQUFVLEVBQUU7SUFBTTtFQUFFLEdBQUVQLGNBQWMsYUFBZEEsY0FBYyxnQkFBQUwsdUJBQUEsR0FBZEssY0FBYyxDQUFFSSxTQUFTLGNBQUFULHVCQUFBLHVCQUF6QkEsdUJBQUEsQ0FBMkJoRyxLQUF1QixDQUN0RyxDQUFDLGVBQ05sWiwwREFBQSxDQUFBdUQsbURBQUE7SUFBS0MsSUFBSSxFQUFFO0VBQUUsR0FBQyxXQUNILGVBQUF4RCwwREFBQSxDQUFBeWYsMERBQUEsQ0FBWUMsSUFBSTtJQUFDeGMsS0FBSyxFQUFFO01BQUU0YyxVQUFVLEVBQUU7SUFBTTtFQUFFLEdBQUVQLGNBQWMsYUFBZEEsY0FBYyxnQkFBQUosdUJBQUEsR0FBZEksY0FBYyxDQUFFSSxTQUFTLGNBQUFSLHVCQUFBLHVCQUF6QkEsdUJBQUEsQ0FBMkJ3QixLQUFLLEVBQUMsR0FBQyxFQUFDcEIsY0FBYyxhQUFkQSxjQUFjLGdCQUFBSCx1QkFBQSxHQUFkRyxjQUFjLENBQUVJLFNBQVMsY0FBQVAsdUJBQUEsdUJBQXpCQSx1QkFBQSxDQUEyQndCLE9BQU8sRUFBQyxHQUFDLEVBQUNyQixjQUFjLGFBQWRBLGNBQWMsZ0JBQUFGLHVCQUFBLEdBQWRFLGNBQWMsQ0FBRUksU0FBUyxjQUFBTix1QkFBQSx1QkFBekJBLHVCQUFBLENBQTJCd0IsSUFBSSxFQUFDLEdBQUMsRUFBQ3RCLGNBQWMsYUFBZEEsY0FBYyxnQkFBQUQsdUJBQUEsR0FBZEMsY0FBYyxDQUFFSSxTQUFTLGNBQUFMLHVCQUFBLHVCQUF6QkEsdUJBQUEsQ0FBMkJ3QixXQUE2QixDQUN4TixDQUNGLENBQUMsZUFDTjlnQiwwREFBQSxXQUFLLENBQUMsZUFDTkEsMERBQUEsQ0FBQXFELG1EQUFBO0lBQUtDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0VBQUUsZ0JBQ3BCdEQsMERBQUEsQ0FBQXVELG1EQUFBO0lBQUtDLElBQUksRUFBRTtFQUFFLGdCQUNYeEQsMERBQUEsQ0FBQW9CLG9EQUFBLENBQU1xQyxJQUFJLHFCQUNSekQsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFHLFFBQVEsRUFBQyxRQUFRO0lBQUNFLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUW5FLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQztJQUFBO0VBQUMsR0FBQyxRQUVoRSxDQUNDLENBQ1IsQ0FDRixDQUNMLENBQUM7QUFFUCxDQUFDO0FBRUQsaUVBQWV5ZCx5QkFBeUIsRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0R1c7QUFFSTtBQUVSO0FBQ3VCO0FBQ1M7QUFDa0U7QUFDbEg7QUFDSDtBQUU1QixJQUFNNEMsa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFrQkEsQ0FBQSxFQUFTO0VBQy9CLElBQU10Z0IsUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQXVCLFNBQUEsR0FBd0M3QiwrQ0FBUSxDQUFNLEVBQUUsQ0FBQztJQUFBOEIsVUFBQSxHQUFBVCxjQUFBLENBQUFRLFNBQUE7SUFBbER5RCxZQUFZLEdBQUF4RCxVQUFBO0lBQUV5RCxlQUFlLEdBQUF6RCxVQUFBO0VBQ3BDLElBQUEwRCxVQUFBLEdBQW9DeEYsK0NBQVEsQ0FBQyxFQUFFLENBQUM7SUFBQXlGLFVBQUEsR0FBQXBFLGNBQUEsQ0FBQW1FLFVBQUE7SUFBekNFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQTlFLFlBQUEsR0FBb0RULHdEQUFXLENBQUMsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUN5ZSxjQUFjO0lBQUEsRUFBQztJQUFuRzJCLGVBQWUsR0FBQXJnQixZQUFBLENBQWZxZ0IsZUFBZTtJQUFFQyxzQkFBc0IsR0FBQXRnQixZQUFBLENBQXRCc2dCLHNCQUFzQjtFQUUvQ2xoQixnREFBUyxDQUFDLFlBQU07SUFDZFUsUUFBUSxDQUFDcWdCLDZGQUFvQixDQUFDLENBQUMsQ0FBQztFQUNsQyxDQUFDLEVBQUUsQ0FBQ3JnQixRQUFRLENBQUMsQ0FBQztFQUVkLElBQU1vRixVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBSWxFLEVBQU8sRUFBSztJQUM5QmxCLFFBQVEsQ0FBQ3dkLG1HQUEwQixDQUFDdGMsRUFBRSxDQUFDLENBQUM7SUFDeENqQixRQUFRLDhCQUFBb0YsTUFBQSxDQUE4Qm5FLEVBQUUsQ0FBRSxDQUFDO0VBQzdDLENBQUM7RUFFRCxJQUFNb0UsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUlwRSxFQUFPLEVBQUs7SUFDaEN5RCx3REFBUyxDQUFDO01BQ1JhLEtBQUssRUFBRSxlQUFlO01BQ3RCQyxJQUFJLEVBQUUsb0NBQW9DO01BQzFDQyxJQUFJLEVBQUUsU0FBUztNQUNmQyxpQkFBaUIsRUFBRSxLQUFLO01BQ3hCQyxnQkFBZ0IsRUFBRSxLQUFLO01BQ3ZCQyxJQUFJLDJYQUtIO01BQ0RDLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQVE7UUFBQSxJQUFBQyxjQUFBLEVBQUFDLGVBQUE7UUFDYixJQUFNQyxhQUFhLElBQUFGLGNBQUEsR0FBR3BCLDREQUFhLENBQUMsQ0FBQyxjQUFBb0IsY0FBQSx1QkFBZkEsY0FBQSxDQUFpQkksYUFBYSxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZFLElBQU1DLFlBQVksSUFBQUosZUFBQSxHQUFHckIsNERBQWEsQ0FBQyxDQUFDLGNBQUFxQixlQUFBLHVCQUFmQSxlQUFBLENBQWlCRyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7UUFFckVGLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUVJLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFNO1VBQzdDckcsUUFBUSxDQUFDb2dCLG1HQUEwQixDQUFDbGYsRUFBRSxDQUFDLENBQUMsQ0FBQ29GLElBQUksQ0FBQyxZQUFNO1lBQ2xEM0Isd0RBQVMsQ0FBQyxVQUFVLEVBQUUsNEJBQTRCLEVBQUUsU0FBUyxDQUFDO1lBQzlEM0UsUUFBUSxDQUFDcWdCLDZGQUFvQixDQUFDLENBQUMsQ0FBQztVQUNsQyxDQUFDLENBQUM7VUFDRjFiLHlEQUFVLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQztRQUVGeUIsWUFBWSxhQUFaQSxZQUFZLGVBQVpBLFlBQVksQ0FBRUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQU07VUFDNUMxQix5REFBVSxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUM7TUFDSjtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxJQUFNNkIsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztJQUN6QjtJQUNBdEIsYUFBYSxDQUFDRCxVQUFVLENBQUN3QixJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ2xDLENBQUM7RUFFRCxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQSxFQUFTO0lBQ3hCO0lBQ0F4QixhQUFhLENBQUMsRUFBRSxDQUFDO0VBQ25CLENBQUM7RUFFRCxJQUFNeUIsT0FBTyxHQUFHLENBQ2Q7SUFBRW5CLEtBQUssRUFBRSxRQUFRO0lBQUVvQixTQUFTLEVBQUUsT0FBTztJQUFFaEQsR0FBRyxFQUFFLE9BQU87SUFBRWlELFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3pFO0lBQ0VyQixLQUFLLEVBQUUsUUFBUTtJQUNmNUIsR0FBRyxFQUFFLE1BQU07SUFDWGlELFVBQVUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztJQUNwQ0MsTUFBTSxFQUFFLFNBQVJBLE1BQU1BLENBQUdDLENBQVMsRUFBRUMsTUFBVztNQUFBLElBQUF5WixpQkFBQSxFQUFBQyxrQkFBQSxFQUFBQyxrQkFBQTtNQUFBLG9CQUM3QnRoQiwwREFBQSxDQUFBNEgscURBQUE7UUFBT0MsSUFBSSxFQUFDO01BQU8sZ0JBQ2pCN0gsMERBQUEsQ0FBQTBFLHVEQUFBO1FBQVFDLElBQUksRUFBQyxNQUFNO1FBQUNJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUWdCLFVBQVUsQ0FBQzRCLE1BQU0sQ0FBQzlGLEVBQUUsQ0FBQztRQUFBO01BQUMsZ0JBQ3ZEN0IsMERBQUEsQ0FBQXlmLDBEQUFBLENBQVlDLElBQUk7UUFBQ3hjLEtBQUssRUFBRTtVQUFFbVosS0FBSyxFQUFFMVUsTUFBTSxhQUFOQSxNQUFNLGdCQUFBeVosaUJBQUEsR0FBTnpaLE1BQU0sQ0FBRWdZLFNBQVMsY0FBQXlCLGlCQUFBLGVBQWpCQSxpQkFBQSxDQUFtQnhCLFNBQVMsR0FBRyxPQUFPLEdBQUc7UUFBVTtNQUFFLEdBQ25GLENBQUFqWSxNQUFNLGFBQU5BLE1BQU0sZ0JBQUEwWixrQkFBQSxHQUFOMVosTUFBTSxDQUFFZ1ksU0FBUyxjQUFBMEIsa0JBQUEsdUJBQWpCQSxrQkFBQSxDQUFtQnpCLFNBQVMsTUFBSWpZLE1BQU0sYUFBTkEsTUFBTSxnQkFBQTJaLGtCQUFBLEdBQU4zWixNQUFNLENBQUVnWSxTQUFTLGNBQUEyQixrQkFBQSx1QkFBakJBLGtCQUFBLENBQW1CekIsSUFBSSxDQUN6QyxDQUNYLENBQ0gsQ0FBQztJQUFBO0VBRVosQ0FBQyxFQUNEO0lBQUUxWixLQUFLLEVBQUUsWUFBWTtJQUFFb0IsU0FBUyxFQUFFLFdBQVc7SUFBRWhELEdBQUcsRUFBRSxXQUFXO0lBQUVpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUNyRjtJQUFFckIsS0FBSyxFQUFFLG1CQUFtQjtJQUFFb0IsU0FBUyxFQUFFLFdBQVc7SUFBRWhELEdBQUcsRUFBRSxXQUFXO0lBQUVpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJO0VBQUUsQ0FBQyxFQUM1RjtJQUFFckIsS0FBSyxFQUFFLEtBQUs7SUFBRW9CLFNBQVMsRUFBRSxRQUFRO0lBQUVoRCxHQUFHLEVBQUUsUUFBUTtJQUFFaUQsVUFBVSxFQUFFLENBQUMsSUFBSTtFQUFFLENBQUMsRUFDeEU7SUFBRXJCLEtBQUssRUFBRSxhQUFhO0lBQUVvQixTQUFTLEVBQUUsYUFBYTtJQUFFaEQsR0FBRyxFQUFFLGFBQWE7SUFBRWlELFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQzFGO0lBQUVyQixLQUFLLEVBQUUsdUJBQXVCO0lBQUVvQixTQUFTLEVBQUUsY0FBYztJQUFFaEQsR0FBRyxFQUFFLGNBQWM7SUFBRWlELFVBQVUsRUFBRSxDQUFDLElBQUk7RUFBRSxDQUFDLEVBQ3RHO0lBQ0VyQixLQUFLLEVBQUUsZUFBZTtJQUN0Qm9CLFNBQVMsRUFBRSxjQUFjO0lBQ3pCaEQsR0FBRyxFQUFFLGNBQWM7SUFDbkJpRCxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDbEJDLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFHQyxDQUFNLEVBQUVDLE1BQVc7TUFBQSxPQUFNeVcsOENBQU0sQ0FBQ3pXLE1BQU0sQ0FBQ3FZLFlBQVksQ0FBQyxDQUFDQyxNQUFNLENBQUMseUJBQXlCLENBQUMsSUFBSSxHQUFHO0lBQUE7RUFDeEcsQ0FBQyxFQUNEO0lBQ0U5WixLQUFLLEVBQUUsUUFBUTtJQUNmNUIsR0FBRyxFQUFFLFFBQVE7SUFDYmlELFVBQVUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztJQUNwQ0MsTUFBTSxFQUFFLFNBQVJBLE1BQU1BLENBQUdDLENBQVMsRUFBRUMsTUFBVztNQUFBLG9CQUM3QjNILDBEQUFBLENBQUE0SCxxREFBQTtRQUFPQyxJQUFJLEVBQUM7TUFBUSxnQkFDbEI3SCwwREFBQSxDQUFBMEUsdURBQUE7UUFBUTJCLElBQUksZUFBRXJHLDBEQUFBLENBQUNpRix5REFBYyxNQUFFLENBQUU7UUFBQzZDLE1BQU07UUFBQy9DLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1VBQUEsT0FBUWtCLFlBQVksQ0FBQzBCLE1BQU0sQ0FBQzlGLEVBQUUsQ0FBQztRQUFBO01BQUMsQ0FBRSxDQUM3RSxDQUFDO0lBQUE7RUFFWixDQUFDLENBQ0Y7RUFFRCxJQUFNa0csWUFBWSxHQUFHLENBQUNtWixlQUFlLElBQUksRUFBRSxFQUFFbFosTUFBTSxDQUFDLFVBQUNDLEVBQUUsRUFBSztJQUFBLElBQUFzWixnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxhQUFBLEVBQUFDLGNBQUEsRUFBQUMsY0FBQSxFQUFBQyxjQUFBLEVBQUFDLGNBQUEsRUFBQUMsY0FBQSxFQUFBQyxjQUFBLEVBQUFDLGNBQUE7SUFDMUQsSUFBTXBnQixNQUFNLEdBQUdnRSxVQUFVLENBQUN1QyxXQUFXLENBQUMsQ0FBQztJQUV2QyxPQUNFLEVBQUFvWixnQkFBQSxHQUFBdFosRUFBRSxDQUFDOFgsWUFBWSxjQUFBd0IsZ0JBQUEsdUJBQWZBLGdCQUFBLENBQWlCcFosV0FBVyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDeEcsTUFBTSxDQUFDLE9BQUE0ZixnQkFBQSxHQUMvQ3ZaLEVBQUUsQ0FBQytYLFlBQVksY0FBQXdCLGdCQUFBLHVCQUFmQSxnQkFBQSxDQUFpQnJaLFdBQVcsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQ3hHLE1BQU0sQ0FBQyxPQUFBNmYsYUFBQSxHQUMvQ3haLEVBQUUsQ0FBQzBYLFNBQVMsY0FBQThCLGFBQUEsZ0JBQUFBLGFBQUEsR0FBWkEsYUFBQSxDQUFjNUIsSUFBSSxjQUFBNEIsYUFBQSx1QkFBbEJBLGFBQUEsQ0FBb0J0WixXQUFXLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUN4RyxNQUFNLENBQUMsT0FBQThmLGNBQUEsR0FDbER6WixFQUFFLENBQUMwWCxTQUFTLGNBQUErQixjQUFBLGdCQUFBQSxjQUFBLEdBQVpBLGNBQUEsQ0FBYzlCLFNBQVMsY0FBQThCLGNBQUEsdUJBQXZCQSxjQUFBLENBQXlCdlosV0FBVyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDeEcsTUFBTSxDQUFDLE9BQUErZixjQUFBLEdBQ3ZEMVosRUFBRSxDQUFDMFgsU0FBUyxjQUFBZ0MsY0FBQSxnQkFBQUEsY0FBQSxHQUFaQSxjQUFBLENBQWN4QixlQUFlLGNBQUF3QixjQUFBLHVCQUE3QkEsY0FBQSxDQUErQnhaLFdBQVcsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQ3hHLE1BQU0sQ0FBQyxPQUFBZ2dCLGNBQUEsR0FDN0QzWixFQUFFLENBQUMwWCxTQUFTLGNBQUFpQyxjQUFBLGdCQUFBQSxjQUFBLEdBQVpBLGNBQUEsQ0FBY3hCLGdCQUFnQixjQUFBd0IsY0FBQSx1QkFBOUJBLGNBQUEsQ0FBZ0N6WixXQUFXLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUN4RyxNQUFNLENBQUMsT0FBQWlnQixjQUFBLEdBQzlENVosRUFBRSxDQUFDMFgsU0FBUyxjQUFBa0MsY0FBQSxnQkFBQUEsY0FBQSxHQUFaQSxjQUFBLENBQWN4QixlQUFlLGNBQUF3QixjQUFBLHVCQUE3QkEsY0FBQSxDQUErQjFaLFdBQVcsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQ3hHLE1BQU0sQ0FBQyxPQUFBa2dCLGNBQUEsR0FDN0Q3WixFQUFFLENBQUMwWCxTQUFTLGNBQUFtQyxjQUFBLGdCQUFBQSxjQUFBLEdBQVpBLGNBQUEsQ0FBY3hCLGdCQUFnQixjQUFBd0IsY0FBQSx1QkFBOUJBLGNBQUEsQ0FBZ0MzWixXQUFXLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUN4RyxNQUFNLENBQUMsT0FBQW1nQixjQUFBLEdBQzlEOVosRUFBRSxDQUFDMFgsU0FBUyxjQUFBb0MsY0FBQSxnQkFBQUEsY0FBQSxHQUFaQSxjQUFBLENBQWN2QixNQUFNLGNBQUF1QixjQUFBLHVCQUFwQkEsY0FBQSxDQUFzQjVaLFdBQVcsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQ3hHLE1BQU0sQ0FBQyxPQUFBb2dCLGNBQUEsR0FDcEQvWixFQUFFLENBQUMwWCxTQUFTLGNBQUFxQyxjQUFBLGdCQUFBQSxjQUFBLEdBQVpBLGNBQUEsQ0FBY3RCLFlBQVksY0FBQXNCLGNBQUEsdUJBQTFCQSxjQUFBLENBQTRCN1osV0FBVyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDeEcsTUFBTSxDQUFDO0VBRTlELENBQUMsQ0FBQztFQUVGLG9CQUNFNUIsMERBQUE7SUFBS2tELEtBQUssRUFBRTtNQUFFbUYsU0FBUyxFQUFFO0lBQU87RUFBRSxnQkFDaENySSwwREFBQSxhQUFJLHNCQUF3QixDQUFDLGVBQzdCQSwwREFBQTtJQUNFa0QsS0FBSyxFQUFFO01BQ0xvRixPQUFPLEVBQUUsTUFBTTtNQUNmQyxjQUFjLEVBQUUsZUFBZTtNQUMvQkMsT0FBTyxFQUFFLE1BQU07TUFDZkMsVUFBVSxFQUFFLFNBQVM7TUFDckJDLFlBQVksRUFBRSxNQUFNO01BQ3BCQyxRQUFRLEVBQUU7SUFDWjtFQUFFLGdCQUVGM0ksMERBQUEsQ0FBQTRILHFEQUFBO0lBQU9nQixJQUFJO0VBQUEsZ0JBQ1Q1SSwwREFBQSxlQUFNLDRCQUFNLEVBQUMsQ0FBQStILFlBQVksYUFBWkEsWUFBWSx1QkFBWkEsWUFBWSxDQUFFYyxNQUFNLEtBQUksQ0FBUSxDQUFDLGVBQzlDN0ksMERBQUEsQ0FBQThELHFEQUFBO0lBQ0VHLFdBQVcsRUFBQywrQ0FBWTtJQUN4QmYsS0FBSyxFQUFFO01BQUU0RixLQUFLLEVBQUU7SUFBSSxDQUFFO0lBQ3RCdEUsS0FBSyxFQUFFb0IsVUFBVztJQUNsQm1ELFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHQyxDQUFDO01BQUEsT0FBS25ELGFBQWEsQ0FBQ21ELENBQUMsQ0FBQ0MsTUFBTSxDQUFDekUsS0FBSyxDQUFDO0lBQUE7RUFBQyxDQUNoRCxDQUFDLGVBQ0Z4RSwwREFBQSxDQUFBMEUsdURBQUE7SUFBUUssT0FBTyxFQUFFb0MsWUFBYTtJQUFDeEMsSUFBSSxFQUFDO0VBQVMsR0FBQyxzQ0FBYyxDQUFDLGVBQzdEM0UsMERBQUEsQ0FBQTBFLHVEQUFBO0lBQVFLLE9BQU8sRUFBRXNDO0VBQVksR0FBQyxvRUFBbUIsQ0FDNUMsQ0FDSixDQUFDLGVBQ05ySCwwREFBQSxDQUFBa0oscURBQUE7SUFDRUMsWUFBWSxFQUFFO01BQ1p4RSxJQUFJLEVBQUUsVUFBVTtNQUNoQm9FLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHckIsQ0FBQyxFQUFFbEMsWUFBWTtRQUFBLE9BQUtDLGVBQWUsQ0FBQ0QsWUFBWSxDQUFDO01BQUE7SUFDOUQsQ0FBRTtJQUNGOEIsT0FBTyxFQUFFQSxPQUFRO0lBQ2pCOEIsVUFBVSxFQUFFckIsWUFBWSxDQUFDM0QsR0FBRyxDQUFDLFVBQUM2RCxFQUFFLEVBQUVvQixLQUFLO01BQUEsSUFBQTRZLGNBQUEsRUFBQUMsY0FBQSxFQUFBQyxjQUFBLEVBQUFDLGVBQUEsRUFBQUMsZUFBQSxFQUFBQyxlQUFBO01BQUEsT0FBQWhaLGFBQUE7UUFDckMvRSxHQUFHLEVBQUUwRCxFQUFFLENBQUNwRyxFQUFFO1FBQ1Z3SCxLQUFLLEVBQUVBLEtBQUssR0FBRyxDQUFDO1FBQ2hCa1osU0FBUyxLQUFBdmMsTUFBQSxDQUFLaUMsRUFBRSxhQUFGQSxFQUFFLGdCQUFBZ2EsY0FBQSxHQUFGaGEsRUFBRSxDQUFFMFgsU0FBUyxjQUFBc0MsY0FBQSx1QkFBYkEsY0FBQSxDQUFlOUIsZUFBZSxPQUFBbmEsTUFBQSxDQUFJaUMsRUFBRSxhQUFGQSxFQUFFLGdCQUFBaWEsY0FBQSxHQUFGamEsRUFBRSxDQUFFMFgsU0FBUyxjQUFBdUMsY0FBQSx1QkFBYkEsY0FBQSxDQUFlOUIsZ0JBQWdCLENBQUU7UUFDakZvQyxTQUFTLEtBQUF4YyxNQUFBLENBQUtpQyxFQUFFLGFBQUZBLEVBQUUsZ0JBQUFrYSxjQUFBLEdBQUZsYSxFQUFFLENBQUUwWCxTQUFTLGNBQUF3QyxjQUFBLHVCQUFiQSxjQUFBLENBQWU5QixlQUFlLE9BQUFyYSxNQUFBLENBQUlpQyxFQUFFLGFBQUZBLEVBQUUsZ0JBQUFtYSxlQUFBLEdBQUZuYSxFQUFFLENBQUUwWCxTQUFTLGNBQUF5QyxlQUFBLHVCQUFiQSxlQUFBLENBQWU5QixnQkFBZ0IsQ0FBRTtRQUNqRkUsTUFBTSxFQUFFdlksRUFBRSxhQUFGQSxFQUFFLGdCQUFBb2EsZUFBQSxHQUFGcGEsRUFBRSxDQUFFMFgsU0FBUyxjQUFBMEMsZUFBQSx1QkFBYkEsZUFBQSxDQUFlN0IsTUFBTTtRQUM3QmlDLFdBQVcsRUFBRXhhLEVBQUUsYUFBRkEsRUFBRSxnQkFBQXFhLGVBQUEsR0FBRnJhLEVBQUUsQ0FBRTBYLFNBQVMsY0FBQTJDLGVBQUEsdUJBQWJBLGVBQUEsQ0FBZTVCO01BQVksR0FDckN6WSxFQUFFO0lBQUEsQ0FDTCxDQUFFO0lBQ0pzQixVQUFVLEVBQUU7TUFBRUMsUUFBUSxFQUFFLEVBQUU7TUFBRUMsZUFBZSxFQUFFO0lBQUssQ0FBRTtJQUNwREMsTUFBTSxFQUFFO01BQUVDLENBQUMsRUFBRTtJQUFjO0VBQUUsQ0FDOUIsQ0FBQyxlQUNGM0osMERBQUEsQ0FBQ2dGLHlFQUFhO0lBQUM0RSxPQUFPLEVBQUV1WDtFQUF1QixDQUFFLENBQzlDLENBQUM7QUFFVixDQUFDO0FBRUQsaUVBQWVGLGtCQUFrQixFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9pbnRlcmVzdGVkX3RlYW0vZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9pbnRlcmVzdGVkX3RlYW0vaW5kZXgudHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vbGFuZ3VhZ2UvZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9sYW5ndWFnZS9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9ub3RpZmljYXRpb24vY29yZS9ub3RpZmljYXRpb25fc2VydmljZS50cyIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL25vdGlmaWNhdGlvbi9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9vY2N1cGF0aW9uL2Zvcm0udHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vb2NjdXBhdGlvbi9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9vZmZlcl9wcm9ncmFtL2Zvcm0udHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vb2ZmZXJfcHJvZ3JhbS9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9vcHBvcnR1bml0eV9zb3VyY2UvZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9vcHBvcnR1bml0eV9zb3VyY2UvaW5kZXgudHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vcHJvdmluY2UvZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9wcm92aW5jZS9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9za2lsbC9mb3JtLnRzeCIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL3NraWxsL2luZGV4LnRzeCIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL3Rlcm1zX2NvbmRpdGlvbi9mb3JtLnRzeCIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL3Rlcm1zX2NvbmRpdGlvbi9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi90cmFpbmluZ19zZXNzaW9uL2Zvcm0udHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vdHJhaW5pbmdfc2Vzc2lvbi9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi90cmF2ZWxfZGF5L2Zvcm0udHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vdHJhdmVsX2RheS9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi91c2VyL2Zvcm0udHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vdXNlci9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi91c2VyX2F0dGVuZGFuY2UvZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi91c2VyX2F0dGVuZGFuY2UvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UsIFNlbGVjdCB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgSW50ZXJlc3RlZFRlYW0gfSBmcm9tICdAL3NoYXJlZC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUludGVyZXN0ZWRUZWFtQWN0aW9uLCBpbnRlcmVzdGVkVGVhbURldGFpbEFjdGlvbiwgdXBkYXRlSW50ZXJlc3RlZFRlYW1BY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9pbnRlcmVzdGVkX3RlYW0vY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgVGV4dEFyZWEgZnJvbSAnYW50ZC9lcy9pbnB1dC9UZXh0QXJlYSc7XG5cbmNvbnN0IE5ld0VkaXRJbnRlcmVzdGVkVGVhbVBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3Qge2ludGVyZXN0ZWRUZWFtcywgaW50ZXJlc3RlZFRlYW0sIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBpbnRlcmVzdGVkVGVhbVVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5pbnRlcmVzdGVkVGVhbVxuICApO1xuICBjb25zdCBbZm9ybV0gPSBGb3JtLnVzZUZvcm0oKTtcblxuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XG4gIGNvbnN0IGlkID0gc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcblxuICBjb25zdCBbaXNDbGljaywgc2V0SXNDbGlja10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8g8J+RiSBGZXRjaCBkYXRhIHdoZW4gZWRpdGluZyBvciByZXNldCBmb3JtIHdoZW4gYWRkaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaChpbnRlcmVzdGVkVGVhbURldGFpbEFjdGlvbihOdW1iZXIoaWQpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBhZGRpbmcgYSBuZXcgaXRlbVxuICAgIH1cbiAgfSwgW2Rpc3BhdGNoLCBpZCwgZm9ybV0pO1xuXG4gIC8vIPCfkYkgUG9wdWxhdGUgZm9ybSB3aXRoIGZldGNoZWQgZGF0YVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCAmJiBpbnRlcmVzdGVkVGVhbSkge1xuICAgICAgZm9ybS5zZXRGaWVsZHNWYWx1ZSh7XG4gICAgICAgIG5hbWU6IGludGVyZXN0ZWRUZWFtLm5hbWUgfHwgJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBpbnRlcmVzdGVkVGVhbS5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgICAgcGFyZW50X2lkOiBpbnRlcmVzdGVkVGVhbS5wYXJlbnRfaWQgfHwgbnVsbCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2ludGVyZXN0ZWRUZWFtLCBmb3JtLCBpZF0pO1xuXG4gIC8vIPCfkYkgU2hvdyBzdWNjZXNzIG9yIGVycm9yIGFsZXJ0c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaW50ZXJlc3RlZFRlYW1VcGRhdGVQZW5kaW5nICYmIGlzQ2xpY2spIHtcbiAgICAgIGlmIChyZWdpc3RlckVycm9yTWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlLmVycm9yKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhpZCA/ICdVcGRhdGVkIHN1Y2Nlc3NmdWxseSEnIDogJ0NyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgICBuYXZpZ2F0ZSgnL2ludGVyZXN0ZWQtdGVhbXMnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpbnRlcmVzdGVkVGVhbVVwZGF0ZVBlbmRpbmcsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBpZCwgaXNDbGljaywgbmF2aWdhdGVdKTtcblxuICAvLyDwn5GJIEhhbmRsZSBmb3JtIHN1Ym1pdFxuICBjb25zdCBvbkZpbmlzaCA9ICh2YWx1ZXM6IEludGVyZXN0ZWRUZWFtKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh1cGRhdGVJbnRlcmVzdGVkVGVhbUFjdGlvbih7IGlkOiBOdW1iZXIoaWQpLCBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaChjcmVhdGVJbnRlcmVzdGVkVGVhbUFjdGlvbih7IGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gYWZ0ZXIgc3VjY2Vzc2Z1bCBjcmVhdGlvblxuICAgIH1cbiAgICBzZXRJc0NsaWNrKHRydWUpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxoMj57aWQgPyAn4Z6A4Z+C4Z6U4Z+S4Z6a4Z+C4Z6A4Z+S4Z6a4Z674Z6Y4Z6F4Z624Z6U4Z+L4Z6i4Z624Z6a4Z6Y4Z+S4Z6Y4Z6O4Z+NJyA6ICfhnpThnpPhn5LhnpDhn4LhnpjhnpDhn5LhnpjhnrjhnoDhn5LhnprhnrvhnpjhnoXhnrbhnpThn4vhnqLhnrbhnprhnpjhn5Lhnpjhno7hn40nfTwvaDI+XG4gICAgICA8Rm9ybSBmb3JtPXtmb3JtfSBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiIG9uRmluaXNoPXtvbkZpbmlzaH0gc3R5bGU9e3sgbWF4V2lkdGg6ICcxMDAlJywgbWFyZ2luOiAnMCBhdXRvJyB9fT5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnojhn5Lhnpjhn4Thn4dcIiBuYW1lPVwibmFtZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIG5hbWUnIH1dfT5cbiAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cblxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIlBhcmVudCBUZWFtXCIgbmFtZT1cInBhcmVudF9pZFwiPlxuICAgICAgICAgICAgICA8U2VsZWN0IGFsbG93Q2xlYXIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgUGFyZW50IFRlYW1cIj5cbiAgICAgICAgICAgICAgICB7QXJyYXkuaXNBcnJheShpbnRlcmVzdGVkVGVhbXMpICYmIGludGVyZXN0ZWRUZWFtcy5tYXAoKHRlYW0pID0+IChcbiAgICAgICAgICAgICAgICAgIDxPcHRpb24ga2V5PXt0ZWFtLmlkfSB2YWx1ZT17dGVhbS5pZH0+e3RlYW0ubmFtZX08L09wdGlvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cblxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemSAoT3B0aW9uYWwpXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxUZXh0QXJlYSByb3dzPXszfSAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXtpbnRlcmVzdGVkVGVhbVVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy9pbnRlcmVzdGVkLXRlYW1zJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRJbnRlcmVzdGVkVGVhbVBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNwYWNlLCBUYWJsZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMb2FkaW5nRGlhbG9nIGZyb20gJy4uLy4uLy4uL2NvbnRhaW5lci9kaWFsb2dzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IERlbGV0ZU91dGxpbmVkLCBFZGl0T3V0bGluZWQsIFBsdXNPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IGRlbGV0ZUludGVyZXN0ZWRUZWFtQWN0aW9uLCBpbnRlcmVzdGVkVGVhbURldGFpbEFjdGlvbiwgZmV0Y2hJbnRlcmVzdGVkVGVhbXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9pbnRlcmVzdGVkX3RlYW0vY29yZS9hY3Rpb25zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuY29uc3QgSW50ZXJlc3RlZFRlYW1MaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IHsgaW50ZXJlc3RlZFRlYW1zLCBpbnRlcmVzdGVkVGVhbXNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUuaW50ZXJlc3RlZFRlYW0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hJbnRlcmVzdGVkVGVhbXMoKSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKGludGVyZXN0ZWRUZWFtRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC9pbnRlcmVzdGVkLXRlYW1zL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlSW50ZXJlc3RlZFRlYW1BY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hJbnRlcmVzdGVkVGVhbXMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAoaW50ZXJlc3RlZFRlYW1zIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5LhnofhnrjhnoDhn5LhnprhnrvhnpjhnoXhnrbhnpThn4vhnqLhnrbhnprhnpjhn5Lhnpjhno7hn408L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvaW50ZXJlc3RlZC10ZWFtcy9mb3JtYCl9PuGelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8VGFibGVcbiAgICAgICAgcm93U2VsZWN0aW9uPXt7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBvbkNoYW5nZTogKF8sIHNlbGVjdGVkUm93cykgPT4gc2V0U2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93cyksXG4gICAgICAgIH19XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlcmVkRGF0YS5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0LmlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICAgICAgbmFtZTogaXQubmFtZSxcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7IHBhZ2VTaXplOiAxMCwgc2hvd1NpemVDaGFuZ2VyOiB0cnVlIH19XG4gICAgICAgIHNjcm9sbD17eyB4OiAnbWF4LWNvbnRlbnQnIH19XG4gICAgICAvPlxuICAgICAgPExvYWRpbmdEaWFsb2cgdmlzaWJsZT17aW50ZXJlc3RlZFRlYW1zUGVuZGluZ30gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEludGVyZXN0ZWRUZWFtTGlzdDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IExhbmd1YWdlIH0gZnJvbSAnQC9zaGFyZWQvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVMYW5ndWFnZUFjdGlvbiwgbGFuZ3VhZ2VEZXRhaWxBY3Rpb24sIHVwZGF0ZUxhbmd1YWdlQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvbGFuZ3VhZ2UvY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgVGV4dEFyZWEgZnJvbSAnYW50ZC9lcy9pbnB1dC9UZXh0QXJlYSc7XG5cbmNvbnN0IE5ld0VkaXRMYW5ndWFnZVBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyBsYW5ndWFnZSwgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGxhbmd1YWdlVXBkYXRlUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLmxhbmd1YWdlXG4gICk7XG4gIGNvbnN0IFtmb3JtXSA9IEZvcm0udXNlRm9ybSgpO1xuXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgaWQgPSBzZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuXG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAvLyDwn5GJIEZldGNoIGRhdGEgd2hlbiBlZGl0aW5nIG9yIHJlc2V0IGZvcm0gd2hlbiBhZGRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKGxhbmd1YWdlRGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGZpZWxkcyB3aGVuIGFkZGluZyBhIG5ldyBpdGVtXG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkLCBmb3JtXSk7XG5cbiAgLy8g8J+RiSBQb3B1bGF0ZSBmb3JtIHdpdGggZmV0Y2hlZCBkYXRhXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkICYmIGxhbmd1YWdlKSB7XG4gICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHtcbiAgICAgICAgbmFtZTogbGFuZ3VhZ2UubmFtZSB8fCAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IGxhbmd1YWdlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbbGFuZ3VhZ2UsIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFsYW5ndWFnZVVwZGF0ZVBlbmRpbmcgJiYgaXNDbGljaykge1xuICAgICAgaWYgKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIG1lc3NhZ2UuZXJyb3IocmVnaXN0ZXJFcnJvck1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGlkID8gJ1VwZGF0ZWQgc3VjY2Vzc2Z1bGx5IScgOiAnQ3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgIG5hdmlnYXRlKCcvbGFuZ3VhZ2VzJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbbGFuZ3VhZ2VVcGRhdGVQZW5kaW5nLCByZWdpc3RlckVycm9yTWVzc2FnZSwgaWQsIGlzQ2xpY2ssIG5hdmlnYXRlXSk7XG5cbiAgLy8g8J+RiSBIYW5kbGUgZm9ybSBzdWJtaXRcbiAgY29uc3Qgb25GaW5pc2ggPSAodmFsdWVzOiBMYW5ndWFnZSkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlTGFuZ3VhZ2VBY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlTGFuZ3VhZ2VBY3Rpb24oeyBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGFmdGVyIHN1Y2Nlc3NmdWwgY3JlYXRpb25cbiAgICB9XG4gICAgc2V0SXNDbGljayh0cnVlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDI+e2lkID8gJ+GegOGfguGelOGfkuGemuGfguGel+GetuGen+GeticgOiAn4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z644Z6X4Z624Z6f4Z62J308L2gyPlxuICAgICAgPEZvcm0gZm9ybT17Zm9ybX0gbGF5b3V0PVwidmVydGljYWxcIiBvbkZpbmlzaD17b25GaW5pc2h9IHN0eWxlPXt7IG1heFdpZHRoOiAnMTAwJScsIG1hcmdpbjogJzAgYXV0bycgfX0+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6I4Z+S4Z6Y4Z+E4Z+HXCIgbmFtZT1cIm5hbWVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSBuYW1lJyB9XX0+XG4gICAgICAgICAgICAgIDxJbnB1dCAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6U4Z6a4Z634Z6Z4Z624Z6ZXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxUZXh0QXJlYSByb3dzPXszfSAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXtsYW5ndWFnZVVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy9sYW5ndWFnZXMnKX0+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9Gb3JtPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmV3RWRpdExhbmd1YWdlUGFnZTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uLCBJbnB1dCwgU3BhY2UsIFRhYmxlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExvYWRpbmdEaWFsb2cgZnJvbSAnLi4vLi4vLi4vY29udGFpbmVyL2RpYWxvZ3MvbG9hZGluZy1kaWFsb2cnO1xuaW1wb3J0IHsgRGVsZXRlT3V0bGluZWQsIEVkaXRPdXRsaW5lZCwgUGx1c091dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0IHsgZGVsZXRlTGFuZ3VhZ2VBY3Rpb24sIGxhbmd1YWdlRGV0YWlsQWN0aW9uLCBmZXRjaExhbmd1YWdlcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2xhbmd1YWdlL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmNvbnN0IExhbmd1YWdlTGlzdCA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IGxhbmd1YWdlcywgbGFuZ3VhZ2VzUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLmxhbmd1YWdlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoTGFuZ3VhZ2VzKCkpO1xuICB9LCBbZGlzcGF0Y2hdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaChsYW5ndWFnZURldGFpbEFjdGlvbihpZCkpO1xuICAgIG5hdmlnYXRlKGAvbGFuZ3VhZ2VzL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlTGFuZ3VhZ2VBY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hMYW5ndWFnZXMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAobGFuZ3VhZ2VzIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5Lhnofhnrjhnpfhnrbhnp/hnrY8L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvbGFuZ3VhZ2VzL2Zvcm1gKX0+4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z64PC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxUYWJsZVxuICAgICAgICByb3dTZWxlY3Rpb249e3tcbiAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgIG9uQ2hhbmdlOiAoXywgc2VsZWN0ZWRSb3dzKSA9PiBzZXRTZWxlY3RlZFJvd3Moc2VsZWN0ZWRSb3dzKSxcbiAgICAgICAgfX1cbiAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgZGF0YVNvdXJjZT17ZmlsdGVyZWREYXRhLm1hcCgoaXQsIGluZGV4KSA9PiAoe1xuICAgICAgICAgIGtleTogaXQuaWQsXG4gICAgICAgICAgaW5kZXg6IGluZGV4ICsgMSxcbiAgICAgICAgICBuYW1lOiBpdC5uYW1lLFxuICAgICAgICAgIC4uLml0LFxuICAgICAgICB9KSl9XG4gICAgICAgIHBhZ2luYXRpb249e3sgcGFnZVNpemU6IDEwLCBzaG93U2l6ZUNoYW5nZXI6IHRydWUgfX1cbiAgICAgICAgc2Nyb2xsPXt7IHg6ICdtYXgtY29udGVudCcgfX1cbiAgICAgIC8+XG4gICAgICA8TG9hZGluZ0RpYWxvZyB2aXNpYmxlPXtsYW5ndWFnZXNQZW5kaW5nfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTGFuZ3VhZ2VMaXN0O1xuIiwiaW1wb3J0IHsgZ2V0V2l0aENvbmZpZywgcG9zdFdpdGhDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29yZS9iYXNlL3NlcnZpY2VzXCI7XG5pbXBvcnQgeyBVUkwgfSBmcm9tICcuLi8uLi8uLi8uLi9jb25maWdzL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBub3RpZnlVc2VyVGVsZWdyYW1TZXJ2aWNlID0gYXN5bmMgKHVzZXJfaWQ6IG51bWJlciwgbWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IGdldFdpdGhDb25maWcoXG4gICAgICAgIGAke1VSTC5OT1RJRll9P3VzZXJfaWQ9JHt1c2VyX2lkfSZtZXNzYWdlPSR7bWVzc2FnZX1gLFxuICAgICk7XG59O1xuXG5cblxuZXhwb3J0IGNvbnN0IG5vdGlmeVVzZXJCeVN0YXR1cyA9IGFzeW5jIChzdGF0dXM6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IGdldFdpdGhDb25maWcoXG4gICAgICAgIGAke1VSTC5OT1RJRllfU1RBVFVTfT9zdGF0dXM9JHtzdGF0dXN9Jm1lc3NhZ2U9JHttZXNzYWdlfWAsXG4gICAgKTtcbn07IiwiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBCdXR0b24sIElucHV0LCBTZWxlY3QsIFJvdywgQ29sLCBNb2RhbCwgbWVzc2FnZSBhcyBhbnRkTWVzc2FnZSB9IGZyb20gXCJhbnRkXCI7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSBcIi4uLy4uLy4uL3JlZHV4L3N0b3JlXCI7XG5pbXBvcnQgeyBub3RpZnlVc2VyQnlTdGF0dXMsIG5vdGlmeVVzZXJUZWxlZ3JhbVNlcnZpY2UgfSBmcm9tIFwiLi9jb3JlL25vdGlmaWNhdGlvbl9zZXJ2aWNlXCI7XG5cbmNvbnN0IHsgT3B0aW9uIH0gPSBTZWxlY3Q7XG5cbmNvbnN0IEludml0YXRpb25fdG9fVm9sdW50ZWVyX0JyaWVmaW5nX01lZXRpbmcgPSBgXG7wn5OiICoq4Z6A4Z624Z6a4Z6i4Z6J4Z+S4Z6H4Z6+4Z6J4Z6F4Z684Z6b4Z6a4Z694Z6Y4Z6A4Z634Z6F4Z+S4Z6F4Z6U4Z+S4Z6a4Z6H4Z674Z+G4Z6V4Z+S4Z6f4Z6W4Z+S4Z6c4Z6V4Z+S4Z6f4Z624Z6Z4Z6i4Z+G4Z6W4Z644Z6P4Z694Z6T4Z624Z6R4Z644Z6X4Z624Z6a4Z6A4Z634Z6F4Z+S4Z6FKipcblxuXG7wn5OdICoq4Z6f4Z684Z6Y4Z6i4Z6J4Z+S4Z6H4Z6+4Z6J4Z6b4Z+E4Z6A4Z6i4Z+S4Z6T4Z6AKiog4Z6F4Z684Z6b4Z6a4Z694Z6Y4Z6A4Z634Z6F4Z+S4Z6F4Z6U4Z+S4Z6a4Z6H4Z674Z+G4Z6V4Z+S4Z6f4Z6W4Z+S4Z6c4Z6V4Z+S4Z6f4Z624Z6Z4Z6i4Z+G4Z6W4Z64ICoq4Z6P4Z694Z6T4Z624Z6R4Z644Z6X4Z624Z6a4Z6A4Z634Z6F4Z+S4Z6F4Z6A4Z+S4Z6a4Z674Z6Y4Z6A4Z624Z6a4Z6E4Z624Z6aKipcbuGeiuGevuGemOGfkuGelOGeuOGemuGfgOGelOGeheGfhuGegeGfkuGem+GeveGek+Geh+GetuGen+GfkuGemOGfkOGeguGfkuGemuGeheGet+Gej+GfkuGej+GegOGfkuGek+Geu+GehCAqKuGeluGfkuGemuGeueGej+GfkuGej+Get+GegOGetuGemuGejuGfjeGeouGehOGfkuGeguGemuGen+GehOGfkuGegOGfkuGemuGetuGek+GfkuGejyDhn6Lhn6Dhn6Lhn6UqKuOAglxuXG5cbvCfk4Ug4Z6A4Z624Z6b4Z6U4Z6a4Z634Z6F4Z+S4Z6G4Z+B4Z6R4Z+WIOGekOGfkuGehOGfg+Gen+GfheGemuGfjSDhnpHhnrgg4Z+i4Z+pIOGegeGfguGemOGeuOGek+GetiDhn6Lhn6Dhn6Lhn6VcbuKPsCDhnpbhn4Hhnpvhnpzhn4Hhnpvhnrbhn5Yg4Z+pOuGfoOGfoCDhnpbhn5LhnprhnrnhnoBcbvCfk40g4Z6R4Z644Z6P4Z624Z+G4Z6E4Z+WIOGekeGeuOGem+GetuGek+GeleGfkuGej+GetuGeheGfi+GeluGfkuGemuGfkOGej+GfkuGemuGen+GeoOGeluGfkOGek+GfkuGekuGegOGeuOGeoeGetuGelOGfiuGevOGemyDhnpPhnrfhnoThnpThn4nhn4Hhno/hnoThn4vhnoDhnpjhn5LhnpbhnrvhnofhnrYgKOGeluGeoOGeu+GegOGeuOGeoeGeiuGfkuGei+GetuGek+Geh+GetuGej+GetylcbvCfkZUg4Z6f4Z6Y4Z+S4Z6b4Z+A4Z6A4Z6U4Z+G4Z6W4Z624Z6A4Z+L4Z+WIOGen+GemOGemuGemOGfkuGemVxuXG7wn5OeIOGeluGfkOGej+GfjOGemOGetuGek+Gem+GemOGfkuGeouGet+Gej+Gen+GevOGemOGekeGfhuGek+GetuGegOGfi+GekeGfhuGek+GehOGfliAwOTggODkgODcgNjdcbmA7XG5cbmNvbnN0IE5vdGlmaWNhdGlvblBhZ2UgPSAoKSA9PiB7XG4gIGNvbnN0IFtzZWxlY3RlZFN0YXR1cywgc2V0U2VsZWN0ZWRTdGF0dXNdID0gdXNlU3RhdGUoXCJQQVJUSUNJUEFOVFNcIik7XG4gIGNvbnN0IFttZXNzYWdlVGV4dCwgc2V0TWVzc2FnZVRleHRdID0gdXNlU3RhdGUoSW52aXRhdGlvbl90b19Wb2x1bnRlZXJfQnJpZWZpbmdfTWVldGluZyk7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2NvbmZpcm1WaXNpYmxlLCBzZXRDb25maXJtVmlzaWJsZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtmaW5hbENvbmZpcm1WaXNpYmxlLCBzZXRGaW5hbENvbmZpcm1WaXNpYmxlXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3NlbmRUeXBlLCBzZXRTZW5kVHlwZV0gPSB1c2VTdGF0ZShcIlwiKTtcblxuICBjb25zdCB7IGF1dGggfSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZSk7XG4gIGNvbnN0IHsgdXNlcnMgfSA9IGF1dGg7XG5cbiAgY29uc3QgdXNlclN0YXR1c2VzID0gW1wiUEFSVElDSVBBTlRTXCIsXCJTSE9SVExJU1RcIiwgXCJJTlRFUlZJRVdcIiwgXCJSRVNFUlZFXCIsIFwiRkFJTEVEXCIsIFwiUkVTSUdOQVRJT05cIiwgXCJESVNRVUFMSUZJQ0FUSU9OXCIsXCJSRUdJU1RFUlwiXTtcblxuICBjb25zdCBzaG93Q29uZmlybURpYWxvZyA9ICh0eXBlOiBcInVzZXJcIiB8IFwic3RhdHVzXCIpID0+IHtcbiAgICBpZiAoIW1lc3NhZ2VUZXh0KSB7XG4gICAgICByZXR1cm4gYW50ZE1lc3NhZ2Uud2FybmluZyhcIlBsZWFzZSBlbnRlciBhIG1lc3NhZ2UgYmVmb3JlIHNlbmRpbmcuXCIpO1xuICAgIH1cbiAgICBzZXRTZW5kVHlwZSh0eXBlKTtcbiAgICBzZXRDb25maXJtVmlzaWJsZSh0cnVlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVGaXJzdENvbmZpcm0gPSAoKSA9PiB7XG4gICAgc2V0Q29uZmlybVZpc2libGUoZmFsc2UpO1xuICAgIHNldEZpbmFsQ29uZmlybVZpc2libGUodHJ1ZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ29uZmlybVNlbmQgPSBhc3luYyAoKSA9PiB7XG4gICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICBzZXRGaW5hbENvbmZpcm1WaXNpYmxlKGZhbHNlKTtcblxuICAgIHRyeSB7XG4gICAgICBpZiAoc2VuZFR5cGUgPT09IFwidXNlclwiKSB7XG4gICAgICAgIGF3YWl0IG5vdGlmeVVzZXJUZWxlZ3JhbVNlcnZpY2UodXNlcnMuaWQsIG1lc3NhZ2VUZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IG5vdGlmeVVzZXJCeVN0YXR1cyhzZWxlY3RlZFN0YXR1cywgbWVzc2FnZVRleHQpO1xuICAgICAgfVxuICAgICAgYW50ZE1lc3NhZ2Uuc3VjY2VzcyhcIk1lc3NhZ2Uocykgc2VudCBzdWNjZXNzZnVsbHkhXCIpO1xuICAgICAgc2V0TWVzc2FnZVRleHQoSW52aXRhdGlvbl90b19Wb2x1bnRlZXJfQnJpZWZpbmdfTWVldGluZyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGFudGRNZXNzYWdlLmVycm9yKFwiRmFpbGVkIHRvIHNlbmQgbWVzc2FnZShzKSFcIik7XG4gICAgfVxuICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBwYWRkaW5nOiAyMCB9fT5cbiAgICAgIDxoMj5TZW5kIE5vdGlmaWNhdGlvbnM8L2gyPlxuICAgICAgPGRpdiBzdHlsZT17eyBtYXJnaW5Cb3R0b206IDIwIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzE2LDE2XX0+XG4gICAgICAgICAgPENvbCBzcGFuPXsxNn0gbGc9ezI0fT5cbiAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBVc2VyIFN0YXR1c1wiXG4gICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRTdGF0dXN9XG4gICAgICAgICAgICBvbkNoYW5nZT17c2V0U2VsZWN0ZWRTdGF0dXN9XG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3VzZXJTdGF0dXNlcy5tYXAoKHN0YXR1cykgPT4gKFxuICAgICAgICAgICAgICA8T3B0aW9uIGtleT17c3RhdHVzfSB2YWx1ZT17c3RhdHVzfT5cbiAgICAgICAgICAgICAgICB7c3RhdHVzfVxuICAgICAgICAgICAgICA8L09wdGlvbj5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvU2VsZWN0PlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTZ9IGxnPXsyNH0+XG4gICAgICAgICAgPElucHV0LlRleHRBcmVhXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIE1lc3NhZ2VcIlxuICAgICAgICAgICAgdmFsdWU9e21lc3NhZ2VUZXh0fVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRNZXNzYWdlVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICByb3dzPXsyMH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTZ9IGxnPXsyNH0+XG4gICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IHNob3dDb25maXJtRGlhbG9nKFwic3RhdHVzXCIpfSBsb2FkaW5nPXtsb2FkaW5nfT5cbiAgICAgICAgICAgIFNlbmQgYnkgU3RhdHVzXG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9kaXY+XG4gICAgICA8TW9kYWxcbiAgICAgICAgdGl0bGU9XCJDb25maXJtIFNlbmRpbmcgTWVzc2FnZVwiXG4gICAgICAgIHZpc2libGU9e2NvbmZpcm1WaXNpYmxlfVxuICAgICAgICBvbk9rPXtoYW5kbGVGaXJzdENvbmZpcm19XG4gICAgICAgIG9uQ2FuY2VsPXsoKSA9PiBzZXRDb25maXJtVmlzaWJsZShmYWxzZSl9XG4gICAgICAgIG9rVGV4dD1cIlByb2NlZWRcIlxuICAgICAgICBjYW5jZWxUZXh0PVwiQ2FuY2VsXCJcbiAgICAgID5cbiAgICAgICAgPENvbD5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gc2VuZCB0aGlzIG1lc3NhZ2U/PC9Db2w+XG4gICAgICAgIDxwPlxuICAgICAgICAgIDxzdHJvbmc+TWVzc2FnZTo8L3N0cm9uZz4ge21lc3NhZ2VUZXh0fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxwPlxuICAgICAgICAgIDxzdHJvbmc+VXNlciBTdGF0dXM6PC9zdHJvbmc+IHtzZWxlY3RlZFN0YXR1c31cbiAgICAgICAgPC9wPlxuICAgICAgPC9Nb2RhbD5cbiAgICAgIDxNb2RhbFxuICAgICAgICB0aXRsZT1cIkZpbmFsIENvbmZpcm1hdGlvblwiXG4gICAgICAgIHZpc2libGU9e2ZpbmFsQ29uZmlybVZpc2libGV9XG4gICAgICAgIG9uT2s9e2hhbmRsZUNvbmZpcm1TZW5kfVxuICAgICAgICBvbkNhbmNlbD17KCkgPT4gc2V0RmluYWxDb25maXJtVmlzaWJsZShmYWxzZSl9XG4gICAgICAgIG9rVGV4dD1cIlllcywgU2VuZFwiXG4gICAgICAgIGNhbmNlbFRleHQ9XCJDYW5jZWxcIlxuICAgICAgPlxuICAgICAgICA8cD5UaGlzIGlzIHlvdXIgZmluYWwgY29uZmlybWF0aW9uLiBEbyB5b3Ugd2FudCB0byBwcm9jZWVkIHdpdGggc2VuZGluZyB0aGUgbWVzc2FnZT88L3A+XG4gICAgICA8L01vZGFsPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTm90aWZpY2F0aW9uUGFnZTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IE9jY3VwYXRpb24gfSBmcm9tICdAL3NoYXJlZC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZU9jY3VwYXRpb25BY3Rpb24sIG9jY3VwYXRpb25EZXRhaWxBY3Rpb24sIHVwZGF0ZU9jY3VwYXRpb25BY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9vY2N1cGF0aW9uL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IFRleHRBcmVhIGZyb20gJ2FudGQvZXMvaW5wdXQvVGV4dEFyZWEnO1xuXG5jb25zdCBOZXdFZGl0T2NjdXBhdGlvblBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyBvY2N1cGF0aW9uLCByZWdpc3RlckVycm9yTWVzc2FnZSwgb2NjdXBhdGlvblVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5vY2N1cGF0aW9uXG4gICk7XG4gIGNvbnN0IFtmb3JtXSA9IEZvcm0udXNlRm9ybSgpO1xuXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgaWQgPSBzZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuXG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAvLyDwn5GJIEZldGNoIGRhdGEgd2hlbiBlZGl0aW5nIG9yIHJlc2V0IGZvcm0gd2hlbiBhZGRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKG9jY3VwYXRpb25EZXRhaWxBY3Rpb24oTnVtYmVyKGlkKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gZmllbGRzIHdoZW4gYWRkaW5nIGEgbmV3IGl0ZW1cbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgaWQsIGZvcm1dKTtcblxuICAvLyDwn5GJIFBvcHVsYXRlIGZvcm0gd2l0aCBmZXRjaGVkIGRhdGFcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQgJiYgb2NjdXBhdGlvbikge1xuICAgICAgZm9ybS5zZXRGaWVsZHNWYWx1ZSh7XG4gICAgICAgIG5hbWU6IG9jY3VwYXRpb24ubmFtZSB8fCAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IG9jY3VwYXRpb24uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtvY2N1cGF0aW9uLCBmb3JtLCBpZF0pO1xuXG4gIC8vIPCfkYkgU2hvdyBzdWNjZXNzIG9yIGVycm9yIGFsZXJ0c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghb2NjdXBhdGlvblVwZGF0ZVBlbmRpbmcgJiYgaXNDbGljaykge1xuICAgICAgaWYgKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIG1lc3NhZ2UuZXJyb3IocmVnaXN0ZXJFcnJvck1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGlkID8gJ1VwZGF0ZWQgc3VjY2Vzc2Z1bGx5IScgOiAnQ3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgIG5hdmlnYXRlKCcvb2NjdXBhdGlvbnMnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtvY2N1cGF0aW9uVXBkYXRlUGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGlkLCBpc0NsaWNrLCBuYXZpZ2F0ZV0pO1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWl0XG4gIGNvbnN0IG9uRmluaXNoID0gKHZhbHVlczogT2NjdXBhdGlvbikgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlT2NjdXBhdGlvbkFjdGlvbih7IGlkOiBOdW1iZXIoaWQpLCBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaChjcmVhdGVPY2N1cGF0aW9uQWN0aW9uKHsgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBhZnRlciBzdWNjZXNzZnVsIGNyZWF0aW9uXG4gICAgfVxuICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPntpZCA/ICfhnoDhn4LhnpThn5Lhnprhn4LhnpjhnrvhnoHhnprhnpThnponIDogJ+GelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuOGemOGeu+GegeGemuGelOGemid9PC9oMj5cbiAgICAgIDxGb3JtIGZvcm09e2Zvcm19IGxheW91dD1cInZlcnRpY2FsXCIgb25GaW5pc2g9e29uRmluaXNofSBzdHlsZT17eyBtYXhXaWR0aDogJzEwMCUnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeiOGfkuGemOGfhOGfh1wiIG5hbWU9XCJuYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgbmFtZScgfV19PlxuICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemVwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8VGV4dEFyZWEgcm93cz17M30gLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGJsb2NrIGh0bWxUeXBlPVwic3VibWl0XCIgbG9hZGluZz17b2NjdXBhdGlvblVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy9vY2N1cGF0aW9ucycpfT5cbiAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L0Zvcm0+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOZXdFZGl0T2NjdXBhdGlvblBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNwYWNlLCBUYWJsZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMb2FkaW5nRGlhbG9nIGZyb20gJy4uLy4uLy4uL2NvbnRhaW5lci9kaWFsb2dzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IERlbGV0ZU91dGxpbmVkLCBFZGl0T3V0bGluZWQsIFBsdXNPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IGRlbGV0ZU9jY3VwYXRpb25BY3Rpb24sIG9jY3VwYXRpb25EZXRhaWxBY3Rpb24sIGZldGNoT2NjdXBhdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9vY2N1cGF0aW9uL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmNvbnN0IE9jY3VwYXRpb25MaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IHsgb2NjdXBhdGlvbnMsIG9jY3VwYXRpb25zUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLm9jY3VwYXRpb24pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hPY2N1cGF0aW9ucygpKTtcbiAgfSwgW2Rpc3BhdGNoXSk7XG5cbiAgY29uc3QgaGFuZGxlRWRpdCA9IChpZDogYW55KSA9PiB7XG4gICAgZGlzcGF0Y2gob2NjdXBhdGlvbkRldGFpbEFjdGlvbihpZCkpO1xuICAgIG5hdmlnYXRlKGAvb2NjdXBhdGlvbnMvZm9ybT9pZD0ke2lkfWApO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZSA9IChpZDogYW55KSA9PiB7XG4gICAgU3dhbC5maXJlKHtcbiAgICAgIHRpdGxlOiAnQXJlIHlvdSBzdXJlPycsXG4gICAgICB0ZXh0OiAnWW91IHdvblxcJ3QgYmUgYWJsZSB0byByZXZlcnQgdGhpcyEnLFxuICAgICAgaWNvbjogJ3dhcm5pbmcnLFxuICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogZmFsc2UsXG4gICAgICBodG1sOiBgXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxMHB4OyBtYXJnaW4tdG9wOiAyMHB4O1wiPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjb25maXJtLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY29uZmlybSBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNkMzM7XCI+RGVsZXRlPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNhbmNlbC1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNhbmNlbCBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMzMDg1ZDY7XCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYCxcbiAgICAgIGRpZE9wZW46ICgpID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlybUJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NvbmZpcm0tZGVsZXRlJyk7XG4gICAgICAgIGNvbnN0IGNhbmNlbEJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NhbmNlbC1kZWxldGUnKTtcblxuICAgICAgICBjb25maXJtQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBkaXNwYXRjaChkZWxldGVPY2N1cGF0aW9uQWN0aW9uKGlkKSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBTd2FsLmZpcmUoJ0RlbGV0ZWQhJywgJ1RoZSBpdGVtIGhhcyBiZWVuIGRlbGV0ZWQuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKGZldGNoT2NjdXBhdGlvbnMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAob2NjdXBhdGlvbnMgfHwgW10pLmZpbHRlcigoaXQpID0+XG4gICAgaXQubmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IG92ZXJmbG93WDogJ2F1dG8nIH19PlxuICAgICAgPGgyPuGelOGeieGfkuGeh+GeuOGemOGeu+GegeGemuGelOGemjwvaDI+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgcGFkZGluZzogJzEwcHgnLFxuICAgICAgICAgIGJhY2tncm91bmQ6ICcjZjVmNWY1JyxcbiAgICAgICAgICBtYXJnaW5Cb3R0b206ICcxMHB4JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ3dyYXAnLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8U3BhY2Ugd3JhcD5cbiAgICAgICAgICA8c3Bhbj7hnp/hnprhnrvhnpQ6IHtmaWx0ZXJlZERhdGE/Lmxlbmd0aCB8fCAwfTwvc3Bhbj5cbiAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi4Z6f4Z+S4Z6c4Z+C4Z6E4Z6a4Z6ALi4uXCJcbiAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiAyMDAgfX1cbiAgICAgICAgICAgIHZhbHVlPXtzZWFyY2hUZXh0fVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRTZWFyY2hUZXh0KGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlU2VhcmNofSB0eXBlPVwicHJpbWFyeVwiPuGeheGemOGfkuGemuGfhOGfhzwvQnV0dG9uPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlUmVzZXR9PuGegOGfhuGejuGej+Gfi+GeoeGevuGehOGenOGet+GeiTwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgICA8U3BhY2Ugd3JhcD5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxQbHVzT3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoYC9vY2N1cGF0aW9ucy9mb3JtYCl9PuGelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8VGFibGVcbiAgICAgICAgcm93U2VsZWN0aW9uPXt7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBvbkNoYW5nZTogKF8sIHNlbGVjdGVkUm93cykgPT4gc2V0U2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93cyksXG4gICAgICAgIH19XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlcmVkRGF0YS5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0LmlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICAgICAgbmFtZTogaXQubmFtZSxcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7IHBhZ2VTaXplOiAxMCwgc2hvd1NpemVDaGFuZ2VyOiB0cnVlIH19XG4gICAgICAgIHNjcm9sbD17eyB4OiAnbWF4LWNvbnRlbnQnIH19XG4gICAgICAvPlxuICAgICAgPExvYWRpbmdEaWFsb2cgdmlzaWJsZT17b2NjdXBhdGlvbnNQZW5kaW5nfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgT2NjdXBhdGlvbkxpc3Q7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZvcm0sIElucHV0LCBCdXR0b24sIFJvdywgQ29sLCBtZXNzYWdlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBPZmZlclByb2dyYW0gfSBmcm9tICdAL3NoYXJlZC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZU9mZmVyUHJvZ3JhbUFjdGlvbiwgb2ZmZXJQcm9ncmFtRGV0YWlsQWN0aW9uLCB1cGRhdGVPZmZlclByb2dyYW1BY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9vZmZlcl9wcm9ncmFtL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IFRleHRBcmVhIGZyb20gJ2FudGQvZXMvaW5wdXQvVGV4dEFyZWEnO1xuXG5jb25zdCBOZXdFZGl0T2ZmZXJQcm9ncmFtUGFnZTogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCB7IG9mZmVyUHJvZ3JhbSwgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIG9mZmVyUHJvZ3JhbVVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5vZmZlclByb2dyYW1cbiAgKTtcbiAgY29uc3QgW2Zvcm1dID0gRm9ybS51c2VGb3JtKCk7XG5cbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpO1xuICBjb25zdCBpZCA9IHNlYXJjaFBhcmFtcy5nZXQoJ2lkJyk7XG5cbiAgY29uc3QgW2lzQ2xpY2ssIHNldElzQ2xpY2tdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIC8vIPCfkYkgRmV0Y2ggZGF0YSB3aGVuIGVkaXRpbmcgb3IgcmVzZXQgZm9ybSB3aGVuIGFkZGluZ1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2gob2ZmZXJQcm9ncmFtRGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGZpZWxkcyB3aGVuIGFkZGluZyBhIG5ldyBpdGVtXG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkLCBmb3JtXSk7XG5cbiAgLy8g8J+RiSBQb3B1bGF0ZSBmb3JtIHdpdGggZmV0Y2hlZCBkYXRhXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkICYmIG9mZmVyUHJvZ3JhbSkge1xuICAgICAgZm9ybS5zZXRGaWVsZHNWYWx1ZSh7XG4gICAgICAgIG5hbWU6IG9mZmVyUHJvZ3JhbS5uYW1lIHx8ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogb2ZmZXJQcm9ncmFtLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbb2ZmZXJQcm9ncmFtLCBmb3JtLCBpZF0pO1xuXG4gIC8vIPCfkYkgU2hvdyBzdWNjZXNzIG9yIGVycm9yIGFsZXJ0c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghb2ZmZXJQcm9ncmFtVXBkYXRlUGVuZGluZyAmJiBpc0NsaWNrKSB7XG4gICAgICBpZiAocmVnaXN0ZXJFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgbWVzc2FnZS5lcnJvcihyZWdpc3RlckVycm9yTWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoaWQgPyAnVXBkYXRlZCBzdWNjZXNzZnVsbHkhJyA6ICdDcmVhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgbmF2aWdhdGUoJy9vZmZlci1wcm9ncmFtcycpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW29mZmVyUHJvZ3JhbVVwZGF0ZVBlbmRpbmcsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBpZCwgaXNDbGljaywgbmF2aWdhdGVdKTtcblxuICAvLyDwn5GJIEhhbmRsZSBmb3JtIHN1Ym1pdFxuICBjb25zdCBvbkZpbmlzaCA9ICh2YWx1ZXM6IE9mZmVyUHJvZ3JhbSkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlT2ZmZXJQcm9ncmFtQWN0aW9uKHsgaWQ6IE51bWJlcihpZCksIGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKGNyZWF0ZU9mZmVyUHJvZ3JhbUFjdGlvbih7IGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gYWZ0ZXIgc3VjY2Vzc2Z1bCBjcmVhdGlvblxuICAgIH1cbiAgICBzZXRJc0NsaWNrKHRydWUpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxoMj57aWQgPyAn4Z6A4Z+C4Z6U4Z+S4Z6a4Z+C4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z644Z6S4Z644Z6V4Z+S4Z6K4Z6b4Z+L4Z6H4Z684Z6T4oCLJyA6ICfhnpThnpPhn5LhnpDhn4LhnpjhnpDhn5LhnpjhnrjhnoDhnpjhn5LhnpjhnpzhnrjhnpLhnrjhnpXhn5Lhnorhnpvhn4vhnofhnrzhnpPigIsnfTwvaDI+XG4gICAgICA8Rm9ybSBmb3JtPXtmb3JtfSBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiIG9uRmluaXNoPXtvbkZpbmlzaH0gc3R5bGU9e3sgbWF4V2lkdGg6ICcxMDAlJywgbWFyZ2luOiAnMCBhdXRvJyB9fT5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnojhn5Lhnpjhn4Thn4dcIiBuYW1lPVwibmFtZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIG5hbWUnIH1dfT5cbiAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnpThnprhnrfhnpnhnrbhnplcIiBuYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgPFRleHRBcmVhIHJvd3M9ezN9IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gdHlwZT1cInByaW1hcnlcIiBibG9jayBodG1sVHlwZT1cInN1Ym1pdFwiIGxvYWRpbmc9e29mZmVyUHJvZ3JhbVVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy9vZmZlci1wcm9ncmFtcycpfT5cbiAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L0Zvcm0+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOZXdFZGl0T2ZmZXJQcm9ncmFtUGFnZTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uLCBJbnB1dCwgU3BhY2UsIFRhYmxlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExvYWRpbmdEaWFsb2cgZnJvbSAnLi4vLi4vLi4vY29udGFpbmVyL2RpYWxvZ3MvbG9hZGluZy1kaWFsb2cnO1xuaW1wb3J0IHsgRGVsZXRlT3V0bGluZWQsIEVkaXRPdXRsaW5lZCwgUGx1c091dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0IHsgZGVsZXRlT2ZmZXJQcm9ncmFtQWN0aW9uLCBvZmZlclByb2dyYW1EZXRhaWxBY3Rpb24sIGZldGNoT2ZmZXJQcm9ncmFtcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL29mZmVyX3Byb2dyYW0vY29yZS9hY3Rpb25zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuY29uc3QgT2ZmZXJQcm9ncmFtTGlzdCA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IG9mZmVyUHJvZ3JhbXMsIG9mZmVyUHJvZ3JhbXNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUub2ZmZXJQcm9ncmFtKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoT2ZmZXJQcm9ncmFtcygpKTtcbiAgfSwgW2Rpc3BhdGNoXSk7XG5cbiAgY29uc3QgaGFuZGxlRWRpdCA9IChpZDogYW55KSA9PiB7XG4gICAgZGlzcGF0Y2gob2ZmZXJQcm9ncmFtRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC9vZmZlci1wcm9ncmFtcy9mb3JtP2lkPSR7aWR9YCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlID0gKGlkOiBhbnkpID0+IHtcbiAgICBTd2FsLmZpcmUoe1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmU/JyxcbiAgICAgIHRleHQ6ICdZb3Ugd29uXFwndCBiZSBhYmxlIHRvIHJldmVydCB0aGlzIScsXG4gICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgIGh0bWw6IGBcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNvbmZpcm0tZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jb25maXJtIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2QzMztcIj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY2FuY2VsLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY2FuY2VsIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzMwODVkNjtcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgLFxuICAgICAgZGlkT3BlbjogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maXJtQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY29uZmlybS1kZWxldGUnKTtcbiAgICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY2FuY2VsLWRlbGV0ZScpO1xuXG4gICAgICAgIGNvbmZpcm1CdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKGRlbGV0ZU9mZmVyUHJvZ3JhbUFjdGlvbihpZCkpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgU3dhbC5maXJlKCdEZWxldGVkIScsICdUaGUgaXRlbSBoYXMgYmVlbiBkZWxldGVkLicsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBkaXNwYXRjaChmZXRjaE9mZmVyUHJvZ3JhbXMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAob2ZmZXJQcm9ncmFtcyB8fCBbXSkuZmlsdGVyKChpdCkgPT5cbiAgICBpdC5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+4Z6U4Z6J4Z+S4Z6H4Z644Z6A4Z6Y4Z+S4Z6Y4Z6c4Z644Z6S4Z644Z6V4Z+S4Z6K4Z6b4Z+L4Z6H4Z684Z6T4oCLPC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzEwcHgnLFxuICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxzcGFuPuGen+GemuGeu+GelDoge2ZpbHRlcmVkRGF0YT8ubGVuZ3RoIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVTZWFyY2h9IHR5cGU9XCJwcmltYXJ5XCI+4Z6F4Z6Y4Z+S4Z6a4Z+E4Z+HPC9CdXR0b24+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVSZXNldH0+4Z6A4Z+G4Z6O4Z6P4Z+L4Z6h4Z6+4Z6E4Z6c4Z634Z6JPC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PFBsdXNPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZShgL29mZmVyLXByb2dyYW1zL2Zvcm1gKX0+4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z64PC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxUYWJsZVxuICAgICAgICByb3dTZWxlY3Rpb249e3tcbiAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgIG9uQ2hhbmdlOiAoXywgc2VsZWN0ZWRSb3dzKSA9PiBzZXRTZWxlY3RlZFJvd3Moc2VsZWN0ZWRSb3dzKSxcbiAgICAgICAgfX1cbiAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgZGF0YVNvdXJjZT17ZmlsdGVyZWREYXRhLm1hcCgoaXQsIGluZGV4KSA9PiAoe1xuICAgICAgICAgIGtleTogaXQuaWQsXG4gICAgICAgICAgaW5kZXg6IGluZGV4ICsgMSxcbiAgICAgICAgICBuYW1lOiBpdC5uYW1lLFxuICAgICAgICAgIC4uLml0LFxuICAgICAgICB9KSl9XG4gICAgICAgIHBhZ2luYXRpb249e3sgcGFnZVNpemU6IDEwLCBzaG93U2l6ZUNoYW5nZXI6IHRydWUgfX1cbiAgICAgICAgc2Nyb2xsPXt7IHg6ICdtYXgtY29udGVudCcgfX1cbiAgICAgIC8+XG4gICAgICA8TG9hZGluZ0RpYWxvZyB2aXNpYmxlPXtvZmZlclByb2dyYW1zUGVuZGluZ30gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9mZmVyUHJvZ3JhbUxpc3Q7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZvcm0sIElucHV0LCBCdXR0b24sIFJvdywgQ29sLCBtZXNzYWdlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBPcHBvcnR1bml0eVNvdXJjZSB9IGZyb20gJ0Avc2hhcmVkL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlT3Bwb3J0dW5pdHlTb3VyY2VBY3Rpb24sIG9wcG9ydHVuaXR5U291cmNlRGV0YWlsQWN0aW9uLCB1cGRhdGVPcHBvcnR1bml0eVNvdXJjZUFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL29wcG9ydHVuaXR5X3NvdXJjZS9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBUZXh0QXJlYSBmcm9tICdhbnRkL2VzL2lucHV0L1RleHRBcmVhJztcblxuY29uc3QgTmV3RWRpdE9wcG9ydHVuaXR5U291cmNlUGFnZTogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCB7IG9wcG9ydHVuaXR5U291cmNlLCByZWdpc3RlckVycm9yTWVzc2FnZSwgb3Bwb3J0dW5pdHlTb3VyY2VVcGRhdGVQZW5kaW5nIH0gPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUub3Bwb3J0dW5pdHlTb3VyY2VcbiAgKTtcbiAgY29uc3QgW2Zvcm1dID0gRm9ybS51c2VGb3JtKCk7XG5cbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpO1xuICBjb25zdCBpZCA9IHNlYXJjaFBhcmFtcy5nZXQoJ2lkJyk7XG5cbiAgY29uc3QgW2lzQ2xpY2ssIHNldElzQ2xpY2tdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIC8vIPCfkYkgRmV0Y2ggZGF0YSB3aGVuIGVkaXRpbmcgb3IgcmVzZXQgZm9ybSB3aGVuIGFkZGluZ1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2gob3Bwb3J0dW5pdHlTb3VyY2VEZXRhaWxBY3Rpb24oTnVtYmVyKGlkKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gZmllbGRzIHdoZW4gYWRkaW5nIGEgbmV3IGl0ZW1cbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgaWQsIGZvcm1dKTtcblxuICAvLyDwn5GJIFBvcHVsYXRlIGZvcm0gd2l0aCBmZXRjaGVkIGRhdGFcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQgJiYgb3Bwb3J0dW5pdHlTb3VyY2UpIHtcbiAgICAgIGZvcm0uc2V0RmllbGRzVmFsdWUoe1xuICAgICAgICBuYW1lOiBvcHBvcnR1bml0eVNvdXJjZS5uYW1lIHx8ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogb3Bwb3J0dW5pdHlTb3VyY2UuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtvcHBvcnR1bml0eVNvdXJjZSwgZm9ybSwgaWRdKTtcblxuICAvLyDwn5GJIFNob3cgc3VjY2VzcyBvciBlcnJvciBhbGVydHNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW9wcG9ydHVuaXR5U291cmNlVXBkYXRlUGVuZGluZyAmJiBpc0NsaWNrKSB7XG4gICAgICBpZiAocmVnaXN0ZXJFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgbWVzc2FnZS5lcnJvcihyZWdpc3RlckVycm9yTWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoaWQgPyAnVXBkYXRlZCBzdWNjZXNzZnVsbHkhJyA6ICdDcmVhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgbmF2aWdhdGUoJy9vcHBvcnR1bml0eS1zb3VyY2VzJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbb3Bwb3J0dW5pdHlTb3VyY2VVcGRhdGVQZW5kaW5nLCByZWdpc3RlckVycm9yTWVzc2FnZSwgaWQsIGlzQ2xpY2ssIG5hdmlnYXRlXSk7XG5cbiAgLy8g8J+RiSBIYW5kbGUgZm9ybSBzdWJtaXRcbiAgY29uc3Qgb25GaW5pc2ggPSAodmFsdWVzOiBPcHBvcnR1bml0eVNvdXJjZSkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlT3Bwb3J0dW5pdHlTb3VyY2VBY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlT3Bwb3J0dW5pdHlTb3VyY2VBY3Rpb24oeyBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGFmdGVyIHN1Y2Nlc3NmdWwgY3JlYXRpb25cbiAgICB9XG4gICAgc2V0SXNDbGljayh0cnVlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDI+e2lkID8gJ+GegOGfguGelOGfkuGemuGfguGelOGfkuGemuGel+GeluGeseGegOGetuGenycgOiAn4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z644Z6U4Z+S4Z6a4Z6X4Z6W4Z6x4Z6A4Z624Z6fJ308L2gyPlxuICAgICAgPEZvcm0gZm9ybT17Zm9ybX0gbGF5b3V0PVwidmVydGljYWxcIiBvbkZpbmlzaD17b25GaW5pc2h9IHN0eWxlPXt7IG1heFdpZHRoOiAnMTAwJScsIG1hcmdpbjogJzAgYXV0bycgfX0+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6I4Z+S4Z6Y4Z+E4Z+HXCIgbmFtZT1cIm5hbWVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSBuYW1lJyB9XX0+XG4gICAgICAgICAgICAgIDxJbnB1dCAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6U4Z6a4Z634Z6Z4Z624Z6ZXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxUZXh0QXJlYSByb3dzPXszfSAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXtvcHBvcnR1bml0eVNvdXJjZVVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy9vcHBvcnR1bml0eS1zb3VyY2VzJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRPcHBvcnR1bml0eVNvdXJjZVBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNwYWNlLCBUYWJsZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMb2FkaW5nRGlhbG9nIGZyb20gJy4uLy4uLy4uL2NvbnRhaW5lci9kaWFsb2dzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IERlbGV0ZU91dGxpbmVkLCBFZGl0T3V0bGluZWQsIFBsdXNPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IGRlbGV0ZU9wcG9ydHVuaXR5U291cmNlQWN0aW9uLCBvcHBvcnR1bml0eVNvdXJjZURldGFpbEFjdGlvbiwgZmV0Y2hPcHBvcnR1bml0eVNvdXJjZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9vcHBvcnR1bml0eV9zb3VyY2UvY29yZS9hY3Rpb25zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuY29uc3QgT3Bwb3J0dW5pdHlTb3VyY2VMaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IHsgb3Bwb3J0dW5pdHlTb3VyY2VzLCBvcHBvcnR1bml0eVNvdXJjZXNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUub3Bwb3J0dW5pdHlTb3VyY2UpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hPcHBvcnR1bml0eVNvdXJjZXMoKSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKG9wcG9ydHVuaXR5U291cmNlRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC9vcHBvcnR1bml0eS1zb3VyY2VzL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlT3Bwb3J0dW5pdHlTb3VyY2VBY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hPcHBvcnR1bml0eVNvdXJjZXMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAob3Bwb3J0dW5pdHlTb3VyY2VzIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5LhnofhnrjhnpThn5LhnprhnpfhnpbhnrHhnoDhnrbhnp88L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvb3Bwb3J0dW5pdHktc291cmNlcy9mb3JtYCl9PuGelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8VGFibGVcbiAgICAgICAgcm93U2VsZWN0aW9uPXt7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBvbkNoYW5nZTogKF8sIHNlbGVjdGVkUm93cykgPT4gc2V0U2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93cyksXG4gICAgICAgIH19XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlcmVkRGF0YS5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0LmlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICAgICAgbmFtZTogaXQubmFtZSxcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7IHBhZ2VTaXplOiAxMCwgc2hvd1NpemVDaGFuZ2VyOiB0cnVlIH19XG4gICAgICAgIHNjcm9sbD17eyB4OiAnbWF4LWNvbnRlbnQnIH19XG4gICAgICAvPlxuICAgICAgPExvYWRpbmdEaWFsb2cgdmlzaWJsZT17b3Bwb3J0dW5pdHlTb3VyY2VzUGVuZGluZ30gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9wcG9ydHVuaXR5U291cmNlTGlzdDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFByb3ZpbmNlIH0gZnJvbSAnQC9zaGFyZWQvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVQcm92aW5jZUFjdGlvbiwgcHJvdmluY2VEZXRhaWxBY3Rpb24sIHVwZGF0ZVByb3ZpbmNlQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcHJvdmluY2UvY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgVGV4dEFyZWEgZnJvbSAnYW50ZC9lcy9pbnB1dC9UZXh0QXJlYSc7XG5cbmNvbnN0IE5ld0VkaXRQcm92aW5jZVBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyBwcm92aW5jZSwgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIHByb3ZpbmNlVXBkYXRlUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnByb3ZpbmNlXG4gICk7XG4gIGNvbnN0IFtmb3JtXSA9IEZvcm0udXNlRm9ybSgpO1xuXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgaWQgPSBzZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuXG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAvLyDwn5GJIEZldGNoIGRhdGEgd2hlbiBlZGl0aW5nIG9yIHJlc2V0IGZvcm0gd2hlbiBhZGRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHByb3ZpbmNlRGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGZpZWxkcyB3aGVuIGFkZGluZyBhIG5ldyBpdGVtXG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkLCBmb3JtXSk7XG5cbiAgLy8g8J+RiSBQb3B1bGF0ZSBmb3JtIHdpdGggZmV0Y2hlZCBkYXRhXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkICYmIHByb3ZpbmNlKSB7XG4gICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHtcbiAgICAgICAgbmFtZTogcHJvdmluY2UubmFtZSB8fCAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IHByb3ZpbmNlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbcHJvdmluY2UsIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFwcm92aW5jZVVwZGF0ZVBlbmRpbmcgJiYgaXNDbGljaykge1xuICAgICAgaWYgKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIG1lc3NhZ2UuZXJyb3IocmVnaXN0ZXJFcnJvck1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGlkID8gJ1VwZGF0ZWQgc3VjY2Vzc2Z1bGx5IScgOiAnQ3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgIG5hdmlnYXRlKCcvcHJvdmluY2VzJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbcHJvdmluY2VVcGRhdGVQZW5kaW5nLCByZWdpc3RlckVycm9yTWVzc2FnZSwgaWQsIGlzQ2xpY2ssIG5hdmlnYXRlXSk7XG5cbiAgLy8g8J+RiSBIYW5kbGUgZm9ybSBzdWJtaXRcbiAgY29uc3Qgb25GaW5pc2ggPSAodmFsdWVzOiBQcm92aW5jZSkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlUHJvdmluY2VBY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlUHJvdmluY2VBY3Rpb24oeyBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGFmdGVyIHN1Y2Nlc3NmdWwgY3JlYXRpb25cbiAgICB9XG4gICAgc2V0SXNDbGljayh0cnVlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDI+e2lkID8gJ+GegOGfguGelOGfkuGemuGfguGegeGfgeGej+GfkuGejycgOiAn4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z644Z6B4Z+B4Z6P4Z+S4Z6PJ308L2gyPlxuICAgICAgPEZvcm0gZm9ybT17Zm9ybX0gbGF5b3V0PVwidmVydGljYWxcIiBvbkZpbmlzaD17b25GaW5pc2h9IHN0eWxlPXt7IG1heFdpZHRoOiAnMTAwJScsIG1hcmdpbjogJzAgYXV0bycgfX0+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6I4Z+S4Z6Y4Z+E4Z+HXCIgbmFtZT1cIm5hbWVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSBuYW1lJyB9XX0+XG4gICAgICAgICAgICAgIDxJbnB1dCAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6U4Z6a4Z634Z6Z4Z624Z6ZXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxUZXh0QXJlYSByb3dzPXszfSAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXtwcm92aW5jZVVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy9wcm92aW5jZXMnKX0+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9Gb3JtPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmV3RWRpdFByb3ZpbmNlUGFnZTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uLCBJbnB1dCwgU3BhY2UsIFRhYmxlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExvYWRpbmdEaWFsb2cgZnJvbSAnLi4vLi4vLi4vY29udGFpbmVyL2RpYWxvZ3MvbG9hZGluZy1kaWFsb2cnO1xuaW1wb3J0IHsgRGVsZXRlT3V0bGluZWQsIEVkaXRPdXRsaW5lZCwgUGx1c091dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0IHsgZGVsZXRlUHJvdmluY2VBY3Rpb24sIHByb3ZpbmNlRGV0YWlsQWN0aW9uLCBmZXRjaFByb3ZpbmNlcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3Byb3ZpbmNlL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmNvbnN0IFByb3ZpbmNlTGlzdCA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IHByb3ZpbmNlcywgcHJvdmluY2VzUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnByb3ZpbmNlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoUHJvdmluY2VzKCkpO1xuICB9LCBbZGlzcGF0Y2hdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaChwcm92aW5jZURldGFpbEFjdGlvbihpZCkpO1xuICAgIG5hdmlnYXRlKGAvcHJvdmluY2VzL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlUHJvdmluY2VBY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hQcm92aW5jZXMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAocHJvdmluY2VzIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5LhnofhnrjhnoHhn4Hhno/hn5Lhno88L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvcHJvdmluY2VzL2Zvcm1gKX0+4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z64PC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxUYWJsZVxuICAgICAgICByb3dTZWxlY3Rpb249e3tcbiAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgIG9uQ2hhbmdlOiAoXywgc2VsZWN0ZWRSb3dzKSA9PiBzZXRTZWxlY3RlZFJvd3Moc2VsZWN0ZWRSb3dzKSxcbiAgICAgICAgfX1cbiAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgZGF0YVNvdXJjZT17ZmlsdGVyZWREYXRhLm1hcCgoaXQsIGluZGV4KSA9PiAoe1xuICAgICAgICAgIGtleTogaXQuaWQsXG4gICAgICAgICAgaW5kZXg6IGluZGV4ICsgMSxcbiAgICAgICAgICBuYW1lOiBpdC5uYW1lLFxuICAgICAgICAgIC4uLml0LFxuICAgICAgICB9KSl9XG4gICAgICAgIHBhZ2luYXRpb249e3sgcGFnZVNpemU6IDEwLCBzaG93U2l6ZUNoYW5nZXI6IHRydWUgfX1cbiAgICAgICAgc2Nyb2xsPXt7IHg6ICdtYXgtY29udGVudCcgfX1cbiAgICAgIC8+XG4gICAgICA8TG9hZGluZ0RpYWxvZyB2aXNpYmxlPXtwcm92aW5jZXNQZW5kaW5nfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgUHJvdmluY2VMaXN0O1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtLCBJbnB1dCwgQnV0dG9uLCBSb3csIENvbCwgbWVzc2FnZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgU2tpbGwgfSBmcm9tICdAL3NoYXJlZC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZVNraWxsQWN0aW9uLCBza2lsbERldGFpbEFjdGlvbiwgdXBkYXRlU2tpbGxBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9za2lsbC9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBUZXh0QXJlYSBmcm9tICdhbnRkL2VzL2lucHV0L1RleHRBcmVhJztcblxuY29uc3QgTmV3RWRpdFNraWxsUGFnZTogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCB7IHNraWxsLCByZWdpc3RlckVycm9yTWVzc2FnZSwgc2tpbGxVcGRhdGVQZW5kaW5nIH0gPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUuc2tpbGxcbiAgKTtcbiAgY29uc3QgW2Zvcm1dID0gRm9ybS51c2VGb3JtKCk7XG5cbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpO1xuICBjb25zdCBpZCA9IHNlYXJjaFBhcmFtcy5nZXQoJ2lkJyk7XG5cbiAgY29uc3QgW2lzQ2xpY2ssIHNldElzQ2xpY2tdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIC8vIPCfkYkgRmV0Y2ggZGF0YSB3aGVuIGVkaXRpbmcgb3IgcmVzZXQgZm9ybSB3aGVuIGFkZGluZ1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2goc2tpbGxEZXRhaWxBY3Rpb24oTnVtYmVyKGlkKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gZmllbGRzIHdoZW4gYWRkaW5nIGEgbmV3IGl0ZW1cbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgaWQsIGZvcm1dKTtcblxuICAvLyDwn5GJIFBvcHVsYXRlIGZvcm0gd2l0aCBmZXRjaGVkIGRhdGFcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQgJiYgc2tpbGwpIHtcbiAgICAgIGZvcm0uc2V0RmllbGRzVmFsdWUoe1xuICAgICAgICBuYW1lOiBza2lsbC5uYW1lIHx8ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogc2tpbGwuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtza2lsbCwgZm9ybSwgaWRdKTtcblxuICAvLyDwn5GJIFNob3cgc3VjY2VzcyBvciBlcnJvciBhbGVydHNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXNraWxsVXBkYXRlUGVuZGluZyAmJiBpc0NsaWNrKSB7XG4gICAgICBpZiAocmVnaXN0ZXJFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgbWVzc2FnZS5lcnJvcihyZWdpc3RlckVycm9yTWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoaWQgPyAnVXBkYXRlZCBzdWNjZXNzZnVsbHkhJyA6ICdDcmVhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgbmF2aWdhdGUoJy9za2lsbHMnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtza2lsbFVwZGF0ZVBlbmRpbmcsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBpZCwgaXNDbGljaywgbmF2aWdhdGVdKTtcblxuICAvLyDwn5GJIEhhbmRsZSBmb3JtIHN1Ym1pdFxuICBjb25zdCBvbkZpbmlzaCA9ICh2YWx1ZXM6IFNraWxsKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh1cGRhdGVTa2lsbEFjdGlvbih7IGlkOiBOdW1iZXIoaWQpLCBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaChjcmVhdGVTa2lsbEFjdGlvbih7IGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gYWZ0ZXIgc3VjY2Vzc2Z1bCBjcmVhdGlvblxuICAgIH1cbiAgICBzZXRJc0NsaWNrKHRydWUpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxoMj57aWQgPyAn4Z6A4Z+C4Z6U4Z+S4Z6a4Z+C4Z6H4Z+G4Z6T4Z624Z6JJyA6ICfhnpThnpPhn5LhnpDhn4LhnpjhnpDhn5Lhnpjhnrjhnofhn4bhnpPhnrbhnoknfTwvaDI+XG4gICAgICA8Rm9ybSBmb3JtPXtmb3JtfSBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiIG9uRmluaXNoPXtvbkZpbmlzaH0gc3R5bGU9e3sgbWF4V2lkdGg6ICcxMDAlJywgbWFyZ2luOiAnMCBhdXRvJyB9fT5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnojhn5Lhnpjhn4Thn4dcIiBuYW1lPVwibmFtZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIG5hbWUnIH1dfT5cbiAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnpThnprhnrfhnpnhnrbhnplcIiBuYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgPFRleHRBcmVhIHJvd3M9ezN9IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gdHlwZT1cInByaW1hcnlcIiBibG9jayBodG1sVHlwZT1cInN1Ym1pdFwiIGxvYWRpbmc9e3NraWxsVXBkYXRlUGVuZGluZ30+XG4gICAgICAgICAgICAgICAgU3VibWl0XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gaHRtbFR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZSgnL3NraWxscycpfT5cbiAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L0Zvcm0+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOZXdFZGl0U2tpbGxQYWdlO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIElucHV0LCBTcGFjZSwgVGFibGUgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTG9hZGluZ0RpYWxvZyBmcm9tICcuLi8uLi8uLi9jb250YWluZXIvZGlhbG9ncy9sb2FkaW5nLWRpYWxvZyc7XG5pbXBvcnQgeyBEZWxldGVPdXRsaW5lZCwgRWRpdE91dGxpbmVkLCBQbHVzT3V0bGluZWQgfSBmcm9tICdAYW50LWRlc2lnbi9pY29ucyc7XG5pbXBvcnQgeyBkZWxldGVTa2lsbEFjdGlvbiwgc2tpbGxEZXRhaWxBY3Rpb24sIGZldGNoU2tpbGxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvc2tpbGwvY29yZS9hY3Rpb25zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuY29uc3QgU2tpbGxMaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IHsgc2tpbGxzLCBza2lsbHNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUuc2tpbGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hTa2lsbHMoKSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKHNraWxsRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC9za2lsbHMvZm9ybT9pZD0ke2lkfWApO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZSA9IChpZDogYW55KSA9PiB7XG4gICAgU3dhbC5maXJlKHtcbiAgICAgIHRpdGxlOiAnQXJlIHlvdSBzdXJlPycsXG4gICAgICB0ZXh0OiAnWW91IHdvblxcJ3QgYmUgYWJsZSB0byByZXZlcnQgdGhpcyEnLFxuICAgICAgaWNvbjogJ3dhcm5pbmcnLFxuICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogZmFsc2UsXG4gICAgICBodG1sOiBgXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxMHB4OyBtYXJnaW4tdG9wOiAyMHB4O1wiPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjb25maXJtLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY29uZmlybSBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNkMzM7XCI+RGVsZXRlPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNhbmNlbC1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNhbmNlbCBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMzMDg1ZDY7XCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYCxcbiAgICAgIGRpZE9wZW46ICgpID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlybUJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NvbmZpcm0tZGVsZXRlJyk7XG4gICAgICAgIGNvbnN0IGNhbmNlbEJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NhbmNlbC1kZWxldGUnKTtcblxuICAgICAgICBjb25maXJtQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBkaXNwYXRjaChkZWxldGVTa2lsbEFjdGlvbihpZCkpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgU3dhbC5maXJlKCdEZWxldGVkIScsICdUaGUgaXRlbSBoYXMgYmVlbiBkZWxldGVkLicsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBkaXNwYXRjaChmZXRjaFNraWxscygpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNhbmNlbEJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoID0gKCkgPT4ge1xuICAgIC8vIFRyaWdnZXJzIHNlYXJjaCBieSBzZXR0aW5nIHN0YXRlXG4gICAgc2V0U2VhcmNoVGV4dChzZWFyY2hUZXh0LnRyaW0oKSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlUmVzZXQgPSAoKSA9PiB7XG4gICAgLy8gQ2xlYXJzIGlucHV0IGFuZCBzaG93cyBhbGwgZGF0YVxuICAgIHNldFNlYXJjaFRleHQoJycpO1xuICB9O1xuXG4gIGNvbnN0IGNvbHVtbnMgPSBbXG4gICAgeyB0aXRsZTogJ+Gem+GfgeGegeGemuGfgOGehCcsIGRhdGFJbmRleDogJ2luZGV4Jywga2V5OiAnaW5kZXgnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6I4Z+S4Z6Y4Z+E4Z+HJywgZGF0YUluZGV4OiAnbmFtZScsIGtleTogJ25hbWUnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6U4Z6a4Z634Z6Z4Z624Z6ZJywgZGF0YUluZGV4OiAnZGVzY3JpcHRpb24nLCBrZXk6ICdkZXNjcmlwdGlvbicsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnQWN0aW9uJyxcbiAgICAgIGtleTogJ2FjdGlvbicsXG4gICAgICByZXNwb25zaXZlOiBbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJ10sXG4gICAgICByZW5kZXI6IChfOiBzdHJpbmcsIHJlY29yZDogYW55KSA9PiAoXG4gICAgICAgIDxTcGFjZSBzaXplPVwibWlkZGxlXCI+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RWRpdE91dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZUVkaXQocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxEZWxldGVPdXRsaW5lZCAvPn0gZGFuZ2VyIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZShyZWNvcmQuaWQpfSAvPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgKSxcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0IGZpbHRlcmVkRGF0YSA9IChza2lsbHMgfHwgW10pLmZpbHRlcigoaXQpID0+XG4gICAgaXQubmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IG92ZXJmbG93WDogJ2F1dG8nIH19PlxuICAgICAgPGgyPuGelOGeieGfkuGeh+GeuOGeh+GfhuGek+GetuGeiTwvaDI+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgcGFkZGluZzogJzEwcHgnLFxuICAgICAgICAgIGJhY2tncm91bmQ6ICcjZjVmNWY1JyxcbiAgICAgICAgICBtYXJnaW5Cb3R0b206ICcxMHB4JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ3dyYXAnLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8U3BhY2Ugd3JhcD5cbiAgICAgICAgICA8c3Bhbj7hnp/hnprhnrvhnpQ6IHtmaWx0ZXJlZERhdGE/Lmxlbmd0aCB8fCAwfTwvc3Bhbj5cbiAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi4Z6f4Z+S4Z6c4Z+C4Z6E4Z6a4Z6ALi4uXCJcbiAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiAyMDAgfX1cbiAgICAgICAgICAgIHZhbHVlPXtzZWFyY2hUZXh0fVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRTZWFyY2hUZXh0KGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlU2VhcmNofSB0eXBlPVwicHJpbWFyeVwiPuGeheGemOGfkuGemuGfhOGfhzwvQnV0dG9uPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlUmVzZXR9PuGegOGfhuGejuGej+Gfi+GeoeGevuGehOGenOGet+GeiTwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgICA8U3BhY2Ugd3JhcD5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxQbHVzT3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoYC9za2lsbHMvZm9ybWApfT7hnpThnpPhn5LhnpDhn4LhnpjhnpDhn5Lhnpjhnrg8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPFRhYmxlXG4gICAgICAgIHJvd1NlbGVjdGlvbj17e1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgb25DaGFuZ2U6IChfLCBzZWxlY3RlZFJvd3MpID0+IHNldFNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3MpLFxuICAgICAgICB9fVxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBkYXRhU291cmNlPXtmaWx0ZXJlZERhdGEubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAga2V5OiBpdC5pZCxcbiAgICAgICAgICBpbmRleDogaW5kZXggKyAxLFxuICAgICAgICAgIG5hbWU6IGl0Lm5hbWUsXG4gICAgICAgICAgLi4uaXQsXG4gICAgICAgIH0pKX1cbiAgICAgICAgcGFnaW5hdGlvbj17eyBwYWdlU2l6ZTogMTAsIHNob3dTaXplQ2hhbmdlcjogdHJ1ZSB9fVxuICAgICAgICBzY3JvbGw9e3sgeDogJ21heC1jb250ZW50JyB9fVxuICAgICAgLz5cbiAgICAgIDxMb2FkaW5nRGlhbG9nIHZpc2libGU9e3NraWxsc1BlbmRpbmd9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTa2lsbExpc3Q7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZvcm0sIElucHV0LCBCdXR0b24sIFJvdywgQ29sLCBtZXNzYWdlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBUZXJtc0NvbmRpdGlvbiB9IGZyb20gJ0Avc2hhcmVkL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlVGVybXNDb25kaXRpb25BY3Rpb24sIHRlcm1zQ29uZGl0aW9uRGV0YWlsQWN0aW9uLCB1cGRhdGVUZXJtc0NvbmRpdGlvbkFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3Rlcm1zX2NvbmRpdGlvbi9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBUZXh0QXJlYSBmcm9tICdhbnRkL2VzL2lucHV0L1RleHRBcmVhJztcblxuY29uc3QgTmV3RWRpdFRlcm1zQ29uZGl0aW9uUGFnZTogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCB7IHRlcm1zQ29uZGl0aW9uLCByZWdpc3RlckVycm9yTWVzc2FnZSwgdGVybXNDb25kaXRpb25VcGRhdGVQZW5kaW5nIH0gPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUudGVybXNDb25kaXRpb25cbiAgKTtcbiAgY29uc3QgW2Zvcm1dID0gRm9ybS51c2VGb3JtKCk7XG5cbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpO1xuICBjb25zdCBpZCA9IHNlYXJjaFBhcmFtcy5nZXQoJ2lkJyk7XG5cbiAgY29uc3QgW2lzQ2xpY2ssIHNldElzQ2xpY2tdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIC8vIPCfkYkgRmV0Y2ggZGF0YSB3aGVuIGVkaXRpbmcgb3IgcmVzZXQgZm9ybSB3aGVuIGFkZGluZ1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godGVybXNDb25kaXRpb25EZXRhaWxBY3Rpb24oTnVtYmVyKGlkKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gZmllbGRzIHdoZW4gYWRkaW5nIGEgbmV3IGl0ZW1cbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgaWQsIGZvcm1dKTtcblxuICAvLyDwn5GJIFBvcHVsYXRlIGZvcm0gd2l0aCBmZXRjaGVkIGRhdGFcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQgJiYgdGVybXNDb25kaXRpb24pIHtcbiAgICAgIGZvcm0uc2V0RmllbGRzVmFsdWUoe1xuICAgICAgICBuYW1lOiB0ZXJtc0NvbmRpdGlvbi5uYW1lIHx8ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGVybXNDb25kaXRpb24uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFt0ZXJtc0NvbmRpdGlvbiwgZm9ybSwgaWRdKTtcblxuICAvLyDwn5GJIFNob3cgc3VjY2VzcyBvciBlcnJvciBhbGVydHNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXRlcm1zQ29uZGl0aW9uVXBkYXRlUGVuZGluZyAmJiBpc0NsaWNrKSB7XG4gICAgICBpZiAocmVnaXN0ZXJFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgbWVzc2FnZS5lcnJvcihyZWdpc3RlckVycm9yTWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoaWQgPyAnVXBkYXRlZCBzdWNjZXNzZnVsbHkhJyA6ICdDcmVhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgbmF2aWdhdGUoJy90ZXJtcy1jb25kaXRpb25zJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbdGVybXNDb25kaXRpb25VcGRhdGVQZW5kaW5nLCByZWdpc3RlckVycm9yTWVzc2FnZSwgaWQsIGlzQ2xpY2ssIG5hdmlnYXRlXSk7XG5cbiAgLy8g8J+RiSBIYW5kbGUgZm9ybSBzdWJtaXRcbiAgY29uc3Qgb25GaW5pc2ggPSAodmFsdWVzOiBUZXJtc0NvbmRpdGlvbikgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlVGVybXNDb25kaXRpb25BY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlVGVybXNDb25kaXRpb25BY3Rpb24oeyBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGFmdGVyIHN1Y2Nlc3NmdWwgY3JlYXRpb25cbiAgICB9XG4gICAgc2V0SXNDbGljayh0cnVlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDI+e2lkID8gJ+GegOGfguGelOGfkuGemuGfguGem+GegOGfkuGegeGegeGejuGfkuGejCcgOiAn4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z644Z6b4Z6A4Z+S4Z6B4Z6B4Z6O4Z+S4Z6MJ308L2gyPlxuICAgICAgPEZvcm0gZm9ybT17Zm9ybX0gbGF5b3V0PVwidmVydGljYWxcIiBvbkZpbmlzaD17b25GaW5pc2h9IHN0eWxlPXt7IG1heFdpZHRoOiAnMTAwJScsIG1hcmdpbjogJzAgYXV0bycgfX0+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6I4Z+S4Z6Y4Z+E4Z+HXCIgbmFtZT1cIm5hbWVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSBuYW1lJyB9XX0+XG4gICAgICAgICAgICAgIDxJbnB1dCAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6U4Z6a4Z634Z6Z4Z624Z6ZXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxUZXh0QXJlYSByb3dzPXszfSAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXt0ZXJtc0NvbmRpdGlvblVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy90ZXJtcy1jb25kaXRpb25zJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRUZXJtc0NvbmRpdGlvblBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNwYWNlLCBUYWJsZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMb2FkaW5nRGlhbG9nIGZyb20gJy4uLy4uLy4uL2NvbnRhaW5lci9kaWFsb2dzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IERlbGV0ZU91dGxpbmVkLCBFZGl0T3V0bGluZWQsIFBsdXNPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IGRlbGV0ZVRlcm1zQ29uZGl0aW9uQWN0aW9uLCB0ZXJtc0NvbmRpdGlvbkRldGFpbEFjdGlvbiwgZmV0Y2hUZXJtc0NvbmRpdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy90ZXJtc19jb25kaXRpb24vY29yZS9hY3Rpb25zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuY29uc3QgVGVybXNDb25kaXRpb25MaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IHsgdGVybXNDb25kaXRpb25zLCB0ZXJtc0NvbmRpdGlvbnNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUudGVybXNDb25kaXRpb24pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hUZXJtc0NvbmRpdGlvbnMoKSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKHRlcm1zQ29uZGl0aW9uRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC90ZXJtcy1jb25kaXRpb25zL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlVGVybXNDb25kaXRpb25BY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hUZXJtc0NvbmRpdGlvbnMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAodGVybXNDb25kaXRpb25zIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5LhnofhnrjhnpvhnoDhn5LhnoHhnoHhno7hn5Lhnow8L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvdGVybXMtY29uZGl0aW9ucy9mb3JtYCl9PuGelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8VGFibGVcbiAgICAgICAgcm93U2VsZWN0aW9uPXt7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBvbkNoYW5nZTogKF8sIHNlbGVjdGVkUm93cykgPT4gc2V0U2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93cyksXG4gICAgICAgIH19XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlcmVkRGF0YS5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0LmlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICAgICAgbmFtZTogaXQubmFtZSxcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7IHBhZ2VTaXplOiAxMCwgc2hvd1NpemVDaGFuZ2VyOiB0cnVlIH19XG4gICAgICAgIHNjcm9sbD17eyB4OiAnbWF4LWNvbnRlbnQnIH19XG4gICAgICAvPlxuICAgICAgPExvYWRpbmdEaWFsb2cgdmlzaWJsZT17dGVybXNDb25kaXRpb25zUGVuZGluZ30gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRlcm1zQ29uZGl0aW9uTGlzdDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFRyYWluaW5nU2Vzc2lvbiB9IGZyb20gJ0Avc2hhcmVkL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlVHJhaW5pbmdTZXNzaW9uQWN0aW9uLCB0cmFpbmluZ1Nlc3Npb25EZXRhaWxBY3Rpb24sIHVwZGF0ZVRyYWluaW5nU2Vzc2lvbkFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RyYWluaW5nX3Nlc3Npb24vY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgVGV4dEFyZWEgZnJvbSAnYW50ZC9lcy9pbnB1dC9UZXh0QXJlYSc7XG5cbmNvbnN0IE5ld0VkaXRUcmFpbmluZ1Nlc3Npb25QYWdlOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IHsgdHJhaW5pbmdTZXNzaW9uLCByZWdpc3RlckVycm9yTWVzc2FnZSwgdHJhaW5pbmdTZXNzaW9uVXBkYXRlUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnRyYWluaW5nU2Vzc2lvblxuICApO1xuICBjb25zdCBbZm9ybV0gPSBGb3JtLnVzZUZvcm0oKTtcblxuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XG4gIGNvbnN0IGlkID0gc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcblxuICBjb25zdCBbaXNDbGljaywgc2V0SXNDbGlja10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8g8J+RiSBGZXRjaCBkYXRhIHdoZW4gZWRpdGluZyBvciByZXNldCBmb3JtIHdoZW4gYWRkaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh0cmFpbmluZ1Nlc3Npb25EZXRhaWxBY3Rpb24oTnVtYmVyKGlkKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gZmllbGRzIHdoZW4gYWRkaW5nIGEgbmV3IGl0ZW1cbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgaWQsIGZvcm1dKTtcblxuICAvLyDwn5GJIFBvcHVsYXRlIGZvcm0gd2l0aCBmZXRjaGVkIGRhdGFcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQgJiYgdHJhaW5pbmdTZXNzaW9uKSB7XG4gICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHtcbiAgICAgICAgbmFtZTogdHJhaW5pbmdTZXNzaW9uLm5hbWUgfHwgJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0cmFpbmluZ1Nlc3Npb24uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFt0cmFpbmluZ1Nlc3Npb24sIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF0cmFpbmluZ1Nlc3Npb25VcGRhdGVQZW5kaW5nICYmIGlzQ2xpY2spIHtcbiAgICAgIGlmIChyZWdpc3RlckVycm9yTWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlLmVycm9yKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhpZCA/ICdVcGRhdGVkIHN1Y2Nlc3NmdWxseSEnIDogJ0NyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgICBuYXZpZ2F0ZSgnL3RyYWluaW5nLXNlc3Npb25zJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbdHJhaW5pbmdTZXNzaW9uVXBkYXRlUGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGlkLCBpc0NsaWNrLCBuYXZpZ2F0ZV0pO1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWl0XG4gIGNvbnN0IG9uRmluaXNoID0gKHZhbHVlczogVHJhaW5pbmdTZXNzaW9uKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh1cGRhdGVUcmFpbmluZ1Nlc3Npb25BY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlVHJhaW5pbmdTZXNzaW9uQWN0aW9uKHsgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBhZnRlciBzdWNjZXNzZnVsIGNyZWF0aW9uXG4gICAgfVxuICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPntpZCA/ICfhnoDhn4LhnpThn5Lhnprhn4LhnpzhnoLhn5LhnoLhnpThno7hn5Lhno/hnrvhn4fhnpThno7hn5Lhno/hnrbhnpsnIDogJ+GelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuOGenOGeguGfkuGeguGelOGejuGfkuGej+Geu+Gfh+GelOGejuGfkuGej+GetuGemyd9PC9oMj5cbiAgICAgIDxGb3JtIGZvcm09e2Zvcm19IGxheW91dD1cInZlcnRpY2FsXCIgb25GaW5pc2g9e29uRmluaXNofSBzdHlsZT17eyBtYXhXaWR0aDogJzEwMCUnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeiOGfkuGemOGfhOGfh1wiIG5hbWU9XCJuYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgbmFtZScgfV19PlxuICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemVwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8VGV4dEFyZWEgcm93cz17M30gLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGJsb2NrIGh0bWxUeXBlPVwic3VibWl0XCIgbG9hZGluZz17dHJhaW5pbmdTZXNzaW9uVXBkYXRlUGVuZGluZ30+XG4gICAgICAgICAgICAgICAgU3VibWl0XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gaHRtbFR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZSgnL3RyYWluaW5nLXNlc3Npb25zJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRUcmFpbmluZ1Nlc3Npb25QYWdlO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIElucHV0LCBTcGFjZSwgVGFibGUgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTG9hZGluZ0RpYWxvZyBmcm9tICcuLi8uLi8uLi9jb250YWluZXIvZGlhbG9ncy9sb2FkaW5nLWRpYWxvZyc7XG5pbXBvcnQgeyBEZWxldGVPdXRsaW5lZCwgRWRpdE91dGxpbmVkLCBQbHVzT3V0bGluZWQgfSBmcm9tICdAYW50LWRlc2lnbi9pY29ucyc7XG5pbXBvcnQgeyBkZWxldGVUcmFpbmluZ1Nlc3Npb25BY3Rpb24sIHRyYWluaW5nU2Vzc2lvbkRldGFpbEFjdGlvbiwgZmV0Y2hUcmFpbmluZ1Nlc3Npb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdHJhaW5pbmdfc2Vzc2lvbi9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuXG5jb25zdCBUcmFpbmluZ1Nlc3Npb25MaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IHsgdHJhaW5pbmdTZXNzaW9ucywgdHJhaW5pbmdTZXNzaW9uc1BlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS50cmFpbmluZ1Nlc3Npb24pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hUcmFpbmluZ1Nlc3Npb25zKCkpO1xuICB9LCBbZGlzcGF0Y2hdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaCh0cmFpbmluZ1Nlc3Npb25EZXRhaWxBY3Rpb24oaWQpKTtcbiAgICBuYXZpZ2F0ZShgL3RyYWluaW5nLXNlc3Npb25zL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlVHJhaW5pbmdTZXNzaW9uQWN0aW9uKGlkKSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBTd2FsLmZpcmUoJ0RlbGV0ZWQhJywgJ1RoZSBpdGVtIGhhcyBiZWVuIGRlbGV0ZWQuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKGZldGNoVHJhaW5pbmdTZXNzaW9ucygpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNhbmNlbEJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoID0gKCkgPT4ge1xuICAgIC8vIFRyaWdnZXJzIHNlYXJjaCBieSBzZXR0aW5nIHN0YXRlXG4gICAgc2V0U2VhcmNoVGV4dChzZWFyY2hUZXh0LnRyaW0oKSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlUmVzZXQgPSAoKSA9PiB7XG4gICAgLy8gQ2xlYXJzIGlucHV0IGFuZCBzaG93cyBhbGwgZGF0YVxuICAgIHNldFNlYXJjaFRleHQoJycpO1xuICB9O1xuXG4gIGNvbnN0IGNvbHVtbnMgPSBbXG4gICAgeyB0aXRsZTogJ+Gem+GfgeGegeGemuGfgOGehCcsIGRhdGFJbmRleDogJ2luZGV4Jywga2V5OiAnaW5kZXgnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6I4Z+S4Z6Y4Z+E4Z+HJywgZGF0YUluZGV4OiAnbmFtZScsIGtleTogJ25hbWUnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6U4Z6a4Z634Z6Z4Z624Z6ZJywgZGF0YUluZGV4OiAnZGVzY3JpcHRpb24nLCBrZXk6ICdkZXNjcmlwdGlvbicsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnQWN0aW9uJyxcbiAgICAgIGtleTogJ2FjdGlvbicsXG4gICAgICByZXNwb25zaXZlOiBbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJ10sXG4gICAgICByZW5kZXI6IChfOiBzdHJpbmcsIHJlY29yZDogYW55KSA9PiAoXG4gICAgICAgIDxTcGFjZSBzaXplPVwibWlkZGxlXCI+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RWRpdE91dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZUVkaXQocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxEZWxldGVPdXRsaW5lZCAvPn0gZGFuZ2VyIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZShyZWNvcmQuaWQpfSAvPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgKSxcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0IGZpbHRlcmVkRGF0YSA9ICh0cmFpbmluZ1Nlc3Npb25zIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5LhnofhnrjhnpzhnoLhn5LhnoLhnpThno7hn5Lhno/hnrvhn4fhnpThno7hn5Lhno/hnrbhnps8L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvdHJhaW5pbmctc2Vzc2lvbnMvZm9ybWApfT7hnpThnpPhn5LhnpDhn4LhnpjhnpDhn5Lhnpjhnrg8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPFRhYmxlXG4gICAgICAgIHJvd1NlbGVjdGlvbj17e1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgb25DaGFuZ2U6IChfLCBzZWxlY3RlZFJvd3MpID0+IHNldFNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3MpLFxuICAgICAgICB9fVxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBkYXRhU291cmNlPXtmaWx0ZXJlZERhdGEubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAga2V5OiBpdC5pZCxcbiAgICAgICAgICBpbmRleDogaW5kZXggKyAxLFxuICAgICAgICAgIG5hbWU6IGl0Lm5hbWUsXG4gICAgICAgICAgLi4uaXQsXG4gICAgICAgIH0pKX1cbiAgICAgICAgcGFnaW5hdGlvbj17eyBwYWdlU2l6ZTogMTAsIHNob3dTaXplQ2hhbmdlcjogdHJ1ZSB9fVxuICAgICAgICBzY3JvbGw9e3sgeDogJ21heC1jb250ZW50JyB9fVxuICAgICAgLz5cbiAgICAgIDxMb2FkaW5nRGlhbG9nIHZpc2libGU9e3RyYWluaW5nU2Vzc2lvbnNQZW5kaW5nfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVHJhaW5pbmdTZXNzaW9uTGlzdDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFRyYXZlbERheSB9IGZyb20gJ0Avc2hhcmVkL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlVHJhdmVsRGF5QWN0aW9uLCB0cmF2ZWxEYXlEZXRhaWxBY3Rpb24sIHVwZGF0ZVRyYXZlbERheUFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RyYXZlbF9kYXkvY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgVGV4dEFyZWEgZnJvbSAnYW50ZC9lcy9pbnB1dC9UZXh0QXJlYSc7XG5cbmNvbnN0IE5ld0VkaXRUcmF2ZWxEYXlQYWdlOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IHsgdHJhdmVsRGF5LCByZWdpc3RlckVycm9yTWVzc2FnZSwgdHJhdmVsRGF5VXBkYXRlUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnRyYXZlbERheVxuICApO1xuICBjb25zdCBbZm9ybV0gPSBGb3JtLnVzZUZvcm0oKTtcblxuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XG4gIGNvbnN0IGlkID0gc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcblxuICBjb25zdCBbaXNDbGljaywgc2V0SXNDbGlja10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8g8J+RiSBGZXRjaCBkYXRhIHdoZW4gZWRpdGluZyBvciByZXNldCBmb3JtIHdoZW4gYWRkaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh0cmF2ZWxEYXlEZXRhaWxBY3Rpb24oTnVtYmVyKGlkKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gZmllbGRzIHdoZW4gYWRkaW5nIGEgbmV3IGl0ZW1cbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgaWQsIGZvcm1dKTtcblxuICAvLyDwn5GJIFBvcHVsYXRlIGZvcm0gd2l0aCBmZXRjaGVkIGRhdGFcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQgJiYgdHJhdmVsRGF5KSB7XG4gICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHtcbiAgICAgICAgbmFtZTogdHJhdmVsRGF5Lm5hbWUgfHwgJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0cmF2ZWxEYXkuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFt0cmF2ZWxEYXksIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF0cmF2ZWxEYXlVcGRhdGVQZW5kaW5nICYmIGlzQ2xpY2spIHtcbiAgICAgIGlmIChyZWdpc3RlckVycm9yTWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlLmVycm9yKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhpZCA/ICdVcGRhdGVkIHN1Y2Nlc3NmdWxseSEnIDogJ0NyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgICBuYXZpZ2F0ZSgnL3RyYXZlbC1kYXlzJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbdHJhdmVsRGF5VXBkYXRlUGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGlkLCBpc0NsaWNrLCBuYXZpZ2F0ZV0pO1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWl0XG4gIGNvbnN0IG9uRmluaXNoID0gKHZhbHVlczogVHJhdmVsRGF5KSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh1cGRhdGVUcmF2ZWxEYXlBY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlVHJhdmVsRGF5QWN0aW9uKHsgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBhZnRlciBzdWNjZXNzZnVsIGNyZWF0aW9uXG4gICAgfVxuICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPntpZCA/ICfhnoDhn4LhnpThn5Lhnprhn4LhnpDhn5LhnoThn4PhnpLhn5Lhnpzhnr7hnorhn4bhno7hnr7hnponIDogJ+GelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuOGekOGfkuGehOGfg+GekuGfkuGenOGevuGeiuGfhuGejuGevuGemid9PC9oMj5cbiAgICAgIDxGb3JtIGZvcm09e2Zvcm19IGxheW91dD1cInZlcnRpY2FsXCIgb25GaW5pc2g9e29uRmluaXNofSBzdHlsZT17eyBtYXhXaWR0aDogJzEwMCUnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeiOGfkuGemOGfhOGfh1wiIG5hbWU9XCJuYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgbmFtZScgfV19PlxuICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemVwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8VGV4dEFyZWEgcm93cz17M30gLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGJsb2NrIGh0bWxUeXBlPVwic3VibWl0XCIgbG9hZGluZz17dHJhdmVsRGF5VXBkYXRlUGVuZGluZ30+XG4gICAgICAgICAgICAgICAgU3VibWl0XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gaHRtbFR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZSgnL3RyYXZlbC1kYXlzJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRUcmF2ZWxEYXlQYWdlO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIElucHV0LCBTcGFjZSwgVGFibGUgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTG9hZGluZ0RpYWxvZyBmcm9tICcuLi8uLi8uLi9jb250YWluZXIvZGlhbG9ncy9sb2FkaW5nLWRpYWxvZyc7XG5pbXBvcnQgeyBEZWxldGVPdXRsaW5lZCwgRWRpdE91dGxpbmVkLCBQbHVzT3V0bGluZWQgfSBmcm9tICdAYW50LWRlc2lnbi9pY29ucyc7XG5pbXBvcnQgeyBkZWxldGVUcmF2ZWxEYXlBY3Rpb24sIHRyYXZlbERheURldGFpbEFjdGlvbiwgZmV0Y2hUcmF2ZWxEYXlzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdHJhdmVsX2RheS9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuXG5jb25zdCBUcmF2ZWxEYXlMaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IHsgdHJhdmVsRGF5cywgdHJhdmVsRGF5c1BlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS50cmF2ZWxEYXkpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hUcmF2ZWxEYXlzKCkpO1xuICB9LCBbZGlzcGF0Y2hdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaCh0cmF2ZWxEYXlEZXRhaWxBY3Rpb24oaWQpKTtcbiAgICBuYXZpZ2F0ZShgL3RyYXZlbC1kYXlzL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlVHJhdmVsRGF5QWN0aW9uKGlkKSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBTd2FsLmZpcmUoJ0RlbGV0ZWQhJywgJ1RoZSBpdGVtIGhhcyBiZWVuIGRlbGV0ZWQuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKGZldGNoVHJhdmVsRGF5cygpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNhbmNlbEJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoID0gKCkgPT4ge1xuICAgIC8vIFRyaWdnZXJzIHNlYXJjaCBieSBzZXR0aW5nIHN0YXRlXG4gICAgc2V0U2VhcmNoVGV4dChzZWFyY2hUZXh0LnRyaW0oKSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlUmVzZXQgPSAoKSA9PiB7XG4gICAgLy8gQ2xlYXJzIGlucHV0IGFuZCBzaG93cyBhbGwgZGF0YVxuICAgIHNldFNlYXJjaFRleHQoJycpO1xuICB9O1xuXG4gIGNvbnN0IGNvbHVtbnMgPSBbXG4gICAgeyB0aXRsZTogJ+Gem+GfgeGegeGemuGfgOGehCcsIGRhdGFJbmRleDogJ2luZGV4Jywga2V5OiAnaW5kZXgnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6I4Z+S4Z6Y4Z+E4Z+HJywgZGF0YUluZGV4OiAnbmFtZScsIGtleTogJ25hbWUnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6U4Z6a4Z634Z6Z4Z624Z6ZJywgZGF0YUluZGV4OiAnZGVzY3JpcHRpb24nLCBrZXk6ICdkZXNjcmlwdGlvbicsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnQWN0aW9uJyxcbiAgICAgIGtleTogJ2FjdGlvbicsXG4gICAgICByZXNwb25zaXZlOiBbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJ10sXG4gICAgICByZW5kZXI6IChfOiBzdHJpbmcsIHJlY29yZDogYW55KSA9PiAoXG4gICAgICAgIDxTcGFjZSBzaXplPVwibWlkZGxlXCI+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RWRpdE91dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZUVkaXQocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxEZWxldGVPdXRsaW5lZCAvPn0gZGFuZ2VyIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZShyZWNvcmQuaWQpfSAvPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgKSxcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0IGZpbHRlcmVkRGF0YSA9ICh0cmF2ZWxEYXlzIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5LhnofhnrjhnpDhn5LhnoThn4PhnpLhn5Lhnpzhnr7hnorhn4bhno7hnr7hnpo8L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvdHJhdmVsLWRheXMvZm9ybWApfT7hnpThnpPhn5LhnpDhn4LhnpjhnpDhn5Lhnpjhnrg8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPFRhYmxlXG4gICAgICAgIHJvd1NlbGVjdGlvbj17e1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgb25DaGFuZ2U6IChfLCBzZWxlY3RlZFJvd3MpID0+IHNldFNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3MpLFxuICAgICAgICB9fVxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBkYXRhU291cmNlPXtmaWx0ZXJlZERhdGEubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAga2V5OiBpdC5pZCxcbiAgICAgICAgICBpbmRleDogaW5kZXggKyAxLFxuICAgICAgICAgIG5hbWU6IGl0Lm5hbWUsXG4gICAgICAgICAgLi4uaXQsXG4gICAgICAgIH0pKX1cbiAgICAgICAgcGFnaW5hdGlvbj17eyBwYWdlU2l6ZTogMTAsIHNob3dTaXplQ2hhbmdlcjogdHJ1ZSB9fVxuICAgICAgICBzY3JvbGw9e3sgeDogJ21heC1jb250ZW50JyB9fVxuICAgICAgLz5cbiAgICAgIDxMb2FkaW5nRGlhbG9nIHZpc2libGU9e3RyYXZlbERheXNQZW5kaW5nfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVHJhdmVsRGF5TGlzdDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UsIE1vZGFsLCBVcGxvYWQsIFVwbG9hZEZpbGUsIFVwbG9hZFByb3BzLCBTZWxlY3QgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICdAL3NoYXJlZC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZVVzZXJBY3Rpb24sIHVzZXJEZXRhaWxBY3Rpb24sIHVwZGF0ZVVzZXJBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy91c2VyL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgcG9zdFVwbG9hZCB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb3JlL2Jhc2Uvc2VydmljZXMnO1xuaW1wb3J0IHsgUGx1c091dGxpbmVkLCBVcGxvYWRPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gJ2FudGQvZXMvbWVudGlvbnMnO1xuXG5jb25zdCBOZXdFZGl0VXNlclBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyB1c2VyLCByZWdpc3RlckVycm9yTWVzc2FnZSwgdXNlclVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS51c2VyXG4gICk7XG4gIGNvbnN0IFtmb3JtXSA9IEZvcm0udXNlRm9ybSgpO1xuXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgaWQgPSBzZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuICBjb25zdCBbcGhvdG9VcmwsIHNldFBob3RvVXJsXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW3ByZXZpZXdWaXNpYmxlLCBzZXRQcmV2aWV3VmlzaWJsZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtwcmV2aWV3VGl0bGUsIHNldFByZXZpZXdUaXRsZV0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFtwcmV2aWV3Q29udGVudCwgc2V0UHJldmlld0NvbnRlbnRdID0gdXNlU3RhdGU8YW55PihudWxsKTtcbiAgY29uc3QgW3Bob3RvTGlzdCwgc2V0UGhvdG9MaXN0XSA9IHVzZVN0YXRlPFVwbG9hZEZpbGVbXT4oW10pO1xuICBjb25zdCB7IGF1dGggfSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZSk7IC8vIEdldCB1c2VyIHJvbGVcbiAgY29uc3QgeyBjdXJyZW50VXNlciB9ID0gYXV0aDtcbiAgY29uc3QgaXNBZG1pbiA9IGN1cnJlbnRVc2VyPy5yb2xlID09PSBcInN1cGVyX2FkbWluXCI7IC8vIENoZWNrIGlmIHVzZXIgaXMgYWRtaW5cblxuICBjb25zdCBbaXNDbGljaywgc2V0SXNDbGlja10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8g8J+RiSBGZXRjaCBkYXRhIHdoZW4gZWRpdGluZyBvciByZXNldCBmb3JtIHdoZW4gYWRkaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh1c2VyRGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGZpZWxkcyB3aGVuIGFkZGluZyBhIG5ldyBpdGVtXG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkLCBmb3JtXSk7XG5cbiAgLy8g8J+RiSBQb3B1bGF0ZSBmb3JtIHdpdGggZmV0Y2hlZCBkYXRhXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkICYmIHVzZXIpIHtcbiAgICAgIGZvcm0uc2V0RmllbGRzVmFsdWUoe1xuICAgICAgICBmaXJzdF9uYW1lOiB1c2VyLmZpcnN0X25hbWUgfHwgJycsXG4gICAgICAgIGxhc3RfbmFtZTogdXNlci5sYXN0X25hbWUgfHwgJycsXG4gICAgICAgIHVzZXJuYW1lOiB1c2VyLnVzZXJuYW1lIHx8ICcnLFxuICAgICAgICBlbWFpbDogdXNlci5lbWFpbCB8fCAnJyxcbiAgICAgICAgcGhvbmU6IHVzZXIucGhvbmUgfHwgJycsXG4gICAgICAgIHJvbGU6IHVzZXIucm9sZSB8fCAnJyxcbiAgICAgICAgdGVsZWdyYW1faWQ6IHVzZXIudGVsZWdyYW1faWQgfHwgJycsXG4gICAgICAgIHBob3RvX3VybDogdXNlci5waG90b191cmwgfHwgJycsXG4gICAgICAgIGdyYWRfdHlwZTogdXNlci5ncmFkX3R5cGUgfHwgJycsXG4gICAgICAgIHN0YXR1czogdXNlci5zdGF0dXMgfHwgJycsXG4gICAgICB9KTtcblxuICAgICAgc2V0UGhvdG9VcmwodXNlci5waG90b191cmwgfHwgJycpO1xuICAgIH1cbiAgfSwgW3VzZXIsIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF1c2VyVXBkYXRlUGVuZGluZyAmJiBpc0NsaWNrKSB7XG4gICAgICBpZiAocmVnaXN0ZXJFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgbWVzc2FnZS5lcnJvcihyZWdpc3RlckVycm9yTWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoaWQgPyAnVXBkYXRlZCBzdWNjZXNzZnVsbHkhJyA6ICdDcmVhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgbmF2aWdhdGUoJy91c2VycycpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3VzZXJVcGRhdGVQZW5kaW5nLCByZWdpc3RlckVycm9yTWVzc2FnZSwgaWQsIGlzQ2xpY2ssIG5hdmlnYXRlXSk7XG5cblxuICAvLyBDb21tb24gaGVscGVyIGZ1bmN0aW9uIGZvciBmaWxlIHVwbG9hZHNcbiAgY29uc3QgaGFuZGxlRmlsZUNoYW5nZSA9IGFzeW5jIChcbiAgICBmaWxlOiBGaWxlLFxuICAgIGZpZWxkTmFtZTogc3RyaW5nLFxuICAgIGZvcm06IGFueVxuICApID0+IHtcbiAgICBpZiAoIWlzQWRtaW4pIHJldHVybjsgLy8gUmVzdHJpY3QgZWRpdCBhY2Nlc3NcbiAgICBpZiAoIWZpbGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7ZmllbGROYW1lfSBVcGxvYWQgRXJyb3I6IE5vIGZpbGUgc2VsZWN0ZWQuYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoXCJmaWxlXCIsIGZpbGUpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHBvc3RVcGxvYWQoZm9ybURhdGEpO1xuXG4gICAgICBpZiAocmVzcG9uc2U/LnVybCkge1xuICAgICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHsgW2ZpZWxkTmFtZV06IHJlc3BvbnNlLnVybCB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHtmaWVsZE5hbWV9IFVwbG9hZCBFcnJvcjpgLCBlcnJvcik7XG4gICAgfVxuICB9O1xuICBjb25zdCBoYW5kbGVQaG90b1VwbG9hZENoYW5nZSA9IGFzeW5jIChwaG90b0ZpbGU6IEZpbGUpID0+IHtcbiAgICBpZiAoIWlzQWRtaW4pIHJldHVybjsgLy8gUmVzdHJpY3QgZWRpdCBhY2Nlc3NcbiAgICBhd2FpdCBoYW5kbGVGaWxlQ2hhbmdlKHBob3RvRmlsZSwgXCJwaG90b191cmxcIiwgZm9ybSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRmlsZUNoYW5nZU5ldyA9IGFzeW5jIChcbiAgICBmaWxlTGlzdDogVXBsb2FkRmlsZVtdLFxuICAgIHNldEZpbGVMaXN0OiBSZWFjdC5EaXNwYXRjaDxSZWFjdC5TZXRTdGF0ZUFjdGlvbjxVcGxvYWRGaWxlW10+PixcbiAgICBmaWVsZE5hbWU6IHN0cmluZ1xuICApID0+IHtcbiAgICAvLyB1cGRhdGVkRmlsZUxpc3Q6IG1hcmsgYWxsIGZpbGVzIGFzIFwidXBsb2FkaW5nXCJcbiAgICBjb25zdCB1cGRhdGVkRmlsZUxpc3QgPSBmaWxlTGlzdC5tYXAoKGZpbGUpOiBVcGxvYWRGaWxlID0+ICh7XG4gICAgICAuLi5maWxlLFxuICAgICAgc3RhdHVzOiBcInVwbG9hZGluZ1wiLCAvLyBpbmZlcnJlZCBhcyB0aGUgbGl0ZXJhbCBcInVwbG9hZGluZ1wiXG4gICAgfSkpO1xuICAgIHNldEZpbGVMaXN0KHVwZGF0ZWRGaWxlTGlzdCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgIHVwZGF0ZWRGaWxlTGlzdC5mb3JFYWNoKChmaWxlKSA9PiB7XG4gICAgICAgIGlmIChmaWxlLm9yaWdpbkZpbGVPYmopIHtcbiAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXCJmaWxlXCIsIGZpbGUub3JpZ2luRmlsZU9iaik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHBvc3RVcGxvYWQoZm9ybURhdGEpO1xuICAgICAgaWYgKHJlc3BvbnNlLnVybCkge1xuICAgICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHsgW2ZpZWxkTmFtZV06IHJlc3BvbnNlLnVybCB9KTtcbiAgICAgICAgLy8gZG9uZUZpbGVMaXN0OiBtYXJrIGFsbCBmaWxlcyBhcyBcImRvbmVcIiBvbiBzdWNjZXNzZnVsIHVwbG9hZFxuICAgICAgICBjb25zdCBkb25lRmlsZUxpc3QgPSB1cGRhdGVkRmlsZUxpc3QubWFwKChmaWxlKTogVXBsb2FkRmlsZSA9PiAoe1xuICAgICAgICAgIC4uLmZpbGUsXG4gICAgICAgICAgc3RhdHVzOiBcImRvbmVcIixcbiAgICAgICAgfSkpO1xuICAgICAgICBzZXRGaWxlTGlzdChkb25lRmlsZUxpc3QpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke2ZpZWxkTmFtZX0gVXBsb2FkIEVycm9yOmAsIGVycm9yKTtcbiAgICAgIC8vIGVycm9yRmlsZUxpc3Q6IG1hcmsgYWxsIGZpbGVzIGFzIFwiZXJyb3JcIiBvbiBmYWlsdXJlXG4gICAgICBjb25zdCBlcnJvckZpbGVMaXN0ID0gdXBkYXRlZEZpbGVMaXN0Lm1hcCgoZmlsZSk6IFVwbG9hZEZpbGUgPT4gKHtcbiAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgc3RhdHVzOiBcImVycm9yXCIsXG4gICAgICB9KSk7XG4gICAgICBzZXRGaWxlTGlzdChlcnJvckZpbGVMaXN0KTtcbiAgICB9XG4gIH07XG5cblxuICBjb25zdCBoYW5kbGVQaG90b1VwbG9hZENoYW5nZU5ldzogVXBsb2FkUHJvcHNbXCJvbkNoYW5nZVwiXSA9IGFzeW5jICh7IGZpbGVMaXN0IH0pID0+IHtcbiAgICBhd2FpdCBoYW5kbGVGaWxlQ2hhbmdlTmV3KGZpbGVMaXN0LCBzZXRQaG90b0xpc3QsIFwicGhvdG9fdXJsXCIpO1xuICB9O1xuXG4gIGNvbnN0IGJlZm9yZVVwbG9hZCA9IChmaWxlOiBhbnkpID0+IHtcbiAgICBjb25zdCBpc0ltYWdlID0gZmlsZS50eXBlLnN0YXJ0c1dpdGgoXCJpbWFnZS9cIik7XG4gICAgaWYgKCFpc0ltYWdlKSB7XG4gICAgICBtZXNzYWdlLmVycm9yKFwiWW91IGNhbiBvbmx5IHVwbG9hZCBpbWFnZSBmaWxlcyAoSlBHL1BORykhXCIpO1xuICAgIH1cbiAgICByZXR1cm4gaXNJbWFnZTtcbiAgfTtcblxuICAvLyDwn5GJIEhhbmRsZSBmb3JtIHN1Ym1pdFxuICBjb25zdCBvbkZpbmlzaCA9ICh2YWx1ZXM6IFVzZXIpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHVwZGF0ZVVzZXJBY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlVXNlckFjdGlvbih7IGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gYWZ0ZXIgc3VjY2Vzc2Z1bCBjcmVhdGlvblxuICAgIH1cbiAgICBzZXRJc0NsaWNrKHRydWUpO1xuICB9O1xuXG5cbiAgY29uc3QgaGFuZGxlUHJldmlldyA9ICh1cmw6IHN0cmluZywgdGl0bGU6IHN0cmluZykgPT4ge1xuICAgIHNldFByZXZpZXdUaXRsZSh0aXRsZSk7XG4gICAgc2V0UHJldmlld0NvbnRlbnQoPGRpdiBzdHlsZT17eyB3aWR0aDogJzcwJScsIG1hcmdpbjogJ2F1dG8nIH19PjxpbWcgc3JjPXt1cmx9IGFsdD17dGl0bGV9IHN0eWxlPXt7IHdpZHRoOiAnMTAwJScgfX0gLz48L2Rpdj4pO1xuICAgIHNldFByZXZpZXdWaXNpYmxlKHRydWUpO1xuICB9O1xuXG4gIGNvbnN0IHVwbG9hZEJ1dHRvbiA9IChcbiAgICB1cmw6IHN0cmluZyxcbiAgICBzZXRVcmw6IFJlYWN0LkRpc3BhdGNoPFJlYWN0LlNldFN0YXRlQWN0aW9uPHN0cmluZz4+LFxuICAgIGxhYmVsOiBzdHJpbmcsXG4gICAgZmllbGROYW1lOiBzdHJpbmdcbiAgKSA9PiAoXG4gICAgPGRpdiBzdHlsZT17eyBwb3NpdGlvbjogJ3JlbGF0aXZlJywgZGlzcGxheTogJ2lubGluZS1ibG9jaycgfX0+XG4gICAgICB7dXJsID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgY3Vyc29yOiAncG9pbnRlcicgfX0gb25DbGljaz17KCkgPT4gaGFuZGxlUHJldmlldyh1cmwsIGxhYmVsKX0+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgIHNyYz17dXJsfVxuICAgICAgICAgICAgICBhbHQ9e2xhYmVsfVxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiAnMzAwcHgnLFxuICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzhweCcsXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ2Jsb2NrJyxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgaWNvbj17PFBsdXNPdXRsaW5lZCAvPn1cbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICBzdHlsZT17eyBwb3NpdGlvbjogJ2Fic29sdXRlJywgYm90dG9tOiAxMiwgcmlnaHQ6IDgsIGJhY2tncm91bmQ6ICcjMTg5MGZmJywgY29sb3I6ICcjZmZmJyB9fVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYHVwbG9hZC0ke2xhYmVsfWApPy5jbGljaygpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD17YHVwbG9hZC0ke2xhYmVsfWB9XG4gICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiAnbm9uZScgfX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGUgPSBlLnRhcmdldC5maWxlc1swXTtcbiAgICAgICAgICAgICAgaWYgKGZpbGUpIHtcbiAgICAgICAgICAgICAgICAvLyBZb3UgY2FuIGFkZCB5b3VyIGxvZ2ljIGhlcmUgZm9yIGRpZmZlcmVudCBmaWxlIGhhbmRsaW5nXG4gICAgICAgICAgICAgICAgaGFuZGxlUGhvdG9VcGxvYWRDaGFuZ2UoZmlsZSk7XG4gICAgICAgICAgICAgICAgc2V0VXJsKFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvPlxuICAgICAgKSA6IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8VXBsb2FkXG4gICAgICAgICAgICBsaXN0VHlwZT1cInBpY3R1cmVcIlxuICAgICAgICAgICAgZmlsZUxpc3Q9e3Bob3RvTGlzdH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVQaG90b1VwbG9hZENoYW5nZU5ld31cbiAgICAgICAgICAgIGJlZm9yZVVwbG9hZD17YmVmb3JlVXBsb2FkfVxuICAgICAgICAgICAgc2hvd1VwbG9hZExpc3Q9e3sgc2hvd1ByZXZpZXdJY29uOiB0cnVlLCBzaG93UmVtb3ZlSWNvbjogdHJ1ZSB9fVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGN1c3RvbS11cGxvYWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxVcGxvYWRPdXRsaW5lZCAvPlxuICAgICAgICAgIDwvVXBsb2FkPlxuICAgICAgICA8Lz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPntpZCA/ICfhnoDhn4LhnpThn5Lhnprhn4LhnqLhn5LhnpPhnoDhnpThn5Lhnprhnr7hnpThn5Lhnprhnrbhnp/hn4snIDogJ+GelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuOGeouGfkuGek+GegOGelOGfkuGemuGevuGelOGfkuGemuGetuGen+Gfiyd9PC9oMj5cbiAgICAgIDxGb3JtIGZvcm09e2Zvcm19IGxheW91dD1cInZlcnRpY2FsXCIgb25GaW5pc2g9e29uRmluaXNofSBzdHlsZT17eyBtYXhXaWR0aDogJzEwMCUnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17Nn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6a4Z684Z6U4Z6Q4Z6PXCIgbmFtZT1cInBob3RvX3VybFwiPlxuICAgICAgICAgICAgICB7dXBsb2FkQnV0dG9uKHBob3RvVXJsLCBzZXRQaG90b1VybCwgJ+GemuGevOGelOGekOGejycsICdwaG90b191cmwnKX1cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTh9PlxuICAgICAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMF19PlxuICAgICAgICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnpPhnrbhnpjhnoHhn5Lhnpvhnr3hnpNcIiBuYW1lPVwiZmlyc3RfbmFtZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogZmFsc2UgfV19PlxuICAgICAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnpPhnrbhnpjhno/hn5LhnprhnoDhnrzhnptcIiBuYW1lPVwibGFzdF9uYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiBmYWxzZSB9XX0+XG4gICAgICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeiOGfkuGemOGfhOGfh+GeouGfkuGek+GegOGelOGfkuGemuGevuGelOGfkuGemuGetuGen+Gfi1wiIG5hbWU9XCJ1c2VybmFtZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogZmFsc2UgfV19PlxuICAgICAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgPC9Sb3c+XG4gICAgICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAwXX0+XG4gICAgICAgICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeouGfiuGeuOGemOGfguGem1wiIG5hbWU9XCJlbWFpbFwiIHJ1bGVzPXtbeyByZXF1aXJlZDogZmFsc2UgfV19PlxuICAgICAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnpvhn4HhnoHhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpFcIiBuYW1lPVwicGhvbmVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IGZhbHNlIH1dfT5cbiAgICAgICAgICAgICAgICAgIDxJbnB1dCAvPlxuICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICAgICAgPENvbCBzcGFuPXs4fT5cbiAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6P4Z694Z6T4Z624Z6R4Z64XCIgbmFtZT1cInJvbGVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IGZhbHNlIH1dfT5cbiAgICAgICAgICAgICAgICAgIDxTZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDxPcHRpb24gdmFsdWU9XCJzdXBlcl9hZG1pblwiPlN1cGVyIGFkbWluPC9PcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxPcHRpb24gdmFsdWU9XCJhZG1pblwiPkFkbWluPC9PcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxPcHRpb24gdmFsdWU9XCJ1c2VyXCI+VXNlcjwvT3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8T3B0aW9uIHZhbHVlPVwicmVwb3J0ZXJcIj5SZXBvcnRlcjwvT3B0aW9uPlxuICAgICAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgPC9Sb3c+XG4gICAgICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAwXX0+XG4gICAgICAgICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGej+GfgeGem+GfgeGegOGfkuGemuGetuGemOKAiyBJRFwiIG5hbWU9XCJ0ZWxlZ3JhbV9pZFwiIHJ1bGVzPXtbeyByZXF1aXJlZDogZmFsc2UgfV19PlxuICAgICAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnpThn5Lhnprhnpfhn4HhnpFcIiBuYW1lPVwiZ3JhZF90eXBlXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiBmYWxzZSB9XX0+XG4gICAgICAgICAgICAgICAgICA8U2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8T3B0aW9uIHZhbHVlPVwicGFzc3dvcmRcIj5QYXNzd29yZDwvT3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8T3B0aW9uIHZhbHVlPVwidGVsZWdyYW1cIj5UZWxlZ3JhbTwvT3B0aW9uPlxuICAgICAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnp/hn5LhnpDhnrbhnpPhnpfhnrbhnpZcIiBuYW1lPVwic3RhdHVzXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiBmYWxzZSB9XX0+XG4gICAgICAgICAgICAgICAgICA8U2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8T3B0aW9uIHZhbHVlPVwiQUNUSVZFXCI+QWN0aXZlPC9PcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxPcHRpb24gdmFsdWU9XCJESVNBQkxFXCI+RGlzYWJsZTwvT3B0aW9uPlxuICAgICAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgPC9Sb3c+XG4gICAgICAgICAgICB7IWlkICYmXG4gICAgICAgICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDBdfT5cbiAgICAgICAgICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeluGetuGegOGfkuGemeGen+GemOGfkuGehOGetuGej+Gfi1wiIG5hbWU9XCJwYXNzd29yZFwiIHJ1bGVzPXtbeyByZXF1aXJlZDogZmFsc2UgfV19PlxuICAgICAgICAgICAgICAgICAgICA8SW5wdXQgdHlwZT0ncGFzc3dvcmQnIC8+XG4gICAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICAgICAgPC9Sb3c+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfSBqdXN0aWZ5PSdlbmQnPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXt1c2VyVXBkYXRlUGVuZGluZ30+XG4gICAgICAgICAgICAgICAgU3VibWl0XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gaHRtbFR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZSgnL3VzZXJzJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cblxuICAgICAgICA8TW9kYWwgdmlzaWJsZT17cHJldmlld1Zpc2libGV9IHRpdGxlPXtwcmV2aWV3VGl0bGV9IGZvb3Rlcj17bnVsbH0gb25DYW5jZWw9eygpID0+IHNldFByZXZpZXdWaXNpYmxlKGZhbHNlKX0+XG4gICAgICAgICAge3ByZXZpZXdDb250ZW50fVxuICAgICAgICA8L01vZGFsPlxuICAgICAgPC9Gb3JtPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmV3RWRpdFVzZXJQYWdlO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIEltYWdlLCBJbnB1dCwgU3BhY2UsIFRhYmxlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExvYWRpbmdEaWFsb2cgZnJvbSAnLi4vLi4vLi4vY29udGFpbmVyL2RpYWxvZ3MvbG9hZGluZy1kaWFsb2cnO1xuaW1wb3J0IHsgRGVsZXRlT3V0bGluZWQsIEVkaXRPdXRsaW5lZCwgUGx1c091dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0IHsgZGVsZXRlVXNlckFjdGlvbiwgdXNlckRldGFpbEFjdGlvbiwgZmV0Y2hVc2VycyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3VzZXIvY29yZS9hY3Rpb25zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuY29uc3QgVXNlckxpc3QgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCBbc2VsZWN0ZWRSb3dzLCBzZXRTZWxlY3RlZFJvd3NdID0gdXNlU3RhdGU8YW55PihbXSk7XG4gIGNvbnN0IFtzZWFyY2hUZXh0LCBzZXRTZWFyY2hUZXh0XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgeyB1c2VycywgdXNlcnNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUudXNlcik7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaChmZXRjaFVzZXJzKCkpO1xuICB9LCBbZGlzcGF0Y2hdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaCh1c2VyRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC91c2Vycy9mb3JtP2lkPSR7aWR9YCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlID0gKGlkOiBhbnkpID0+IHtcbiAgICBTd2FsLmZpcmUoe1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmU/JyxcbiAgICAgIHRleHQ6ICdZb3Ugd29uXFwndCBiZSBhYmxlIHRvIHJldmVydCB0aGlzIScsXG4gICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgIGh0bWw6IGBcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNvbmZpcm0tZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jb25maXJtIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2QzMztcIj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY2FuY2VsLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY2FuY2VsIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzMwODVkNjtcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgLFxuICAgICAgZGlkT3BlbjogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maXJtQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY29uZmlybS1kZWxldGUnKTtcbiAgICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY2FuY2VsLWRlbGV0ZScpO1xuXG4gICAgICAgIGNvbmZpcm1CdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKGRlbGV0ZVVzZXJBY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hVc2VycygpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNhbmNlbEJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoID0gKCkgPT4ge1xuICAgIC8vIFRyaWdnZXJzIHNlYXJjaCBieSBzZXR0aW5nIHN0YXRlXG4gICAgc2V0U2VhcmNoVGV4dChzZWFyY2hUZXh0LnRyaW0oKSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlUmVzZXQgPSAoKSA9PiB7XG4gICAgLy8gQ2xlYXJzIGlucHV0IGFuZCBzaG93cyBhbGwgZGF0YVxuICAgIHNldFNlYXJjaFRleHQoJycpO1xuICB9O1xuXG4gIGNvbnN0IGNvbHVtbnMgPSBbXG4gICAgeyB0aXRsZTogJ+Gem+GfgeGegeGemuGfgOGehCcsIGRhdGFJbmRleDogJ2luZGV4Jywga2V5OiAnaW5kZXgnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6T4Z624Z6Y4Z6B4Z+S4Z6b4Z694Z6TJywgZGF0YUluZGV4OiAnZmlyc3RfbmFtZScsIGtleTogJ2ZpcnN0X25hbWUnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6T4Z624Z6Y4Z6P4Z+S4Z6a4Z6A4Z684Z6bJywgZGF0YUluZGV4OiAnbGFzdF9uYW1lJywga2V5OiAnbGFzdF9uYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfh+GeouGfkuGek+GegOGelOGfkuGemuGevuGelOGfkuGemuGetuGen+GfiycsIGRhdGFJbmRleDogJ3VzZXJuYW1lJywga2V5OiAndXNlcm5hbWUnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6i4Z+K4Z644Z6Y4Z+C4Z6bJywgZGF0YUluZGV4OiAnZW1haWwnLCBrZXk6ICdlbWFpbCcsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpEnLCBkYXRhSW5kZXg6ICdwaG9uZScsIGtleTogJ3Bob25lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+Gej+GeveGek+GetuGekeGeuCcsIGRhdGFJbmRleDogJ3JvbGUnLCBrZXk6ICdyb2xlJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+Gej+GfgeGem+GfgeGegOGfkuGemuGetuGemOKAiyBJRCcsIGRhdGFJbmRleDogJ3RlbGVncmFtX2lkJywga2V5OiAndGVsZWdyYW1faWQnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6a4Z684Z6U4Z6Q4Z6PJywgZGF0YUluZGV4OiAncGhvdG9fdXJsJywga2V5OiAncGhvdG9fdXJsJywgcmVzcG9uc2l2ZTogWydzbSddLCBcbiAgICAgIHJlbmRlcjogKHRleHQ6IGFueSkgPT5cbiAgICAgICAgdGV4dCA/IDxJbWFnZSB3aWR0aD17NTB9IHNyYz17dGV4dH0gYWx0PVwiUGhvdG9cIiBzdHlsZT17eyBib3JkZXJSYWRpdXM6IDUsIGJvcmRlcjogJzFweCBzb2xpZCAjZGRkJyB9fSAvPiA6ICdObyBJbWFnZScsIFxuICAgIH0sXG4gICAgeyB0aXRsZTogJ+GelOGfkuGemuGel+GfgeGekScsIGRhdGFJbmRleDogJ2dyYWRfdHlwZScsIGtleTogJ2dyYWRfdHlwZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnp/hn5LhnpDhnrbhnpPhnpfhnrbhnpYnLCBkYXRhSW5kZXg6ICdzdGF0dXMnLCBrZXk6ICdzdGF0dXMnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAodXNlcnMgfHwgW10pLmZpbHRlcigoaXQpID0+IHtcbiAgICBjb25zdCBzZWFyY2ggPSBzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgaXQuZW1haWw/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgaXQudXNlcm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgaXQucm9sZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC5maXJzdF9uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHxcbiAgICAgIGl0Lmxhc3RfbmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC5waG9uZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC50ZWxlZ3JhbV9pZD8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC5ncmFkX3R5cGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgaXQuc3RhdHVzPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaClcbiAgICApO1xuICB9KTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+4Z6U4Z6J4Z+S4Z6H4Z644Z6i4Z+S4Z6T4Z6A4Z6U4Z+S4Z6a4Z6+4Z6U4Z+S4Z6a4Z624Z6f4Z+LPC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzEwcHgnLFxuICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxzcGFuPuGen+GemuGeu+GelDoge2ZpbHRlcmVkRGF0YT8ubGVuZ3RoIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVTZWFyY2h9IHR5cGU9XCJwcmltYXJ5XCI+4Z6F4Z6Y4Z+S4Z6a4Z+E4Z+HPC9CdXR0b24+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVSZXNldH0+4Z6A4Z+G4Z6O4Z6P4Z+L4Z6h4Z6+4Z6E4Z6c4Z634Z6JPC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PFBsdXNPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZShgL3VzZXJzL2Zvcm1gKX0+4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z64PC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxUYWJsZVxuICAgICAgICByb3dTZWxlY3Rpb249e3tcbiAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgIG9uQ2hhbmdlOiAoXywgc2VsZWN0ZWRSb3dzKSA9PiBzZXRTZWxlY3RlZFJvd3Moc2VsZWN0ZWRSb3dzKSxcbiAgICAgICAgfX1cbiAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgZGF0YVNvdXJjZT17ZmlsdGVyZWREYXRhLm1hcCgoaXQsIGluZGV4KSA9PiAoe1xuICAgICAgICAgIGtleTogaXQuaWQsXG4gICAgICAgICAgaW5kZXg6IGluZGV4ICsgMSxcbiAgICAgICAgICBuYW1lOiBpdC5maXJzdF9uYW1lLFxuICAgICAgICAgIC4uLml0LFxuICAgICAgICB9KSl9XG4gICAgICAgIHBhZ2luYXRpb249e3sgcGFnZVNpemU6IDEwLCBzaG93U2l6ZUNoYW5nZXI6IHRydWUgfX1cbiAgICAgICAgc2Nyb2xsPXt7IHg6ICdtYXgtY29udGVudCcgfX1cbiAgICAgIC8+XG4gICAgICA8TG9hZGluZ0RpYWxvZyB2aXNpYmxlPXt1c2Vyc1BlbmRpbmd9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBVc2VyTGlzdDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UsIFR5cG9ncmFwaHkgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFVzZXJBdHRlbmRhbmNlIH0gZnJvbSAnQC9zaGFyZWQvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVVc2VyQXR0ZW5kYW5jZUFjdGlvbiwgdXNlckF0dGVuZGFuY2VEZXRhaWxBY3Rpb24sIHVwZGF0ZVVzZXJBdHRlbmRhbmNlQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdXNlcl9hdHRlbmRhbmNlL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5jb25zdCBOZXdFZGl0VXNlckF0dGVuZGFuY2VQYWdlOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IHsgdXNlckF0dGVuZGFuY2UsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCB1c2VyQXR0ZW5kYW5jZVVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS51c2VyQXR0ZW5kYW5jZVxuICApO1xuICBjb25zdCBbZm9ybV0gPSBGb3JtLnVzZUZvcm0oKTtcblxuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XG4gIGNvbnN0IGlkID0gc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcblxuICBjb25zdCBbaXNDbGljaywgc2V0SXNDbGlja10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8g8J+RiSBGZXRjaCBkYXRhIHdoZW4gZWRpdGluZyBvciByZXNldCBmb3JtIHdoZW4gYWRkaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh1c2VyQXR0ZW5kYW5jZURldGFpbEFjdGlvbihOdW1iZXIoaWQpKSk7XG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPlVzZXIgQXR0ZW5kYW5jZSBkZXRhaWw8L2gyPlxuICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgPENvbCBzcGFuPXs4fT5cbiAgICAgICAgICBDb2RlOiA8VHlwb2dyYXBoeS5UZXh0IHN0eWxlPXt7IGNvbG9yOiB1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5tYWluX2NvZGUgPyAnZ3JlZW4nIDogJ2luaGVyaXQnIH19PlxuICAgICAgICAgICAgICAgICAge3VzZXJBdHRlbmRhbmNlPy52b2x1bnRlZXI/Lm1haW5fY29kZSB8fCB1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5jb2RlfVxuICAgICAgICAgICAgICAgIDwvVHlwb2dyYXBoeS5UZXh0PlxuICAgICAgICA8L0NvbD5cbiAgICAgICAgPENvbCBzcGFuPXs4fT5cbiAgICAgICAgICBNZWV0aW5nIE5vdGU6IDxUeXBvZ3JhcGh5LlRleHQgc3R5bGU9e3sgZm9udFdlaWdodDogJzYwMCcgfX0+e3VzZXJBdHRlbmRhbmNlPy5tZWV0aW5nX25vdGV9PC9UeXBvZ3JhcGh5LlRleHQ+XG4gICAgICAgIDwvQ29sPlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIE1lZXRpbmcgVGltZTogPFR5cG9ncmFwaHkuVGV4dCBzdHlsZT17eyBmb250V2VpZ2h0OiAnNjAwJyB9fT57bW9tZW50KHVzZXJBdHRlbmRhbmNlPy5tZWV0aW5nX3RpbWUpLmZvcm1hdCgnTU1NTSBEbyBZWVlZLCBoOm1tOnNzIGEnKSB8fCAnLSd9PC9UeXBvZ3JhcGh5LlRleHQ+XG4gICAgICAgIDwvQ29sPlxuICAgICAgPC9Sb3c+PGJyIC8+XG4gICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIFBob3RvOiA8aW1nXG4gICAgICAgICAgICAgICAgICAgIHNyYz17dXNlckF0dGVuZGFuY2U/LnZvbHVudGVlcj8ucGhvdG99XG4gICAgICAgICAgICAgICAgICAgIGFsdD0ncGhvdG8nXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6ICcxMDBweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc4cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2Jsb2NrJyxcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICA8L0NvbD5cbiAgICAgICAgPENvbCBzcGFuPXs4fT5cbiAgICAgICAgICBOYW1lIEtobWVyOiA8VHlwb2dyYXBoeS5UZXh0IHN0eWxlPXt7IGZvbnRXZWlnaHQ6ICc2MDAnIH19Pnt1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5sYXN0X25hbWVfa2htZXJ9IHt1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5maXJzdF9uYW1lX2tobWVyfTwvVHlwb2dyYXBoeS5UZXh0PlxuICAgICAgICA8L0NvbD5cbiAgICAgICAgPENvbCBzcGFuPXs4fT5cbiAgICAgICAgICBOYW1lIExhdGluOiA8VHlwb2dyYXBoeS5UZXh0IHN0eWxlPXt7IGZvbnRXZWlnaHQ6ICc2MDAnIH19Pnt1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5sYXN0X25hbWVfbGF0aW59IHt1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5maXJzdF9uYW1lX2xhdGlufTwvVHlwb2dyYXBoeS5UZXh0PlxuICAgICAgICA8L0NvbD5cbiAgICAgIDwvUm93PlxuICAgICAgPGJyIC8+XG4gICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIFZvbHVudGVlciBTdGF0dXM6IDxUeXBvZ3JhcGh5LlRleHQgc3R5bGU9e3sgZm9udFdlaWdodDogJzYwMCcgfX0+e3VzZXJBdHRlbmRhbmNlPy52b2x1bnRlZXI/LnZvbHVudGVlcl9zdGF0dXN9PC9UeXBvZ3JhcGh5LlRleHQ+XG4gICAgICAgIDwvQ29sPlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIEdlbmRlcjogPFR5cG9ncmFwaHkuVGV4dCBzdHlsZT17eyBmb250V2VpZ2h0OiAnNjAwJyB9fT57dXNlckF0dGVuZGFuY2U/LnZvbHVudGVlcj8uZ2VuZGVyfTwvVHlwb2dyYXBoeS5UZXh0PlxuICAgICAgICA8L0NvbD5cbiAgICAgICAgPENvbCBzcGFuPXs4fT5cbiAgICAgICAgICBEYXRlIG9mIEJpcnRoOiA8VHlwb2dyYXBoeS5UZXh0IHN0eWxlPXt7IGZvbnRXZWlnaHQ6ICc2MDAnIH19Pnt1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5kYXRlX29mX2JpcnRofTwvVHlwb2dyYXBoeS5UZXh0PlxuICAgICAgICA8L0NvbD5cbiAgICAgIDwvUm93PlxuICAgICAgPGJyIC8+XG4gICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIFBob25lIE51bWJlcjogPFR5cG9ncmFwaHkuVGV4dCBzdHlsZT17eyBmb250V2VpZ2h0OiAnNjAwJyB9fT57dXNlckF0dGVuZGFuY2U/LnZvbHVudGVlcj8ucGhvbmVfbnVtYmVyfTwvVHlwb2dyYXBoeS5UZXh0PlxuICAgICAgICA8L0NvbD5cbiAgICAgICAgPENvbCBzcGFuPXs4fT5cbiAgICAgICAgICBFbWFpbDogPFR5cG9ncmFwaHkuVGV4dCBzdHlsZT17eyBmb250V2VpZ2h0OiAnNjAwJyB9fT57dXNlckF0dGVuZGFuY2U/LnZvbHVudGVlcj8uZW1haWx9PC9UeXBvZ3JhcGh5LlRleHQ+XG4gICAgICAgIDwvQ29sPlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIEFkZHJlc3M6IDxUeXBvZ3JhcGh5LlRleHQgc3R5bGU9e3sgZm9udFdlaWdodDogJzYwMCcgfX0+e3VzZXJBdHRlbmRhbmNlPy52b2x1bnRlZXI/LnBodW1pfSB7dXNlckF0dGVuZGFuY2U/LnZvbHVudGVlcj8uc2FuZ2thdH0ge3VzZXJBdHRlbmRhbmNlPy52b2x1bnRlZXI/LmtoYW59IHt1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5wcm92aW5jZV9pZH08L1R5cG9ncmFwaHkuVGV4dD5cbiAgICAgICAgPC9Db2w+XG4gICAgICA8L1Jvdz5cbiAgICAgIDxiciAvPlxuICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgPEJ1dHRvbiBodG1sVHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKCcvdXNlci1hdHRlbmRhbmNlcycpfT5cbiAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgPC9Db2w+XG4gICAgICA8L1Jvdz5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRVc2VyQXR0ZW5kYW5jZVBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNwYWNlLCBUYWJsZSwgVHlwb2dyYXBoeSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMb2FkaW5nRGlhbG9nIGZyb20gJy4uLy4uLy4uL2NvbnRhaW5lci9kaWFsb2dzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IERlbGV0ZU91dGxpbmVkLCBFZGl0T3V0bGluZWQsIFBsdXNPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IGRlbGV0ZVVzZXJBdHRlbmRhbmNlQWN0aW9uLCB1c2VyQXR0ZW5kYW5jZURldGFpbEFjdGlvbiwgZmV0Y2hVc2VyQXR0ZW5kYW5jZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy91c2VyX2F0dGVuZGFuY2UvY29yZS9hY3Rpb25zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuY29uc3QgVXNlckF0dGVuZGFuY2VMaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IHsgdXNlckF0dGVuZGFuY2VzLCB1c2VyQXR0ZW5kYW5jZXNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUudXNlckF0dGVuZGFuY2UpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hVc2VyQXR0ZW5kYW5jZXMoKSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKHVzZXJBdHRlbmRhbmNlRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC91c2VyLWF0dGVuZGFuY2VzL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlVXNlckF0dGVuZGFuY2VBY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hVc2VyQXR0ZW5kYW5jZXMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICfhnpvhn4HhnoHhnoDhnrzhnoonLFxuICAgICAga2V5OiAnY29kZScsXG4gICAgICByZXNwb25zaXZlOiBbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJ10sXG4gICAgICByZW5kZXI6IChfOiBzdHJpbmcsIHJlY29yZDogYW55KSA9PiAoXG4gICAgICAgIDxTcGFjZSBzaXplPVwic21hbGxcIj5cbiAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJsaW5rXCIgb25DbGljaz17KCkgPT4gaGFuZGxlRWRpdChyZWNvcmQuaWQpfT5cbiAgICAgICAgICAgIDxUeXBvZ3JhcGh5LlRleHQgc3R5bGU9e3sgY29sb3I6IHJlY29yZD8udm9sdW50ZWVyPy5tYWluX2NvZGUgPyAnZ3JlZW4nIDogJ2luaGVyaXQnIH19PlxuICAgICAgICAgICAgICB7cmVjb3JkPy52b2x1bnRlZXI/Lm1haW5fY29kZSB8fCByZWNvcmQ/LnZvbHVudGVlcj8uY29kZX1cbiAgICAgICAgICAgIDwvVHlwb2dyYXBoeS5UZXh0PlxuICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgKSxcbiAgICB9LFxuICAgIHsgdGl0bGU6ICfhnojhn5Lhnpjhn4Thn4fhnoHhn5Lhnpjhn4LhnponLCBkYXRhSW5kZXg6ICduYW1lS2htZXInLCBrZXk6ICduYW1lS2htZXInLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6I4Z+S4Z6Y4Z+E4Z+H4Z6H4Z624Z6X4Z624Z6f4Z624Z6h4Z624Z6P4Z624Z+G4Z6EJywgZGF0YUluZGV4OiAnbmFtZUxhdGluJywga2V5OiAnbmFtZUxhdGluJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+Gel+GfgeGekScsIGRhdGFJbmRleDogJ2dlbmRlcicsIGtleTogJ2dlbmRlcicsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpEnLCBkYXRhSW5kZXg6ICdwaG9uZU51bWJlcicsIGtleTogJ3Bob25lTnVtYmVyJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GegOGfhuGejuGej+Gfi+GeheGfhuGejuGetuGfhuGegOGet+GeheGfkuGeheGelOGfkuGemuGeh+Geu+GfhicsIGRhdGFJbmRleDogJ21lZXRpbmdfbm90ZScsIGtleTogJ21lZXRpbmdfbm90ZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgXG4gICAgICB0aXRsZTogJ+GeluGfgeGem+GenOGfgeGem+GetuGelOGfkuGemuGeh+Geu+GfhicsIFxuICAgICAgZGF0YUluZGV4OiAnbWVldGluZ190aW1lJywgXG4gICAgICBrZXk6ICdtZWV0aW5nX3RpbWUnLCBcbiAgICAgIHJlc3BvbnNpdmU6IFsnc20nXSwgXG4gICAgICByZW5kZXI6IChfOiBhbnksIHJlY29yZDogYW55KSA9PiAobW9tZW50KHJlY29yZC5tZWV0aW5nX3RpbWUpLmZvcm1hdCgnTU1NTSBEbyBZWVlZLCBoOm1tOnNzIGEnKSB8fCAnLScpXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fSBkYW5nZXIgb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlKHJlY29yZC5pZCl9IC8+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICApLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3QgZmlsdGVyZWREYXRhID0gKHVzZXJBdHRlbmRhbmNlcyB8fCBbXSkuZmlsdGVyKChpdCkgPT4ge1xuICAgIGNvbnN0IHNlYXJjaCA9IHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiAoXG4gICAgICBpdC5tZWV0aW5nX25vdGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgaXQubWVldGluZ190aW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHxcbiAgICAgIGl0LnZvbHVudGVlcj8uY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC52b2x1bnRlZXI/Lm1haW5fY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC52b2x1bnRlZXI/Lmxhc3RfbmFtZV9raG1lcj8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC52b2x1bnRlZXI/LmZpcnN0X25hbWVfa2htZXI/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgaXQudm9sdW50ZWVyPy5sYXN0X25hbWVfbGF0aW4/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgaXQudm9sdW50ZWVyPy5maXJzdF9uYW1lX2xhdGluPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHxcbiAgICAgIGl0LnZvbHVudGVlcj8uZ2VuZGVyPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHxcbiAgICAgIGl0LnZvbHVudGVlcj8ucGhvbmVfbnVtYmVyPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaClcbiAgICApO1xuICB9KTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+VXNlciBBdHRlbmRhbmNlIExpc3Q8L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPFRhYmxlXG4gICAgICAgIHJvd1NlbGVjdGlvbj17e1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgb25DaGFuZ2U6IChfLCBzZWxlY3RlZFJvd3MpID0+IHNldFNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3MpLFxuICAgICAgICB9fVxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBkYXRhU291cmNlPXtmaWx0ZXJlZERhdGEubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAga2V5OiBpdC5pZCxcbiAgICAgICAgICBpbmRleDogaW5kZXggKyAxLFxuICAgICAgICAgIG5hbWVLaG1lcjogYCR7aXQ/LnZvbHVudGVlcj8ubGFzdF9uYW1lX2tobWVyfSAke2l0Py52b2x1bnRlZXI/LmZpcnN0X25hbWVfa2htZXJ9YCxcbiAgICAgICAgICBuYW1lTGF0aW46IGAke2l0Py52b2x1bnRlZXI/Lmxhc3RfbmFtZV9sYXRpbn0gJHtpdD8udm9sdW50ZWVyPy5maXJzdF9uYW1lX2xhdGlufWAsXG4gICAgICAgICAgZ2VuZGVyOiBpdD8udm9sdW50ZWVyPy5nZW5kZXIsXG4gICAgICAgICAgcGhvbmVOdW1iZXI6IGl0Py52b2x1bnRlZXI/LnBob25lX251bWJlcixcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7IHBhZ2VTaXplOiAxMCwgc2hvd1NpemVDaGFuZ2VyOiB0cnVlIH19XG4gICAgICAgIHNjcm9sbD17eyB4OiAnbWF4LWNvbnRlbnQnIH19XG4gICAgICAvPlxuICAgICAgPExvYWRpbmdEaWFsb2cgdmlzaWJsZT17dXNlckF0dGVuZGFuY2VzUGVuZGluZ30gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJBdHRlbmRhbmNlTGlzdDtcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwidXNlRGlzcGF0Y2giLCJ1c2VTZWxlY3RvciIsImNyZWF0ZUludGVyZXN0ZWRUZWFtQWN0aW9uIiwiaW50ZXJlc3RlZFRlYW1EZXRhaWxBY3Rpb24iLCJ1cGRhdGVJbnRlcmVzdGVkVGVhbUFjdGlvbiIsInVzZU5hdmlnYXRlIiwiVGV4dEFyZWEiLCJOZXdFZGl0SW50ZXJlc3RlZFRlYW1QYWdlIiwiZGlzcGF0Y2giLCJuYXZpZ2F0ZSIsIl91c2VTZWxlY3RvciIsInN0YXRlIiwiaW50ZXJlc3RlZFRlYW0iLCJpbnRlcmVzdGVkVGVhbXMiLCJyZWdpc3RlckVycm9yTWVzc2FnZSIsImludGVyZXN0ZWRUZWFtVXBkYXRlUGVuZGluZyIsIl9Gb3JtJHVzZUZvcm0iLCJfRm9ybSIsInVzZUZvcm0iLCJfRm9ybSR1c2VGb3JtMiIsIl9zbGljZWRUb0FycmF5IiwiZm9ybSIsInNlYXJjaFBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImxvY2F0aW9uIiwic2VhcmNoIiwiaWQiLCJnZXQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiaXNDbGljayIsInNldElzQ2xpY2siLCJOdW1iZXIiLCJyZXNldEZpZWxkcyIsInNldEZpZWxkc1ZhbHVlIiwibmFtZSIsImRlc2NyaXB0aW9uIiwicGFyZW50X2lkIiwiX21lc3NhZ2UiLCJlcnJvciIsInN1Y2Nlc3MiLCJvbkZpbmlzaCIsInZhbHVlcyIsImRhdGEiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJsYXlvdXQiLCJzdHlsZSIsIm1heFdpZHRoIiwibWFyZ2luIiwiX1JvdyIsImd1dHRlciIsIl9Db2wiLCJzcGFuIiwiSXRlbSIsImxhYmVsIiwicnVsZXMiLCJyZXF1aXJlZCIsIm1lc3NhZ2UiLCJfSW5wdXQiLCJfU2VsZWN0IiwiYWxsb3dDbGVhciIsInBsYWNlaG9sZGVyIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwidGVhbSIsIk9wdGlvbiIsImtleSIsInZhbHVlIiwicm93cyIsIl9CdXR0b24iLCJ0eXBlIiwiYmxvY2siLCJodG1sVHlwZSIsImxvYWRpbmciLCJvbkNsaWNrIiwiTG9hZGluZ0RpYWxvZyIsIkRlbGV0ZU91dGxpbmVkIiwiRWRpdE91dGxpbmVkIiwiUGx1c091dGxpbmVkIiwiZGVsZXRlSW50ZXJlc3RlZFRlYW1BY3Rpb24iLCJmZXRjaEludGVyZXN0ZWRUZWFtcyIsIlN3YWwiLCJJbnRlcmVzdGVkVGVhbUxpc3QiLCJzZWxlY3RlZFJvd3MiLCJzZXRTZWxlY3RlZFJvd3MiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNlYXJjaFRleHQiLCJzZXRTZWFyY2hUZXh0IiwiaW50ZXJlc3RlZFRlYW1zUGVuZGluZyIsImhhbmRsZUVkaXQiLCJjb25jYXQiLCJoYW5kbGVEZWxldGUiLCJmaXJlIiwidGl0bGUiLCJ0ZXh0IiwiaWNvbiIsInNob3dDb25maXJtQnV0dG9uIiwic2hvd0NhbmNlbEJ1dHRvbiIsImh0bWwiLCJkaWRPcGVuIiwiX1N3YWwkZ2V0UG9wdXAiLCJfU3dhbCRnZXRQb3B1cDIiLCJjb25maXJtQnV0dG9uIiwiZ2V0UG9wdXAiLCJxdWVyeVNlbGVjdG9yIiwiY2FuY2VsQnV0dG9uIiwiYWRkRXZlbnRMaXN0ZW5lciIsInRoZW4iLCJjbG9zZSIsImhhbmRsZVNlYXJjaCIsInRyaW0iLCJoYW5kbGVSZXNldCIsImNvbHVtbnMiLCJkYXRhSW5kZXgiLCJyZXNwb25zaXZlIiwicmVuZGVyIiwiXyIsInJlY29yZCIsIl9TcGFjZSIsInNpemUiLCJkYW5nZXIiLCJmaWx0ZXJlZERhdGEiLCJmaWx0ZXIiLCJpdCIsIl9pdCRuYW1lIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsIm92ZXJmbG93WCIsImRpc3BsYXkiLCJqdXN0aWZ5Q29udGVudCIsInBhZGRpbmciLCJiYWNrZ3JvdW5kIiwibWFyZ2luQm90dG9tIiwiZmxleFdyYXAiLCJ3cmFwIiwibGVuZ3RoIiwid2lkdGgiLCJvbkNoYW5nZSIsImUiLCJ0YXJnZXQiLCJfVGFibGUiLCJyb3dTZWxlY3Rpb24iLCJkYXRhU291cmNlIiwiaW5kZXgiLCJfb2JqZWN0U3ByZWFkIiwicGFnaW5hdGlvbiIsInBhZ2VTaXplIiwic2hvd1NpemVDaGFuZ2VyIiwic2Nyb2xsIiwieCIsInZpc2libGUiLCJjcmVhdGVMYW5ndWFnZUFjdGlvbiIsImxhbmd1YWdlRGV0YWlsQWN0aW9uIiwidXBkYXRlTGFuZ3VhZ2VBY3Rpb24iLCJOZXdFZGl0TGFuZ3VhZ2VQYWdlIiwibGFuZ3VhZ2UiLCJsYW5ndWFnZVVwZGF0ZVBlbmRpbmciLCJkZWxldGVMYW5ndWFnZUFjdGlvbiIsImZldGNoTGFuZ3VhZ2VzIiwiTGFuZ3VhZ2VMaXN0IiwibGFuZ3VhZ2VzIiwibGFuZ3VhZ2VzUGVuZGluZyIsInQiLCJyIiwiU3ltYm9sIiwibiIsIml0ZXJhdG9yIiwibyIsInRvU3RyaW5nVGFnIiwiaSIsImMiLCJwcm90b3R5cGUiLCJHZW5lcmF0b3IiLCJ1IiwiT2JqZWN0IiwiY3JlYXRlIiwiX3JlZ2VuZXJhdG9yRGVmaW5lMiIsImYiLCJwIiwieSIsIkciLCJ2IiwiYSIsImQiLCJiaW5kIiwibCIsIlR5cGVFcnJvciIsImNhbGwiLCJkb25lIiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsImdldFByb3RvdHlwZU9mIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJkaXNwbGF5TmFtZSIsIl9yZWdlbmVyYXRvciIsInciLCJtIiwiZGVmaW5lUHJvcGVydHkiLCJfcmVnZW5lcmF0b3JEZWZpbmUiLCJfaW52b2tlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiUHJvbWlzZSIsInJlc29sdmUiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJnZXRXaXRoQ29uZmlnIiwiVVJMIiwibm90aWZ5VXNlclRlbGVncmFtU2VydmljZSIsIl9yZWYiLCJfY2FsbGVlIiwidXNlcl9pZCIsIl9jb250ZXh0IiwiTk9USUZZIiwiX3giLCJfeDIiLCJub3RpZnlVc2VyQnlTdGF0dXMiLCJfcmVmMiIsIl9jYWxsZWUyIiwic3RhdHVzIiwiX2NvbnRleHQyIiwiTk9USUZZX1NUQVRVUyIsIl94MyIsIl94NCIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVJlc3QiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsImZyb20iLCJ0ZXN0IiwibmV4dCIsInB1c2giLCJJbnZpdGF0aW9uX3RvX1ZvbHVudGVlcl9CcmllZmluZ19NZWV0aW5nIiwiTm90aWZpY2F0aW9uUGFnZSIsInNlbGVjdGVkU3RhdHVzIiwic2V0U2VsZWN0ZWRTdGF0dXMiLCJtZXNzYWdlVGV4dCIsInNldE1lc3NhZ2VUZXh0IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJjb25maXJtVmlzaWJsZSIsInNldENvbmZpcm1WaXNpYmxlIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJmaW5hbENvbmZpcm1WaXNpYmxlIiwic2V0RmluYWxDb25maXJtVmlzaWJsZSIsIl91c2VTdGF0ZTEiLCJfdXNlU3RhdGUxMCIsInNlbmRUeXBlIiwic2V0U2VuZFR5cGUiLCJhdXRoIiwidXNlcnMiLCJ1c2VyU3RhdHVzZXMiLCJzaG93Q29uZmlybURpYWxvZyIsIndhcm5pbmciLCJoYW5kbGVGaXJzdENvbmZpcm0iLCJoYW5kbGVDb25maXJtU2VuZCIsIl90IiwibGciLCJfTW9kYWwiLCJvbk9rIiwib25DYW5jZWwiLCJva1RleHQiLCJjYW5jZWxUZXh0IiwiY3JlYXRlT2NjdXBhdGlvbkFjdGlvbiIsIm9jY3VwYXRpb25EZXRhaWxBY3Rpb24iLCJ1cGRhdGVPY2N1cGF0aW9uQWN0aW9uIiwiTmV3RWRpdE9jY3VwYXRpb25QYWdlIiwib2NjdXBhdGlvbiIsIm9jY3VwYXRpb25VcGRhdGVQZW5kaW5nIiwiZGVsZXRlT2NjdXBhdGlvbkFjdGlvbiIsImZldGNoT2NjdXBhdGlvbnMiLCJPY2N1cGF0aW9uTGlzdCIsIm9jY3VwYXRpb25zIiwib2NjdXBhdGlvbnNQZW5kaW5nIiwiY3JlYXRlT2ZmZXJQcm9ncmFtQWN0aW9uIiwib2ZmZXJQcm9ncmFtRGV0YWlsQWN0aW9uIiwidXBkYXRlT2ZmZXJQcm9ncmFtQWN0aW9uIiwiTmV3RWRpdE9mZmVyUHJvZ3JhbVBhZ2UiLCJvZmZlclByb2dyYW0iLCJvZmZlclByb2dyYW1VcGRhdGVQZW5kaW5nIiwiZGVsZXRlT2ZmZXJQcm9ncmFtQWN0aW9uIiwiZmV0Y2hPZmZlclByb2dyYW1zIiwiT2ZmZXJQcm9ncmFtTGlzdCIsIm9mZmVyUHJvZ3JhbXMiLCJvZmZlclByb2dyYW1zUGVuZGluZyIsImNyZWF0ZU9wcG9ydHVuaXR5U291cmNlQWN0aW9uIiwib3Bwb3J0dW5pdHlTb3VyY2VEZXRhaWxBY3Rpb24iLCJ1cGRhdGVPcHBvcnR1bml0eVNvdXJjZUFjdGlvbiIsIk5ld0VkaXRPcHBvcnR1bml0eVNvdXJjZVBhZ2UiLCJvcHBvcnR1bml0eVNvdXJjZSIsIm9wcG9ydHVuaXR5U291cmNlVXBkYXRlUGVuZGluZyIsImRlbGV0ZU9wcG9ydHVuaXR5U291cmNlQWN0aW9uIiwiZmV0Y2hPcHBvcnR1bml0eVNvdXJjZXMiLCJPcHBvcnR1bml0eVNvdXJjZUxpc3QiLCJvcHBvcnR1bml0eVNvdXJjZXMiLCJvcHBvcnR1bml0eVNvdXJjZXNQZW5kaW5nIiwiY3JlYXRlUHJvdmluY2VBY3Rpb24iLCJwcm92aW5jZURldGFpbEFjdGlvbiIsInVwZGF0ZVByb3ZpbmNlQWN0aW9uIiwiTmV3RWRpdFByb3ZpbmNlUGFnZSIsInByb3ZpbmNlIiwicHJvdmluY2VVcGRhdGVQZW5kaW5nIiwiZGVsZXRlUHJvdmluY2VBY3Rpb24iLCJmZXRjaFByb3ZpbmNlcyIsIlByb3ZpbmNlTGlzdCIsInByb3ZpbmNlcyIsInByb3ZpbmNlc1BlbmRpbmciLCJjcmVhdGVTa2lsbEFjdGlvbiIsInNraWxsRGV0YWlsQWN0aW9uIiwidXBkYXRlU2tpbGxBY3Rpb24iLCJOZXdFZGl0U2tpbGxQYWdlIiwic2tpbGwiLCJza2lsbFVwZGF0ZVBlbmRpbmciLCJkZWxldGVTa2lsbEFjdGlvbiIsImZldGNoU2tpbGxzIiwiU2tpbGxMaXN0Iiwic2tpbGxzIiwic2tpbGxzUGVuZGluZyIsImNyZWF0ZVRlcm1zQ29uZGl0aW9uQWN0aW9uIiwidGVybXNDb25kaXRpb25EZXRhaWxBY3Rpb24iLCJ1cGRhdGVUZXJtc0NvbmRpdGlvbkFjdGlvbiIsIk5ld0VkaXRUZXJtc0NvbmRpdGlvblBhZ2UiLCJ0ZXJtc0NvbmRpdGlvbiIsInRlcm1zQ29uZGl0aW9uVXBkYXRlUGVuZGluZyIsImRlbGV0ZVRlcm1zQ29uZGl0aW9uQWN0aW9uIiwiZmV0Y2hUZXJtc0NvbmRpdGlvbnMiLCJUZXJtc0NvbmRpdGlvbkxpc3QiLCJ0ZXJtc0NvbmRpdGlvbnMiLCJ0ZXJtc0NvbmRpdGlvbnNQZW5kaW5nIiwiY3JlYXRlVHJhaW5pbmdTZXNzaW9uQWN0aW9uIiwidHJhaW5pbmdTZXNzaW9uRGV0YWlsQWN0aW9uIiwidXBkYXRlVHJhaW5pbmdTZXNzaW9uQWN0aW9uIiwiTmV3RWRpdFRyYWluaW5nU2Vzc2lvblBhZ2UiLCJ0cmFpbmluZ1Nlc3Npb24iLCJ0cmFpbmluZ1Nlc3Npb25VcGRhdGVQZW5kaW5nIiwiZGVsZXRlVHJhaW5pbmdTZXNzaW9uQWN0aW9uIiwiZmV0Y2hUcmFpbmluZ1Nlc3Npb25zIiwiVHJhaW5pbmdTZXNzaW9uTGlzdCIsInRyYWluaW5nU2Vzc2lvbnMiLCJ0cmFpbmluZ1Nlc3Npb25zUGVuZGluZyIsImNyZWF0ZVRyYXZlbERheUFjdGlvbiIsInRyYXZlbERheURldGFpbEFjdGlvbiIsInVwZGF0ZVRyYXZlbERheUFjdGlvbiIsIk5ld0VkaXRUcmF2ZWxEYXlQYWdlIiwidHJhdmVsRGF5IiwidHJhdmVsRGF5VXBkYXRlUGVuZGluZyIsImRlbGV0ZVRyYXZlbERheUFjdGlvbiIsImZldGNoVHJhdmVsRGF5cyIsIlRyYXZlbERheUxpc3QiLCJ0cmF2ZWxEYXlzIiwidHJhdmVsRGF5c1BlbmRpbmciLCJfZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsIl90b1ByaW1pdGl2ZSIsIl90eXBlb2YiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsImNyZWF0ZVVzZXJBY3Rpb24iLCJ1c2VyRGV0YWlsQWN0aW9uIiwidXBkYXRlVXNlckFjdGlvbiIsInBvc3RVcGxvYWQiLCJVcGxvYWRPdXRsaW5lZCIsIk5ld0VkaXRVc2VyUGFnZSIsInVzZXIiLCJ1c2VyVXBkYXRlUGVuZGluZyIsInBob3RvVXJsIiwic2V0UGhvdG9VcmwiLCJwcmV2aWV3VmlzaWJsZSIsInNldFByZXZpZXdWaXNpYmxlIiwicHJldmlld1RpdGxlIiwic2V0UHJldmlld1RpdGxlIiwicHJldmlld0NvbnRlbnQiLCJzZXRQcmV2aWV3Q29udGVudCIsInBob3RvTGlzdCIsInNldFBob3RvTGlzdCIsIl91c2VTZWxlY3RvcjIiLCJjdXJyZW50VXNlciIsImlzQWRtaW4iLCJyb2xlIiwiZmlyc3RfbmFtZSIsImxhc3RfbmFtZSIsInVzZXJuYW1lIiwiZW1haWwiLCJwaG9uZSIsInRlbGVncmFtX2lkIiwicGhvdG9fdXJsIiwiZ3JhZF90eXBlIiwiaGFuZGxlRmlsZUNoYW5nZSIsImZpbGUiLCJmaWVsZE5hbWUiLCJmb3JtRGF0YSIsInJlc3BvbnNlIiwiY29uc29sZSIsIkZvcm1EYXRhIiwiYXBwZW5kIiwidXJsIiwiaGFuZGxlUGhvdG9VcGxvYWRDaGFuZ2UiLCJwaG90b0ZpbGUiLCJoYW5kbGVGaWxlQ2hhbmdlTmV3IiwiX3JlZjMiLCJfY2FsbGVlMyIsImZpbGVMaXN0Iiwic2V0RmlsZUxpc3QiLCJ1cGRhdGVkRmlsZUxpc3QiLCJkb25lRmlsZUxpc3QiLCJlcnJvckZpbGVMaXN0IiwiX3QyIiwiX2NvbnRleHQzIiwiZm9yRWFjaCIsIm9yaWdpbkZpbGVPYmoiLCJfeDUiLCJfeDYiLCJfeDciLCJoYW5kbGVQaG90b1VwbG9hZENoYW5nZU5ldyIsIl9yZWY1IiwiX2NhbGxlZTQiLCJfcmVmNCIsIl9jb250ZXh0NCIsIl94OCIsImJlZm9yZVVwbG9hZCIsImlzSW1hZ2UiLCJzdGFydHNXaXRoIiwiaGFuZGxlUHJldmlldyIsInNyYyIsImFsdCIsInVwbG9hZEJ1dHRvbiIsInNldFVybCIsInBvc2l0aW9uIiwiY3Vyc29yIiwibWF4SGVpZ2h0IiwiYm9yZGVyUmFkaXVzIiwiYm90dG9tIiwicmlnaHQiLCJjb2xvciIsIl9kb2N1bWVudCRnZXRFbGVtZW50QiIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJjbGljayIsImZpbGVzIiwiY3JlYXRlT2JqZWN0VVJMIiwiX1VwbG9hZCIsImxpc3RUeXBlIiwic2hvd1VwbG9hZExpc3QiLCJzaG93UHJldmlld0ljb24iLCJzaG93UmVtb3ZlSWNvbiIsImNsYXNzTmFtZSIsImp1c3RpZnkiLCJmb290ZXIiLCJkZWxldGVVc2VyQWN0aW9uIiwiZmV0Y2hVc2VycyIsIlVzZXJMaXN0IiwidXNlcnNQZW5kaW5nIiwiX0ltYWdlIiwiYm9yZGVyIiwiX2l0JGVtYWlsIiwiX2l0JHVzZXJuYW1lIiwiX2l0JHJvbGUiLCJfaXQkZmlyc3RfbmFtZSIsIl9pdCRsYXN0X25hbWUiLCJfaXQkcGhvbmUiLCJfaXQkdGVsZWdyYW1faWQiLCJfaXQkZ3JhZF90eXBlIiwiX2l0JHN0YXR1cyIsInVzZXJBdHRlbmRhbmNlRGV0YWlsQWN0aW9uIiwibW9tZW50IiwiTmV3RWRpdFVzZXJBdHRlbmRhbmNlUGFnZSIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1biIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjIiLCJfdXNlckF0dGVuZGFuY2Ukdm9sdW4zIiwiX3VzZXJBdHRlbmRhbmNlJHZvbHVuNCIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjUiLCJfdXNlckF0dGVuZGFuY2Ukdm9sdW42IiwiX3VzZXJBdHRlbmRhbmNlJHZvbHVuNyIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjgiLCJfdXNlckF0dGVuZGFuY2Ukdm9sdW45IiwiX3VzZXJBdHRlbmRhbmNlJHZvbHVuMCIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjEiLCJfdXNlckF0dGVuZGFuY2Ukdm9sdW4xMCIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjExIiwiX3VzZXJBdHRlbmRhbmNlJHZvbHVuMTIiLCJfdXNlckF0dGVuZGFuY2Ukdm9sdW4xMyIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjE0IiwiX3VzZXJBdHRlbmRhbmNlJHZvbHVuMTUiLCJ1c2VyQXR0ZW5kYW5jZSIsInVzZXJBdHRlbmRhbmNlVXBkYXRlUGVuZGluZyIsIl9UeXBvZ3JhcGh5IiwiVGV4dCIsInZvbHVudGVlciIsIm1haW5fY29kZSIsImNvZGUiLCJmb250V2VpZ2h0IiwibWVldGluZ19ub3RlIiwibWVldGluZ190aW1lIiwiZm9ybWF0IiwicGhvdG8iLCJsYXN0X25hbWVfa2htZXIiLCJmaXJzdF9uYW1lX2tobWVyIiwibGFzdF9uYW1lX2xhdGluIiwiZmlyc3RfbmFtZV9sYXRpbiIsInZvbHVudGVlcl9zdGF0dXMiLCJnZW5kZXIiLCJkYXRlX29mX2JpcnRoIiwicGhvbmVfbnVtYmVyIiwicGh1bWkiLCJzYW5na2F0Iiwia2hhbiIsInByb3ZpbmNlX2lkIiwiZGVsZXRlVXNlckF0dGVuZGFuY2VBY3Rpb24iLCJmZXRjaFVzZXJBdHRlbmRhbmNlcyIsIlVzZXJBdHRlbmRhbmNlTGlzdCIsInVzZXJBdHRlbmRhbmNlcyIsInVzZXJBdHRlbmRhbmNlc1BlbmRpbmciLCJfcmVjb3JkJHZvbHVudGVlciIsIl9yZWNvcmQkdm9sdW50ZWVyMiIsIl9yZWNvcmQkdm9sdW50ZWVyMyIsIl9pdCRtZWV0aW5nX25vdGUiLCJfaXQkbWVldGluZ190aW1lIiwiX2l0JHZvbHVudGVlciIsIl9pdCR2b2x1bnRlZXIyIiwiX2l0JHZvbHVudGVlcjMiLCJfaXQkdm9sdW50ZWVyNCIsIl9pdCR2b2x1bnRlZXI1IiwiX2l0JHZvbHVudGVlcjYiLCJfaXQkdm9sdW50ZWVyNyIsIl9pdCR2b2x1bnRlZXI4IiwiX2l0JHZvbHVudGVlcjkiLCJfaXQkdm9sdW50ZWVyMCIsIl9pdCR2b2x1bnRlZXIxIiwiX2l0JHZvbHVudGVlcjEwIiwiX2l0JHZvbHVudGVlcjExIiwiX2l0JHZvbHVudGVlcjEyIiwibmFtZUtobWVyIiwibmFtZUxhdGluIiwicGhvbmVOdW1iZXIiXSwic291cmNlUm9vdCI6IiJ9