From 088444bd4508369c7324ba895920033a7c9980b6 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Tue, 17 Dec 2024 00:01:48 -0500 Subject: [PATCH] [+] Json server --- server/data/meow.json | 1 + server/host.py | 71 +++++++++++++++++++++++++++++ {solver => server}/solver_server.py | 0 3 files changed, 72 insertions(+) create mode 100644 server/data/meow.json create mode 100644 server/host.py rename {solver => server}/solver_server.py (100%) diff --git a/server/data/meow.json b/server/data/meow.json new file mode 100644 index 0000000..66a9137 --- /dev/null +++ b/server/data/meow.json @@ -0,0 +1 @@ +{"hStates":{"__typedArray__":true,"type":"Int8Array","data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},"vStates":{"__typedArray__":true,"type":"Int8Array","data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},"numbers":{"__typedArray__":true,"type":"Int8Array","data":[2,2,2,1,1,2,1,1,2,1,2,1,1,2,2,1,1,2,2,1,1,1,2,2,1,2,2,1,1,2,1,2,2,2,1,2,2,1,2,2,2,2,2,1,2,3,2,2,3,2,3,2,2,2,2,1,2,2,2,2,1,1,2,2,3,2,2,2,1,3,3,2,1,2,2,2,2,3,3,2,2,2,1,2,3,1,2,2,1,2,2,2,2,1,1,2,3,1,1,2,2,2,1,0,1,1,0,2,2,1,2,0,0,1,2,1,1,1,1,2,1,2,2,1,2,1,2,2,2,1,2,2,2,3,2,1,2,2,2,2,2,2,1,0,1,3,1,2,2,3,3,2,0,2,2,3,3,2,1,2,1,2,2,2,3,2,3,2,2,2,3,2,2,1,1,2,2,1,2,2,2,2,1,1,1,2,2,2,0,1,0,2,2,2,0,1,0,2,2,2,2,2,1,2,2,3,2,2,2,1,2,2,3,1,1,2,1,0,1,2,2,2,2,3,2,2,2,2,0,0,0,2,2,2,0,0,0,2,2,2,2,2,1,2,1,1,1,2,2,2,3,2,2,1,1,2,2,0,2,2,2,2,3,2,3,2,1,2,2,0,2,2,0,2,2,0,2,2,1,2,1,2,2,3,1,0,1,3,2,2,2,2,2,3,2,2,3,2,3,2,2,2,2,1,2,2,1,0,2,3,2,0,0,0,2,3,2,1,1,2,1,2,1,2,0,0,1,2,0,2,2,2,2,1,0,2,2,1,2,1,1,1,2,2,2,2,1,1,0,1,0,0,0,0,0,2,2,3,3,2,2,2,1,3,1,1,3,2,2,2,2,1,2,2,1,2,2,2,2,2,3,2,2,1,2,1,2,3,1,1,1,1,1,1,1,3,1,1,1,1,2,1,1,2,1,0,2,2,3,2,3,2,0,2,2,2,2,3,2,2,2,3,1,2,3,2,3,1,2,2,2,2,2,2,2,2,3,3,2,1,2,1,2,2,2,0,1,2,1,1,1,2,2,1,3,2,2,3,2,2,1,1,2,2,1,1,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,3,2,0,2,2,1,2,1,2,1,0,2,2,1,1,2,1,2,2,1,2,2,0,1,2,1,2,2,2,1,3,2,3,2,1,1,3,2,2,1,2,0,0,0,2,3,2,2,2,0,0,0,2,2,0,2,3,2,1,2,2,0,0,0,2,2,2,2,2,1,2,2,2,2,1,2,2,3,2,2,3,2,0,2,2,2,1,2,1,0,0,0,0,2,1,0,1,0,1,2,0,0,0,0,1,2,2,2,2,2,2,2,1,1,1,3,0,2,1,2,2,2,2,2,2,3,3,2,1,0,0,0,0,1,2,0,1,0,2,1,0,0,0,0,1,2,2,2,2,2,1,2,2,0,0,2,2,3,2,1,2,2,2,2,2,1,1,2,1,0,0,0,0,0,2,3,3,3,2,0,0,0,0,0,1,2,2,1,2,2,2,0,2,2,0,1,3,2,2,1,2,2,3,2,2,3,2,3,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,3,2,2,3,2,2,2,0,2,1,0,2,1,2,2,2,1,1,1,3,2,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,1,1,2,1,3,3,2,2,2,3,1,0,1,0,3,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,1,2,2,2,2,2,0,2,2,2,1,1,2,3,2,2,0,0,2,2,2,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,2,1,2,2,3,2,2,2,2,1,1,2,2,1,1,2,0,3,1,1,3,1,2,0,0,1,3,1,0,0,0,0,0,0,1,3,1,0,0,0,2,1,0,2,2,1,3,1,2,2,2,0,3,2,2,3,2,2,1,1,3,2,1,0,0,1,2,1,0,0,0,0,0,0,1,2,1,0,0,0,1,1,1,3,2,1,2,0,1,1,2,2,2,1,2,2,3,2,2,2,2,2,1,0,0,1,2,1,0,0,0,0,0,0,1,2,1,0,0,0,1,2,1,2,2,3,3,1,1,1,1,2,2,2,2,1,1,1,2,3,2,2,1,1,1,2,2,1,0,0,0,0,0,0,1,2,2,1,1,1,1,2,2,3,1,1,2,1,2,1,1,2,2,1,2,2,1,2,1,2,2,2,2,2,2,2,2,1,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,1,2,2,2,1,2,2,2,2,2,2,1,2,2,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,2,2,1,1,2,1,1,2,2,2,2,2,2,2,2,2,3,2,1,2,2,3,2,2,2,2,1,1,1,1,0,0,1,0,0,1,1,1,1,2,2,2,1,2,3,1,2,2,2,2,2,3,2,2,2,1,1,2,3,2,2,2,2,2,0,1,1,1,1,2,2,2,3,2,2,2,1,1,1,1,0,2,2,3,1,3,2,2,2,2,2,0,2,2,2,1,1,0,1,2,2,2,0,2,2,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,2,2,1,3,1,1,2,2,1,3,0,0,2,2,2,2,3,2,1,3,2,3,2,0,2,2,1,1,1,0,0,0,0,0,0,0,0,1,1,2,2,1,2,1,1,2,2,0,0,2,2,1,3,2,2,2,1,2,2,1,1,0,3,1,1,1,2,2,2,2,0,0,0,0,0,1,1,3,1,2,1,2,1,2,2,1,0,0,0,0,2,2,2,1,1,2,1,0,2,2,0,1,3,2,3,2,3,2,2,2,2,0,0,0,2,3,2,2,2,3,1,1,2,2,0,0,0,0,0,0,0,1,3,1,2,2,1,0,0,2,2,0,1,2,2,1,3,1,3,1,2,2,0,2,2,0,2,2,2,3,1,2,2,0,0,0,0,0,0,0,0,2,2,2,2,2,1,0,0,0,2,2,1,3,2,2,2,2,2,0,0,2,2,2,0,0,1,2,1,1,2,2,0,0,0,0,0,0,0,0,2,2,1,3,0,2,1,0,0,0,0,2,2,2,2,2,2,2,0,0,0,1,2,1,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,2,2,1,1,2,2,2,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,2,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,0,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,0,2,2,1,1,1,1,1,1,1,1,0,1,2,2,2,1,3,1,1,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,3,2,3,2,2,3,2,2,3,2,2,2,2]},"nMask":{"__typedArray__":true,"type":"Int8Array","data":[0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,1,0,1,1,0,1,0,0,0,1,0,1,0,0,1,1,0,1,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,1,1,0,1,0,1,1,0,1,1,0,0,0,1,1,1,0,0,0,0,0,1,0,1,0,0,0,0,1,1,0,1,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,1,1,1,0,0,1,0,1,1,1,0,0,1,1,0,0,1,1,1,1,0,1,1,1,0,1,0,0,0,0,0,0,1,0,1,1,1,0,1,1,0,1,0,1,0,1,1,0,1,0,0,1,0,0,1,1,0,0,0,1,0,1,0,0,1,0,1,1,1,0,0,1,1,1,0,0,1,1,0,1,1,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,1,0,0,0,1,1,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,1,0,1,0,0,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,1,0,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,1,1,1,0,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,1,1,1,1,0,0,1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,1,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,1,1,0,1,0,1,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,1,0,0,0,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,1,1,1,0,1,0,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,1,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,1,1,0,0,0,1,0,0,1,0,1,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,1,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,1,0,0,1,0,1,0,0,1,1,1,1,0,1,1,0,0,1,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,1,1,1,1,0,1,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,1,0,1,0,1,0,0,0,0,0,1,1,1,0,1,1,0,0,1,1,0,1,1,0,1,1,0,1,0,1,1,0,0,1,0,1,0,0,1,1,0,1,0,0,0,1,1,0,1,1,1,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,0,0,1,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,0,1,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,0,1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,1,1,1,1,1,1,1,0,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,1,0,1,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,1,1,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,1,1,0,0,1,0,1,1,1,0,0,1,1,1,0,1,1,1,1,1,0,0,1,1,0,1,1,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,1,1,1,0,1,1,0,0,0,0,0,1,0,1,1,0,0,1,0,1,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,0,1,0,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,1,1,1,0,1,0,1,1,1,0,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,1,0,0,1,1,0,1,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1]},"hColors":{"__typedArray__":true,"type":"Int8Array","data":[8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,8,8,3,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,8,0,8,8,3,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,8,0,8,8,8,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,3,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,8,0,8,8,3,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,8,8,0,8,8,8,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,8,8,8,0,8,8,9,9,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,8,0,9,9,9,8,8,8,8,0,2,8,8,8,8,8,8,8,8,8,8,8,8,8,2,8,8,8,8,1,1,1,1,1,8,8,8,8,8,8,0,8,0,9,9,9,8,8,8,8,0,2,2,8,8,8,8,8,8,8,8,8,8,8,2,2,8,8,8,1,1,1,1,1,1,1,8,8,8,8,8,0,8,9,9,9,9,9,8,8,8,8,2,2,2,8,8,8,8,8,8,8,8,8,2,2,2,8,8,8,1,1,1,1,1,1,1,0,9,9,9,8,0,8,9,9,9,9,9,9,8,8,2,2,2,2,2,8,8,8,8,8,8,8,2,2,2,2,2,8,8,1,1,1,1,1,1,1,0,9,9,9,8,0,8,9,9,9,9,9,9,8,8,2,2,2,2,2,2,8,8,8,8,8,2,2,2,2,2,2,8,8,1,1,1,1,1,1,1,0,9,9,9,8,0,8,9,9,9,9,8,8,8,8,2,2,2,2,2,2,2,2,8,8,0,2,2,2,2,2,2,8,8,1,1,1,1,1,8,8,8,9,9,9,8,0,8,8,9,9,9,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,1,1,1,1,1,8,8,9,9,9,8,0,8,8,9,9,9,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,1,1,1,1,8,9,9,9,8,0,8,8,9,9,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,0,8,8,1,1,1,8,8,8,8,8,0,8,9,9,9,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,8,0,1,1,1,8,8,8,8,0,8,9,9,9,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,8,8,1,1,1,8,8,8,8,0,8,9,9,9,8,8,8,8,2,2,2,2,0,2,2,2,2,2,2,2,2,0,2,2,2,2,2,8,8,8,8,8,8,8,1,1,8,8,8,8,0,8,9,9,9,8,8,8,8,2,2,2,2,0,2,2,2,2,2,2,2,2,0,2,2,2,2,2,0,8,8,8,8,8,8,8,1,1,8,8,8,0,8,9,9,9,8,8,8,8,2,2,2,2,0,2,2,2,2,2,2,2,2,0,2,2,2,2,2,8,8,8,8,8,8,8,8,1,1,8,8,8,8,8,9,9,9,8,0,0,0,2,2,2,2,0,2,2,2,2,2,2,2,2,0,2,2,2,2,2,0,0,0,8,8,8,8,1,1,1,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,8,8,8,8,1,1,1,8,8,8,0,8,8,8,8,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,8,8,8,8,0,2,2,2,0,8,8,8,8,8,8,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,8,8,8,8,0,2,2,2,2,2,8,0,8,8,8,8,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,8,8,8,8,0,2,2,2,2,2,2,8,0,8,8,8,8,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,8,2,2,2,2,2,2,2,8,0,2,2,8,8,8,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,8,2,2,2,2,2,2,2,2,8,0,2,2,2,8,8,8,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,2,2,2,2,2,2,2,2,2,2,8,0,2,2,2,2,8,8,8,8,8,8,8,8,2,2,2,10,10,10,10,10,2,2,2,8,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,8,0,2,2,2,2,2,8,8,8,8,8,8,8,8,2,2,10,10,10,10,10,2,2,2,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,0,8,0,2,2,2,2,2,2,8,8,8,8,8,8,8,2,2,2,10,10,10,2,2,2,2,8,8,8,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,2,2,2,2,2,2,2,8,8,8,8,8,2,2,2,2,2,10,2,2,2,2,2,8,8,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,10,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,8,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,10,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,8,8,8,8,8,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,10,10,10,10,10,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,8,8,8,0,2,2,2,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,2,2,2,8,8,8,8,8,8,8,8,8,0,2,2,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,8,8,8,8,8,8,8,8,8,8,8,0]},"vColors":{"__typedArray__":true,"type":"Int8Array","data":[8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,0,0,0,8,8,8,0,8,0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,9,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,8,8,8,8,2,2,8,8,8,8,8,8,8,8,8,8,8,8,2,2,8,8,8,1,1,1,1,1,1,8,8,8,8,8,8,8,8,9,9,9,9,8,8,8,8,2,2,2,8,8,8,8,8,8,8,8,8,8,2,2,2,8,8,1,1,1,1,1,1,1,1,8,8,8,8,8,8,8,9,9,9,9,9,8,8,8,2,2,2,2,8,8,8,8,8,8,8,8,2,2,2,2,8,8,1,1,1,1,1,1,1,1,9,9,9,8,8,8,9,9,9,9,9,9,9,8,2,2,2,2,2,2,8,8,8,8,8,8,2,2,2,2,2,2,8,1,1,1,1,1,1,1,1,9,9,9,8,8,8,8,9,9,9,9,8,8,8,2,2,2,2,2,2,2,8,8,8,8,2,2,2,2,2,2,2,8,1,1,1,1,1,1,1,8,9,9,9,9,8,8,8,9,9,9,9,8,8,8,2,2,2,2,2,2,2,2,2,8,0,2,2,2,2,2,2,2,8,8,1,1,1,1,1,8,8,9,9,9,8,8,8,8,8,9,9,8,8,8,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,1,1,1,1,8,9,9,9,8,8,8,8,8,9,9,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,1,1,1,1,8,9,8,8,8,8,8,9,9,9,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,8,8,1,1,1,8,8,8,8,8,8,8,9,9,9,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,8,8,1,1,1,1,8,8,8,8,8,8,9,9,9,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,8,8,1,1,1,8,8,8,8,8,9,9,9,9,8,8,8,2,2,2,2,0,0,2,2,2,2,2,2,2,0,0,2,2,2,2,2,8,8,8,8,8,8,8,1,1,8,8,8,8,8,8,9,9,8,8,8,8,2,2,2,2,0,0,2,2,2,2,2,2,2,0,0,2,2,2,2,2,8,8,8,8,8,8,8,1,1,1,8,8,8,8,8,9,9,8,8,8,8,2,2,2,2,0,0,2,2,2,2,2,2,2,0,0,2,2,2,2,2,8,8,8,8,8,8,8,1,1,1,8,8,8,8,8,9,9,8,8,0,0,2,2,2,2,0,0,2,2,2,2,2,2,2,0,0,2,2,2,2,2,0,0,8,8,8,8,8,1,1,1,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,8,8,8,8,1,1,0,0,8,8,8,8,8,8,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,8,8,8,8,0,2,2,2,2,0,8,8,8,8,8,8,8,8,8,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,0,8,8,8,8,0,2,2,2,2,2,2,8,8,8,8,8,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,8,2,2,2,2,2,2,2,8,2,8,8,8,8,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,8,2,2,2,2,2,2,2,2,8,2,2,2,8,8,8,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,8,2,2,2,2,2,2,2,2,2,8,2,2,2,2,8,8,8,8,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,8,2,2,2,2,2,8,8,8,8,8,8,8,8,2,2,10,10,10,10,10,10,2,2,8,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,8,8,2,2,2,2,2,2,8,8,8,8,8,8,8,0,2,2,10,10,10,10,2,2,2,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,8,8,8,2,2,2,2,2,2,2,8,8,8,8,8,8,2,2,2,2,10,10,2,2,2,2,8,8,8,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,2,2,2,2,2,2,2,2,8,8,8,8,2,2,2,2,2,10,10,2,2,2,2,2,8,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,10,10,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,8,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,10,10,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,8,8,8,8,8,8,2,2,2,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,2,2,2,2,8,8,8,8,8,8,8,8,8,2,2,2,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,2,8,8,8,8,8,8,8,8,8,8,8,0,0,8,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},"colors":["#c1bada","#c07899","#d79e6c","#7471f2","#86a8e1","#b6e7a5","#fff18c","#f36767","#62618d","#ffcf40","#e8c799"]} \ No newline at end of file diff --git a/server/host.py b/server/host.py new file mode 100644 index 0000000..97d1251 --- /dev/null +++ b/server/host.py @@ -0,0 +1,71 @@ +import json +import random +from fastapi.responses import RedirectResponse +import uvicorn +from subprocess import check_output +from fastapi import FastAPI, Request +from fastapi.middleware.cors import CORSMiddleware +from pathlib import Path + + +app = FastAPI() +src = Path(__file__).parent +data = src / "data" + +origins = ["*"] + +app.add_middleware( + CORSMiddleware, + allow_origins=origins, + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +keys = { + "rows": "int", + "cols": "int", + "hStates": "list[int]", + "vStates": "list[int]", + "hColors": "list[int]", + "vColors": "list[int]", + "numbers": "list[int]", + "nMask": "list[int]", + "colors": "list[string]", +} + + +# Post / with a json: Create a puzzle +# Store the json in the data directory +@app.post("/") +async def input_request(request: Request): + body = (await request.body()).decode().replace("\r\n", "\n") + + # Parse json, ensure only keys in the whitelist exist, and ensure they are correct types + try: + obj = json.loads(body) + k = [k for k in obj if k not in keys] + assert not k, f"Invalid keys: {k}" + except Exception as e: + return str(e) + + # Randomly generate a 8-letter id for the puzzle + id = "".join(random.choices("abcdefghijklmnopqrstuvwxyz0123456789", k=8)) + tf = data / f"{id}.json" + tf.write_text(body) + return {"id": id} + + +# Get /{id}: Get the puzzle with the given id +@app.get("/{id}") +async def get_puzzle(id: str): + tf = data / f"{id}.json" + if not tf.exists(): + return {"error": "Puzzle not found"} + return tf.read_text() + + +# Getting / redirects to main page +@app.get("/") +async def get_main(): + return RedirectResponse("https://slither.hydev.org") diff --git a/solver/solver_server.py b/server/solver_server.py similarity index 100% rename from solver/solver_server.py rename to server/solver_server.py