diff --git a/src/main/resources/webui/index.html b/src/main/resources/webui/index.html
index 5812a8a..a4937a6 100644
--- a/src/main/resources/webui/index.html
+++ b/src/main/resources/webui/index.html
@@ -1 +1 @@
-
MD@H Client
\ No newline at end of file
+MD@H Client
\ No newline at end of file
diff --git a/src/main/resources/webui/js/app.3097c900.js b/src/main/resources/webui/js/app.3097c900.js
deleted file mode 100644
index 871d376..0000000
--- a/src/main/resources/webui/js/app.3097c900.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(function(t){function e(e){for(var r,o,i=e[0],c=e[1],l=e[2],u=0,g=[];ut.data.maxStorePoints&&t.data.stats.splice(0,t.data.stats.length-t.data.maxStorePoints)},bg:function(t,e){t.hasBgImage=e},setBg:function(t,e){t.bgImage=e}},d=new o["a"].Store({state:i,mutations:l,getters:c}),u={name:"App",data:function(){return{drawer:null,settings:"settings",items:[{title:"Dashboard",icon:"mdi-view-dashboard",route:"/"},{title:"Settings",icon:"mdi-cog-outline",route:"/opts"}],evnt:Event}},mounted:function(){localStorage.stats&&d.getters.data.stats.length<1&&d.commit("setStats",JSON.parse(localStorage.stats)),fetch("/api/pastStats").then((function(t){return t.json()})).then((function(t){t.forEach((function(e){return d.commit("pushStats",JSON.parse("{"+e+": "+JSON.stringify(t[e])+"}"))}))})).catch((function(t){return console.log(t)})),setInterval((function(){fetch("/api/stats").then((function(t){return t.json()})).then((function(t){d.commit("pushStats",t),d.commit("changed",!0),localStorage.stats=JSON.stringify(d.getters.data.stats)})).catch((function(t){return console.log(t),!1}))}),2e3),Event.$emit("load")}},g=u,h=(a("034f"),a("2877")),f=a("6544"),p=a.n(f),b=a("7496"),m=a("40dc"),v=a("5bc1"),j=a("ce7e"),y=a("132d"),k=a("adda"),C=a("8860"),x=a("da13"),w=a("5d23"),$=a("34c3"),_=a("f6c4"),S=a("f774"),O=a("2fa4"),A=Object(h["a"])(g,s,n,!1,null,null,null),I=A.exports;p()(A,{VApp:b["a"],VAppBar:m["a"],VAppBarNavIcon:v["a"],VDivider:j["a"],VIcon:y["a"],VImg:k["a"],VList:C["a"],VListItem:x["a"],VListItemContent:w["a"],VListItemIcon:$["a"],VListItemTitle:w["b"],VMain:_["a"],VNavigationDrawer:S["a"],VSpacer:O["a"]});var T=a("f309");r["a"].use(T["a"]);var D=new T["a"]({}),V=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",{staticClass:"pa-5",style:{color:t.$store.getters.current.textColor},attrs:{fluid:""}},[a("v-container",{staticClass:"mb-3",style:{backgroundColor:t.$store.getters.current.secondary+t.$store.getters.alpha},attrs:{fluid:""}},[a("h1",[t._v("Dashboard")])]),a("v-row",[a("v-col",{attrs:{cols:"12",md:"4"}},[a("graph",{attrs:{"graph-id":"hitmiss",height:"300","md-up-height":"300",type:"doughnut",data:{labels:["Hits","Misses","Browser Cached"],datasets:[{data:[0,0,0],backgroundColor:[t.$store.getters.current.green,t.$store.getters.current.red,t.$store.getters.current.yellow],borderColor:t.$store.getters.current.accent2}]},options:{maintainAspectRatio:!1,cutoutPercentage:65,centerText:{display:!0},legend:{labels:{fontColor:t.$store.getters.current.textColor}},title:{display:!0,text:"Reliability",fontColor:t.$store.getters.current.textColor}},plugins:[{beforeDraw:function(t,e){if(null!==t.config.options.centerText.display&&"undefined"!==typeof t.config.options.centerText.display&&t.config.options.centerText.display){var a=t.chart.width,r=t.chart.height,s=t.chart.ctx,n=(t.chartArea.left+t.chartArea.right)/2,o=(t.chartArea.top+t.chartArea.bottom)/2,i=(t.data.datasets[0].data[0]/(t.data.datasets[0].data[1]+t.data.datasets[0].data[0])*100).toFixed(2);"NaN"===i&&(i=0),s.restore(),s.textAlign="center";var c=(Math.min(r,a)/134).toFixed(2);s.font=c+"em sans-serif",s.textBaseline="middle",s.fillStyle=["hsl(",(i/100*120).toString(10),",100%,40%)"].join("");var l=i+"%";s.fillText(l,n,o),s.save()}}}]}})],1),a("v-col",{attrs:{cols:"12",md:"8"}},[a("graph",{attrs:{"graph-id":"netact",height:"250","md-up-height":"300",type:"line",data:{datasets:t.netactdata},options:{maintainAspectRatio:!1,elements:{line:{tension:0}},legend:{labels:{fontColor:t.$store.getters.current.textColor}},title:{display:!0,text:"Bytes Sent",fontColor:t.$store.getters.current.textColor},scales:t.dataScaleConfig}}})],1)],1),a("v-row",[a("v-col",{attrs:{cols:"12",md:"6"}},[a("graph",{attrs:{"graph-id":"reqserved",height:"250","md-up-height":"300",type:"line",data:{labels:[],datasets:t.reqdata},options:{maintainAspectRatio:!1,point:{pointBackgroundColor:"rgba(0,0,0,0)",pointBorderColor:"rgba(0,0,0,0)"},elements:{line:{tension:0}},legend:{labels:{fontColor:t.$store.getters.current.textColor}},title:{display:!0,text:"Requests Served",fontColor:t.$store.getters.current.textColor},scales:t.graphScaleConfig}}})],1),a("v-col",{attrs:{cols:"12",md:"6"}},[a("graph",{attrs:{"graph-id":"sizondisk",height:"250","md-up-height":"300",type:"line",data:{labels:[],datasets:t.diskdata},options:{maintainAspectRatio:!1,point:{pointBackgroundColor:"rgba(0,0,0,0)",pointBorderColor:"rgba(0,0,0,0)"},elements:{line:{tension:0}},legend:{labels:{fontColor:t.$store.getters.current.textColor}},title:{display:!0,text:"Space Used",fontColor:t.$store.getters.current.textColor},scales:t.dataScaleConfig}}})],1)],1),a("v-row"),a("v-btn",{attrs:{dark:t.$store.getters.current.isDark},on:{click:function(e){return t.pull()}}},[t._v("Update Now! ")])],1)},z=[],B=(a("99af"),a("b680"),a("b64b"),a("ac1f"),a("25f0"),a("5319"),function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",{style:{backgroundColor:t.$store.getters.current.secondary+t.$store.getters.alpha,height:(t.$vuetify.breakpoint.mdAndUp?t.mdUpHeight:t.height)+"px"},attrs:{fluid:""}},[a("canvas",{attrs:{id:t.graphId}})])}),R=[],M=a("30ef"),q=a.n(M),P=[],E={name:"graph",props:["graphId","type","data","options","plugins","mdUpHeight","height"],methods:{createChart:function(t){var e=document.getElementById(t);P.push({chart:new q.a(e,{type:this.type,data:this.data,options:this.options,plugins:this.plugins}),chartid:t})},getChart:function(){return P},clearChart:function(){P=[]}},mounted:function(){this.createChart(this.graphId)}},U=E,L=a("a523"),N=Object(h["a"])(U,B,R,!1,null,"5ac2b79a",null),F=N.exports;p()(N,{VContainer:L["a"]});var H={name:"Dashboard",components:{Graph:F},data:function(){return{graphScaleConfig:{yAxes:[{ticks:{beginAtZero:!0,fontColor:d.getters.current.textColor,maxTicksLimit:11,padding:10},gridLines:{color:d.getters.current.accent,drawTicks:!1}}],xAxes:[{type:"time",ticks:{fontColor:d.getters.current.textColor,maxRotation:0,autoSkipPadding:22,padding:10},gridLines:{color:d.getters.current.accent,drawTicks:!1}}]},dataScaleConfig:{yAxes:[{ticks:{beginAtZero:!0,fontColor:d.getters.current.textColor,maxTicksLimit:11,padding:10,callback:function(t){var e=parseFloat(t.toString()),a=Math.abs(e);return a>=1e15?(e/1e15).toFixed(1)+"pb":a>=1e12?(e/1e12).toFixed(1)+"tb":a>=1e9?(e/1e9).toFixed(1)+"gb":a>=1e6?(e/1e6).toFixed(1)+"mb":a>=1e3?(e/1e3).toFixed(1)+"kb":e+"b"}},gridLines:{color:d.getters.current.accent,drawTicks:!1}}],xAxes:[{type:"time",ticks:{fontColor:d.getters.current.textColor,maxRotation:0,autoSkipPadding:22,padding:10},gridLines:{color:d.getters.current.accent,drawTicks:!1}}]},toolTips:{mode:"average"},hitmissdata:[0,0,0],netactdata:[{label:"Change",data:[],backgroundColor:d.getters.current.yellow+"d0",borderColor:d.getters.current.yellow+"d0",pointRadius:0,pointHitRadius:10,borderWidth:1},{label:"Total",data:[],backgroundColor:d.getters.current.accent2,borderColor:d.getters.current.accent+"d0",pointRadius:0,pointHitRadius:10,borderWidth:1}],diskdata:[{label:"Change",data:[],backgroundColor:d.getters.current.yellow,borderColor:d.getters.current.yellow+"d0",pointRadius:0,pointHitRadius:10,borderWidth:1},{label:"Total",data:[],backgroundColor:d.getters.current.accent2,borderColor:d.getters.current.accent+"d0",pointRadius:0,pointHitRadius:10,borderWidth:1}],reqdata:[{label:"Change",data:[],backgroundColor:d.getters.current.yellow,borderColor:d.getters.current.yellow+"d0",pointRadius:0,pointHitRadius:10,borderWidth:1},{label:"Total",data:[],backgroundColor:d.getters.current.accent2,borderColor:d.getters.current.accent+"d0",pointRadius:0,pointHitRadius:10,borderWidth:1}],evnt:Event}},methods:{updateValues:function(){var t=d.getters.data.stats;if(!(t.length<1)){var e=Object.keys(t[t.length-1])[0],a=t[t.length-1][e],r=t.length>2?t[t.length-2][Object.keys(t[t.length-2])[0]]:null,s=new Date(e.replace("T"," ").replace("Z"," ")),n=Date.UTC(s.getFullYear(),s.getMonth(),s.getDate(),s.getHours(),s.getMinutes(),s.getSeconds());this.netactdata[0].data.push({t:n,y:r?a.bytes_sent-r.bytes_sent:0}),this.netactdata[1].data.push({t:n,y:a.bytes_sent}),this.diskdata[0].data.push({t:n,y:r?a.bytes_on_disk-r.bytes_on_disk:0}),this.diskdata[1].data.push({t:n,y:a.bytes_on_disk}),this.reqdata[0].data.push({t:n,y:r?a.requests_served-r.requests_served:0}),this.reqdata[1].data.push({t:n,y:a.requests_served}),this.hitmissdata=[a.hits,a.misses,a.browser_cached];var o=F.methods.getChart();for(var i in o)o[i].chart.data.datasets.forEach((function(t){t.data.length>d.getters.data.maxPoints&&t.data.splice(0,t.data.length-d.getters.data.maxPoints)})),o[i].chart.update()}},loadData:function(){var t=d.getters.data.stats;if(!(t.length<1)){this.netactdata[0].data=[],this.netactdata[1].data=[],this.diskdata[0].data=[],this.diskdata[1].data=[],this.reqdata[0].data=[],this.reqdata[1].data=[];for(var e=Math.max(t.length-d.getters.data.maxPoints,0);e1?t[e-1][Object.keys(t[e-1])[0]]:null,n=new Date(a.replace("T"," ").replace("Z"," ")),o=Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds());this.netactdata[0].data.push({t:o,y:s?r.bytes_sent-s.bytes_sent:0}),this.netactdata[1].data.push({t:o,y:r.bytes_sent}),this.diskdata[0].data.push({t:o,y:s?r.bytes_on_disk-s.bytes_on_disk:0}),this.diskdata[1].data.push({t:o,y:r.bytes_on_disk}),this.reqdata[0].data.push({t:o,y:s?r.requests_served-s.requests_served:0}),this.reqdata[1].data.push({t:o,y:r.requests_served})}var i=t[t.length-1][Object.keys(t[t.length-1])[0]];i&&(this.hitmissdata=[i.hits,i.misses,i.browser_cached]);var c=F.methods.getChart();for(var l in c)c[l].chart.update()}},sortValues:function(){var t=d.getters.data.stats,e=a(t);function a(t){if(t.length<=1)return t;for(var e=[],r=[],s=t.pop(),n=t.length,o=0;o state.themes[state.current],\r\n hasBgImage: state => state.hasBgImage,\r\n bgImg: state => state.bgImage,\r\n alpha: state => {\r\n return (state.hasBgImage ? state.themes[state.current].backgroundAlpha : 'ff')\r\n },\r\n data: state => state.data,\r\n};\r\n\r\nconst mutations = {\r\n setTheme(state, theme) {\r\n state.current = theme;\r\n },\r\n setStats(state, val) {\r\n state.data.stats = val;\r\n },\r\n pushStats(state, val) {\r\n state.data.stats.push(val);\r\n if (state.data.stats.length > state.data.maxStorePoints) {\r\n state.data.stats.splice(0, state.data.stats.length - state.data.maxStorePoints)\r\n }\r\n },\r\n bg(state, val){\r\n state.hasBgImage = val;\r\n },\r\n setBg(state, val){\r\n state.bgImage = val;\r\n },\r\n}\r\n\r\nexport default new Vuex.Store({\r\n state,\r\n mutations,\r\n getters,\r\n});","\n \n \n \n \n MD@Home Client\n Interface
\n MD@H Client
\n \n \n \n \n \n \n mdi-format-list-bulleted\n \n \n Menu\n \n \n \n \n \n \n {{ item.icon }}\n \n \n {{ item.title }}\n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=f217a182&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VAppBarNavIcon } from 'vuetify/lib/components/VAppBar';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VApp,VAppBar,VAppBarNavIcon,VDivider,VIcon,VImg,VList,VListItem,VListItemContent,VListItemIcon,VListItemTitle,VMain,VNavigationDrawer,VSpacer})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"pa-5\",style:({color: _vm.$store.getters.current.textColor}),attrs:{\"fluid\":\"\"}},[_c('v-container',{staticClass:\"mb-3\",style:({backgroundColor: _vm.$store.getters.current.secondary + _vm.$store.getters.alpha}),attrs:{\"fluid\":\"\"}},[_c('h1',[_vm._v(\"Dashboard\")])]),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('graph',{attrs:{\"graph-id\":\"hitmiss\",\"height\":\"300\",\"md-up-height\":\"300\",\"type\":\"doughnut\",\"data\":{\n labels: ['Hits', 'Misses', 'Browser Cached'],\n datasets: [{\n data: [0,0,0],\n backgroundColor: [\n _vm.$store.getters.current.green,\n _vm.$store.getters.current.red,\n _vm.$store.getters.current.yellow ],\n borderColor: _vm.$store.getters.current.accent2\n }]},\"options\":{\n maintainAspectRatio: false,\n cutoutPercentage: 65,\n centerText: {\n display: true,\n },\n legend: {\n labels: {\n fontColor: _vm.$store.getters.current.textColor,\n }}, title: {\n display: true,\n text: 'Reliability',\n fontColor: _vm.$store.getters.current.textColor,\n }},\"plugins\":[{\n beforeDraw: function(chart, options) {\n if (chart.config.options.centerText.display !== null &&\n typeof chart.config.options.centerText.display !== 'undefined' &&\n chart.config.options.centerText.display) {\n var width = chart.chart.width,\n height = chart.chart.height,\n ctx = chart.chart.ctx,\n centerX = ((chart.chartArea.left + chart.chartArea.right) / 2),\n centerY = ((chart.chartArea.top + chart.chartArea.bottom) / 2),\n percent = (chart.data.datasets[0].data[0]/(chart.data.datasets[0].data[1] + chart.data.datasets[0].data[0]) * 100).toFixed(2);\n if(percent === 'NaN')\n { percent = 0 }\n ctx.restore();\n ctx.textAlign = 'center';\n var fontSize = (Math.min(height,width) / 134).toFixed(2);\n ctx.font = fontSize + 'em sans-serif';\n ctx.textBaseline = 'middle';\n ctx.fillStyle = ['hsl(', ((percent/100) * 120).toString(10), ',100%,40%)'].join('');\n var text = percent + '%';\n ctx.fillText(text, centerX, centerY);\n ctx.save();\n }\n }\n }]}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"8\"}},[_c('graph',{attrs:{\"graph-id\":\"netact\",\"height\":\"250\",\"md-up-height\":\"300\",\"type\":\"line\",\"data\":{datasets: _vm.netactdata},\"options\":{\n maintainAspectRatio: false,\n elements: {\n line: {\n tension: 0\n }\n },\n legend: {\n labels: {\n fontColor: _vm.$store.getters.current.textColor,\n }\n }, title: {\n display: true,\n text: 'Bytes Sent',\n fontColor: _vm.$store.getters.current.textColor,\n },\n scales: _vm.dataScaleConfig}}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('graph',{attrs:{\"graph-id\":\"reqserved\",\"height\":\"250\",\"md-up-height\":\"300\",\"type\":\"line\",\"data\":{\n labels: [],\n datasets: _vm.reqdata},\"options\":{\n maintainAspectRatio: false,\n point: {\n pointBackgroundColor: 'rgba(0,0,0,0)',\n pointBorderColor: 'rgba(0,0,0,0)',\n },\n elements: {\n line: {\n tension: 0\n }\n },\n legend: {\n labels: {\n fontColor: _vm.$store.getters.current.textColor,\n }\n\n }, title: {\n display: true,\n text: 'Requests Served',\n fontColor: _vm.$store.getters.current.textColor,\n },\n scales: _vm.graphScaleConfig}}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('graph',{attrs:{\"graph-id\":\"sizondisk\",\"height\":\"250\",\"md-up-height\":\"300\",\"type\":\"line\",\"data\":{\n labels: [],\n datasets: _vm.diskdata},\"options\":{\n maintainAspectRatio: false,\n point: {\n pointBackgroundColor: 'rgba(0,0,0,0)',\n pointBorderColor: 'rgba(0,0,0,0)',\n },\n elements: {\n line: {\n tension: 0\n }\n },\n legend: {\n labels: {\n fontColor: _vm.$store.getters.current.textColor,\n }\n }, title: {\n display: true,\n text: 'Space Used',\n fontColor: _vm.$store.getters.current.textColor,\n },\n scales: _vm.dataScaleConfig}}})],1)],1),_c('v-row'),_c('v-btn',{attrs:{\"dark\":_vm.$store.getters.current.isDark},on:{\"click\":function($event){return _vm.pull()}}},[_vm._v(\"Update Now! \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{style:({backgroundColor: _vm.$store.getters.current.secondary + _vm.$store.getters.alpha, height: (_vm.$vuetify.breakpoint.mdAndUp ? _vm.mdUpHeight : _vm.height) + 'px'}),attrs:{\"fluid\":\"\"}},[_c('canvas',{attrs:{\"id\":_vm.graphId}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./graph.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./graph.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./graph.vue?vue&type=template&id=5ac2b79a&scoped=true&\"\nimport script from \"./graph.vue?vue&type=script&lang=js&\"\nexport * from \"./graph.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ac2b79a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VContainer})\n","\n \n \n Dashboard
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Update Now!\n \n \n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=0bc74354&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{style:({color: _vm.$store.getters.current.textColor}),attrs:{\"fluid\":\"\"}},[_c('v-container',{style:({backgroundColor: _vm.$store.getters.current.secondary + _vm.$store.getters.alpha}),attrs:{\"fluid\":\"\"}},[_c('h1',[_vm._v(\"Console\")])]),_c('p',[_vm._v(\" Stop looking for hidden pages \")]),_c('v-img',{attrs:{\"src\":\"https://i.stack.imgur.com/jDfXy.jpg\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n Console
\r\n \r\n \r\n Stop looking for hidden pages\r\n
\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Console.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Console.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Console.vue?vue&type=template&id=9c546b6c&scoped=true&\"\nimport script from \"./Console.vue?vue&type=script&lang=js&\"\nexport * from \"./Console.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9c546b6c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VImg } from 'vuetify/lib/components/VImg';\ninstallComponents(component, {VContainer,VImg})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{style:({color: _vm.$store.getters.current.textColor}),attrs:{\"fluid\":\"\"}},[_c('v-container',{staticClass:\"mb-5\",style:({backgroundColor: _vm.$store.getters.current.secondary + _vm.$store.getters.alpha}),attrs:{\"fluid\":\"\"}},[_c('h1',[_vm._v(\"Settings\")])]),_c('v-container',{style:({backgroundColor: _vm.$store.getters.current.secondary + _vm.$store.getters.alpha}),attrs:{\"fluid\":\"\"}},[_c('v-select',{attrs:{\"label\":\"Theme\",\"items\":_vm.items,\"item-value\":\"val\",\"item-text\":\"disp\",\"value\":_vm.$store.state.current,\"color\":_vm.$store.getters.current.textColor,\"dark\":_vm.$store.getters.current.isDark},on:{\"input\":_vm.setTheme}}),_c('v-switch',{attrs:{\"label\":\"Background Image\",\"dark\":_vm.$store.getters.current.isDark},on:{\"change\":function($event){_vm.$store.commit('bg', _vm.bg); _vm.saveChanges()}},model:{value:(_vm.bg),callback:function ($$v) {_vm.bg=$$v},expression:\"bg\"}}),_c('div',{attrs:{\"hidden\":!_vm.bg}},[_c('v-text-field',{attrs:{\"label\":\"Image URL\",\"dark\":_vm.$store.getters.current.isDark},on:{\"change\":function($event){_vm.$store.commit('setBg', _vm.bgimg); _vm.saveChanges()}},model:{value:(_vm.bgimg),callback:function ($$v) {_vm.bgimg=$$v},expression:\"bgimg\"}}),_c('h6',[_vm._v(\";-;\")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n Settings
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
;-;
\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Options.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Options.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Options.vue?vue&type=template&id=c04756a6&\"\nimport script from \"./Options.vue?vue&type=script&lang=js&\"\nexport * from \"./Options.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VContainer,VSelect,VSwitch,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{style:({color: _vm.$store.getters.current.textColor}),attrs:{\"fluid\":\"\"}},[_c('v-container',{style:({backgroundColor: _vm.$store.getters.current.secondary + _vm.$store.getters.alpha}),attrs:{\"fluid\":\"\"}},[_c('h1',[_vm._v(\"Info\")])]),_c('p',[_vm._v(\" You shouldn't be here \")]),_c('v-img',{attrs:{\"src\":\"https://i.kym-cdn.com/photos/images/newsfeed/001/273/780/f05.png\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n Info
\r\n \r\n \r\n You shouldn't be here\r\n
\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./About.vue?vue&type=template&id=544bb546&scoped=true&\"\nimport script from \"./About.vue?vue&type=script&lang=js&\"\nexport * from \"./About.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"544bb546\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VImg } from 'vuetify/lib/components/VImg';\ninstallComponents(component, {VContainer,VImg})\n","import Vue from 'vue'\r\nimport dashboard from \"@/components/Dashboard\";\r\nimport console from \"@/components/Console\";\r\nimport options from \"@/components/Options\";\r\nimport about from \"@/components/About\";\r\nimport VueRouter from \"vue-router\";\r\n\r\nconst routes = [\r\n {path: '/', component: dashboard},\r\n {path: '/cons', component: console},\r\n {path: '/opts', component: options},\r\n {path: '/info', component: about},\r\n]\r\n\r\nVue.use(VueRouter)\r\n\r\nexport default new VueRouter({\r\n routes\r\n})","/* eslint-disable no-console */\n\nimport { register } from 'register-service-worker'\n\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready () {\n console.log(\n 'App is being served from cache by a service worker.\\n' +\n 'For more details, visit https://goo.gl/AFskqB'\n )\n },\n registered () {\n console.log('Service worker has been registered.')\n },\n cached () {\n console.log('Content has been cached for offline use.')\n },\n updatefound () {\n console.log('New content is downloading.')\n },\n updated () {\n console.log('New content is available; please refresh.')\n },\n offline () {\n console.log('No internet connection found. App is running in offline mode.')\n },\n error (error) {\n console.error('Error during service worker registration:', error)\n }\n })\n}\n","import Vue from 'vue'\r\nimport App from './App'\r\nimport vuetify from './plugins/vuetify';\r\nimport router from './plugins/vuerouter';\r\nimport store from './store';\r\nimport './registerServiceWorker'\r\n\r\nVue.config.productionTip = false\r\n\r\nwindow.Event = new Vue();\r\n\r\nnew Vue({\r\n render: h => h(App),\r\n router,\r\n store,\r\n vuetify\r\n}).$mount('#app')\r\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/src/main/resources/webui/precache-manifest.72870d39151ff907d309e4ed085688b9.js b/src/main/resources/webui/precache-manifest.72870d39151ff907d309e4ed085688b9.js
deleted file mode 100644
index e938c13..0000000
--- a/src/main/resources/webui/precache-manifest.72870d39151ff907d309e4ed085688b9.js
+++ /dev/null
@@ -1,30 +0,0 @@
-self.__precacheManifest = (self.__precacheManifest || []).concat([
- {
- "revision": "a22d9f2ef94e37b7a6ff",
- "url": "/css/app.e2aa2c39.css"
- },
- {
- "revision": "a78a87eb753feb7eaa01",
- "url": "/css/chunk-vendors.ff325645.css"
- },
- {
- "revision": "54f026d023e13df87ab9e5f65c7ed268",
- "url": "/index.html"
- },
- {
- "revision": "a22d9f2ef94e37b7a6ff",
- "url": "/js/app.3097c900.js"
- },
- {
- "revision": "a78a87eb753feb7eaa01",
- "url": "/js/chunk-vendors.71e890e8.js"
- },
- {
- "revision": "8acb3b80fd7f13474f9b2cb074bca31a",
- "url": "/manifest.json"
- },
- {
- "revision": "b6216d61c03e6ce0c9aea6ca7808f7ca",
- "url": "/robots.txt"
- }
-]);
\ No newline at end of file
diff --git a/src/main/resources/webui/sw.js b/src/main/resources/webui/sw.js
index 20cf795..5261e3c 100644
--- a/src/main/resources/webui/sw.js
+++ b/src/main/resources/webui/sw.js
@@ -1,3 +1,3 @@
-importScripts("/precache-manifest.72870d39151ff907d309e4ed085688b9.js", "https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
+importScripts("/precache-manifest.e9a545031a67a55f40499cd4654d2456.js", "https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");