diff --git a/dist/js/misc/render.js b/dist/js/misc/render.js
index b4cfc63..04267c3 100644
--- a/dist/js/misc/render.js
+++ b/dist/js/misc/render.js
@@ -1,2 +1,2 @@
-var render={lsKey:"render",configs:{al:{name:"ship waifu~",root:"render/al/",array:Array.apply(null,{length:50}).map((function(e,r){return("00"+(r+1)).slice(-3)+".png"}))},miku:{name:"miku ❤️~",root:"render/miku/",array:Array.apply(null,{length:50}).map((function(e,r){return("00"+(r+1)).slice(-3)+".png"}))}},config:null,selected:null,done:!1,showTogglePrompt:function(){var e=!("0"===localStorage[render.lsKey]),r=document.createElement("div");r.innerHTML='\n
\n
\n \n
\n
If disabled, you will still be able to see a small button on the bottom right corner of the screen to re-enable it.
\n
\n ';var n={};e&&(n.reload={text:"Nah fam, show me a different render",className:"swal-button--cancel"}),n.confirm=!0,swal({content:r,buttons:n}).then((function(e){if("reload"===e)render.do(!0);else if(e){var n=r.querySelector("#swalRender").checked?void 0:"0";n!==localStorage[render.lsKey]&&(n?localStorage[render.lsKey]=n:localStorage.removeItem(render.lsKey),swal("","Random render is now "+(n?"disabled":"enabled")+".","success",{buttons:!1,timer:1500}),render.do())}}))},parseSelectedConfig:function(){var e=document.querySelector("#renderScript");if(e&&e.dataset.config)return e.dataset.config},parseVersion:function(){var e=document.querySelector("#renderScript");return e&&e.dataset.version?"?v="+e.dataset.version:""},do:function(e){if(render.done||(render.done=!0),render.config=render.configs[render.parseSelectedConfig()],render.config&&render.config.array.length){var r=document.querySelector("body > .render");r&&r.remove();var n;e||"0"!==localStorage[render.lsKey]?(void 0===render.version&&(render.version=render.parseVersion()),render.selected=render.config.array[Math.floor(Math.random()*render.config.array.length)],(n=document.createElement("img")).alt=n.title=render.config.name,n.className="is-hidden-mobile",n.src=""+render.config.root+render.selected+render.version):((n=document.createElement("a")).className="button is-info is-hidden-mobile",n.title=render.config.name,n.innerHTML=''),n.classList.add("render"),n.addEventListener("click",render.showTogglePrompt),document.body.appendChild(n)}},onloaded:function(){"undefined"!=typeof page&&page.apiChecked&&!render.done&&render.do()}};"interactive"===document.readyState||"complete"===document.readyState?render.onloaded():window.addEventListener("DOMContentLoaded",(function(){return render.onloaded()}));
+var render={lsKey:"render",configs:{al:{name:"ship waifu~",root:"render/al/",array:Array.apply(null,{length:38}).map((function(e,r){return("00"+(r+1)).slice(-3)+".png"}))},miku:{name:"miku ❤️~",root:"render/miku/",array:Array.apply(null,{length:50}).map((function(e,r){return("00"+(r+1)).slice(-3)+".png"}))}},config:null,selected:null,done:!1,showTogglePrompt:function(){var e=!("0"===localStorage[render.lsKey]),r=document.createElement("div");r.innerHTML='\n \n
\n \n
\n
If disabled, you will still be able to see a small button on the bottom right corner of the screen to re-enable it.
\n
\n ';var n={};e&&(n.reload={text:"Nah fam, show me a different render",className:"swal-button--cancel"}),n.confirm=!0,swal({content:r,buttons:n}).then((function(e){if("reload"===e)render.do(!0);else if(e){var n=r.querySelector("#swalRender").checked?void 0:"0";n!==localStorage[render.lsKey]&&(n?localStorage[render.lsKey]=n:localStorage.removeItem(render.lsKey),swal("","Random render is now "+(n?"disabled":"enabled")+".","success",{buttons:!1,timer:1500}),render.do())}}))},parseSelectedConfig:function(){var e=document.querySelector("#renderScript");if(e&&e.dataset.config)return e.dataset.config},parseVersion:function(){var e=document.querySelector("#renderScript");return e&&e.dataset.version?"?v="+e.dataset.version:""},do:function(e){if(render.done||(render.done=!0),render.config=render.configs[render.parseSelectedConfig()],render.config&&render.config.array.length){var r=document.querySelector("body > .render");r&&r.remove();var n;e||"0"!==localStorage[render.lsKey]?(void 0===render.version&&(render.version=render.parseVersion()),render.selected=render.config.array[Math.floor(Math.random()*render.config.array.length)],(n=document.createElement("img")).alt=n.title=render.config.name,n.className="is-hidden-mobile",n.src=""+render.config.root+render.selected+render.version):((n=document.createElement("a")).className="button is-info is-hidden-mobile",n.title=render.config.name,n.innerHTML=''),n.classList.add("render"),n.addEventListener("click",render.showTogglePrompt),document.body.appendChild(n)}},onloaded:function(){"undefined"!=typeof page&&page.apiChecked&&!render.done&&render.do()}};"interactive"===document.readyState||"complete"===document.readyState?render.onloaded():window.addEventListener("DOMContentLoaded",(function(){return render.onloaded()}));
//# sourceMappingURL=render.js.map
diff --git a/dist/js/misc/render.js.map b/dist/js/misc/render.js.map
index bc4eb2e..526a333 100644
--- a/dist/js/misc/render.js.map
+++ b/dist/js/misc/render.js.map
@@ -1 +1 @@
-{"version":3,"sources":["render.js"],"names":["const","render","lsKey","configs","al","name","root","array","Array","apply","length","map","_","i","slice","miku","config","selected","done","renderEnabled","localStorage","div","document","createElement","innerHTML","buttons","reload","text","className","confirm","swal","content","then","value","do","newValue","querySelector","checked","undefined","removeItem","timer","renderScript","dataset","version","parseSelectedConfig","previousElement","remove","element","parseVersion","Math","floor","random","alt","title","src","classList","add","addEventListener","showTogglePrompt","body","appendChild","page","apiChecked","readyState","onloaded","window"],"mappings":"AAEAA,IAAMC,OAAS,CACbC,MAAO,SACPC,QAAS,CACPC,GAAI,CACFC,KAAM,cACNC,KAAM,aAENC,MAAOC,MAAMC,MAAM,KAAM,CAAEC,OAAQ,KAAMC,KAAG,SAAEC,EAAGC,GAAG,OAAO,MAAQA,EAAI,IAAIC,OAAO,GAAE,WAEtFC,KAAM,CACJV,KAAM,WACNC,KAAM,eAENC,MAAOC,MAAMC,MAAM,KAAM,CAAEC,OAAQ,KAAMC,KAAG,SAAEC,EAAGC,GAAG,OAAO,MAAQA,EAAI,IAAIC,OAAO,GAAE,YAGxFE,OAAQ,KACRC,SAAU,KACVC,MAAM,EAGRjB,iBAAuB,WACrBD,IAAMmB,IAAiD,MAA/BC,aAAanB,OAAOC,QACtCmB,EAAMC,SAASC,cAAc,OACnCF,EAAIG,UAAY,+IAIiCL,EAAgB,UAAY,IAAE,wCAC7ClB,OAAOe,OAAO,KAAI,kMAOpDhB,IAAMyB,EAAU,GACZN,IACFM,EAAQC,OAAS,CACfC,KAAM,sCACNC,UAAW,wBAGfH,EAAQI,SAAU,EAElBC,KAAK,CACHC,QAASV,EATTI,QAUAA,IACCO,MAAI,SAACC,GACN,GAAc,WAAVA,EACFhC,OAAOiC,IAAG,QACL,GAAID,EAAO,CAChBjC,IAAMmC,EAAWd,EAAIe,cAAc,eAAeC,aAAUC,EAAY,IACpEH,IAAaf,aAAanB,OAAOC,SAC/BiC,EAAUf,aAAanB,OAAOC,OAASiC,EACtCf,aAAamB,WAAWtC,OAAOC,OACpC4B,KAAK,GAAI,yBAAwBK,EAAW,WAAa,WAAS,IAAK,UAAW,CAChFV,SAAS,EACTe,MAAO,OAETvC,OAAOiC,WAMfjC,oBAA0B,WACxBD,IAAMyC,EAAenB,SAASc,cAAc,iBAC5C,GAAIK,GAAgBA,EAAaC,QAAQ1B,OAAQ,OAAOyB,EAAaC,QAAQ1B,QAG/Ef,aAAmB,WACjBD,IAAMyC,EAAenB,SAASc,cAAc,iBAC5C,OAAIK,GAAgBA,EAAaC,QAAQC,QAAgB,MAAMF,EAAaC,QAAe,QAC/E,IAGdzC,GAAS,SAAGyB,GAIV,GAHKzB,OAAOiB,OAAMjB,OAAOiB,MAAO,GAEhCjB,OAAOe,OAASf,OAAOE,QAAQF,OAAO2C,uBACjC3C,OAAOe,QAAWf,OAAOe,OAAOT,MAAMG,OAA3C,CAEAV,IAAM6C,EAAkBvB,SAASc,cAAc,kBAC3CS,GAAiBA,EAAgBC,SAErC9C,IAaI+C,EACCrB,GAAyC,MAA/BN,aAAanB,OAAOC,aAbH,IAAnBD,OAAO0C,UAChB1C,OAAO0C,QAAU1C,OAAO+C,gBAI1B/C,OAAOgB,SAAWhB,OAAOe,OAAOT,MAAM0C,KAAKC,MAAMD,KAAKE,SAAWlD,OAAOe,OAAOT,MAAMG,UACrFqC,EAAUzB,SAASC,cAAc,QACzB6B,IAAML,EAAQM,MAAQpD,OAAOe,OAAOX,KAC5C0C,EAAQnB,UAAY,mBACpBmB,EAAQO,IAAM,GAAGrD,OAAOe,OAAW,KAAGf,OAAe,SAAGA,OAAc,WAKtE8C,EAAUzB,SAASC,cAAc,MACzBK,UAAY,kCACpBmB,EAAQM,MAAQpD,OAAOe,OAAOX,KAC9B0C,EAAQvB,UAAY,gCAKtBuB,EAAQQ,UAAUC,IAAI,UACtBT,EAAQU,iBAAiB,QAASxD,OAAOyD,kBACzCpC,SAASqC,KAAKC,YAAYb,KAG5B9C,SAAe,WAGO,oBAAT4D,MAAwBA,KAAKC,aAAe7D,OAAOiB,MAC5DjB,OAAOiC,OAIiB,gBAAxBZ,SAASyC,YAAwD,aAAxBzC,SAASyC,WACpD9D,OAAO+D,WAEPC,OAAOR,iBAAiB,oBAAkB,WAAK,OAAGxD,OAAO+D","file":"render.js","sourcesContent":["/* global page, swal */\n\nconst render = {\n lsKey: 'render',\n configs: {\n al: {\n name: 'ship waifu~',\n root: 'render/al/',\n // 001.png ~ 038.png\n array: Array.apply(null, { length: 50 }).map((_, i) => `${('00' + (i + 1)).slice(-3)}.png`)\n },\n miku: {\n name: 'miku ❤️~',\n root: 'render/miku/',\n // 001.png ~ 050.png\n array: Array.apply(null, { length: 50 }).map((_, i) => `${('00' + (i + 1)).slice(-3)}.png`)\n }\n },\n config: null,\n selected: null,\n done: false\n}\n\nrender.showTogglePrompt = () => {\n const renderEnabled = !(localStorage[render.lsKey] === '0')\n const div = document.createElement('div')\n div.innerHTML = `\n \n
\n \n
\n
If disabled, you will still be able to see a small button on the bottom right corner of the screen to re-enable it.
\n
\n `\n\n const buttons = {}\n if (renderEnabled) {\n buttons.reload = {\n text: 'Nah fam, show me a different render',\n className: 'swal-button--cancel'\n }\n }\n buttons.confirm = true\n\n swal({\n content: div,\n buttons\n }).then(value => {\n if (value === 'reload') {\n render.do(true)\n } else if (value) {\n const newValue = div.querySelector('#swalRender').checked ? undefined : '0'\n if (newValue !== localStorage[render.lsKey]) {\n if (newValue) localStorage[render.lsKey] = newValue\n else localStorage.removeItem(render.lsKey)\n swal('', `Random render is now ${newValue ? 'disabled' : 'enabled'}.`, 'success', {\n buttons: false,\n timer: 1500\n })\n render.do()\n }\n }\n })\n}\n\nrender.parseSelectedConfig = () => {\n const renderScript = document.querySelector('#renderScript')\n if (renderScript && renderScript.dataset.config) return renderScript.dataset.config\n}\n\nrender.parseVersion = () => {\n const renderScript = document.querySelector('#renderScript')\n if (renderScript && renderScript.dataset.version) return `?v=${renderScript.dataset.version}`\n else return ''\n}\n\nrender.do = reload => {\n if (!render.done) render.done = true\n\n render.config = render.configs[render.parseSelectedConfig()]\n if (!render.config || !render.config.array.length) return\n\n const previousElement = document.querySelector('body > .render')\n if (previousElement) previousElement.remove()\n\n const doRender = () => {\n if (typeof render.version === 'undefined') {\n render.version = render.parseVersion()\n }\n\n // Let us just allow people to get new render when toggling the option\n render.selected = render.config.array[Math.floor(Math.random() * render.config.array.length)]\n element = document.createElement('img')\n element.alt = element.title = render.config.name\n element.className = 'is-hidden-mobile'\n element.src = `${render.config.root}${render.selected}${render.version}`\n }\n\n let element\n if (!reload && localStorage[render.lsKey] === '0') {\n element = document.createElement('a')\n element.className = 'button is-info is-hidden-mobile'\n element.title = render.config.name\n element.innerHTML = ''\n } else {\n doRender()\n }\n\n element.classList.add('render')\n element.addEventListener('click', render.showTogglePrompt)\n document.body.appendChild(element)\n}\n\nrender.onloaded = () => {\n // If the main script had already done its API check, yet render haven't been triggered, do it\n // This would only happen if this render script only gets loaded after the main script's API check\n if (typeof page !== 'undefined' && page.apiChecked && !render.done) {\n render.do()\n }\n}\n\nif (document.readyState === 'interactive' || document.readyState === 'complete') {\n render.onloaded()\n} else {\n window.addEventListener('DOMContentLoaded', () => render.onloaded())\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["render.js"],"names":["const","render","lsKey","configs","al","name","root","array","Array","apply","length","map","_","i","slice","miku","config","selected","done","renderEnabled","localStorage","div","document","createElement","innerHTML","buttons","reload","text","className","confirm","swal","content","then","value","do","newValue","querySelector","checked","undefined","removeItem","timer","renderScript","dataset","version","parseSelectedConfig","previousElement","remove","element","parseVersion","Math","floor","random","alt","title","src","classList","add","addEventListener","showTogglePrompt","body","appendChild","page","apiChecked","readyState","onloaded","window"],"mappings":"AAEAA,IAAMC,OAAS,CACbC,MAAO,SACPC,QAAS,CACPC,GAAI,CACFC,KAAM,cACNC,KAAM,aAENC,MAAOC,MAAMC,MAAM,KAAM,CAAEC,OAAQ,KAAMC,KAAG,SAAEC,EAAGC,GAAG,OAAO,MAAQA,EAAI,IAAIC,OAAO,GAAE,WAEtFC,KAAM,CACJV,KAAM,WACNC,KAAM,eAENC,MAAOC,MAAMC,MAAM,KAAM,CAAEC,OAAQ,KAAMC,KAAG,SAAEC,EAAGC,GAAG,OAAO,MAAQA,EAAI,IAAIC,OAAO,GAAE,YAGxFE,OAAQ,KACRC,SAAU,KACVC,MAAM,EAGRjB,iBAAuB,WACrBD,IAAMmB,IAAiD,MAA/BC,aAAanB,OAAOC,QACtCmB,EAAMC,SAASC,cAAc,OACnCF,EAAIG,UAAY,+IAIiCL,EAAgB,UAAY,IAAE,wCAC7ClB,OAAOe,OAAO,KAAI,kMAOpDhB,IAAMyB,EAAU,GACZN,IACFM,EAAQC,OAAS,CACfC,KAAM,sCACNC,UAAW,wBAGfH,EAAQI,SAAU,EAElBC,KAAK,CACHC,QAASV,EATTI,QAUAA,IACCO,MAAI,SAACC,GACN,GAAc,WAAVA,EACFhC,OAAOiC,IAAG,QACL,GAAID,EAAO,CAChBjC,IAAMmC,EAAWd,EAAIe,cAAc,eAAeC,aAAUC,EAAY,IACpEH,IAAaf,aAAanB,OAAOC,SAC/BiC,EAAUf,aAAanB,OAAOC,OAASiC,EACtCf,aAAamB,WAAWtC,OAAOC,OACpC4B,KAAK,GAAI,yBAAwBK,EAAW,WAAa,WAAS,IAAK,UAAW,CAChFV,SAAS,EACTe,MAAO,OAETvC,OAAOiC,WAMfjC,oBAA0B,WACxBD,IAAMyC,EAAenB,SAASc,cAAc,iBAC5C,GAAIK,GAAgBA,EAAaC,QAAQ1B,OAAQ,OAAOyB,EAAaC,QAAQ1B,QAG/Ef,aAAmB,WACjBD,IAAMyC,EAAenB,SAASc,cAAc,iBAC5C,OAAIK,GAAgBA,EAAaC,QAAQC,QAAgB,MAAMF,EAAaC,QAAe,QAC/E,IAGdzC,GAAS,SAAGyB,GAIV,GAHKzB,OAAOiB,OAAMjB,OAAOiB,MAAO,GAEhCjB,OAAOe,OAASf,OAAOE,QAAQF,OAAO2C,uBACjC3C,OAAOe,QAAWf,OAAOe,OAAOT,MAAMG,OAA3C,CAEAV,IAAM6C,EAAkBvB,SAASc,cAAc,kBAC3CS,GAAiBA,EAAgBC,SAErC9C,IAaI+C,EACCrB,GAAyC,MAA/BN,aAAanB,OAAOC,aAbH,IAAnBD,OAAO0C,UAChB1C,OAAO0C,QAAU1C,OAAO+C,gBAI1B/C,OAAOgB,SAAWhB,OAAOe,OAAOT,MAAM0C,KAAKC,MAAMD,KAAKE,SAAWlD,OAAOe,OAAOT,MAAMG,UACrFqC,EAAUzB,SAASC,cAAc,QACzB6B,IAAML,EAAQM,MAAQpD,OAAOe,OAAOX,KAC5C0C,EAAQnB,UAAY,mBACpBmB,EAAQO,IAAM,GAAGrD,OAAOe,OAAW,KAAGf,OAAe,SAAGA,OAAc,WAKtE8C,EAAUzB,SAASC,cAAc,MACzBK,UAAY,kCACpBmB,EAAQM,MAAQpD,OAAOe,OAAOX,KAC9B0C,EAAQvB,UAAY,gCAKtBuB,EAAQQ,UAAUC,IAAI,UACtBT,EAAQU,iBAAiB,QAASxD,OAAOyD,kBACzCpC,SAASqC,KAAKC,YAAYb,KAG5B9C,SAAe,WAGO,oBAAT4D,MAAwBA,KAAKC,aAAe7D,OAAOiB,MAC5DjB,OAAOiC,OAIiB,gBAAxBZ,SAASyC,YAAwD,aAAxBzC,SAASyC,WACpD9D,OAAO+D,WAEPC,OAAOR,iBAAiB,oBAAkB,WAAK,OAAGxD,OAAO+D","file":"render.js","sourcesContent":["/* global page, swal */\n\nconst render = {\n lsKey: 'render',\n configs: {\n al: {\n name: 'ship waifu~',\n root: 'render/al/',\n // 001.png ~ 038.png\n array: Array.apply(null, { length: 38 }).map((_, i) => `${('00' + (i + 1)).slice(-3)}.png`)\n },\n miku: {\n name: 'miku ❤️~',\n root: 'render/miku/',\n // 001.png ~ 050.png\n array: Array.apply(null, { length: 50 }).map((_, i) => `${('00' + (i + 1)).slice(-3)}.png`)\n }\n },\n config: null,\n selected: null,\n done: false\n}\n\nrender.showTogglePrompt = () => {\n const renderEnabled = !(localStorage[render.lsKey] === '0')\n const div = document.createElement('div')\n div.innerHTML = `\n \n
\n \n
\n
If disabled, you will still be able to see a small button on the bottom right corner of the screen to re-enable it.
\n
\n `\n\n const buttons = {}\n if (renderEnabled) {\n buttons.reload = {\n text: 'Nah fam, show me a different render',\n className: 'swal-button--cancel'\n }\n }\n buttons.confirm = true\n\n swal({\n content: div,\n buttons\n }).then(value => {\n if (value === 'reload') {\n render.do(true)\n } else if (value) {\n const newValue = div.querySelector('#swalRender').checked ? undefined : '0'\n if (newValue !== localStorage[render.lsKey]) {\n if (newValue) localStorage[render.lsKey] = newValue\n else localStorage.removeItem(render.lsKey)\n swal('', `Random render is now ${newValue ? 'disabled' : 'enabled'}.`, 'success', {\n buttons: false,\n timer: 1500\n })\n render.do()\n }\n }\n })\n}\n\nrender.parseSelectedConfig = () => {\n const renderScript = document.querySelector('#renderScript')\n if (renderScript && renderScript.dataset.config) return renderScript.dataset.config\n}\n\nrender.parseVersion = () => {\n const renderScript = document.querySelector('#renderScript')\n if (renderScript && renderScript.dataset.version) return `?v=${renderScript.dataset.version}`\n else return ''\n}\n\nrender.do = reload => {\n if (!render.done) render.done = true\n\n render.config = render.configs[render.parseSelectedConfig()]\n if (!render.config || !render.config.array.length) return\n\n const previousElement = document.querySelector('body > .render')\n if (previousElement) previousElement.remove()\n\n const doRender = () => {\n if (typeof render.version === 'undefined') {\n render.version = render.parseVersion()\n }\n\n // Let us just allow people to get new render when toggling the option\n render.selected = render.config.array[Math.floor(Math.random() * render.config.array.length)]\n element = document.createElement('img')\n element.alt = element.title = render.config.name\n element.className = 'is-hidden-mobile'\n element.src = `${render.config.root}${render.selected}${render.version}`\n }\n\n let element\n if (!reload && localStorage[render.lsKey] === '0') {\n element = document.createElement('a')\n element.className = 'button is-info is-hidden-mobile'\n element.title = render.config.name\n element.innerHTML = ''\n } else {\n doRender()\n }\n\n element.classList.add('render')\n element.addEventListener('click', render.showTogglePrompt)\n document.body.appendChild(element)\n}\n\nrender.onloaded = () => {\n // If the main script had already done its API check, yet render haven't been triggered, do it\n // This would only happen if this render script only gets loaded after the main script's API check\n if (typeof page !== 'undefined' && page.apiChecked && !render.done) {\n render.do()\n }\n}\n\nif (document.readyState === 'interactive' || document.readyState === 'complete') {\n render.onloaded()\n} else {\n window.addEventListener('DOMContentLoaded', () => render.onloaded())\n}\n"]}
\ No newline at end of file
diff --git a/src/versions.json b/src/versions.json
index bbccad0..366799c 100644
--- a/src/versions.json
+++ b/src/versions.json
@@ -1,5 +1,5 @@
{
- "1": "1655891610",
+ "1": "1655892617",
"2": "1602515119",
"3": "1650485321",
"4": "1602515119",