22 lines
112 KiB
JavaScript
22 lines
112 KiB
JavaScript
"use strict";
|
|
/*
|
|
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
* This devtool is neither made for production nor for readable output files.
|
|
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
* or disable the default devtool with "devtool: false".
|
|
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
*/
|
|
self["webpackHotUpdate_N_E"]("app/dashboard/analytics/page",{
|
|
|
|
/***/ "(app-pages-browser)/./app/dashboard/analytics/page.tsx":
|
|
/*!******************************************!*\
|
|
!*** ./app/dashboard/analytics/page.tsx ***!
|
|
\******************************************/
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Analytics; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=Cell,Pie,PieChart,ResponsiveContainer,Tooltip!=!recharts */ \"(app-pages-browser)/./node_modules/recharts/es6/component/ResponsiveContainer.js\");\n/* harmony import */ var _barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=Cell,Pie,PieChart,ResponsiveContainer,Tooltip!=!recharts */ \"(app-pages-browser)/./node_modules/recharts/es6/chart/PieChart.js\");\n/* harmony import */ var _barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! __barrel_optimize__?names=Cell,Pie,PieChart,ResponsiveContainer,Tooltip!=!recharts */ \"(app-pages-browser)/./node_modules/recharts/es6/polar/Pie.js\");\n/* harmony import */ var _barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! __barrel_optimize__?names=Cell,Pie,PieChart,ResponsiveContainer,Tooltip!=!recharts */ \"(app-pages-browser)/./node_modules/recharts/es6/component/Cell.js\");\n/* harmony import */ var _barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! __barrel_optimize__?names=Cell,Pie,PieChart,ResponsiveContainer,Tooltip!=!recharts */ \"(app-pages-browser)/./node_modules/recharts/es6/component/Tooltip.js\");\n/* harmony import */ var _barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Download,Globe,ScanLine,ShieldCheck,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/download.js\");\n/* harmony import */ var _barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Download,Globe,ScanLine,ShieldCheck,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/scan-line.js\");\n/* harmony import */ var _barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=Download,Globe,ScanLine,ShieldCheck,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/users.js\");\n/* harmony import */ var _barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=Download,Globe,ScanLine,ShieldCheck,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/shield-check.js\");\n/* harmony import */ var _barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=Download,Globe,ScanLine,ShieldCheck,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/globe.js\");\n/* harmony import */ var _components_ScanTrendChart__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ScanTrendChart */ \"(app-pages-browser)/./components/ScanTrendChart.tsx\");\n/* harmony import */ var _lib_api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/api */ \"(app-pages-browser)/./lib/api.ts\");\n/* harmony import */ var _components_GeographicOverview__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/GeographicOverview */ \"(app-pages-browser)/./components/GeographicOverview.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\nconst PRESETS = [\n {\n label: \"7d\",\n days: 7\n },\n {\n label: \"30d\",\n days: 30\n },\n {\n label: \"90d\",\n days: 90\n }\n];\nconst DONUT = [\n \"#2563eb\",\n \"#10b981\",\n \"#f59e0b\",\n \"#94a3b8\"\n];\nconst DOW = [\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\",\n \"Sun\"\n];\nfunction Analytics() {\n _s();\n const [days, setDays] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(30);\n const [s, setS] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [trend, setTrend] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [topP, setTopP] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [cities, setCities] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [devices, setDevices] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [heat, setHeat] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [recent, setRecent] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [geo, setGeo] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const totalDevices = devices.reduce((sum, d)=>sum + d.scans, 0);\n const [brands, setBrands] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [brandId, setBrandId] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const DONUT = [\n \"#22c55e\",\n \"#2563eb\",\n \"#7c3aed\",\n \"#f59e0b\"\n ];\n const [fromDate, setFromDate] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [toDate, setToDate] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [showAllProducts, setShowAllProducts] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n (0,_lib_api__WEBPACK_IMPORTED_MODULE_3__.api)(\"/analytics/brands\").then(setBrands);\n }, []);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const params = new URLSearchParams();\n if (fromDate && toDate) {\n params.append(\"from_date\", fromDate);\n params.append(\"to_date\", toDate);\n } else if (days > 0) {\n params.append(\"days\", String(days));\n }\n if (brandId) {\n params.append(\"brand_id\", brandId);\n }\n const query1 = params.toString();\n (0,_lib_api__WEBPACK_IMPORTED_MODULE_3__.api)(\"/analytics/summary?\".concat(query1)).then(setS);\n (0,_lib_api__WEBPACK_IMPORTED_MODULE_3__.api)(\"/analytics/trend?\".concat(query1)).then(setTrend);\n (0,_lib_api__WEBPACK_IMPORTED_MODULE_3__.api)(\"/analytics/top-products?\".concat(query1)).then(setTopP);\n (0,_lib_api__WEBPACK_IMPORTED_MODULE_3__.api)(\"/analytics/top-cities?\".concat(query1)).then(setCities);\n (0,_lib_api__WEBPACK_IMPORTED_MODULE_3__.api)(\"/analytics/devices?\".concat(query1)).then(setDevices);\n (0,_lib_api__WEBPACK_IMPORTED_MODULE_3__.api)(\"/analytics/geography?\".concat(query1)).then(setGeo);\n (0,_lib_api__WEBPACK_IMPORTED_MODULE_3__.api)(\"/analytics/time-distribution?\".concat(query1)).then(setHeat);\n (0,_lib_api__WEBPACK_IMPORTED_MODULE_3__.api)(\"/analytics/recent-scans?\".concat(query1)).then(setRecent);\n }, [\n days,\n fromDate,\n toDate,\n brandId\n ]);\n const maxP = Math.max(1, ...topP.map((p)=>p.scans));\n const maxHeat = Math.max(1, ...heat.map((h)=>h.count));\n var _s_total_scans, _s_unique_consumers, _s_today_scans, _s_active_products, _s_avg_trust_score, _s_countries;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xl font-bold\",\n children: \"Analytics & Insights\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 82,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex rounded-lg border border-slate-200 overflow-hidden\",\n children: PRESETS.map((p)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setDays(p.days);\n setFromDate(\"\");\n setToDate(\"\");\n },\n className: \"px-3 py-1.5 text-sm font-medium \".concat(days === p.days ? \"bg-brand-600 text-white\" : \"bg-white text-slate-600\"),\n children: p.label\n }, p.days, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 86,\n columnNumber: 3\n }, this))\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 84,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"date\",\n value: fromDate,\n onChange: (e)=>setFromDate(e.target.value),\n className: \"border rounded-lg px-3 py-2 text-sm\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 105,\n columnNumber: 3\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"to\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 112,\n columnNumber: 3\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"date\",\n value: toDate,\n onChange: (e)=>setToDate(e.target.value),\n className: \"border rounded-lg px-3 py-2 text-sm\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 114,\n columnNumber: 3\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 103,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n value: brandId,\n onChange: (e)=>setBrandId(e.target.value),\n className: \"border rounded-lg px-3 py-2 text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"\",\n children: \"All Brands\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 127,\n columnNumber: 5\n }, this),\n brands.map((b)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: b.id,\n children: b.name\n }, b.id, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 130,\n columnNumber: 9\n }, this))\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 122,\n columnNumber: 1\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"\".concat(_lib_api__WEBPACK_IMPORTED_MODULE_3__.apiBase, \"/analytics/export?\").concat(query),\n className: \"flex items-center gap-2 border border-slate-200 px-3 py-1.5 rounded-lg text-sm font-medium\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 137,\n columnNumber: 13\n }, this),\n \" CSV\"\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 135,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 83,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 81,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-6 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Kpi, {\n label: \"Total Scans\",\n value: (_s_total_scans = s === null || s === void 0 ? void 0 : s.total_scans) !== null && _s_total_scans !== void 0 ? _s_total_scans : 0,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 144,\n columnNumber: 68\n }, void 0),\n tint: \"bg-blue-50 text-blue-600\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 144,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Kpi, {\n label: \"Unique Consumers\",\n value: (_s_unique_consumers = s === null || s === void 0 ? void 0 : s.unique_consumers) !== null && _s_unique_consumers !== void 0 ? _s_unique_consumers : 0,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 145,\n columnNumber: 78\n }, void 0),\n tint: \"bg-violet-50 text-violet-600\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 145,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Kpi, {\n label: \"Today\",\n value: (_s_today_scans = s === null || s === void 0 ? void 0 : s.today_scans) !== null && _s_today_scans !== void 0 ? _s_today_scans : 0,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 146,\n columnNumber: 62\n }, void 0),\n tint: \"bg-orange-50 text-orange-500\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 146,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Kpi, {\n label: \"Active Products\",\n value: (_s_active_products = s === null || s === void 0 ? void 0 : s.active_products) !== null && _s_active_products !== void 0 ? _s_active_products : 0,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 147,\n columnNumber: 76\n }, void 0),\n tint: \"bg-emerald-50 text-emerald-600\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 147,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Kpi, {\n label: \"Avg Trust\",\n value: \"\".concat((_s_avg_trust_score = s === null || s === void 0 ? void 0 : s.avg_trust_score) !== null && _s_avg_trust_score !== void 0 ? _s_avg_trust_score : 0, \"%\"),\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 148,\n columnNumber: 76\n }, void 0),\n tint: \"bg-blue-50 text-blue-600\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 148,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Kpi, {\n label: \"Countries\",\n value: (_s_countries = s === null || s === void 0 ? void 0 : s.countries) !== null && _s_countries !== void 0 ? _s_countries : 0,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 149,\n columnNumber: 64\n }, void 0),\n tint: \"bg-amber-50 text-amber-500\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 149,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 143,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid lg:grid-cols-3 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card p-5 lg:col-span-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-bold mb-2\",\n children: \"Scan Trend\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 154,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ScanTrendChart__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n data: trend\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 155,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 153,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card p-5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-bold mb-5\",\n children: \"Device Types\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 158,\n columnNumber: 3\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-2 gap-6 items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_10__.ResponsiveContainer, {\n width: 200,\n height: 200,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_11__.PieChart, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_12__.Pie, {\n data: devices,\n dataKey: \"scans\",\n nameKey: \"device\",\n innerRadius: 55,\n outerRadius: 80,\n stroke: \"#fff\",\n strokeWidth: 2,\n children: devices.map((_, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_13__.Cell, {\n fill: DONUT[i % DONUT.length]\n }, i, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 175,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 165,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_14__.Tooltip, {\n formatter: (value)=>[\n \"\".concat(value, \" scans\"),\n \"Scans\"\n ]\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 182,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 164,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 163,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 162,\n columnNumber: 5\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: devices.map((d, i)=>{\n const percent = totalDevices === 0 ? 0 : (d.scans / totalDevices * 100).toFixed(1);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"h-2 w-1 rounded-full\",\n style: {\n backgroundColor: DONUT[i % DONUT.length]\n }\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 206,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-medium text-slate-700\",\n children: d.device\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 213,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 205,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm font-semibold text-slate-600\",\n children: [\n percent,\n \"% (\",\n d.scans.toLocaleString(),\n \")\"\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 218,\n columnNumber: 13\n }, this)\n ]\n }, d.device, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 201,\n columnNumber: 11\n }, this);\n })\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 193,\n columnNumber: 5\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 160,\n columnNumber: 3\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 157,\n columnNumber: 8\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card p-5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-bold mb-4\",\n children: \"Scan Time Distribution\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 228,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"overflow-x-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"inline-grid gap-0.5\",\n style: {\n gridTemplateColumns: \"28px repeat(24, 10px)\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {}, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 231,\n columnNumber: 13\n }, this),\n Array.from({\n length: 24\n }).map((_, h)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-[8px] text-slate-400 text-center\",\n children: h % 3 === 0 ? h : \"\"\n }, h, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 233,\n columnNumber: 15\n }, this)),\n DOW.map((day, d)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-[10px] text-slate-500 pr-1 flex items-center\",\n children: day\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 237,\n columnNumber: 17\n }, this),\n Array.from({\n length: 24\n }).map((_, h)=>{\n const cell = heat.find((x)=>x.dow === d && x.hour === h);\n var _cell_count;\n const v = (_cell_count = cell === null || cell === void 0 ? void 0 : cell.count) !== null && _cell_count !== void 0 ? _cell_count : 0;\n const op = v === 0 ? 0.06 : 0.2 + v / maxHeat * 0.8;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n title: \"\".concat(day, \" \").concat(h, \":00 — \").concat(v),\n className: \"h-[12px] w-[12px] rounded-[2px]\",\n style: {\n background: \"rgba(37,99,235,\".concat(op, \")\")\n }\n }, \"\".concat(d, \"-\").concat(h), false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 242,\n columnNumber: 26\n }, this);\n })\n ]\n }, \"row-\".concat(d), true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 236,\n columnNumber: 15\n }, this))\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 230,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 229,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 227,\n columnNumber: 10\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 152,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid lg:grid-cols-3 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card p-5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-bold\",\n children: \"Top Products\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 255,\n columnNumber: 5\n }, this),\n topP.length > 5 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowAllProducts(!showAllProducts),\n className: \"text-sm font-medium text-blue-600 hover:underline\",\n children: showAllProducts ? \"Show Less\" : \"View All\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 258,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 254,\n columnNumber: 3\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: [\n (showAllProducts ? topP : topP.slice(0, 5)).map((p)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-36 truncate text-sm text-slate-600\",\n children: p.name\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 270,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 h-3 rounded-full bg-slate-100 overflow-hidden\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full rounded-full bg-blue-500\",\n style: {\n width: \"\".concat(p.scans / maxP * 100, \"%\")\n }\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 275,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 274,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-12 text-right text-sm font-semibold\",\n children: p.scans\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 283,\n columnNumber: 9\n }, this)\n ]\n }, p.name, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 269,\n columnNumber: 7\n }, this)),\n !showAllProducts && topP.length > 5 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowAllProducts(true),\n className: \"text-sm font-medium text-blue-600 hover:underline\",\n children: [\n \"+\",\n topP.length - 5,\n \" more products\"\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 290,\n columnNumber: 7\n }, this),\n topP.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-slate-400\",\n children: \"No data.\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 299,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 267,\n columnNumber: 3\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 253,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card p-5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-bold mb-4\",\n children: \"Top Cities\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 304,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ol\", {\n className: \"space-y-2 text-sm\",\n children: [\n cities.map((c, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n className: \"flex justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-slate-600\",\n children: [\n i + 1,\n \". \",\n c.city\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 308,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: c.scans\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 309,\n columnNumber: 17\n }, this)\n ]\n }, c.city, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 307,\n columnNumber: 15\n }, this)),\n cities.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n className: \"text-slate-400\",\n children: \"No data.\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 312,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 305,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 303,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card p-5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-bold mb-4\",\n children: \"Geographic Overview\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 316,\n columnNumber: 5\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_GeographicOverview__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n data: geo\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 320,\n columnNumber: 5\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 315,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 252,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card overflow-x-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-bold p-5 pb-3\",\n children: \"Recent Scans\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 329,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"table\", {\n className: \"w-full text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"thead\", {\n className: \"bg-slate-50 text-slate-500 text-left\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-4 py-3 font-medium\",\n children: \"Time\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 333,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-4 py-3 font-medium\",\n children: \"Code\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 334,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-4 py-3 font-medium\",\n children: \"City\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 335,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-4 py-3 font-medium\",\n children: \"Country\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 336,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-4 py-3 font-medium\",\n children: \"Device\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 337,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 332,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 331,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tbody\", {\n className: \"divide-y divide-slate-100\",\n children: [\n recent.map((r, i)=>/*#__PURE__*/ {\n var _r_city, _r_country, _r_device;\n return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-4 py-3 text-slate-500\",\n children: new Date(r.at).toLocaleString()\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 343,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-4 py-3 font-mono text-slate-600\",\n children: r.code\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 344,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-4 py-3\",\n children: (_r_city = r.city) !== null && _r_city !== void 0 ? _r_city : \"—\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 345,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-4 py-3\",\n children: (_r_country = r.country) !== null && _r_country !== void 0 ? _r_country : \"—\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 346,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-4 py-3\",\n children: (_r_device = r.device) !== null && _r_device !== void 0 ? _r_device : \"—\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 347,\n columnNumber: 17\n }, this)\n ]\n }, i, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 342,\n columnNumber: 15\n }, this);\n }),\n recent.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n colSpan: 5,\n className: \"px-4 py-10 text-center text-slate-400\",\n children: \"No scans yet.\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 350,\n columnNumber: 41\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 350,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 340,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 330,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 328,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 80,\n columnNumber: 5\n }, this);\n}\n_s(Analytics, \"350gipDtNphWJkxoWaCUeT14GhA=\");\n_c = Analytics;\nfunction Kpi(param) {\n let { label, value, icon, tint } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-11 w-11 rounded-xl grid place-items-center shrink-0 \".concat(tint),\n children: icon\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 362,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"min-w-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xl font-extrabold text-slate-900\",\n children: value\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 364,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-slate-500\",\n children: label\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 365,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 363,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 361,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 360,\n columnNumber: 5\n }, this);\n}\n_c1 = Kpi;\nvar _c, _c1;\n$RefreshReg$(_c, \"Analytics\");\n$RefreshReg$(_c1, \"Kpi\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9kYXNoYm9hcmQvYW5hbHl0aWNzL3BhZ2UudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDc0Q7QUFHcEM7QUFDMkQ7QUFDcEI7QUFDaEI7QUFDd0I7QUFFakUsTUFBTWlCLFVBQVU7SUFDZDtRQUFFQyxPQUFPO1FBQU1DLE1BQU07SUFBRTtJQUN2QjtRQUFFRCxPQUFPO1FBQU9DLE1BQU07SUFBRztJQUN6QjtRQUFFRCxPQUFPO1FBQU9DLE1BQU07SUFBRztDQUMxQjtBQUNELE1BQU1DLFFBQVE7SUFBQztJQUFXO0lBQVc7SUFBVztDQUFVO0FBQzFELE1BQU1DLE1BQU07SUFBQztJQUFPO0lBQU87SUFBTztJQUFPO0lBQU87SUFBTztDQUFNO0FBRzlDLFNBQVNDOztJQUN0QixNQUFNLENBQUNILE1BQU1JLFFBQVEsR0FBR3JCLCtDQUFRQSxDQUFDO0lBQ2pDLE1BQU0sQ0FBQ3NCLEdBQUdDLEtBQUssR0FBR3ZCLCtDQUFRQSxDQUFNO0lBQ2hDLE1BQU0sQ0FBQ3dCLE9BQU9DLFNBQVMsR0FBR3pCLCtDQUFRQSxDQUFRLEVBQUU7SUFDNUMsTUFBTSxDQUFDMEIsTUFBTUMsUUFBUSxHQUFHM0IsK0NBQVFBLENBQVEsRUFBRTtJQUMxQyxNQUFNLENBQUM0QixRQUFRQyxVQUFVLEdBQUc3QiwrQ0FBUUEsQ0FBUSxFQUFFO0lBQzlDLE1BQU0sQ0FBQzhCLFNBQVNDLFdBQVcsR0FBRy9CLCtDQUFRQSxDQUFRLEVBQUU7SUFDaEQsTUFBTSxDQUFDZ0MsTUFBTUMsUUFBUSxHQUFHakMsK0NBQVFBLENBQVEsRUFBRTtJQUMxQyxNQUFNLENBQUNrQyxRQUFRQyxVQUFVLEdBQUduQywrQ0FBUUEsQ0FBUSxFQUFFO0lBQzlDLE1BQU0sQ0FBQ29DLEtBQUtDLE9BQU8sR0FBR3JDLCtDQUFRQSxDQUFRLEVBQUU7SUFDeEMsTUFBTXNDLGVBQWVSLFFBQVFTLE1BQU0sQ0FBQyxDQUFDQyxLQUFLQyxJQUFNRCxNQUFNQyxFQUFFQyxLQUFLLEVBQUU7SUFDL0QsTUFBTSxDQUFDQyxRQUFRQyxVQUFVLEdBQUc1QywrQ0FBUUEsQ0FBQyxFQUFFO0lBQ3pDLE1BQU0sQ0FBQzZDLFNBQVNDLFdBQVcsR0FBRzlDLCtDQUFRQSxDQUFDO0lBRXZDLE1BQU1rQixRQUFRO1FBQ1o7UUFDQTtRQUNBO1FBQ0E7S0FDRDtJQUNELE1BQU0sQ0FBQzZCLFVBQVVDLFlBQVksR0FBR2hELCtDQUFRQSxDQUFDO0lBQ3pDLE1BQU0sQ0FBQ2lELFFBQVFDLFVBQVUsR0FBR2xELCtDQUFRQSxDQUFDO0lBSXJDLE1BQU0sQ0FBQ21ELGlCQUFpQkMsbUJBQW1CLEdBQUdwRCwrQ0FBUUEsQ0FBQztJQUN2REQsZ0RBQVNBLENBQUM7UUFDTmEsNkNBQUdBLENBQUMscUJBQXFCeUMsSUFBSSxDQUFDVDtJQUNsQyxHQUFHLEVBQUU7SUFDSjdDLGdEQUFTQSxDQUFDO1FBQ1QsTUFBTXVELFNBQVMsSUFBSUM7UUFFbkIsSUFBSVIsWUFBWUUsUUFBUTtZQUN0QkssT0FBT0UsTUFBTSxDQUFDLGFBQWFUO1lBQzNCTyxPQUFPRSxNQUFNLENBQUMsV0FBV1A7UUFDM0IsT0FBTyxJQUFJaEMsT0FBTyxHQUFHO1lBQ25CcUMsT0FBT0UsTUFBTSxDQUFDLFFBQVFDLE9BQU94QztRQUMvQjtRQUVBLElBQUk0QixTQUFTO1lBQ1hTLE9BQU9FLE1BQU0sQ0FBQyxZQUFZWDtRQUM1QjtRQUVBLE1BQU1hLFNBQVFKLE9BQU9LLFFBQVE7UUFFN0IvQyw2Q0FBR0EsQ0FBQyxzQkFBNEIsT0FBTjhDLFNBQVNMLElBQUksQ0FBQzlCO1FBQ3hDWCw2Q0FBR0EsQ0FBQyxvQkFBMEIsT0FBTjhDLFNBQVNMLElBQUksQ0FBQzVCO1FBQ3RDYiw2Q0FBR0EsQ0FBQywyQkFBaUMsT0FBTjhDLFNBQVNMLElBQUksQ0FBQzFCO1FBQzdDZiw2Q0FBR0EsQ0FBQyx5QkFBK0IsT0FBTjhDLFNBQVNMLElBQUksQ0FBQ3hCO1FBQzNDakIsNkNBQUdBLENBQUMsc0JBQTRCLE9BQU44QyxTQUFTTCxJQUFJLENBQUN0QjtRQUN4Q25CLDZDQUFHQSxDQUFDLHdCQUE4QixPQUFOOEMsU0FBU0wsSUFBSSxDQUFDaEI7UUFDMUN6Qiw2Q0FBR0EsQ0FBQyxnQ0FBc0MsT0FBTjhDLFNBQVNMLElBQUksQ0FBQ3BCO1FBQ2xEckIsNkNBQUdBLENBQUMsMkJBQWlDLE9BQU44QyxTQUFTTCxJQUFJLENBQUNsQjtJQUUvQyxHQUFHO1FBQUNsQjtRQUFNOEI7UUFBVUU7UUFBUUo7S0FBUTtJQUVsQyxNQUFNZSxPQUFPQyxLQUFLQyxHQUFHLENBQUMsTUFBTXBDLEtBQUtxQyxHQUFHLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRXRCLEtBQUs7SUFDbkQsTUFBTXVCLFVBQVVKLEtBQUtDLEdBQUcsQ0FBQyxNQUFNOUIsS0FBSytCLEdBQUcsQ0FBQyxDQUFDRyxJQUFNQSxFQUFFQyxLQUFLO1FBbUVoQjdDLGdCQUNLQSxxQkFDWEEsZ0JBQ1VBLG9CQUNIQSxvQkFDSEE7SUF0RXBDLHFCQUNFLDhEQUFDOEM7UUFBSUMsV0FBVTs7MEJBQ2IsOERBQUNEO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQ0M7d0JBQUdELFdBQVU7a0NBQW9COzs7Ozs7a0NBQ2xDLDhEQUFDRDt3QkFBSUMsV0FBVTs7MENBQ2IsOERBQUNEO2dDQUFJQyxXQUFVOzBDQUNadEQsUUFBUWdELEdBQUcsQ0FBQyxDQUFDQyxrQkFDeEIsOERBQUNPO3dDQUVDQyxTQUFTOzRDQUNQbkQsUUFBUTJDLEVBQUUvQyxJQUFJOzRDQUNkK0IsWUFBWTs0Q0FDWkUsVUFBVTt3Q0FDWjt3Q0FDQW1CLFdBQVcsbUNBSVYsT0FIQ3BELFNBQVMrQyxFQUFFL0MsSUFBSSxHQUNYLDRCQUNBO2tEQUdMK0MsRUFBRWhELEtBQUs7dUNBWkhnRCxFQUFFL0MsSUFBSTs7Ozs7Ozs7OzswQ0FnQkwsOERBQUNtRDtnQ0FBSUMsV0FBVTs7a0RBRXZCLDhEQUFDSTt3Q0FDQ0MsTUFBSzt3Q0FDTEMsT0FBTzVCO3dDQUNQNkIsVUFBVSxDQUFDQyxJQUFNN0IsWUFBWTZCLEVBQUVDLE1BQU0sQ0FBQ0gsS0FBSzt3Q0FDM0NOLFdBQVU7Ozs7OztrREFHWiw4REFBQ1U7a0RBQUs7Ozs7OztrREFFTiw4REFBQ047d0NBQ0NDLE1BQUs7d0NBQ0xDLE9BQU8xQjt3Q0FDUDJCLFVBQVUsQ0FBQ0MsSUFBTTNCLFVBQVUyQixFQUFFQyxNQUFNLENBQUNILEtBQUs7d0NBQ3pDTixXQUFVOzs7Ozs7Ozs7Ozs7MENBSWQsOERBQUNXO2dDQUNHTCxPQUFPOUI7Z0NBQ1ArQixVQUFVLENBQUNDLElBQU0vQixXQUFXK0IsRUFBRUMsTUFBTSxDQUFDSCxLQUFLO2dDQUMxQ04sV0FBVTs7a0RBRVYsOERBQUNZO3dDQUFPTixPQUFNO2tEQUFHOzs7Ozs7b0NBRWhCaEMsT0FBT29CLEdBQUcsQ0FBQyxDQUFDbUIsa0JBQ1QsOERBQUNEOzRDQUFrQk4sT0FBT08sRUFBRUMsRUFBRTtzREFDekJELEVBQUVFLElBQUk7MkNBREVGLEVBQUVDLEVBQUU7Ozs7Ozs7Ozs7OzBDQUtmLDhEQUFDRTtnQ0FBRUMsTUFBTSxHQUErQjVCLE9BQTVCN0MsNkNBQU9BLEVBQUMsc0JBQTBCLE9BQU42QztnQ0FDdENXLFdBQVU7O2tEQUNWLDhEQUFDL0QscUhBQVFBO3dDQUFDK0QsV0FBVTs7Ozs7O29DQUFZOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQU10Qyw4REFBQ0Q7Z0JBQUlDLFdBQVU7O2tDQUNiLDhEQUFDa0I7d0JBQUl2RSxPQUFNO3dCQUFjMkQsT0FBT3JELENBQUFBLGlCQUFBQSxjQUFBQSx3QkFBQUEsRUFBR2tFLFdBQVcsY0FBZGxFLDRCQUFBQSxpQkFBa0I7d0JBQUdtRSxvQkFBTSw4REFBQ2xGLHFIQUFRQTs0QkFBQzhELFdBQVU7Ozs7Ozt3QkFBY3FCLE1BQUs7Ozs7OztrQ0FDbEcsOERBQUNIO3dCQUFJdkUsT0FBTTt3QkFBbUIyRCxPQUFPckQsQ0FBQUEsc0JBQUFBLGNBQUFBLHdCQUFBQSxFQUFHcUUsZ0JBQWdCLGNBQW5CckUsaUNBQUFBLHNCQUF1Qjt3QkFBR21FLG9CQUFNLDhEQUFDakYscUhBQUtBOzRCQUFDNkQsV0FBVTs7Ozs7O3dCQUFjcUIsTUFBSzs7Ozs7O2tDQUN6Ryw4REFBQ0g7d0JBQUl2RSxPQUFNO3dCQUFRMkQsT0FBT3JELENBQUFBLGlCQUFBQSxjQUFBQSx3QkFBQUEsRUFBR3NFLFdBQVcsY0FBZHRFLDRCQUFBQSxpQkFBa0I7d0JBQUdtRSxvQkFBTSw4REFBQ2xGLHFIQUFRQTs0QkFBQzhELFdBQVU7Ozs7Ozt3QkFBY3FCLE1BQUs7Ozs7OztrQ0FDNUYsOERBQUNIO3dCQUFJdkUsT0FBTTt3QkFBa0IyRCxPQUFPckQsQ0FBQUEscUJBQUFBLGNBQUFBLHdCQUFBQSxFQUFHdUUsZUFBZSxjQUFsQnZFLGdDQUFBQSxxQkFBc0I7d0JBQUdtRSxvQkFBTSw4REFBQy9FLHFIQUFXQTs0QkFBQzJELFdBQVU7Ozs7Ozt3QkFBY3FCLE1BQUs7Ozs7OztrQ0FDN0csOERBQUNIO3dCQUFJdkUsT0FBTTt3QkFBWTJELE9BQU8sR0FBMkIsT0FBeEJyRCxDQUFBQSxxQkFBQUEsY0FBQUEsd0JBQUFBLEVBQUd3RSxlQUFlLGNBQWxCeEUsZ0NBQUFBLHFCQUFzQixHQUFFO3dCQUFJbUUsb0JBQU0sOERBQUMvRSxxSEFBV0E7NEJBQUMyRCxXQUFVOzs7Ozs7d0JBQWNxQixNQUFLOzs7Ozs7a0NBQzdHLDhEQUFDSDt3QkFBSXZFLE9BQU07d0JBQVkyRCxPQUFPckQsQ0FBQUEsZUFBQUEsY0FBQUEsd0JBQUFBLEVBQUd5RSxTQUFTLGNBQVp6RSwwQkFBQUEsZUFBZ0I7d0JBQUdtRSxvQkFBTSw4REFBQ2hGLHFIQUFLQTs0QkFBQzRELFdBQVU7Ozs7Ozt3QkFBY3FCLE1BQUs7Ozs7Ozs7Ozs7OzswQkFHN0YsOERBQUN0QjtnQkFBSUMsV0FBVTs7a0NBQ2IsOERBQUNEO3dCQUFJQyxXQUFVOzswQ0FDYiw4REFBQzJCO2dDQUFHM0IsV0FBVTswQ0FBaUI7Ozs7OzswQ0FDL0IsOERBQUMxRCxrRUFBY0E7Z0NBQUNzRixNQUFNekU7Ozs7Ozs7Ozs7OztrQ0FFekIsOERBQUM0Qzt3QkFBSUMsV0FBVTs7MENBQ3BCLDhEQUFDMkI7Z0NBQUczQixXQUFVOzBDQUFpQjs7Ozs7OzBDQUUvQiw4REFBQ0Q7Z0NBQUlDLFdBQVU7O2tEQUViLDhEQUFDRDt3Q0FBSUMsV0FBVTtrREFDYiw0RUFBQ2pFLCtIQUFtQkE7NENBQUM4RixPQUFPOzRDQUFLQyxRQUFRO3NEQUN2Qyw0RUFBQ2xHLG9IQUFRQTs7a0VBQ1AsOERBQUNDLCtHQUFHQTt3REFDRitGLE1BQU1uRTt3REFDTnNFLFNBQVE7d0RBQ1JDLFNBQVE7d0RBQ1JDLGFBQWE7d0RBQ2JDLGFBQWE7d0RBQ2JDLFFBQU87d0RBQ1BDLGFBQWE7a0VBRVozRSxRQUFRaUMsR0FBRyxDQUFDLENBQUMyQyxHQUFHQyxrQkFDZiw4REFBQ3hHLGdIQUFJQTtnRUFFSHlHLE1BQU0xRixLQUFLLENBQUN5RixJQUFJekYsTUFBTTJGLE1BQU0sQ0FBQzsrREFEeEJGOzs7Ozs7Ozs7O2tFQU1YLDhEQUFDdEcsbUhBQU9BO3dEQUNOeUcsV0FBVyxDQUFDbkMsUUFBZTtnRUFDeEIsR0FBUSxPQUFOQSxPQUFNO2dFQUNUOzZEQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tEQU9ULDhEQUFDUDt3Q0FBSUMsV0FBVTtrREFDWnZDLFFBQVFpQyxHQUFHLENBQUMsQ0FBQ3RCLEdBQUdrRTs0Q0FDZixNQUFNSSxVQUNKekUsaUJBQWlCLElBQ2IsSUFDQSxDQUFDLEVBQUdJLEtBQUssR0FBR0osZUFBZ0IsR0FBRSxFQUFHMEUsT0FBTyxDQUFDOzRDQUUvQyxxQkFDRSw4REFBQzVDO2dEQUVDQyxXQUFVOztrRUFFViw4REFBQ0Q7d0RBQUlDLFdBQVU7OzBFQUNiLDhEQUFDVTtnRUFDQ1YsV0FBVTtnRUFDVjRDLE9BQU87b0VBQ0xDLGlCQUFpQmhHLEtBQUssQ0FBQ3lGLElBQUl6RixNQUFNMkYsTUFBTSxDQUFDO2dFQUMxQzs7Ozs7OzBFQUdGLDhEQUFDOUI7Z0VBQUtWLFdBQVU7MEVBQ2I1QixFQUFFMEUsTUFBTTs7Ozs7Ozs7Ozs7O2tFQUliLDhEQUFDcEM7d0RBQUtWLFdBQVU7OzREQUNiMEM7NERBQVE7NERBQUl0RSxFQUFFQyxLQUFLLENBQUMwRSxjQUFjOzREQUFHOzs7Ozs7OzsrQ0FqQm5DM0UsRUFBRTBFLE1BQU07Ozs7O3dDQXFCbkI7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQ0FJRyw4REFBQy9DO3dCQUFJQyxXQUFVOzswQ0FDaEIsOERBQUMyQjtnQ0FBRzNCLFdBQVU7MENBQWlCOzs7Ozs7MENBQy9CLDhEQUFDRDtnQ0FBSUMsV0FBVTswQ0FDYiw0RUFBQ0Q7b0NBQUlDLFdBQVU7b0NBQXNCNEMsT0FBTzt3Q0FBRUkscUJBQXFCO29DQUF3Qjs7c0RBQ3pGLDhEQUFDakQ7Ozs7O3dDQUNBa0QsTUFBTUMsSUFBSSxDQUFDOzRDQUFFVixRQUFRO3dDQUFHLEdBQUc5QyxHQUFHLENBQUMsQ0FBQzJDLEdBQUd4QyxrQkFDbEMsOERBQUNFO2dEQUFZQyxXQUFVOzBEQUF5Q0gsSUFBSSxNQUFNLElBQUlBLElBQUk7K0NBQXhFQTs7Ozs7d0NBRVgvQyxJQUFJNEMsR0FBRyxDQUFDLENBQUN5RCxLQUFLL0Usa0JBQ2IsOERBQUMzQywyQ0FBUUE7O2tFQUNQLDhEQUFDc0U7d0RBQUlDLFdBQVU7a0VBQXFEbUQ7Ozs7OztvREFDbkVGLE1BQU1DLElBQUksQ0FBQzt3REFBRVYsUUFBUTtvREFBRyxHQUFHOUMsR0FBRyxDQUFDLENBQUMyQyxHQUFHeEM7d0RBQ2xDLE1BQU11RCxPQUFPekYsS0FBSzBGLElBQUksQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxHQUFHLEtBQUtuRixLQUFLa0YsRUFBRUUsSUFBSSxLQUFLM0Q7NERBQzlDdUQ7d0RBQVYsTUFBTUssSUFBSUwsQ0FBQUEsY0FBQUEsaUJBQUFBLDJCQUFBQSxLQUFNdEQsS0FBSyxjQUFYc0QseUJBQUFBLGNBQWU7d0RBQ3pCLE1BQU1NLEtBQUtELE1BQU0sSUFBSSxPQUFPLE1BQU0sSUFBSzdELFVBQVc7d0RBQ2xELHFCQUFPLDhEQUFDRzs0REFBc0I0RCxPQUFPLEdBQVU5RCxPQUFQc0QsS0FBSSxLQUFhTSxPQUFWNUQsR0FBRSxVQUFVLE9BQUY0RDs0REFDdkR6RCxXQUFVOzREQUFrQzRDLE9BQU87Z0VBQUVnQixZQUFZLGtCQUFxQixPQUFIRixJQUFHOzREQUFHOzJEQUQxRSxHQUFRN0QsT0FBTHpCLEdBQUUsS0FBSyxPQUFGeUI7Ozs7O29EQUUzQjs7K0NBUmEsT0FBUyxPQUFGekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBZ0I5Qiw4REFBQzJCO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQ0Q7d0JBQUlDLFdBQVU7OzBDQUNyQiw4REFBQ0Q7Z0NBQUlDLFdBQVU7O2tEQUNiLDhEQUFDMkI7d0NBQUczQixXQUFVO2tEQUFZOzs7Ozs7b0NBRXpCM0MsS0FBS21GLE1BQU0sR0FBRyxtQkFDYiw4REFBQ3RDO3dDQUNDQyxTQUFTLElBQU1wQixtQkFBbUIsQ0FBQ0Q7d0NBQ25Da0IsV0FBVTtrREFFVGxCLGtCQUFrQixjQUFjOzs7Ozs7Ozs7Ozs7MENBS3ZDLDhEQUFDaUI7Z0NBQUlDLFdBQVU7O29DQUNYbEIsQ0FBQUEsa0JBQWtCekIsT0FBT0EsS0FBS3dHLEtBQUssQ0FBQyxHQUFHLEVBQUMsRUFBR25FLEdBQUcsQ0FBQyxDQUFDQyxrQkFDaEQsOERBQUNJOzRDQUFpQkMsV0FBVTs7OERBQzFCLDhEQUFDRDtvREFBSUMsV0FBVTs4REFDWkwsRUFBRW9CLElBQUk7Ozs7Ozs4REFHVCw4REFBQ2hCO29EQUFJQyxXQUFVOzhEQUNiLDRFQUFDRDt3REFDQ0MsV0FBVTt3REFDVjRDLE9BQU87NERBQ0xmLE9BQU8sR0FBMEIsT0FBdkIsRUFBR3hELEtBQUssR0FBR2tCLE9BQVEsS0FBSTt3REFDbkM7Ozs7Ozs7Ozs7OzhEQUlKLDhEQUFDUTtvREFBSUMsV0FBVTs4REFDWkwsRUFBRXRCLEtBQUs7Ozs7Ozs7MkNBZkZzQixFQUFFb0IsSUFBSTs7Ozs7b0NBb0JqQixDQUFDakMsbUJBQW1CekIsS0FBS21GLE1BQU0sR0FBRyxtQkFDakMsOERBQUN0Qzt3Q0FDQ0MsU0FBUyxJQUFNcEIsbUJBQW1CO3dDQUNsQ2lCLFdBQVU7OzRDQUNYOzRDQUNHM0MsS0FBS21GLE1BQU0sR0FBRzs0Q0FBRTs7Ozs7OztvQ0FJckJuRixLQUFLbUYsTUFBTSxLQUFLLG1CQUNmLDhEQUFDN0M7d0NBQUVLLFdBQVU7a0RBQXlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7a0NBSXBDLDhEQUFDRDt3QkFBSUMsV0FBVTs7MENBQ2IsOERBQUMyQjtnQ0FBRzNCLFdBQVU7MENBQWlCOzs7Ozs7MENBQy9CLDhEQUFDOEQ7Z0NBQUc5RCxXQUFVOztvQ0FDWHpDLE9BQU9tQyxHQUFHLENBQUMsQ0FBQ3FFLEdBQUd6QixrQkFDZCw4REFBQzBCOzRDQUFnQmhFLFdBQVU7OzhEQUN6Qiw4REFBQ1U7b0RBQUtWLFdBQVU7O3dEQUFrQnNDLElBQUk7d0RBQUU7d0RBQUd5QixFQUFFRSxJQUFJOzs7Ozs7OzhEQUNqRCw4REFBQ3ZEO29EQUFLVixXQUFVOzhEQUFpQitELEVBQUUxRixLQUFLOzs7Ozs7OzJDQUZqQzBGLEVBQUVFLElBQUk7Ozs7O29DQUtoQjFHLE9BQU9pRixNQUFNLEtBQUssbUJBQUssOERBQUN3Qjt3Q0FBR2hFLFdBQVU7a0RBQWlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7a0NBRzNELDhEQUFDRDt3QkFBSUMsV0FBVTs7MENBQ25CLDhEQUFDMkI7Z0NBQUczQixXQUFVOzBDQUFpQjs7Ozs7OzBDQUkvQiw4REFBQ3ZELHNFQUFrQkE7Z0NBQUNtRixNQUFNN0Q7Ozs7Ozs7Ozs7Ozs7Ozs7OzswQkFReEIsOERBQUNnQztnQkFBSUMsV0FBVTs7a0NBQ2IsOERBQUMyQjt3QkFBRzNCLFdBQVU7a0NBQXFCOzs7Ozs7a0NBQ25DLDhEQUFDa0U7d0JBQU1sRSxXQUFVOzswQ0FDZiw4REFBQ21FO2dDQUFNbkUsV0FBVTswQ0FDZiw0RUFBQ29FOztzREFDQyw4REFBQ0M7NENBQUdyRSxXQUFVO3NEQUF3Qjs7Ozs7O3NEQUN0Qyw4REFBQ3FFOzRDQUFHckUsV0FBVTtzREFBd0I7Ozs7OztzREFDdEMsOERBQUNxRTs0Q0FBR3JFLFdBQVU7c0RBQXdCOzs7Ozs7c0RBQ3RDLDhEQUFDcUU7NENBQUdyRSxXQUFVO3NEQUF3Qjs7Ozs7O3NEQUN0Qyw4REFBQ3FFOzRDQUFHckUsV0FBVTtzREFBd0I7Ozs7Ozs7Ozs7Ozs7Ozs7OzBDQUcxQyw4REFBQ3NFO2dDQUFNdEUsV0FBVTs7b0NBQ2RuQyxPQUFPNkIsR0FBRyxDQUFDLENBQUM2RSxHQUFHakM7NENBSWVpQyxTQUNBQSxZQUNBQTsrQ0FMN0IsOERBQUNIOzs4REFDQyw4REFBQ0k7b0RBQUd4RSxXQUFVOzhEQUE0QixJQUFJeUUsS0FBS0YsRUFBRUcsRUFBRSxFQUFFM0IsY0FBYzs7Ozs7OzhEQUN2RSw4REFBQ3lCO29EQUFHeEUsV0FBVTs4REFBc0N1RSxFQUFFSSxJQUFJOzs7Ozs7OERBQzFELDhEQUFDSDtvREFBR3hFLFdBQVU7OERBQWF1RSxDQUFBQSxVQUFBQSxFQUFFTixJQUFJLGNBQU5NLHFCQUFBQSxVQUFVOzs7Ozs7OERBQ3JDLDhEQUFDQztvREFBR3hFLFdBQVU7OERBQWF1RSxDQUFBQSxhQUFBQSxFQUFFSyxPQUFPLGNBQVRMLHdCQUFBQSxhQUFhOzs7Ozs7OERBQ3hDLDhEQUFDQztvREFBR3hFLFdBQVU7OERBQWF1RSxDQUFBQSxZQUFBQSxFQUFFekIsTUFBTSxjQUFSeUIsdUJBQUFBLFlBQVk7Ozs7Ozs7MkNBTGhDakM7Ozs7O29DQU1MO29DQUVMekUsT0FBTzJFLE1BQU0sS0FBSyxtQkFBSyw4REFBQzRCO2tEQUFHLDRFQUFDSTs0Q0FBR0ssU0FBUzs0Q0FBRzdFLFdBQVU7c0RBQXdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU0xRztHQWhWd0JqRDtLQUFBQTtBQWtWeEIsU0FBU21FLElBQUksS0FBaUM7UUFBakMsRUFBRXZFLEtBQUssRUFBRTJELEtBQUssRUFBRWMsSUFBSSxFQUFFQyxJQUFJLEVBQU8sR0FBakM7SUFDWCxxQkFDRSw4REFBQ3RCO1FBQUlDLFdBQVU7a0JBQ2IsNEVBQUNEO1lBQUlDLFdBQVU7OzhCQUNiLDhEQUFDRDtvQkFBSUMsV0FBVyx5REFBOEQsT0FBTHFCOzhCQUFTRDs7Ozs7OzhCQUNsRiw4REFBQ3JCO29CQUFJQyxXQUFVOztzQ0FDYiw4REFBQ0Q7NEJBQUlDLFdBQVU7c0NBQXlDTTs7Ozs7O3NDQUN4RCw4REFBQ1A7NEJBQUlDLFdBQVU7c0NBQTBCckQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBS25EO01BWlN1RSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9hcHAvZGFzaGJvYXJkL2FuYWx5dGljcy9wYWdlLnRzeD9iODI4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuaW1wb3J0IHsgRnJhZ21lbnQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7XG4gIFBpZUNoYXJ0LCBQaWUsIENlbGwsIFJlc3BvbnNpdmVDb250YWluZXIsIFRvb2x0aXAsXG59IGZyb20gXCJyZWNoYXJ0c1wiO1xuaW1wb3J0IHsgRG93bmxvYWQsIFNjYW5MaW5lLCBVc2VycywgR2xvYmUsIFNoaWVsZENoZWNrIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuaW1wb3J0IFNjYW5UcmVuZENoYXJ0IGZyb20gXCJAL2NvbXBvbmVudHMvU2NhblRyZW5kQ2hhcnRcIjtcbmltcG9ydCB7IGFwaSwgYXBpQmFzZSB9IGZyb20gXCJAL2xpYi9hcGlcIjtcbmltcG9ydCBHZW9ncmFwaGljT3ZlcnZpZXcgZnJvbSBcIkAvY29tcG9uZW50cy9HZW9ncmFwaGljT3ZlcnZpZXdcIjtcblxuY29uc3QgUFJFU0VUUyA9IFtcbiAgeyBsYWJlbDogXCI3ZFwiLCBkYXlzOiA3IH0sXG4gIHsgbGFiZWw6IFwiMzBkXCIsIGRheXM6IDMwIH0sXG4gIHsgbGFiZWw6IFwiOTBkXCIsIGRheXM6IDkwIH0sXG5dO1xuY29uc3QgRE9OVVQgPSBbXCIjMjU2M2ViXCIsIFwiIzEwYjk4MVwiLCBcIiNmNTllMGJcIiwgXCIjOTRhM2I4XCJdO1xuY29uc3QgRE9XID0gW1wiTW9uXCIsIFwiVHVlXCIsIFwiV2VkXCIsIFwiVGh1XCIsIFwiRnJpXCIsIFwiU2F0XCIsIFwiU3VuXCJdO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEFuYWx5dGljcygpIHtcbiAgY29uc3QgW2RheXMsIHNldERheXNdID0gdXNlU3RhdGUoMzApO1xuICBjb25zdCBbcywgc2V0U10gPSB1c2VTdGF0ZTxhbnk+KG51bGwpO1xuICBjb25zdCBbdHJlbmQsIHNldFRyZW5kXSA9IHVzZVN0YXRlPGFueVtdPihbXSk7XG4gIGNvbnN0IFt0b3BQLCBzZXRUb3BQXSA9IHVzZVN0YXRlPGFueVtdPihbXSk7XG4gIGNvbnN0IFtjaXRpZXMsIHNldENpdGllc10gPSB1c2VTdGF0ZTxhbnlbXT4oW10pO1xuICBjb25zdCBbZGV2aWNlcywgc2V0RGV2aWNlc10gPSB1c2VTdGF0ZTxhbnlbXT4oW10pO1xuICBjb25zdCBbaGVhdCwgc2V0SGVhdF0gPSB1c2VTdGF0ZTxhbnlbXT4oW10pO1xuICBjb25zdCBbcmVjZW50LCBzZXRSZWNlbnRdID0gdXNlU3RhdGU8YW55W10+KFtdKTtcbiAgY29uc3QgW2dlbywgc2V0R2VvXSA9IHVzZVN0YXRlPGFueVtdPihbXSk7XG4gIGNvbnN0IHRvdGFsRGV2aWNlcyA9IGRldmljZXMucmVkdWNlKChzdW0sIGQpID0+IHN1bSArIGQuc2NhbnMsIDApO1xuICBjb25zdCBbYnJhbmRzLCBzZXRCcmFuZHNdID0gdXNlU3RhdGUoW10pO1xuY29uc3QgW2JyYW5kSWQsIHNldEJyYW5kSWRdID0gdXNlU3RhdGUoXCJcIik7XG5cbmNvbnN0IERPTlVUID0gW1xuICBcIiMyMmM1NWVcIiwgLy8gQW5kcm9pZCAtIEdyZWVuXG4gIFwiIzI1NjNlYlwiLCAvLyBpT1MgLSBCbHVlXG4gIFwiIzdjM2FlZFwiLCAvLyBEZXNrdG9wIC0gUHVycGxlXG4gIFwiI2Y1OWUwYlwiLCAvLyBPdGhlciAtIE9yYW5nZVxuXTtcbmNvbnN0IFtmcm9tRGF0ZSwgc2V0RnJvbURhdGVdID0gdXNlU3RhdGUoXCJcIik7XG5jb25zdCBbdG9EYXRlLCBzZXRUb0RhdGVdID0gdXNlU3RhdGUoXCJcIik7XG5cblxuXG5jb25zdCBbc2hvd0FsbFByb2R1Y3RzLCBzZXRTaG93QWxsUHJvZHVjdHNdID0gdXNlU3RhdGUoZmFsc2UpO1xudXNlRWZmZWN0KCgpID0+IHtcbiAgICBhcGkoXCIvYW5hbHl0aWNzL2JyYW5kc1wiKS50aGVuKHNldEJyYW5kcyk7XG59LCBbXSk7XG4gdXNlRWZmZWN0KCgpID0+IHtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuXG4gIGlmIChmcm9tRGF0ZSAmJiB0b0RhdGUpIHtcbiAgICBwYXJhbXMuYXBwZW5kKFwiZnJvbV9kYXRlXCIsIGZyb21EYXRlKTtcbiAgICBwYXJhbXMuYXBwZW5kKFwidG9fZGF0ZVwiLCB0b0RhdGUpO1xuICB9IGVsc2UgaWYgKGRheXMgPiAwKSB7XG4gICAgcGFyYW1zLmFwcGVuZChcImRheXNcIiwgU3RyaW5nKGRheXMpKTtcbiAgfVxuXG4gIGlmIChicmFuZElkKSB7XG4gICAgcGFyYW1zLmFwcGVuZChcImJyYW5kX2lkXCIsIGJyYW5kSWQpO1xuICB9XG5cbiAgY29uc3QgcXVlcnkgPSBwYXJhbXMudG9TdHJpbmcoKTtcblxuICBhcGkoYC9hbmFseXRpY3Mvc3VtbWFyeT8ke3F1ZXJ5fWApLnRoZW4oc2V0Uyk7XG4gIGFwaShgL2FuYWx5dGljcy90cmVuZD8ke3F1ZXJ5fWApLnRoZW4oc2V0VHJlbmQpO1xuICBhcGkoYC9hbmFseXRpY3MvdG9wLXByb2R1Y3RzPyR7cXVlcnl9YCkudGhlbihzZXRUb3BQKTtcbiAgYXBpKGAvYW5hbHl0aWNzL3RvcC1jaXRpZXM/JHtxdWVyeX1gKS50aGVuKHNldENpdGllcyk7XG4gIGFwaShgL2FuYWx5dGljcy9kZXZpY2VzPyR7cXVlcnl9YCkudGhlbihzZXREZXZpY2VzKTtcbiAgYXBpKGAvYW5hbHl0aWNzL2dlb2dyYXBoeT8ke3F1ZXJ5fWApLnRoZW4oc2V0R2VvKTtcbiAgYXBpKGAvYW5hbHl0aWNzL3RpbWUtZGlzdHJpYnV0aW9uPyR7cXVlcnl9YCkudGhlbihzZXRIZWF0KTtcbiAgYXBpKGAvYW5hbHl0aWNzL3JlY2VudC1zY2Fucz8ke3F1ZXJ5fWApLnRoZW4oc2V0UmVjZW50KTtcblxufSwgW2RheXMsIGZyb21EYXRlLCB0b0RhdGUsIGJyYW5kSWRdKTtcblxuICBjb25zdCBtYXhQID0gTWF0aC5tYXgoMSwgLi4udG9wUC5tYXAoKHApID0+IHAuc2NhbnMpKTtcbiAgY29uc3QgbWF4SGVhdCA9IE1hdGgubWF4KDEsIC4uLmhlYXQubWFwKChoKSA9PiBoLmNvdW50KSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktNVwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQteGwgZm9udC1ib2xkXCI+QW5hbHl0aWNzICYgSW5zaWdodHM8L2gyPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1zbGF0ZS0yMDAgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgICB7UFJFU0VUUy5tYXAoKHApID0+IChcbiAgPGJ1dHRvblxuICAgIGtleT17cC5kYXlzfVxuICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgIHNldERheXMocC5kYXlzKTtcbiAgICAgIHNldEZyb21EYXRlKFwiXCIpO1xuICAgICAgc2V0VG9EYXRlKFwiXCIpO1xuICAgIH19XG4gICAgY2xhc3NOYW1lPXtgcHgtMyBweS0xLjUgdGV4dC1zbSBmb250LW1lZGl1bSAke1xuICAgICAgZGF5cyA9PT0gcC5kYXlzXG4gICAgICAgID8gXCJiZy1icmFuZC02MDAgdGV4dC13aGl0ZVwiXG4gICAgICAgIDogXCJiZy13aGl0ZSB0ZXh0LXNsYXRlLTYwMFwiXG4gICAgfWB9XG4gID5cbiAgICB7cC5sYWJlbH1cbiAgPC9idXR0b24+XG4pKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG5cbiAgPGlucHV0XG4gICAgdHlwZT1cImRhdGVcIlxuICAgIHZhbHVlPXtmcm9tRGF0ZX1cbiAgICBvbkNoYW5nZT17KGUpID0+IHNldEZyb21EYXRlKGUudGFyZ2V0LnZhbHVlKX1cbiAgICBjbGFzc05hbWU9XCJib3JkZXIgcm91bmRlZC1sZyBweC0zIHB5LTIgdGV4dC1zbVwiXG4gIC8+XG5cbiAgPHNwYW4+dG88L3NwYW4+XG5cbiAgPGlucHV0XG4gICAgdHlwZT1cImRhdGVcIlxuICAgIHZhbHVlPXt0b0RhdGV9XG4gICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRUb0RhdGUoZS50YXJnZXQudmFsdWUpfVxuICAgIGNsYXNzTmFtZT1cImJvcmRlciByb3VuZGVkLWxnIHB4LTMgcHktMiB0ZXh0LXNtXCJcbiAgLz5cblxuPC9kaXY+XG48c2VsZWN0XG4gICAgdmFsdWU9e2JyYW5kSWR9XG4gICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRCcmFuZElkKGUudGFyZ2V0LnZhbHVlKX1cbiAgICBjbGFzc05hbWU9XCJib3JkZXIgcm91bmRlZC1sZyBweC0zIHB5LTIgdGV4dC1zbVwiXG4+XG4gICAgPG9wdGlvbiB2YWx1ZT1cIlwiPkFsbCBCcmFuZHM8L29wdGlvbj5cblxuICAgIHticmFuZHMubWFwKChiOmFueSkgPT4gKFxuICAgICAgICA8b3B0aW9uIGtleT17Yi5pZH0gdmFsdWU9e2IuaWR9PlxuICAgICAgICAgICAge2IubmFtZX1cbiAgICAgICAgPC9vcHRpb24+XG4gICAgKSl9XG48L3NlbGVjdD5cbiAgICAgICAgICA8YSBocmVmPXtgJHthcGlCYXNlfS9hbmFseXRpY3MvZXhwb3J0PyR7cXVlcnl9YH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGJvcmRlciBib3JkZXItc2xhdGUtMjAwIHB4LTMgcHktMS41IHJvdW5kZWQtbGcgdGV4dC1zbSBmb250LW1lZGl1bVwiPlxuICAgICAgICAgICAgPERvd25sb2FkIGNsYXNzTmFtZT1cImgtNCB3LTRcIiAvPiBDU1ZcbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBLUElzICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0yIHNtOmdyaWQtY29scy0zIGxnOmdyaWQtY29scy02IGdhcC00XCI+XG4gICAgICAgIDxLcGkgbGFiZWw9XCJUb3RhbCBTY2Fuc1wiIHZhbHVlPXtzPy50b3RhbF9zY2FucyA/PyAwfSBpY29uPXs8U2NhbkxpbmUgY2xhc3NOYW1lPVwiaC01IHctNVwiIC8+fSB0aW50PVwiYmctYmx1ZS01MCB0ZXh0LWJsdWUtNjAwXCIgLz5cbiAgICAgICAgPEtwaSBsYWJlbD1cIlVuaXF1ZSBDb25zdW1lcnNcIiB2YWx1ZT17cz8udW5pcXVlX2NvbnN1bWVycyA/PyAwfSBpY29uPXs8VXNlcnMgY2xhc3NOYW1lPVwiaC01IHctNVwiIC8+fSB0aW50PVwiYmctdmlvbGV0LTUwIHRleHQtdmlvbGV0LTYwMFwiIC8+XG4gICAgICAgIDxLcGkgbGFiZWw9XCJUb2RheVwiIHZhbHVlPXtzPy50b2RheV9zY2FucyA/PyAwfSBpY29uPXs8U2NhbkxpbmUgY2xhc3NOYW1lPVwiaC01IHctNVwiIC8+fSB0aW50PVwiYmctb3JhbmdlLTUwIHRleHQtb3JhbmdlLTUwMFwiIC8+XG4gICAgICAgIDxLcGkgbGFiZWw9XCJBY3RpdmUgUHJvZHVjdHNcIiB2YWx1ZT17cz8uYWN0aXZlX3Byb2R1Y3RzID8/IDB9IGljb249ezxTaGllbGRDaGVjayBjbGFzc05hbWU9XCJoLTUgdy01XCIgLz59IHRpbnQ9XCJiZy1lbWVyYWxkLTUwIHRleHQtZW1lcmFsZC02MDBcIiAvPlxuICAgICAgICA8S3BpIGxhYmVsPVwiQXZnIFRydXN0XCIgdmFsdWU9e2Ake3M/LmF2Z190cnVzdF9zY29yZSA/PyAwfSVgfSBpY29uPXs8U2hpZWxkQ2hlY2sgY2xhc3NOYW1lPVwiaC01IHctNVwiIC8+fSB0aW50PVwiYmctYmx1ZS01MCB0ZXh0LWJsdWUtNjAwXCIgLz5cbiAgICAgICAgPEtwaSBsYWJlbD1cIkNvdW50cmllc1wiIHZhbHVlPXtzPy5jb3VudHJpZXMgPz8gMH0gaWNvbj17PEdsb2JlIGNsYXNzTmFtZT1cImgtNSB3LTVcIiAvPn0gdGludD1cImJnLWFtYmVyLTUwIHRleHQtYW1iZXItNTAwXCIgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgbGc6Z3JpZC1jb2xzLTMgZ2FwLTRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkIHAtNSBsZzpjb2wtc3Bhbi0xXCI+XG4gICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImZvbnQtYm9sZCBtYi0yXCI+U2NhbiBUcmVuZDwvaDM+XG4gICAgICAgICAgPFNjYW5UcmVuZENoYXJ0IGRhdGE9e3RyZW5kfSAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmQgcC01XCI+XG4gIDxoMyBjbGFzc05hbWU9XCJmb250LWJvbGQgbWItNVwiPkRldmljZSBUeXBlczwvaDM+XG5cbiAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGdhcC02IGl0ZW1zLWNlbnRlclwiPlxuICAgIHsvKiBEb251dCBDaGFydCAqL31cbiAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgIDxSZXNwb25zaXZlQ29udGFpbmVyIHdpZHRoPXsyMDB9IGhlaWdodD17MjAwfT5cbiAgICAgICAgPFBpZUNoYXJ0PlxuICAgICAgICAgIDxQaWVcbiAgICAgICAgICAgIGRhdGE9e2RldmljZXN9XG4gICAgICAgICAgICBkYXRhS2V5PVwic2NhbnNcIlxuICAgICAgICAgICAgbmFtZUtleT1cImRldmljZVwiXG4gICAgICAgICAgICBpbm5lclJhZGl1cz17NTV9XG4gICAgICAgICAgICBvdXRlclJhZGl1cz17ODB9XG4gICAgICAgICAgICBzdHJva2U9XCIjZmZmXCJcbiAgICAgICAgICAgIHN0cm9rZVdpZHRoPXsyfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtkZXZpY2VzLm1hcCgoXywgaSkgPT4gKFxuICAgICAgICAgICAgICA8Q2VsbFxuICAgICAgICAgICAgICAgIGtleT17aX1cbiAgICAgICAgICAgICAgICBmaWxsPXtET05VVFtpICUgRE9OVVQubGVuZ3RoXX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvUGllPlxuXG4gICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgIGZvcm1hdHRlcj17KHZhbHVlOiBhbnkpID0+IFtcbiAgICAgICAgICAgICAgYCR7dmFsdWV9IHNjYW5zYCxcbiAgICAgICAgICAgICAgXCJTY2Fuc1wiLFxuICAgICAgICAgICAgXX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1BpZUNoYXJ0PlxuICAgICAgPC9SZXNwb25zaXZlQ29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgey8qIExlZ2VuZCAqL31cbiAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktNFwiPlxuICAgICAge2RldmljZXMubWFwKChkLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IHBlcmNlbnQgPVxuICAgICAgICAgIHRvdGFsRGV2aWNlcyA9PT0gMFxuICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICA6ICgoZC5zY2FucyAvIHRvdGFsRGV2aWNlcykgKiAxMDApLnRvRml4ZWQoMSk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBrZXk9e2QuZGV2aWNlfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC0yIHctMSByb3VuZGVkLWZ1bGxcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IERPTlVUW2kgJSBET05VVC5sZW5ndGhdLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1tZWRpdW0gdGV4dC1zbGF0ZS03MDBcIj5cbiAgICAgICAgICAgICAgICB7ZC5kZXZpY2V9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1zbGF0ZS02MDBcIj5cbiAgICAgICAgICAgICAge3BlcmNlbnR9JSAoe2Quc2NhbnMudG9Mb2NhbGVTdHJpbmcoKX0pXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgICB9KX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZCBwLTVcIj5cbiAgICAgICAgPGgzIGNsYXNzTmFtZT1cImZvbnQtYm9sZCBtYi00XCI+U2NhbiBUaW1lIERpc3RyaWJ1dGlvbjwvaDM+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3ZlcmZsb3cteC1hdXRvXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbmxpbmUtZ3JpZCBnYXAtMC41XCIgc3R5bGU9e3sgZ3JpZFRlbXBsYXRlQ29sdW1uczogXCIyOHB4IHJlcGVhdCgyNCwgMTBweClcIiB9fT5cbiAgICAgICAgICAgIDxkaXYgLz5cbiAgICAgICAgICAgIHtBcnJheS5mcm9tKHsgbGVuZ3RoOiAyNCB9KS5tYXAoKF8sIGgpID0+IChcbiAgICAgICAgICAgICAgPGRpdiBrZXk9e2h9IGNsYXNzTmFtZT1cInRleHQtWzhweF0gdGV4dC1zbGF0ZS00MDAgdGV4dC1jZW50ZXJcIj57aCAlIDMgPT09IDAgPyBoIDogXCJcIn08L2Rpdj5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgICAge0RPVy5tYXAoKGRheSwgZCkgPT4gKFxuICAgICAgICAgICAgICA8RnJhZ21lbnQga2V5PXtgcm93LSR7ZH1gfT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtWzEwcHhdIHRleHQtc2xhdGUtNTAwIHByLTEgZmxleCBpdGVtcy1jZW50ZXJcIj57ZGF5fTwvZGl2PlxuICAgICAgICAgICAgICAgIHtBcnJheS5mcm9tKHsgbGVuZ3RoOiAyNCB9KS5tYXAoKF8sIGgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbGwgPSBoZWF0LmZpbmQoKHgpID0+IHguZG93ID09PSBkICYmIHguaG91ciA9PT0gaCk7XG4gICAgICAgICAgICAgICAgICBjb25zdCB2ID0gY2VsbD8uY291bnQgPz8gMDtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG9wID0gdiA9PT0gMCA/IDAuMDYgOiAwLjIgKyAodiAvIG1heEhlYXQpICogMC44O1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtgJHtkfS0ke2h9YH0gdGl0bGU9e2Ake2RheX0gJHtofTowMCDigJQgJHt2fWB9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtWzEycHhdIHctWzEycHhdIHJvdW5kZWQtWzJweF1cIiBzdHlsZT17eyBiYWNrZ3JvdW5kOiBgcmdiYSgzNyw5OSwyMzUsJHtvcH0pYCB9fSAvPjtcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBsZzpncmlkLWNvbHMtMyBnYXAtNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmQgcC01XCI+XG4gIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTRcIj5cbiAgICA8aDMgY2xhc3NOYW1lPVwiZm9udC1ib2xkXCI+VG9wIFByb2R1Y3RzPC9oMz5cblxuICAgIHt0b3BQLmxlbmd0aCA+IDUgJiYgKFxuICAgICAgPGJ1dHRvblxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93QWxsUHJvZHVjdHMoIXNob3dBbGxQcm9kdWN0cyl9XG4gICAgICAgIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ibHVlLTYwMCBob3Zlcjp1bmRlcmxpbmVcIlxuICAgICAgPlxuICAgICAgICB7c2hvd0FsbFByb2R1Y3RzID8gXCJTaG93IExlc3NcIiA6IFwiVmlldyBBbGxcIn1cbiAgICAgIDwvYnV0dG9uPlxuICAgICl9XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0zXCI+XG4gICAgeyhzaG93QWxsUHJvZHVjdHMgPyB0b3BQIDogdG9wUC5zbGljZSgwLCA1KSkubWFwKChwKSA9PiAoXG4gICAgICA8ZGl2IGtleT17cC5uYW1lfSBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctMzYgdHJ1bmNhdGUgdGV4dC1zbSB0ZXh0LXNsYXRlLTYwMFwiPlxuICAgICAgICAgIHtwLm5hbWV9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIGgtMyByb3VuZGVkLWZ1bGwgYmctc2xhdGUtMTAwIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtZnVsbCByb3VuZGVkLWZ1bGwgYmctYmx1ZS01MDBcIlxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgd2lkdGg6IGAkeyhwLnNjYW5zIC8gbWF4UCkgKiAxMDB9JWAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0xMiB0ZXh0LXJpZ2h0IHRleHQtc20gZm9udC1zZW1pYm9sZFwiPlxuICAgICAgICAgIHtwLnNjYW5zfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICkpfVxuXG4gICAgeyFzaG93QWxsUHJvZHVjdHMgJiYgdG9wUC5sZW5ndGggPiA1ICYmIChcbiAgICAgIDxidXR0b25cbiAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd0FsbFByb2R1Y3RzKHRydWUpfVxuICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtYmx1ZS02MDAgaG92ZXI6dW5kZXJsaW5lXCJcbiAgICAgID5cbiAgICAgICAgK3t0b3BQLmxlbmd0aCAtIDV9IG1vcmUgcHJvZHVjdHNcbiAgICAgIDwvYnV0dG9uPlxuICAgICl9XG5cbiAgICB7dG9wUC5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXNsYXRlLTQwMFwiPk5vIGRhdGEuPC9wPlxuICAgICl9XG4gIDwvZGl2PlxuPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZCBwLTVcIj5cbiAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwiZm9udC1ib2xkIG1iLTRcIj5Ub3AgQ2l0aWVzPC9oMz5cbiAgICAgICAgICA8b2wgY2xhc3NOYW1lPVwic3BhY2UteS0yIHRleHQtc21cIj5cbiAgICAgICAgICAgIHtjaXRpZXMubWFwKChjLCBpKSA9PiAoXG4gICAgICAgICAgICAgIDxsaSBrZXk9e2MuY2l0eX0gY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNsYXRlLTYwMFwiPntpICsgMX0uIHtjLmNpdHl9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtc2VtaWJvbGRcIj57Yy5zY2Fuc308L3NwYW4+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICAgIHtjaXRpZXMubGVuZ3RoID09PSAwICYmIDxsaSBjbGFzc05hbWU9XCJ0ZXh0LXNsYXRlLTQwMFwiPk5vIGRhdGEuPC9saT59XG4gICAgICAgICAgPC9vbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZCBwLTVcIj5cbiAgICA8aDMgY2xhc3NOYW1lPVwiZm9udC1ib2xkIG1iLTRcIj5cbiAgICAgICAgR2VvZ3JhcGhpYyBPdmVydmlld1xuICAgIDwvaDM+XG5cbiAgICA8R2VvZ3JhcGhpY092ZXJ2aWV3IGRhdGE9e2dlb30gLz5cbjwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBIZWF0bWFwICovfVxuICAgICBcblxuICAgICAgey8qIFJlY2VudCBzY2FucyAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZCBvdmVyZmxvdy14LWF1dG9cIj5cbiAgICAgICAgPGgzIGNsYXNzTmFtZT1cImZvbnQtYm9sZCBwLTUgcGItM1wiPlJlY2VudCBTY2FuczwvaDM+XG4gICAgICAgIDx0YWJsZSBjbGFzc05hbWU9XCJ3LWZ1bGwgdGV4dC1zbVwiPlxuICAgICAgICAgIDx0aGVhZCBjbGFzc05hbWU9XCJiZy1zbGF0ZS01MCB0ZXh0LXNsYXRlLTUwMCB0ZXh0LWxlZnRcIj5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cInB4LTQgcHktMyBmb250LW1lZGl1bVwiPlRpbWU8L3RoPlxuICAgICAgICAgICAgICA8dGggY2xhc3NOYW1lPVwicHgtNCBweS0zIGZvbnQtbWVkaXVtXCI+Q29kZTwvdGg+XG4gICAgICAgICAgICAgIDx0aCBjbGFzc05hbWU9XCJweC00IHB5LTMgZm9udC1tZWRpdW1cIj5DaXR5PC90aD5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cInB4LTQgcHktMyBmb250LW1lZGl1bVwiPkNvdW50cnk8L3RoPlxuICAgICAgICAgICAgICA8dGggY2xhc3NOYW1lPVwicHgtNCBweS0zIGZvbnQtbWVkaXVtXCI+RGV2aWNlPC90aD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICA8dGJvZHkgY2xhc3NOYW1lPVwiZGl2aWRlLXkgZGl2aWRlLXNsYXRlLTEwMFwiPlxuICAgICAgICAgICAge3JlY2VudC5tYXAoKHIsIGkpID0+IChcbiAgICAgICAgICAgICAgPHRyIGtleT17aX0+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cInB4LTQgcHktMyB0ZXh0LXNsYXRlLTUwMFwiPntuZXcgRGF0ZShyLmF0KS50b0xvY2FsZVN0cmluZygpfTwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cInB4LTQgcHktMyBmb250LW1vbm8gdGV4dC1zbGF0ZS02MDBcIj57ci5jb2RlfTwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cInB4LTQgcHktM1wiPntyLmNpdHkgPz8gXCLigJRcIn08L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJweC00IHB5LTNcIj57ci5jb3VudHJ5ID8/IFwi4oCUXCJ9PC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwicHgtNCBweS0zXCI+e3IuZGV2aWNlID8/IFwi4oCUXCJ9PC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgICAge3JlY2VudC5sZW5ndGggPT09IDAgJiYgPHRyPjx0ZCBjb2xTcGFuPXs1fSBjbGFzc05hbWU9XCJweC00IHB5LTEwIHRleHQtY2VudGVyIHRleHQtc2xhdGUtNDAwXCI+Tm8gc2NhbnMgeWV0LjwvdGQ+PC90cj59XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5mdW5jdGlvbiBLcGkoeyBsYWJlbCwgdmFsdWUsIGljb24sIHRpbnQgfTogYW55KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkIHAtNFwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YGgtMTEgdy0xMSByb3VuZGVkLXhsIGdyaWQgcGxhY2UtaXRlbXMtY2VudGVyIHNocmluay0wICR7dGludH1gfT57aWNvbn08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtaW4tdy0wXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtZXh0cmFib2xkIHRleHQtc2xhdGUtOTAwXCI+e3ZhbHVlfTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXNsYXRlLTUwMFwiPntsYWJlbH08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJGcmFnbWVudCIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiUGllQ2hhcnQiLCJQaWUiLCJDZWxsIiwiUmVzcG9uc2l2ZUNvbnRhaW5lciIsIlRvb2x0aXAiLCJEb3dubG9hZCIsIlNjYW5MaW5lIiwiVXNlcnMiLCJHbG9iZSIsIlNoaWVsZENoZWNrIiwiU2NhblRyZW5kQ2hhcnQiLCJhcGkiLCJhcGlCYXNlIiwiR2VvZ3JhcGhpY092ZXJ2aWV3IiwiUFJFU0VUUyIsImxhYmVsIiwiZGF5cyIsIkRPTlVUIiwiRE9XIiwiQW5hbHl0aWNzIiwic2V0RGF5cyIsInMiLCJzZXRTIiwidHJlbmQiLCJzZXRUcmVuZCIsInRvcFAiLCJzZXRUb3BQIiwiY2l0aWVzIiwic2V0Q2l0aWVzIiwiZGV2aWNlcyIsInNldERldmljZXMiLCJoZWF0Iiwic2V0SGVhdCIsInJlY2VudCIsInNldFJlY2VudCIsImdlbyIsInNldEdlbyIsInRvdGFsRGV2aWNlcyIsInJlZHVjZSIsInN1bSIsImQiLCJzY2FucyIsImJyYW5kcyIsInNldEJyYW5kcyIsImJyYW5kSWQiLCJzZXRCcmFuZElkIiwiZnJvbURhdGUiLCJzZXRGcm9tRGF0ZSIsInRvRGF0ZSIsInNldFRvRGF0ZSIsInNob3dBbGxQcm9kdWN0cyIsInNldFNob3dBbGxQcm9kdWN0cyIsInRoZW4iLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJhcHBlbmQiLCJTdHJpbmciLCJxdWVyeSIsInRvU3RyaW5nIiwibWF4UCIsIk1hdGgiLCJtYXgiLCJtYXAiLCJwIiwibWF4SGVhdCIsImgiLCJjb3VudCIsImRpdiIsImNsYXNzTmFtZSIsImgyIiwiYnV0dG9uIiwib25DbGljayIsImlucHV0IiwidHlwZSIsInZhbHVlIiwib25DaGFuZ2UiLCJlIiwidGFyZ2V0Iiwic3BhbiIsInNlbGVjdCIsIm9wdGlvbiIsImIiLCJpZCIsIm5hbWUiLCJhIiwiaHJlZiIsIktwaSIsInRvdGFsX3NjYW5zIiwiaWNvbiIsInRpbnQiLCJ1bmlxdWVfY29uc3VtZXJzIiwidG9kYXlfc2NhbnMiLCJhY3RpdmVfcHJvZHVjdHMiLCJhdmdfdHJ1c3Rfc2NvcmUiLCJjb3VudHJpZXMiLCJoMyIsImRhdGEiLCJ3aWR0aCIsImhlaWdodCIsImRhdGFLZXkiLCJuYW1lS2V5IiwiaW5uZXJSYWRpdXMiLCJvdXRlclJhZGl1cyIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwiXyIsImkiLCJmaWxsIiwibGVuZ3RoIiwiZm9ybWF0dGVyIiwicGVyY2VudCIsInRvRml4ZWQiLCJzdHlsZSIsImJhY2tncm91bmRDb2xvciIsImRldmljZSIsInRvTG9jYWxlU3RyaW5nIiwiZ3JpZFRlbXBsYXRlQ29sdW1ucyIsIkFycmF5IiwiZnJvbSIsImRheSIsImNlbGwiLCJmaW5kIiwieCIsImRvdyIsImhvdXIiLCJ2Iiwib3AiLCJ0aXRsZSIsImJhY2tncm91bmQiLCJzbGljZSIsIm9sIiwiYyIsImxpIiwiY2l0eSIsInRhYmxlIiwidGhlYWQiLCJ0ciIsInRoIiwidGJvZHkiLCJyIiwidGQiLCJEYXRlIiwiYXQiLCJjb2RlIiwiY291bnRyeSIsImNvbFNwYW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/dashboard/analytics/page.tsx\n"));
|
|
|
|
/***/ })
|
|
|
|
}); |