diff --git a/public/admin/login.html b/public/admin/login.html
new file mode 100644
index 0000000..6f96393
--- /dev/null
+++ b/public/admin/login.html
@@ -0,0 +1 @@
+PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KICA8dGl0bGU+RnJhbWJlIEFkbWluIOKAlCBMb2dpbjwvdGl0bGU+CiAgPHN0eWxlPgogICAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfQogICAgYm9keSB7IGJhY2tncm91bmQ6ICMwZjBmMWE7IGNvbG9yOiAjZTBlMGUwOyBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBtaW4taGVpZ2h0OiAxMDB2aDsgfQogICAgLmxvZ2luLWNhcmQgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDQpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOyBib3JkZXItcmFkaXVzOiAxNnB4OyBwYWRkaW5nOiAyLjVyZW07IHdpZHRoOiAxMDAlOyBtYXgtd2lkdGg6IDM4MHB4OyB9CiAgICAubG9naW4taGVhZGVyIHsgdGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tYm90dG9tOiAycmVtOyB9CiAgICAubG9naW4taGVhZGVyIGltZyB7IHdpZHRoOiA1NnB4OyBoZWlnaHQ6IDU2cHg7IGJvcmRlci1yYWRpdXM6IDEycHg7IG1hcmdpbi1ib3R0b206IDFyZW07IH0KICAgIC5sb2dpbi1oZWFkZXIgaDEgeyBmb250LXNpemU6IDEuNHJlbTsgZm9udC13ZWlnaHQ6IDMwMDsgfQogICAgLmxvZ2luLWhlYWRlciBwIHsgZm9udC1zaXplOiAwLjhyZW07IGNvbG9yOiAjNjY2OyBtYXJnaW4tdG9wOiAwLjI1cmVtOyB9CiAgICAuZm9ybS1ncm91cCB7IG1hcmdpbi1ib3R0b206IDEuMjVyZW07IH0KICAgIC5mb3JtLWdyb3VwIGxhYmVsIHsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMC44cmVtOyBjb2xvcjogIzg4ODsgbWFyZ2luLWJvdHRvbTogMC40cmVtOyB9CiAgICAuZm9ybS1ncm91cCBpbnB1dCB7IHdpZHRoOiAxMDAlOyBwYWRkaW5nOiAxMHB4IDE0cHg7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wNik7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7IGJvcmRlci1yYWRpdXM6IDhweDsgY29sb3I6ICNlMGUwZTA7IGZvbnQtc2l6ZTogMC45NXJlbTsgb3V0bGluZTogbm9uZTsgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzOyB9CiAgICAuZm9ybS1ncm91cCBpbnB1dDpmb2N1cyB7IGJvcmRlci1jb2xvcjogIzYzNjZmMTsgfQogICAgLmxvZ2luLWJ0biB7IHdpZHRoOiAxMDAlOyBwYWRkaW5nOiAxMXB4OyBiYWNrZ3JvdW5kOiByZ2JhKDk5LDEwMiwyNDEsMC4yKTsgYm9yZGVyOiAxcHggc29saWQgIzYzNjZmMTsgYm9yZGVyLXJhZGl1czogOHB4OyBjb2xvcjogI2E1YjRmYzsgZm9udC1zaXplOiAwLjk1cmVtOyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zaXRpb246IGFsbCAwLjE1czsgfQogICAgLmxvZ2luLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoOTksMTAyLDI0MSwwLjM1KTsgfQogICAgLmxvZ2luLWJ0bjpkaXNhYmxlZCB7IG9wYWNpdHk6IDAuNTsgY3Vyc29yOiBub3QtYWxsb3dlZDsgfQogICAgLmVycm9yLW1zZyB7IGJhY2tncm91bmQ6IHJnYmEoMjM5LDY4LDY4LDAuMTIpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIzOSw2OCw2OCwwLjMpOyBib3JkZXItcmFkaXVzOiA4cHg7IGNvbG9yOiAjZmNhNWE1OyBmb250LXNpemU6IDAuODVyZW07IHBhZGRpbmc6IDhweCAxMnB4OyBtYXJnaW4tYm90dG9tOiAxcmVtOyBkaXNwbGF5OiBub25lOyB9CiAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICA8ZGl2IGNsYXNzPSJsb2dpbi1jYXJkIj4KICAgIDxkaXYgY2xhc3M9ImxvZ2luLWhlYWRlciI+CiAgICAgIDxpbWcgc3JjPSIvaW1nL2ljb24ucG5nIiBhbHQ9IkZyYW1iZSIgb25lcnJvcj0idGhpcy5zdHlsZS5kaXNwbGF5PSdub25lJyI+CiAgICAgIDxoMT5GcmFtYmUgQWRtaW48L2gxPgogICAgICA8cD5TaWduIGluIHRvIG1hbmFnZSB5b3VyIGZyYW1lczwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iZXJyb3ItbXNnIiBpZD0iZXJyb3ItbXNnIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICA8bGFiZWwgZm9yPSJ1c2VybmFtZSI+VXNlcm5hbWU8L2xhYmVsPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InVzZXJuYW1lIiBhdXRvY29tcGxldGU9InVzZXJuYW1lIiBhdXRvZm9jdXM+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICA8bGFiZWwgZm9yPSJwYXNzd29yZCI+UGFzc3dvcmQ8L2xhYmVsPgogICAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJwYXNzd29yZCIgYXV0b2NvbXBsZXRlPSJjdXJyZW50LXBhc3N3b3JkIj4KICAgIDwvZGl2PgogICAgPGJ1dHRvbiBjbGFzcz0ibG9naW4tYnRuIiBpZD0ibG9naW4tYnRuIiBvbmNsaWNrPSJkb0xvZ2luKCkiPlNpZ24gSW48L2J1dHRvbj4KICA8L2Rpdj4KICA8c2NyaXB0PgogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGZ1bmN0aW9uKGUpIHsgaWYgKGUua2V5ID09PSAnRW50ZXInKSBkb0xvZ2luKCk7IH0pOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VzZXJuYW1lJykuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGZ1bmN0aW9uKGUpIHsgaWYgKGUua2V5ID09PSAnRW50ZXInKSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFzc3dvcmQnKS5mb2N1cygpOyB9KTsKCiAgICBhc3luYyBmdW5jdGlvbiBkb0xvZ2luKCkgewogICAgICB2YXIgYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZ2luLWJ0bicpOwogICAgICB2YXIgZXJyRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXJyb3ItbXNnJyk7CiAgICAgIGJ0bi5kaXNhYmxlZCA9IHRydWU7CiAgICAgIGVyckVsLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgIHZhciB1c2VybmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1c2VybmFtZScpLnZhbHVlLnRyaW0oKTsKICAgICAgdmFyIHBhc3N3b3JkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykudmFsdWU7CiAgICAgIGlmICghdXNlcm5hbWUgfHwgIXBhc3N3b3JkKSB7IGVyckVsLnRleHRDb250ZW50ID0gJ1BsZWFzZSBlbnRlciBib3RoIHVzZXJuYW1lIGFuZCBwYXNzd29yZCc7IGVyckVsLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOyBidG4uZGlzYWJsZWQgPSBmYWxzZTsgcmV0dXJuOyB9CiAgICAgIHRyeSB7CiAgICAgICAgdmFyIHIgPSBhd2FpdCBmZXRjaCgnL2FwaS9hdXRoL2xvZ2luJywgeyBtZXRob2Q6ICdQT1NUJywgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgdXNlcm5hbWU6IHVzZXJuYW1lLCBwYXNzd29yZDogcGFzc3dvcmQgfSkgfSk7CiAgICAgICAgdmFyIGQgPSBhd2FpdCByLmpzb24oKTsKICAgICAgICBpZiAoZC5vaykgeyB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvYWRtaW4nOyB9CiAgICAgICAgZWxzZSB7IGVyckVsLnRleHRDb250ZW50ID0gZC5lcnJvciB8fCAnTG9naW4gZmFpbGVkJzsgZXJyRWwuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7IH0KICAgICAgfSBjYXRjaCAoZSkgeyBlcnJFbC50ZXh0Q29udGVudCA9ICdDb25uZWN0aW9uIGVycm9yJzsgZXJyRWwuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7IH0KICAgICAgYnRuLmRpc2FibGVkID0gZmFsc2U7CiAgICB9CiAgPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
\ No newline at end of file