diff --git a/build/web/flutter_service_worker.js b/build/web/flutter_service_worker.js
index 5a4d7dc..a9e183e 100644
--- a/build/web/flutter_service_worker.js
+++ b/build/web/flutter_service_worker.js
@@ -34,9 +34,9 @@ const RESOURCES = {"canvaskit/profiling/canvaskit.js": "c21852696bc1cc82e8894d85
"icons/Icon-maskable-512.png": "25413c989e9c1b460d72d2f0ea46081d",
"manifest.json": "b7a989c3dfb762f189887089ba69a55a",
"flutter.js": "c71a09214cb6f5f8996a531350400a9a",
-"index.html": "5f12250e12b7caccda3bad9af6dd7562",
-"/": "5f12250e12b7caccda3bad9af6dd7562",
-"main.dart.js": "caee4ab28a67b2064cfb3a21fe636f25"};
+"index.html": "bd1b7e1f425df47439dfd13aa1940e9d",
+"/": "bd1b7e1f425df47439dfd13aa1940e9d",
+"main.dart.js": "f608c8a66d4a32e511bb4175dc36b666"};
// The application shell files that are downloaded before a service worker can
// start.
const CORE = ["main.dart.js",
diff --git a/build/web/index.html b/build/web/index.html
index b2e139b..726648c 100644
--- a/build/web/index.html
+++ b/build/web/index.html
@@ -34,7 +34,7 @@
diff --git a/build/web/main.dart.js b/build/web/main.dart.js
index d564785..6a899cb 100644
--- a/build/web/main.dart.js
+++ b/build/web/main.dart.js
@@ -6467,7 +6467,7 @@ j=1}else j=3
q.a=k+n
s+=j
r=s
-p=!0}else if(o<127&&(B.Ah[o>>>4]&1<<(o&15))!==0){if(p&&65<=o&&90>=o){if(q==null)q=new A.br("")
+p=!0}else if(o<127&&(B.Ag[o>>>4]&1<<(o&15))!==0){if(p&&65<=o&&90>=o){if(q==null)q=new A.br("")
if(r>>4]&1<<(o&15))!==0)A.nG(a,s,"Invalid character")
else{if((o&64512)===55296&&s+1"))
+B.An=A.b(s([]),A.a_("v"))
B.M6=new A.UQ()
B.ai={}
B.fL=new A.b4(B.ai,[],t.hD)
@@ -59290,8 +59290,8 @@ B.xT=new A.lp(B.aL,B.Cd,B.bA,B.d4,null,B.aZ,null,B.zU,null)
B.fK=new A.m1(0,"start")
B.E6=new A.zU(null)
B.E7=new A.zV(null)
-B.A5=A.b(s([B.E6,B.E7]),t.F)
-B.xU=new A.lp(B.aL,B.fK,B.bA,B.d4,null,B.aZ,null,B.A5,null)
+B.A4=A.b(s([B.E6,B.E7]),t.F)
+B.xU=new A.lp(B.aL,B.fK,B.bA,B.d4,null,B.aZ,null,B.A4,null)
B.jc=new A.jB(0,"start")
B.xV=new A.jB(1,"end")
B.jd=new A.jB(3,"stretch")
@@ -59514,15 +59514,7 @@ B.Le=new A.hI(6,0.11)
B.Lf=new A.hI(8,0.12)
B.Lg=new A.hI(12,0.14)
B.jM=A.b(s([B.Ld,B.Li,B.Lh,B.Le,B.Lf,B.Lg]),A.a_("v"))
-B.G6=new A.dX("pharm","a medical blog","https://pharm.tytydraco.xyz")
-B.G7=new A.dX("melatonin","circadian rhythm advancement","https://melatonin.tytydraco.xyz")
-B.G5=new A.dX("yessleep","a r/nosleep scraper","https://yessleep.tytydraco.xyz")
-B.G3=new A.dX("masque","an anonymous chat client","https://masque.tytydraco.xyz")
-B.G9=new A.dX("naural","a simple binaural beat generator","https://naural.tytydraco.xyz")
-B.G8=new A.dX("spray_tool","medicated spray bottle calculator","https://spray_tool.tytydraco.xyz")
-B.G4=new A.dX("loggy","Log your day, everyday.","https://loggy.tytydraco.xyz")
-B.A3=A.b(s([B.G6,B.G7,B.G5,B.G3,B.G9,B.G8,B.G4]),A.a_("v"))
-B.A4=A.b(s([0,0,32722,12287,65534,34815,65534,18431]),t.t)
+B.A3=A.b(s([0,0,32722,12287,65534,34815,65534,18431]),t.t)
B.yB=new A.e9(0)
B.yC=new A.e9(1)
B.yD=new A.e9(2)
@@ -59535,7 +59527,7 @@ B.jv=new A.e9(8)
B.jN=A.b(s([B.yB,B.yC,B.yD,B.u,B.U,B.yE,B.f4,B.yF,B.jv]),A.a_("v"))
B.y=new A.iQ(0,"rtl")
B.k=new A.iQ(1,"ltr")
-B.Ac=A.b(s([B.y,B.k]),A.a_("v"))
+B.Ab=A.b(s([B.y,B.k]),A.a_("v"))
B.uY=new A.n5(0,"topLeft")
B.v0=new A.n5(3,"bottomRight")
B.L7=new A.hH(B.uY,B.v0)
@@ -59544,31 +59536,39 @@ B.uZ=new A.n5(1,"topRight")
B.v_=new A.n5(2,"bottomLeft")
B.L8=new A.hH(B.uZ,B.v_)
B.L9=new A.hH(B.v_,B.uZ)
-B.Ad=A.b(s([B.L7,B.La,B.L8,B.L9]),A.a_("v"))
+B.Ac=A.b(s([B.L7,B.La,B.L8,B.L9]),A.a_("v"))
B.vK=new A.la()
B.h9=new A.AS(1,"page")
B.ha=new A.db(B.z,B.h9)
-B.Ae=A.b(s([B.vK,B.ha]),A.a_("v"))
+B.Ad=A.b(s([B.vK,B.ha]),A.a_("v"))
B.jO=A.b(s([0,0,65490,12287,65535,34815,65534,18431]),t.t)
B.jP=A.b(s([0,0,32776,33792,1,10240,0,0]),t.t)
-B.Af=A.b(s(["click","scroll"]),t.s)
-B.Ah=A.b(s([0,0,32754,11263,65534,34815,65534,18431]),t.t)
-B.Ak=A.b(s([]),t.EQ)
+B.Ae=A.b(s(["click","scroll"]),t.s)
+B.Ag=A.b(s([0,0,32754,11263,65534,34815,65534,18431]),t.t)
+B.Aj=A.b(s([]),t.EQ)
B.jS=A.b(s([]),A.a_("v"))
-B.Ai=A.b(s([]),A.a_("v"))
-B.Am=A.b(s([]),t.yx)
+B.Ah=A.b(s([]),A.a_("v"))
+B.Al=A.b(s([]),t.yx)
B.dt=A.b(s([]),t.c)
B.jU=A.b(s([]),t.tD)
-B.An=A.b(s([]),A.a_("v>"))
+B.Am=A.b(s([]),A.a_("v>"))
B.fl=A.b(s([]),t.f8)
-B.Aj=A.b(s([]),t.E1)
+B.Ai=A.b(s([]),t.E1)
B.fk=A.b(s([]),t.V)
B.jT=A.b(s([]),t.s)
B.W=A.b(s([]),t.ve)
B.Mc=A.b(s([]),t.F)
B.jR=A.b(s([]),t.t)
B.jQ=A.b(s([]),t.zz)
-B.Al=A.b(s([]),A.a_("v"))
+B.Ak=A.b(s([]),A.a_("v"))
+B.G5=new A.dX("pharm","a medical blog","https://pharm.tytydraco.xyz")
+B.G6=new A.dX("melatonin","circadian rhythm advancement","https://melatonin.tytydraco.xyz")
+B.G4=new A.dX("yessleep","a r/nosleep scraper","https://yessleep.tytydraco.xyz")
+B.G3=new A.dX("masque","an anonymous chat client","https://masque.tytydraco.xyz")
+B.G9=new A.dX("naural","a simple binaural beat generator","https://naural.tytydraco.xyz")
+B.G7=new A.dX("spray_tool","medicated spray bottle calculator","https://spray_tool.tytydraco.xyz")
+B.G8=new A.dX("loggy","log your day, everyday.","https://loggy.tytydraco.xyz")
+B.Av=A.b(s([B.G5,B.G6,B.G4,B.G3,B.G9,B.G7,B.G8]),A.a_("v"))
B.ee=new A.hw(0,"left")
B.hu=new A.hw(1,"right")
B.hv=new A.hw(2,"center")
@@ -60454,24 +60454,24 @@ B.A1=A.b(s([B.oE,null,null,B.fE]),t.L)
B.A2=A.b(s([B.oF,null,null,B.fF]),t.L)
B.AG=A.b(s([B.oG,null,null,B.fG]),t.L)
B.AH=A.b(s([B.oH,null,null,B.fH]),t.L)
-B.As=A.b(s([B.cq,B.cq,B.dB,null]),t.L)
+B.Ar=A.b(s([B.cq,B.cq,B.dB,null]),t.L)
B.AI=A.b(s([B.dx,null,B.dx,null]),t.L)
-B.A6=A.b(s([B.at,null,null,B.fA]),t.L)
-B.A7=A.b(s([B.am,null,null,B.fC]),t.L)
-B.A8=A.b(s([B.an,null,null,B.fE]),t.L)
-B.Ag=A.b(s([B.au,null,null,B.fG]),t.L)
-B.Ap=A.b(s([B.fq,null,null,B.fD]),t.L)
-B.At=A.b(s([B.co,B.co,B.dA,null]),t.L)
+B.A5=A.b(s([B.at,null,null,B.fA]),t.L)
+B.A6=A.b(s([B.am,null,null,B.fC]),t.L)
+B.A7=A.b(s([B.an,null,null,B.fE]),t.L)
+B.Af=A.b(s([B.au,null,null,B.fG]),t.L)
+B.Ao=A.b(s([B.fq,null,null,B.fD]),t.L)
+B.As=A.b(s([B.co,B.co,B.dA,null]),t.L)
B.zV=A.b(s([B.aa,null,null,B.fx]),t.L)
-B.A9=A.b(s([B.bb,null,null,B.fz]),t.L)
+B.A8=A.b(s([B.bb,null,null,B.fz]),t.L)
B.AC=A.b(s([B.dw,null,null,B.fw]),t.L)
-B.Aa=A.b(s([B.bc,null,null,B.fF]),t.L)
-B.Aq=A.b(s([B.fr,null,null,B.fy]),t.L)
-B.Au=A.b(s([B.cr,B.cr,B.dC,null]),t.L)
-B.Ab=A.b(s([B.cm,null,null,B.fB]),t.L)
-B.Ar=A.b(s([B.cn,null,null,B.fH]),t.L)
-B.Av=A.b(s([B.bz,B.bz,B.cp,null]),t.L)
-B.Cw=new A.bT(["*",B.Ax,"+",B.Ay,"-",B.Az,".",B.AA,"/",B.AB,"0",B.zW,"1",B.zX,"2",B.zY,"3",B.zZ,"4",B.A_,"5",B.A0,"6",B.A1,"7",B.A2,"8",B.AG,"9",B.AH,"Alt",B.As,"AltGraph",B.AI,"ArrowDown",B.A6,"ArrowLeft",B.A7,"ArrowRight",B.A8,"ArrowUp",B.Ag,"Clear",B.Ap,"Control",B.At,"Delete",B.zV,"End",B.A9,"Enter",B.AC,"Home",B.Aa,"Insert",B.Aq,"Meta",B.Au,"PageDown",B.Ab,"PageUp",B.Ar,"Shift",B.Av],A.a_("bT>"))
+B.A9=A.b(s([B.bc,null,null,B.fF]),t.L)
+B.Ap=A.b(s([B.fr,null,null,B.fy]),t.L)
+B.At=A.b(s([B.cr,B.cr,B.dC,null]),t.L)
+B.Aa=A.b(s([B.cm,null,null,B.fB]),t.L)
+B.Aq=A.b(s([B.cn,null,null,B.fH]),t.L)
+B.Au=A.b(s([B.bz,B.bz,B.cp,null]),t.L)
+B.Cw=new A.bT(["*",B.Ax,"+",B.Ay,"-",B.Az,".",B.AA,"/",B.AB,"0",B.zW,"1",B.zX,"2",B.zY,"3",B.zZ,"4",B.A_,"5",B.A0,"6",B.A1,"7",B.A2,"8",B.AG,"9",B.AH,"Alt",B.Ar,"AltGraph",B.AI,"ArrowDown",B.A5,"ArrowLeft",B.A6,"ArrowRight",B.A7,"ArrowUp",B.Af,"Clear",B.Ao,"Control",B.As,"Delete",B.zV,"End",B.A8,"Enter",B.AC,"Home",B.A9,"Insert",B.Ap,"Meta",B.At,"PageDown",B.Aa,"PageUp",B.Aq,"Shift",B.Au],A.a_("bT>"))
B.Cx=new A.q_(null,null,null,null,null,null,null,null)
B.xH=new A.z(4293128957)
B.xD=new A.z(4290502395)