"use strict"; (self["webpackChunk_core_volunteer_app"] = self["webpackChunk_core_volunteer_app"] || []).push([["main-src_shared_views_m"],{ /***/ "./src/shared/views/main/volunteer/approved.tsx": /*!******************************************************!*\ !*** ./src/shared/views/main/volunteer/approved.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_25__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js"); /* harmony import */ var antd_es_input_number__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! antd/es/input-number */ "../../../node_modules/antd/lib/input-number/index.js"); /* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js"); /* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_tag__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! antd/es/tag */ "../../../node_modules/antd/lib/tag/index.js"); /* harmony import */ var antd_es_select__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! antd/es/select */ "../../../node_modules/antd/lib/select/index.js"); /* harmony import */ var antd_es_image__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! antd/es/image */ "../../../node_modules/antd/lib/image/index.js"); /* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_11__); /* harmony import */ var antd_es_typography__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/typography */ "../../../node_modules/antd/lib/typography/index.js"); /* harmony import */ var antd_es_modal__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/modal */ "../../../node_modules/antd/lib/modal/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/volunteer/core/actions */ "./src/services/volunteer/core/actions.ts"); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* 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 _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/SortAscendingOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/FileExcelOutlined.js"); /* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! xlsx */ "../../../node_modules/xlsx/xlsx.mjs"); /* harmony import */ var jspdf_autotable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! jspdf-autotable */ "../../../node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.js"); /* harmony import */ var jspdf_autotable__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(jspdf_autotable__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var notiflix__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! notiflix */ "../../../node_modules/notiflix/dist/notiflix-aio-3.2.8.min.js"); /* harmony import */ var notiflix__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(notiflix__WEBPACK_IMPORTED_MODULE_5__); /* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! moment */ "../../../node_modules/moment/moment.js"); /* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_6__); 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 _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) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; 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 confirm = antd_es_modal__WEBPACK_IMPORTED_MODULE_7__["default"].confirm; var statusColors = { Register: 'blue', Shortlist: 'gold', Interview: 'purple', Participants: 'green', Reserve: 'cyan', Failed: 'red', Resignation: 'orange', Disqualification: 'volcano' }; var ApprovedVoluneers = function ApprovedVoluneers(_ref) { var _volunteers$meta, _volunteers$meta2; var status = _ref.status; var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_8__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_9__.useNavigate)(); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState2 = _slicedToArray(_useState, 2), selectedRows = _useState2[0], setSelectedRows = _useState2[1]; var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_8__.useSelector)(function (state) { return state.volunteer; }), volunteers = _useSelector.volunteers, volunteerPending = _useSelector.volunteerPending, dashboard = _useSelector.dashboard, provinces = _useSelector.provinces, educationInstitutions = _useSelector.educationInstitutions, interestedTeams = _useSelector.interestedTeams, volunteerEvents = _useSelector.volunteerEvents, skills = _useSelector.skills, languages = _useSelector.languages; var _useSelector2 = (0,react_redux__WEBPACK_IMPORTED_MODULE_8__.useSelector)(function (state) { return state; }), auth = _useSelector2.auth; var currentUser = auth.currentUser; var isAdmin = (currentUser === null || currentUser === void 0 ? void 0 : currentUser.role) === "super_admin"; // Check user role var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(1), _useState4 = _slicedToArray(_useState3, 2), currentPage = _useState4[0], setCurrentPage = _useState4[1]; var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(10), _useState6 = _slicedToArray(_useState5, 2), pageSize = _useState6[0], setPageSize = _useState6[1]; var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""), _useState8 = _slicedToArray(_useState7, 2), search = _useState8[0], setSearch = _useState8[1]; var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)("desc"), _useState0 = _slicedToArray(_useState9, 2), sortOrder = _useState0[0], setSortOrder = _useState0[1]; var _useState1 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""), _useState10 = _slicedToArray(_useState1, 2), province = _useState10[0], setProvince = _useState10[1]; var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0), _useState12 = _slicedToArray(_useState11, 2), teamId = _useState12[0], setTeamId = _useState12[1]; var _useState13 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState14 = _slicedToArray(_useState13, 2), eventIds = _useState14[0], setEventIds = _useState14[1]; var _useState15 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0), _useState16 = _slicedToArray(_useState15, 2), languageId = _useState16[0], setLanguageId = _useState16[1]; var _useState17 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0), _useState18 = _slicedToArray(_useState17, 2), skillId = _useState18[0], setSkillId = _useState18[1]; var _useState19 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null), _useState20 = _slicedToArray(_useState19, 2), selectedInstitution = _useState20[0], setSelectedInstitution = _useState20[1]; var _useState21 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null), _useState22 = _slicedToArray(_useState21, 2), scoreFrom = _useState22[0], setScoreFrom = _useState22[1]; var _useState23 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null), _useState24 = _slicedToArray(_useState23, 2), scoreTo = _useState24[0], setScoreTo = _useState24[1]; (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.fetchProvince)()); dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.fetchEducationInstitutions)()); dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.fetchTeam)()); dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.fetchEvent)()); dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.fetchLanguateAction)()); dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.fetchSkillAction)()); }, [dispatch]); (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.fetchEducationInstitutions)()); }, [dispatch]); (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.fetchVolunteers)({ volunteer_status: status, page: currentPage, pageSize: pageSize, search: search, sort_order: sortOrder, education_institution_id: selectedInstitution, score_from: scoreFrom, score_to: scoreTo, province: province, interested_team_id: teamId, event_ids: eventIds, language_id: languageId, skill_id: skillId })); }, [dispatch, status, currentPage, pageSize, search, sortOrder, selectedInstitution, scoreFrom, scoreTo, province, teamId, eventIds, languageId, skillId]); var handleSearch = function handleSearch(e) { setSearch(e.target.value); }; var resetSearch = function resetSearch() { setSearch(""); }; var handleScoreFrom = function handleScoreFrom(e) { var value = e.target.value; setScoreFrom(value ? Number(value) : null); // Sets null instead of "" }; var handleScoreTo = function handleScoreTo(e) { var value = e.target.value; setScoreTo(value ? Number(value) : null); // Sets null instead of "" }; var handleEdit = function handleEdit(id) { dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.volunteerDetailAction)(id)); navigate("/volunteer/form?id=".concat(id)); }; var handleDelete = function handleDelete(id) { if (!isAdmin) return; // Restrict access to non-admins sweetalert2__WEBPACK_IMPORTED_MODULE_4___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_4___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete'); var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_4___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_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.deleteVolunteerAction)(id)).then(function () { sweetalert2__WEBPACK_IMPORTED_MODULE_4___default().fire('Deleted!', 'The item has been deleted.', 'success'); dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.fetchVolunteers)({ volunteer_status: status, page: currentPage, pageSize: pageSize, sort_order: sortOrder, education_institution_id: selectedInstitution, score_from: scoreFrom, score_to: scoreTo, province: province, interested_team_id: teamId, event_ids: eventIds, language_id: languageId, skill_id: skillId })); }); sweetalert2__WEBPACK_IMPORTED_MODULE_4___default().close(); }); cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () { sweetalert2__WEBPACK_IMPORTED_MODULE_4___default().close(); }); } }); }; var statusOptions = ["Register", "Shortlist", "Interview", "Participants", "Reserve", "Failed", "Resignation", "Disqualification"]; // Handle status change and fetch updated list var handleStatusChange = function handleStatusChange(volunteerId, newStatus) { if (!isAdmin) return; // Restrict access to non-admins dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateVolunteerAction)({ id: volunteerId, data: { volunteer_status: newStatus } })).then(function () { dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.fetchVolunteers)({ volunteer_status: status, page: currentPage, pageSize: pageSize, sort_order: sortOrder, education_institution_id: selectedInstitution, score_from: scoreFrom, score_to: scoreTo, province: province, interested_team_id: teamId, event_ids: eventIds, language_id: languageId, skill_id: skillId })); // Fetch updated list after change notiflix__WEBPACK_IMPORTED_MODULE_5___default().Notify.success("Status updated to \"".concat(newStatus, "\"")); })["catch"](function () { notiflix__WEBPACK_IMPORTED_MODULE_5___default().Notify.failure("Failed to update status. Try again."); }); }; var handleInstitutionChange = function handleInstitutionChange(institutionId) { setSelectedInstitution(institutionId); }; var handleTableChange = function handleTableChange(pagination) { setCurrentPage(pagination.current); setPageSize(pagination.pageSize); }; var columns = [{ title: '№', dataIndex: 'index', key: 'index', responsive: ['sm'] }, { title: 'លេខកូដ', key: 'code', responsive: ['xs', 'sm', 'md', 'lg'], render: function render(_, record) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_10__["default"], { size: "small" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_11___default()), { type: "link", onClick: function onClick() { return handleEdit(record.id); } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_12__["default"].Text, { style: { color: record.main_code ? 'green' : 'inherit' } }, record.main_code || record.code))); } }, { title: 'រូបភាពនិងឈ្មោះ', dataIndex: 'combined', key: 'combined', responsive: ['xs', 'sm', 'md', 'lg'], render: function render(_, record) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: 'flex', alignItems: 'center', gap: 10 } }, record.photo ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_image__WEBPACK_IMPORTED_MODULE_13__["default"], { width: 50, src: record.photo, alt: "Photo", style: { borderRadius: 5, border: '1px solid #ddd' } }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "No Image"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, record.name)); } }, { title: 'លេខទូរស័ព្ទ', dataIndex: 'phone_number', key: 'phone_number', responsive: ['md'], ellipsis: true }, { title: 'ភេទ', dataIndex: 'gender', key: 'gender', responsive: ['sm'], ellipsis: true }, { title: 'ព័ត៌មានអំពីការដាក់ពាក្យ', dataIndex: 'application_info', key: 'application_info', responsive: ['md'], render: function render(_, record) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("strong", null, "\u1796\u17D2\u179A\u17B9\u178F\u17D2\u178F\u17B7\u1780\u17B6\u179A\u178E\u17CD:"), " ", record.volunteer_event_name || '-'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("strong", null, "\u1780\u17D2\u179A\u17BB\u1798\u1780\u17B6\u179A\u1784\u17B6\u179A:"), " ", record.interested_team_name || '-'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("strong", null, "\u17A2\u17CA\u17B8\u1798\u17C2\u179B:"), " ", record.email || '-'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("strong", null, "\u1790\u17D2\u1784\u17C3\u1785\u17BB\u17C7\u1788\u17D2\u1798\u17C4\u17C7:"), " ", moment__WEBPACK_IMPORTED_MODULE_6___default()(record.created_at).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_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_10__["default"], { size: "small" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_tag__WEBPACK_IMPORTED_MODULE_14__["default"], { color: statusColors[record.volunteer_status] || "default", style: { padding: "3px 6px", borderRadius: "6px", display: "flex", alignItems: "center" } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_15__["default"], { size: "small" // ✅ Makes the dropdown smaller , value: record.volunteer_status || "Register", bordered: false // ✅ Removes border for a cleaner look , dropdownStyle: { fontSize: "12px" } // ✅ Ensures smaller text in dropdown , style: { minWidth: 100, backgroundColor: "transparent", fontSize: "12px" // ✅ Makes text smaller }, disabled: !isAdmin, onChange: function onChange(newStatus) { return handleStatusChange(record.id, newStatus); } }, statusOptions.map(function (status) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_15__["default"].Option, { key: status, value: status }, status); }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_11___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_16__["default"], null), type: "primary", size: "small" // ✅ Makes button smaller , onClick: function onClick() { return handleEdit(record.id); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_11___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_17__["default"], null), danger: true, size: "small" // ✅ Makes button smaller , onClick: function onClick() { return handleDelete(record.id); } })); } }, { title: 'អត្តសញ្ញាណប័ណ្ណ', dataIndex: 'upload_id_card', key: 'upload_id_card', responsive: ['lg'], render: function render(text) { return text ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_image__WEBPACK_IMPORTED_MODULE_13__["default"], { width: 50, src: text, alt: "ID Card", style: { borderRadius: 5, border: '1px solid #ddd' } }) : 'No Image'; } }]; // 📌 EXPORT TO EXCEL FUNCTION var exportToExcel = /*#__PURE__*/function () { var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() { var _allDashboard$payload, _allvolunteers$payloa; var allDashboard, allvolunteers, _allvolunteers$payloa2, ws, wb; return _regenerator().w(function (_context) { while (1) switch (_context.n) { case 0: if (isAdmin) { _context.n = 1; break; } return _context.a(2); case 1: _context.n = 2; return dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.fetchDashboardAction)()); case 2: allDashboard = _context.v; _context.n = 3; return dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.fetchVolunteers)({ volunteer_status: status, page: 1, pageSize: (allDashboard === null || allDashboard === void 0 || (_allDashboard$payload = allDashboard.payload) === null || _allDashboard$payload === void 0 ? void 0 : _allDashboard$payload.count_volunteers) || 2000, sort_order: sortOrder, education_institution_id: selectedInstitution, score_from: scoreFrom, score_to: scoreTo, province: province, interested_team_id: teamId, event_ids: eventIds, language_id: languageId, skill_id: skillId })); case 3: allvolunteers = _context.v; if (allvolunteers && (allvolunteers === null || allvolunteers === void 0 || (_allvolunteers$payloa = allvolunteers.payload) === null || _allvolunteers$payloa === void 0 ? void 0 : _allvolunteers$payloa.data.length) > 0) { ws = xlsx__WEBPACK_IMPORTED_MODULE_18__.utils.json_to_sheet(allvolunteers === null || allvolunteers === void 0 || (_allvolunteers$payloa2 = allvolunteers.payload) === null || _allvolunteers$payloa2 === void 0 ? void 0 : _allvolunteers$payloa2.data.map(function (it, index) { var _it$last_name_khmer, _it$first_name_khmer, _it$last_name_latin, _it$first_name_latin, _it$date_of_birth, _it$gender, _it$nationality, _it$phone_number, _it$email, _it$current_address, _it$province_id, _it$occupation_name, _it$education_institu, _it$t_shirt_size, _it$food_name, _it$food_allergies, _it$disability_type_n, _it$interested_team_n, _it$volunteer_event_n, _it$opportunity_sourc, _it$training_session_, _it$volunteer_status; return { '#': index + 1, 'លេខកូដបណ្ដោះអាសន្ន': it.code, 'លេខកូដ': it.main_code, 'ឈ្មោះ (Khmer)': "".concat((_it$last_name_khmer = it.last_name_khmer) !== null && _it$last_name_khmer !== void 0 ? _it$last_name_khmer : '', " ").concat((_it$first_name_khmer = it.first_name_khmer) !== null && _it$first_name_khmer !== void 0 ? _it$first_name_khmer : ''), 'ឈ្មោះ (Latin)': "".concat((_it$last_name_latin = it.last_name_latin) !== null && _it$last_name_latin !== void 0 ? _it$last_name_latin : '', " ").concat((_it$first_name_latin = it.first_name_latin) !== null && _it$first_name_latin !== void 0 ? _it$first_name_latin : ''), 'ថ្ងៃកំណើត': (_it$date_of_birth = it.date_of_birth) !== null && _it$date_of_birth !== void 0 ? _it$date_of_birth : '', 'ភេទ': (_it$gender = it.gender) !== null && _it$gender !== void 0 ? _it$gender : '', 'សញ្ជាតិ': (_it$nationality = it.nationality) !== null && _it$nationality !== void 0 ? _it$nationality : '', 'លេខទូរស័ព្ទ': (_it$phone_number = it.phone_number) !== null && _it$phone_number !== void 0 ? _it$phone_number : '', 'អ៊ីមែល': (_it$email = it.email) !== null && _it$email !== void 0 ? _it$email : '', 'អាសយដ្ឋាន': (_it$current_address = it.current_address) !== null && _it$current_address !== void 0 ? _it$current_address : '', 'ខេត្ត': (_it$province_id = it.province_id) !== null && _it$province_id !== void 0 ? _it$province_id : '', 'អាជីព': (_it$occupation_name = it.occupation_name) !== null && _it$occupation_name !== void 0 ? _it$occupation_name : '', 'ស្ថាប័នសិក្សា': (_it$education_institu = it.education_institution_name) !== null && _it$education_institu !== void 0 ? _it$education_institu : '', 'ទំហំអាវ': (_it$t_shirt_size = it.t_shirt_size) !== null && _it$t_shirt_size !== void 0 ? _it$t_shirt_size : '', 'អាហារ': (_it$food_name = it.food_name) !== null && _it$food_name !== void 0 ? _it$food_name : '', 'បញ្ហាអាហារ': it.is_food_allergy ? 'Yes' : 'No', 'អាហារដែលផ្អែក': (_it$food_allergies = it.food_allergies) !== null && _it$food_allergies !== void 0 ? _it$food_allergies : '', 'ប្រភេទពិការភាព': (_it$disability_type_n = it.disability_type_name) !== null && _it$disability_type_n !== void 0 ? _it$disability_type_n : '', 'ក្រុមដែលចាប់អារម្មណ៍': (_it$interested_team_n = it.interested_team_name) !== null && _it$interested_team_n !== void 0 ? _it$interested_team_n : '', 'ព្រឹត្តិការណ៍': (_it$volunteer_event_n = it.volunteer_event_name) !== null && _it$volunteer_event_n !== void 0 ? _it$volunteer_event_n : '', 'ប្រភពឱកាស': (_it$opportunity_sourc = it.opportunity_source_name) !== null && _it$opportunity_sourc !== void 0 ? _it$opportunity_sourc : '', 'វគ្គបណ្តុះបណ្តាល': (_it$training_session_ = it.training_session_name) !== null && _it$training_session_ !== void 0 ? _it$training_session_ : '', 'ស្ថានភាព': (_it$volunteer_status = it.volunteer_status) !== null && _it$volunteer_status !== void 0 ? _it$volunteer_status : '', 'Created At': it.created_at, // ✅ Add Direct Image URLs 'រូបភាព': it.photo ? it.photo : 'No Image', 'អត្តសញ្ញាណប័ណ្ណ': it.upload_id_card ? it.upload_id_card : 'No Image', // ✅ Add Downloadable CV Link 'CV': it.upload_cv ? "=HYPERLINK(\"".concat(it.upload_cv, "\", \"Download CV\")") : 'No CV' }; })); wb = xlsx__WEBPACK_IMPORTED_MODULE_18__.utils.book_new(); xlsx__WEBPACK_IMPORTED_MODULE_18__.utils.book_append_sheet(wb, ws, 'Volunteers'); // ✅ Ensure the CV link format is properly applied ws['!cols'] = [{ wch: 10 }, { wch: 20 }, { wch: 25 }, { wch: 25 }, { wch: 15 }, { wch: 10 }, { wch: 20 }, { wch: 20 }, { wch: 30 }, { wch: 20 }, { wch: 20 }, { wch: 25 }, { wch: 15 }, { wch: 10 }, { wch: 10 }, { wch: 10 }, { wch: 15 }, { wch: 15 }, { wch: 20 }, { wch: 20 }, { wch: 20 }, { wch: 20 }, { wch: 25 }]; xlsx__WEBPACK_IMPORTED_MODULE_18__.writeFile(wb, 'Volunteers.xlsx'); } case 4: return _context.a(2); } }, _callee); })); return function exportToExcel() { return _ref2.apply(this, arguments); }; }(); var handleSortOrder = function handleSortOrder() { setSortOrder(function (prevOrder) { return prevOrder === "desc" ? "asc" : "desc"; }); }; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { overflowX: 'auto' } }, isAdmin && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { padding: '10px', background: '#f5f5f5', marginBottom: '10px' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_19__["default"], { gutter: [16, 16], justify: "space-between", align: "middle", style: { marginBottom: '10px' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_20__["default"], { xs: 24, md: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_10__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (volunteers === null || volunteers === void 0 || (_volunteers$meta = volunteers.meta) === null || _volunteers$meta === void 0 ? void 0 : _volunteers$meta.total) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_21__["default"], { placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...", value: search, onChange: handleSearch, style: { minWidth: 150 } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_11___default()), { onClick: resetSearch }, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_20__["default"], { xs: 24, md: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_10__["default"], { wrap: true, style: { width: '100%', justifyContent: 'flex-end' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_11___default()), { type: "default", style: { borderColor: "red", color: "red", backgroundColor: "white" }, onClick: handleSortOrder }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_22__["default"], { style: { color: "red" } }), " ORDER"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_11___default()), { type: "default", style: { borderColor: "green", color: "green", backgroundColor: "white" }, onClick: exportToExcel }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_23__["default"], { style: { color: "green" } }), " Excel")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_19__["default"], { gutter: [16, 16] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_20__["default"], { xs: 24, sm: 12, md: 8, lg: 6 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u1781\u17C1\u178F\u17D2\u178F\u200B \u17AC \u1780\u17D2\u179A\u17BB\u1784"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_15__["default"], { style: { width: '100%' }, allowClear: true, placeholder: "Select a Province or City", onChange: function onChange(value) { return setProvince(value); }, showSearch: true }, Array.isArray(provinces) && provinces.length > 0 ? provinces.map(function (province) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_15__["default"].Option, { key: province.id, value: "".concat(province.id, ",").concat(province.name.km, " / ").concat(province.name.latin) }, "".concat(province.name.km, " / ").concat(province.name.latin)); }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_15__["default"].Option, { disabled: true }, "No provinces available"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_20__["default"], { xs: 24, sm: 12, md: 8, lg: 6 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u17B6\u1780\u179B\u179C\u17B7\u1791\u17D2\u1799\u17B6\u179B\u17D0\u1799"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_15__["default"], { style: { width: '100%' }, allowClear: true, showSearch: true, filterOption: function filterOption(input, option) { return option === null || option === void 0 ? void 0 : option.children.toLowerCase().includes(input.toLowerCase()); }, onChange: handleInstitutionChange, placeholder: "Select an institution" }, educationInstitutions === null || educationInstitutions === void 0 ? void 0 : educationInstitutions.map(function (institution) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Option, { key: institution.id, value: institution.id }, institution.name); }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_20__["default"], { xs: 24, sm: 12, md: 8, lg: 6 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u1780\u17D2\u179A\u17BB\u1798"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_15__["default"], { style: { width: '100%' }, allowClear: true, showSearch: true, placeholder: "Select an interested team", onChange: function onChange(value) { return setTeamId(value); }, filterOption: function filterOption(input, option) { return option === null || option === void 0 ? void 0 : option.children.toLowerCase().includes(input.toLowerCase()); } }, interestedTeams === null || interestedTeams === void 0 ? void 0 : interestedTeams.map(function (team) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Option, { key: team.id, value: team.id }, team.name); }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_20__["default"], { xs: 24, sm: 12, md: 8, lg: 6 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u1796\u17D2\u179A\u17B9\u178F\u17D2\u178F\u17B7\u1780\u17B6\u179A\u178E\u17CD"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_15__["default"], { mode: "multiple", style: { width: '100%' }, allowClear: true, showSearch: true, placeholder: "Select an event", value: eventIds, onChange: function onChange(values) { return setEventIds(values); }, filterOption: function filterOption(input, option) { var _option$children; return option === null || option === void 0 || (_option$children = option.children) === null || _option$children === void 0 ? void 0 : _option$children.toString().toLowerCase().includes(input.toLowerCase()); } }, volunteerEvents === null || volunteerEvents === void 0 ? void 0 : volunteerEvents.map(function (event) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Option, { key: event.id, value: event.id }, event.name); }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_20__["default"], { xs: 24, sm: 12, md: 8, lg: 6 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u1797\u17B6\u179F\u17B6"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_15__["default"], { style: { width: '100%' }, allowClear: true, showSearch: true, placeholder: "Select a language", onChange: function onChange(value) { return setLanguageId(value); }, filterOption: function filterOption(input, option) { return option === null || option === void 0 ? void 0 : option.children.toLowerCase().includes(input.toLowerCase()); } }, languages === null || languages === void 0 ? void 0 : languages.map(function (language) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Option, { key: language.id, value: language.id }, language.name); }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_20__["default"], { xs: 24, sm: 12, md: 8, lg: 6 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u1787\u17C6\u1793\u17B6\u1789\u1795\u17D2\u179F\u17C1\u1784\u1791\u17C0\u178F"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_15__["default"], { style: { width: '100%' }, allowClear: true, showSearch: true, placeholder: "Select a skill", onChange: function onChange(value) { return setSkillId(value); }, filterOption: function filterOption(input, option) { return option === null || option === void 0 ? void 0 : option.children.toLowerCase().includes(input.toLowerCase()); } }, skills === null || skills === void 0 ? void 0 : skills.map(function (skill) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Option, { key: skill.id, value: skill.id }, skill.name); }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_20__["default"], { xs: 24, sm: 24, md: 12, lg: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u1796\u17B7\u1793\u17D2\u1791\u17BB"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_10__["default"], { style: { width: '100%' }, direction: "horizontal", wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_number__WEBPACK_IMPORTED_MODULE_24__["default"], { placeholder: "From", min: 0, value: scoreFrom, onChange: setScoreFrom }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_number__WEBPACK_IMPORTED_MODULE_24__["default"], { placeholder: "To", min: scoreFrom || 0, value: scoreTo, onChange: setScoreTo }))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_25__["default"], { rowSelection: { type: 'checkbox', onChange: function onChange(_, selectedRows) { return setSelectedRows(selectedRows); } }, columns: columns, dataSource: ((volunteers === null || volunteers === void 0 ? void 0 : volunteers.data) || []).map(function (it, index) { return _objectSpread({ key: it.id, index: index + 1, name: "".concat(it.last_name_latin, " ").concat(it.first_name_latin) }, it); }), loading: volunteerPending, pagination: { current: currentPage, pageSize: pageSize, total: (volunteers === null || volunteers === void 0 || (_volunteers$meta2 = volunteers.meta) === null || _volunteers$meta2 === void 0 ? void 0 : _volunteers$meta2.total) || 0, showSizeChanger: true }, onChange: handleTableChange, rowKey: "id", scroll: { x: 'max-content' } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_2__["default"], { visible: volunteerPending })); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ApprovedVoluneers); /***/ }), /***/ "./src/shared/views/main/volunteer/form.tsx": /*!**************************************************!*\ !*** ./src/shared/views/main/volunteer/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 react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _services_volunteer_register_components_form__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/volunteer/register/components/form */ "./src/services/volunteer/register/components/form.tsx"); var searchParams = new URLSearchParams(location.search); var id = searchParams.get('id'); var NewEditVolunteerPage = function NewEditVolunteerPage() { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_services_volunteer_register_components_form__WEBPACK_IMPORTED_MODULE_1__["default"], { id: id }); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditVolunteerPage); /***/ }), /***/ "./src/shared/views/main/volunteer/index.tsx": /*!***************************************************!*\ !*** ./src/shared/views/main/volunteer/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_tabs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/tabs */ "../../../node_modules/antd/lib/tabs/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var _approved__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./approved */ "./src/shared/views/main/volunteer/approved.tsx"); 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 VOLUNTEER_TABS = [{ label: "បញ្ជីអ្នកចុះឈ្មោះស្ម័គ្រចិត្ត", key: "" }, { label: "បញ្ជីសម្រាំ", key: "Shortlist", adminOnly: true }, { label: "បញ្ជីអ្នកត្រូវសម្ភាសន៍", key: "Interview", adminOnly: true }, { label: "បញ្ជីអ្នកជាប់", key: "Participants", adminOnly: true }, { label: "បញ្ជីអ្នកបំរុង", key: "Reserve", adminOnly: true }, { label: "បញ្ជីអ្នកធ្លាក់", key: "Failed", adminOnly: true }, { label: "បញ្ជីអ្នកសុំឈប់", key: "Resignation", adminOnly: true }, { label: "បញ្ជីអ្នកមិនទាន់មានលក្ខណៈគ្រប់គ្រាន់", key: "Disqualification", adminOnly: true }]; var VolunteerList = function VolunteerList() { var location = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_2__.useLocation)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_2__.useNavigate)(); var query = new URLSearchParams(location.search); var initialStatus = query.get("status") || ""; var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initialStatus), _useState2 = _slicedToArray(_useState, 2), status = _useState2[0], setStatus = _useState2[1]; var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useSelector)(function (state) { return state.auth; }), currentUser = _useSelector.currentUser; var isAdmin = (currentUser === null || currentUser === void 0 ? void 0 : currentUser.role) === "super_admin"; // Check if user is admin (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (query.get("status") !== status) { setStatus(query.get("status") || ""); } }, [location.search]); // Ensure status updates with URL changes var handleTabChange = function handleTabChange(key) { setStatus(key); query.set("status", key); navigate({ pathname: location.pathname, search: query.toString() }); }; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_tabs__WEBPACK_IMPORTED_MODULE_4__["default"], { activeKey: status, onChange: handleTabChange }, VOLUNTEER_TABS.map(function (_ref) { var label = _ref.label, key = _ref.key, adminOnly = _ref.adminOnly; return (!adminOnly || isAdmin) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_tabs__WEBPACK_IMPORTED_MODULE_4__["default"].TabPane, { tab: label, key: key }); })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_approved__WEBPACK_IMPORTED_MODULE_1__["default"], { status: status })); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VolunteerList); /***/ }), /***/ "./src/shared/views/main/volunteer/update_identity_csv.tsx": /*!*****************************************************************!*\ !*** ./src/shared/views/main/volunteer/update_identity_csv.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_14__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js"); /* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js"); /* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js"); /* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var antd_es_upload__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/upload */ "../../../node_modules/antd/lib/upload/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_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/UploadOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/FileExcelOutlined.js"); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var _services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/volunteer/core/actions */ "./src/services/volunteer/core/actions.ts"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! xlsx */ "../../../node_modules/xlsx/xlsx.mjs"); 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) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; 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 UpdateIdentityCsvPage = function UpdateIdentityCsvPage() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) { return state.volunteer; }), upateTeamCsvPending = _useSelector.upateTeamCsvPending, registerErrorMessage = _useSelector.registerErrorMessage; var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(), _Form$useForm2 = _slicedToArray(_Form$useForm, 1), form = _Form$useForm2[0]; var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), isClick = _useState2[0], setIsClick = _useState2[1]; var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState4 = _slicedToArray(_useState3, 2), csvFileList = _useState4[0], setCsvFileList = _useState4[1]; var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState6 = _slicedToArray(_useState5, 2), volunteers = _useState6[0], setVolunteers = _useState6[1]; var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState8 = _slicedToArray(_useState7, 2), failedRecords = _useState8[0], setFailedRecords = _useState8[1]; var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""), _useState0 = _slicedToArray(_useState9, 2), uploadSummary = _useState0[0], setUploadSummary = _useState0[1]; var _useState1 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0), _useState10 = _slicedToArray(_useState1, 2), successCount = _useState10[0], setSuccessCount = _useState10[1]; var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0), _useState12 = _slicedToArray(_useState11, 2), failedCount = _useState12[0], setFailedCount = _useState12[1]; // 👉 Show success or error alerts (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (!upateTeamCsvPending && isClick) { if (registerErrorMessage) { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage); } else { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success("File uploaded successfully!"); form.resetFields(); // Reset only after success setCsvFileList([]); setIsClick(false); } } }, [upateTeamCsvPending, registerErrorMessage, isClick, form]); // 👉 Handle file selection change var handleFileChange = function handleFileChange(_ref) { var fileList = _ref.fileList; setCsvFileList(fileList); }; // 👉 Validate file type (Allow only CSV or Excel) var beforeUpload = function beforeUpload(file) { var allowedTypes = ["text/csv", "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]; if (!file.type || !allowedTypes.includes(file.type)) { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error("Only CSV and Excel (.xlsx) files are allowed!"); return antd_es_upload__WEBPACK_IMPORTED_MODULE_6__["default"].LIST_IGNORE; } return true; }; // 👉 Handle form submission var onFinish = /*#__PURE__*/function () { var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() { var file, formData, response, _t; return _regenerator().w(function (_context) { while (1) switch (_context.n) { case 0: if (csvFileList.length) { _context.n = 1; break; } antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error("Please upload a valid CSV or Excel file."); return _context.a(2); case 1: file = csvFileList[0].originFileObj; if (file) { _context.n = 2; break; } antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error("Invalid file. Please try again."); return _context.a(2); case 2: formData = new FormData(); formData.append("file", file); _context.p = 3; _context.n = 4; return dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.createUpdateIdentityCsvAction)(formData)).unwrap(); case 4: response = _context.v; setVolunteers(response.volunteers || []); setFailedRecords(response.failed_records || []); // Store failed records setUploadSummary(response.message || "Upload failed"); // Set upload summary message setFailedCount(response.failed_count); setSuccessCount(response.successful_count); setIsClick(true); _context.n = 6; break; case 5: _context.p = 5; _t = _context.v; antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error("Failed to upload file."); case 6: return _context.a(2); } }, _callee, null, [[3, 5]]); })); return function onFinish() { return _ref2.apply(this, arguments); }; }(); var handlDownloadSampleUpdateIdentityCSV = /*#__PURE__*/function () { var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() { var response, blob, url, link, _t2; return _regenerator().w(function (_context2) { while (1) switch (_context2.n) { case 0: _context2.p = 0; _context2.n = 1; return dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.downloadSampleUpdateIdentityCsvAction)()).unwrap(); case 1: response = _context2.v; // Ensure response is treated as a Blob blob = new Blob([response], { type: "text/csv;charset=utf-8;" }); url = window.URL.createObjectURL(blob); link = document.createElement("a"); link.href = url; link.setAttribute("download", "sample-update_indentity_csv.csv"); // Set filename document.body.appendChild(link); link.click(); // Clean up document.body.removeChild(link); window.URL.revokeObjectURL(url); _context2.n = 3; break; case 2: _context2.p = 2; _t2 = _context2.v; console.error("Error downloading CSV:", _t2); antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error("Failed to download CSV"); case 3: return _context2.a(2); } }, _callee2, null, [[0, 2]]); })); return function handlDownloadSampleUpdateIdentityCSV() { return _ref3.apply(this, arguments); }; }(); // 📌 EXPORT TO EXCEL FUNCTION var exportToExcel = /*#__PURE__*/function () { var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() { var ws, wb; return _regenerator().w(function (_context3) { while (1) switch (_context3.n) { case 0: if (volunteers && (volunteers === null || volunteers === void 0 ? void 0 : volunteers.length) > 0) { ws = xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.json_to_sheet(volunteers.map(function (it, index) { return { '#': index + 1, 'Code': it.code, 'Main Code': it.main_code, 'Event Code': it.event_code, 'Name Khmer': "".concat(it.last_name_khmer, " ").concat(it.first_name_khmer), 'Name Latin': "".concat(it.last_name_latin, " ").concat(it.first_name_latin), 'Date of Birth': it.date_of_birth, 'Gender': it.gender, 'Volunteer Status': it.volunteer_status, 'Interested Team Name': it.interested_team_name, 'Phone Number': it.phone_number }; })); wb = xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.book_new(); xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.book_append_sheet(wb, ws, 'Volunteers-Update'); // ✅ Ensure the CV link format is properly applied ws['!cols'] = [{ wch: 5 }, { wch: 10 }, { wch: 10 }, { wch: 15 }, { wch: 15 }, { wch: 10 }, { wch: 15 }, { wch: 15 }, { wch: 15 }, { wch: 20 }, { wch: 20 }]; xlsx__WEBPACK_IMPORTED_MODULE_7__.writeFile(wb, 'Volunteers-Update.xlsx'); } case 1: return _context3.a(2); } }, _callee3); })); return function exportToExcel() { return _ref4.apply(this, arguments); }; }(); // 📌 EXPORT TO EXCEL FUNCTION var exportFailedRecordToExcel = /*#__PURE__*/function () { var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() { var ws, wb; return _regenerator().w(function (_context4) { while (1) switch (_context4.n) { case 0: if (failedRecords && (failedRecords === null || failedRecords === void 0 ? void 0 : failedRecords.length) > 0) { ws = xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.json_to_sheet(failedRecords.map(function (it, index) { return { '#': index + 1, 'Code': it.code, 'First Name Khmer': it.first_name_khmer, 'Last Name Khmer': it.last_name_khmer, 'First Name Latin': it.first_name_latin, 'Last Name Latin': it.last_name_latin, 'Reason': it.reason }; })); wb = xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.book_new(); xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.book_append_sheet(wb, ws, 'Volunteers-Update-Failed'); // ✅ Ensure the CV link format is properly applied ws['!cols'] = [{ wch: 10 }, { wch: 20 }, { wch: 20 }, { wch: 20 }, { wch: 20 }]; xlsx__WEBPACK_IMPORTED_MODULE_7__.writeFile(wb, 'Volunteers-Update-Failed.xlsx'); } case 1: return _context4.a(2); } }, _callee4); })); return function exportFailedRecordToExcel() { return _ref5.apply(this, arguments); }; }(); // 👉 Define table columns for failed records var failedColumns = [{ title: "No", dataIndex: "index", key: "index" }, { title: "Code", dataIndex: "code", key: "code" }, { title: "Name Khmer", dataIndex: "nameKhmer", key: "nameKhmer" }, { title: "Name English", dataIndex: "nameLatin", key: "nameLatin" }, { title: "Reason", dataIndex: "reason", key: "reason" }]; // 👉 Format data for table (failed records) var failedTableData = failedRecords.map(function (v, index) { return { key: index, "index": index + 1, "code": v["code"], "volunteerStatus": v["volunteer_status"], "interestedTeam": v["interested_team"], "reason": v["reason"] }; }); // 👉 Define columns for uploaded volunteers var columns = [{ title: "Code", dataIndex: "code", key: "code" }, { title: "Main Code", dataIndex: "mainCode", key: "mainCode" }, { title: "Event Code", dataIndex: "eventCode", key: "eventCode" }, { title: "Name Khmer", dataIndex: "nameKhmer", key: "nameKhmer" }, { title: "Name Latin", dataIndex: "nameLatin", key: "nameLatin" }, { title: "Date of Birth", dataIndex: "dateOfBirth", key: "dateOfBirth" }, { title: "Gender", dataIndex: "gender", key: "gender" }, { title: "Volunteer Status", dataIndex: "volunteerStatus", key: "volunteerStatus" }, { title: "Interested Team Name", dataIndex: "interestedTeam", key: "interestedTeam" }, { title: "Phone Number", dataIndex: "phoneNumber", key: "phoneNumber" }]; // 👉 Format data for table var tableData = volunteers.map(function (v, index) { return { key: index, code: v.code, mainCode: v.main_code, eventCode: v.event_code, nameKhmer: "".concat(v.last_name_khmer, " ").concat(v.first_name_khmer), nameLatin: "".concat(v.last_name_latin, " ").concat(v.first_name_latin), dateOfBirth: v.date_of_birth, gender: v.gender, volunteerStatus: v.volunteer_status, interestedTeam: v.interested_team_name, phoneNumber: v.phone_number }; }); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "Volunteer Update Identity CSV/Excel"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], { form: form, layout: "vertical", onFinish: onFinish, style: { maxWidth: "100%", margin: "0 auto" } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_8__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_9__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { name: "file", label: "Upload File", rules: [{ required: true, message: "Required" }] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_upload__WEBPACK_IMPORTED_MODULE_6__["default"].Dragger, { fileList: csvFileList, onChange: handleFileChange, beforeUpload: beforeUpload, showUploadList: { showPreviewIcon: false, showRemoveIcon: true } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null) }, "Click to Upload")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_9__["default"], { span: 6 }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_9__["default"], { span: 6 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: " " }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "default", style: { borderColor: "green", color: "green", backgroundColor: "white" }, onClick: handlDownloadSampleUpdateIdentityCSV }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_12__["default"], { style: { color: "green" } }), " Download sample csv")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_8__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_9__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "primary", block: true, htmlType: "submit", loading: upateTeamCsvPending }, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_9__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { htmlType: "button", onClick: function onClick() { return window.location.reload(); } }, "Cancel"))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { marginTop: "20px" } }, uploadSummary && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h3", null, uploadSummary)), volunteers.length > 0 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: "flex", justifyContent: "space-between", marginBottom: "10px" } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_13__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", { style: { color: "Green" } }, successCount, " Successful Uploaded Records")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_13__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "default", style: { borderColor: "green", color: "green", backgroundColor: "white" }, onClick: exportToExcel }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_12__["default"], { style: { color: "green" } }), " Export Excel"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_14__["default"], { columns: columns, dataSource: tableData, pagination: { pageSize: 5 }, bordered: true, style: { marginTop: "20px" } })), failedRecords.length > 0 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { marginTop: "20px" } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: "flex", justifyContent: "space-between", marginBottom: "10px" } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_13__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", { style: { color: "Red" } }, " ", failedCount, " Failed Records")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_13__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "default", style: { borderColor: "red", color: "red", backgroundColor: "white" }, onClick: exportFailedRecordToExcel }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_12__["default"], { style: { color: "red" } }), " Export Excel"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_14__["default"], { columns: failedColumns, dataSource: failedTableData, pagination: { pageSize: 5 }, bordered: true, style: { marginTop: "20px" } })))); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (UpdateIdentityCsvPage); /***/ }), /***/ "./src/shared/views/main/volunteer/update_team_csv.tsx": /*!*************************************************************!*\ !*** ./src/shared/views/main/volunteer/update_team_csv.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_14__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js"); /* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js"); /* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js"); /* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var antd_es_upload__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/upload */ "../../../node_modules/antd/lib/upload/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_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/UploadOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/FileExcelOutlined.js"); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var _services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/volunteer/core/actions */ "./src/services/volunteer/core/actions.ts"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! xlsx */ "../../../node_modules/xlsx/xlsx.mjs"); 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) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; 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 UpdateTeamCsvPage = function UpdateTeamCsvPage() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) { return state.volunteer; }), upateTeamCsvPending = _useSelector.upateTeamCsvPending, registerErrorMessage = _useSelector.registerErrorMessage; var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(), _Form$useForm2 = _slicedToArray(_Form$useForm, 1), form = _Form$useForm2[0]; var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), isClick = _useState2[0], setIsClick = _useState2[1]; var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState4 = _slicedToArray(_useState3, 2), csvFileList = _useState4[0], setCsvFileList = _useState4[1]; var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState6 = _slicedToArray(_useState5, 2), volunteers = _useState6[0], setVolunteers = _useState6[1]; var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState8 = _slicedToArray(_useState7, 2), failedRecords = _useState8[0], setFailedRecords = _useState8[1]; var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""), _useState0 = _slicedToArray(_useState9, 2), uploadSummary = _useState0[0], setUploadSummary = _useState0[1]; var _useState1 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0), _useState10 = _slicedToArray(_useState1, 2), successCount = _useState10[0], setSuccessCount = _useState10[1]; var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0), _useState12 = _slicedToArray(_useState11, 2), failedCount = _useState12[0], setFailedCount = _useState12[1]; // 👉 Show success or error alerts (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (!upateTeamCsvPending && isClick) { if (registerErrorMessage) { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage); } else { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success("File uploaded successfully!"); form.resetFields(); // Reset only after success setCsvFileList([]); setIsClick(false); } } }, [upateTeamCsvPending, registerErrorMessage, isClick, form]); // 👉 Handle file selection change var handleFileChange = function handleFileChange(_ref) { var fileList = _ref.fileList; setCsvFileList(fileList); }; // 👉 Validate file type (Allow only CSV or Excel) var beforeUpload = function beforeUpload(file) { var allowedTypes = ["text/csv", "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]; if (!file.type || !allowedTypes.includes(file.type)) { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error("Only CSV and Excel (.xlsx) files are allowed!"); return antd_es_upload__WEBPACK_IMPORTED_MODULE_6__["default"].LIST_IGNORE; } return true; }; // 👉 Handle form submission var onFinish = /*#__PURE__*/function () { var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() { var file, formData, response, _t; return _regenerator().w(function (_context) { while (1) switch (_context.n) { case 0: if (csvFileList.length) { _context.n = 1; break; } antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error("Please upload a valid CSV or Excel file."); return _context.a(2); case 1: file = csvFileList[0].originFileObj; if (file) { _context.n = 2; break; } antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error("Invalid file. Please try again."); return _context.a(2); case 2: formData = new FormData(); formData.append("file", file); _context.p = 3; _context.n = 4; return dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.createUpdateTeamCsvAction)(formData)).unwrap(); case 4: response = _context.v; setVolunteers(response.volunteers || []); setFailedRecords(response.failed_records || []); // Store failed records setUploadSummary(response.message || "Upload failed"); // Set upload summary message setFailedCount(response.failed_count); setSuccessCount(response.successful_count); setIsClick(true); _context.n = 6; break; case 5: _context.p = 5; _t = _context.v; antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error("Failed to upload file."); case 6: return _context.a(2); } }, _callee, null, [[3, 5]]); })); return function onFinish() { return _ref2.apply(this, arguments); }; }(); var handlDownloadSampleUpdateTeamCSV = /*#__PURE__*/function () { var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() { var response, blob, url, link, _t2; return _regenerator().w(function (_context2) { while (1) switch (_context2.n) { case 0: _context2.p = 0; _context2.n = 1; return dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.downloadSampleUpdateTeamCsvAction)()).unwrap(); case 1: response = _context2.v; // Ensure response is treated as a Blob blob = new Blob([response], { type: "text/csv;charset=utf-8;" }); url = window.URL.createObjectURL(blob); link = document.createElement("a"); link.href = url; link.setAttribute("download", "sample-update_team_csv.csv"); // Set filename document.body.appendChild(link); link.click(); // Clean up document.body.removeChild(link); window.URL.revokeObjectURL(url); _context2.n = 3; break; case 2: _context2.p = 2; _t2 = _context2.v; console.error("Error downloading CSV:", _t2); antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error("Failed to download CSV"); case 3: return _context2.a(2); } }, _callee2, null, [[0, 2]]); })); return function handlDownloadSampleUpdateTeamCSV() { return _ref3.apply(this, arguments); }; }(); // 📌 EXPORT TO EXCEL FUNCTION var exportToExcel = /*#__PURE__*/function () { var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() { var ws, wb; return _regenerator().w(function (_context3) { while (1) switch (_context3.n) { case 0: if (volunteers && (volunteers === null || volunteers === void 0 ? void 0 : volunteers.length) > 0) { ws = xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.json_to_sheet(volunteers.map(function (it, index) { return { '#': index + 1, 'Code': it.code, 'Main Code': it.main_code, 'Event Code': it.event_code, 'Name Khmer': "".concat(it.last_name_khmer, " ").concat(it.first_name_khmer), 'Name Latin': "".concat(it.last_name_latin, " ").concat(it.first_name_latin), 'Date of Birth': it.date_of_birth, 'Gender': it.gender, 'Volunteer Status': it.volunteer_status, 'Interested Team Name': it.interested_team_name, 'Phone Number': it.phone_number }; })); wb = xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.book_new(); xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.book_append_sheet(wb, ws, 'Volunteers-Update'); // ✅ Ensure the CV link format is properly applied ws['!cols'] = [{ wch: 5 }, { wch: 10 }, { wch: 10 }, { wch: 15 }, { wch: 15 }, { wch: 10 }, { wch: 15 }, { wch: 15 }, { wch: 15 }, { wch: 20 }, { wch: 20 }]; xlsx__WEBPACK_IMPORTED_MODULE_7__.writeFile(wb, 'Volunteers-Update.xlsx'); } case 1: return _context3.a(2); } }, _callee3); })); return function exportToExcel() { return _ref4.apply(this, arguments); }; }(); // 📌 EXPORT TO EXCEL FUNCTION var exportFailedRecordToExcel = /*#__PURE__*/function () { var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() { var ws, wb; return _regenerator().w(function (_context4) { while (1) switch (_context4.n) { case 0: if (failedRecords && (failedRecords === null || failedRecords === void 0 ? void 0 : failedRecords.length) > 0) { ws = xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.json_to_sheet(failedRecords.map(function (it, index) { return { '#': index + 1, 'Code': it.code, 'Volunteer Status': it.volunteer_status, 'Interested Team': it.interested_team, 'Reason': it.reason }; })); wb = xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.book_new(); xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.book_append_sheet(wb, ws, 'Volunteers-Update-Failed'); // ✅ Ensure the CV link format is properly applied ws['!cols'] = [{ wch: 10 }, { wch: 20 }, { wch: 20 }, { wch: 20 }, { wch: 20 }]; xlsx__WEBPACK_IMPORTED_MODULE_7__.writeFile(wb, 'Volunteers-Update-Failed.xlsx'); } case 1: return _context4.a(2); } }, _callee4); })); return function exportFailedRecordToExcel() { return _ref5.apply(this, arguments); }; }(); // 👉 Define table columns for failed records var failedColumns = [{ title: "No", dataIndex: "index", key: "index" }, { title: "Code", dataIndex: "code", key: "code" }, { title: "Volunteer Status", dataIndex: "volunteerStatus", key: "volunteerStatus" }, { title: "Interested Team", dataIndex: "interestedTeam", key: "interestedTeam" }, { title: "Reason", dataIndex: "reason", key: "reason" }]; // 👉 Format data for table (failed records) var failedTableData = failedRecords.map(function (v, index) { return { key: index, "index": index + 1, "code": v["code"], "volunteerStatus": v["volunteer_status"], "interestedTeam": v["interested_team"], "reason": v["reason"] }; }); // 👉 Define columns for uploaded volunteers var columns = [{ title: "Code", dataIndex: "code", key: "code" }, { title: "Main Code", dataIndex: "mainCode", key: "mainCode" }, { title: "Event Code", dataIndex: "eventCode", key: "eventCode" }, { title: "Name Khmer", dataIndex: "nameKhmer", key: "nameKhmer" }, { title: "Name Latin", dataIndex: "nameLatin", key: "nameLatin" }, { title: "Date of Birth", dataIndex: "dateOfBirth", key: "dateOfBirth" }, { title: "Gender", dataIndex: "gender", key: "gender" }, { title: "Volunteer Status", dataIndex: "volunteerStatus", key: "volunteerStatus" }, { title: "Interested Team Name", dataIndex: "interestedTeam", key: "interestedTeam" }, { title: "Phone Number", dataIndex: "phoneNumber", key: "phoneNumber" }]; // 👉 Format data for table var tableData = volunteers.map(function (v, index) { return { key: index, code: v.code, mainCode: v.main_code, eventCode: v.event_code, nameKhmer: "".concat(v.last_name_khmer, " ").concat(v.first_name_khmer), nameLatin: "".concat(v.last_name_latin, " ").concat(v.first_name_latin), dateOfBirth: v.date_of_birth, gender: v.gender, volunteerStatus: v.volunteer_status, interestedTeam: v.interested_team_name, phoneNumber: v.phone_number }; }); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "Volunteer Update Team CSV/Excel"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], { form: form, layout: "vertical", onFinish: onFinish, style: { maxWidth: "100%", margin: "0 auto" } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_8__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_9__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { name: "file", label: "Upload File", rules: [{ required: true, message: "Required" }] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_upload__WEBPACK_IMPORTED_MODULE_6__["default"].Dragger, { fileList: csvFileList, onChange: handleFileChange, beforeUpload: beforeUpload, showUploadList: { showPreviewIcon: false, showRemoveIcon: true } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null) }, "Click to Upload")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_9__["default"], { span: 6 }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_9__["default"], { span: 6 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: " " }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "default", style: { borderColor: "green", color: "green", backgroundColor: "white" }, onClick: handlDownloadSampleUpdateTeamCSV }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_12__["default"], { style: { color: "green" } }), " Download sample csv")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_8__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_9__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "primary", block: true, htmlType: "submit", loading: upateTeamCsvPending }, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_9__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { htmlType: "button", onClick: function onClick() { return window.location.reload(); } }, "Cancel"))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { marginTop: "20px" } }, uploadSummary && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h3", null, uploadSummary)), volunteers.length > 0 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: "flex", justifyContent: "space-between", marginBottom: "10px" } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_13__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", { style: { color: "Green" } }, successCount, " Successful Uploaded Records")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_13__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "default", style: { borderColor: "green", color: "green", backgroundColor: "white" }, onClick: exportToExcel }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_12__["default"], { style: { color: "green" } }), " Export Excel"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_14__["default"], { columns: columns, dataSource: tableData, pagination: { pageSize: 5 }, bordered: true, style: { marginTop: "20px" } })), failedRecords.length > 0 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { marginTop: "20px" } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: "flex", justifyContent: "space-between", marginBottom: "10px" } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_13__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", { style: { color: "Red" } }, " ", failedCount, " Failed Records")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_13__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "default", style: { borderColor: "red", color: "red", backgroundColor: "white" }, onClick: exportFailedRecordToExcel }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_12__["default"], { style: { color: "red" } }), " Export Excel"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_14__["default"], { columns: failedColumns, dataSource: failedTableData, pagination: { pageSize: 5 }, bordered: true, style: { marginTop: "20px" } })))); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (UpdateTeamCsvPage); /***/ }), /***/ "./src/shared/views/main/volunteer/upload_csv.tsx": /*!********************************************************!*\ !*** ./src/shared/views/main/volunteer/upload_csv.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_14__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js"); /* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js"); /* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js"); /* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var antd_es_upload__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/upload */ "../../../node_modules/antd/lib/upload/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_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/UploadOutlined.js"); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/FileExcelOutlined.js"); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var _services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/volunteer/core/actions */ "./src/services/volunteer/core/actions.ts"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! xlsx */ "../../../node_modules/xlsx/xlsx.mjs"); 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) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; 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 UploadCSVPage = function UploadCSVPage() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) { return state.volunteer; }), uploadCsvPending = _useSelector.uploadCsvPending, registerErrorMessage = _useSelector.registerErrorMessage; var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(), _Form$useForm2 = _slicedToArray(_Form$useForm, 1), form = _Form$useForm2[0]; var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), isClick = _useState2[0], setIsClick = _useState2[1]; var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState4 = _slicedToArray(_useState3, 2), csvFileList = _useState4[0], setCsvFileList = _useState4[1]; var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState6 = _slicedToArray(_useState5, 2), volunteers = _useState6[0], setVolunteers = _useState6[1]; var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState8 = _slicedToArray(_useState7, 2), failedRecords = _useState8[0], setFailedRecords = _useState8[1]; var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""), _useState0 = _slicedToArray(_useState9, 2), uploadSummary = _useState0[0], setUploadSummary = _useState0[1]; var _useState1 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0), _useState10 = _slicedToArray(_useState1, 2), successCount = _useState10[0], setSuccessCount = _useState10[1]; var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0), _useState12 = _slicedToArray(_useState11, 2), failedCount = _useState12[0], setFailedCount = _useState12[1]; // 👉 Show success or error alerts (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (!uploadCsvPending && isClick) { if (registerErrorMessage) { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage); } else { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success("File uploaded successfully!"); form.resetFields(); // Reset only after success setCsvFileList([]); setIsClick(false); } } }, [uploadCsvPending, registerErrorMessage, isClick, form]); // 👉 Handle file selection change var handleFileChange = function handleFileChange(_ref) { var fileList = _ref.fileList; setCsvFileList(fileList); }; // 👉 Validate file type (Allow only CSV or Excel) var beforeUpload = function beforeUpload(file) { var allowedTypes = ["text/csv", "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]; if (!file.type || !allowedTypes.includes(file.type)) { antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error("Only CSV and Excel (.xlsx) files are allowed!"); return antd_es_upload__WEBPACK_IMPORTED_MODULE_6__["default"].LIST_IGNORE; } return true; }; // 👉 Handle form submission var onFinish = /*#__PURE__*/function () { var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() { var file, formData, response, _t; return _regenerator().w(function (_context) { while (1) switch (_context.n) { case 0: if (csvFileList.length) { _context.n = 1; break; } antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error("Please upload a valid CSV or Excel file."); return _context.a(2); case 1: file = csvFileList[0].originFileObj; if (file) { _context.n = 2; break; } antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error("Invalid file. Please try again."); return _context.a(2); case 2: formData = new FormData(); formData.append("file", file); _context.p = 3; _context.n = 4; return dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.createUploadCsvAction)(formData)).unwrap(); case 4: response = _context.v; setVolunteers(response.volunteers || []); setFailedRecords(response.failed_records || []); // Store failed records setUploadSummary(response.message || "Upload failed"); // Set upload summary message setFailedCount(response.failed_count); setSuccessCount(response.successful_count); setIsClick(true); _context.n = 6; break; case 5: _context.p = 5; _t = _context.v; antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error("Failed to upload file."); case 6: return _context.a(2); } }, _callee, null, [[3, 5]]); })); return function onFinish() { return _ref2.apply(this, arguments); }; }(); var handlDownloadSampleCSV = /*#__PURE__*/function () { var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() { var response, blob, url, link, _t2; return _regenerator().w(function (_context2) { while (1) switch (_context2.n) { case 0: _context2.p = 0; _context2.n = 1; return dispatch((0,_services_volunteer_core_actions__WEBPACK_IMPORTED_MODULE_1__.downloadSampleCsvAction)()).unwrap(); case 1: response = _context2.v; // Ensure response is treated as a Blob blob = new Blob([response], { type: "text/csv;charset=utf-8;" }); url = window.URL.createObjectURL(blob); link = document.createElement("a"); link.href = url; link.setAttribute("download", "sample_volunteers.csv"); // Set filename document.body.appendChild(link); link.click(); // Clean up document.body.removeChild(link); window.URL.revokeObjectURL(url); _context2.n = 3; break; case 2: _context2.p = 2; _t2 = _context2.v; console.error("Error downloading CSV:", _t2); antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error("Failed to download CSV"); case 3: return _context2.a(2); } }, _callee2, null, [[0, 2]]); })); return function handlDownloadSampleCSV() { return _ref3.apply(this, arguments); }; }(); // 📌 EXPORT TO EXCEL FUNCTION var exportToExcel = /*#__PURE__*/function () { var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() { var ws, wb; return _regenerator().w(function (_context3) { while (1) switch (_context3.n) { case 0: if (volunteers && (volunteers === null || volunteers === void 0 ? void 0 : volunteers.length) > 0) { ws = xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.json_to_sheet(volunteers.map(function (it, index) { return { '#': index + 1, 'Code': it.code, 'Name Khmer': "".concat(it.last_name_khmer, " ").concat(it.first_name_khmer), 'Name Latin': "".concat(it.last_name_latin, " ").concat(it.first_name_latin), 'Date of Birth': it.date_of_birth, 'Gender': it.gender, 'Phone Number': it.phone_number }; })); wb = xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.book_new(); xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.book_append_sheet(wb, ws, 'Volunteers'); // ✅ Ensure the CV link format is properly applied ws['!cols'] = [{ wch: 10 }, { wch: 20 }, { wch: 25 }, { wch: 25 }, { wch: 15 }, { wch: 10 }, { wch: 20 }, { wch: 20 }]; xlsx__WEBPACK_IMPORTED_MODULE_7__.writeFile(wb, 'Volunteers.xlsx'); } case 1: return _context3.a(2); } }, _callee3); })); return function exportToExcel() { return _ref4.apply(this, arguments); }; }(); // 📌 EXPORT TO EXCEL FUNCTION var exportFailedRecordToExcel = /*#__PURE__*/function () { var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() { var ws, wb; return _regenerator().w(function (_context4) { while (1) switch (_context4.n) { case 0: if (failedRecords && (failedRecords === null || failedRecords === void 0 ? void 0 : failedRecords.length) > 0) { ws = xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.json_to_sheet(failedRecords.map(function (it, index) { return { '#': index + 1, 'Name Khmer': it.name_khmer, 'Name Latin': it.name_latin, 'Date of Birth': it.date_of_birth, 'Gender': it.gender, 'Phone Number': it.phone_number, 'Reason': it.reason }; })); wb = xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.book_new(); xlsx__WEBPACK_IMPORTED_MODULE_7__.utils.book_append_sheet(wb, ws, 'Volunteers-Failed'); // ✅ Ensure the CV link format is properly applied ws['!cols'] = [{ wch: 10 }, { wch: 20 }, { wch: 20 }, { wch: 20 }, { wch: 20 }, { wch: 20 }, { wch: 20 }]; xlsx__WEBPACK_IMPORTED_MODULE_7__.writeFile(wb, 'Volunteers-Failed.xlsx'); } case 1: return _context4.a(2); } }, _callee4); })); return function exportFailedRecordToExcel() { return _ref5.apply(this, arguments); }; }(); // 👉 Define table columns for failed records var failedColumns = [{ title: "No", dataIndex: "index", key: "index" }, { title: "Name Khmer", dataIndex: "nameKhmer", key: "nameKhmer" }, { title: "Name Latin", dataIndex: "nameLatin", key: "nameLatin" }, { title: "Date of Birth", dataIndex: "dateOfBirth", key: "dateOfBirth" }, { title: "Gender", dataIndex: "gender", key: "gender" }, { title: "Phone Number", dataIndex: "phoneNumber", key: "phoneNumber" }, { title: "Reason", dataIndex: "reason", key: "reason" }]; // 👉 Format data for table (failed records) var failedTableData = failedRecords.map(function (v, index) { return { key: index, "index": index + 1, "nameKhmer": v["name_khmer"], "nameLatin": v["name_latin"], "dateOfBirth": v["date_of_Birth"], "gender": v["gender"], "phoneNumber": v["phone_number"], "reason": v["reason"] }; }); // 👉 Define columns for uploaded volunteers var columns = [{ title: "Code", dataIndex: "code", key: "code" }, { title: "Name Khmer", dataIndex: "nameKhmer", key: "nameKhmer" }, { title: "Name Latin", dataIndex: "nameLatin", key: "nameLatin" }, { title: "Date of Birth", dataIndex: "dateOfBirth", key: "dateOfBirth" }, { title: "Gender", dataIndex: "gender", key: "gender" }, { title: "Phone Number", dataIndex: "phoneNumber", key: "phoneNumber" }]; // 👉 Format data for table var tableData = volunteers.map(function (v, index) { return { key: index, code: v.code, nameKhmer: "".concat(v.last_name_khmer, " ").concat(v.first_name_khmer), nameLatin: "".concat(v.last_name_latin, " ").concat(v.first_name_latin), dateOfBirth: v.date_of_birth, gender: v.gender, phoneNumber: v.phone_number }; }); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "Volunteer Upload CSV/Excel"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], { form: form, layout: "vertical", onFinish: onFinish, style: { maxWidth: "100%", margin: "0 auto" } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_8__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_9__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { name: "file", label: "Upload File", rules: [{ required: true, message: "Required" }] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_upload__WEBPACK_IMPORTED_MODULE_6__["default"].Dragger, { fileList: csvFileList, onChange: handleFileChange, beforeUpload: beforeUpload, showUploadList: { showPreviewIcon: false, showRemoveIcon: true } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null) }, "Click to Upload")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_9__["default"], { span: 6 }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_9__["default"], { span: 6 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: " " }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "default", style: { borderColor: "green", color: "green", backgroundColor: "white" }, onClick: handlDownloadSampleCSV }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_12__["default"], { style: { color: "green" } }), " Download sample csv")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_8__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_9__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "primary", block: true, htmlType: "submit", loading: uploadCsvPending }, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_9__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { htmlType: "button", onClick: function onClick() { return window.location.reload(); } }, "Cancel"))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { marginTop: "20px" } }, uploadSummary && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h3", null, uploadSummary)), volunteers.length > 0 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: "flex", justifyContent: "space-between", marginBottom: "10px" } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_13__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", { style: { color: "Green" } }, successCount, " Successful Uploaded Records")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_13__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "default", style: { borderColor: "green", color: "green", backgroundColor: "white" }, onClick: exportToExcel }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_12__["default"], { style: { color: "green" } }), " Export Excel"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_14__["default"], { columns: columns, dataSource: tableData, pagination: { pageSize: 5 }, bordered: true, style: { marginTop: "20px" } })), failedRecords.length > 0 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { marginTop: "20px" } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: "flex", justifyContent: "space-between", marginBottom: "10px" } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_13__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", { style: { color: "Red" } }, " ", failedCount, " Failed Records")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_13__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "default", style: { borderColor: "red", color: "red", backgroundColor: "white" }, onClick: exportFailedRecordToExcel }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_12__["default"], { style: { color: "red" } }), " Export Excel"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_14__["default"], { columns: failedColumns, dataSource: failedTableData, pagination: { pageSize: 5 }, bordered: true, style: { marginTop: "20px" } })))); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (UploadCSVPage); /***/ }), /***/ "./src/shared/views/main/volunteer_event/form.tsx": /*!********************************************************!*\ !*** ./src/shared/views/main/volunteer_event/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_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__); /* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js"); /* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __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_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var _services_volunteer_event_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/volunteer_event/core/actions */ "./src/services/volunteer_event/core/actions.ts"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __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 NewEditVolunteerEventPage = function NewEditVolunteerEventPage() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) { return state.volunteerEvent; }), volunteerEvent = _useSelector.volunteerEvent, registerErrorMessage = _useSelector.registerErrorMessage, volunteerEventUpdatePending = _useSelector.volunteerEventUpdatePending; 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_0__.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_0__.useEffect)(function () { if (id) { dispatch((0,_services_volunteer_event_core_actions__WEBPACK_IMPORTED_MODULE_1__.volunteerEventDetailAction)(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_0__.useEffect)(function () { if (id && volunteerEvent) { form.setFieldsValue({ name: volunteerEvent.name || '', description: volunteerEvent.description || '' }); } }, [volunteerEvent, form, id]); // 👉 Show success or error alerts (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { if (!volunteerEventUpdatePending && 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('/volunteer-events'); } } }, [volunteerEventUpdatePending, registerErrorMessage, id, isClick, navigate]); // 👉 Handle form submit var onFinish = function onFinish(values) { if (id) { dispatch((0,_services_volunteer_event_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateVolunteerEventAction)({ id: Number(id), data: values })); form.resetFields(); } else { dispatch((0,_services_volunteer_event_core_actions__WEBPACK_IMPORTED_MODULE_1__.createVolunteerEventAction)({ data: values })); form.resetFields(); // Reset form after successful creation } setIsClick(true); }; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'កែប្រែព្រឹត្តិការណ៍ស្ម័គ្រចិត្ត' : 'បន្ថែមថ្មីព្រឹត្តិការណ៍ស្ម័គ្រចិត្ត'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], { form: form, layout: "vertical", onFinish: onFinish, style: { maxWidth: '100%', margin: '0 auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1788\u17D2\u1798\u17C4\u17C7", name: "name", rules: [{ required: true, message: 'Please enter a name' }] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 12 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, { label: "\u1794\u179A\u17B7\u1799\u17B6\u1799", name: "description" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], { rows: 3 })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], { gutter: [12, 12] }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { type: "primary", block: true, htmlType: "submit", loading: volunteerEventUpdatePending }, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], { span: 3 }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), { htmlType: "button", onClick: function onClick() { return navigate('/volunteer-events'); } }, "Cancel")))))); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditVolunteerEventPage); /***/ }), /***/ "./src/shared/views/main/volunteer_event/index.tsx": /*!*********************************************************!*\ !*** ./src/shared/views/main/volunteer_event/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_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js"); /* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js"); /* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js"); /* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js"); /* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __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/EditOutlined.js"); /* 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_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js"); /* harmony import */ var _services_volunteer_event_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/volunteer_event/core/actions */ "./src/services/volunteer_event/core/actions.ts"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js"); /* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__); 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 VolunteerEventList = function VolunteerEventList() { var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)(); var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)(); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), _useState2 = _slicedToArray(_useState, 2), selectedRows = _useState2[0], setSelectedRows = _useState2[1]; var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), _useState4 = _slicedToArray(_useState3, 2), searchText = _useState4[0], setSearchText = _useState4[1]; var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) { return state.volunteerEvent; }), volunteerEvents = _useSelector.volunteerEvents, volunteerEventsPending = _useSelector.volunteerEventsPending; (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { dispatch((0,_services_volunteer_event_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchVolunteerEvents)()); }, [dispatch]); var handleEdit = function handleEdit(id) { dispatch((0,_services_volunteer_event_core_actions__WEBPACK_IMPORTED_MODULE_2__.volunteerEventDetailAction)(id)); navigate("/volunteer-events/form?id=".concat(id)); }; var handleDelete = function handleDelete(id) { sweetalert2__WEBPACK_IMPORTED_MODULE_3___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_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete'); var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___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_volunteer_event_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteVolunteerEventAction)(id)).then(function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success'); dispatch((0,_services_volunteer_event_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchVolunteerEvents)()); }); sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close(); }); cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () { sweetalert2__WEBPACK_IMPORTED_MODULE_3___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_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { size: "middle" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null), type: "primary", onClick: function onClick() { return handleEdit(record.id); } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null), danger: true, onClick: function onClick() { return handleDelete(record.id); } })); } }]; var filteredData = (volunteerEvents || []).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_0___default().createElement("div", { style: { overflowX: 'auto' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1796\u17D2\u179A\u17B9\u178F\u17D2\u178F\u17B7\u1780\u17B6\u179A\u178E\u17CD\u179F\u17D2\u1798\u17D0\u1782\u17D2\u179A\u1785\u17B7\u178F\u17D2\u178F"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: 'flex', justifyContent: 'space-between', padding: '10px', background: '#f5f5f5', marginBottom: '10px', flexWrap: 'wrap' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["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_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleSearch, type: "primary" }, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { onClick: handleReset }, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], { wrap: true }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), { icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null), type: "primary", onClick: function onClick() { return navigate("/volunteer-events/form"); } }, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["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_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], { visible: volunteerEventsPending })); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VolunteerEventList); /***/ }), /***/ "./src/shared/views/not-found/not-found.tsx": /*!**************************************************!*\ !*** ./src/shared/views/not-found/not-found.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 react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); var NotFound = function NotFound() { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h1", null, "404 - Page Not Found"); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NotFound); /***/ }), /***/ "./src/shared/views/volunteer/volunteer-register.tsx": /*!***********************************************************!*\ !*** ./src/shared/views/volunteer/volunteer-register.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 react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _services_volunteer_register_components_thanks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../services/volunteer/register/components/thanks */ "./src/services/volunteer/register/components/thanks.tsx"); var VolunteerRegisterForm = function VolunteerRegisterForm() { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "form-container" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_services_volunteer_register_components_thanks__WEBPACK_IMPORTED_MODULE_1__["default"], null)); }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VolunteerRegisterForm); /***/ }) }, /******/ __webpack_require__ => { // webpackRuntimeModules /******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) /******/ __webpack_require__.O(0, ["vendors-node_modules_ant-design_colors_es_index_js-node_modules_ant-design_cssinjs-utils_es_i-f02ac1","vendors-node_modules_ant-design_icons_BarsOutlined_js-node_modules_ant-design_icons_CalendarO-4e3fc1","vendors-node_modules_antd_lib__util_ActionButton_js-node_modules_antd_lib__util_ContextIsolat-f83f88","vendors-node_modules_antd_lib_app_context_js-node_modules_antd_lib_avatar_index_js-node_modul-c0ed2f","vendors-node_modules_antd_lib_col_index_js-node_modules_antd_lib_color-picker_components_Colo-6bece6","vendors-node_modules_antd_lib_empty_index_js-node_modules_antd_lib_form_hooks_useVariants_js--bb653c","vendors-node_modules_antd_lib_image_index_js-node_modules_antd_lib_input-number_index_js-node-de17b1","vendors-node_modules_antd_lib_modal_index_js-node_modules_antd_lib_pagination_index_js-node_m-c8b342","vendors-node_modules_antd_lib_row_index_js-node_modules_antd_lib_select_index_js-node_modules-a8fcd1","vendors-node_modules_antd_lib_style_compact-item-vertical_js-node_modules_antd_lib_style_comp-3a3284","vendors-node_modules_antd_lib_tabs_index_js-node_modules_antd_lib_tag_index_js","vendors-node_modules_antd_lib_time-picker_locale_en_US_js-node_modules_antd_lib_tooltip_index_js","vendors-node_modules_antd_lib_tree_index_js-node_modules_antd_lib_typography_index_js-node_mo-2046af","vendors-node_modules_copy-to-clipboard_index_js-node_modules_css-loader_dist_runtime_api_js-n-0eb3b3","vendors-node_modules_emotion_hash_dist_hash_browser_esm_js-node_modules_emotion_unitless_dist-aeedfc","vendors-node_modules_fflate_esm_browser_js-node_modules_jspdf-autotable_dist_jspdf_plugin_aut-58966d","vendors-node_modules_jspdf_dist_jspdf_es_min_js","vendors-node_modules_lodash_every_js-node_modules_lodash_find_js-node_modules_lodash_flatMap_-dd541c","vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-c27f65","vendors-node_modules_moment_locale_gu_js-node_modules_moment_locale_he_js-node_modules_moment-f09aae","vendors-node_modules_moment_locale_nl-be_js-node_modules_moment_locale_nl_js-node_modules_mom-aa5e01","vendors-node_modules_moment_locale_tzl_js-node_modules_moment_locale_tzm-latn_js-node_modules-ad9985","vendors-node_modules_moment_moment_js","vendors-node_modules_notiflix_dist_notiflix-aio-3_2_8_min_js-node_modules_object-assign_index_js","vendors-node_modules_prop-types_index_js-node_modules_qrcode_react_lib_esm_index_js","vendors-node_modules_rc-component_async-validator_es_index_js-node_modules_rc-component_color-9c3d79","vendors-node_modules_rc-dropdown_es_index_js-node_modules_rc-field-form_es_index_js-node_modu-800196","vendors-node_modules_rc-input-number_es_index_js-node_modules_rc-input_lib_utils_commonUtils_-994bf3","vendors-node_modules_rc-pagination_es_index_js-node_modules_rc-pagination_lib_locale_en_US_js-36f67b","vendors-node_modules_rc-picker_es_PickerTrigger_index_js-node_modules_rc-picker_es_PickerTrig-2bfecb","vendors-node_modules_rc-progress_es_index_js-node_modules_rc-resize-observer_es_index_js-node-08f4a6","vendors-node_modules_rc-table_es_index_js-node_modules_rc-table_lib_hooks_useColumns_index_js-477b33","vendors-node_modules_rc-textarea_es_index_js-node_modules_rc-tooltip_es_index_js-node_modules-ae4019","vendors-node_modules_rc-tree_lib_util_js-node_modules_rc-tree_lib_utils_conductUtil_js-node_m-79c8f8","vendors-node_modules_rc-util_lib_Children_toArray_js-node_modules_rc-util_lib_Dom_dynamicCSS_-42f019","vendors-node_modules_rc-virtual-list_es_index_js","vendors-node_modules_react-dom_cjs_react-dom_development_js","vendors-node_modules_react-dom_client_js-node_modules_react-router-dom_dist_index_js-node_mod-48faa6","vendors-node_modules_react_index_js","vendors-node_modules_recharts-scale_es6_index_js-node_modules_recharts_es6_cartesian_Bar_js-n-5ba3ae","vendors-node_modules_recharts_es6_chart_BarChart_js-node_modules_recharts_es6_chart_PieChart_js","vendors-node_modules_recharts_es6_component_Cell_js-node_modules_recharts_es6_component_Curso-e8e03b","vendors-node_modules_recharts_es6_polar_Pie_js-node_modules_recharts_es6_polar_PolarAngleAxis-559055","vendors-node_modules_recharts_es6_util_BarUtils_js-node_modules_recharts_es6_util_CssPrefixUt-0883c9","vendors-node_modules_reduxjs_toolkit_dist_redux-toolkit_modern_mjs","vendors-node_modules_remix-run_router_dist_router_js","vendors-node_modules_resize-observer-polyfill_dist_ResizeObserver_es_js-node_modules_schedule-417b7d","vendors-node_modules_sweetalert2_dist_sweetalert2_all_js-node_modules_toggle-selection_index_-23f96a","vendors-node_modules_xlsx_xlsx_mjs","main-n","main-src_services_p","main-src_services_volunteer_c","main-src_shared_a","main-src_shared_views_main_i"], () => (__webpack_exec__("./src/index.tsx"))); /******/ var __webpack_exports__ = __webpack_require__.O(); /******/ } ]); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianMvbWFpbi1zcmNfc2hhcmVkX3ZpZXdzX20udm9sdW50ZWVyYXBpLjc2ODJkODE4MWY5NzBhYjQ2ZjI1LmJ1bmRsZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBQ0EsdUtBQUFBLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLHdCQUFBQyxNQUFBLEdBQUFBLE1BQUEsT0FBQUMsQ0FBQSxHQUFBRixDQUFBLENBQUFHLFFBQUEsa0JBQUFDLENBQUEsR0FBQUosQ0FBQSxDQUFBSyxXQUFBLDhCQUFBQyxFQUFBTixDQUFBLEVBQUFFLENBQUEsRUFBQUUsQ0FBQSxFQUFBRSxDQUFBLFFBQUFDLENBQUEsR0FBQUwsQ0FBQSxJQUFBQSxDQUFBLENBQUFNLFNBQUEsWUFBQUMsU0FBQSxHQUFBUCxDQUFBLEdBQUFPLFNBQUEsRUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLE1BQUEsQ0FBQUwsQ0FBQSxDQUFBQyxTQUFBLFVBQUFLLG1CQUFBLENBQUFILENBQUEsdUJBQUFWLENBQUEsRUFBQUUsQ0FBQSxFQUFBRSxDQUFBLFFBQUFFLENBQUEsRUFBQUMsQ0FBQSxFQUFBRyxDQUFBLEVBQUFJLENBQUEsTUFBQUMsQ0FBQSxHQUFBWCxDQUFBLFFBQUFZLENBQUEsT0FBQUMsQ0FBQSxLQUFBRixDQUFBLEtBQUFiLENBQUEsS0FBQWdCLENBQUEsRUFBQXBCLENBQUEsRUFBQXFCLENBQUEsRUFBQUMsQ0FBQSxFQUFBTixDQUFBLEVBQUFNLENBQUEsQ0FBQUMsSUFBQSxDQUFBdkIsQ0FBQSxNQUFBc0IsQ0FBQSxXQUFBQSxFQUFBckIsQ0FBQSxFQUFBQyxDQUFBLFdBQUFNLENBQUEsR0FBQVAsQ0FBQSxFQUFBUSxDQUFBLE1BQUFHLENBQUEsR0FBQVosQ0FBQSxFQUFBbUIsQ0FBQSxDQUFBZixDQUFBLEdBQUFGLENBQUEsRUFBQW1CLENBQUEsZ0JBQUFD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QUFrQixFOzs7Ozs7Ozs7Ozs7Ozs7O0FDeklQO0FBRTFCLElBQU1VLFFBQWtCLEdBQUcsU0FBckJBLFFBQWtCQSxDQUFBLEVBQVM7RUFDL0Isb0JBQU90ZSwwREFBQSxhQUFJLHNCQUF3QixDQUFDO0FBQ3RDLENBQUM7QUFFRCxpRUFBZXNlLFFBQVEsRTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNORztBQUU2RDtBQUd2RixJQUFNRSxxQkFBK0IsR0FBRyxTQUFsQ0EscUJBQStCQSxDQUFBLEVBQVM7RUFFNUMsb0JBQ0V4ZSwwREFBQTtJQUFLeWUsU0FBUyxFQUFDO0VBQWdCLGdCQUU3QnplLDBEQUFBLENBQUN1ZSxzRkFBaUIsTUFBQyxDQUNoQixDQUFDO0FBRVYsQ0FBQztBQUVELGlFQUFlQyxxQkFBcUIsRSIsInNvdXJjZXMiOlsid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vdm9sdW50ZWVyL2FwcHJvdmVkLnRzeCIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL3ZvbHVudGVlci9mb3JtLnRzeCIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL3ZvbHVudGVlci9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi92b2x1bnRlZXIvdXBkYXRlX2lkZW50aXR5X2Nzdi50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi92b2x1bnRlZXIvdXBkYXRlX3RlYW1fY3N2LnRzeCIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL3ZvbHVudGVlci91cGxvYWRfY3N2LnRzeCIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL3ZvbHVudGVlcl9ldmVudC9mb3JtLnRzeCIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL3ZvbHVudGVlcl9ldmVudC9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3Mvbm90LWZvdW5kL25vdC1mb3VuZC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3Mvdm9sdW50ZWVyL3ZvbHVudGVlci1yZWdpc3Rlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtLCBCdXR0b24sIElucHV0LCBTcGFjZSwgVGFibGUsIEltYWdlLCBNb2RhbCwgUm93LCBDb2wsIFRhZywgU2VsZWN0LCBJbnB1dE51bWJlciwgVHlwb2dyYXBoeSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgZGVsZXRlVm9sdW50ZWVyQWN0aW9uLCBmZXRjaERhc2hib2FyZEFjdGlvbiwgZmV0Y2hFZHVjYXRpb25JbnN0aXR1dGlvbnMsIGZldGNoRXZlbnQsIGZldGNoTGFuZ3VhdGVBY3Rpb24sIGZldGNoUHJvdmluY2UsIGZldGNoU2tpbGxBY3Rpb24sIGZldGNoVGVhbSwgZmV0Y2hWb2x1bnRlZXJzLCB1cGRhdGVWb2x1bnRlZXJBY3Rpb24sIHZvbHVudGVlckRldGFpbEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3ZvbHVudGVlci9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnQC9zaGFyZWQvcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMb2FkaW5nRGlhbG9nIGZyb20gJy4uLy4uLy4uL2NvbnRhaW5lci9kaWFsb2dzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IERlbGV0ZU91dGxpbmVkLCBFZGl0T3V0bGluZWQsIEZpbGVFeGNlbE91dGxpbmVkLCBTb3J0QXNjZW5kaW5nT3V0bGluZWQsIEZpbHRlck91dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcbmltcG9ydCAnanNwZGYtYXV0b3RhYmxlJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcbmltcG9ydCBOb3RpZmxpeCBmcm9tICdub3RpZmxpeCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cblxuY29uc3QgeyBjb25maXJtIH0gPSBNb2RhbDtcblxuY29uc3Qgc3RhdHVzQ29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBSZWdpc3RlcjogJ2JsdWUnLFxuICBTaG9ydGxpc3Q6ICdnb2xkJyxcbiAgSW50ZXJ2aWV3OiAncHVycGxlJyxcbiAgUGFydGljaXBhbnRzOiAnZ3JlZW4nLFxuICBSZXNlcnZlOiAnY3lhbicsXG4gIEZhaWxlZDogJ3JlZCcsXG4gIFJlc2lnbmF0aW9uOiAnb3JhbmdlJyxcbiAgRGlzcXVhbGlmaWNhdGlvbjogJ3ZvbGNhbm8nLFxufTtcblxuaW50ZXJmYWNlIEFwcHJvdmVkVm9sdW5lZXJzUHJvcHMge1xuICBzdGF0dXM6IHN0cmluZztcbn1cblxuY29uc3QgQXBwcm92ZWRWb2x1bmVlcnMgPSAoeyBzdGF0dXMgfTogQXBwcm92ZWRWb2x1bmVlcnNQcm9wcykgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCB7XG4gICAgdm9sdW50ZWVycyxcbiAgICB2b2x1bnRlZXJQZW5kaW5nLFxuICAgIGRhc2hib2FyZCxcbiAgICBwcm92aW5jZXMsXG4gICAgZWR1Y2F0aW9uSW5zdGl0dXRpb25zLFxuICAgIGludGVyZXN0ZWRUZWFtcyxcbiAgICB2b2x1bnRlZXJFdmVudHMsXG4gICAgc2tpbGxzLFxuICAgIGxhbmd1YWdlc1xuICB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnZvbHVudGVlcik7XG4gIGNvbnN0IHsgYXV0aCB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlKTtcbiAgY29uc3QgeyBjdXJyZW50VXNlciB9ID0gYXV0aDtcbiAgY29uc3QgaXNBZG1pbiA9IGN1cnJlbnRVc2VyPy5yb2xlID09PSBcInN1cGVyX2FkbWluXCI7IC8vIENoZWNrIHVzZXIgcm9sZVxuXG4gIGNvbnN0IFtjdXJyZW50UGFnZSwgc2V0Q3VycmVudFBhZ2VdID0gdXNlU3RhdGUoMSk7XG4gIGNvbnN0IFtwYWdlU2l6ZSwgc2V0UGFnZVNpemVdID0gdXNlU3RhdGUoMTApO1xuICBjb25zdCBbc2VhcmNoLCBzZXRTZWFyY2hdID0gdXNlU3RhdGUoXCJcIik7XG4gIGNvbnN0IFtzb3J0T3JkZXIsIHNldFNvcnRPcmRlcl0gPSB1c2VTdGF0ZShcImRlc2NcIik7XG4gIGNvbnN0IFtwcm92aW5jZSwgc2V0UHJvdmluY2VdID0gdXNlU3RhdGUoXCJcIik7XG4gIGNvbnN0IFt0ZWFtSWQsIHNldFRlYW1JZF0gPSB1c2VTdGF0ZSgwKTtcbiAgY29uc3QgW2V2ZW50SWRzLCBzZXRFdmVudElkc10gPSB1c2VTdGF0ZTxudW1iZXJbXT4oW10pO1xuICBjb25zdCBbbGFuZ3VhZ2VJZCwgc2V0TGFuZ3VhZ2VJZF0gPSB1c2VTdGF0ZSgwKTtcbiAgY29uc3QgW3NraWxsSWQsIHNldFNraWxsSWRdID0gdXNlU3RhdGUoMCk7XG4gIGNvbnN0IFtzZWxlY3RlZEluc3RpdHV0aW9uLCBzZXRTZWxlY3RlZEluc3RpdHV0aW9uXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbc2NvcmVGcm9tLCBzZXRTY29yZUZyb21dID0gdXNlU3RhdGU8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtzY29yZVRvLCBzZXRTY29yZVRvXSA9IHVzZVN0YXRlPG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hQcm92aW5jZSgpKTtcbiAgICBkaXNwYXRjaChmZXRjaEVkdWNhdGlvbkluc3RpdHV0aW9ucygpKTtcbiAgICBkaXNwYXRjaChmZXRjaFRlYW0oKSk7XG4gICAgZGlzcGF0Y2goZmV0Y2hFdmVudCgpKTtcbiAgICBkaXNwYXRjaChmZXRjaExhbmd1YXRlQWN0aW9uKCkpO1xuICAgIGRpc3BhdGNoKGZldGNoU2tpbGxBY3Rpb24oKSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaChmZXRjaEVkdWNhdGlvbkluc3RpdHV0aW9ucygpKTtcbiAgfSwgW2Rpc3BhdGNoXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoVm9sdW50ZWVycyh7IHZvbHVudGVlcl9zdGF0dXM6IHN0YXR1cywgcGFnZTogY3VycmVudFBhZ2UsIHBhZ2VTaXplLCBzZWFyY2gsIHNvcnRfb3JkZXI6IHNvcnRPcmRlciwgZWR1Y2F0aW9uX2luc3RpdHV0aW9uX2lkOiBzZWxlY3RlZEluc3RpdHV0aW9uLCBzY29yZV9mcm9tOiBzY29yZUZyb20sIHNjb3JlX3RvOiBzY29yZVRvLCBwcm92aW5jZSwgaW50ZXJlc3RlZF90ZWFtX2lkOiB0ZWFtSWQsIGV2ZW50X2lkczogZXZlbnRJZHMsIGxhbmd1YWdlX2lkOiBsYW5ndWFnZUlkLCBza2lsbF9pZDogc2tpbGxJZCB9KSk7XG4gIH0sIFtkaXNwYXRjaCwgc3RhdHVzLCBjdXJyZW50UGFnZSwgcGFnZVNpemUsIHNlYXJjaCwgc29ydE9yZGVyLCBzZWxlY3RlZEluc3RpdHV0aW9uLCBzY29yZUZyb20sIHNjb3JlVG8sIHByb3ZpbmNlLCB0ZWFtSWQsIGV2ZW50SWRzLCBsYW5ndWFnZUlkLCBza2lsbElkXSk7XG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoID0gKGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgc2V0U2VhcmNoKGUudGFyZ2V0LnZhbHVlKTtcbiAgfTtcbiAgY29uc3QgcmVzZXRTZWFyY2ggPSAoKSA9PiB7XG4gICAgc2V0U2VhcmNoKFwiXCIpO1xuICB9O1xuICBjb25zdCBoYW5kbGVTY29yZUZyb20gPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgIHNldFNjb3JlRnJvbSh2YWx1ZSA/IE51bWJlcih2YWx1ZSkgOiBudWxsKTsgLy8gU2V0cyBudWxsIGluc3RlYWQgb2YgXCJcIlxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNjb3JlVG8gPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgIHNldFNjb3JlVG8odmFsdWUgPyBOdW1iZXIodmFsdWUpIDogbnVsbCk7IC8vIFNldHMgbnVsbCBpbnN0ZWFkIG9mIFwiXCJcbiAgfTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaCh2b2x1bnRlZXJEZXRhaWxBY3Rpb24oaWQpKTtcbiAgICBuYXZpZ2F0ZShgL3ZvbHVudGVlci9mb3JtP2lkPSR7aWR9YCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlID0gKGlkOiBhbnkpID0+IHtcbiAgICBpZiAoIWlzQWRtaW4pIHJldHVybjsgLy8gUmVzdHJpY3QgYWNjZXNzIHRvIG5vbi1hZG1pbnNcbiAgICBTd2FsLmZpcmUoe1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmU/JyxcbiAgICAgIHRleHQ6ICdZb3Ugd29uXFwndCBiZSBhYmxlIHRvIHJldmVydCB0aGlzIScsXG4gICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgIGh0bWw6IGBcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNvbmZpcm0tZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jb25maXJtIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2QzMztcIj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY2FuY2VsLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY2FuY2VsIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzMwODVkNjtcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgLFxuICAgICAgZGlkT3BlbjogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maXJtQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY29uZmlybS1kZWxldGUnKTtcbiAgICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY2FuY2VsLWRlbGV0ZScpO1xuXG4gICAgICAgIGNvbmZpcm1CdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKGRlbGV0ZVZvbHVudGVlckFjdGlvbihpZCkpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgU3dhbC5maXJlKCdEZWxldGVkIScsICdUaGUgaXRlbSBoYXMgYmVlbiBkZWxldGVkLicsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBkaXNwYXRjaChmZXRjaFZvbHVudGVlcnMoeyB2b2x1bnRlZXJfc3RhdHVzOiBzdGF0dXMsIHBhZ2U6IGN1cnJlbnRQYWdlLCBwYWdlU2l6ZTogcGFnZVNpemUsIHNvcnRfb3JkZXI6IHNvcnRPcmRlciwgZWR1Y2F0aW9uX2luc3RpdHV0aW9uX2lkOiBzZWxlY3RlZEluc3RpdHV0aW9uLCBzY29yZV9mcm9tOiBzY29yZUZyb20sIHNjb3JlX3RvOiBzY29yZVRvLCBwcm92aW5jZSwgaW50ZXJlc3RlZF90ZWFtX2lkOiB0ZWFtSWQsIGV2ZW50X2lkczogZXZlbnRJZHMsIGxhbmd1YWdlX2lkOiBsYW5ndWFnZUlkLCBza2lsbF9pZDogc2tpbGxJZCB9KSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHN0YXR1c09wdGlvbnMgPSBbXG4gICAgXCJSZWdpc3RlclwiLFxuICAgIFwiU2hvcnRsaXN0XCIsXG4gICAgXCJJbnRlcnZpZXdcIixcbiAgICBcIlBhcnRpY2lwYW50c1wiLFxuICAgIFwiUmVzZXJ2ZVwiLFxuICAgIFwiRmFpbGVkXCIsXG4gICAgXCJSZXNpZ25hdGlvblwiLFxuICAgIFwiRGlzcXVhbGlmaWNhdGlvblwiLFxuICBdO1xuXG5cbiAgLy8gSGFuZGxlIHN0YXR1cyBjaGFuZ2UgYW5kIGZldGNoIHVwZGF0ZWQgbGlzdFxuICBjb25zdCBoYW5kbGVTdGF0dXNDaGFuZ2UgPSAodm9sdW50ZWVySWQ6IHN0cmluZywgbmV3U3RhdHVzOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoIWlzQWRtaW4pIHJldHVybjsgLy8gUmVzdHJpY3QgYWNjZXNzIHRvIG5vbi1hZG1pbnNcbiAgICBkaXNwYXRjaCh1cGRhdGVWb2x1bnRlZXJBY3Rpb24oeyBpZDogdm9sdW50ZWVySWQsIGRhdGE6IHsgdm9sdW50ZWVyX3N0YXR1czogbmV3U3RhdHVzIH0gfSkpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIGRpc3BhdGNoKGZldGNoVm9sdW50ZWVycyh7IHZvbHVudGVlcl9zdGF0dXM6IHN0YXR1cywgcGFnZTogY3VycmVudFBhZ2UsIHBhZ2VTaXplOiBwYWdlU2l6ZSwgc29ydF9vcmRlcjogc29ydE9yZGVyLCBlZHVjYXRpb25faW5zdGl0dXRpb25faWQ6IHNlbGVjdGVkSW5zdGl0dXRpb24sIHNjb3JlX2Zyb206IHNjb3JlRnJvbSwgc2NvcmVfdG86IHNjb3JlVG8sIHByb3ZpbmNlLCBpbnRlcmVzdGVkX3RlYW1faWQ6IHRlYW1JZCwgZXZlbnRfaWRzOiBldmVudElkcywgbGFuZ3VhZ2VfaWQ6IGxhbmd1YWdlSWQsIHNraWxsX2lkOiBza2lsbElkIH0pKTsgLy8gRmV0Y2ggdXBkYXRlZCBsaXN0IGFmdGVyIGNoYW5nZVxuICAgICAgICBOb3RpZmxpeC5Ob3RpZnkuc3VjY2VzcyhgU3RhdHVzIHVwZGF0ZWQgdG8gXCIke25ld1N0YXR1c31cImApO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIE5vdGlmbGl4Lk5vdGlmeS5mYWlsdXJlKFwiRmFpbGVkIHRvIHVwZGF0ZSBzdGF0dXMuIFRyeSBhZ2Fpbi5cIik7XG4gICAgICB9KTtcbiAgfTtcbiAgY29uc3QgaGFuZGxlSW5zdGl0dXRpb25DaGFuZ2UgPSAoaW5zdGl0dXRpb25JZDogc3RyaW5nKSA9PiB7XG4gICAgc2V0U2VsZWN0ZWRJbnN0aXR1dGlvbihpbnN0aXR1dGlvbklkKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVUYWJsZUNoYW5nZSA9IChwYWdpbmF0aW9uOiBhbnkpID0+IHtcbiAgICBzZXRDdXJyZW50UGFnZShwYWdpbmF0aW9uLmN1cnJlbnQpO1xuICAgIHNldFBhZ2VTaXplKHBhZ2luYXRpb24ucGFnZVNpemUpO1xuICB9O1xuXG4gIGNvbnN0IGNvbHVtbnMgPSBbXG4gICAgeyB0aXRsZTogJ+KElicsIGRhdGFJbmRleDogJ2luZGV4Jywga2V5OiAnaW5kZXgnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ+Gem+GfgeGegeGegOGevOGeiicsXG4gICAgICBrZXk6ICdjb2RlJyxcbiAgICAgIHJlc3BvbnNpdmU6IFsneHMnLCAnc20nLCAnbWQnLCAnbGcnXSxcbiAgICAgIHJlbmRlcjogKF86IHN0cmluZywgcmVjb3JkOiBhbnkpID0+IChcbiAgICAgICAgPFNwYWNlIHNpemU9XCJzbWFsbFwiPlxuICAgICAgICAgIDxCdXR0b24gdHlwZT1cImxpbmtcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9PlxuICAgICAgICAgICAgPFR5cG9ncmFwaHkuVGV4dCBzdHlsZT17eyBjb2xvcjogcmVjb3JkLm1haW5fY29kZSA/ICdncmVlbicgOiAnaW5oZXJpdCcgfX0+XG4gICAgICAgICAgICAgIHtyZWNvcmQubWFpbl9jb2RlIHx8IHJlY29yZC5jb2RlfVxuICAgICAgICAgICAgPC9UeXBvZ3JhcGh5LlRleHQ+XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICApLFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICfhnprhnrzhnpThnpfhnrbhnpbhnpPhnrfhnoThnojhn5Lhnpjhn4Thn4cnLFxuICAgICAgZGF0YUluZGV4OiAnY29tYmluZWQnLFxuICAgICAga2V5OiAnY29tYmluZWQnLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogYW55LCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogMTAgfX0+XG4gICAgICAgICAge3JlY29yZC5waG90byA/IChcbiAgICAgICAgICAgIDxJbWFnZSB3aWR0aD17NTB9IHNyYz17cmVjb3JkLnBob3RvfSBhbHQ9XCJQaG90b1wiIHN0eWxlPXt7IGJvcmRlclJhZGl1czogNSwgYm9yZGVyOiAnMXB4IHNvbGlkICNkZGQnIH19IC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxzcGFuPk5vIEltYWdlPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPHNwYW4+e3JlY29yZC5uYW1lfTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApLFxuICAgIH0sXG4gICAgeyB0aXRsZTogJ+Gem+GfgeGegeGekeGevOGemuGen+GfkOGeluGfkuGekScsIGRhdGFJbmRleDogJ3Bob25lX251bWJlcicsIGtleTogJ3Bob25lX251bWJlcicsIHJlc3BvbnNpdmU6IFsnbWQnXSwgZWxsaXBzaXM6IHRydWUgfSxcbiAgICB7IHRpdGxlOiAn4Z6X4Z+B4Z6RJywgZGF0YUluZGV4OiAnZ2VuZGVyJywga2V5OiAnZ2VuZGVyJywgcmVzcG9uc2l2ZTogWydzbSddLCBlbGxpcHNpczogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAn4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4Z6i4Z+G4Z6W4Z644Z6A4Z624Z6a4Z6K4Z624Z6A4Z+L4Z6W4Z624Z6A4Z+S4Z6ZJyxcbiAgICAgIGRhdGFJbmRleDogJ2FwcGxpY2F0aW9uX2luZm8nLFxuICAgICAga2V5OiAnYXBwbGljYXRpb25faW5mbycsXG4gICAgICByZXNwb25zaXZlOiBbJ21kJ10sXG4gICAgICByZW5kZXI6IChfOiBhbnksIHJlY29yZDogYW55KSA9PiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzdHJvbmc+4Z6W4Z+S4Z6a4Z654Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4Z6O4Z+NOjwvc3Ryb25nPiB7cmVjb3JkLnZvbHVudGVlcl9ldmVudF9uYW1lIHx8ICctJ31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHN0cm9uZz7hnoDhn5LhnprhnrvhnpjhnoDhnrbhnprhnoThnrbhnpo6PC9zdHJvbmc+IHtyZWNvcmQuaW50ZXJlc3RlZF90ZWFtX25hbWUgfHwgJy0nfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8c3Ryb25nPuGeouGfiuGeuOGemOGfguGemzo8L3N0cm9uZz4ge3JlY29yZC5lbWFpbCB8fCAnLSd9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzdHJvbmc+4Z6Q4Z+S4Z6E4Z+D4Z6F4Z674Z+H4Z6I4Z+S4Z6Y4Z+E4Z+HOjwvc3Ryb25nPiB7bW9tZW50KHJlY29yZC5jcmVhdGVkX2F0KS5mb3JtYXQoJ01NTU0gRG8gWVlZWSwgaDptbTpzcyBhJykgfHwgJy0nfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICksXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogXCJBY3Rpb25cIixcbiAgICAgIGtleTogXCJhY3Rpb25cIixcbiAgICAgIHJlc3BvbnNpdmU6IFtcInhzXCIsIFwic21cIiwgXCJtZFwiLCBcImxnXCJdLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cInNtYWxsXCI+XG4gICAgICAgICAgey8qIFN0YXR1cyBEcm9wZG93biBpbnNpZGUgYSBDb2xvcmVkIFRhZyAqL31cbiAgICAgICAgICA8VGFnXG4gICAgICAgICAgICBjb2xvcj17c3RhdHVzQ29sb3JzW3JlY29yZC52b2x1bnRlZXJfc3RhdHVzXSB8fCBcImRlZmF1bHRcIn1cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IFwiM3B4IDZweFwiLFxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IFwiNnB4XCIsXG4gICAgICAgICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiIC8vIOKchSBNYWtlcyB0aGUgZHJvcGRvd24gc21hbGxlclxuICAgICAgICAgICAgICB2YWx1ZT17cmVjb3JkLnZvbHVudGVlcl9zdGF0dXMgfHwgXCJSZWdpc3RlclwifVxuICAgICAgICAgICAgICBib3JkZXJlZD17ZmFsc2V9IC8vIOKchSBSZW1vdmVzIGJvcmRlciBmb3IgYSBjbGVhbmVyIGxvb2tcbiAgICAgICAgICAgICAgZHJvcGRvd25TdHlsZT17eyBmb250U2l6ZTogXCIxMnB4XCIgfX0gLy8g4pyFIEVuc3VyZXMgc21hbGxlciB0ZXh0IGluIGRyb3Bkb3duXG4gICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgbWluV2lkdGg6IDEwMCxcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgICAgICAgICAgICBmb250U2l6ZTogXCIxMnB4XCIsIC8vIOKchSBNYWtlcyB0ZXh0IHNtYWxsZXJcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFpc0FkbWlufVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KG5ld1N0YXR1cykgPT4gaGFuZGxlU3RhdHVzQ2hhbmdlKHJlY29yZC5pZCwgbmV3U3RhdHVzKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3N0YXR1c09wdGlvbnMubWFwKChzdGF0dXMpID0+IChcbiAgICAgICAgICAgICAgICA8U2VsZWN0Lk9wdGlvbiBrZXk9e3N0YXR1c30gdmFsdWU9e3N0YXR1c30gPlxuICAgICAgICAgICAgICAgICAge3N0YXR1c31cbiAgICAgICAgICAgICAgICA8L1NlbGVjdC5PcHRpb24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgPC9UYWc+XG5cbiAgICAgICAgICB7LyogRWRpdCBCdXR0b24gKi99XG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgaWNvbj17PEVkaXRPdXRsaW5lZCAvPn1cbiAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiIC8vIOKchSBNYWtlcyBidXR0b24gc21hbGxlclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlRWRpdChyZWNvcmQuaWQpfVxuICAgICAgICAgIC8+XG5cbiAgICAgICAgICB7LyogRGVsZXRlIEJ1dHRvbiAqL31cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59XG4gICAgICAgICAgICBkYW5nZXJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiIC8vIOKchSBNYWtlcyBidXR0b24gc21hbGxlclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlKHJlY29yZC5pZCl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ+GeouGej+GfkuGej+Gen+GeieGfkuGeieGetuGejuGelOGfkOGejuGfkuGejicsXG4gICAgICBkYXRhSW5kZXg6ICd1cGxvYWRfaWRfY2FyZCcsXG4gICAgICBrZXk6ICd1cGxvYWRfaWRfY2FyZCcsXG4gICAgICByZXNwb25zaXZlOiBbJ2xnJ10sXG4gICAgICByZW5kZXI6ICh0ZXh0OiBhbnkpID0+XG4gICAgICAgIHRleHQgPyA8SW1hZ2Ugd2lkdGg9ezUwfSBzcmM9e3RleHR9IGFsdD1cIklEIENhcmRcIiBzdHlsZT17eyBib3JkZXJSYWRpdXM6IDUsIGJvcmRlcjogJzFweCBzb2xpZCAjZGRkJyB9fSAvPiA6ICdObyBJbWFnZScsXG4gICAgfSxcblxuXG4gIF07XG5cbiAgLy8g8J+TjCBFWFBPUlQgVE8gRVhDRUwgRlVOQ1RJT05cbiAgY29uc3QgZXhwb3J0VG9FeGNlbCA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoIWlzQWRtaW4pIHJldHVybjsgLy8gUmVzdHJpY3QgYWNjZXNzIHRvIG5vbi1hZG1pbnNcbiAgICBjb25zdCBhbGxEYXNoYm9hcmQgPSBhd2FpdCBkaXNwYXRjaChmZXRjaERhc2hib2FyZEFjdGlvbigpKTtcbiAgICBjb25zdCBhbGx2b2x1bnRlZXJzID0gYXdhaXQgZGlzcGF0Y2goZmV0Y2hWb2x1bnRlZXJzKHsgdm9sdW50ZWVyX3N0YXR1czogc3RhdHVzLCBwYWdlOiAxLCBwYWdlU2l6ZTogYWxsRGFzaGJvYXJkPy5wYXlsb2FkPy5jb3VudF92b2x1bnRlZXJzIHx8IDIwMDAsIHNvcnRfb3JkZXI6IHNvcnRPcmRlciwgZWR1Y2F0aW9uX2luc3RpdHV0aW9uX2lkOiBzZWxlY3RlZEluc3RpdHV0aW9uLCBzY29yZV9mcm9tOiBzY29yZUZyb20sIHNjb3JlX3RvOiBzY29yZVRvLCBwcm92aW5jZSwgaW50ZXJlc3RlZF90ZWFtX2lkOiB0ZWFtSWQsIGV2ZW50X2lkczogZXZlbnRJZHMsIGxhbmd1YWdlX2lkOiBsYW5ndWFnZUlkLCBza2lsbF9pZDogc2tpbGxJZCB9KSk7XG5cbiAgICBpZiAoYWxsdm9sdW50ZWVycyAmJiBhbGx2b2x1bnRlZXJzPy5wYXlsb2FkPy5kYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHdzID0gWExTWC51dGlscy5qc29uX3RvX3NoZWV0KFxuICAgICAgICBhbGx2b2x1bnRlZXJzPy5wYXlsb2FkPy5kYXRhLm1hcCgoaXQsIGluZGV4KSA9PiAoe1xuICAgICAgICAgICcjJzogaW5kZXggKyAxLFxuICAgICAgICAgICfhnpvhn4HhnoHhnoDhnrzhnorhnpThno7hn5Lhnorhn4Thn4fhnqLhnrbhnp/hnpPhn5LhnpMnOiBpdC5jb2RlLFxuICAgICAgICAgICfhnpvhn4HhnoHhnoDhnrzhnoonOiBpdC5tYWluX2NvZGUsXG4gICAgICAgICAgJ+GeiOGfkuGemOGfhOGfhyAoS2htZXIpJzogYCR7aXQubGFzdF9uYW1lX2tobWVyPz8nJ30gJHtpdC5maXJzdF9uYW1lX2tobWVyPz8nJ31gLFxuICAgICAgICAgICfhnojhn5Lhnpjhn4Thn4cgKExhdGluKSc6IGAke2l0Lmxhc3RfbmFtZV9sYXRpbj8/Jyd9ICR7aXQuZmlyc3RfbmFtZV9sYXRpbj8/Jyd9YCxcbiAgICAgICAgICAn4Z6Q4Z+S4Z6E4Z+D4Z6A4Z+G4Z6O4Z6+4Z6PJzogaXQuZGF0ZV9vZl9iaXJ0aD8/JycsXG4gICAgICAgICAgJ+Gel+GfgeGekSc6IGl0LmdlbmRlcj8/JycsXG4gICAgICAgICAgJ+Gen+GeieGfkuGeh+GetuGej+Getyc6IGl0Lm5hdGlvbmFsaXR5Pz8nJyxcbiAgICAgICAgICAn4Z6b4Z+B4Z6B4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6RJzogaXQucGhvbmVfbnVtYmVyPz8nJyxcbiAgICAgICAgICAn4Z6i4Z+K4Z644Z6Y4Z+C4Z6bJzogaXQuZW1haWw/PycnLFxuICAgICAgICAgICfhnqLhnrbhnp/hnpnhnorhn5LhnovhnrbhnpMnOiBpdC5jdXJyZW50X2FkZHJlc3M/PycnLFxuICAgICAgICAgICfhnoHhn4Hhno/hn5Lhno8nOiBpdC5wcm92aW5jZV9pZD8/JycsXG4gICAgICAgICAgJ+GeouGetuGeh+GeuOGelic6IGl0Lm9jY3VwYXRpb25fbmFtZT8/JycsXG4gICAgICAgICAgJ+Gen+GfkuGekOGetuGelOGfkOGek+Gen+Get+GegOGfkuGen+Getic6IGl0LmVkdWNhdGlvbl9pbnN0aXR1dGlvbl9uYW1lPz8nJyxcbiAgICAgICAgICAn4Z6R4Z+G4Z6g4Z+G4Z6i4Z624Z6cJzogaXQudF9zaGlydF9zaXplPz8nJyxcbiAgICAgICAgICAn4Z6i4Z624Z6g4Z624Z6aJzogaXQuZm9vZF9uYW1lPz8nJyxcbiAgICAgICAgICAn4Z6U4Z6J4Z+S4Z6g4Z624Z6i4Z624Z6g4Z624Z6aJzogaXQuaXNfZm9vZF9hbGxlcmd5ID8gJ1llcycgOiAnTm8nLFxuICAgICAgICAgICfhnqLhnrbhnqDhnrbhnprhnorhn4LhnpvhnpXhn5LhnqLhn4LhnoAnOiBpdC5mb29kX2FsbGVyZ2llcz8/JycsXG4gICAgICAgICAgJ+GelOGfkuGemuGel+GfgeGekeGeluGet+GegOGetuGemuGel+GetuGelic6IGl0LmRpc2FiaWxpdHlfdHlwZV9uYW1lPz8nJyxcbiAgICAgICAgICAn4Z6A4Z+S4Z6a4Z674Z6Y4Z6K4Z+C4Z6b4Z6F4Z624Z6U4Z+L4Z6i4Z624Z6a4Z6Y4Z+S4Z6Y4Z6O4Z+NJzogaXQuaW50ZXJlc3RlZF90ZWFtX25hbWU/PycnLFxuICAgICAgICAgICfhnpbhn5Lhnprhnrnhno/hn5Lhno/hnrfhnoDhnrbhnprhno7hn40nOiBpdC52b2x1bnRlZXJfZXZlbnRfbmFtZT8/JycsXG4gICAgICAgICAgJ+GelOGfkuGemuGel+GeluGeseGegOGetuGenyc6IGl0Lm9wcG9ydHVuaXR5X3NvdXJjZV9uYW1lPz8nJyxcbiAgICAgICAgICAn4Z6c4Z6C4Z+S4Z6C4Z6U4Z6O4Z+S4Z6P4Z674Z+H4Z6U4Z6O4Z+S4Z6P4Z624Z6bJzogaXQudHJhaW5pbmdfc2Vzc2lvbl9uYW1lPz8nJyxcbiAgICAgICAgICAn4Z6f4Z+S4Z6Q4Z624Z6T4Z6X4Z624Z6WJzogaXQudm9sdW50ZWVyX3N0YXR1cz8/JycsXG4gICAgICAgICAgJ0NyZWF0ZWQgQXQnOiBpdC5jcmVhdGVkX2F0LFxuXG4gICAgICAgICAgLy8g4pyFIEFkZCBEaXJlY3QgSW1hZ2UgVVJMc1xuICAgICAgICAgICfhnprhnrzhnpThnpfhnrbhnpYnOiBpdC5waG90byA/IGl0LnBob3RvIDogJ05vIEltYWdlJyxcbiAgICAgICAgICAn4Z6i4Z6P4Z+S4Z6P4Z6f4Z6J4Z+S4Z6J4Z624Z6O4Z6U4Z+Q4Z6O4Z+S4Z6OJzogaXQudXBsb2FkX2lkX2NhcmQgPyBpdC51cGxvYWRfaWRfY2FyZCA6ICdObyBJbWFnZScsXG5cbiAgICAgICAgICAvLyDinIUgQWRkIERvd25sb2FkYWJsZSBDViBMaW5rXG4gICAgICAgICAgJ0NWJzogaXQudXBsb2FkX2N2ID8gYD1IWVBFUkxJTksoXCIke2l0LnVwbG9hZF9jdn1cIiwgXCJEb3dubG9hZCBDVlwiKWAgOiAnTm8gQ1YnXG4gICAgICAgIH0pKVxuICAgICAgKTtcblxuICAgICAgY29uc3Qgd2IgPSBYTFNYLnV0aWxzLmJvb2tfbmV3KCk7XG4gICAgICBYTFNYLnV0aWxzLmJvb2tfYXBwZW5kX3NoZWV0KHdiLCB3cywgJ1ZvbHVudGVlcnMnKTtcblxuICAgICAgLy8g4pyFIEVuc3VyZSB0aGUgQ1YgbGluayBmb3JtYXQgaXMgcHJvcGVybHkgYXBwbGllZFxuICAgICAgd3NbJyFjb2xzJ10gPSBbeyB3Y2g6IDEwIH0sIHsgd2NoOiAyMCB9LCB7IHdjaDogMjUgfSwgeyB3Y2g6IDI1IH0sIHsgd2NoOiAxNSB9LCB7IHdjaDogMTAgfSwgeyB3Y2g6IDIwIH0sIHsgd2NoOiAyMCB9LCB7IHdjaDogMzAgfSwgeyB3Y2g6IDIwIH0sIHsgd2NoOiAyMCB9LCB7IHdjaDogMjUgfSwgeyB3Y2g6IDE1IH0sIHsgd2NoOiAxMCB9LCB7IHdjaDogMTAgfSwgeyB3Y2g6IDEwIH0sIHsgd2NoOiAxNSB9LCB7IHdjaDogMTUgfSwgeyB3Y2g6IDIwIH0sIHsgd2NoOiAyMCB9LCB7IHdjaDogMjAgfSwgeyB3Y2g6IDIwIH0sIHsgd2NoOiAyNSB9XTtcblxuICAgICAgWExTWC53cml0ZUZpbGUod2IsICdWb2x1bnRlZXJzLnhsc3gnKTtcbiAgICB9XG4gIH07XG5cblxuICBjb25zdCBoYW5kbGVTb3J0T3JkZXIgPSAoKSA9PiB7XG4gICAgc2V0U29ydE9yZGVyKHByZXZPcmRlciA9PiAocHJldk9yZGVyID09PSBcImRlc2NcIiA/IFwiYXNjXCIgOiBcImRlc2NcIikpO1xuICB9XG5cblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICB7aXNBZG1pbiAmJiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgcGFkZGluZzogJzEwcHgnLFxuICAgICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHsvKiBIZWFkZXIgQ29udHJvbHMgKi99XG4gICAgICAgICAgPFJvdyBndXR0ZXI9e1sxNiwgMTZdfSBqdXN0aWZ5PVwic3BhY2UtYmV0d2VlblwiIGFsaWduPVwibWlkZGxlXCIgc3R5bGU9e3sgbWFyZ2luQm90dG9tOiAnMTBweCcgfX0+XG4gICAgICAgICAgICA8Q29sIHhzPXsyNH0gbWQ9ezEyfT5cbiAgICAgICAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7dm9sdW50ZWVycz8ubWV0YT8udG90YWwgfHwgMH08L3NwYW4+XG4gICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17c2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVNlYXJjaH1cbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IG1pbldpZHRoOiAxNTAgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxCdXR0b24gb25DbGljaz17cmVzZXRTZWFyY2h9PuGegOGfhuGejuGej+Gfi+GeoeGevuGehOGenOGet+GeiTwvQnV0dG9uPlxuICAgICAgICAgICAgICA8L1NwYWNlPlxuICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgICA8Q29sIHhzPXsyNH0gbWQ9ezEyfT5cbiAgICAgICAgICAgICAgPFNwYWNlIHdyYXAgc3R5bGU9e3sgd2lkdGg6ICcxMDAlJywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LWVuZCcgfX0+XG4gICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgYm9yZGVyQ29sb3I6IFwicmVkXCIsIGNvbG9yOiBcInJlZFwiLCBiYWNrZ3JvdW5kQ29sb3I6IFwid2hpdGVcIiB9fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU29ydE9yZGVyfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTb3J0QXNjZW5kaW5nT3V0bGluZWQgc3R5bGU9e3sgY29sb3I6IFwicmVkXCIgfX0gLz4gT1JERVJcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cblxuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJvcmRlckNvbG9yOiBcImdyZWVuXCIsIGNvbG9yOiBcImdyZWVuXCIsIGJhY2tncm91bmRDb2xvcjogXCJ3aGl0ZVwiIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtleHBvcnRUb0V4Y2VsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxGaWxlRXhjZWxPdXRsaW5lZCBzdHlsZT17eyBjb2xvcjogXCJncmVlblwiIH19IC8+IEV4Y2VsXG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgIDwvU3BhY2U+XG4gICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8L1Jvdz5cblxuICAgICAgICAgIHsvKiBGaWx0ZXJzICovfVxuICAgICAgICAgIDxSb3cgZ3V0dGVyPXtbMTYsIDE2XX0+XG4gICAgICAgICAgICA8Q29sIHhzPXsyNH0gc209ezEyfSBtZD17OH0gbGc9ezZ9PlxuICAgICAgICAgICAgICA8c3Bhbj7hnoHhn4Hhno/hn5Lhno/igIsg4Z6sIOGegOGfkuGemuGeu+GehDwvc3Bhbj5cbiAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiAnMTAwJScgfX1cbiAgICAgICAgICAgICAgICBhbGxvd0NsZWFyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYSBQcm92aW5jZSBvciBDaXR5XCJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlOiBhbnkpID0+IHNldFByb3ZpbmNlKHZhbHVlKX1cbiAgICAgICAgICAgICAgICBzaG93U2VhcmNoXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7QXJyYXkuaXNBcnJheShwcm92aW5jZXMpICYmIHByb3ZpbmNlcy5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICAgICAgcHJvdmluY2VzLm1hcCgocHJvdmluY2UpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPFNlbGVjdC5PcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3Byb3ZpbmNlLmlkfVxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtgJHtwcm92aW5jZS5pZH0sJHtwcm92aW5jZS5uYW1lLmttfSAvICR7cHJvdmluY2UubmFtZS5sYXRpbn1gfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge2Ake3Byb3ZpbmNlLm5hbWUua219IC8gJHtwcm92aW5jZS5uYW1lLmxhdGlufWB9XG4gICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0Lk9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxTZWxlY3QuT3B0aW9uIGRpc2FibGVkPk5vIHByb3ZpbmNlcyBhdmFpbGFibGU8L1NlbGVjdC5PcHRpb24+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICA8L0NvbD5cblxuICAgICAgICAgICAgPENvbCB4cz17MjR9IHNtPXsxMn0gbWQ9ezh9IGxnPXs2fT5cbiAgICAgICAgICAgICAgPHNwYW4+4Z6f4Z624Z6A4Z6b4Z6c4Z634Z6R4Z+S4Z6Z4Z624Z6b4Z+Q4Z6ZPC9zcGFuPlxuICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6ICcxMDAlJyB9fVxuICAgICAgICAgICAgICAgIGFsbG93Q2xlYXJcbiAgICAgICAgICAgICAgICBzaG93U2VhcmNoXG4gICAgICAgICAgICAgICAgZmlsdGVyT3B0aW9uPXsoaW5wdXQsIG9wdGlvbjogYW55KSA9PlxuICAgICAgICAgICAgICAgICAgb3B0aW9uPy5jaGlsZHJlbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGlucHV0LnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVJbnN0aXR1dGlvbkNoYW5nZX1cbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhbiBpbnN0aXR1dGlvblwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7ZWR1Y2F0aW9uSW5zdGl0dXRpb25zPy5tYXAoKGluc3RpdHV0aW9uKSA9PiAoXG4gICAgICAgICAgICAgICAgICA8T3B0aW9uIGtleT17aW5zdGl0dXRpb24uaWR9IHZhbHVlPXtpbnN0aXR1dGlvbi5pZH0+XG4gICAgICAgICAgICAgICAgICAgIHtpbnN0aXR1dGlvbi5uYW1lfVxuICAgICAgICAgICAgICAgICAgPC9PcHRpb24+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgIDwvU2VsZWN0PlxuICAgICAgICAgICAgPC9Db2w+XG5cbiAgICAgICAgICAgIDxDb2wgeHM9ezI0fSBzbT17MTJ9IG1kPXs4fSBsZz17Nn0+XG4gICAgICAgICAgICAgIDxzcGFuPuGegOGfkuGemuGeu+GemDwvc3Bhbj5cbiAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiAnMTAwJScgfX1cbiAgICAgICAgICAgICAgICBhbGxvd0NsZWFyXG4gICAgICAgICAgICAgICAgc2hvd1NlYXJjaFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGFuIGludGVyZXN0ZWQgdGVhbVwiXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZTogYW55KSA9PiBzZXRUZWFtSWQodmFsdWUpfVxuICAgICAgICAgICAgICAgIGZpbHRlck9wdGlvbj17KGlucHV0LCBvcHRpb246IGFueSkgPT5cbiAgICAgICAgICAgICAgICAgIG9wdGlvbj8uY2hpbGRyZW4udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhpbnB1dC50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtpbnRlcmVzdGVkVGVhbXM/Lm1hcCgodGVhbTogYW55KSA9PiAoXG4gICAgICAgICAgICAgICAgICA8T3B0aW9uIGtleT17dGVhbS5pZH0gdmFsdWU9e3RlYW0uaWR9PlxuICAgICAgICAgICAgICAgICAgICB7dGVhbS5uYW1lfVxuICAgICAgICAgICAgICAgICAgPC9PcHRpb24+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgIDwvU2VsZWN0PlxuICAgICAgICAgICAgPC9Db2w+XG5cbiAgICAgICAgICAgIDxDb2wgeHM9ezI0fSBzbT17MTJ9IG1kPXs4fSBsZz17Nn0+XG4gICAgICAgICAgICAgIDxzcGFuPuGeluGfkuGemuGeueGej+GfkuGej+Get+GegOGetuGemuGejuGfjTwvc3Bhbj5cbiAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgIG1vZGU9XCJtdWx0aXBsZVwiXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6ICcxMDAlJyB9fVxuICAgICAgICAgICAgICAgIGFsbG93Q2xlYXJcbiAgICAgICAgICAgICAgICBzaG93U2VhcmNoXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYW4gZXZlbnRcIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtldmVudElkc31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlcykgPT4gc2V0RXZlbnRJZHModmFsdWVzKX1cbiAgICAgICAgICAgICAgICBmaWx0ZXJPcHRpb249eyhpbnB1dCwgb3B0aW9uKSA9PlxuICAgICAgICAgICAgICAgICAgb3B0aW9uPy5jaGlsZHJlbj8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGlucHV0LnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3ZvbHVudGVlckV2ZW50cz8ubWFwKChldmVudCkgPT4gKFxuICAgICAgICAgICAgICAgICAgPE9wdGlvbiBrZXk9e2V2ZW50LmlkfSB2YWx1ZT17ZXZlbnQuaWR9PlxuICAgICAgICAgICAgICAgICAgICB7ZXZlbnQubmFtZX1cbiAgICAgICAgICAgICAgICAgIDwvT3B0aW9uPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L1NlbGVjdD5cbiAgICAgICAgICAgIDwvQ29sPlxuXG4gICAgICAgICAgICA8Q29sIHhzPXsyNH0gc209ezEyfSBtZD17OH0gbGc9ezZ9PlxuICAgICAgICAgICAgICA8c3Bhbj7hnpfhnrbhnp/hnrY8L3NwYW4+XG4gICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogJzEwMCUnIH19XG4gICAgICAgICAgICAgICAgYWxsb3dDbGVhclxuICAgICAgICAgICAgICAgIHNob3dTZWFyY2hcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhIGxhbmd1YWdlXCJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlOiBhbnkpID0+IHNldExhbmd1YWdlSWQodmFsdWUpfVxuICAgICAgICAgICAgICAgIGZpbHRlck9wdGlvbj17KGlucHV0LCBvcHRpb246IGFueSkgPT5cbiAgICAgICAgICAgICAgICAgIG9wdGlvbj8uY2hpbGRyZW4udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhpbnB1dC50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtsYW5ndWFnZXM/Lm1hcCgobGFuZ3VhZ2U6IGFueSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPE9wdGlvbiBrZXk9e2xhbmd1YWdlLmlkfSB2YWx1ZT17bGFuZ3VhZ2UuaWR9PlxuICAgICAgICAgICAgICAgICAgICB7bGFuZ3VhZ2UubmFtZX1cbiAgICAgICAgICAgICAgICAgIDwvT3B0aW9uPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L1NlbGVjdD5cbiAgICAgICAgICAgIDwvQ29sPlxuXG4gICAgICAgICAgICA8Q29sIHhzPXsyNH0gc209ezEyfSBtZD17OH0gbGc9ezZ9PlxuICAgICAgICAgICAgICA8c3Bhbj7hnofhn4bhnpPhnrbhnonhnpXhn5Lhnp/hn4HhnoThnpHhn4Dhno88L3NwYW4+XG4gICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogJzEwMCUnIH19XG4gICAgICAgICAgICAgICAgYWxsb3dDbGVhclxuICAgICAgICAgICAgICAgIHNob3dTZWFyY2hcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhIHNraWxsXCJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlOiBhbnkpID0+IHNldFNraWxsSWQodmFsdWUpfVxuICAgICAgICAgICAgICAgIGZpbHRlck9wdGlvbj17KGlucHV0LCBvcHRpb246IGFueSkgPT5cbiAgICAgICAgICAgICAgICAgIG9wdGlvbj8uY2hpbGRyZW4udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhpbnB1dC50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtza2lsbHM/Lm1hcCgoc2tpbGw6IGFueSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPE9wdGlvbiBrZXk9e3NraWxsLmlkfSB2YWx1ZT17c2tpbGwuaWR9PlxuICAgICAgICAgICAgICAgICAgICB7c2tpbGwubmFtZX1cbiAgICAgICAgICAgICAgICAgIDwvT3B0aW9uPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L1NlbGVjdD5cbiAgICAgICAgICAgIDwvQ29sPlxuXG4gICAgICAgICAgICA8Q29sIHhzPXsyNH0gc209ezI0fSBtZD17MTJ9IGxnPXsxMn0+XG4gICAgICAgICAgICAgIDxzcGFuPuGeluGet+Gek+GfkuGekeGeuzwvc3Bhbj5cbiAgICAgICAgICAgICAgPFNwYWNlIHN0eWxlPXt7IHdpZHRoOiAnMTAwJScgfX0gZGlyZWN0aW9uPVwiaG9yaXpvbnRhbFwiIHdyYXA+XG4gICAgICAgICAgICAgICAgPElucHV0TnVtYmVyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkZyb21cIlxuICAgICAgICAgICAgICAgICAgbWluPXswfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e3Njb3JlRnJvbX1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtzZXRTY29yZUZyb219XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8SW5wdXROdW1iZXJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVG9cIlxuICAgICAgICAgICAgICAgICAgbWluPXtzY29yZUZyb20gfHwgMH1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtzY29yZVRvfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e3NldFNjb3JlVG99XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDwvUm93PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG5cbiAgICAgIHsvKiBUYWJsZSBTZWN0aW9uICovfVxuICAgICAgPFRhYmxlXG4gICAgICAgIHJvd1NlbGVjdGlvbj17e1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgb25DaGFuZ2U6IChfLCBzZWxlY3RlZFJvd3MpID0+IHNldFNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3MpLFxuICAgICAgICB9fVxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBkYXRhU291cmNlPXsodm9sdW50ZWVycz8uZGF0YSB8fCBbXSkubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAga2V5OiBpdC5pZCxcbiAgICAgICAgICBpbmRleDogaW5kZXggKyAxLFxuICAgICAgICAgIG5hbWU6IGAke2l0Lmxhc3RfbmFtZV9sYXRpbn0gJHtpdC5maXJzdF9uYW1lX2xhdGlufWAsXG4gICAgICAgICAgLi4uaXQsXG4gICAgICAgIH0pKX1cbiAgICAgICAgbG9hZGluZz17dm9sdW50ZWVyUGVuZGluZ31cbiAgICAgICAgcGFnaW5hdGlvbj17e1xuICAgICAgICAgIGN1cnJlbnQ6IGN1cnJlbnRQYWdlLFxuICAgICAgICAgIHBhZ2VTaXplOiBwYWdlU2l6ZSxcbiAgICAgICAgICB0b3RhbDogdm9sdW50ZWVycz8ubWV0YT8udG90YWwgfHwgMCxcbiAgICAgICAgICBzaG93U2l6ZUNoYW5nZXI6IHRydWUsXG4gICAgICAgIH19XG4gICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVUYWJsZUNoYW5nZX1cbiAgICAgICAgcm93S2V5PVwiaWRcIlxuICAgICAgICBzY3JvbGw9e3sgeDogJ21heC1jb250ZW50JyB9fVxuICAgICAgLz5cbiAgICAgIDxMb2FkaW5nRGlhbG9nIHZpc2libGU9e3ZvbHVudGVlclBlbmRpbmd9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBcHByb3ZlZFZvbHVuZWVyczsiLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgVm9sdW50ZWVyRm9ybSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZXMvdm9sdW50ZWVyL3JlZ2lzdGVyL2NvbXBvbmVudHMvZm9ybVwiO1xuIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiBjb25zdCBpZDogYW55ID0gc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcbmNvbnN0IE5ld0VkaXRWb2x1bnRlZXJQYWdlOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8Vm9sdW50ZWVyRm9ybSBpZD17aWR9IC8+XG4gICk7XG59O1xuZXhwb3J0IGRlZmF1bHQgTmV3RWRpdFZvbHVudGVlclBhZ2U7IiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFRhYnMgfSBmcm9tIFwiYW50ZFwiO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUsIHVzZUxvY2F0aW9uIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcbmltcG9ydCB7IHVzZVNlbGVjdG9yIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XG5pbXBvcnQgQXBwcm92ZWRWb2x1bnRlZXJzIGZyb20gXCIuL2FwcHJvdmVkXCI7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tIFwiLi4vLi4vLi4vcmVkdXgvc3RvcmVcIjtcblxuY29uc3QgVk9MVU5URUVSX1RBQlMgPSBbXG4gIHsgbGFiZWw6IFwi4Z6U4Z6J4Z+S4Z6H4Z644Z6i4Z+S4Z6T4Z6A4Z6F4Z674Z+H4Z6I4Z+S4Z6Y4Z+E4Z+H4Z6f4Z+S4Z6Y4Z+Q4Z6C4Z+S4Z6a4Z6F4Z634Z6P4Z+S4Z6PXCIsIGtleTogXCJcIiB9LFxuICB7IGxhYmVsOiBcIuGelOGeieGfkuGeh+GeuOGen+GemOGfkuGemuGetuGfhlwiLCBrZXk6IFwiU2hvcnRsaXN0XCIsIGFkbWluT25seTogdHJ1ZSB9LFxuICB7IGxhYmVsOiBcIuGelOGeieGfkuGeh+GeuOGeouGfkuGek+GegOGej+GfkuGemuGevOGenOGen+GemOGfkuGel+GetuGen+Gek+GfjVwiLCBrZXk6IFwiSW50ZXJ2aWV3XCIsIGFkbWluT25seTogdHJ1ZSB9LFxuICB7IGxhYmVsOiBcIuGelOGeieGfkuGeh+GeuOGeouGfkuGek+GegOGeh+GetuGelOGfi1wiLCBrZXk6IFwiUGFydGljaXBhbnRzXCIsIGFkbWluT25seTogdHJ1ZSB9LFxuICB7IGxhYmVsOiBcIuGelOGeieGfkuGeh+GeuOGeouGfkuGek+GegOGelOGfhuGemuGeu+GehFwiLCBrZXk6IFwiUmVzZXJ2ZVwiLCBhZG1pbk9ubHk6IHRydWUgfSxcbiAgeyBsYWJlbDogXCLhnpThnonhn5LhnofhnrjhnqLhn5LhnpPhnoDhnpLhn5LhnpvhnrbhnoDhn4tcIiwga2V5OiBcIkZhaWxlZFwiLCBhZG1pbk9ubHk6IHRydWUgfSxcbiAgeyBsYWJlbDogXCLhnpThnonhn5LhnofhnrjhnqLhn5LhnpPhnoDhnp/hnrvhn4bhnojhnpThn4tcIiwga2V5OiBcIlJlc2lnbmF0aW9uXCIsIGFkbWluT25seTogdHJ1ZSB9LFxuICB7IGxhYmVsOiBcIuGelOGeieGfkuGeh+GeuOGeouGfkuGek+GegOGemOGet+Gek+GekeGetuGek+Gfi+GemOGetuGek+Gem+GegOGfkuGegeGejuGfiOGeguGfkuGemuGelOGfi+GeguGfkuGemuGetuGek+Gfi1wiLCBrZXk6IFwiRGlzcXVhbGlmaWNhdGlvblwiLCBhZG1pbk9ubHk6IHRydWUgfSxcbl07XG5cbmNvbnN0IFZvbHVudGVlckxpc3Q6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgcXVlcnkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XG4gIGNvbnN0IGluaXRpYWxTdGF0dXMgPSBxdWVyeS5nZXQoXCJzdGF0dXNcIikgfHwgXCJcIjtcbiAgY29uc3QgW3N0YXR1cywgc2V0U3RhdHVzXSA9IHVzZVN0YXRlPHN0cmluZz4oaW5pdGlhbFN0YXR1cyk7XG5cbiAgY29uc3QgeyBjdXJyZW50VXNlciB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLmF1dGgpO1xuICBjb25zdCBpc0FkbWluID0gY3VycmVudFVzZXI/LnJvbGUgPT09IFwic3VwZXJfYWRtaW5cIjsgLy8gQ2hlY2sgaWYgdXNlciBpcyBhZG1pblxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHF1ZXJ5LmdldChcInN0YXR1c1wiKSAhPT0gc3RhdHVzKSB7XG4gICAgICBzZXRTdGF0dXMocXVlcnkuZ2V0KFwic3RhdHVzXCIpIHx8IFwiXCIpO1xuICAgIH1cbiAgfSwgW2xvY2F0aW9uLnNlYXJjaF0pOyAvLyBFbnN1cmUgc3RhdHVzIHVwZGF0ZXMgd2l0aCBVUkwgY2hhbmdlc1xuXG4gIGNvbnN0IGhhbmRsZVRhYkNoYW5nZSA9IChrZXk6IHN0cmluZykgPT4ge1xuICAgIHNldFN0YXR1cyhrZXkpO1xuICAgIHF1ZXJ5LnNldChcInN0YXR1c1wiLCBrZXkpO1xuICAgIG5hdmlnYXRlKHsgcGF0aG5hbWU6IGxvY2F0aW9uLnBhdGhuYW1lLCBzZWFyY2g6IHF1ZXJ5LnRvU3RyaW5nKCkgfSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPFRhYnMgYWN0aXZlS2V5PXtzdGF0dXN9IG9uQ2hhbmdlPXtoYW5kbGVUYWJDaGFuZ2V9PlxuICAgICAgICB7Vk9MVU5URUVSX1RBQlMubWFwKFxuICAgICAgICAgICh7IGxhYmVsLCBrZXksIGFkbWluT25seSB9KSA9PlxuICAgICAgICAgICAgKCFhZG1pbk9ubHkgfHwgaXNBZG1pbikgJiYgPFRhYnMuVGFiUGFuZSB0YWI9e2xhYmVsfSBrZXk9e2tleX0gLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVGFicz5cbiAgICAgIDxBcHByb3ZlZFZvbHVudGVlcnMgc3RhdHVzPXtzdGF0dXN9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBWb2x1bnRlZXJMaXN0O1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEZvcm0sIFVwbG9hZCwgQnV0dG9uLCBSb3csIENvbCwgbWVzc2FnZSwgVGFibGUsIFNwYWNlIH0gZnJvbSBcImFudGRcIjtcbmltcG9ydCB0eXBlIHsgVXBsb2FkRmlsZSB9IGZyb20gXCJhbnRkL2VzL3VwbG9hZC9pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFVwbG9hZE91dGxpbmVkLCBGaWxlRXhjZWxPdXRsaW5lZCB9IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSBcIi4uLy4uLy4uL3JlZHV4L3N0b3JlXCI7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcbmltcG9ydCB7IGNyZWF0ZVVwZGF0ZUlkZW50aXR5Q3N2QWN0aW9uLCBjcmVhdGVVcGRhdGVUZWFtQ3N2QWN0aW9uLCBkb3dubG9hZFNhbXBsZVVwZGF0ZUlkZW50aXR5Q3N2QWN0aW9uLCBkb3dubG9hZFNhbXBsZVVwZGF0ZVRlYW1Dc3ZBY3Rpb24gfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZXMvdm9sdW50ZWVyL2NvcmUvYWN0aW9uc1wiO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcblxuY29uc3QgVXBkYXRlSWRlbnRpdHlDc3ZQYWdlOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IHsgdXBhdGVUZWFtQ3N2UGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS52b2x1bnRlZXJcbiAgKTtcbiAgY29uc3QgW2Zvcm1dID0gRm9ybS51c2VGb3JtKCk7XG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2NzdkZpbGVMaXN0LCBzZXRDc3ZGaWxlTGlzdF0gPSB1c2VTdGF0ZTxVcGxvYWRGaWxlW10+KFtdKTtcbiAgY29uc3QgW3ZvbHVudGVlcnMsIHNldFZvbHVudGVlcnNdID0gdXNlU3RhdGU8YW55W10+KFtdKTtcbiAgY29uc3QgW2ZhaWxlZFJlY29yZHMsIHNldEZhaWxlZFJlY29yZHNdID0gdXNlU3RhdGU8YW55W10+KFtdKTtcbiAgY29uc3QgW3VwbG9hZFN1bW1hcnksIHNldFVwbG9hZFN1bW1hcnldID0gdXNlU3RhdGU8c3RyaW5nPihcIlwiKTtcbiAgY29uc3QgW3N1Y2Nlc3NDb3VudCwgc2V0U3VjY2Vzc0NvdW50XSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCBbZmFpbGVkQ291bnQsIHNldEZhaWxlZENvdW50XSA9IHVzZVN0YXRlKDApO1xuXG4gIC8vIPCfkYkgU2hvdyBzdWNjZXNzIG9yIGVycm9yIGFsZXJ0c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdXBhdGVUZWFtQ3N2UGVuZGluZyAmJiBpc0NsaWNrKSB7XG4gICAgICBpZiAocmVnaXN0ZXJFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgbWVzc2FnZS5lcnJvcihyZWdpc3RlckVycm9yTWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoXCJGaWxlIHVwbG9hZGVkIHN1Y2Nlc3NmdWxseSFcIik7XG4gICAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgb25seSBhZnRlciBzdWNjZXNzXG4gICAgICAgIHNldENzdkZpbGVMaXN0KFtdKTtcbiAgICAgICAgc2V0SXNDbGljayhmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbdXBhdGVUZWFtQ3N2UGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGlzQ2xpY2ssIGZvcm1dKTtcblxuICAvLyDwn5GJIEhhbmRsZSBmaWxlIHNlbGVjdGlvbiBjaGFuZ2VcbiAgY29uc3QgaGFuZGxlRmlsZUNoYW5nZSA9ICh7IGZpbGVMaXN0IH06IHsgZmlsZUxpc3Q6IFVwbG9hZEZpbGVbXSB9KSA9PiB7XG4gICAgc2V0Q3N2RmlsZUxpc3QoZmlsZUxpc3QpO1xuICB9O1xuXG4gIC8vIPCfkYkgVmFsaWRhdGUgZmlsZSB0eXBlIChBbGxvdyBvbmx5IENTViBvciBFeGNlbClcbiAgY29uc3QgYmVmb3JlVXBsb2FkID0gKGZpbGU6IFVwbG9hZEZpbGUpID0+IHtcbiAgICBjb25zdCBhbGxvd2VkVHlwZXMgPSBbXG4gICAgICBcInRleHQvY3N2XCIsXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbFwiLFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldFwiLFxuICAgIF07XG5cbiAgICBpZiAoIWZpbGUudHlwZSB8fCAhYWxsb3dlZFR5cGVzLmluY2x1ZGVzKGZpbGUudHlwZSkpIHtcbiAgICAgIG1lc3NhZ2UuZXJyb3IoXCJPbmx5IENTViBhbmQgRXhjZWwgKC54bHN4KSBmaWxlcyBhcmUgYWxsb3dlZCFcIik7XG4gICAgICByZXR1cm4gVXBsb2FkLkxJU1RfSUdOT1JFO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWlzc2lvblxuICBjb25zdCBvbkZpbmlzaCA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoIWNzdkZpbGVMaXN0Lmxlbmd0aCkge1xuICAgICAgbWVzc2FnZS5lcnJvcihcIlBsZWFzZSB1cGxvYWQgYSB2YWxpZCBDU1Ygb3IgRXhjZWwgZmlsZS5cIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZSA9IGNzdkZpbGVMaXN0WzBdLm9yaWdpbkZpbGVPYmogYXMgRmlsZTtcbiAgICBpZiAoIWZpbGUpIHtcbiAgICAgIG1lc3NhZ2UuZXJyb3IoXCJJbnZhbGlkIGZpbGUuIFBsZWFzZSB0cnkgYWdhaW4uXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKFwiZmlsZVwiLCBmaWxlKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGRpc3BhdGNoKGNyZWF0ZVVwZGF0ZUlkZW50aXR5Q3N2QWN0aW9uKGZvcm1EYXRhKSkudW53cmFwKCk7XG4gICAgICBzZXRWb2x1bnRlZXJzKHJlc3BvbnNlLnZvbHVudGVlcnMgfHwgW10pO1xuICAgICAgc2V0RmFpbGVkUmVjb3JkcyhyZXNwb25zZS5mYWlsZWRfcmVjb3JkcyB8fCBbXSk7IC8vIFN0b3JlIGZhaWxlZCByZWNvcmRzXG4gICAgICBzZXRVcGxvYWRTdW1tYXJ5KHJlc3BvbnNlLm1lc3NhZ2UgfHwgXCJVcGxvYWQgZmFpbGVkXCIpOyAvLyBTZXQgdXBsb2FkIHN1bW1hcnkgbWVzc2FnZVxuICAgICAgc2V0RmFpbGVkQ291bnQocmVzcG9uc2UuZmFpbGVkX2NvdW50KTtcbiAgICAgIHNldFN1Y2Nlc3NDb3VudChyZXNwb25zZS5zdWNjZXNzZnVsX2NvdW50KTtcbiAgICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIG1lc3NhZ2UuZXJyb3IoXCJGYWlsZWQgdG8gdXBsb2FkIGZpbGUuXCIpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbERvd25sb2FkU2FtcGxlVXBkYXRlSWRlbnRpdHlDU1YgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZGlzcGF0Y2goZG93bmxvYWRTYW1wbGVVcGRhdGVJZGVudGl0eUNzdkFjdGlvbigpKS51bndyYXAoKTtcblxuICAgICAgLy8gRW5zdXJlIHJlc3BvbnNlIGlzIHRyZWF0ZWQgYXMgYSBCbG9iXG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3Jlc3BvbnNlXSwgeyB0eXBlOiBcInRleHQvY3N2O2NoYXJzZXQ9dXRmLTg7XCIgfSk7XG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcblxuICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xuICAgICAgbGluay5ocmVmID0gdXJsO1xuICAgICAgbGluay5zZXRBdHRyaWJ1dGUoXCJkb3dubG9hZFwiLCBcInNhbXBsZS11cGRhdGVfaW5kZW50aXR5X2Nzdi5jc3ZcIik7IC8vIFNldCBmaWxlbmFtZVxuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICAgIGxpbmsuY2xpY2soKTtcblxuICAgICAgLy8gQ2xlYW4gdXBcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XG4gICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgZG93bmxvYWRpbmcgQ1NWOlwiLCBlcnJvcik7XG4gICAgICBtZXNzYWdlLmVycm9yKFwiRmFpbGVkIHRvIGRvd25sb2FkIENTVlwiKTtcbiAgICB9XG4gIH07XG5cbiAgLy8g8J+TjCBFWFBPUlQgVE8gRVhDRUwgRlVOQ1RJT05cbiAgY29uc3QgZXhwb3J0VG9FeGNlbCA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAodm9sdW50ZWVycyAmJiB2b2x1bnRlZXJzPy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB3cyA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldChcbiAgICAgICAgdm9sdW50ZWVycy5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAnIyc6IGluZGV4ICsgMSxcbiAgICAgICAgICAnQ29kZSc6IGl0LmNvZGUsXG4gICAgICAgICAgJ01haW4gQ29kZSc6IGl0Lm1haW5fY29kZSxcbiAgICAgICAgICAnRXZlbnQgQ29kZSc6IGl0LmV2ZW50X2NvZGUsXG4gICAgICAgICAgJ05hbWUgS2htZXInOiBgJHtpdC5sYXN0X25hbWVfa2htZXJ9ICR7aXQuZmlyc3RfbmFtZV9raG1lcn1gLFxuICAgICAgICAgICdOYW1lIExhdGluJzogYCR7aXQubGFzdF9uYW1lX2xhdGlufSAke2l0LmZpcnN0X25hbWVfbGF0aW59YCxcbiAgICAgICAgICAnRGF0ZSBvZiBCaXJ0aCc6IGl0LmRhdGVfb2ZfYmlydGgsXG4gICAgICAgICAgJ0dlbmRlcic6IGl0LmdlbmRlcixcbiAgICAgICAgICAnVm9sdW50ZWVyIFN0YXR1cyc6IGl0LnZvbHVudGVlcl9zdGF0dXMsXG4gICAgICAgICAgJ0ludGVyZXN0ZWQgVGVhbSBOYW1lJzogaXQuaW50ZXJlc3RlZF90ZWFtX25hbWUsXG4gICAgICAgICAgJ1Bob25lIE51bWJlcic6IGl0LnBob25lX251bWJlclxuICAgICAgICB9KSlcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHdiID0gWExTWC51dGlscy5ib29rX25ldygpO1xuICAgICAgWExTWC51dGlscy5ib29rX2FwcGVuZF9zaGVldCh3Yiwgd3MsICdWb2x1bnRlZXJzLVVwZGF0ZScpO1xuXG4gICAgICAvLyDinIUgRW5zdXJlIHRoZSBDViBsaW5rIGZvcm1hdCBpcyBwcm9wZXJseSBhcHBsaWVkXG4gICAgICB3c1snIWNvbHMnXSA9IFt7IHdjaDogNSB9LCB7IHdjaDogMTAgfSwgeyB3Y2g6IDEwIH0sIHsgd2NoOiAxNSB9LCB7IHdjaDogMTUgfSwgeyB3Y2g6IDEwIH0sIHsgd2NoOiAxNSB9LCB7IHdjaDogMTUgfSwgeyB3Y2g6IDE1IH0sIHsgd2NoOiAyMCB9LCB7IHdjaDogMjAgfV07XG5cbiAgICAgIFhMU1gud3JpdGVGaWxlKHdiLCAnVm9sdW50ZWVycy1VcGRhdGUueGxzeCcpO1xuICAgIH1cbiAgfTtcblxuICAvLyDwn5OMIEVYUE9SVCBUTyBFWENFTCBGVU5DVElPTlxuICBjb25zdCBleHBvcnRGYWlsZWRSZWNvcmRUb0V4Y2VsID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmIChmYWlsZWRSZWNvcmRzICYmIGZhaWxlZFJlY29yZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHdzID0gWExTWC51dGlscy5qc29uX3RvX3NoZWV0KFxuICAgICAgICBmYWlsZWRSZWNvcmRzLm1hcCgoaXQsIGluZGV4KSA9PiAoe1xuICAgICAgICAgICcjJzogaW5kZXggKyAxLFxuICAgICAgICAgICdDb2RlJzogaXQuY29kZSxcbiAgICAgICAgICAnRmlyc3QgTmFtZSBLaG1lcic6IGl0LmZpcnN0X25hbWVfa2htZXIsXG4gICAgICAgICAgJ0xhc3QgTmFtZSBLaG1lcic6IGl0Lmxhc3RfbmFtZV9raG1lcixcbiAgICAgICAgICAnRmlyc3QgTmFtZSBMYXRpbic6IGl0LmZpcnN0X25hbWVfbGF0aW4sXG4gICAgICAgICAgJ0xhc3QgTmFtZSBMYXRpbic6IGl0Lmxhc3RfbmFtZV9sYXRpbixcbiAgICAgICAgICAnUmVhc29uJzogaXQucmVhc29uXG4gICAgICAgIH0pKVxuICAgICAgKTtcblxuICAgICAgY29uc3Qgd2IgPSBYTFNYLnV0aWxzLmJvb2tfbmV3KCk7XG4gICAgICBYTFNYLnV0aWxzLmJvb2tfYXBwZW5kX3NoZWV0KHdiLCB3cywgJ1ZvbHVudGVlcnMtVXBkYXRlLUZhaWxlZCcpO1xuXG4gICAgICAvLyDinIUgRW5zdXJlIHRoZSBDViBsaW5rIGZvcm1hdCBpcyBwcm9wZXJseSBhcHBsaWVkXG4gICAgICB3c1snIWNvbHMnXSA9IFt7IHdjaDogMTAgfSwgeyB3Y2g6IDIwIH0sIHsgd2NoOiAyMCB9LCB7IHdjaDogMjAgfSwgeyB3Y2g6IDIwIH1dO1xuXG4gICAgICBYTFNYLndyaXRlRmlsZSh3YiwgJ1ZvbHVudGVlcnMtVXBkYXRlLUZhaWxlZC54bHN4Jyk7XG4gICAgfVxuICB9O1xuXG4gIC8vIPCfkYkgRGVmaW5lIHRhYmxlIGNvbHVtbnMgZm9yIGZhaWxlZCByZWNvcmRzXG4gIGNvbnN0IGZhaWxlZENvbHVtbnMgPSBbXG4gICAgeyB0aXRsZTogXCJOb1wiLCBkYXRhSW5kZXg6IFwiaW5kZXhcIiwga2V5OiBcImluZGV4XCIgfSxcbiAgICB7IHRpdGxlOiBcIkNvZGVcIiwgZGF0YUluZGV4OiBcImNvZGVcIiwga2V5OiBcImNvZGVcIiB9LFxuICAgIHsgdGl0bGU6IFwiTmFtZSBLaG1lclwiLCBkYXRhSW5kZXg6IFwibmFtZUtobWVyXCIsIGtleTogXCJuYW1lS2htZXJcIiB9LFxuICAgIHsgdGl0bGU6IFwiTmFtZSBFbmdsaXNoXCIsIGRhdGFJbmRleDogXCJuYW1lTGF0aW5cIiwga2V5OiBcIm5hbWVMYXRpblwiIH0sXG4gICAgeyB0aXRsZTogXCJSZWFzb25cIiwgZGF0YUluZGV4OiBcInJlYXNvblwiLCBrZXk6IFwicmVhc29uXCIgfSxcbiAgXTtcblxuICAvLyDwn5GJIEZvcm1hdCBkYXRhIGZvciB0YWJsZSAoZmFpbGVkIHJlY29yZHMpXG4gIGNvbnN0IGZhaWxlZFRhYmxlRGF0YSA9IGZhaWxlZFJlY29yZHMubWFwKCh2LCBpbmRleCkgPT4gKHtcbiAgICBrZXk6IGluZGV4LFxuICAgIFwiaW5kZXhcIjogaW5kZXggKyAxLFxuICAgIFwiY29kZVwiOiB2W1wiY29kZVwiXSxcbiAgICBcInZvbHVudGVlclN0YXR1c1wiOiB2W1widm9sdW50ZWVyX3N0YXR1c1wiXSxcbiAgICBcImludGVyZXN0ZWRUZWFtXCI6IHZbXCJpbnRlcmVzdGVkX3RlYW1cIl0sXG4gICAgXCJyZWFzb25cIjogdltcInJlYXNvblwiXVxuICB9KSk7XG5cbiAgLy8g8J+RiSBEZWZpbmUgY29sdW1ucyBmb3IgdXBsb2FkZWQgdm9sdW50ZWVyc1xuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6IFwiQ29kZVwiLCBkYXRhSW5kZXg6IFwiY29kZVwiLCBrZXk6IFwiY29kZVwiIH0sXG4gICAgeyB0aXRsZTogXCJNYWluIENvZGVcIiwgZGF0YUluZGV4OiBcIm1haW5Db2RlXCIsIGtleTogXCJtYWluQ29kZVwiIH0sXG4gICAgeyB0aXRsZTogXCJFdmVudCBDb2RlXCIsIGRhdGFJbmRleDogXCJldmVudENvZGVcIiwga2V5OiBcImV2ZW50Q29kZVwiIH0sXG4gICAgeyB0aXRsZTogXCJOYW1lIEtobWVyXCIsIGRhdGFJbmRleDogXCJuYW1lS2htZXJcIiwga2V5OiBcIm5hbWVLaG1lclwiIH0sXG4gICAgeyB0aXRsZTogXCJOYW1lIExhdGluXCIsIGRhdGFJbmRleDogXCJuYW1lTGF0aW5cIiwga2V5OiBcIm5hbWVMYXRpblwiIH0sXG4gICAgeyB0aXRsZTogXCJEYXRlIG9mIEJpcnRoXCIsIGRhdGFJbmRleDogXCJkYXRlT2ZCaXJ0aFwiLCBrZXk6IFwiZGF0ZU9mQmlydGhcIiB9LFxuICAgIHsgdGl0bGU6IFwiR2VuZGVyXCIsIGRhdGFJbmRleDogXCJnZW5kZXJcIiwga2V5OiBcImdlbmRlclwiIH0sXG4gICAgeyB0aXRsZTogXCJWb2x1bnRlZXIgU3RhdHVzXCIsIGRhdGFJbmRleDogXCJ2b2x1bnRlZXJTdGF0dXNcIiwga2V5OiBcInZvbHVudGVlclN0YXR1c1wiIH0sXG4gICAgeyB0aXRsZTogXCJJbnRlcmVzdGVkIFRlYW0gTmFtZVwiLCBkYXRhSW5kZXg6IFwiaW50ZXJlc3RlZFRlYW1cIiwga2V5OiBcImludGVyZXN0ZWRUZWFtXCIgfSxcbiAgICB7IHRpdGxlOiBcIlBob25lIE51bWJlclwiLCBkYXRhSW5kZXg6IFwicGhvbmVOdW1iZXJcIiwga2V5OiBcInBob25lTnVtYmVyXCIgfSxcbiAgXTtcblxuICAvLyDwn5GJIEZvcm1hdCBkYXRhIGZvciB0YWJsZVxuICBjb25zdCB0YWJsZURhdGEgPSB2b2x1bnRlZXJzLm1hcCgodiwgaW5kZXgpID0+ICh7XG4gICAga2V5OiBpbmRleCxcbiAgICBjb2RlOiB2LmNvZGUsXG4gICAgbWFpbkNvZGU6IHYubWFpbl9jb2RlLFxuICAgIGV2ZW50Q29kZTogdi5ldmVudF9jb2RlLFxuICAgIG5hbWVLaG1lcjogYCR7di5sYXN0X25hbWVfa2htZXJ9ICR7di5maXJzdF9uYW1lX2tobWVyfWAsXG4gICAgbmFtZUxhdGluOiBgJHt2Lmxhc3RfbmFtZV9sYXRpbn0gJHt2LmZpcnN0X25hbWVfbGF0aW59YCxcbiAgICBkYXRlT2ZCaXJ0aDogdi5kYXRlX29mX2JpcnRoLFxuICAgIGdlbmRlcjogdi5nZW5kZXIsXG4gICAgdm9sdW50ZWVyU3RhdHVzOiB2LnZvbHVudGVlcl9zdGF0dXMsXG4gICAgaW50ZXJlc3RlZFRlYW06IHYuaW50ZXJlc3RlZF90ZWFtX25hbWUsXG4gICAgcGhvbmVOdW1iZXI6IHYucGhvbmVfbnVtYmVyLFxuICB9KSk7XG5cblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDI+Vm9sdW50ZWVyIFVwZGF0ZSBJZGVudGl0eSBDU1YvRXhjZWw8L2gyPlxuICAgICAgPEZvcm1cbiAgICAgICAgZm9ybT17Zm9ybX1cbiAgICAgICAgbGF5b3V0PVwidmVydGljYWxcIlxuICAgICAgICBvbkZpbmlzaD17b25GaW5pc2h9XG4gICAgICAgIHN0eWxlPXt7IG1heFdpZHRoOiBcIjEwMCVcIiwgbWFyZ2luOiBcIjAgYXV0b1wiIH19XG4gICAgICA+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtXG4gICAgICAgICAgICAgIG5hbWU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgbGFiZWw9XCJVcGxvYWQgRmlsZVwiXG4gICAgICAgICAgICAgIHJ1bGVzPXtbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogXCJSZXF1aXJlZFwiIH1dfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8VXBsb2FkLkRyYWdnZXJcbiAgICAgICAgICAgICAgICBmaWxlTGlzdD17Y3N2RmlsZUxpc3R9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUZpbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgYmVmb3JlVXBsb2FkPXtiZWZvcmVVcGxvYWR9XG4gICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3Q9e3sgc2hvd1ByZXZpZXdJY29uOiBmYWxzZSwgc2hvd1JlbW92ZUljb246IHRydWUgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxCdXR0b24gaWNvbj17PFVwbG9hZE91dGxpbmVkIC8+fT5DbGljayB0byBVcGxvYWQ8L0J1dHRvbj5cbiAgICAgICAgICAgICAgPC9VcGxvYWQuRHJhZ2dlcj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17Nn0+PC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXs2fT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCIgXCI+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgYm9yZGVyQ29sb3I6IFwiZ3JlZW5cIiwgY29sb3I6IFwiZ3JlZW5cIiwgYmFja2dyb3VuZENvbG9yOiBcIndoaXRlXCIgfX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbERvd25sb2FkU2FtcGxlVXBkYXRlSWRlbnRpdHlDU1Z9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8RmlsZUV4Y2VsT3V0bGluZWQgc3R5bGU9e3sgY29sb3I6IFwiZ3JlZW5cIiB9fSAvPiBEb3dubG9hZCBzYW1wbGUgY3N2XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXt1cGF0ZVRlYW1Dc3ZQZW5kaW5nfT5cbiAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiBodG1sVHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9Gb3JtPlxuXG4gICAgICB7LyogVXBsb2FkIFN1bW1hcnkgKi99XG4gICAgICA8ZGl2IHN0eWxlPXt7IG1hcmdpblRvcDogXCIyMHB4XCIgfX0+XG4gICAgICAgIHt1cGxvYWRTdW1tYXJ5ICYmIDxoMz57dXBsb2FkU3VtbWFyeX08L2gzPn1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogVGFibGUgdG8gZGlzcGxheSB1cGxvYWRlZCB2b2x1bnRlZXJzICovfVxuICAgICAge3ZvbHVudGVlcnMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiwganVzdGlmeUNvbnRlbnQ6IFwic3BhY2UtYmV0d2VlblwiLCBtYXJnaW5Cb3R0b206IFwiMTBweFwiIH19PlxuICAgICAgICAgICAgPFNwYWNlPlxuICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9e3sgY29sb3I6IFwiR3JlZW5cIiB9fT57c3VjY2Vzc0NvdW50fSBTdWNjZXNzZnVsIFVwbG9hZGVkIFJlY29yZHM8L2xhYmVsPlxuICAgICAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgICAgIDxTcGFjZT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBib3JkZXJDb2xvcjogXCJncmVlblwiLCBjb2xvcjogXCJncmVlblwiLCBiYWNrZ3JvdW5kQ29sb3I6IFwid2hpdGVcIiB9fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2V4cG9ydFRvRXhjZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8RmlsZUV4Y2VsT3V0bGluZWQgc3R5bGU9e3sgY29sb3I6IFwiZ3JlZW5cIiB9fSAvPiBFeHBvcnQgRXhjZWxcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1NwYWNlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxUYWJsZVxuICAgICAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgICAgIGRhdGFTb3VyY2U9e3RhYmxlRGF0YX1cbiAgICAgICAgICAgIHBhZ2luYXRpb249e3sgcGFnZVNpemU6IDUgfX1cbiAgICAgICAgICAgIGJvcmRlcmVkXG4gICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5Ub3A6IFwiMjBweFwiIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgPC8+XG4gICAgICApfVxuXG4gICAgICB7LyogVGFibGUgdG8gZGlzcGxheSBmYWlsZWQgcmVjb3JkcyAqL31cbiAgICAgIHtmYWlsZWRSZWNvcmRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8PlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgbWFyZ2luVG9wOiBcIjIwcHhcIiB9fT5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIsIGp1c3RpZnlDb250ZW50OiBcInNwYWNlLWJldHdlZW5cIiwgbWFyZ2luQm90dG9tOiBcIjEwcHhcIiB9fT5cbiAgICAgICAgICAgICAgPFNwYWNlPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17eyBjb2xvcjogXCJSZWRcIiB9fT4ge2ZhaWxlZENvdW50fSBGYWlsZWQgUmVjb3JkczwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvU3BhY2U+XG4gICAgICAgICAgICAgIDxTcGFjZT5cbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyBib3JkZXJDb2xvcjogXCJyZWRcIiwgY29sb3I6IFwicmVkXCIsIGJhY2tncm91bmRDb2xvcjogXCJ3aGl0ZVwiIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtleHBvcnRGYWlsZWRSZWNvcmRUb0V4Y2VsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxGaWxlRXhjZWxPdXRsaW5lZCBzdHlsZT17eyBjb2xvcjogXCJyZWRcIiB9fSAvPiBFeHBvcnQgRXhjZWxcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPFRhYmxlXG4gICAgICAgICAgICAgIGNvbHVtbnM9e2ZhaWxlZENvbHVtbnN9XG4gICAgICAgICAgICAgIGRhdGFTb3VyY2U9e2ZhaWxlZFRhYmxlRGF0YX1cbiAgICAgICAgICAgICAgcGFnaW5hdGlvbj17eyBwYWdlU2l6ZTogNSB9fVxuICAgICAgICAgICAgICBib3JkZXJlZFxuICAgICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5Ub3A6IFwiMjBweFwiIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8Lz5cbiAgICAgICl9XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBVcGRhdGVJZGVudGl0eUNzdlBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgRm9ybSwgVXBsb2FkLCBCdXR0b24sIFJvdywgQ29sLCBtZXNzYWdlLCBUYWJsZSwgU3BhY2UgfSBmcm9tIFwiYW50ZFwiO1xuaW1wb3J0IHR5cGUgeyBVcGxvYWRGaWxlIH0gZnJvbSBcImFudGQvZXMvdXBsb2FkL2ludGVyZmFjZVwiO1xuaW1wb3J0IHsgVXBsb2FkT3V0bGluZWQsIEZpbGVFeGNlbE91dGxpbmVkIH0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tIFwiLi4vLi4vLi4vcmVkdXgvc3RvcmVcIjtcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xuaW1wb3J0IHsgY3JlYXRlVXBkYXRlVGVhbUNzdkFjdGlvbiwgZG93bmxvYWRTYW1wbGVVcGRhdGVUZWFtQ3N2QWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2VzL3ZvbHVudGVlci9jb3JlL2FjdGlvbnNcIjtcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XG5cbmNvbnN0IFVwZGF0ZVRlYW1Dc3ZQYWdlOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IHsgdXBhdGVUZWFtQ3N2UGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS52b2x1bnRlZXJcbiAgKTtcbiAgY29uc3QgW2Zvcm1dID0gRm9ybS51c2VGb3JtKCk7XG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2NzdkZpbGVMaXN0LCBzZXRDc3ZGaWxlTGlzdF0gPSB1c2VTdGF0ZTxVcGxvYWRGaWxlW10+KFtdKTtcbiAgY29uc3QgW3ZvbHVudGVlcnMsIHNldFZvbHVudGVlcnNdID0gdXNlU3RhdGU8YW55W10+KFtdKTtcbiAgY29uc3QgW2ZhaWxlZFJlY29yZHMsIHNldEZhaWxlZFJlY29yZHNdID0gdXNlU3RhdGU8YW55W10+KFtdKTtcbiAgY29uc3QgW3VwbG9hZFN1bW1hcnksIHNldFVwbG9hZFN1bW1hcnldID0gdXNlU3RhdGU8c3RyaW5nPihcIlwiKTtcbiAgY29uc3QgW3N1Y2Nlc3NDb3VudCwgc2V0U3VjY2Vzc0NvdW50XSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCBbZmFpbGVkQ291bnQsIHNldEZhaWxlZENvdW50XSA9IHVzZVN0YXRlKDApO1xuXG4gIC8vIPCfkYkgU2hvdyBzdWNjZXNzIG9yIGVycm9yIGFsZXJ0c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdXBhdGVUZWFtQ3N2UGVuZGluZyAmJiBpc0NsaWNrKSB7XG4gICAgICBpZiAocmVnaXN0ZXJFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgbWVzc2FnZS5lcnJvcihyZWdpc3RlckVycm9yTWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoXCJGaWxlIHVwbG9hZGVkIHN1Y2Nlc3NmdWxseSFcIik7XG4gICAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgb25seSBhZnRlciBzdWNjZXNzXG4gICAgICAgIHNldENzdkZpbGVMaXN0KFtdKTtcbiAgICAgICAgc2V0SXNDbGljayhmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbdXBhdGVUZWFtQ3N2UGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGlzQ2xpY2ssIGZvcm1dKTtcblxuICAvLyDwn5GJIEhhbmRsZSBmaWxlIHNlbGVjdGlvbiBjaGFuZ2VcbiAgY29uc3QgaGFuZGxlRmlsZUNoYW5nZSA9ICh7IGZpbGVMaXN0IH06IHsgZmlsZUxpc3Q6IFVwbG9hZEZpbGVbXSB9KSA9PiB7XG4gICAgc2V0Q3N2RmlsZUxpc3QoZmlsZUxpc3QpO1xuICB9O1xuXG4gIC8vIPCfkYkgVmFsaWRhdGUgZmlsZSB0eXBlIChBbGxvdyBvbmx5IENTViBvciBFeGNlbClcbiAgY29uc3QgYmVmb3JlVXBsb2FkID0gKGZpbGU6IFVwbG9hZEZpbGUpID0+IHtcbiAgICBjb25zdCBhbGxvd2VkVHlwZXMgPSBbXG4gICAgICBcInRleHQvY3N2XCIsXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbFwiLFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldFwiLFxuICAgIF07XG5cbiAgICBpZiAoIWZpbGUudHlwZSB8fCAhYWxsb3dlZFR5cGVzLmluY2x1ZGVzKGZpbGUudHlwZSkpIHtcbiAgICAgIG1lc3NhZ2UuZXJyb3IoXCJPbmx5IENTViBhbmQgRXhjZWwgKC54bHN4KSBmaWxlcyBhcmUgYWxsb3dlZCFcIik7XG4gICAgICByZXR1cm4gVXBsb2FkLkxJU1RfSUdOT1JFO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWlzc2lvblxuICBjb25zdCBvbkZpbmlzaCA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoIWNzdkZpbGVMaXN0Lmxlbmd0aCkge1xuICAgICAgbWVzc2FnZS5lcnJvcihcIlBsZWFzZSB1cGxvYWQgYSB2YWxpZCBDU1Ygb3IgRXhjZWwgZmlsZS5cIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZSA9IGNzdkZpbGVMaXN0WzBdLm9yaWdpbkZpbGVPYmogYXMgRmlsZTtcbiAgICBpZiAoIWZpbGUpIHtcbiAgICAgIG1lc3NhZ2UuZXJyb3IoXCJJbnZhbGlkIGZpbGUuIFBsZWFzZSB0cnkgYWdhaW4uXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKFwiZmlsZVwiLCBmaWxlKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGRpc3BhdGNoKGNyZWF0ZVVwZGF0ZVRlYW1Dc3ZBY3Rpb24oZm9ybURhdGEpKS51bndyYXAoKTtcbiAgICAgIHNldFZvbHVudGVlcnMocmVzcG9uc2Uudm9sdW50ZWVycyB8fCBbXSk7XG4gICAgICBzZXRGYWlsZWRSZWNvcmRzKHJlc3BvbnNlLmZhaWxlZF9yZWNvcmRzIHx8IFtdKTsgLy8gU3RvcmUgZmFpbGVkIHJlY29yZHNcbiAgICAgIHNldFVwbG9hZFN1bW1hcnkocmVzcG9uc2UubWVzc2FnZSB8fCBcIlVwbG9hZCBmYWlsZWRcIik7IC8vIFNldCB1cGxvYWQgc3VtbWFyeSBtZXNzYWdlXG4gICAgICBzZXRGYWlsZWRDb3VudChyZXNwb25zZS5mYWlsZWRfY291bnQpO1xuICAgICAgc2V0U3VjY2Vzc0NvdW50KHJlc3BvbnNlLnN1Y2Nlc3NmdWxfY291bnQpO1xuICAgICAgc2V0SXNDbGljayh0cnVlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbWVzc2FnZS5lcnJvcihcIkZhaWxlZCB0byB1cGxvYWQgZmlsZS5cIik7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsRG93bmxvYWRTYW1wbGVVcGRhdGVUZWFtQ1NWID0gYXN5bmMgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGRpc3BhdGNoKGRvd25sb2FkU2FtcGxlVXBkYXRlVGVhbUNzdkFjdGlvbigpKS51bndyYXAoKTtcblxuICAgICAgLy8gRW5zdXJlIHJlc3BvbnNlIGlzIHRyZWF0ZWQgYXMgYSBCbG9iXG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3Jlc3BvbnNlXSwgeyB0eXBlOiBcInRleHQvY3N2O2NoYXJzZXQ9dXRmLTg7XCIgfSk7XG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcblxuICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xuICAgICAgbGluay5ocmVmID0gdXJsO1xuICAgICAgbGluay5zZXRBdHRyaWJ1dGUoXCJkb3dubG9hZFwiLCBcInNhbXBsZS11cGRhdGVfdGVhbV9jc3YuY3N2XCIpOyAvLyBTZXQgZmlsZW5hbWVcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XG4gICAgICBsaW5rLmNsaWNrKCk7XG5cbiAgICAgIC8vIENsZWFuIHVwXG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xuICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yIGRvd25sb2FkaW5nIENTVjpcIiwgZXJyb3IpO1xuICAgICAgbWVzc2FnZS5lcnJvcihcIkZhaWxlZCB0byBkb3dubG9hZCBDU1ZcIik7XG4gICAgfVxuICB9O1xuXG4gIC8vIPCfk4wgRVhQT1JUIFRPIEVYQ0VMIEZVTkNUSU9OXG4gIGNvbnN0IGV4cG9ydFRvRXhjZWwgPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKHZvbHVudGVlcnMgJiYgdm9sdW50ZWVycz8ubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgd3MgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoXG4gICAgICAgIHZvbHVudGVlcnMubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgJyMnOiBpbmRleCArIDEsXG4gICAgICAgICAgJ0NvZGUnOiBpdC5jb2RlLFxuICAgICAgICAgICdNYWluIENvZGUnOiBpdC5tYWluX2NvZGUsXG4gICAgICAgICAgJ0V2ZW50IENvZGUnOiBpdC5ldmVudF9jb2RlLFxuICAgICAgICAgICdOYW1lIEtobWVyJzogYCR7aXQubGFzdF9uYW1lX2tobWVyfSAke2l0LmZpcnN0X25hbWVfa2htZXJ9YCxcbiAgICAgICAgICAnTmFtZSBMYXRpbic6IGAke2l0Lmxhc3RfbmFtZV9sYXRpbn0gJHtpdC5maXJzdF9uYW1lX2xhdGlufWAsXG4gICAgICAgICAgJ0RhdGUgb2YgQmlydGgnOiBpdC5kYXRlX29mX2JpcnRoLFxuICAgICAgICAgICdHZW5kZXInOiBpdC5nZW5kZXIsXG4gICAgICAgICAgJ1ZvbHVudGVlciBTdGF0dXMnOiBpdC52b2x1bnRlZXJfc3RhdHVzLFxuICAgICAgICAgICdJbnRlcmVzdGVkIFRlYW0gTmFtZSc6IGl0LmludGVyZXN0ZWRfdGVhbV9uYW1lLFxuICAgICAgICAgICdQaG9uZSBOdW1iZXInOiBpdC5waG9uZV9udW1iZXJcbiAgICAgICAgfSkpXG4gICAgICApO1xuXG4gICAgICBjb25zdCB3YiA9IFhMU1gudXRpbHMuYm9va19uZXcoKTtcbiAgICAgIFhMU1gudXRpbHMuYm9va19hcHBlbmRfc2hlZXQod2IsIHdzLCAnVm9sdW50ZWVycy1VcGRhdGUnKTtcblxuICAgICAgLy8g4pyFIEVuc3VyZSB0aGUgQ1YgbGluayBmb3JtYXQgaXMgcHJvcGVybHkgYXBwbGllZFxuICAgICAgd3NbJyFjb2xzJ10gPSBbeyB3Y2g6IDUgfSwgeyB3Y2g6IDEwIH0sIHsgd2NoOiAxMCB9LCB7IHdjaDogMTUgfSwgeyB3Y2g6IDE1IH0sIHsgd2NoOiAxMCB9LCB7IHdjaDogMTUgfSwgeyB3Y2g6IDE1IH0sIHsgd2NoOiAxNSB9LCB7IHdjaDogMjAgfSwgeyB3Y2g6IDIwIH1dO1xuXG4gICAgICBYTFNYLndyaXRlRmlsZSh3YiwgJ1ZvbHVudGVlcnMtVXBkYXRlLnhsc3gnKTtcbiAgICB9XG4gIH07XG5cbiAgLy8g8J+TjCBFWFBPUlQgVE8gRVhDRUwgRlVOQ1RJT05cbiAgY29uc3QgZXhwb3J0RmFpbGVkUmVjb3JkVG9FeGNlbCA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoZmFpbGVkUmVjb3JkcyAmJiBmYWlsZWRSZWNvcmRzPy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB3cyA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldChcbiAgICAgICAgZmFpbGVkUmVjb3Jkcy5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAnIyc6IGluZGV4ICsgMSxcbiAgICAgICAgICAnQ29kZSc6IGl0LmNvZGUsXG4gICAgICAgICAgJ1ZvbHVudGVlciBTdGF0dXMnOiBpdC52b2x1bnRlZXJfc3RhdHVzLFxuICAgICAgICAgICdJbnRlcmVzdGVkIFRlYW0nOiBpdC5pbnRlcmVzdGVkX3RlYW0sXG4gICAgICAgICAgJ1JlYXNvbic6IGl0LnJlYXNvblxuICAgICAgICB9KSlcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHdiID0gWExTWC51dGlscy5ib29rX25ldygpO1xuICAgICAgWExTWC51dGlscy5ib29rX2FwcGVuZF9zaGVldCh3Yiwgd3MsICdWb2x1bnRlZXJzLVVwZGF0ZS1GYWlsZWQnKTtcblxuICAgICAgLy8g4pyFIEVuc3VyZSB0aGUgQ1YgbGluayBmb3JtYXQgaXMgcHJvcGVybHkgYXBwbGllZFxuICAgICAgd3NbJyFjb2xzJ10gPSBbeyB3Y2g6IDEwIH0sIHsgd2NoOiAyMCB9LCB7IHdjaDogMjAgfSwgeyB3Y2g6IDIwIH0sIHsgd2NoOiAyMCB9XTtcblxuICAgICAgWExTWC53cml0ZUZpbGUod2IsICdWb2x1bnRlZXJzLVVwZGF0ZS1GYWlsZWQueGxzeCcpO1xuICAgIH1cbiAgfTtcblxuICAvLyDwn5GJIERlZmluZSB0YWJsZSBjb2x1bW5zIGZvciBmYWlsZWQgcmVjb3Jkc1xuICBjb25zdCBmYWlsZWRDb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6IFwiTm9cIiwgZGF0YUluZGV4OiBcImluZGV4XCIsIGtleTogXCJpbmRleFwiIH0sXG4gICAgeyB0aXRsZTogXCJDb2RlXCIsIGRhdGFJbmRleDogXCJjb2RlXCIsIGtleTogXCJjb2RlXCIgfSxcbiAgICB7IHRpdGxlOiBcIlZvbHVudGVlciBTdGF0dXNcIiwgZGF0YUluZGV4OiBcInZvbHVudGVlclN0YXR1c1wiLCBrZXk6IFwidm9sdW50ZWVyU3RhdHVzXCIgfSxcbiAgICB7IHRpdGxlOiBcIkludGVyZXN0ZWQgVGVhbVwiLCBkYXRhSW5kZXg6IFwiaW50ZXJlc3RlZFRlYW1cIiwga2V5OiBcImludGVyZXN0ZWRUZWFtXCIgfSxcbiAgICB7IHRpdGxlOiBcIlJlYXNvblwiLCBkYXRhSW5kZXg6IFwicmVhc29uXCIsIGtleTogXCJyZWFzb25cIiB9LFxuICBdO1xuXG4gIC8vIPCfkYkgRm9ybWF0IGRhdGEgZm9yIHRhYmxlIChmYWlsZWQgcmVjb3JkcylcbiAgY29uc3QgZmFpbGVkVGFibGVEYXRhID0gZmFpbGVkUmVjb3Jkcy5tYXAoKHYsIGluZGV4KSA9PiAoe1xuICAgIGtleTogaW5kZXgsXG4gICAgXCJpbmRleFwiOiBpbmRleCArIDEsXG4gICAgXCJjb2RlXCI6IHZbXCJjb2RlXCJdLFxuICAgIFwidm9sdW50ZWVyU3RhdHVzXCI6IHZbXCJ2b2x1bnRlZXJfc3RhdHVzXCJdLFxuICAgIFwiaW50ZXJlc3RlZFRlYW1cIjogdltcImludGVyZXN0ZWRfdGVhbVwiXSxcbiAgICBcInJlYXNvblwiOiB2W1wicmVhc29uXCJdXG4gIH0pKTtcblxuICAvLyDwn5GJIERlZmluZSBjb2x1bW5zIGZvciB1cGxvYWRlZCB2b2x1bnRlZXJzXG4gIGNvbnN0IGNvbHVtbnMgPSBbXG4gICAgeyB0aXRsZTogXCJDb2RlXCIsIGRhdGFJbmRleDogXCJjb2RlXCIsIGtleTogXCJjb2RlXCIgfSxcbiAgICB7IHRpdGxlOiBcIk1haW4gQ29kZVwiLCBkYXRhSW5kZXg6IFwibWFpbkNvZGVcIiwga2V5OiBcIm1haW5Db2RlXCIgfSxcbiAgICB7IHRpdGxlOiBcIkV2ZW50IENvZGVcIiwgZGF0YUluZGV4OiBcImV2ZW50Q29kZVwiLCBrZXk6IFwiZXZlbnRDb2RlXCIgfSxcbiAgICB7IHRpdGxlOiBcIk5hbWUgS2htZXJcIiwgZGF0YUluZGV4OiBcIm5hbWVLaG1lclwiLCBrZXk6IFwibmFtZUtobWVyXCIgfSxcbiAgICB7IHRpdGxlOiBcIk5hbWUgTGF0aW5cIiwgZGF0YUluZGV4OiBcIm5hbWVMYXRpblwiLCBrZXk6IFwibmFtZUxhdGluXCIgfSxcbiAgICB7IHRpdGxlOiBcIkRhdGUgb2YgQmlydGhcIiwgZGF0YUluZGV4OiBcImRhdGVPZkJpcnRoXCIsIGtleTogXCJkYXRlT2ZCaXJ0aFwiIH0sXG4gICAgeyB0aXRsZTogXCJHZW5kZXJcIiwgZGF0YUluZGV4OiBcImdlbmRlclwiLCBrZXk6IFwiZ2VuZGVyXCIgfSxcbiAgICB7IHRpdGxlOiBcIlZvbHVudGVlciBTdGF0dXNcIiwgZGF0YUluZGV4OiBcInZvbHVudGVlclN0YXR1c1wiLCBrZXk6IFwidm9sdW50ZWVyU3RhdHVzXCIgfSxcbiAgICB7IHRpdGxlOiBcIkludGVyZXN0ZWQgVGVhbSBOYW1lXCIsIGRhdGFJbmRleDogXCJpbnRlcmVzdGVkVGVhbVwiLCBrZXk6IFwiaW50ZXJlc3RlZFRlYW1cIiB9LFxuICAgIHsgdGl0bGU6IFwiUGhvbmUgTnVtYmVyXCIsIGRhdGFJbmRleDogXCJwaG9uZU51bWJlclwiLCBrZXk6IFwicGhvbmVOdW1iZXJcIiB9LFxuICBdO1xuXG4gIC8vIPCfkYkgRm9ybWF0IGRhdGEgZm9yIHRhYmxlXG4gIGNvbnN0IHRhYmxlRGF0YSA9IHZvbHVudGVlcnMubWFwKCh2LCBpbmRleCkgPT4gKHtcbiAgICBrZXk6IGluZGV4LFxuICAgIGNvZGU6IHYuY29kZSxcbiAgICBtYWluQ29kZTogdi5tYWluX2NvZGUsXG4gICAgZXZlbnRDb2RlOiB2LmV2ZW50X2NvZGUsXG4gICAgbmFtZUtobWVyOiBgJHt2Lmxhc3RfbmFtZV9raG1lcn0gJHt2LmZpcnN0X25hbWVfa2htZXJ9YCxcbiAgICBuYW1lTGF0aW46IGAke3YubGFzdF9uYW1lX2xhdGlufSAke3YuZmlyc3RfbmFtZV9sYXRpbn1gLFxuICAgIGRhdGVPZkJpcnRoOiB2LmRhdGVfb2ZfYmlydGgsXG4gICAgZ2VuZGVyOiB2LmdlbmRlcixcbiAgICB2b2x1bnRlZXJTdGF0dXM6IHYudm9sdW50ZWVyX3N0YXR1cyxcbiAgICBpbnRlcmVzdGVkVGVhbTogdi5pbnRlcmVzdGVkX3RlYW1fbmFtZSxcbiAgICBwaG9uZU51bWJlcjogdi5waG9uZV9udW1iZXIsXG4gIH0pKTtcblxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxoMj5Wb2x1bnRlZXIgVXBkYXRlIFRlYW0gQ1NWL0V4Y2VsPC9oMj5cbiAgICAgIDxGb3JtXG4gICAgICAgIGZvcm09e2Zvcm19XG4gICAgICAgIGxheW91dD1cInZlcnRpY2FsXCJcbiAgICAgICAgb25GaW5pc2g9e29uRmluaXNofVxuICAgICAgICBzdHlsZT17eyBtYXhXaWR0aDogXCIxMDAlXCIsIG1hcmdpbjogXCIwIGF1dG9cIiB9fVxuICAgICAgPlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbVxuICAgICAgICAgICAgICBuYW1lPVwiZmlsZVwiXG4gICAgICAgICAgICAgIGxhYmVsPVwiVXBsb2FkIEZpbGVcIlxuICAgICAgICAgICAgICBydWxlcz17W3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6IFwiUmVxdWlyZWRcIiB9XX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFVwbG9hZC5EcmFnZ2VyXG4gICAgICAgICAgICAgICAgZmlsZUxpc3Q9e2NzdkZpbGVMaXN0fVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVGaWxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgIGJlZm9yZVVwbG9hZD17YmVmb3JlVXBsb2FkfVxuICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0PXt7IHNob3dQcmV2aWV3SWNvbjogZmFsc2UsIHNob3dSZW1vdmVJY29uOiB0cnVlIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8QnV0dG9uIGljb249ezxVcGxvYWRPdXRsaW5lZCAvPn0+Q2xpY2sgdG8gVXBsb2FkPC9CdXR0b24+XG4gICAgICAgICAgICAgIDwvVXBsb2FkLkRyYWdnZXI+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezZ9PjwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17Nn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwiIFwiPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJvcmRlckNvbG9yOiBcImdyZWVuXCIsIGNvbG9yOiBcImdyZWVuXCIsIGJhY2tncm91bmRDb2xvcjogXCJ3aGl0ZVwiIH19XG4gICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxEb3dubG9hZFNhbXBsZVVwZGF0ZVRlYW1DU1Z9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8RmlsZUV4Y2VsT3V0bGluZWQgc3R5bGU9e3sgY29sb3I6IFwiZ3JlZW5cIiB9fSAvPiBEb3dubG9hZCBzYW1wbGUgY3N2XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXt1cGF0ZVRlYW1Dc3ZQZW5kaW5nfT5cbiAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiBodG1sVHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9Gb3JtPlxuXG4gICAgICB7LyogVXBsb2FkIFN1bW1hcnkgKi99XG4gICAgICA8ZGl2IHN0eWxlPXt7IG1hcmdpblRvcDogXCIyMHB4XCIgfX0+XG4gICAgICAgIHt1cGxvYWRTdW1tYXJ5ICYmIDxoMz57dXBsb2FkU3VtbWFyeX08L2gzPn1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogVGFibGUgdG8gZGlzcGxheSB1cGxvYWRlZCB2b2x1bnRlZXJzICovfVxuICAgICAge3ZvbHVudGVlcnMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiwganVzdGlmeUNvbnRlbnQ6IFwic3BhY2UtYmV0d2VlblwiLCBtYXJnaW5Cb3R0b206IFwiMTBweFwiIH19PlxuICAgICAgICAgICAgPFNwYWNlPlxuICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9e3sgY29sb3I6IFwiR3JlZW5cIiB9fT57c3VjY2Vzc0NvdW50fSBTdWNjZXNzZnVsIFVwbG9hZGVkIFJlY29yZHM8L2xhYmVsPlxuICAgICAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgICAgIDxTcGFjZT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBib3JkZXJDb2xvcjogXCJncmVlblwiLCBjb2xvcjogXCJncmVlblwiLCBiYWNrZ3JvdW5kQ29sb3I6IFwid2hpdGVcIiB9fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2V4cG9ydFRvRXhjZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8RmlsZUV4Y2VsT3V0bGluZWQgc3R5bGU9e3sgY29sb3I6IFwiZ3JlZW5cIiB9fSAvPiBFeHBvcnQgRXhjZWxcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1NwYWNlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxUYWJsZVxuICAgICAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgICAgIGRhdGFTb3VyY2U9e3RhYmxlRGF0YX1cbiAgICAgICAgICAgIHBhZ2luYXRpb249e3sgcGFnZVNpemU6IDUgfX1cbiAgICAgICAgICAgIGJvcmRlcmVkXG4gICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5Ub3A6IFwiMjBweFwiIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgPC8+XG4gICAgICApfVxuXG4gICAgICB7LyogVGFibGUgdG8gZGlzcGxheSBmYWlsZWQgcmVjb3JkcyAqL31cbiAgICAgIHtmYWlsZWRSZWNvcmRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8PlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgbWFyZ2luVG9wOiBcIjIwcHhcIiB9fT5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIsIGp1c3RpZnlDb250ZW50OiBcInNwYWNlLWJldHdlZW5cIiwgbWFyZ2luQm90dG9tOiBcIjEwcHhcIiB9fT5cbiAgICAgICAgICAgICAgPFNwYWNlPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17eyBjb2xvcjogXCJSZWRcIiB9fT4ge2ZhaWxlZENvdW50fSBGYWlsZWQgUmVjb3JkczwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvU3BhY2U+XG4gICAgICAgICAgICAgIDxTcGFjZT5cbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyBib3JkZXJDb2xvcjogXCJyZWRcIiwgY29sb3I6IFwicmVkXCIsIGJhY2tncm91bmRDb2xvcjogXCJ3aGl0ZVwiIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtleHBvcnRGYWlsZWRSZWNvcmRUb0V4Y2VsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxGaWxlRXhjZWxPdXRsaW5lZCBzdHlsZT17eyBjb2xvcjogXCJyZWRcIiB9fSAvPiBFeHBvcnQgRXhjZWxcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPFRhYmxlXG4gICAgICAgICAgICAgIGNvbHVtbnM9e2ZhaWxlZENvbHVtbnN9XG4gICAgICAgICAgICAgIGRhdGFTb3VyY2U9e2ZhaWxlZFRhYmxlRGF0YX1cbiAgICAgICAgICAgICAgcGFnaW5hdGlvbj17eyBwYWdlU2l6ZTogNSB9fVxuICAgICAgICAgICAgICBib3JkZXJlZFxuICAgICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5Ub3A6IFwiMjBweFwiIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8Lz5cbiAgICAgICl9XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBVcGRhdGVUZWFtQ3N2UGFnZTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBGb3JtLCBVcGxvYWQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UsIFRhYmxlLCBTcGFjZSB9IGZyb20gXCJhbnRkXCI7XG5pbXBvcnQgdHlwZSB7IFVwbG9hZEZpbGUgfSBmcm9tIFwiYW50ZC9lcy91cGxvYWQvaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBVcGxvYWRPdXRsaW5lZCwgRmlsZUV4Y2VsT3V0bGluZWQgfSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gXCIuLi8uLi8uLi9yZWR1eC9zdG9yZVwiO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XG5pbXBvcnQgeyBjcmVhdGVVcGxvYWRDc3ZBY3Rpb24sIGRvd25sb2FkU2FtcGxlQ3N2QWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2VzL3ZvbHVudGVlci9jb3JlL2FjdGlvbnNcIjtcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XG5cbmNvbnN0IFVwbG9hZENTVlBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyB1cGxvYWRDc3ZQZW5kaW5nLCByZWdpc3RlckVycm9yTWVzc2FnZSB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnZvbHVudGVlclxuICApO1xuICBjb25zdCBbZm9ybV0gPSBGb3JtLnVzZUZvcm0oKTtcbiAgY29uc3QgW2lzQ2xpY2ssIHNldElzQ2xpY2tdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbY3N2RmlsZUxpc3QsIHNldENzdkZpbGVMaXN0XSA9IHVzZVN0YXRlPFVwbG9hZEZpbGVbXT4oW10pO1xuICBjb25zdCBbdm9sdW50ZWVycywgc2V0Vm9sdW50ZWVyc10gPSB1c2VTdGF0ZTxhbnlbXT4oW10pO1xuICBjb25zdCBbZmFpbGVkUmVjb3Jkcywgc2V0RmFpbGVkUmVjb3Jkc10gPSB1c2VTdGF0ZTxhbnlbXT4oW10pO1xuICBjb25zdCBbdXBsb2FkU3VtbWFyeSwgc2V0VXBsb2FkU3VtbWFyeV0gPSB1c2VTdGF0ZTxzdHJpbmc+KFwiXCIpO1xuICBjb25zdCBbc3VjY2Vzc0NvdW50LCBzZXRTdWNjZXNzQ291bnRdID0gdXNlU3RhdGUoMCk7XG4gIGNvbnN0IFtmYWlsZWRDb3VudCwgc2V0RmFpbGVkQ291bnRdID0gdXNlU3RhdGUoMCk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF1cGxvYWRDc3ZQZW5kaW5nICYmIGlzQ2xpY2spIHtcbiAgICAgIGlmIChyZWdpc3RlckVycm9yTWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlLmVycm9yKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhcIkZpbGUgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5IVwiKTtcbiAgICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBvbmx5IGFmdGVyIHN1Y2Nlc3NcbiAgICAgICAgc2V0Q3N2RmlsZUxpc3QoW10pO1xuICAgICAgICBzZXRJc0NsaWNrKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFt1cGxvYWRDc3ZQZW5kaW5nLCByZWdpc3RlckVycm9yTWVzc2FnZSwgaXNDbGljaywgZm9ybV0pO1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZpbGUgc2VsZWN0aW9uIGNoYW5nZVxuICBjb25zdCBoYW5kbGVGaWxlQ2hhbmdlID0gKHsgZmlsZUxpc3QgfTogeyBmaWxlTGlzdDogVXBsb2FkRmlsZVtdIH0pID0+IHtcbiAgICBzZXRDc3ZGaWxlTGlzdChmaWxlTGlzdCk7XG4gIH07XG5cbiAgLy8g8J+RiSBWYWxpZGF0ZSBmaWxlIHR5cGUgKEFsbG93IG9ubHkgQ1NWIG9yIEV4Y2VsKVxuICBjb25zdCBiZWZvcmVVcGxvYWQgPSAoZmlsZTogVXBsb2FkRmlsZSkgPT4ge1xuICAgIGNvbnN0IGFsbG93ZWRUeXBlcyA9IFtcbiAgICAgIFwidGV4dC9jc3ZcIixcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsXCIsXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0XCIsXG4gICAgXTtcblxuICAgIGlmICghZmlsZS50eXBlIHx8ICFhbGxvd2VkVHlwZXMuaW5jbHVkZXMoZmlsZS50eXBlKSkge1xuICAgICAgbWVzc2FnZS5lcnJvcihcIk9ubHkgQ1NWIGFuZCBFeGNlbCAoLnhsc3gpIGZpbGVzIGFyZSBhbGxvd2VkIVwiKTtcbiAgICAgIHJldHVybiBVcGxvYWQuTElTVF9JR05PUkU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgLy8g8J+RiSBIYW5kbGUgZm9ybSBzdWJtaXNzaW9uXG4gIGNvbnN0IG9uRmluaXNoID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmICghY3N2RmlsZUxpc3QubGVuZ3RoKSB7XG4gICAgICBtZXNzYWdlLmVycm9yKFwiUGxlYXNlIHVwbG9hZCBhIHZhbGlkIENTViBvciBFeGNlbCBmaWxlLlwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlID0gY3N2RmlsZUxpc3RbMF0ub3JpZ2luRmlsZU9iaiBhcyBGaWxlO1xuICAgIGlmICghZmlsZSkge1xuICAgICAgbWVzc2FnZS5lcnJvcihcIkludmFsaWQgZmlsZS4gUGxlYXNlIHRyeSBhZ2Fpbi5cIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoXCJmaWxlXCIsIGZpbGUpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZGlzcGF0Y2goY3JlYXRlVXBsb2FkQ3N2QWN0aW9uKGZvcm1EYXRhKSkudW53cmFwKCk7XG4gICAgICBzZXRWb2x1bnRlZXJzKHJlc3BvbnNlLnZvbHVudGVlcnMgfHwgW10pO1xuICAgICAgc2V0RmFpbGVkUmVjb3JkcyhyZXNwb25zZS5mYWlsZWRfcmVjb3JkcyB8fCBbXSk7IC8vIFN0b3JlIGZhaWxlZCByZWNvcmRzXG4gICAgICBzZXRVcGxvYWRTdW1tYXJ5KHJlc3BvbnNlLm1lc3NhZ2UgfHwgXCJVcGxvYWQgZmFpbGVkXCIpOyAvLyBTZXQgdXBsb2FkIHN1bW1hcnkgbWVzc2FnZVxuICAgICAgc2V0RmFpbGVkQ291bnQocmVzcG9uc2UuZmFpbGVkX2NvdW50KTtcbiAgICAgIHNldFN1Y2Nlc3NDb3VudChyZXNwb25zZS5zdWNjZXNzZnVsX2NvdW50KTtcbiAgICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIG1lc3NhZ2UuZXJyb3IoXCJGYWlsZWQgdG8gdXBsb2FkIGZpbGUuXCIpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbERvd25sb2FkU2FtcGxlQ1NWID0gYXN5bmMgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGRpc3BhdGNoKGRvd25sb2FkU2FtcGxlQ3N2QWN0aW9uKCkpLnVud3JhcCgpO1xuXG4gICAgICAvLyBFbnN1cmUgcmVzcG9uc2UgaXMgdHJlYXRlZCBhcyBhIEJsb2JcbiAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2VdLCB7IHR5cGU6IFwidGV4dC9jc3Y7Y2hhcnNldD11dGYtODtcIiB9KTtcbiAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuXG4gICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XG4gICAgICBsaW5rLmhyZWYgPSB1cmw7XG4gICAgICBsaW5rLnNldEF0dHJpYnV0ZShcImRvd25sb2FkXCIsIFwic2FtcGxlX3ZvbHVudGVlcnMuY3N2XCIpOyAvLyBTZXQgZmlsZW5hbWVcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XG4gICAgICBsaW5rLmNsaWNrKCk7XG5cbiAgICAgIC8vIENsZWFuIHVwXG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xuICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yIGRvd25sb2FkaW5nIENTVjpcIiwgZXJyb3IpO1xuICAgICAgbWVzc2FnZS5lcnJvcihcIkZhaWxlZCB0byBkb3dubG9hZCBDU1ZcIik7XG4gICAgfVxuICB9O1xuXG4gIC8vIPCfk4wgRVhQT1JUIFRPIEVYQ0VMIEZVTkNUSU9OXG4gIGNvbnN0IGV4cG9ydFRvRXhjZWwgPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKHZvbHVudGVlcnMgJiYgdm9sdW50ZWVycz8ubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgd3MgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoXG4gICAgICAgIHZvbHVudGVlcnMubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgJyMnOiBpbmRleCArIDEsXG4gICAgICAgICAgJ0NvZGUnOiBpdC5jb2RlLFxuICAgICAgICAgICdOYW1lIEtobWVyJzogYCR7aXQubGFzdF9uYW1lX2tobWVyfSAke2l0LmZpcnN0X25hbWVfa2htZXJ9YCxcbiAgICAgICAgICAnTmFtZSBMYXRpbic6IGAke2l0Lmxhc3RfbmFtZV9sYXRpbn0gJHtpdC5maXJzdF9uYW1lX2xhdGlufWAsXG4gICAgICAgICAgJ0RhdGUgb2YgQmlydGgnOiBpdC5kYXRlX29mX2JpcnRoLFxuICAgICAgICAgICdHZW5kZXInOiBpdC5nZW5kZXIsXG4gICAgICAgICAgJ1Bob25lIE51bWJlcic6IGl0LnBob25lX251bWJlclxuICAgICAgICB9KSlcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHdiID0gWExTWC51dGlscy5ib29rX25ldygpO1xuICAgICAgWExTWC51dGlscy5ib29rX2FwcGVuZF9zaGVldCh3Yiwgd3MsICdWb2x1bnRlZXJzJyk7XG5cbiAgICAgIC8vIOKchSBFbnN1cmUgdGhlIENWIGxpbmsgZm9ybWF0IGlzIHByb3Blcmx5IGFwcGxpZWRcbiAgICAgIHdzWychY29scyddID0gW3sgd2NoOiAxMCB9LCB7IHdjaDogMjAgfSwgeyB3Y2g6IDI1IH0sIHsgd2NoOiAyNSB9LCB7IHdjaDogMTUgfSwgeyB3Y2g6IDEwIH0sIHsgd2NoOiAyMCB9LCB7IHdjaDogMjAgfV07XG5cbiAgICAgIFhMU1gud3JpdGVGaWxlKHdiLCAnVm9sdW50ZWVycy54bHN4Jyk7XG4gICAgfVxuICB9O1xuXG4gIC8vIPCfk4wgRVhQT1JUIFRPIEVYQ0VMIEZVTkNUSU9OXG4gIGNvbnN0IGV4cG9ydEZhaWxlZFJlY29yZFRvRXhjZWwgPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKGZhaWxlZFJlY29yZHMgJiYgZmFpbGVkUmVjb3Jkcz8ubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgd3MgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoXG4gICAgICAgIGZhaWxlZFJlY29yZHMubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgJyMnOiBpbmRleCArIDEsXG4gICAgICAgICAgJ05hbWUgS2htZXInOiBpdC5uYW1lX2tobWVyLFxuICAgICAgICAgICdOYW1lIExhdGluJzogaXQubmFtZV9sYXRpbixcbiAgICAgICAgICAnRGF0ZSBvZiBCaXJ0aCc6IGl0LmRhdGVfb2ZfYmlydGgsXG4gICAgICAgICAgJ0dlbmRlcic6IGl0LmdlbmRlcixcbiAgICAgICAgICAnUGhvbmUgTnVtYmVyJzogaXQucGhvbmVfbnVtYmVyLFxuICAgICAgICAgICdSZWFzb24nOiBpdC5yZWFzb25cbiAgICAgICAgfSkpXG4gICAgICApO1xuXG4gICAgICBjb25zdCB3YiA9IFhMU1gudXRpbHMuYm9va19uZXcoKTtcbiAgICAgIFhMU1gudXRpbHMuYm9va19hcHBlbmRfc2hlZXQod2IsIHdzLCAnVm9sdW50ZWVycy1GYWlsZWQnKTtcblxuICAgICAgLy8g4pyFIEVuc3VyZSB0aGUgQ1YgbGluayBmb3JtYXQgaXMgcHJvcGVybHkgYXBwbGllZFxuICAgICAgd3NbJyFjb2xzJ10gPSBbeyB3Y2g6IDEwIH0sIHsgd2NoOiAyMCB9LCB7IHdjaDogMjAgfSwgeyB3Y2g6IDIwIH0sIHsgd2NoOiAyMCB9LCB7IHdjaDogMjAgfSwgeyB3Y2g6IDIwIH1dO1xuXG4gICAgICBYTFNYLndyaXRlRmlsZSh3YiwgJ1ZvbHVudGVlcnMtRmFpbGVkLnhsc3gnKTtcbiAgICB9XG4gIH07XG5cbiAgLy8g8J+RiSBEZWZpbmUgdGFibGUgY29sdW1ucyBmb3IgZmFpbGVkIHJlY29yZHNcbiAgY29uc3QgZmFpbGVkQ29sdW1ucyA9IFtcbiAgICB7IHRpdGxlOiBcIk5vXCIsIGRhdGFJbmRleDogXCJpbmRleFwiLCBrZXk6IFwiaW5kZXhcIiB9LFxuICAgIHsgdGl0bGU6IFwiTmFtZSBLaG1lclwiLCBkYXRhSW5kZXg6IFwibmFtZUtobWVyXCIsIGtleTogXCJuYW1lS2htZXJcIiB9LFxuICAgIHsgdGl0bGU6IFwiTmFtZSBMYXRpblwiLCBkYXRhSW5kZXg6IFwibmFtZUxhdGluXCIsIGtleTogXCJuYW1lTGF0aW5cIiB9LFxuICAgIHsgdGl0bGU6IFwiRGF0ZSBvZiBCaXJ0aFwiLCBkYXRhSW5kZXg6IFwiZGF0ZU9mQmlydGhcIiwga2V5OiBcImRhdGVPZkJpcnRoXCIgfSxcbiAgICB7IHRpdGxlOiBcIkdlbmRlclwiLCBkYXRhSW5kZXg6IFwiZ2VuZGVyXCIsIGtleTogXCJnZW5kZXJcIiB9LFxuICAgIHsgdGl0bGU6IFwiUGhvbmUgTnVtYmVyXCIsIGRhdGFJbmRleDogXCJwaG9uZU51bWJlclwiLCBrZXk6IFwicGhvbmVOdW1iZXJcIiB9LFxuICAgIHsgdGl0bGU6IFwiUmVhc29uXCIsIGRhdGFJbmRleDogXCJyZWFzb25cIiwga2V5OiBcInJlYXNvblwiIH0sXG4gIF07XG5cbiAgLy8g8J+RiSBGb3JtYXQgZGF0YSBmb3IgdGFibGUgKGZhaWxlZCByZWNvcmRzKVxuICBjb25zdCBmYWlsZWRUYWJsZURhdGEgPSBmYWlsZWRSZWNvcmRzLm1hcCgodiwgaW5kZXgpID0+ICh7XG4gICAga2V5OiBpbmRleCxcbiAgICBcImluZGV4XCI6IGluZGV4ICsgMSxcbiAgICBcIm5hbWVLaG1lclwiOiB2W1wibmFtZV9raG1lclwiXSxcbiAgICBcIm5hbWVMYXRpblwiOiB2W1wibmFtZV9sYXRpblwiXSxcbiAgICBcImRhdGVPZkJpcnRoXCI6IHZbXCJkYXRlX29mX0JpcnRoXCJdLFxuICAgIFwiZ2VuZGVyXCI6IHZbXCJnZW5kZXJcIl0sXG4gICAgXCJwaG9uZU51bWJlclwiOiB2W1wicGhvbmVfbnVtYmVyXCJdLFxuICAgIFwicmVhc29uXCI6IHZbXCJyZWFzb25cIl1cbiAgfSkpO1xuXG4gIC8vIPCfkYkgRGVmaW5lIGNvbHVtbnMgZm9yIHVwbG9hZGVkIHZvbHVudGVlcnNcbiAgY29uc3QgY29sdW1ucyA9IFtcbiAgICB7IHRpdGxlOiBcIkNvZGVcIiwgZGF0YUluZGV4OiBcImNvZGVcIiwga2V5OiBcImNvZGVcIiB9LFxuICAgIHsgdGl0bGU6IFwiTmFtZSBLaG1lclwiLCBkYXRhSW5kZXg6IFwibmFtZUtobWVyXCIsIGtleTogXCJuYW1lS2htZXJcIiB9LFxuICAgIHsgdGl0bGU6IFwiTmFtZSBMYXRpblwiLCBkYXRhSW5kZXg6IFwibmFtZUxhdGluXCIsIGtleTogXCJuYW1lTGF0aW5cIiB9LFxuICAgIHsgdGl0bGU6IFwiRGF0ZSBvZiBCaXJ0aFwiLCBkYXRhSW5kZXg6IFwiZGF0ZU9mQmlydGhcIiwga2V5OiBcImRhdGVPZkJpcnRoXCIgfSxcbiAgICB7IHRpdGxlOiBcIkdlbmRlclwiLCBkYXRhSW5kZXg6IFwiZ2VuZGVyXCIsIGtleTogXCJnZW5kZXJcIiB9LFxuICAgIHsgdGl0bGU6IFwiUGhvbmUgTnVtYmVyXCIsIGRhdGFJbmRleDogXCJwaG9uZU51bWJlclwiLCBrZXk6IFwicGhvbmVOdW1iZXJcIiB9LFxuICBdO1xuXG4gIC8vIPCfkYkgRm9ybWF0IGRhdGEgZm9yIHRhYmxlXG4gIGNvbnN0IHRhYmxlRGF0YSA9IHZvbHVudGVlcnMubWFwKCh2LCBpbmRleCkgPT4gKHtcbiAgICBrZXk6IGluZGV4LFxuICAgIGNvZGU6IHYuY29kZSxcbiAgICBuYW1lS2htZXI6IGAke3YubGFzdF9uYW1lX2tobWVyfSAke3YuZmlyc3RfbmFtZV9raG1lcn1gLFxuICAgIG5hbWVMYXRpbjogYCR7di5sYXN0X25hbWVfbGF0aW59ICR7di5maXJzdF9uYW1lX2xhdGlufWAsXG4gICAgZGF0ZU9mQmlydGg6IHYuZGF0ZV9vZl9iaXJ0aCxcbiAgICBnZW5kZXI6IHYuZ2VuZGVyLFxuICAgIHBob25lTnVtYmVyOiB2LnBob25lX251bWJlcixcbiAgfSkpO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxoMj5Wb2x1bnRlZXIgVXBsb2FkIENTVi9FeGNlbDwvaDI+XG4gICAgICA8Rm9ybVxuICAgICAgICBmb3JtPXtmb3JtfVxuICAgICAgICBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiXG4gICAgICAgIG9uRmluaXNoPXtvbkZpbmlzaH1cbiAgICAgICAgc3R5bGU9e3sgbWF4V2lkdGg6IFwiMTAwJVwiLCBtYXJnaW46IFwiMCBhdXRvXCIgfX1cbiAgICAgID5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW1cbiAgICAgICAgICAgICAgbmFtZT1cImZpbGVcIlxuICAgICAgICAgICAgICBsYWJlbD1cIlVwbG9hZCBGaWxlXCJcbiAgICAgICAgICAgICAgcnVsZXM9e1t7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiBcIlJlcXVpcmVkXCIgfV19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxVcGxvYWQuRHJhZ2dlclxuICAgICAgICAgICAgICAgIGZpbGVMaXN0PXtjc3ZGaWxlTGlzdH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlRmlsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICBiZWZvcmVVcGxvYWQ9e2JlZm9yZVVwbG9hZH1cbiAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdD17eyBzaG93UHJldmlld0ljb246IGZhbHNlLCBzaG93UmVtb3ZlSWNvbjogdHJ1ZSB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEJ1dHRvbiBpY29uPXs8VXBsb2FkT3V0bGluZWQgLz59PkNsaWNrIHRvIFVwbG9hZDwvQnV0dG9uPlxuICAgICAgICAgICAgICA8L1VwbG9hZC5EcmFnZ2VyPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXs2fT48L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezZ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIiBcIj5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBib3JkZXJDb2xvcjogXCJncmVlblwiLCBjb2xvcjogXCJncmVlblwiLCBiYWNrZ3JvdW5kQ29sb3I6IFwid2hpdGVcIiB9fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsRG93bmxvYWRTYW1wbGVDU1Z9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8RmlsZUV4Y2VsT3V0bGluZWQgc3R5bGU9e3sgY29sb3I6IFwiZ3JlZW5cIiB9fSAvPiBEb3dubG9hZCBzYW1wbGUgY3N2XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXt1cGxvYWRDc3ZQZW5kaW5nfT5cbiAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiBodG1sVHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9Gb3JtPlxuXG4gICAgICB7LyogVXBsb2FkIFN1bW1hcnkgKi99XG4gICAgICA8ZGl2IHN0eWxlPXt7IG1hcmdpblRvcDogXCIyMHB4XCIgfX0+XG4gICAgICAgIHt1cGxvYWRTdW1tYXJ5ICYmIDxoMz57dXBsb2FkU3VtbWFyeX08L2gzPn1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogVGFibGUgdG8gZGlzcGxheSB1cGxvYWRlZCB2b2x1bnRlZXJzICovfVxuICAgICAge3ZvbHVudGVlcnMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiwganVzdGlmeUNvbnRlbnQ6IFwic3BhY2UtYmV0d2VlblwiLCBtYXJnaW5Cb3R0b206IFwiMTBweFwiIH19PlxuICAgICAgICAgICAgPFNwYWNlPlxuICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9e3sgY29sb3I6IFwiR3JlZW5cIiB9fT57c3VjY2Vzc0NvdW50fSBTdWNjZXNzZnVsIFVwbG9hZGVkIFJlY29yZHM8L2xhYmVsPlxuICAgICAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgICAgIDxTcGFjZT5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBib3JkZXJDb2xvcjogXCJncmVlblwiLCBjb2xvcjogXCJncmVlblwiLCBiYWNrZ3JvdW5kQ29sb3I6IFwid2hpdGVcIiB9fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2V4cG9ydFRvRXhjZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8RmlsZUV4Y2VsT3V0bGluZWQgc3R5bGU9e3sgY29sb3I6IFwiZ3JlZW5cIiB9fSAvPiBFeHBvcnQgRXhjZWxcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1NwYWNlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxUYWJsZVxuICAgICAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgICAgIGRhdGFTb3VyY2U9e3RhYmxlRGF0YX1cbiAgICAgICAgICAgIHBhZ2luYXRpb249e3sgcGFnZVNpemU6IDUgfX1cbiAgICAgICAgICAgIGJvcmRlcmVkXG4gICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5Ub3A6IFwiMjBweFwiIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgPC8+XG4gICAgICApfVxuXG4gICAgICB7LyogVGFibGUgdG8gZGlzcGxheSBmYWlsZWQgcmVjb3JkcyAqL31cbiAgICAgIHtmYWlsZWRSZWNvcmRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8PlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgbWFyZ2luVG9wOiBcIjIwcHhcIiB9fT5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIsIGp1c3RpZnlDb250ZW50OiBcInNwYWNlLWJldHdlZW5cIiwgbWFyZ2luQm90dG9tOiBcIjEwcHhcIiB9fT5cbiAgICAgICAgICAgICAgPFNwYWNlPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17eyBjb2xvcjogXCJSZWRcIiB9fT4ge2ZhaWxlZENvdW50fSBGYWlsZWQgUmVjb3JkczwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvU3BhY2U+XG4gICAgICAgICAgICAgIDxTcGFjZT5cbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyBib3JkZXJDb2xvcjogXCJyZWRcIiwgY29sb3I6IFwicmVkXCIsIGJhY2tncm91bmRDb2xvcjogXCJ3aGl0ZVwiIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtleHBvcnRGYWlsZWRSZWNvcmRUb0V4Y2VsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxGaWxlRXhjZWxPdXRsaW5lZCBzdHlsZT17eyBjb2xvcjogXCJyZWRcIiB9fSAvPiBFeHBvcnQgRXhjZWxcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPFRhYmxlXG4gICAgICAgICAgICAgIGNvbHVtbnM9e2ZhaWxlZENvbHVtbnN9XG4gICAgICAgICAgICAgIGRhdGFTb3VyY2U9e2ZhaWxlZFRhYmxlRGF0YX1cbiAgICAgICAgICAgICAgcGFnaW5hdGlvbj17eyBwYWdlU2l6ZTogNSB9fVxuICAgICAgICAgICAgICBib3JkZXJlZFxuICAgICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5Ub3A6IFwiMjBweFwiIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8Lz5cbiAgICAgICl9XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBVcGxvYWRDU1ZQYWdlO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtLCBJbnB1dCwgQnV0dG9uLCBSb3csIENvbCwgbWVzc2FnZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgVm9sdW50ZWVyRXZlbnQgfSBmcm9tICdAL3NoYXJlZC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZVZvbHVudGVlckV2ZW50QWN0aW9uLCB2b2x1bnRlZXJFdmVudERldGFpbEFjdGlvbiwgdXBkYXRlVm9sdW50ZWVyRXZlbnRBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy92b2x1bnRlZXJfZXZlbnQvY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgVGV4dEFyZWEgZnJvbSAnYW50ZC9lcy9pbnB1dC9UZXh0QXJlYSc7XG5cbmNvbnN0IE5ld0VkaXRWb2x1bnRlZXJFdmVudFBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyB2b2x1bnRlZXJFdmVudCwgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIHZvbHVudGVlckV2ZW50VXBkYXRlUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnZvbHVudGVlckV2ZW50XG4gICk7XG4gIGNvbnN0IFtmb3JtXSA9IEZvcm0udXNlRm9ybSgpO1xuXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgaWQgPSBzZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuXG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAvLyDwn5GJIEZldGNoIGRhdGEgd2hlbiBlZGl0aW5nIG9yIHJlc2V0IGZvcm0gd2hlbiBhZGRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHZvbHVudGVlckV2ZW50RGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGZpZWxkcyB3aGVuIGFkZGluZyBhIG5ldyBpdGVtXG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkLCBmb3JtXSk7XG5cbiAgLy8g8J+RiSBQb3B1bGF0ZSBmb3JtIHdpdGggZmV0Y2hlZCBkYXRhXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkICYmIHZvbHVudGVlckV2ZW50KSB7XG4gICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHtcbiAgICAgICAgbmFtZTogdm9sdW50ZWVyRXZlbnQubmFtZSB8fCAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IHZvbHVudGVlckV2ZW50LmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbdm9sdW50ZWVyRXZlbnQsIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2b2x1bnRlZXJFdmVudFVwZGF0ZVBlbmRpbmcgJiYgaXNDbGljaykge1xuICAgICAgaWYgKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIG1lc3NhZ2UuZXJyb3IocmVnaXN0ZXJFcnJvck1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGlkID8gJ1VwZGF0ZWQgc3VjY2Vzc2Z1bGx5IScgOiAnQ3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgIG5hdmlnYXRlKCcvdm9sdW50ZWVyLWV2ZW50cycpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3ZvbHVudGVlckV2ZW50VXBkYXRlUGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGlkLCBpc0NsaWNrLCBuYXZpZ2F0ZV0pO1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWl0XG4gIGNvbnN0IG9uRmluaXNoID0gKHZhbHVlczogVm9sdW50ZWVyRXZlbnQpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHVwZGF0ZVZvbHVudGVlckV2ZW50QWN0aW9uKHsgaWQ6IE51bWJlcihpZCksIGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKGNyZWF0ZVZvbHVudGVlckV2ZW50QWN0aW9uKHsgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBhZnRlciBzdWNjZXNzZnVsIGNyZWF0aW9uXG4gICAgfVxuICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPntpZCA/ICfhnoDhn4LhnpThn5Lhnprhn4Lhnpbhn5Lhnprhnrnhno/hn5Lhno/hnrfhnoDhnrbhnprhno7hn43hnp/hn5Lhnpjhn5DhnoLhn5LhnprhnoXhnrfhno/hn5Lhno8nIDogJ+GelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuOGeluGfkuGemuGeueGej+GfkuGej+Get+GegOGetuGemuGejuGfjeGen+GfkuGemOGfkOGeguGfkuGemuGeheGet+Gej+GfkuGejyd9PC9oMj5cbiAgICAgIDxGb3JtIGZvcm09e2Zvcm19IGxheW91dD1cInZlcnRpY2FsXCIgb25GaW5pc2g9e29uRmluaXNofSBzdHlsZT17eyBtYXhXaWR0aDogJzEwMCUnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeiOGfkuGemOGfhOGfh1wiIG5hbWU9XCJuYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgbmFtZScgfV19PlxuICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemVwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8VGV4dEFyZWEgcm93cz17M30gLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGJsb2NrIGh0bWxUeXBlPVwic3VibWl0XCIgbG9hZGluZz17dm9sdW50ZWVyRXZlbnRVcGRhdGVQZW5kaW5nfT5cbiAgICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiBodG1sVHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKCcvdm9sdW50ZWVyLWV2ZW50cycpfT5cbiAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L0Zvcm0+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOZXdFZGl0Vm9sdW50ZWVyRXZlbnRQYWdlO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIElucHV0LCBTcGFjZSwgVGFibGUgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTG9hZGluZ0RpYWxvZyBmcm9tICcuLi8uLi8uLi9jb250YWluZXIvZGlhbG9ncy9sb2FkaW5nLWRpYWxvZyc7XG5pbXBvcnQgeyBEZWxldGVPdXRsaW5lZCwgRWRpdE91dGxpbmVkLCBQbHVzT3V0bGluZWQgfSBmcm9tICdAYW50LWRlc2lnbi9pY29ucyc7XG5pbXBvcnQgeyBkZWxldGVWb2x1bnRlZXJFdmVudEFjdGlvbiwgdm9sdW50ZWVyRXZlbnREZXRhaWxBY3Rpb24sIGZldGNoVm9sdW50ZWVyRXZlbnRzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdm9sdW50ZWVyX2V2ZW50L2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmNvbnN0IFZvbHVudGVlckV2ZW50TGlzdCA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IHZvbHVudGVlckV2ZW50cywgdm9sdW50ZWVyRXZlbnRzUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnZvbHVudGVlckV2ZW50KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoVm9sdW50ZWVyRXZlbnRzKCkpO1xuICB9LCBbZGlzcGF0Y2hdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaCh2b2x1bnRlZXJFdmVudERldGFpbEFjdGlvbihpZCkpO1xuICAgIG5hdmlnYXRlKGAvdm9sdW50ZWVyLWV2ZW50cy9mb3JtP2lkPSR7aWR9YCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlID0gKGlkOiBhbnkpID0+IHtcbiAgICBTd2FsLmZpcmUoe1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmU/JyxcbiAgICAgIHRleHQ6ICdZb3Ugd29uXFwndCBiZSBhYmxlIHRvIHJldmVydCB0aGlzIScsXG4gICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgIGh0bWw6IGBcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNvbmZpcm0tZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jb25maXJtIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2QzMztcIj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY2FuY2VsLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY2FuY2VsIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzMwODVkNjtcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgLFxuICAgICAgZGlkT3BlbjogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maXJtQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY29uZmlybS1kZWxldGUnKTtcbiAgICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY2FuY2VsLWRlbGV0ZScpO1xuXG4gICAgICAgIGNvbmZpcm1CdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKGRlbGV0ZVZvbHVudGVlckV2ZW50QWN0aW9uKGlkKSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBTd2FsLmZpcmUoJ0RlbGV0ZWQhJywgJ1RoZSBpdGVtIGhhcyBiZWVuIGRlbGV0ZWQuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKGZldGNoVm9sdW50ZWVyRXZlbnRzKCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2FuY2VsQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZWFyY2ggPSAoKSA9PiB7XG4gICAgLy8gVHJpZ2dlcnMgc2VhcmNoIGJ5IHNldHRpbmcgc3RhdGVcbiAgICBzZXRTZWFyY2hUZXh0KHNlYXJjaFRleHQudHJpbSgpKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVSZXNldCA9ICgpID0+IHtcbiAgICAvLyBDbGVhcnMgaW5wdXQgYW5kIHNob3dzIGFsbCBkYXRhXG4gICAgc2V0U2VhcmNoVGV4dCgnJyk7XG4gIH07XG5cbiAgY29uc3QgY29sdW1ucyA9IFtcbiAgICB7IHRpdGxlOiAn4Z6b4Z+B4Z6B4Z6a4Z+A4Z6EJywgZGF0YUluZGV4OiAnaW5kZXgnLCBrZXk6ICdpbmRleCcsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnojhn5Lhnpjhn4Thn4cnLCBkYXRhSW5kZXg6ICduYW1lJywga2V5OiAnbmFtZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnpThnprhnrfhnpnhnrbhnpknLCBkYXRhSW5kZXg6ICdkZXNjcmlwdGlvbicsIGtleTogJ2Rlc2NyaXB0aW9uJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdBY3Rpb24nLFxuICAgICAga2V5OiAnYWN0aW9uJyxcbiAgICAgIHJlc3BvbnNpdmU6IFsneHMnLCAnc20nLCAnbWQnLCAnbGcnXSxcbiAgICAgIHJlbmRlcjogKF86IHN0cmluZywgcmVjb3JkOiBhbnkpID0+IChcbiAgICAgICAgPFNwYWNlIHNpemU9XCJtaWRkbGVcIj5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxFZGl0T3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gaGFuZGxlRWRpdChyZWNvcmQuaWQpfSAvPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fSBkYW5nZXIgb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlKHJlY29yZC5pZCl9IC8+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICApLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3QgZmlsdGVyZWREYXRhID0gKHZvbHVudGVlckV2ZW50cyB8fCBbXSkuZmlsdGVyKChpdCkgPT5cbiAgICBpdC5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+4Z6U4Z6J4Z+S4Z6H4Z644Z6W4Z+S4Z6a4Z654Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4Z6O4Z+N4Z6f4Z+S4Z6Y4Z+Q4Z6C4Z+S4Z6a4Z6F4Z634Z6P4Z+S4Z6PPC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzEwcHgnLFxuICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxzcGFuPuGen+GemuGeu+GelDoge2ZpbHRlcmVkRGF0YT8ubGVuZ3RoIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVTZWFyY2h9IHR5cGU9XCJwcmltYXJ5XCI+4Z6F4Z6Y4Z+S4Z6a4Z+E4Z+HPC9CdXR0b24+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVSZXNldH0+4Z6A4Z+G4Z6O4Z6P4Z+L4Z6h4Z6+4Z6E4Z6c4Z634Z6JPC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PFBsdXNPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZShgL3ZvbHVudGVlci1ldmVudHMvZm9ybWApfT7hnpThnpPhn5LhnpDhn4LhnpjhnpDhn5Lhnpjhnrg8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPFRhYmxlXG4gICAgICAgIHJvd1NlbGVjdGlvbj17e1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgb25DaGFuZ2U6IChfLCBzZWxlY3RlZFJvd3MpID0+IHNldFNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3MpLFxuICAgICAgICB9fVxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBkYXRhU291cmNlPXtmaWx0ZXJlZERhdGEubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAga2V5OiBpdC5pZCxcbiAgICAgICAgICBpbmRleDogaW5kZXggKyAxLFxuICAgICAgICAgIG5hbWU6IGl0Lm5hbWUsXG4gICAgICAgICAgLi4uaXQsXG4gICAgICAgIH0pKX1cbiAgICAgICAgcGFnaW5hdGlvbj17eyBwYWdlU2l6ZTogMTAsIHNob3dTaXplQ2hhbmdlcjogdHJ1ZSB9fVxuICAgICAgICBzY3JvbGw9e3sgeDogJ21heC1jb250ZW50JyB9fVxuICAgICAgLz5cbiAgICAgIDxMb2FkaW5nRGlhbG9nIHZpc2libGU9e3ZvbHVudGVlckV2ZW50c1BlbmRpbmd9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBWb2x1bnRlZXJFdmVudExpc3Q7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5jb25zdCBOb3RGb3VuZDogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIHJldHVybiA8aDE+NDA0IC0gUGFnZSBOb3QgRm91bmQ8L2gxPjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5vdEZvdW5kO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWdpc3RlckZvcm0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdm9sdW50ZWVyL3JlZ2lzdGVyL2NvbXBvbmVudHMvcmVnaXN0ZXInO1xuaW1wb3J0IFZvbHVudGVlclRoYW5rWW91IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3ZvbHVudGVlci9yZWdpc3Rlci9jb21wb25lbnRzL3RoYW5rcyc7XG5cblxuY29uc3QgVm9sdW50ZWVyUmVnaXN0ZXJGb3JtOiBSZWFjdC5GQyA9ICgpID0+IHtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1jb250YWluZXJcIj5cbiAgICAgIHsvKiA8UmVnaXN0ZXJGb3JtLz4gKi99XG4gICAgICA8Vm9sdW50ZWVyVGhhbmtZb3UvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVm9sdW50ZWVyUmVnaXN0ZXJGb3JtO1xuIl0sIm5hbWVzIjpbImUiLCJ0IiwiciIsIlN5bWJvbCIsIm4iLCJpdGVyYXRvciIsIm8iLCJ0b1N0cmluZ1RhZyIsImkiLCJjIiwicHJvdG90eXBlIiwiR2VuZXJhdG9yIiwidSIsIk9iamVjdCIsImNyZWF0ZSIsIl9yZWdlbmVyYXRvckRlZmluZTIiLCJmIiwicCIsInkiLCJHIiwidiIsImEiLCJkIiwiYmluZCIsImxlbmd0aCIsImwiLCJUeXBlRXJyb3IiLCJjYWxsIiwiZG9uZSIsInZhbHVlIiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsImdldFByb3RvdHlwZU9mIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJkaXNwbGF5TmFtZSIsIl9yZWdlbmVyYXRvciIsInciLCJtIiwiZGVmaW5lUHJvcGVydHkiLCJfcmVnZW5lcmF0b3JEZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfaW52b2tlIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJhcmd1bWVudHMiLCJhcHBseSIsIl9uZXh0IiwiX3Rocm93IiwiX3NsaWNlZFRvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiQXJyYXkiLCJmcm9tIiwidGVzdCIsIm5leHQiLCJwdXNoIiwiaXNBcnJheSIsIlJlYWN0IiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJkZWxldGVWb2x1bnRlZXJBY3Rpb24iLCJmZXRjaERhc2hib2FyZEFjdGlvbiIsImZldGNoRWR1Y2F0aW9uSW5zdGl0dXRpb25zIiwiZmV0Y2hFdmVudCIsImZldGNoTGFuZ3VhdGVBY3Rpb24iLCJmZXRjaFByb3ZpbmNlIiwiZmV0Y2hTa2lsbEFjdGlvbiIsImZldGNoVGVhbSIsImZldGNoVm9sdW50ZWVycyIsInVwZGF0ZVZvbHVudGVlckFjdGlvbiIsInZvbHVudGVlckRldGFpbEFjdGlvbiIsInVzZURpc3BhdGNoIiwidXNlU2VsZWN0b3IiLCJ1c2VOYXZpZ2F0ZSIsIkxvYWRpbmdEaWFsb2ciLCJEZWxldGVPdXRsaW5lZCIsIkVkaXRPdXRsaW5lZCIsIkZpbGVFeGNlbE91dGxpbmVkIiwiU29ydEFzY2VuZGluZ091dGxpbmVkIiwiWExTWCIsIlN3YWwiLCJOb3RpZmxpeCIsIm1vbWVudCIsImNvbmZpcm0iLCJfTW9kYWwiLCJzdGF0dXNDb2xvcnMiLCJSZWdpc3RlciIsIlNob3J0bGlzdCIsIkludGVydmlldyIsIlBhcnRpY2lwYW50cyIsIlJlc2VydmUiLCJGYWlsZWQiLCJSZXNpZ25hdGlvbiIsIkRpc3F1YWxpZmljYXRpb24iLCJBcHByb3ZlZFZvbHVuZWVycyIsIl9yZWYiLCJfdm9sdW50ZWVycyRtZXRhIiwiX3ZvbHVudGVlcnMkbWV0YTIiLCJzdGF0dXMiLCJkaXNwYXRjaCIsIm5hdmlnYXRlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsInNlbGVjdGVkUm93cyIsInNldFNlbGVjdGVkUm93cyIsIl91c2VTZWxlY3RvciIsInN0YXRlIiwidm9sdW50ZWVyIiwidm9sdW50ZWVycyIsInZvbHVudGVlclBlbmRpbmciLCJkYXNoYm9hcmQiLCJwcm92aW5jZXMiLCJlZHVjYXRpb25JbnN0aXR1dGlvbnMiLCJpbnRlcmVzdGVkVGVhbXMiLCJ2b2x1bnRlZXJFdmVudHMiLCJza2lsbHMiLCJsYW5ndWFnZXMiLCJfdXNlU2VsZWN0b3IyIiwiYXV0aCIsImN1cnJlbnRVc2VyIiwiaXNBZG1pbiIsInJvbGUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImN1cnJlbnRQYWdlIiwic2V0Q3VycmVudFBhZ2UiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInBhZ2VTaXplIiwic2V0UGFnZVNpemUiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNlYXJjaCIsInNldFNlYXJjaCIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwic29ydE9yZGVyIiwic2V0U29ydE9yZGVyIiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwicHJvdmluY2UiLCJzZXRQcm92aW5jZSIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJ0ZWFtSWQiLCJzZXRUZWFtSWQiLCJfdXNlU3RhdGUxMyIsIl91c2VTdGF0ZTE0IiwiZXZlbnRJZHMiLCJzZXRFdmVudElkcyIsIl91c2VTdGF0ZTE1IiwiX3VzZVN0YXRlMTYiLCJsYW5ndWFnZUlkIiwic2V0TGFuZ3VhZ2VJZCIsIl91c2VTdGF0ZTE3IiwiX3VzZVN0YXRlMTgiLCJza2lsbElkIiwic2V0U2tpbGxJZCIsIl91c2VTdGF0ZTE5IiwiX3VzZVN0YXRlMjAiLCJzZWxlY3RlZEluc3RpdHV0aW9uIiwic2V0U2VsZWN0ZWRJbnN0aXR1dGlvbiIsIl91c2VTdGF0ZTIxIiwiX3VzZVN0YXRlMjIiLCJzY29yZUZyb20iLCJzZXRTY29yZUZyb20iLCJfdXNlU3RhdGUyMyIsIl91c2VTdGF0ZTI0Iiwic2NvcmVUbyIsInNldFNjb3JlVG8iLCJ2b2x1bnRlZXJfc3RhdHVzIiwicGFnZSIsInNvcnRfb3JkZXIiLCJlZHVjYXRpb25faW5zdGl0dXRpb25faWQiLCJzY29yZV9mcm9tIiwic2NvcmVfdG8iLCJpbnRlcmVzdGVkX3RlYW1faWQiLCJldmVudF9pZHMiLCJsYW5ndWFnZV9pZCIsInNraWxsX2lkIiwiaGFuZGxlU2VhcmNoIiwidGFyZ2V0IiwicmVzZXRTZWFyY2giLCJoYW5kbGVTY29yZUZyb20iLCJOdW1iZXIiLCJoYW5kbGVTY29yZVRvIiwiaGFuZGxlRWRpdCIsImlkIiwiY29uY2F0IiwiaGFuZGxlRGVsZXRlIiwiZmlyZSIsInRpdGxlIiwidGV4dCIsImljb24iLCJzaG93Q29uZmlybUJ1dHRvbiIsInNob3dDYW5jZWxCdXR0b24iLCJodG1sIiwiZGlkT3BlbiIsIl9Td2FsJGdldFBvcHVwIiwiX1N3YWwkZ2V0UG9wdXAyIiwiY29uZmlybUJ1dHRvbiIsImdldFBvcHVwIiwicXVlcnlTZWxlY3RvciIsImNhbmNlbEJ1dHRvbiIsImFkZEV2ZW50TGlzdGVuZXIiLCJjbG9zZSIsInN0YXR1c09wdGlvbnMiLCJoYW5kbGVTdGF0dXNDaGFuZ2UiLCJ2b2x1bnRlZXJJZCIsIm5ld1N0YXR1cyIsImRhdGEiLCJOb3RpZnkiLCJzdWNjZXNzIiwiZmFpbHVyZSIsImhhbmRsZUluc3RpdHV0aW9uQ2hhbmdlIiwiaW5zdGl0dXRpb25JZCIsImhhbmRsZVRhYmxlQ2hhbmdlIiwicGFnaW5hdGlvbiIsImN1cnJlbnQiLCJjb2x1bW5zIiwiZGF0YUluZGV4Iiwia2V5IiwicmVzcG9uc2l2ZSIsInJlbmRlciIsIl8iLCJyZWNvcmQiLCJjcmVhdGVFbGVtZW50IiwiX1NwYWNlIiwic2l6ZSIsIl9CdXR0b24iLCJ0eXBlIiwib25DbGljayIsIl9UeXBvZ3JhcGh5IiwiVGV4dCIsInN0eWxlIiwiY29sb3IiLCJtYWluX2NvZGUiLCJjb2RlIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJnYXAiLCJwaG90byIsIl9JbWFnZSIsIndpZHRoIiwic3JjIiwiYWx0IiwiYm9yZGVyUmFkaXVzIiwiYm9yZGVyIiwiZWxsaXBzaXMiLCJ2b2x1bnRlZXJfZXZlbnRfbmFtZSIsImludGVyZXN0ZWRfdGVhbV9uYW1lIiwiZW1haWwiLCJjcmVhdGVkX2F0IiwiZm9ybWF0IiwiX1RhZyIsInBhZGRpbmciLCJfU2VsZWN0IiwiYm9yZGVyZWQiLCJkcm9wZG93blN0eWxlIiwiZm9udFNpemUiLCJtaW5XaWR0aCIsImJhY2tncm91bmRDb2xvciIsImRpc2FibGVkIiwib25DaGFuZ2UiLCJtYXAiLCJPcHRpb24iLCJkYW5nZXIiLCJleHBvcnRUb0V4Y2VsIiwiX3JlZjIiLCJfY2FsbGVlIiwiX2FsbERhc2hib2FyZCRwYXlsb2FkIiwiX2FsbHZvbHVudGVlcnMkcGF5bG9hIiwiYWxsRGFzaGJvYXJkIiwiYWxsdm9sdW50ZWVycyIsIl9hbGx2b2x1bnRlZXJzJHBheWxvYTIiLCJ3cyIsIndiIiwiX2NvbnRleHQiLCJwYXlsb2FkIiwiY291bnRfdm9sdW50ZWVycyIsInV0aWxzIiwianNvbl90b19zaGVldCIsIml0IiwiaW5kZXgiLCJfaXQkbGFzdF9uYW1lX2tobWVyIiwiX2l0JGZpcnN0X25hbWVfa2htZXIiLCJfaXQkbGFzdF9uYW1lX2xhdGluIiwiX2l0JGZpcnN0X25hbWVfbGF0aW4iLCJfaXQkZGF0ZV9vZl9iaXJ0aCIsIl9pdCRnZW5kZXIiLCJfaXQkbmF0aW9uYWxpdHkiLCJfaXQkcGhvbmVfbnVtYmVyIiwiX2l0JGVtYWlsIiwiX2l0JGN1cnJlbnRfYWRkcmVzcyIsIl9pdCRwcm92aW5jZV9pZCIsIl9pdCRvY2N1cGF0aW9uX25hbWUiLCJfaXQkZWR1Y2F0aW9uX2luc3RpdHUiLCJfaXQkdF9zaGlydF9zaXplIiwiX2l0JGZvb2RfbmFtZSIsIl9pdCRmb29kX2FsbGVyZ2llcyIsIl9pdCRkaXNhYmlsaXR5X3R5cGVfbiIsIl9pdCRpbnRlcmVzdGVkX3RlYW1fbiIsIl9pdCR2b2x1bnRlZXJfZXZlbnRfbiIsIl9pdCRvcHBvcnR1bml0eV9zb3VyYyIsIl9pdCR0cmFpbmluZ19zZXNzaW9uXyIsIl9pdCR2b2x1bnRlZXJfc3RhdHVzIiwibGFzdF9uYW1lX2tobWVyIiwiZmlyc3RfbmFtZV9raG1lciIsImxhc3RfbmFtZV9sYXRpbiIsImZpcnN0X25hbWVfbGF0aW4iLCJkYXRlX29mX2JpcnRoIiwiZ2VuZGVyIiwibmF0aW9uYWxpdHkiLCJwaG9uZV9udW1iZXIiLCJjdXJyZW50X2FkZHJlc3MiLCJwcm92aW5jZV9pZCIsIm9jY3VwYXRpb25fbmFtZSIsImVkdWNhdGlvbl9pbnN0aXR1dGlvbl9uYW1lIiwidF9zaGlydF9zaXplIiwiZm9vZF9uYW1lIiwiaXNfZm9vZF9hbGxlcmd5IiwiZm9vZF9hbGxlcmdpZXMiLCJkaXNhYmlsaXR5X3R5cGVfbmFtZSIsIm9wcG9ydHVuaXR5X3NvdXJjZV9uYW1lIiwidHJhaW5pbmdfc2Vzc2lvbl9uYW1lIiwidXBsb2FkX2lkX2NhcmQiLCJ1cGxvYWRfY3YiLCJib29rX25ldyIsImJvb2tfYXBwZW5kX3NoZWV0Iiwid2NoIiwid3JpdGVGaWxlIiwiaGFuZGxlU29ydE9yZGVyIiwicHJldk9yZGVyIiwib3ZlcmZsb3dYIiwiYmFja2dyb3VuZCIsIm1hcmdpbkJvdHRvbSIsIl9Sb3ciLCJndXR0ZXIiLCJqdXN0aWZ5IiwiYWxpZ24iLCJfQ29sIiwieHMiLCJtZCIsIndyYXAiLCJtZXRhIiwidG90YWwiLCJfSW5wdXQiLCJwbGFjZWhvbGRlciIsImp1c3RpZnlDb250ZW50IiwiYm9yZGVyQ29sb3IiLCJzbSIsImxnIiwiYWxsb3dDbGVhciIsInNob3dTZWFyY2giLCJrbSIsImxhdGluIiwiZmlsdGVyT3B0aW9uIiwiaW5wdXQiLCJvcHRpb24iLCJjaGlsZHJlbiIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJpbnN0aXR1dGlvbiIsInRlYW0iLCJtb2RlIiwidmFsdWVzIiwiX29wdGlvbiRjaGlsZHJlbiIsImV2ZW50IiwibGFuZ3VhZ2UiLCJza2lsbCIsImRpcmVjdGlvbiIsIl9JbnB1dE51bWJlciIsIm1pbiIsIl9UYWJsZSIsInJvd1NlbGVjdGlvbiIsImRhdGFTb3VyY2UiLCJfb2JqZWN0U3ByZWFkIiwibG9hZGluZyIsInNob3dTaXplQ2hhbmdlciIsInJvd0tleSIsInNjcm9sbCIsIngiLCJ2aXNpYmxlIiwiVm9sdW50ZWVyRm9ybSIsInNlYXJjaFBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImxvY2F0aW9uIiwiZ2V0IiwiTmV3RWRpdFZvbHVudGVlclBhZ2UiLCJ1c2VMb2NhdGlvbiIsIkFwcHJvdmVkVm9sdW50ZWVycyIsIlZPTFVOVEVFUl9UQUJTIiwibGFiZWwiLCJhZG1pbk9ubHkiLCJWb2x1bnRlZXJMaXN0IiwicXVlcnkiLCJpbml0aWFsU3RhdHVzIiwic2V0U3RhdHVzIiwiaGFuZGxlVGFiQ2hhbmdlIiwic2V0IiwicGF0aG5hbWUiLCJfVGFicyIsImFjdGl2ZUtleSIsIlRhYlBhbmUiLCJ0YWIiLCJVcGxvYWRPdXRsaW5lZCIsImNyZWF0ZVVwZGF0ZUlkZW50aXR5Q3N2QWN0aW9uIiwiZG93bmxvYWRTYW1wbGVVcGRhdGVJZGVudGl0eUNzdkFjdGlvbiIsIlVwZGF0ZUlkZW50aXR5Q3N2UGFnZSIsInVwYXRlVGVhbUNzdlBlbmRpbmciLCJyZWdpc3RlckVycm9yTWVzc2FnZSIsIl9Gb3JtJHVzZUZvcm0iLCJfRm9ybSIsInVzZUZvcm0iLCJfRm9ybSR1c2VGb3JtMiIsImZvcm0iLCJpc0NsaWNrIiwic2V0SXNDbGljayIsImNzdkZpbGVMaXN0Iiwic2V0Q3N2RmlsZUxpc3QiLCJzZXRWb2x1bnRlZXJzIiwiZmFpbGVkUmVjb3JkcyIsInNldEZhaWxlZFJlY29yZHMiLCJ1cGxvYWRTdW1tYXJ5Iiwic2V0VXBsb2FkU3VtbWFyeSIsInN1Y2Nlc3NDb3VudCIsInNldFN1Y2Nlc3NDb3VudCIsImZhaWxlZENvdW50Iiwic2V0RmFpbGVkQ291bnQiLCJfbWVzc2FnZSIsImVycm9yIiwicmVzZXRGaWVsZHMiLCJoYW5kbGVGaWxlQ2hhbmdlIiwiZmlsZUxpc3QiLCJiZWZvcmVVcGxvYWQiLCJmaWxlIiwiYWxsb3dlZFR5cGVzIiwiX1VwbG9hZCIsIkxJU1RfSUdOT1JFIiwib25GaW5pc2giLCJmb3JtRGF0YSIsInJlc3BvbnNlIiwiX3QiLCJvcmlnaW5GaWxlT2JqIiwiRm9ybURhdGEiLCJhcHBlbmQiLCJ1bndyYXAiLCJmYWlsZWRfcmVjb3JkcyIsIm1lc3NhZ2UiLCJmYWlsZWRfY291bnQiLCJzdWNjZXNzZnVsX2NvdW50IiwiaGFuZGxEb3dubG9hZFNhbXBsZVVwZGF0ZUlkZW50aXR5Q1NWIiwiX3JlZjMiLCJfY2FsbGVlMiIsImJsb2IiLCJ1cmwiLCJsaW5rIiwiX3QyIiwiX2NvbnRleHQyIiwiQmxvYiIsIndpbmRvdyIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsImRvY3VtZW50IiwiaHJlZiIsInNldEF0dHJpYnV0ZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImNsaWNrIiwicmVtb3ZlQ2hpbGQiLCJyZXZva2VPYmplY3RVUkwiLCJjb25zb2xlIiwiX3JlZjQiLCJfY2FsbGVlMyIsIl9jb250ZXh0MyIsImV2ZW50X2NvZGUiLCJleHBvcnRGYWlsZWRSZWNvcmRUb0V4Y2VsIiwiX3JlZjUiLCJfY2FsbGVlNCIsIl9jb250ZXh0NCIsInJlYXNvbiIsImZhaWxlZENvbHVtbnMiLCJmYWlsZWRUYWJsZURhdGEiLCJ0YWJsZURhdGEiLCJtYWluQ29kZSIsImV2ZW50Q29kZSIsIm5hbWVLaG1lciIsIm5hbWVMYXRpbiIsImRhdGVPZkJpcnRoIiwidm9sdW50ZWVyU3RhdHVzIiwiaW50ZXJlc3RlZFRlYW0iLCJwaG9uZU51bWJlciIsIkZyYWdtZW50IiwibGF5b3V0IiwibWF4V2lkdGgiLCJtYXJnaW4iLCJzcGFuIiwiSXRlbSIsInJ1bGVzIiwicmVxdWlyZWQiLCJEcmFnZ2VyIiwic2hvd1VwbG9hZExpc3QiLCJzaG93UHJldmlld0ljb24iLCJzaG93UmVtb3ZlSWNvbiIsImJsb2NrIiwiaHRtbFR5cGUiLCJyZWxvYWQiLCJtYXJnaW5Ub3AiLCJjcmVhdGVVcGRhdGVUZWFtQ3N2QWN0aW9uIiwiZG93bmxvYWRTYW1wbGVVcGRhdGVUZWFtQ3N2QWN0aW9uIiwiVXBkYXRlVGVhbUNzdlBhZ2UiLCJoYW5kbERvd25sb2FkU2FtcGxlVXBkYXRlVGVhbUNTViIsImludGVyZXN0ZWRfdGVhbSIsImNyZWF0ZVVwbG9hZENzdkFjdGlvbiIsImRvd25sb2FkU2FtcGxlQ3N2QWN0aW9uIiwiVXBsb2FkQ1NWUGFnZSIsInVwbG9hZENzdlBlbmRpbmciLCJoYW5kbERvd25sb2FkU2FtcGxlQ1NWIiwibmFtZV9raG1lciIsIm5hbWVfbGF0aW4iLCJjcmVhdGVWb2x1bnRlZXJFdmVudEFjdGlvbiIsInZvbHVudGVlckV2ZW50RGV0YWlsQWN0aW9uIiwidXBkYXRlVm9sdW50ZWVyRXZlbnRBY3Rpb24iLCJUZXh0QXJlYSIsIk5ld0VkaXRWb2x1bnRlZXJFdmVudFBhZ2UiLCJ2b2x1bnRlZXJFdmVudCIsInZvbHVudGVlckV2ZW50VXBkYXRlUGVuZGluZyIsInNldEZpZWxkc1ZhbHVlIiwiZGVzY3JpcHRpb24iLCJyb3dzIiwiUGx1c091dGxpbmVkIiwiZGVsZXRlVm9sdW50ZWVyRXZlbnRBY3Rpb24iLCJmZXRjaFZvbHVudGVlckV2ZW50cyIsIlZvbHVudGVlckV2ZW50TGlzdCIsInNlYXJjaFRleHQiLCJzZXRTZWFyY2hUZXh0Iiwidm9sdW50ZWVyRXZlbnRzUGVuZGluZyIsInRyaW0iLCJoYW5kbGVSZXNldCIsImZpbHRlcmVkRGF0YSIsImZpbHRlciIsIl9pdCRuYW1lIiwiZmxleFdyYXAiLCJOb3RGb3VuZCIsIlZvbHVudGVlclRoYW5rWW91IiwiVm9sdW50ZWVyUmVnaXN0ZXJGb3JtIiwiY2xhc3NOYW1lIl0sInNvdXJjZVJvb3QiOiIifQ==