From 3acb6056856738f316b369cac3ca7a2715defdbd Mon Sep 17 00:00:00 2001 From: Stavros Date: Wed, 6 Dec 2023 22:03:03 +0200 Subject: [PATCH 01/30] refactor(docker-compose): improve docker compose file --- compose.yaml => docker-compose.yaml | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) rename compose.yaml => docker-compose.yaml (71%) diff --git a/compose.yaml b/docker-compose.yaml similarity index 71% rename from compose.yaml rename to docker-compose.yaml index 122a373..fbf2e3d 100644 --- a/compose.yaml +++ b/docker-compose.yaml @@ -1,6 +1,6 @@ services: dweebui: - container_name: DweebUI + container_name: dweebui image: lllllllillllllillll/dweebui:v0.06 environment: NODE_ENV: production @@ -14,18 +14,14 @@ services: links: - cache volumes: - - dweebui:/app - - caddyfiles:/app/caddyfiles + - ./data/app:/app + - ./data/caddyfiles:/app/caddyfiles - /var/run/docker.sock:/var/run/docker.sock - cache: - container_name: DweebCache + + dweeb-redis: + container_name: dweeb-redis image: redis:6.2-alpine - restart: always + restart: unless-stopped command: redis-server --save 20 1 --loglevel warning --requirepass replace_with_password_for_redis volumes: - - cache:/data - -volumes: - dweebui: - cache: - caddyfiles: + - ./data/redis:/data From 8dcfc162460831b356d9c2d08169b9d8958eab3e Mon Sep 17 00:00:00 2001 From: Stavros Date: Wed, 6 Dec 2023 22:05:26 +0200 Subject: [PATCH 02/30] feat(docker-compose): add a custom network --- docker-compose.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docker-compose.yaml b/docker-compose.yaml index fbf2e3d..d585552 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,4 +1,6 @@ +version: "3.9" services: + dweebui: container_name: dweebui image: lllllllillllllillll/dweebui:v0.06 @@ -17,6 +19,8 @@ services: - ./data/app:/app - ./data/caddyfiles:/app/caddyfiles - /var/run/docker.sock:/var/run/docker.sock + networks: + - dweeb_main_network dweeb-redis: container_name: dweeb-redis @@ -25,3 +29,9 @@ services: command: redis-server --save 20 1 --loglevel warning --requirepass replace_with_password_for_redis volumes: - ./data/redis:/data + networks: + - dweeb_main_network + +networks: + dweeb_main_network: + driver: bridge From 632bcc63f72088695c70e77d446ab1af2cbfe4ca Mon Sep 17 00:00:00 2001 From: Stavros Date: Wed, 6 Dec 2023 22:07:37 +0200 Subject: [PATCH 03/30] refactor(readme): update compose file. --- README.md | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index fa40689..d1a0bbb 100644 --- a/README.md +++ b/README.md @@ -38,9 +38,11 @@ Pre-Pre-Pre-Pre-Pre Alpha v0.06 ( :fire: Experimental. Don't install on any serv * Docker compose.yaml: ``` +version: "3.9" services: + dweebui: - container_name: DweebUI + container_name: dweebui image: lllllllillllllillll/dweebui:v0.06 environment: NODE_ENV: production @@ -54,23 +56,29 @@ services: links: - cache volumes: - - dweebui:/app - - caddyfiles:/app/caddyfiles + - ./data/app:/app + - ./data/caddyfiles:/app/caddyfiles - /var/run/docker.sock:/var/run/docker.sock - cache: - container_name: DweebCache + networks: + - dweeb_main_network + + dweeb-redis: + container_name: dweeb-redis image: redis:6.2-alpine - restart: always + restart: unless-stopped command: redis-server --save 20 1 --loglevel warning --requirepass replace_with_password_for_redis volumes: - - cache:/data + - ./data/redis:/data + networks: + - dweeb_main_network -volumes: - dweebui: - cache: - caddyfiles: +networks: + dweeb_main_network: + driver: bridge ``` +In order to use the compose file create a folder named somethign like ```dweebui``` and add the contents of above to a file named ```docker-compose.yml```. Also make sure to create a ```data``` folder for the dweeb files to be storred in. + * Using setup.sh: ``` Extract DweebUI.zip and navigate to /DweebUI From e06932a6f4d6a1917de4dd2c4803e4a5d94a7624 Mon Sep 17 00:00:00 2001 From: Stavros Date: Wed, 6 Dec 2023 22:08:30 +0200 Subject: [PATCH 04/30] refactor(readme): fix small typing error. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d1a0bbb..e2b8263 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Pre-Pre-Pre-Pre-Pre Alpha v0.06 ( :fire: Experimental. Don't install on any serv ## Setup -* Docker compose.yaml: +* Docker Compose: ``` version: "3.9" services: From 76f31e3b90c5431e98a8fa146fe0a1bfb1a34765 Mon Sep 17 00:00:00 2001 From: lllllllillllllillll <147879489+lllllllillllllillll@users.noreply.github.com> Date: Fri, 8 Dec 2023 01:41:51 -0800 Subject: [PATCH 05/30] placeholder --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 26e792c..68ee4fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## v0.08 (dev) +* ??? + ## v0.07 (Dec 8th 2023) * View container logs. * Removed Redis. From 1f94d6154b72d087a4774d446d14850591b8e4b9 Mon Sep 17 00:00:00 2001 From: lllllllillllllillll <147879489+lllllllillllllillll@users.noreply.github.com> Date: Fri, 8 Dec 2023 01:42:26 -0800 Subject: [PATCH 06/30] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 43f04ad..d009d8d 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # DweebUI DweebUI is a simple Docker web interface created with javascript and node.js -Pre-Pre-Pre-Pre-Pre Alpha v0.07 ( :fire: Experimental. Don't install on any servers you care about :fire: ) +Pre-Pre-Pre-Pre-Pre Alpha v0.08 ( :fire: Experimental. Don't install on any servers you care about :fire: ) [![GitHub Stars](https://img.shields.io/github/stars/lllllllillllllillll/DweebUI)](https://github.com/lllllllillllllillll) [![GitHub License](https://img.shields.io/github/license/lllllllillllllillll/DweebUI)](https://github.com/lllllllillllllillll/DweebUI/blob/main/LICENSE) From d50d0f85abbd2732f96bfb8de603dbda54da18f2 Mon Sep 17 00:00:00 2001 From: lllllllillllllillll <147879489+lllllllillllllillll@users.noreply.github.com> Date: Fri, 8 Dec 2023 13:55:30 -0800 Subject: [PATCH 07/30] Add files via upload --- LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..afd0d19 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 lllllllillllllillll + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From dff7e384dbfa7135522d880330496bd50c55bc71 Mon Sep 17 00:00:00 2001 From: lllllllillllllillll <147879489+lllllllillllllillll@users.noreply.github.com> Date: Fri, 8 Dec 2023 13:57:42 -0800 Subject: [PATCH 08/30] fix conflict by deleting --- compose.yaml | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 compose.yaml diff --git a/compose.yaml b/compose.yaml deleted file mode 100644 index 11cf584..0000000 --- a/compose.yaml +++ /dev/null @@ -1,19 +0,0 @@ -services: - dweebui: - container_name: DweebUI - image: lllllllillllllillll/dweebui:v0.07 - environment: - NODE_ENV: production - PORT: 8000 - # Proxy_Manager: enabled - restart: unless-stopped - ports: - - 8000:8000 - volumes: - - dweebui:/app - - caddyfiles:/app/caddyfiles - - /var/run/docker.sock:/var/run/docker.sock - -volumes: - dweebui: - caddyfiles: From c2ba8aaa8925c1eeb4394b8d3b7444ec4cdbbb24 Mon Sep 17 00:00:00 2001 From: lllllllillllllillll <147879489+lllllllillllllillll@users.noreply.github.com> Date: Fri, 8 Dec 2023 13:58:08 -0800 Subject: [PATCH 09/30] fix conflict by deleting --- README.md | 75 ------------------------------------------------------- 1 file changed, 75 deletions(-) delete mode 100644 README.md diff --git a/README.md b/README.md deleted file mode 100644 index d009d8d..0000000 --- a/README.md +++ /dev/null @@ -1,75 +0,0 @@ -# DweebUI -DweebUI is a simple Docker web interface created with javascript and node.js - -Pre-Pre-Pre-Pre-Pre Alpha v0.08 ( :fire: Experimental. Don't install on any servers you care about :fire: ) - -[![GitHub Stars](https://img.shields.io/github/stars/lllllllillllllillll/DweebUI)](https://github.com/lllllllillllllillll) -[![GitHub License](https://img.shields.io/github/license/lllllllillllllillll/DweebUI)](https://github.com/lllllllillllllillll/DweebUI/blob/main/LICENSE) -[![GitHub Activity](https://img.shields.io/github/commit-activity/y/lllllllillllllillll/DweebUI)](https://github.com/lllllllillllllillll) - -* I haven't used Github very much and I'm still new to javascript. -* This is the first project I've ever released and I'm sure it's full of plenty of bugs and mistakes. -* I probably should have waited a lot longer to share this :| - - - - - - -## Features -* [x] Dashboard provides server metrics (cpu, ram, network, disk) and container controls on a single page. -* [x] Light/Dark Mode. -* [x] Easy to install app templates. -* [x] Automatically persists data in docker volumes if bind mount isn't used. -* [x] Proxy manager for Caddy. (Optional) -* [x] Partial Portainer Template Support (Network Mode, Ports, Volumes, Enviroment Variables, Labels, Commands, Restart Policy, Nvidia Hardware Acceleration). -* [x] Multi-User built-in. -* [ ] User pages: Shortcuts, Requests, Support. (planned) -* [x] Support for Windows, Linux, and MacOS. -* [ ] Import compose files. (planned) -* [x] Javascript, Node.js, and Express. -* [x] Templates.json maintains compatability with Portainer, allowing you to use the template without needing to use DweebUI. -* [ ] Manage your Docker networks, images, and volumes. (planned) -* [ ] Preset variables. (planned) -* [ ] VPN, VPS, and Firewall Toggles. (planned) -* [ ] Offline Mode. (planned) - -## Setup - -* Docker compose.yaml: -``` -services: -  dweebui: -    container_name: DweebUI -    image: lllllllillllllillll/dweebui:v0.07 -    environment: -      NODE_ENV: production -      PORT: 8000 -      # Proxy_Manager: enabled -    restart: unless-stopped -    ports: -      - 8000:8000 -    volumes: -      - dweebui:/app -      - caddyfiles:/app/caddyfiles -      - /var/run/docker.sock:/var/run/docker.sock - -volumes: -  dweebui: -  caddyfiles: -``` - -* Using setup.sh: -``` -Extract DweebUI.zip and navigate to /DweebUI -cd DweebUI -chmod +x setup.sh -sudo ./setup.sh -``` - - -## Credit - -* UI was built using HTML and CSS elements from https://tabler.io/ -* Apps template based on Portainer template provided by Lissy93: https://github.com/Lissy93/portainer-templates -* Icons from Walkxcode with some renames and additions: https://github.com/walkxcode/dashboard-icons From 633c9779c90aea52b1c8c9e1a56137aa11fae2b2 Mon Sep 17 00:00:00 2001 From: lllllllillllllillll Date: Fri, 8 Dec 2023 18:23:31 -0800 Subject: [PATCH 10/30] Updating compose file --- README.md | 95 +++++++++++++++++++++++++++++++++++++++++++++ docker-compose.yaml | 37 ++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 README.md create mode 100644 docker-compose.yaml diff --git a/README.md b/README.md new file mode 100644 index 0000000..517b02a --- /dev/null +++ b/README.md @@ -0,0 +1,95 @@ +# DweebUI +DweebUI is a simple Docker web interface created with javascript and node.js + +Pre-Pre-Pre-Pre-Pre Alpha v0.06 ( :fire: Experimental. Don't install on any servers you care about :fire: ) + +[![GitHub Stars](https://img.shields.io/github/stars/lllllllillllllillll/DweebUI)](https://github.com/lllllllillllllillll) +[![GitHub License](https://img.shields.io/github/license/lllllllillllllillll/DweebUI)](https://github.com/lllllllillllllillll/DweebUI/blob/main/LICENSE) +[![GitHub Activity](https://img.shields.io/github/commit-activity/y/lllllllillllllillll/DweebUI)](https://github.com/lllllllillllllillll) + +* I haven't used Github very much and I'm still new to javascript. +* This is the first project I've ever released and I'm sure it's full of plenty of bugs and mistakes. +* I probably should have waited a lot longer to share this :| + + + + + + +## Features +* [x] Dashboard provides server metrics (cpu, ram, network, disk) and container controls on a single page. +* [x] Light/Dark Mode. +* [x] Easy to install app templates. +* [x] Automatically persists data in docker volumes if bind mount isn't used. +* [x] Proxy manager for Caddy. (Optional) +* [x] Partial Portainer Template Support (Network Mode, Ports, Volumes, Enviroment Variables, Labels, Commands, Restart Policy, Nvidia Hardware Acceleration). +* [x] Multi-User built-in. +* [ ] User pages: Shortcuts, Requests, Support. (planned) +* [x] Support for Windows, Linux, and MacOS. +* [ ] Import compose files. (planned) +* [x] Pure javascript. No frameworks or typescript. +* [x] Templates.json maintains compatability with Portainer, allowing you to use the template without needing to use DweebUI. +* [ ] Manage your Docker networks, images, and volumes. (planned) +* [ ] Preset variables. (planned) +* [ ] VPN, VPS, and Firewall Toggles. (planned) +* [ ] Offline Mode. (planned) + +## Setup + +* Docker Compose: +``` +version: "3.9" +services: + + dweebui: + container_name: dweebui + image: lllllllillllllillll/dweebui:v0.06 + environment: + NODE_ENV: production + REDIS_PASS: replace_with_password_for_redis + # Proxy_Manager: enabled + restart: unless-stopped + ports: + - 8000:8000 + depends_on: + - cache + links: + - cache + volumes: + - ./data/app:/app + - ./data/caddyfiles:/app/caddyfiles + - /var/run/docker.sock:/var/run/docker.sock + networks: + - dweeb_main_network + + dweeb-redis: + container_name: dweeb-redis + image: redis:6.2-alpine + restart: unless-stopped + command: redis-server --save 20 1 --loglevel warning --requirepass replace_with_password_for_redis + volumes: + - ./data/redis:/data + networks: + - dweeb_main_network + +networks: + dweeb_main_network: + driver: bridge +``` + +In order to use the compose file create a folder named somethign like ```dweebui``` and add the contents of above to a file named ```docker-compose.yml```. Also make sure to create a ```data``` folder for the dweeb files to be storred in. + +* Using setup.sh: +``` +Extract DweebUI.zip and navigate to /DweebUI +cd DweebUI +chmod +x setup.sh +sudo ./setup.sh +``` + + +## Credit + +* UI was built using HTML and CSS elements from https://tabler.io/ +* Apps template based on Portainer template provided by Lissy93 here: https://github.com/Lissy93/portainer-templates +* Most of the app icons were sourced from Walkxcode's dashboard icons here: https://github.com/walkxcode/dashboard-icons diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..d585552 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,37 @@ +version: "3.9" +services: + + dweebui: + container_name: dweebui + image: lllllllillllllillll/dweebui:v0.06 + environment: + NODE_ENV: production + REDIS_PASS: replace_with_password_for_redis + # Proxy_Manager: enabled + restart: unless-stopped + ports: + - 8000:8000 + depends_on: + - cache + links: + - cache + volumes: + - ./data/app:/app + - ./data/caddyfiles:/app/caddyfiles + - /var/run/docker.sock:/var/run/docker.sock + networks: + - dweeb_main_network + + dweeb-redis: + container_name: dweeb-redis + image: redis:6.2-alpine + restart: unless-stopped + command: redis-server --save 20 1 --loglevel warning --requirepass replace_with_password_for_redis + volumes: + - ./data/redis:/data + networks: + - dweeb_main_network + +networks: + dweeb_main_network: + driver: bridge From b17af5804e8a150d7d532e0468e738131ab1dde8 Mon Sep 17 00:00:00 2001 From: lllllllillllllillll <147879489+lllllllillllllillll@users.noreply.github.com> Date: Fri, 8 Dec 2023 21:48:46 -0800 Subject: [PATCH 11/30] tweaks for recent pull merge --- README.md | 26 +++++--------------- docker-compose.yaml | 60 +++++++++++++++++---------------------------- functions/system.js | 4 +-- 3 files changed, 31 insertions(+), 59 deletions(-) diff --git a/README.md b/README.md index e2b8263..bbb6b67 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # DweebUI DweebUI is a simple Docker web interface created with javascript and node.js -Pre-Pre-Pre-Pre-Pre Alpha v0.06 ( :fire: Experimental. Don't install on any servers you care about :fire: ) +Pre-Pre-Pre-Pre-Pre Alpha v0.08 ( :fire: Experimental. Don't install on any servers you care about :fire: ) [![GitHub Stars](https://img.shields.io/github/stars/lllllllillllllillll/DweebUI)](https://github.com/lllllllillllllillll) [![GitHub License](https://img.shields.io/github/license/lllllllillllllillll/DweebUI)](https://github.com/lllllllillllllillll/DweebUI/blob/main/LICENSE) @@ -43,41 +43,27 @@ services: dweebui: container_name: dweebui - image: lllllllillllllillll/dweebui:v0.06 + image: lllllllillllllillll/dweebui:v0.08-dev environment: NODE_ENV: production - REDIS_PASS: replace_with_password_for_redis + PORT: 8000 # Proxy_Manager: enabled restart: unless-stopped ports: - 8000:8000 - depends_on: - - cache - links: - - cache volumes: - ./data/app:/app - ./data/caddyfiles:/app/caddyfiles - /var/run/docker.sock:/var/run/docker.sock networks: - dweeb_main_network - - dweeb-redis: - container_name: dweeb-redis - image: redis:6.2-alpine - restart: unless-stopped - command: redis-server --save 20 1 --loglevel warning --requirepass replace_with_password_for_redis - volumes: - - ./data/redis:/data - networks: - - dweeb_main_network networks: dweeb_main_network: driver: bridge ``` -In order to use the compose file create a folder named somethign like ```dweebui``` and add the contents of above to a file named ```docker-compose.yml```. Also make sure to create a ```data``` folder for the dweeb files to be storred in. +Compose setup: Paste the above content into a file named ```docker-compose.yml``` then place it in a folder named ```dweebui```. You'll also need to create a ```data``` folder for the dweeb files to be stored in. * Using setup.sh: ``` @@ -91,5 +77,5 @@ sudo ./setup.sh ## Credit * UI was built using HTML and CSS elements from https://tabler.io/ -* Apps template based on Portainer template provided by Lissy93 here: https://github.com/Lissy93/portainer-templates -* Most of the app icons were sourced from Walkxcode's dashboard icons here: https://github.com/walkxcode/dashboard-icons +* Apps template based on Portainer template provided by Lissy93: https://github.com/Lissy93/portainer-templates +* Icons from Walkxcode with some renames and additions: https://github.com/walkxcode/dashboard-icons \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index d585552..a881f32 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,37 +1,23 @@ -version: "3.9" -services: - - dweebui: - container_name: dweebui - image: lllllllillllllillll/dweebui:v0.06 - environment: - NODE_ENV: production - REDIS_PASS: replace_with_password_for_redis - # Proxy_Manager: enabled - restart: unless-stopped - ports: - - 8000:8000 - depends_on: - - cache - links: - - cache - volumes: - - ./data/app:/app - - ./data/caddyfiles:/app/caddyfiles - - /var/run/docker.sock:/var/run/docker.sock - networks: - - dweeb_main_network - - dweeb-redis: - container_name: dweeb-redis - image: redis:6.2-alpine - restart: unless-stopped - command: redis-server --save 20 1 --loglevel warning --requirepass replace_with_password_for_redis - volumes: - - ./data/redis:/data - networks: - - dweeb_main_network - -networks: - dweeb_main_network: - driver: bridge +version: "3.9" +services: + + dweebui: + container_name: dweebui + image: lllllllillllllillll/dweebui:v0.08-dev + environment: + NODE_ENV: production + PORT: 8000 + # Proxy_Manager: enabled + restart: unless-stopped + ports: + - 8000:8000 + volumes: + - ./data/app:/app + - ./data/caddyfiles:/app/caddyfiles + - /var/run/docker.sock:/var/run/docker.sock + networks: + - dweeb_main_network + +networks: + dweeb_main_network: + driver: bridge diff --git a/functions/system.js b/functions/system.js index f34a531..94b21bc 100644 --- a/functions/system.js +++ b/functions/system.js @@ -33,7 +33,7 @@ module.exports.containerList = async function () { for (const container of data) { - if ((container.Names[0].slice(1) != 'DweebUI') && (container.Names[0].slice(1) != 'DweebCache')) { + if (container.Names[0].slice(1) != 'dweebui') { let imageVersion = container.Image.split('/'); let service = imageVersion[imageVersion.length - 1].split(':')[0]; @@ -172,7 +172,7 @@ module.exports.containerStats = async function () { for (const container of data) { - if ((container.Names[0].slice(1) != 'DweebUI') && (container.Names[0].slice(1) != 'DweebCache')) { + if (container.Names[0].slice(1) != 'dweebui') { const stats = await dockerContainerStats(container.Id); let container_stat = { From 96d8ea785088c31d8c7e42b3de44cd70c33458ca Mon Sep 17 00:00:00 2001 From: lllllllillllllillll Date: Sat, 9 Dec 2023 12:49:50 -0800 Subject: [PATCH 12/30] Reverting to Docker volumes. I'll create seperate instructions for bind mounts. --- README.md | 20 +++++++++++++++----- docker-compose.yaml | 14 ++++++++++---- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index bbb6b67..f27265f 100644 --- a/README.md +++ b/README.md @@ -52,18 +52,28 @@ services: ports: - 8000:8000 volumes: - - ./data/app:/app - - ./data/caddyfiles:/app/caddyfiles + - dweebui:/app + - caddyfiles:/app/caddyfiles - /var/run/docker.sock:/var/run/docker.sock networks: - - dweeb_main_network + - dweeb_network + + +volumes: + dweebui: + caddyfiles: + networks: - dweeb_main_network: + dweeb_network: driver: bridge ``` -Compose setup: Paste the above content into a file named ```docker-compose.yml``` then place it in a folder named ```dweebui```. You'll also need to create a ```data``` folder for the dweeb files to be stored in. +* Compose setup: +Paste the above content into a file named ```docker-compose.yml``` then place it in a folder named ```dweebui```. +Open a terminal in the ```dweebui``` folder, then enter ```docker compose up -d```. +You may need to use ```docker-compose up -d``` or execute the command as root with either ```sudo docker compose up -d``` or ```sudo docker-compose up -d```. + * Using setup.sh: ``` diff --git a/docker-compose.yaml b/docker-compose.yaml index a881f32..0f16e6d 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -12,12 +12,18 @@ services: ports: - 8000:8000 volumes: - - ./data/app:/app - - ./data/caddyfiles:/app/caddyfiles + - dweebui:/app + - caddyfiles:/app/caddyfiles - /var/run/docker.sock:/var/run/docker.sock networks: - - dweeb_main_network + - dweeb_network + + +volumes: + dweebui: + caddyfiles: + networks: - dweeb_main_network: + dweeb_network: driver: bridge From 4a626d4aab0915fb442d753668b9fb096f0f169a Mon Sep 17 00:00:00 2001 From: lllllllillllllillll Date: Sat, 9 Dec 2023 12:53:52 -0800 Subject: [PATCH 13/30] fix formatting --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f27265f..39fe57a 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,8 @@ networks: driver: bridge ``` -* Compose setup: +* Compose setup: + Paste the above content into a file named ```docker-compose.yml``` then place it in a folder named ```dweebui```. Open a terminal in the ```dweebui``` folder, then enter ```docker compose up -d```. You may need to use ```docker-compose up -d``` or execute the command as root with either ```sudo docker compose up -d``` or ```sudo docker-compose up -d```. From b5114ace4fe13418fd0ccf1e784ac65eec39a0ff Mon Sep 17 00:00:00 2001 From: lllllllillllllillll Date: Sun, 10 Dec 2023 14:25:26 -0800 Subject: [PATCH 14/30] drop-down button on Apps page Added settings icon to Apps page. First step for compose file support. --- views/pages/apps.ejs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/views/pages/apps.ejs b/views/pages/apps.ejs index 07c0153..63e9cdc 100644 --- a/views/pages/apps.ejs +++ b/views/pages/apps.ejs @@ -38,13 +38,31 @@
+
-   +   + + +
+ From 821ece2e881a71c73bd454f57e958feaa792b08e Mon Sep 17 00:00:00 2001 From: lllllllillllllillll Date: Sun, 10 Dec 2023 16:37:01 -0800 Subject: [PATCH 15/30] added SECRET field to register --- CHANGELOG.md | 2 +- README.md | 19 ++++++++++++------- controllers/auth.js | 4 ++-- docker-compose.yaml | 7 ++++++- views/pages/apps.ejs | 2 +- views/pages/register.ejs | 5 +++++ views/partials/footer.ejs | 2 +- 7 files changed, 28 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68ee4fd..dc58580 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ ## v0.08 (dev) -* ??? +* Added SECRET to register page as a simple security measure. ## v0.07 (Dec 8th 2023) * View container logs. diff --git a/README.md b/README.md index 39fe57a..a0eaab1 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Pre-Pre-Pre-Pre-Pre Alpha v0.08 ( :fire: Experimental. Don't install on any serv ## Setup -* Docker Compose: +Docker Compose: ``` version: "3.9" services: @@ -44,10 +44,13 @@ services: dweebui: container_name: dweebui image: lllllllillllllillll/dweebui:v0.08-dev + # build: + # context: . environment: NODE_ENV: production PORT: 8000 - # Proxy_Manager: enabled + SECRET: MrWiskers + #Proxy_Manager: enabled restart: unless-stopped ports: - 8000:8000 @@ -55,6 +58,8 @@ services: - dweebui:/app - caddyfiles:/app/caddyfiles - /var/run/docker.sock:/var/run/docker.sock + #- ./custom-templates.json:/app/custom-templates.json + #- ./composefiles:/app/composefiles networks: - dweeb_network @@ -69,14 +74,14 @@ networks: driver: bridge ``` -* Compose setup: +Compose setup: -Paste the above content into a file named ```docker-compose.yml``` then place it in a folder named ```dweebui```. -Open a terminal in the ```dweebui``` folder, then enter ```docker compose up -d```. -You may need to use ```docker-compose up -d``` or execute the command as root with either ```sudo docker compose up -d``` or ```sudo docker-compose up -d```. +* Paste the above content into a file named ```docker-compose.yml``` then place it in a folder named ```dweebui```. +* Open a terminal in the ```dweebui``` folder, then enter ```docker compose up -d```. +* You may need to use ```docker-compose up -d``` or execute the command as root with either ```sudo docker compose up -d``` or ```sudo docker-compose up -d```. -* Using setup.sh: +Using setup.sh: ``` Extract DweebUI.zip and navigate to /DweebUI cd DweebUI diff --git a/controllers/auth.js b/controllers/auth.js index b4c176a..f83cca3 100644 --- a/controllers/auth.js +++ b/controllers/auth.js @@ -86,11 +86,11 @@ exports.Register = function(req,res){ exports.processRegister = async function(req,res){ // Get the data. - let { first_name, last_name, username, email, password, avatar, tos } = req.body; + let { first_name, last_name, username, email, password, avatar, tos, secret } = req.body; let role = "user"; // Check the data. - if(first_name && last_name && email && password && username && tos){ + if((first_name && last_name && email && password && username && tos) && (secret == process.env.SECRET)){ // Check if there is an existing user with that username. let existingUser = await User.findOne({ where: {username:username}}); diff --git a/docker-compose.yaml b/docker-compose.yaml index 0f16e6d..7d5bc02 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -4,10 +4,13 @@ services: dweebui: container_name: dweebui image: lllllllillllllillll/dweebui:v0.08-dev + # build: + # context: . environment: NODE_ENV: production PORT: 8000 - # Proxy_Manager: enabled + SECRET: MrWiskers + #Proxy_Manager: enabled restart: unless-stopped ports: - 8000:8000 @@ -15,6 +18,8 @@ services: - dweebui:/app - caddyfiles:/app/caddyfiles - /var/run/docker.sock:/var/run/docker.sock + #- ./custom-templates.json:/app/custom-templates.json + #- ./composefiles:/app/composefiles networks: - dweeb_network diff --git a/views/pages/apps.ejs b/views/pages/apps.ejs index 63e9cdc..7e8a2f6 100644 --- a/views/pages/apps.ejs +++ b/views/pages/apps.ejs @@ -51,7 +51,7 @@ - +
+ + +
+
diff --git a/views/partials/footer.ejs b/views/partials/footer.ejs index e0c7cbc..2ae8f80 100644 --- a/views/partials/footer.ejs +++ b/views/partials/footer.ejs @@ -24,7 +24,7 @@
  • - v0.07 + v0.08
  • From 3bf91e20c56a1fd883dead9f3dc4339da19966ee Mon Sep 17 00:00:00 2001 From: lllllllillllllillll Date: Sun, 10 Dec 2023 17:31:31 -0800 Subject: [PATCH 16/30] Replaced connect-session with cookie-session --- app.js | 4 +- package-lock.json | 333 ++++++++++++++++++++++++++++++++++------------ package.json | 4 +- 3 files changed, 253 insertions(+), 88 deletions(-) diff --git a/app.js b/app.js index 7be165b..7744908 100644 --- a/app.js +++ b/app.js @@ -1,7 +1,7 @@ // Express const express = require("express"); const app = express(); -const session = require("express-session"); +const session = require("cookie-session"); const PORT = process.env.PORT || 8000; // Router @@ -18,8 +18,6 @@ const sessionMiddleware = session({ resave: false, saveUninitialized: false, cookie:{ - secure:false, // Only set to true if you are using HTTPS. - httpOnly:false, // Only set to true if you are using HTTPS. maxAge:3600000 * 8 // Session max age in milliseconds. 3600000 = 1 hour. } }) diff --git a/package-lock.json b/package-lock.json index 36df813..1ffb450 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "dweeb-ui", + "name": "dweebui", "version": "1.0.0", "lockfileVersion": 3, "requires": true, @@ -11,11 +11,11 @@ "dependencies": { "bcrypt": "^5.1.0", "child_process": "^1.0.2", + "cookie-session": "^2.0.0", "dockerode": "^4.0.0", "dockerode-compose": "^1.4.0", "ejs": "^3.1.9", "express": "^4.18.2", - "express-session": "^1.17.3", "js-yaml": "^4.1.0", "sequelize": "^6.35.1", "socket.io": "^4.6.1", @@ -118,9 +118,9 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "20.10.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.3.tgz", - "integrity": "sha512-XJavIpZqiXID5Yxnxv3RUDKTN5b81ddNC3ecsA0SoFXz/QU8OGBwZGMomiq0zw+uuqbL/krztv/DINAQ/EV4gg==", + "version": "20.10.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.4.tgz", + "integrity": "sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==", "dependencies": { "undici-types": "~5.26.4" } @@ -158,6 +158,27 @@ "node": ">= 6.0.0" } }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/agentkeepalive": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", @@ -533,11 +554,37 @@ "node": ">= 0.6" } }, + "node_modules/cookie-session": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cookie-session/-/cookie-session-2.0.0.tgz", + "integrity": "sha512-hKvgoThbw00zQOleSlUr2qpvuNweoqBtxrmx0UFosx6AGi9lYtLoA+RbsvknrEX8Pr6MDbdWAb2j6SnMn+lPsg==", + "dependencies": { + "cookies": "0.8.0", + "debug": "3.2.7", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, + "node_modules/cookies": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", + "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", + "dependencies": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/cors": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", @@ -565,19 +612,11 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "ms": "^2.1.1" } }, "node_modules/define-data-property": { @@ -637,6 +676,27 @@ "node": ">= 8.0" } }, + "node_modules/docker-modem/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/docker-modem/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/dockerode": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-4.0.0.tgz", @@ -778,6 +838,27 @@ "node": ">= 0.6" } }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -847,45 +928,6 @@ "node": ">= 0.10.0" } }, - "node_modules/express-session": { - "version": "1.17.3", - "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz", - "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==", - "dependencies": { - "cookie": "0.4.2", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~2.0.0", - "on-headers": "~1.0.2", - "parseurl": "~1.3.3", - "safe-buffer": "5.2.1", - "uid-safe": "~2.1.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/express-session/node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express-session/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express-session/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1162,6 +1204,29 @@ "node": ">= 6" } }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "optional": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "optional": true + }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -1174,6 +1239,27 @@ "node": ">= 6" } }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", @@ -1321,6 +1407,17 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "dependencies": { + "tsscmp": "1.0.6" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -1572,9 +1669,9 @@ } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/nan": { "version": "2.18.0", @@ -1848,14 +1945,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/random-bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", - "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -1993,11 +2082,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, "node_modules/sequelize": { "version": "6.35.1", "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.35.1.tgz", @@ -2067,6 +2151,27 @@ "node": ">= 10.0.0" } }, + "node_modules/sequelize/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/sequelize/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/serve-static": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", @@ -2170,6 +2275,48 @@ "node": ">=10.0.0" } }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-parser/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/socks": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", @@ -2198,6 +2345,29 @@ "node": ">= 10" } }, + "node_modules/socks-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "optional": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socks-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "optional": true + }, "node_modules/split-ca": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", @@ -2408,6 +2578,14 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "engines": { + "node": ">=0.6.x" + } + }, "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", @@ -2425,17 +2603,6 @@ "node": ">= 0.6" } }, - "node_modules/uid-safe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", - "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", - "dependencies": { - "random-bytes": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", diff --git a/package.json b/package.json index 5c43d34..6311081 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "dweeb-ui", + "name": "dweebui", "version": "1.0.0", "main": "app.js", "keywords": [], @@ -8,11 +8,11 @@ "dependencies": { "bcrypt": "^5.1.0", "child_process": "^1.0.2", + "cookie-session": "^2.0.0", "dockerode": "^4.0.0", "dockerode-compose": "^1.4.0", "ejs": "^3.1.9", "express": "^4.18.2", - "express-session": "^1.17.3", "js-yaml": "^4.1.0", "sequelize": "^6.35.1", "socket.io": "^4.6.1", From b7e2d6c7cacb87c99e7b3f539d75cb6e2dace710 Mon Sep 17 00:00:00 2001 From: lllllllillllllillll Date: Mon, 11 Dec 2023 01:28:48 -0800 Subject: [PATCH 17/30] Revert back to express-sessions for now --- Dockerfile | 1 - app.js | 1 + controllers/dashboard.js | 2 ++ database/ContainerSettings.js | 43 +++++++++++++++++++++++++++++++++++ docker-compose.yaml | 1 - 5 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 database/ContainerSettings.js diff --git a/Dockerfile b/Dockerfile index ff00254..23c58c9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,6 @@ FROM node:21-alpine -ENV NODE_ENV production WORKDIR /app diff --git a/app.js b/app.js index 7be165b..74adb32 100644 --- a/app.js +++ b/app.js @@ -4,6 +4,7 @@ const app = express(); const session = require("express-session"); const PORT = process.env.PORT || 8000; + // Router const routes = require("./routes"); diff --git a/controllers/dashboard.js b/controllers/dashboard.js index 4425ee6..87d86bf 100644 --- a/controllers/dashboard.js +++ b/controllers/dashboard.js @@ -1,4 +1,6 @@ const User = require('../database/UserModel'); +const Containers = require('../database/ContainerSettings'); + const { readFileSync, writeFileSync, appendFileSync, readdirSync } = require('fs'); const { execSync } = require("child_process"); const { siteCard } = require('../components/siteCard'); diff --git a/database/ContainerSettings.js b/database/ContainerSettings.js new file mode 100644 index 0000000..ae34235 --- /dev/null +++ b/database/ContainerSettings.js @@ -0,0 +1,43 @@ +const { Sequelize, DataTypes } = require('sequelize'); + +const sequelize = new Sequelize({ + dialect: 'sqlite', + storage: './database/db.sqlite', + logging: false +}); + + +const Containers = sequelize.define('Containers', { + // Model attributes are defined here + id: { + type: DataTypes.INTEGER, + autoIncrement: true, + primaryKey: true + }, + name: { + type: DataTypes.STRING, + allowNull: false + }, + visibility: { + type: DataTypes.STRING + // allowNull defaults to true + }, + group: { + type: DataTypes.STRING + // allowNull defaults to true + }, + permissions: { + type: DataTypes.STRING + // allowNull defaults to true + } +}); + +async function syncModel() { + await sequelize.sync(); + console.log('Containers model synced'); +} + +syncModel(); + + +module.exports = Containers; \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index 7d5bc02..868902e 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -7,7 +7,6 @@ services: # build: # context: . environment: - NODE_ENV: production PORT: 8000 SECRET: MrWiskers #Proxy_Manager: enabled From 54381968a577ce040e7126ce30825226bc8580d3 Mon Sep 17 00:00:00 2001 From: lllllllillllllillll Date: Mon, 11 Dec 2023 01:32:07 -0800 Subject: [PATCH 18/30] reverted to express-session --- app.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app.js b/app.js index 883961a..7be165b 100644 --- a/app.js +++ b/app.js @@ -1,10 +1,9 @@ // Express const express = require("express"); const app = express(); -const session = require("cookie-session"); +const session = require("express-session"); const PORT = process.env.PORT || 8000; - // Router const routes = require("./routes"); @@ -19,6 +18,8 @@ const sessionMiddleware = session({ resave: false, saveUninitialized: false, cookie:{ + secure:false, // Only set to true if you are using HTTPS. + httpOnly:false, // Only set to true if you are using HTTPS. maxAge:3600000 * 8 // Session max age in milliseconds. 3600000 = 1 hour. } }) From 75155925648c08de254cc163832a943e09a46b68 Mon Sep 17 00:00:00 2001 From: lllllllillllllillll Date: Mon, 11 Dec 2023 19:58:53 -0800 Subject: [PATCH 19/30] Added Visibility icon to dashCard --- DweebUI.png | Bin 117212 -> 0 bytes components/dashCard.js | 8 + controllers/apps.js | 4 + database/ContainerSettings.js | 4 + package-lock.json | 333 +++++++++------------------------- package.json | 2 +- routes/index.js | 1 + 7 files changed, 101 insertions(+), 251 deletions(-) delete mode 100644 DweebUI.png diff --git a/DweebUI.png b/DweebUI.png deleted file mode 100644 index 16e814f23e4559510ecb1ee5b3d288b1fe02a2f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117212 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%0AAmtMc5C5UA)nO?U-;-nX| z-VDd%#L|(g{q@I&$AE)OS6Joe0nrPTUR^u%aVArC3h!EkCO+|RU9VS^#1lmLQpvoY zwHr5@d5|VE0DX%!N4iH*RdN(m-KRTqKErmVPJLq{?qDr*m7ljXW4$~5*PxuV4xqmv z<#%0->${40yP*5yW|b%`raD|6SK~Xp+%Zmoti?9YWUqAd2F%i`6(7Y4AMQYZg9zj> z;r6j}$8I>C?)yTq0~0bOI+`18`tAFbrwSNxekYjyi_nN**w5TU{w#~yb~}5{8SU-# zOAKxo#<-gG_gpZjx-|vTZ-b#_ec5k z+spR^?aQ;TIXc{H^RK=pdj5i;Z#{+Q^znI%>f;7AN&oV7gyH0%9cFapLiY@KltkG+ z$h#B)!7Cve*(I=%fe{IlQ7=<4jVY&7B+j63eJ9ZF4ue;5NA!}W zbibX(e{Y61p`96~o=F@c*E~<Ag>B*l$1$xjTFJ0IR%xES?r- zBj^Lrq!o!9UA7xkIam_<&4%|djV})f5sQ&sn}6f$YC)Xy{&AJ+5>?T7Z5*s&ZOf*M zJBb$t_9BSOwUmR1N6y2h;U#F9%N2+)h>Io|dPaQ!O^#U0OpBJB4jr8sN-fiKKJR)} zd_+qq6p6*v)4`6cixS;vQ`B!fxcrb|kh@)&${^L(cK4Ti6ME-nr7FEY_YQ8P2`etY z?Z-G>+}Rmq6zk>F;JKy03vs9irCx})I17YMz6C22FJLG|r_Np=MF2LVk3a`iEr| z--K|RlO&(l)IcnDFrb3)&f572Xh`eqw;sC8@bMcN`mCau4LZ+TT;4XS_t^XwuxzOQ&U3udcsMz{#&qdL1!c>uA0(oN0{GdOq}U^42VAKp6|x^6UyoF5YFz znfjzebbJh2zY(jklP@T{J>DEFx%}!_Dv2b0`HpjG%pGIIhF4O@2Bw`pWN={{bWlt(>OfG zcEi(Z1656z$K{--g7YxmY@s~v?(vCI`7zsngkB*S_S$Ac=mgzy_1RZ*Z~1g?wdQoo zZ9VyVYqpp7T0+$KR5()sv^)~|-2=HIzt)1;+RF|GJ$ph@HIe z4ioMl&q-_wR(dn^0NIq_UyR?)O~$yO{HDwBV{}@IiBY`#R0?{`3BA_|qK(ch3MCP? zpDGVC@Zt!jk&FA~Ap5Jz-P-S~R3G2X6l^p%sN-{y*QD6TJVW^URDRU%hQdVn(m5n% z`BSh+PXUkp?pt>!VZo;t}z4`Mlggrk}?k9S;*23v@ zpJ(_JOaGrT-s>etBRSsDzYI?~0NasZKmPzJ$1^!O3M}D7jv&)d% z@>g(tjd{{>&J&NbDn&_-9iiS1?RX^%+Opt-Ezd(8b?uQBAPJvV4gj!zfc&D#q(M@U zv_iNVZ@k@l;l<6nOmWYkf*jD011S77790jS&o+>*_a~=f{YrK;#~Jx<+1qZ(!JeCV zL;+IluyR>jo_6b-iUC*=N6VrRn9wa$aZ>sv|IUg82Ej839ok&xdf%Bm7XN2g*6F|J z?Cb=TD6s#OAr@!RECh)*H zXD88)`T4>KS5qxDFn0D>wnAepDL8odJ5YQ*D52A+8ia?@?LIr1VSsIVf9{w3*iwLo zGV|+GcI;FS9>&CuzpKM?kh{hV9)_5n-bdgc-1Sqncooa|R6A#7Cb zP4on4`>{MM*ql`X@}Jc;Qx1jABTWqrgk^)S*qD6cYS!u|f>E6n}-`kIL(@TxcnC4$sxtcycx1vg`JI$1)vw(ZyEVTrsfvptZrup`pOvo|WF zhqi-*3!7uSDRW;!*6FMobENl(f0B?E4}bp6czHxyn-ZPH^V{2794u$Xb^O!fJMPW4 z-j!m#uG-I!=UM=hIoR{+^)$k`zS?Gw)bkA`p^5Y`!YXtzq`p!En$X*p`j<~PM@LkW z(ai{|<>eog5QToBTZ|Ze8R>Umv3H7nK(pS0frR*YV>dtBWF$Fc_NAoy)=|arjtlRatiV5ZXxMECjRG5&f2Gt?^ zmmvz42Xs=JKoC;X5UHU;Ecok6d*ajRobrv1&?&Q4Q!bO@?6= zh*p|%e#=RghX+qAl~Lbr-h5vTI4!_ZecjQZ#fD5sU577{jb-^#a*_=5Jk<>p@pPk{62?SHg1l~6bhvd35_RN^ zlaj086{(pom8-0-By(e6W|nq|QPFy@5MRm+ivcuu@L1yuwjbKBXq38>U4#C=V|XW% zOWb;ZhD@;2KBn+6vd+GW7ADlD{GEhv3c^jE46S zsbEsm)}S|zCOhYXh|+%OPZe2zG=a3e4B>&fJMlm53)(VRYr6$1gXG@Zm~~%x2}dlg z0hFQ&KP`5Y9PE3M)e+$|L|mK;V-#>^Oo6giWXl?!7LbFed&QR}CH(Slt)~H4JsRS~ zFqOD}!T)}UCdfz?@-`=h^59VRJ(XB8w%1OqzNJFrzr11b*b9RmJtaCr;fL-{~PPbDt?w zl1m>-@NluFkqNgW0RHmX4XMYZ#$czsZLZEVbEKp&Rl{#1a3<&Sbl8b_UtiNg0mI8n z3RcrEyV2h6+W{59Dkm(m;UPkU_7wdUh}EM5<770qkzoL9bquG3_wKC=o?$}24-Znq zoXB;sWgFtW+ufWO)jMg9qkhzv!}FnhLoF+MY-w#j;h*oiRf>bvm`pzVr!Z2^`$9~O z@S7yC{@`KsCWPhpv{&}H2m+?+(>M6V&oagKf=^}f^X?(py`o$lC08vM5mg(Qj~UlW zUp{HZ+9>UmQm`F4n{+2M;g9%zSzqBBtszjvEFRu60PX-7hw-L$Z50)v|D3y^!Mc0| z8^7?Pm&&RA`%S!*%EZ2T{V zMv*+unK_Ns@>NiGk$ka?6qdgpURdQbQzd(KciG5Ix*A71R>IVnzFnujs+6qs#6|e$ zyI})-x5ToZT6T{TQ$iXhJD#tZ<_FHVPxaHD8Af34H;(PCa>!daF@|E1xLnRqoLEDt zNNTQnC=QRB)VHkK&VUV-%d0KbT975CO|KsuI%BEy`-Q1G(!TAV%Nao*pxu$YFLoJ5 zOOnT){{7QI!$*ZvM%e1&B&>yP94S1XEY(&N^S;lP$@Au|03 zuS39TZygT}nhFQ8S_T^Rb*oe`LleUgY~E|P;D3|nCM?sg{W*^TE78tvI;1QWi1Irx zmgq*RT1Innzs$`RTD&Tc8(SLGody+xWpiv2)<>}@ozv{#sk=MRrOLKp{*SHmE!C-y){Y11rOP$M-HSU3n(S?{yNlP%91d- zcYARL>-Vgnn`?8j0wdpIq46S}FLRd8I(aA|CjOaaa(SdfwwhDKZxcW!MJ!p*DdAZQ zO)FK|kzwBr!d1anDU0D%gWX3|ZH87nylj-vOajFH%taPs=c1Qs5+gOl6ndklc%(z; zPJ^mX0s^RC)ND>$gc{pd@9DZsS2j`=3mQ-XgXwV3(elj zM81bwKjHl;e_SvXl~B@#^j1&(a&>d18nLwL9doHZ)w4e%G$anWlsX&Uwe@UgB}RSG zaP{(H1-f|Mr5y)70Kd6TqE@H;YM5Kf2CrRyX`ghkLE%!#ZKj!=)ofGyw_6eKs>?;X zhfsz`(^ONEc815+hEE5>@BOxiE6?oI>;*tH5lT*4zvB8=9Wb?O12`R|-{tX0am7Zf z!A%ppl`yGRPxG*#nX}~RI_j&Am>}vS)M!@<&{fQtNu^yw*UF=2$YvGq(V4>rLRygl z3$*i)s0bmyo-Udq5>p9SrhQUnt7>>E5Ech$UwEX5{usnvgidtT1h$j6FTP{8#GLP8 z=wO~mEv4(-e#`v#F^$YSicZYn6-jY+ORbDH9wr zriN1OK%+*ac|`JOv`jEa-<%LmkzO1*IB+r1Musrsl4QJ14!czH3|`M;>gcDn6L*e$ z8TFWaVI`TDNiTh2SYp_$OO)U;BYJ7^VNKCzks1h0 zjkdLIkzG;SuL7_0UYEBZ`5nkxaT@jNizZgVJdZWoU zEoUrS2p)uj4#mX=UIbD!f|#*?lKWN8N$y}~vTrPzURtY$T)U&3R!X-Zhz7INZz%3& zYEq6(MN0k5w%e%Uoy!7}p>#;GoYfcXvLltI?=(71R9@2I`&Rvhy3VYTEM!_4E_p=; za_3=Wko5V^&~dM$WX{hRB<$$NPxNmeCZt_%#zT2I)qPB45=QlR!U(mq%a`AjKwhVP zRf2SaKBt^d-(`h+1c_Jo_IKwF<};H6u0Xeg3i(%!F~81pOIb>;%&~|ARykCj{b)rK zvKHdQM3I13pxqUsmlPKYDW+#XNyj$;N<&!Sy>r~3LPLWE!Q4{9lwXA9!~G%oBW8#D z8xw_mine|;5Aqqie+1U~I2T1(r@IGvHD*mLnfhqt)Bc$BX>6@K$Lp%v1o1YlLwNEI zWD4C@d`uc*Kr~Wxp}cG=K`JAU@4p4WIj14-rKD)oc-NevY$>AyOX`sbDRnD9y%j%( zRgU)lUUqDa%O-N2rTq*MpAM#%!fj$$0qdI)3;alhFnp3?nc9--vFun)FGTwboxt+| z$)>{Ri&o#W*P8q6v)zNxCB3Ru6|?wO!oC=iet)|m$>gqDXGmWRMYtZQKI~F(>ene9w$6ISw}^v?MA^-Cd+l|0 z&2<%@mnG|()axR)tk?#POE8B!CPtD(m5Ifkg*N7$Ls`3;d?56Jg1SSN0-M%E)m!@2 zOnlHxgh-{uByaAKZlRut3Z}VXlSU#QhOoIXue%(ToH@xA3R0PjGs!f9N{@f)rG5Lh zjr~Se5tn<@1d=E+QpZKF`x$40+sCdUlR5ID6XjX3g2>*BIPB|y*V(4KPe#%P*{0C% zuX8ZI@gwDXp6i$|O}>rBSIW{hSAdqpAK0&l-ASK4fZ@QeL(GHC|1D{y`2Z6N>`o@S z2RbMZ^vCzkkwkxF_n#47OAA` zI~q9cPqnD=y6n@$CJ=SA`fiVI)!WD-k#2`^m>QW*8d=^VzwV9bHGjNObqN`J{&eLU zrz@4P-tgWR6XLQVV& zPbMf<3#1cR%(?1#oT7zc-!hluzRn>ZaM1e&nleRjqr{!;L}ZJvQ7+IzwfRBnv?FIJ zIofrAPqP9~qsXXQVjm+3?7Idj1u4~h5foGs1>vdWj=f-+S!$ek66&Q%*HAdR&6Ked zog0o{%>kKZs%z}T61l9?F4Jg7ea!H*=oV471v3p69RqS3VM6$#qWiQxPk7j?rs?%N zpa(}IG{P2D6#Tk2RJwWDhB&eU_z(}C8?dmPVu07$1vb4)+`pk>ctiE|U*Wrzw873k z`j~DDY$%$F$g$J+rN@S`2F8?W+=CL`%Px(K?T^b`wM)sz7ZpE_>Sq?ecmw#$Xv_q70{fR+eYlT)mc;R`~umsaU zhL5lAz2-)uh*=o1W#9%3y$}Bkz1veeso*M&55?^gh)Q!Ros^x3VTuU*3SnAuEJ$L~ zIpXdb`NB#_%z7(kY?lCBpY^r*O#oiL&1xjU)w7u#WnYD%9*;_m%HNQj`45K_DruC} zccJ4u)i#0ToMN~9tp(=D2lC=-R}WOw)8w3fk_jP6m64?uWu>a+c^c;>;HFI>CaNfx zwN7y>Sq0&#nQS=6^Q+DtjdeI>u67W-vzOVeFN@d|C1#m8uICQa66KhX_x!$(Gue+f zjnKZ8-J4Lc_|3Tp>If|~3g3}#+2x`cP#|Zc<7gZ@i_GOm_!|XmOgSnYWvrRGW$h<=D!D z@?_f~(p+DRQ}L3rpnG;?Tcvs@n#64M2NEh|RiIpR|G&H@xqOTp3X4QJ+(gJH0&Bn` zr|~?a*+B?*R`uQ~=qLDWW?gnY@wZrK#Qg7qgd%(rLZDC0bLw*%M^TLa_U*L)(W%;2 zqM=YEBJON|u;cHdC|pV)*@fK;W|6mEp#mF*a|oD6cG)v&dj&;4@+?$Cwa?dbcHpVy7KA%1pRRzYd?50C|@)ot;IeC$tROFBh zCplwQZ1{m08!;l{>rQ3rpuzOk3RNlC&Xt?-P6RUJGMxiWRG=@(f!;(1dUL-=c>`TB z4|vJ?w<@hq(>v+ZD2*37U_sILuP902neLxZ@x@9Lca0RY>8uEIjmsLiv_`@_`K3rw zDPrt%u-FBNlfIQHS1n*@lsmpGijJ!fs*#i0*#KHfi-~%C^n`BhkT5WyHqmTt?YQSp zE3CSXLf-Dz|4^R&P}mw@bEL-!W%u=rCy+!TisB-l@{^0USN5Y?^6Gw}#?1Dm2P=JvOJ5UEFD3wS7j1ePe8L@K*EO-aa}h z<49`7j?Gc>w=i-{@-8Ct?yGXjKib>S3oSSKlSW<{GSpO~a-D+)lxkg%>3g(kR$A<$ z<|@&i8GM^?^aLULo;kd&`aB+Qo(|68{G7qm*Izsz8#RG3v63y;uFEs5E- zgqoBLI`Awvi&*l>M;u%;Pctip2?zRqEkU({hdzB_s*B@C3B5ZMq_CFQQ>M6F z+bT(&g^F8YT)EYDnVs@keA|)0)$_<#+3gGOu>*&KOnPsb=!Q2@QLYEFG(*o<>Ah*fpe{=YKjsMWh{ z8jIAzYSAQ*yW&=e^42#YWaTSO8qHL8)verg5qF~PQ~X5AqVpN@9W8SZ(W{u75se19 zsGXvlgbPNgI~uwHC;ha=NdinoS%ss&a2Wug69WsN*iWaQmE;qduRv_pz?j35RAJkcSGiuWqY_1&L+ z5fg^?T^V^~_c_e1bM8&a1D5rs6J1zuj(mYY<2#;(RUb#oKAuNvq?k!flUia} z9iQO3Ha+)p(2rIPe+?_}5C6%mL7^aS(|A9fpBTlhj*=-wu|QxLK1;Pj?{X6$F2$aR zH1PZ>Q>Lk)kLiCT9-QsKW~zzOwq3Noh-}ts)Ra7!)bo&VI&!4;1ugoS>sJ9lfVlU} zc80`)6`%J6MZMci3uEit9QewKk_tMa`~U=AH)Bs4qSW-e&|FiksM4*IMlgDA^WEDg$LR-#l}XF~ilTsjv~yz47ZI!aL9H-)eE<-c{q-d^q* zuhOPN!-r&`J;m=v!TbJ@^712@egFQ_zG3UyNSilqyIne`@=VSl@XWCKSDg{S=Ee+r zbppWjmLexgq!vl!?Y{5t&>K=bjlOqs{pIEPB^hM?H6m@59GC*Qj+4=1q{%se&_8#q{fwfttaQ!@!3an@tFnKcDcqy_G!4eM!uW3 zzf-TgqHrQ8gfeTcsrc|Jxs*z<)85iI@z+Deaiqtq#0M4AhPA#xdV{O(Z*0H9@D{kE)x`e%95VYA(WD&3LZho|T=hAVI2M z0MQ4gzhK&zotc;3Cxnqi`u%zGZX~Ke05&&Emgy%$qRBL`=;SC%&A+QrS0^;fMF*(j zepiwj6vkDH*M4$_-jH<sM-y764@bYd>4_ zLy-4QKhg%p!Bs~!Qnlh(VXEkD`rFyg7|>Z4_m?m4%CuM~S`lyXe_gA>`# z+0A2?go`o)XvbC?;v8n13Y2Onb!o1**OsTP>g4&?Rdiub|2Zqqqv(9; zdeEK~akFs}`W0xBV8jD$td#uGWh`!Oj&eP+SmB4Rbi~8Wjr2mR7jl>$njn_l%!_7f zK?G~jDwY83o-U>Xs8<7*kWq{nN^U2a+P5}3J>SK$SQXkp{4tgCRst#mt(>f2*orL> zC68c=#6GdTzEpU!rb$&|FB5EcuNageiQvY1n9q~%V~6l7_z>}KQW);y3N$)JECjJX zwsORDh8V_!z7NLP+E;06L&O|%P#AmJ{I!og)yYf>;L3-k*FkKHf2ajk?a{VD1TypQ z9J~>P%hVc|iv>?-;%&K{=w6#~OG(h@ZvVu)ku7;%&JK(vp8L#3iqto~<9Mhs`bYTy ze$=yuTd1;dZ)xfMAq4a~DbIjIKV)z-nF<>yB4H8+pzD2A`oV6Bxdx2#qYiwotsR&4 z!V$k%)fjaK4t!_T>#xHhr)p(Wci9DjehpGGCzaU)dx;Ch*16@n5uR*QbreQacjn92 zEwafb5x=p*mTRg-r$Ke}*dZ7IcjXD|Xs|WN{bMY*{Jv+9&ZbydHC7?yotipI^~(e7 zaeAo08TspWWgWq`@d z(M;^*b^}?ZsB0sCkyf2Gob&NQNmN~EF+FyAq#uf?bEq1Ru&helrvP}$p?PP5`};G6C$z zk5!nCa~ePZ9%g?@OuJxaY;^@JhL*^a0BW;cGZW3NwmfDzP)H1emX~C@(_zk=di5+` zt#xFTXQ78@Jgo&9q(}JP60s9G#wWw7JzEZl?y^((TZxFKrX%)zM~?zj4G^qpJV=_x z+7~eiRNp6d$r?KRA^shK&I(kWp)D&B|)p*hC36>NS2P6)7U%5z*;iz{>o8kbvj6ghIj8NKHgdfh&!l$A*X zsK)ifyv2ZH$rj#zExD5m67Vb=U`=H3qCL>~N4*^x^aX$&CjeyCKnT-o*zM@0#!@9e z2EI1u(3LD35SfjSQeB?X25eTI0jetM^-yG<4z99aSlCK(N=^i@`qyq>KZbcxU!@Xu z-YDAND&LS>zPjuAle}m}#1!~RbqWw1nsjABVMoi`ZH#!x##}y$V(IWf*7fv{lsM#J>$ptHs zJpw{#+M$D11q5XL2Sk}I1=jZ$bvc<09lPWN8YHj;BI)@Le)9hY7})`|v>vcS299H* zF4?F>$m&vA>Ph~Ckqr7TjO1rsCbVp{oG%uZ1a#b>k+HryVR(R4`cx2hPeZ-3H|Vbv zXmsQukvE%x?m{*G?_G@%gW5gF0@GEP<{RU|-~a>y;~@400O0-j@70fE{_E=A4_S1m zppK9KdSQ5+f;u$*>-B#SGdYv?^Lxn}4mBJ>Dk}vUzzJ|%PxKeFTKCU#?-`LhF?Iq~_cKszCw z@)`M<$~1pmSE3Q7Q75Wq_+RL(1PG`L3MD|ZFmOEG{_HC9kO8jtix(VNt7B(0$SeH* z?xUltLq;qg*$(cVY167H9BjBQC2kG{PZ8P_l`^Quld>#^RAzkuXNlsTq+az!_KcyO z!X!BtJX4M>?bFCkjIlNuKp>b78-yGmBL>Z`b^6COmSZmmb&0fsrbAhjowJuuM1lli ziE31-<1nzfo=dESfJ3XHc1i#IZGmpXi zOlWN-s&(CL7oZiWnuUkeYyVyLeVkDTC;dASdR0Fpin060=EsBo zN675ec-qnpl+q&K+VSEXDDhy1lz7RY-VXN9%`Fjuwm=9HTLEUzd=}1GEq<4;M%Ae#gZkD1@3@HF@ z*NMGDjF*1b8g($-k%oS&;l1ci$iE&99(2NcV0rpujM$gjk!tk7o99K@73X+x*8*IK zQ3+G0tTuwbcdN21t1E5xg{_a(j|WE=cb!}awsE!Alc*H68eV|6Fk2LYa?BuBUTy*T zvTyEHC*?Hh41Ouq6T_7k{ibo~s*3yi2@{I6>wXTUxKE-6W$3rENC}MVEik11NIggf)Yp!3TRO*kpm8J z>f%3gT95EmsB~dFs5SL0e{1QsALjmmcdIU^xH6%*j6rrmrAV?G)QLxf?XX6;x_dbKhd&$$B2Je`}@oXW4MePM#7qz*;# zrY$3)A?PkYw!iRexE;IpagVE>5o%Fj-Vlvgcf`-8?3l{hv5X0qP>GYIJkR227go1z z$UNV~nf42lE1%&jtL;%WBb~2^rI<8xYrJq6)Ph(p{G77LOH7sRKD$?P^Ayc6rRn^hUN)S=8*R(=_X4UDE#pB-qAT$RDQbuy=#91%w*SF`VWuFkyB{Kx>&44%jR1uH6sOF9~Jhg!qIbjYPL zEV~$GbVPRi7XdUY)CEf4Eepqc76@(7|Iq%33Yx*u;rZQ8N4c z`<3~6^G0P87`T}6S?xL?5))E7K0FWwe}hi#*zD}Xi<3pi&jt`xBH)6dPr-`)c(JNl zh#bzR!^fp#|Bv7Hzsvax!pEQLWjb`yZs|?ixYb_x_0H^-9U+xzcNKd=0`t6u=bEYB z3z>bcZ!R~f8A#AmDpJ;*r6kimUo3sNr!rX5$rd~R04R!Xj$?slcOZ2_Sac;CbDK;2 z4c+=xwqax#vf@|R6)Gh*HzlLW1Sb6LGyK-w!#Vw3Zi__3pao(uJ-s^H?P*TXKfnHK zXXrxw|JJhYbFN!yPrJEN&f!n0X>qse-e*+?kHtbz<{{EI_9GM{?0(mbFgl?#*nwN% z$E4VsUoZ{{q+c&_0jnt8HG9P4u?2s2y^v;!EkSc>VwbAfQ%V{#oH96x1A?It@yQt& z5SS{^eIL$6wX7}!2;Fuluzy&^hULpq3ko9Q+6LPi>oe8u?w$12F`b4@9;v;UaIcR@ zYRx?%Nedwn@>E6!Q@ns?aSAwS@#h`;j!mW-bDFfRnKtU&dbuBNgO!$-ANoDb4AteY z-LWL?o=}m<)g~tS`@4Jy2@=^XRn>Yn^J26nMH~y3(NZ6+JlR0oC&{7Rv7%{QW*BaA zUi*Db_Ebsz%B#DX1@u=;rljwCNht2RpsPX9G(A3X6InT|iE|lp(ZapmT_25c-TS~T#XI{wR6*9l6@iaGW zue690>R)?RJezlb_DuV)(+_IMW%*Ylk`3LnMBaBSqLNLSx_HoZ&b&HbrK(Wn&uFN2 zl4c52i>k}Guy#20I+}eDRfME#hUOY!zzK~i!5qD$!b%OkA#=`&;W2< z9RakTrcPE!*%3O}(Ht!JE`B`Ob@Ii;B+Q9dECjEt@Pq+kXY)=^<$Td5~ zU8Al&ZwbfEWb$`bj}^ z$eYE|3%4A+ri`Yc9OmmfD8aHrF`BBp=Wbh%NB>A7*mBM?0!WTs&$ zaxCHU%_k$XE0X41P@|yk$#OmMmu2=^?SugL6chE-j9(VvQ-jRJY^W|}>Tf69oTWyS z6x&E~!Xc!$oDgL7Ud{Y{M9*srUvF+elv&e+gb{Pq_SsTk6CvrBtU>af360T=_ZRi< zMgxnE!|D-GXNZJ^2hOj*X2v=IGk{FV5N3Sgb?10`UxH0j5&9-NprZ!?1i>kb0EOuI z4_2Iv%W-Zh-X{W&L?o28MsuO#Ke}{VRTam4`IppI=`1T zp8#laGiSFDGIQwO)Q$W1UpzED6!Pi@n3YY((RDtoF9bdT>5kt%1g&4r&p6x4wLepc z92x>*VkX2<7*;NelqHFu-?>g>K;*%dIt{TxlY6uww`55w=qVy!-F)lUCO;l>d7FK| zT%0?0aCdM|QD+M-SkJ8HZ{=riW#e)+LuQ_M@VT075lvdVF&K1dAVl%=|7IvWN`0|f z)!2ZBN9OYB+ge&>-Pum=%>^9Wg^3Bsr1sut10o4oE1Bs-2RV*j3ZL3OFx+<(O&e=d zGkereP#o?IZrB&*&FseJn@{>CVDHBPoV+^su+`H->{A+6*?Obojxyy|0VmO+!<)Za z4DxbbOy=BNk!ruWbna9+hwOYwjVhIER54{!^ggci-MhVip=c8vlcCy{88U5>ov0So zCav}n%R_|axl;C^0&3#S40Xnk^tf#xqSHPjsUxL4c{sZ?UdizHX4fB=q5*O>-s6Cr zjt;ACxLqk^xX~oPrFz$NpADxm?py1C#Tl_TQcQLnc=1vtxP$9?`HNjW-94zLLA)IL#F5G(A(G8<5qX$c5bk6t8#XpQh zLgytlxa#d_sFd#u;{%uubS27D*f~}b-#9+)w>3=A)6IRiN%j_Z zYK^*Ci&qcJY|iB%DY&@QcT6R8V0+zgF({m6rh>47Co;Kadpob2(ZzR|K}6u$fIk#N zvrV9*ZU^=DD3aO9Dc#F1>*BI5gQkSES# zz+RoFVm3roJrus~=G%#p*9g;9WC{`CtIDyC_#wmWR|M8RNbWKu#)5WxioW=REPHxf z*X`znczsP??JcDy2t}%M)p&olF?EqXPC9v)yHOe{`S?PtsTy*;b;APGxYJSi`Zd@k z3Qfgt(_ABdJ&gs}*$nERflr4X^i;T%gF{|_t75PS}o>kP^mJ? z6c*T1`05j-Cf;B1D}I|W*1VFy!<;*w_DuaQPYl{ zvDUy)G>m2T?S3x`HXD-=KG>7lE-nLa4>@lOKJKLi*wJ5jmdWiwk!c8B3{6gCTHzrs z>|p`JtM(H#Le|~Af`&qgs00s-f_a#A54h_;2b(p<88c!Q_T$br0+mvZ$|t3rjMP1e z5n4R&%q|7y3c3YYYHRAsn}DQI<+d^0us#h!=yyB@1n0F1c{6f6hL*RvR+`0jYfsx- zerVL3h&#LGI1?Z$GK(>2A@@)$Ke~ zbW*Z=IQ1U^WRKTUu_=d+H?%VA!^MtNQHRc8+h2n8%K)dRjj%;X#sIHDaq{`V^0U}r z$>2uV4q5o&@=J#E{B*nO{?#<_TLY!1;NuRz(Li9{W;CcY`uIYGZ8uG^>AS<^ci2wK zp@qD+@9DpS!Zg?|clhZX5*uVe`G6j!uRVq` zWD>LaOJeTnVxcrdKM|tE@6~8%8O3Rb_iE9}lCxJ6EIUKnvI%Y#IlkqM2^xB%jQf(` z5DheD`R_G0diw{kZns&nC2e=N+5Y4e;E0m(K6i{~*F`#zAW)9^vF>T1&MpzYeF;++ zc*E4?sf*$CK{LZ&1w9Hqc{yvOpL_qXGwIA5v-)0%@O3Yap%tu)2K&B{;O|UX=OLvyy=taO966(WMn$@t?ep+=uNg znvW)|31RyJ;qc}B4*2E5%}~!ewAT*F9?U<5#hk&hN$m*1?=E_>nmJas~0;qcHdSB>H}PRxVmB~VI2uE*sT}0 zCL~x9%sep4-Z(Q78U^S@X;5NZNf;Wb>mG__DZ8&=LKh^C-jw0MOeAdWd*Tx&0vL-SPvh!gSeNo*9>f>SC6(+w@e>#gYN@#l8^+osF$5Ie$ ziCSf?eFsmYZ>LR1B__sS`#CoS)oS!Z%Kea49SSN5BlVywCM3e{@@LBoUa4t64c&{~ z)!7A6tY;fRtnv3D*L6IjKo+jk%+`j<+0&p#S5_i>uR)k>n!R8xLv9cmzEQg~WZmNu z+^b((Fy_gRD?Fu!2E<<911G=lDTJ~F>Nx}Fim|Rw^|a^06Rdh{QKY8}cq`pL9caB=j$-Q!7t3t>Q{R1SYJ=id%hrA^f;t=SZr`T~5ZAkY z9#I|Q2Y;kqe;hH++?z128A;^EBwzg<#Jts%aPElev@<@q+-5SYLMZg;dHwR|tAVF7 zD;@Xg;2kiV^-%s{()tQexLDNNis-EC)TbQW6^=z8Naj&i#JH;XoY#BV)ARz0m?-ch zEjLwN9D+ zCqwd}!~@~2z+pD*}+;B$f-HR{plVleS^ zfRBcCA2#_xq?4v0X>D`&lJiP7#orjzUQ;|h>Zc?wYd4j`?v)OsB6PQ-Ts*yq`At!Q zml4SAysGoLZ~(UyiOeiOu2{vD`GTqh(H)z2t@*<+maK{$D}T!*8?--0|k85cC?_8PUI{+M42OW+SG z9Zx|mukO?&CHRD7#Ih%5#75%NY8r5Qx;*-4gEywDB=@5o?-{OGj0q97T&)XjI&YcY zUB!{q@dUt(8^%9AY$bJd^kU2ay1ji>xnE2CU4}|9BDL9dV!+@F)~(9K$dXYa&J4ib zuI@n@hV&}<-Y;Sx*2FN!6wu%2KmzbX(+QmOr~DO7-FPEIa5bQ|U_nF07V?(hFq{8#z%$bELck3y zBepdWBR1#1l|WClh_~jlXt4|U69u)^P`G~mp?P$ z1W2DJsovWgQ44>c4&$Nh$OCS|CRDXOl;VQvDgRjnW`LnUmqNCXhb>(tdK32T)u-{ zQ5R$S5#i9>5>!Dz7gAue2fnhSK}_4532lJIje`*llJufNp^k&o`SPT%>!nO6@(359qzvZz z@8~y&+OFlq3>yUd1fmgLPk$Zh5VK_?AzP^?KS_S3N`&n?MX(fVUX6$C7|gz2qS~>| z`>HmC!j3km2l51Ti2|tKe89~O+LT0O_@^;X7jx}4a7y?W7avQQOlBm~b*+#J35DWv zXl*9w0`Hp7;vFH;`x~6r_v9_LM9LPm037K$wm&Qxnm!HgiRN)N&COjt5b$Wj?SUoG zf&-($YZtl^%s&w#vK2Mag-^N|82Cbk5oeCV|<{{qAr6C zi4ut15!eg)fdWMfyF4+izx+aCIIiz=e~n@7uU7ZIgQ(ZqNym^53Lt~`)j&wC`HznMZ#iq8f-bZ|HgVg%+#Wo z%p2lWz!CE+-t*Cthuac^Sg0G@y9!L0w!!f>r$ql!b;4bgBB(ZBsc4&pj3_0sEW?kZ z!84FGqAS#U4-(qtOH1@Q5;EU#Ci-xs(uriub+4ekPsD!d-kJ*<-DPeCTvxZAOdS)R z=z`5B=6#~lWN~#8q(P>=>~`?n2m+gyyi26LyMwmv@>s9E7)se&LYn?TEfpp|`SMU} z?gMI2$R_}LE2*)>%5B$FO3=;pns%!9=uYOqKU_8a?mgaXY>!qWzMwtcQ`MJwLc1&_ zi1I>=39To*q7Z{UX8+1|CQ+MVqO;lu2d+i4`0G~;CQ8?J@D`ae6?)W2u~~JF3kBKf ztFJ0O!w{B|MOq5^TBRnA2Y*+1`XnO;Zk{l`P)=^{-1;H|28rY?{x0|60zExX{9^+K zrt0yIC!q+yyjMjJMiP>qcCmTa{?9#?^snaf0CIomx(T_fd*H8JaY+oxFUyuFG{56z zdY7jQ`edEe2(Q&vOEG84x{`(m;eGLqXRNN+wuISO=x)*DxXh~VOmmt$uuyTg5T_@Q zU>?G5tMYD6jR1V}pt5_2h@W2+7#tfUZy{aZqPxAVJAfI9h*padvp4dW@mn0b2~ksF z&avqtHIpd5bnZhwNX#2`_BKNyonMD`S-+odQD>ysmqTAnp57>aI9{d9yIr*&I`rvt zARr=}dU!yHuj+M@e@Y3S2};sQwS1amYZu(KIQoEWGLU2PJ}waa13~w@54kysGt9#%wsv`jTg;MiMCZ@XNgT@Ytou=k62M z%XqZ|jB_oaa$Qr6+>WQB8-5qGMNLT8&kLzynlR1Q7hNO%Ft2)~U7pE&Dz&he3*DFx zzX7aOq-dFUC2vf~kMta7P|(H$7!;KWo^$qGCILT9*HNc<#Fj-Jw6pQF3b5ZlgpM9S$xov$=tAG0_1y zbktcj4VcO;_=Vs_n!D1qdy?S;$tcD`m>2eDB4Fu`N9*mYVLJf(r`KKv(G3LXY|c0^%2YH6%EA?T=$z!_%MMW4ssAiC6^6%L z2aY?g0e#Tyvk*Ix`Yi#>w|F(8Uakl__K1fXyx?Z$pabu?wn}Jc-flwdsPT6gr*;SY zbHBTwtR#Dy*w7zyjX2zyq<(MtYnRRJVm76CTv($!rB)d9k7UW%Yy65D9LU>d)IiOx zNKYWuecN?YJcd#|vgtSKAVM}bqemgMaWjF&*`XB9+V(Q0=&~LdA@6=71K&TN=mvjv z&r6@E%U>A>>c!1EGK_>4D{+`mp_es1A9e89ayYC}m~0L>8*?)2G2Ek`ADv5`1iwW| zA)oi%YxCJL?;Le4jo1<(jh5b%7a(;BiW@6)cmCiDf0GG89_2#VjG5trPYX}8{vx+7 zo0Wj!XTh`HKTaS^TETKWC@(1D{|2MAI3y!PsbWYhg;^2n-B_{_-uD@fTv)h_u^P6h z;2=ll*ZWb9;iH1!xG8&r9WgMUg_Ns={K=blQhJlIKRqmR@|I#4j$0^*nBqr1#g-iH zN9G#b{sq_E5?Wt_SK5G-${ARmq$mTeC0Jf^HDVf-e%&>fx9oSX=T%lFLFPccP;%D*}3>RuYon^{{HK)=Ow`1 zDbU+A{VX@QeS~j7#qAE^sKgzx5aD&Se z%H5TkPFpMTqyqDob81##G8~u?e@Hr7R~b4zcsn6TI$bS?KWT@aWN67m;jvht2Q&e~ zUn$ulF6HsFiTNJ~}wk=s9QrVcO~xv;oTjrO%!F zG>PD6vk7PFr1=H(64-Qunj0h=H=q884*-=QqB|X*VOWwaz`^9|11>X!)RQ_}P3RpG z-$ru%GiX#fyBQD?VJ&m_Y?^_%8-m_>xzo(&qL7Rn_*5wQc#lGPNE58P5xShe9&Mk9 zH{g~@jJ#eROHfy?J7BJ%GDa~?-S>P-&=K>sCU{WIvb~u8a zADOoK1-yFXdsqTzS=Nr8sD{6(2^Dq7xx&`xf=NX*6C?DxYA&xtiG0H;At$%7w-=?T znYrQdhD+y1T~N$ST<DTw@G|;h>O0HxB;D=JL#P#!GeWfJ#l7=C|A9maaa-W#~P8! zU8!&eeD&hxn%~oKyOT|+_N}3SZ0v#aadC{Bni|hO`fsTP?@D0tkghJgv}~idxv|AJ zi4sGJKV}zujR-d?#1}^Ad&xF9H2oRY8}0SxpSn7OXXkVS6{wlYdKPuzcMn&(AbRlt zVa=ryG?Y5BBpB$8l`HmzXKFqs`naZ;^o_5NW=}Hub-h4osYhAmf$O%{(zaW4AS^#f zdCF*I6%w&2HME5)La5g|62!6xqY%c3O1J3W0uWQ+2WG#fY5h@`F5UA}V-aNPR54~x z^UV5bTJ+ztI8gil&T+HiEWs~h6+q6}z=@h;1ln?vl|XOxTTN*gD9m12JhL@o^Cy-u zP(rRQWdTAB?j=|Klq6fmt064fV`ly!%UqzQY|}=u9I_@ zLG>VT<{$NdIxJ^gr7tg`N2S@--k&L9kiJZga1(;0QZgj`=|>cc`(MTDv8%SDO}M<5zXcg4S0gL=9xuEu>O3atf~zqGtcfamT;e zV{aQ^@zKrTQbQ7-P%)TXu(>XExTt^Er@O0&jznoe;^T*Qa?!^SaEy%cFl|Z( zdZpqq2JwnsncKwDKsg8SwC%IpAv(HyYIDlz{XUrw)_`A>d(O?4l0?FF6gS&de8199 zBxhqRKGioIo}GvX_P*v{0TMi7BnYHbapQ8N+*Cf_5ma0YVBUX!74^T+nG~WJjPy$3 zYWth=@_Fe02HX{$ko=qSvf(gqFlw8#L1GpN@<`gz#1K@mR+ZWJj`~nN$T3*5@Q&%u z+tvQb%p(>$^{(;xY#c%_#r1pg&cm(u@@3cCNGbR%p&1Zj0k4UcI_n&-%iRD7fkL$= z)LAHKaj*CAOZkC6Wq+{l$mb_}<)3QKc?>z2$r%^$i?T=7`-=9wE58%@n;@&5fnl?T z)ve`F@R$3k36oUWd6BK7oacZWr#Ai4{EN#VS8p2?1QL09-7`)hyM}RFEBA(Rbfk36 zrOLWmOkY`I*-I=jwN6?je|Swa@rBQjh8q;i25iOo;;k(#bSCDh8JlF z<@=lW=c}xB5D~XRl*e^%E#9eUH{+zS*>I9*MlW!*Fr!!EnO^va@r_MJmqO@BoQ}Gb zxWbfsIdkDs7Z()Xy6_PkF;+@IbdD~LeNx+~)%ul}EJIeWPD+i)KkPL;Ym)%llp^uT zfA0!=ypd=TsH()4J&uVX6_Yu;AQA_q@fy0XiNQoCQA=R5m=%LqSk=eR?pc8bqlS0C zM~Y_5OQcNA=-N($j3=S!Ih!qmsck?0@qN(YQ@p$J_C=EOjpaDmez>rUqDz0`Od1D~6KLAuVLr52_7wj7FJQpzGsLH`Pf=e(7QZ z4~@k>Op`iGmJ;%R^BRS4_rvF;)}b*>u|OmJsvkDKydNm zE-Wa)E!%p9MsoP@oo@%f7DBy0PG9e-LNj9Zn0{w-yQ%(FEWBx)TU?BsBT?|2Y`#!2 z5-7RrTIPcCSUlRaL5P>i#?($XlE0ZeX+Be+eN`@5|_99%2PKK0m=P77V|UE zkMBC9{SQAayJ0Jyd;OF-%fas=(82KhZ@OJ^gv(BSIV6Z2F~}9bHLen{%hD&JJ3ctP z3k^2SvrpC~!KdFhiCC*x)-HQG1;%#4D3H7MoAI_T`@UEFa39&6kCiIEB`@D<@xGZv zK}Rw)B)pZJH13z!fkp%lzMxB!p{D(O=-YxsX7Wjz^hMI13(9=+Hk0<}X4m=x784UQ ztRMM06=A4}&EREP)RSp)3pM!H!J62q=fWOS{DuOne z;-cB#yN5jdpJn2m-!B$@*ag(K<=|58;+yjuQ-=yNQCA!g;~a%1ml{#F;6|*)E}vjV zDz2rYvkKXV%-W;aS{l5kaYZ=n&x&>g+(%`zNJUt_x`{RC+cpJq&65f(yl2DU2Krb* z(No66#tdC>$TqA)3!?j&L;)FaCZMFth#n2JnF zGGd=i;dfO2-MV-ygs+g{R$o{Yx;H$ z8Z!&3R`Q1MqNs)!CNk}u`sMqd6r10BHg)|M!^C-4wlD7yhDajAr-Y{$JGJTDZf%&@}3OdBh1C}HlJgJ&g z?QFuYpsGGTsQB{FdjBz*gM*vC{T4hPM^96kN&O4rXOQ$8P3E7~AsO-|bNf4&v^1|8e~Nrw z(wrF?)g20LN2GATXKhzaS3O+f3c;|weoDs42d}T{D{K#=#<%{|R1UB;@*#lhuzCLM z!p)(MjvlY{_0L$gtL$?8v;U%%VI#~dd3V!W6EiGrKy2=;or*rOt8nsGh&3eSS~F?e zt8=JfQvksh$Le%ULTP&9RP31_7X-c*MnjMWP}V$#kB5LNj|qF-!doq!dR4J;B0U{* zF%wgNhRWno-h{!1ihq>YJvCJtOFAihBDUpR zoUL?=X1R;)Cmh^A_S=f6_S;VdWW1kKT_GVdHI$662|GN?#s|{LIfNPO3R`9Pgqv!=4`Irc`z`Tl+mZeE5Dhr zwN*HX*~p#nJTUFkhToLp$Le4%CI9kOqA0pHW&Wv!49_IpqsuUv=^nB`OHI6LX;~D~ zUc=iIB38mn09waGfH6em7PmhnWNMu;T<{K&>w8!V=K7bXDcH?TSz7p%aR{=x%37SJ zcv`(x8h5!tIEWcGB4rW+BvKp%QUci6T6fUl=d*S$QaTg4|F%o;{~QZ0EpN~B@pGW3Qn%jPi+n*|^S>vki zIeB>n4(|4b_SNtaK5V<{yh?z}z|Oayc?`%{sZ9-KOeGbB&0455#x*E+Tp;3)e%6Dn3|TJu4}31%A069kyyz80x#^7jaDo) zKd@CaUQN>#aR2ikRRu{~d6-bB7`vd22-||SN@)>Tn(Y{O_t19C1e&>a@v6%=2r8RL zS{!Eq&+C)AfksY?BAFt=#GQnfhq0iiPaDk0_op#A1{#AvO{y-C&Y%qzoCW= zQrK!0gtz6dB6Q*xV>7P@aKBTYexZ7B>4@?si_W3L2GIL3-z#){dD&L^?3l0Gbj3w8 z&s+_2uRx7cak@@|X;`{!tzu);F;#Bh!Dtgw(hfu0h!=xz_=n9_qnn1XP;e(sdZF62 z16fmDJ+?G!XN%PTFNu*h_7cOQ|^gYqJJYF=^@J!~|x9cJ~C_u7;ei zhbCOK1)9~ed%N!q4S`amN{e@?WcFPqrM=RL=W$SN?sO6A{U!RXF09$w#zFAPHsAdYP=9T65Ff8zx^Ex!N1C~tx6)Imq!mO=Xeq=?-N=RN_oO86 zjZYY;4xUS}K^88f==0J7Azlv98oSuzv|}CESVzlMJ-7MN zGk8>tPpE!iCNg(;V!)34NlnONR_r+hsp1IBx>MHsr^=TBrd25SwH=8{E9E1CD;$F8 z%EOlifo)ARzjFzzyRb0iQ7p1x;m6*thRDbL$08M#JV;bn>7iBByn=&ENujRY;Mcfa zH=LGfmXpjrody&sOU9>kFd^aXD;4NzJw{Qh>1^yB#QO9<1F6{k+b+f;L)-wGjSx^S zKSK`=+~`c?sGWe$ne)NY*qwCKZ+w`?+>`hBZ@uB7_42>*84kRy`unT#?^t=cLnNSJ zIWFOM1}wI##cc-3R*gc64X1A~5tGwI|5Wb(h8(4T-Ke}UWQhHT4ey$vJt89OE0Pq@ z!v8$&u4;$bBX%jeN>g#&j~o7jUi|K(@-Y2((Md75JnDCO=Y#|56W;)byz?wNC39V3 zsMqRx>w3Kw*ED3b^r~-qpfz@p6u_-<^rIid`F_^^WPC6?` zgXftef9mV<0`h!8)(kqcZ$LK_~3C!6Up$ruoiww$y<33HVMIN2wKxJjHZZC$ECwQDl<9cg!tohTR z9)hXFmvF?$>h`>ZHyUE2X_G|`xiV>8OwHKi;Wc4Y18A)R33FCgCdny2=+M*{7gHW) zdf~~$otOKs0+-%`GKG?&Z-W{(7~fv!KW}y_;A)}>>pv?IN|t4eday74`^f2<2l-jk zc|-E%Ic|6Yx`Q-eiGh!dyxfST5o0ag}-LwA3`$dNf58)7d& zBb`>nA7*ERXA8FvQle=KrDz3(v4N@_#)ZKki-{$Nb(vl!n$fh-)HG${HVht1SkOyH z&$@G^A{SHtr|xt`Qr#5QJeI>!Ve_Zvn+p1^0O^HW$M%;=?x&?M*{6lHV|0sdIpyGu zHVFCogfe>i=T{azW2xGP5OQU^--;vP+>?o4+?=9GsTupmfZzm!N{UmuQs8i@`3@ z3Cj6o@?u~$Qq(MuqsrI|GJ~)gL=i9jCu^9j{^)1>*E|6L)*cTMx%>J&+@!m}u?xni zaKV)7U4}7K54RA9fQ%Od65>H}M_JMK!O-la>^m5nD;{lA(`X5FG~RUHpKtm$gK)H= zV|f+V-n8<&4mYuXyP0}yoK3t2=klwJQY{6pXH6P71$H&V6BXK3pidD!y}A0~ z>8S*RQGAP7D`6~RHI@otDhu7Q$s(8P!9>396$zV}xnUUT>X#ZyFREkp@&y>|e%odB zt;DIhw2a9sZ_{6lA*ym>^F1j89K)+P{{H?==VTIsXm!N+J7ZyU%~<+IRhF&@nbUAF z*&-IQxN5v+FHH3U@iPC*4@7uQasb6}tYZ#@DbuM(nB}BMfkbkYbIPIO(3m=&r}kIx z_D1oDijpq#+Y=PRLDw}=>vc5jLuel5?Z^pAvAjFYG`+mG?8GOKhrK;}*+vFrIq$$z9}};Y)s2?2W_Kdkis2@%wdO~2T+ldR>2=peNdEI9pm|^JNH*bH6kZ3p4t$j}z36;!_x_Nt@2_1h2(nYHb!_(pu3bu^0_GGF zR+D1uj=%Cu$gxM7PZoYG7L62=Wp5+J53tWmUn|n#(Io~T3f)|JZP#FGy0{3BT_ZM^*pDt5$+`< z?g|}PxGShs&fXyIj(JYY9<`O1Z&E@fF8#js$X50Sx!Dy0SXc|+{Lu>%>Q|oe>ewrw zeqA4*FVBEh-^Cr#N>j4w!v?{#3Efk4883+r13!N_ph8lfo!*V-5i13D+kMNBWfZd zkaSk$?rC`kzwntmZ(ai;6NkgCFbPW3BffK@;r6y|8{WA0v%L?LH5z!e`sR(Q-?L(M zGgL}kvjb<{<5=J~)zer3RHD4cxwc(_T(=NcEXI-QdVlQA_Zj4!=jGq&=yBkZ{})$Z z{TF4seXW3WNOvRMNSC01beD8XND2(n-QChHEg;?9-4a6$9W&$*1MfV~Ip_Ps`ybq& zeeHekT5E0PvRz;5cFgyif7AmNC2v?dUcR@x2JyW8S`5w8Q$@7?sMIG@{kHURdfN06 zwOd^7^*&vdcWidXrP`-1M1h0c-xMYE^bz6opF5tA{K`}D$tH27ZoH^_1SPykM`g;h zM`DsSomWfSy&^EJvSjv{kC@{Qr z)&0cV_1IP9{A3=FN&gZ6EPl^8I*1RBi}%N*7JJt)76YQZaKOW4nq8&regF z9ic4e4}U>Iv~t3|Eeh#dg(psZlzEakZ-{?Gr~A`4Yg6EMTMu9wn*7i+H#+A8e7IL7 zH6Rz*#VrUh)x4=V0Z&dF#xC3Mj6rAwsCcHeMsIggPo z&o=!PBr78xrPGak@pvc#)i%;@ZTgXSnH#S>Q}##fG9fiB*+5@Nk>%`$I>}c49I~V# zE8j{G)#*Rn-87zxgNPXX)zHQIM9LuDUmAHWU6vYjNDF}tb|mmcsVhQ*G~N@ zZ@*Yq8eTS!3eANs}QXTKQU9uGQWpY|XU+#dKl z_D#KR70ZKgN|L5mHB)@L$*LV(TOuxFD(Dkm8xZ%qU6PFQ$x&485h44^c(kvl-iwuv zl7W0aIFueKa2W+ClJ8x>l^D8lD2zmC;K2$Fo zw9e5!S4a+1VOR+Acn1{BDfXFnm(S#Z<(xrSz>Z@C%-Kmo4Tw*PHqVXQ1Ky;whb^UG2}}p{aIemqd0dZ=fI| z&TT?p+CgLR5RVl#N$|+_r0=?qYh)(!C)hdkyY++)cuNK~ci+vo+;4W05G`JsEoMmu zshY47&b2ONdywe}GoMYBx!mRW4{fNPf2t%b%{)-+*Hb>Ddqh3F5A0nN70$_&&7Myy zLx$b5P}5TtIUJfSzJsoas(c6@ey1bD@R>8JD<#3{8x1bqoU=a!@xqARjax~`#9g>X zNaU(szQrDcs^et31tN&E6<8g-fU*|gzNCP}A}EyhW_01sa7L(8!m8j8uxTz$iCCIa4weXya+N@*X$t(_537n5&~Z8p}NH9+qKFyh`8uR)#N4J9(m(32SGG zl}rRFx~ybP6iC3`@9MU#HJrpsHI=e%zqs**ma{%g<>~*Y{Juhh4~r*Q0L;6;H$8SS zsDpej7j1UGHa9Ame#h{;o+XFeh*I}-=XOzdKV33`s~^{TKWgR{>i>E6p>U!W+TTvP zS}HJ(m8KU3XQ}$3o3y|j#lRyQEjNnP!?FHrIQFdeKEH1Mtb1Z?K9=NdHLdwaW<3LK zz-wnbY%>A$b%@=t0b*zT(2d*Ri>+Yl7q+GfQ>_A*Sh8KtA*-_L2~0K7mry6)OSYEC zb4a=O3*9B`x%4$|`tXtjYfB9Bf|&BK6Y}%L?%J%4INx28wz(_USdp4F45DZB?kw?n z5&)Jn2sJ7aW?1;4_C1k$uz%OJ%>-h~Ia|xws9!lt=>xkM zh#yd0v2?k-HK9!fCdGjO@F?S9NYt=X9Po*E-Z1d|>2=KubQ%)!Gjh7*Sfk@;fea$R z#~s1s2PHN17aeW3`L!PY62tX0EC`7wDpz;Wsu>P-VvL5lB%oTbSSMv;gjtFy?pe7w zXf~?Far;iguz+26R(}#Ytxgc3x5O_2kH&u^&$0x!HxJs>1`>tlvC?<@ip1uq*5Y4a zm&1@y(U*589v57PU4G$Z)f|6e!^Q!gxh!X`NX<_OPQqudhPQ!S+hI6{(I@^a4Fk33 z{rDSn=v(@+^P8rtZ_0KGEl#Qol+91*J@wG{z8LyX-s^pZHdy&UcvcI{q=al1H#6+#)H-FZ7bZ2pz%=yka|Hy-pC3e0ZK6J9_)6DCeKDmHtEoi|E8H5_|aeg zzmy5N>#9U+mF)ta7&2anGh>PfSs7<7T{wlMySO*?v%|NB@nk;tFhnlc_B2$uR>Sma z!~=76$k0L2A0PS!cD)_{DkUGa9=}TZB%Q4(S(bM3+?zoyMvEDG>1U!GHgf{vr zZsk&87GLpiX(`}Q#16XKfr4kLE$Ze{TN*OUl7Pl|D*;z0zmyEHoF2X<#hmXx8Po7jNOEs4LOmnTu`-ioc<4mRChGBzZ> z)F*O4qotFlpQJk^+4WUlMi3qEDW^B$C2#b21H@MS$8-GqYM(EtozI?Xx zqMXaPt|WXSC>>TK=s#L-u>TNU9r5YnGis^!#vG_@tD4;5LjCp`5eTiF-lfljVR!is zOM>4M%ebftd6C*x+i=(4sIRA$^p^zWwnJug8kIHS>Up^r0mnK|XKTRTIhbLiMC~&(b-n5VGv1v}HWrc9-dDe<_2dJ0!9DU?y;q)g8Mq zy6y-Ue-`51ZfO>;f$XH9%2fu`x*Y#bw>{KM^l_3XT1>?dG=4?F&llqGy(<6nbnJA` zt^gpq5a|Y>!9bj@gCV^0y>&+3RsDwe9ZLsvSaO%xzdijS+VV4JTtW{C*_V)^W28~q z8qCo_6u;>3B0`3!1$Yay?t8$ulHOdiUWTdXv0C=z-X&o*<7&wxaF+3WI8D``_Evx3 zst_Igdg1kP|K))HrPTTzoxE9vCxf~9>|eJ~qXn;f7rmNKgrg@+&zo#XR}DOrj1($m z37rVH@iKf?6zr@RW7EB3%%GVGR$?ujZNcHQ-dx>pxM63f@EyXxi!_se2W5f4niAS% z5(5YhpX{<}1?i1ztO!rYMphoK)9j^mh~4}b`58F8VY-rF8d|M4D{IYo0_3HQOT!cKh8&S(R4tho6^>M;r9 zsET;a6{ zaP8>5x{jvt1*`00x`LWZBT5`{B_s6=fb~6LM zQ{(vHE>V7vzeXW5i+u_wow6!h+uWB;jfMB4_oal|gXWLoQZ^U@=&R{DP*D0`9#b+B zQso`c2JYz!B~dBE-tguI?Ik__mw3;007lnSs{y!#ygQWI|Kbq}n|2!XoT`>fA|$a? z7zbD@FBMez@#s|R>CCVxtpadsMitc`tI1boHRFY3j$vdy1mUmxdTqARJ#+_>|i~Q_q(x@T{v8h9n=PA`?cxjt%QiFi+bkz z4J4=ih-vO!5C|Pgm)g#Nh^MSbT@I{fT;i9l0=uU$xRsaqS!28JE?VhV4$<_LC`7<- zpTG|z)up650?XLAdaEx7q~bGWPjeN`1D3*F?h%bLgld;yNV0ltxqAd2b3<0~P^OBW z$K({5aVpobgwNud9iN!pkuLY8QiPR#<`iBg10qAyUOM_gLEDV-bbo2Ykrs){-rNwg zV0>g|O4|Dp@$<4cL4i{@V$a<1B~JQ>z>a6r^G?$zJbHJ>lnCv%PZjvyf;hd*oau@> z@Vg9|N5NK_@lo>EES?9x!j=!VGO!4L@h1Entzm|ndnLT31A|2)NCn{$@bmX&qV>u@ zqu-MmooqqQD^%j|6x3=(RvPt%1oDpkjQ)T%$wvQ+*?=Lv+GH;k@JnEeqA9$78lzg&`hrF-kWdG?=)AHmd73a&?R+> zF2p;E#ZdorZ_QHuFYf~k;#WhJ%g*|!)8hi-)93#4Gw>fJMX-Gzj)MbNoWJiWBKO14 zsX+kumo<47PHSn@kZqMfF)&efbVl}AKFa@?-)HVi{=&jD4nGYpE?Xk<##3(z0Svo5 zj(Eine8VV-XrI8!xUa$drHLp#!TtMcrcj0YxpHpQ`M?nHrcWGnP$IklW<>)=9<7e@ zK&LPJtTYXkh=!$!JBSGiidiCO=*>Po9O8WF#Go2uvzLh7@j3?8ehQ&JkXvm(tRQJtr#_|M|kc+q5<`(Xd$_% zv;-c7hek4}zcl^EH<;VIBL4bd7Tty8mYO)+^BV(ng@!5cdTZs643MBK-& z6dQ4k;f_R%($<%*iRx>V7`G}Y1HRM`8F&4b3~Ji^Uh#hNU1q9HLspS~LS3NcJO!M~w1Vx$3)hL8kD!kY&EaJv;on^|& zP0%w|C{=bYwh6`%IG>U(6YSkE*~^gKsZcg$ zx=;3nK)6XDzs&VA19gBf2#3u`FKcWM^4hg~ZLI&obqi%dAWi+_i#KzmPSndg;L~Z> zRVGqcaF^(65B!)a_U)ehF1u^>?vtiGi4EuoC>`(!y{GLdr_;0Mn>>Wdr zS;&{qORLi(B+YRak10A8^4y`%U)!)Pw=1sD(TQ*HbA1pDyl~%yeu8TU-?MXeBG|C2 z4?~8*mks`Dl^YI(ZkI3?=;l3$>;X23T2XWTgjrTFU65e~NFB&J#yG1*HJo1$Pad!K zMQ4(?f^aVh{@F<*G^6-h-D@JcuGeBo?AJ(#bU&`J&B5ley-!F_a+(j;!6B+y3BD7= z+&(lv@!X5sI;=2bSMFZ@01eVJAq_mlBkOMg6^pm@XodhgWxM}xUg zQB~Vso=Cj)&USPIN<=7_#Tz2b)=~2Zzgw)1lC7`=deVhX!R*-2fx*-$Rr@a*_@{6b z92&Ea$;toWkEsmO+fRB9J>&Q%j({iEpw8aC-qf3+wG@&bwIAi3)bBcEE=X7%*0?AU zzJyhu>1NQStYS}3ZGCn!>ieDQX;{Nc!Mv@_pei0l+-^yNfKhi&(H5;qRM7iFn%*F< z*J>v;6TvfInc$XSINjl+$J^e=!U$ClP`79xE}Jr#n4V@T=jJpB`tsX{|e* zNAj7+t4=8O=jR=!0tPCJ z(C+zxl5>J*p11vz1xWWy;DTqQzeXw@T-B7kTd{+XKwOpdp2=XBCmzQg<>ymT60||c zHqC()NW)Jx1KaQ{)n)V4ljd#I>Se@sI4)u>t`|uQ?^b{yMZbF!FI7&NiRY5#%_oyf zz{=buk?PZxYRRvSPa53H_@(_QT-5GnC%W|-(nI*1V|^clC}honufnv&f*(xFtc^)= zBcQ9kzcJxKYEeXZtf|r=wYM*=Qu z(44Y+^>_?fnzRB7cx?Hu!`yCnDPz&Zy1dY8R^_%i_*<@zTrri`eJ9l@2Fz_<`Tyub z22z4|E7yp(CG)ELO$GxwSbPBLI8h>5E{nIUW8DG-gJ&of(woZPB zN;VVV4DtF;|F@r%{1YV2$FxOFcjpDlZMk*4Hvaz0Hxg5lh+Ps}+vgc!a9bORuK4(q z;d4zTSVBNIJCcyjmG5-9rRj*8jx)a3$kjuGPY$B8lN~ua zFsjJR;#r-6K1+~v1fLf|&KWTMuz<35Gq+iG1-$F7AQj{KR+8X?%4_RCN$Tlpk|Zv1IHb zHFS^OI{~0*HIqUglv(!=Kf2fXVy>lX7qNtNIuKagG}ujaf?XBH+TIX>I?hnXuVcS; zM(Fur$K%6PCBvD9Gi)FOr8XrnnYAx4mL})zRX*aqgdi^UIF_$4UL*lTs{--;L#u zMfu4#J{Qm;lW8nJL@gZN%3#cJhqs0v2XpbJ zVtESnJ1t4^NCox#iOR=W`!%tMDY*QUp+b&(=dvm1Kge|_>>O)FGz&b^C^IbY4KKOK zzizdfki%>b+A($P%@r6m5KEM^!x8y$bb-&tJn@PwjoL}(x7q06oiY7m^khN8VQ?%M zC`6l2WC}sU(s{myjnw`!rH*+_@l8I|6j;_#v*{Hg`@=i#H%zR%oL(fXG|Es2?aM;!!zLdFB=8aC|xJa_TL^f z?_cmsKq`K#Q`so>0S4d+LdPq#mr}KU)Jc*IjRWKtEA!D zy7$dQE05ac9C!q@&& zHKto*IL0Yq-|NZVCjGZtWsUf@JK)aFRyPc^qg~tjs+P&^h(&R5-GKFmId`q(k1}VK z*v*X|+hEYZub#p5oCui;`1pc&TKuax4CT(WdyXJ8+U4APD(no3l7CFsv73Udjy-NF z&|yX0y=pJ^2g|Su>?DG%n`@F7S2R&h4P|`>H)KIzwSLHX{%dtQr6Jl+1KGhiz7W2a znbr*oaHEbaHg6Pn7AqYLW z@C$M>e)q9-0>i(c+iD51N&3O+IENP zZddF}Pm%uv+VeyIiL;7hi#2BNR|?&mVX$RiPZ%B3bNgJZ39=HwgB!5tEWmF@|Dbf< z$vnW1XlVz9E|m7+qr*#PlN){hpUae2kw)R;n6p5;@&o>!hn|4`p4plh+kCOy_%b!t zK27Of8z#YSuh(qYhK{uK&@P)O0@W(b((;8Xz;`)f5IacaENpq(Ncha_EXza{Hh3lD z54mCDkk#sNfiX9^P{*+CUz@I0ZpKD0*deRy9tRt_m|@pPS?0uRGE|*>qTBB=9%pr-N%`D2?Jp{hhJ?om>pRWRuOwt*(2i*q ztH%VMITyG{iAs2l35b1nCEld-%Wxr>@8Nz+GSoH}W2=M=K8*;`#!_cx5vgg`?2!c-Z@+a4UI_1&=y=yK zsk!>Y@UBsHH_Wp$_xL-OgzptG_}sk-2K)xb-$`X4^f}y)lY{gH7L#O@jaAgGOct5syrW}2z8aXR{ zsms-hvOie6aFaVWSDZbc5aXCBu3X-64wbaJLd24y2}UkP&R3OO)r*h&Yo9L}{#Ms+ z%mT0_UN+))j1H)y@mV&!Uru%b%MW-3nET3m9+FW1mgs7wY4H}PhU~b{44TZM=ii{W z>A-k`eVn)8owdQ6|W& z;&g9R+v3+>qJ+f8S8ohk+t7o1H2~3UxMJWcExpS6ZxIzBD=zcE5tEuo=GgwZA@ZE09 ziC|uzw~4oivHQ|d%dup4Xm~e7q>8<~r;uOH0<8^_AM@iATt|KE#`Ww~>kd>Ns%QQ2bRHi!lY8jdqCJ?9Wm%q`W?m zx%}(^{PaTAy({IQ{+9y2=FB5@g-CbApXP}-<1(UX=D96j-Khh4WqnKiW>LrsuaWak z)TVrYtBy*nbnE;6cG>)Le_%9in)e`#PI|e><2xqp-#=73c@{5VT}Ie!y&-6?PxTPMlgQ zDEA-KAs^1aX{<+NSuL*ft6IN7NQ*6afN>T^>~nM*i&~0FK+dSqCE@_MNrg`1m_#m9 z>xKv1uwh?3h(13Kdsm4KnVqOYVC^0@O^;hoQ|(B)-5|W|h9*|j*n)*7$9Ox}B@kp(^RiAu3 zqqqGj01wBp6QlV#rc92|7kcIYg8g!gQo(A-jNYQwbxF{1TQ9g%p-UNGGN^v)b18GJ zSx~2k?u+PhjZ-g=`baH#CH`dR_O_@1DQK3CUF?Pf+H*raG+gU1YTVF2?B%iUcf{?HydSUk&VeRg;%eA?uUT!MJ<{B zPxMI>k63H>UJ2S)n!P=XC5}&B10fy9OTB#JglkRF-y)|rlE@dT(xv;#S}1n7p0$V4pcTyrC8eD1#0xNzjfJK>qo=XBII zl7=FSq`oKu2%8NPoFTxSgqHz{~WQZ3XeHr{AfMpGnB*ILIdpUiQ)++xC55 zQ&m`+VDNX~$^&OTF6ADV`?uG;?r^d~Ra|u(03Q{#|F&$w^d~K?O|6N?3U`@3_RFUA zla@DZtfypJyHRtY{z9i-)^Mz37Uee|2O~FiXp4X2)`f3`8_}J>BY#Q08xBmyuvQKU&R6I+e z&^s4Il?xM%7B4rXXt{C$Lfpp)IRYK{Dv-eO#{15ji_rK=|!d^0b83%FE1c$|xd3WCdv8OHz z!q(j`Ji)VEo00yjAiDdjCllVyc*^+Ctu2G-8V;?yZqO0Wi{7O!67x}lCJdgqEjC zhR|Ja{=`NwY#shF1jw+jsR35_5;Xfj7M2-|_Cxko?#T6aoZ@zxAw-`!*-R>=pR+{uE(9ZR1a zqe)uk6#Q+!I{1(@~osy8E8K75~jD&7K{&X%x%!a8=t!mF~=v zdv`V{Ikg&fcF+-0={pGByjpCLLu!M}9%M0hV0lJ>zqR!0hQ1sT2NLR|5oy$Zl0R{DKxRaqie5H`RMWqWpoucMr8GR1M7z*^jk@6)Tb;@f-! zWaVIVcF|H&!lyo!U-+uu#wnUTpj#aBc7t6jkX{(TI$a2>nPxq}t3o=K<9=*+6$xkQ zXv|C=eT%0Oz?DjM_}1&M@vFrNsdc&bw?gw6cf9usWKJ*wA0aU}IKdm;$;v#>M~pGx zxEZmZnlk4GSjD6kv_&J2ZvfE@s*uobJ-mG1_a3HY*~bXtwX7&~&|zy{R4=YDj@kXG zP%@!}X?}MV3Mw>Hvt?i~yq>QxYDPZbXt=eaA%*TO-J&t!4nFDbqG#)kXB7?4w%YSi ztx@%FsYx@xvt;nv9(#w!l9DDgqgQsDhw^i&>SJdkdH`sBUbG~8x8BQu+1M*_YMd@p zsaLr>{vC$6^pTm|LS)CogN3;_i`*F=g`7WA_7WfEnGZHs6Z#3#$}{7Pa*RjUhohYc z+511vYab;S*!9D8`Sp{z>Wm${eaPduI|oSMYji-v@<5&AJvyQj>{_y5;C%}IYRarr zI8NTCTz46SG3RXLJ&VKm97YCIg&(FCRs?;ER>t_yDSOzQ>mJiK9|%kr1^f6Dm_(85 z$zuHp-`VpgH3^d|H$Ji`Kb^tx;TK2WG_IH#e`@Ge8XXLo#*xz(=C`b@qr$ADJYM?nu<4hFNvF-W}w zU9P%PD&UE69%X#r^dTi#iS0Z`;!rU2*ipvrR~~<#(A9&}_Potvep3^&?6L*)`q4i^ z`6+{iRT6_1{a*U0Fp;^ft!>Yj?;54|*S0rTPUeMNFYt9L@x{f*4#7&RuhtnD72(dx znp`TZ>6HY4ld?RjU)gX{f-;-&kYI%(q;A*_(!v(ExX^SSuOOT~uHlJ^QGTG#>?1va zG<8!vL+J4Z#qz+E!8uGYQf&Y(wRpKKU2G#$i`dRy`>_`;F#R9Mn8iPP{p6QC$(pJqTN6A$Cs9s7Q=CVb? zS|m(w)NYUwizG>9oaNAETk)Uoh-lwp6+Nc?hGI=KhRaFKBF*n*{?K8wF4iwaw_u|; zU+tLJLEqwbeC(6Qw$fz=g-qM$*G;`iA0LU5)E25%Se_@A(^XYs#nEcDw0a|>Uyg`{ z!FWgX&D(~+7cniUFAb-g@~rrQGe=DdH+0_i@42{l*6-7lT{Ekn3KV{D`U!SYb^gfX z$%uxUp5IkWW>R!{l14@#-E3Uw!5;aJo|chNJf~fjwAA(oF{+RH`ueg`W@t=Jau({d zVZ!CM8K}s?U+wJ)$IxH1G28t#BS=l~MLrfXi104MNeV2_#V$tn4*0vg6%A}bU`on1 zQqzrw-T6>0KRd_&>N>^wf)m48#U1gf@NlXuKmP)ip?3ZmCAd0wG|_B8UWSwPMo5L zSrvEa#uVJl%WTcxHOA0V{Y0Ea)Tw#32~`$!+C!xK{1C87g~)z7MX-Cutu{W|z=JyH##?aL2DZ`Z&?7j5_)zYWT{@ z#{&s2By#?T&Jj()5wYk@GBgr=Q)Z7bvG;$sj(UT_l{~^SM z>Z*OB-x&i}pczZeZZ26HNF|2oH=}~zSPt7VhVClSIR;8hU^wpzat(w5Y#x3);NxP7 z!$f_qbwxuA28t_%vVxq#olexM^G#c@JLc%|q^^4$$2E&GUk?Az%}_*}D`zKOEwnc< zj$28psz^r$mci_LZw;GaBHGZmjw<9Tkw@O!)}>h{5<*;4saMv!G|RpFd0Ct1O+zJ@ zthpv0r|a++-*=`nVDPtgAYBxBAJh z($KlR9Fu312?p&$j~>n78AA&jXYki?4e8U+AucRli42W3X4hv{##&@5qDa)$md;H= zjVs#W^Js_j=&-{^!`UXpD*THGIzrW46%Fs{RU0^&*Y@e;bPI$C`@XUVer1k0Pa_5& zT&zdLuh$t#U?inWr=eSv$h-Y=OhGR##O#DC7W@~)^!gtnJ2{D0=?n)BXj<2s0%YB9 z!NvbnH=K!@jO@5kN8<5G8jv}m!n;xTOHY{xUjZrX%CrPYwH)i+&SC8ETZMOXQ3<1k z=h_A9tIyXI9N}MRXg4zJS4NX_;H1-<1lzp(VuWU0$NKd&VZ+to;N4L#7E+!>rQQP` zH66NUeHI2kbbt+y@s}E6Hd5B{9P^u?0K`+<0jvZ$WBMY3p&l@I-m*H$jYA7nM=T+E z=pTqpLD1#B&7A%FpGUou-U1`nHjH>w6?wKstrEh04#thw9NoP)7Z08t_Z$}kC$()v zPLDH!&L{ofb~cMo(}`RtufDnxrD~e*_6MIzn1cRGp#yYdAYYUN|&pMwZSJ}Do^BjfjR-;eF2qIUQu zMdd}~*_I4q1H|A=N^*(xpjtYkb7kcZZOrvTpSR-m-1q7)7e6jag_eIaBC*|_R_gVt zA2Hh@fj^1QWlhXaw7J!|yzZ}q3>XWGj5K@Nrp?oGmM^;1*>6=XpN8o&L2J1es@nf^ zl1Dg!asPKeV*0g^x-qJ4L$?dlj(lZ+$rMN%|6@6W$2;?tWF=Ew-ncj|X=ZkG7S@$X zh2UE~0$)gro=ia$E;`zSq_o$YQ7{RYAWUoP=~kwHg*ui-ffSOjo;jt5$+0)B5ana_ zn|e9=BKX24;2e*^X$uF8C0bW2AoSgoP3Mkrr^% zSICHy#(te&zRA&)h7Q%I`{KU$xm7S#lS`({+vy@ED)_hCMG1|5a>A-*Ju`(|(JTeS zx*iT(Aw@yq9ipq1RNC9jst=h(YBy(NXlB#is;$#KybU2$;r{{(;LWcl2^@7!;W414 zJ+%@Vu3`seIBjx{n|^@~lNSbB+w;=)B}0VhB9ZOxB>;eRRcN31!!hNClumGSxp zC`s*Tl(XGJB!e0S_w4!>+$@52l{w5T9z6&AgRS_|n4q5e09es1!(R~#X~ud7GMuvc z9yqzb)0f@Mit2s~;FIC*l8CsNTEz^BK&;VsF`t>NE0o@79-$MY#%}0qu(wowFJI3` zmx4)&?G<>qx`Y~R}UuOPYXTkjqoBkgW>nAWx6tb+H zLkcN<2`|2hPKzsBqm&@EgYuFkdmx-EUS(K^fKgGIsK7Wo8Wm+pkz@YTLCC-`PBK7^l`Y3b4vkDi=E*3ZkM$2%{GlvR)ZN{A@hRlagSg0rnnWXKt>Sxq|bHx#hXBzq+oo|q?Nq|qY)=1t!-T%gD(P%gv#eyx_6j%ro8FIwRU73*VRSIn+^{flC9FKLrArpaWY*jN^Y4>oe`rgL&|v)kV+1yjjIKCyN}vc=0Sj_zKfLB{tGLGbsz<>C1vw0Dt>RE4wYhBxB4sRp0 z@ePNRuuFxwbO2xv)#!C&Ee-vu7&S0A?*yB~4$rk_ReE_G;w*Pmr!l)xJ(A)f6++;L zhs_Fmdv%lcSFl9XFcwwEf#cR+Y(?vRj(nK4U2r83w^xhIXlaD{VUp}x?K;jG8Yi6$x#lG=&Y>dAxzOwnyvQBg*ts! z$x2&~jfKGQpay{XXs+JE;^1;6&2CbMP*PGtm%UrzZ6OMDQ&-1rWAR(^P_{fU z{qm=)g5xn4s83WBFZ@)Z#JkWSx~$UIc}`C?<2|Mn?RW6AJtnB$I3ct1#KBTWLI>;X z!(Nv9F`8`futd{9Yu(s43nX(c#Zp{L{97tRouTxQM=&oi1kiI985glolQN{BPALBW zt)#M}O@I!U^s4-6d>{`vBHHErG(r?PtZrn475?$tO`>?cM)JMG*x2~slB#S{vu+YZ zh%4SUN*hbejO&t!wgK^A(h4rRGYTS%N_IW6SZBA$s->k^r-wV6=-#EVDYqyDg;-7;yhVP&ODuT@Teg4`#|-tAp7woS_f zO;~+g757M1o)v+`g;bx5P=u}qRIGHRPre{&rIs;Lxyy#p|+XGj%` z8Dsfxku}-zuR1&>6;3%%BJ5{fa_q}|KoktHMOfGy*AJ5R($9?0{E9Gk4qRJin`e_G z%a$FzE(JW|1T4O(m{<)_^vpnx%H|aQYF(wsOdy?v3^|=<1p3xdheOcOHy>;ni14RF z8q}soZVT#(B7`hY(P`mN7ruq8FsaE8GsNw2^doKjlQC_^tsfH`*}t;p`#!DjD|g^_ zq642LY16RRIk&3By_%QXQ=+NHKEIg2OX4gN9d5Y`iJ;S10wHB1KWDw$c|B4pLr%)B zy6ljUIPvCGq;?a#g;n2aP^#iaFeUbQO0Kd8C%odSAX#uyY%cPNbqHf#(2+@8Z?3PA zV`aAw?MS6wTEuR>+I+^8#P{}qXTJaXOy;Y9SZip2aYp`#`gq%v4L>V<6$W)fEu^w> zfl-rJxihK^c<{XP+lLuPp&$PVmTynI za1ECfc@4O_<&@9L84aoM@;a~Cu%AxqU0AbJx#xxo10&? zmHj_c*|s@32o<7k^^map8R(g|tP!TduiP}ca7+tUlSSzSrqn2%SSEU&v? z*UCNLPZ8o%ufq~8O;cZ@+hn1vqC#OnD<&p}hK%y%8=w0$RXVv! zS#&O1Z8XVa6@jf_iQ>f22Q7Fp{a(7&)aa@|>Muc5bn)qUEYqAOa<3ZRH_EDnP&FdG z9din7X=Z22xv)!h**%uUnhuWSd0TT+?!Y)smNnOtnqv}hmUDYdRq#`&_TK2PlTRZ6 zR&o!PqTk_l8#(z9I+y> z&kl*P{KCZmW#bmh_M!w~I`=0+7PEK*vVf*s`XFb0nlg`E3p-*-` z@ZxlKW|qtzf+X&AkrFX%+o1y>C}F(3cR&&C;7eKaY`@x{-^XN2E>6>urKF!D zpM;(PVd~2)+~vhOq+0N@{R8lWVRm@ph4Jbn8?TRqgu%x*6&yLd=c9>{O!MQavZ23m z$i3q-^@Is9;U!11l*3hW{?bsaKdUpMRkBK{80sY-d&w`Y@cQ(d_%YnD=gf8L-Ad>l z+p3U~<=~Nw25Im~+1!-6MZ2OIv11#G0QS6;>q0Tx#ygXvO%Uv=v8U7E&Z*(EmR{Ul z@pc77p!i2L)Bkb-(!csRJr>lD177EV&#hilQNyB)M);A%8Tkj1FbKR&;?IA+lZxV{#4MXhJsK!nS&i zy@IjCV5Ocj4-61$(Njv0xtPXxVAX^(xF==(i2!;gIc1baQ|lo(JS#_N_ulRQarG7q zQATUqC`xzDkON3}cT0Dtba#V1^5cA5E{Y!VW6(OB$X^rj6ypgHX}5{S}&7@&iAzT<&c?Umw&?t5WCbJebb!0 z)HKCh$(DI-k)N7;P{l=ZY*P6>NZ*ct)O-WSaQ7-a5(QzJAo(P$W z!~;kZM(~0<1V$PZpB<1un&r+$(x;)QO|qCzS1wg5?bjS+OHQRp$|wpyP6y~zGEy|2 zTOANWNh1C?!c|ZBfAqIDG(0xx&o!-u^*ujf8ZRN=87d-Re-oi|jPAYx+=2g#tcA)0 zUa?i;*XGE7(?_R!9Angxy-BpL$ScWQ6>Xq>Typ+B&SYv*@#C{I*AM+c)_sgcb5Y z(%nH@tPK@49N>O=Wkt~9K2G1gA8@p;stOem1BB(=+0Y-Rqs3&{!R1T@pI3oh_JgF; zt0*IlJ2idReZnnHeS2V-ogo*hzz$WPpc8Yc*XPMP`lw`I={B?P6neDfZUfP2cB|S4 z7rltU#$>I{&LPB5;Q`lwvU}VO49cU9Xs-C8L`kCDwXmdqOR8?VZcZr{I9DCIshR5J&9Eb*$ zu;V*=mHVPs0H8Tl7vY%Y#`CQOvCIu($FxRv*mKo!SwV$mkH2pt!6ojb0YE0sE}oj7 zKrE+?tOLI+gk-O+v7-L6jT9lN%i&0i!?<+m;2cG`U#jwy9)%yF^=>l+&1uOyou|1I z1nO<3F*tEdWz7;&MWj#`MYdkF32|pphCt<&|L5t>*ZId$a3#7LP61d1PB{Vkl|o1p zOiQP1w~+mfsMU~+EPLnF?Fu(f?(j5~*%)%^hPEXag5fV&jH6{O!&H$z@U${1o2!yY z@3Nz%r{!A=a&Yl*A?=4|%`+6+n7rpQv7Wyr+)Vg6*&g{+;zyZ;1iFGlQ{eB5v`#gL zO9c)#gP<|(l;l+5V`BS3pOgE}HOlgAn@9g_J-v=Wd89HbnzjcnY9>@mMZv+cZ#9vQ zk5464E^$O+We?Xvkk~hORE7QLH8j^t7E`!!SM_fEJ}pO}BVyqHJ?dZJ?Lbhlor8qo zEWx!D4%e=Me2zHES0`kpsy=h0KvNVc^Mp;f9$dmSJ6cyP`r=lZ+%Lm{X=`x}= z!j%{i>2ep(q}3#Zv&YhV>6o!s8JA@S*cn81HQ^A$7I}Cnx2{TW$W+)1`n|OxV$ukI zjntd1R=!`rMak4vq@$LOh}bUXG9ZTJhMswXKb;tU<<4rCH|6g$W$<|4Feoz%f=f}# zF2gA_8>OQYWgG)--l9ah4iupS=~dd{M+UT78V}7_d3gQQwV=>N4H{d=Hu^2;Z!va} z4zi^#Wb|p#ltLZ&1>4_}BGKKL=zr^amqRLv8hA8#QLfhZ-Ib_!Bf~neK`Y@lKR9oy z`MX~-Rl;Sb8~;zn;tKl@tSY$e!zc+SeH(}0dFYsFKava^5lU1D4B^JLP1g-wYJczH zP1H&8b`YWQ4}&`V+At+HAyT4VYDry=q>o*#2!k>Bg~Jzz!IHv58j5>69s+aGDOX#* zTTd1xid>`;7AA?gVG?v?^EYbJ1*gybZrf$hHu8X@lH>+YVRw7`hIlrX%!?@{wyy9> zD~g}`qH%y!s(y#T84v8#X1W?|$K;Bmy^LaE`Axq|F~Z}4Und;Aq{!BRMMPJ$f~q@)m*u@r{~fIJNxKNCgjnBjI!&?YVmg)E(O8N0a}Fk@ON3O zUZT`rSs<#cq@2265~4Y|Lc~SP8UUUbsFax$QM84z->g|uL_;W~`z5P`>qQyk$DGn2 zCMz%XWF*^b~1PmKG{ZKCaxh-3qQrB-YG&tzsUEbHAaxr z`M3byhRb&HDY;zuJcgx`xW<DR4Rv5TvT`$evsvP^0<2{@Ye~0x z@^0t!N+66xfmrGTqpFTJ>y7J=8TKXlhufmU^5p9Z3B|pO4{x4ma8GLT4~yTHZ)_W` z>D%^qajvBN-)B#~Pi}Ihs+fc=`uUr%)cX4qh(=18XqA$IY3&E?cp&kf)(`rLorSj` zH+V zud4W{hu;R$;Yb@hi*`}^m+PxW*a*FAn+v*+_e4X-hzjub_ZNO)E)Z!Ri<+ENMngl3 z1dnYkVR9_VYwiZ=s1oNVsJ{Mx zGQzmfzr_vdJYz08Jp69KMy@w<1|qD7DOg#Wo`ryRIou{u=cfg`A8EqUP89er;shhk z65F;5fqt74Fhyalz_`gOPPc~5(lVGE7LOPt>38vtz)z3ScgRe3=EJbD@wa$Rpr){% zzW&V24EZxu{l4C9U*6POm%fjYmajGhA-cc@&d~QhKNVp|sD^$4*9`>W=`>vmq_Umv zmF?huV2>s?;qzxZLczyuzDXf+D!34~Xs1zOAT4aJNw<$y^&c<%Vybk10a!dT^R}H< zF8*7isgwn-%FnRzPpJklB0&|ZurF`gIhS{&+dIGPi7m6xs?2iYa{0wm6)LKWHSorI zXM<^m7cr#vo2yNr04qW-_`%#4Q#gr{Tk_?~FWDQ1ob)eC3s#l2>%wXtvo9*rVg zdKXl#uFg;Xtm~PKtrMMJ+dtJ|_0U8gS{eIO6?H$2*E`!I3`^~ZGA};|fLpBA_h}(H zWp{@xZR8DVd2BXO=w9DskErTHzT>a*q4~xWxE{Z+T-iCc{YxrAPgn^k!wsKr`H22!yB!+Nqf;_R7X} zMh9>6+W6dwSN}jlpP0BdK(J37!hPsM$6=&jdfoYjj~xT)tzy&_BY*aRNt<-UQ5AVU zm>bUZcZrW3ZoB8hBx(-Jp^4UJ!go$l`dnWD0IaXCFZBfWT<-FIPiHY?=-0g})Q)7s zsC;_$f7&8Mk8Uf5S~G(4+QTDu4bog@dl~JLevVHM%ftXWHv#p(Q0b#Ia~Z4ot?tgE^!{n>JR0pF1X`xbp*NK17o87K+a z2kBx<23ngjH)6#d03nKFQgdWqJG%+5$C<0RONq;wsQ8|7?k=Q9Hh;N2?A*e1s~=6R zI+Uhif-;I7yh}2hQB!nm#qg_^Mv9J;QrPOef`0gvGgS8X9}jwenUaoHzTzk3be#oV zQ>hw#(n^v?zETm=hs}lj=~Z*%DirL2v3>#GzA#BxtOk+`%qrN@H!w55xw<}`Y+Wtr zPh~#OZiiNi>MO!F{PLF#|7WW~iTQ8P04;Q^4*uo!+x&MU4)k;ctapFce&t87KA`Ou zzxyT2gyQVTjHjs+!<_i{(ncC1ch4@`u+!7j!a_1zw88Fj9vNk2Wl453WY<-j9G#yH+UN_)uaOQ6 z=Ih@lpk`9}$Cq;Gmw-ktQIHmAV@!ULnm;JUQPnv`h9#ohCDC_v^ln83ECQxDOzGlu zbJ)?n2gCLJO|_YD7Y%f`dtKJijV;CY5jM$m+0EA_3h(3wTA%fnj7P>l!-xF^xb^lX zTeYp3RlrnZ{r(+q>cU12z{~a`Zy0!GaNt0RCh--=(idtlXnel0%<+k(_gbzOSx^yr}B*Kw%PNK7Rf!}tIPB+I9)+qA5MG*jZj~4AgO?|oh z6FK>AjfznO=DUA;5qEuQ-yD3)7UgJg-jIzz-DDC`caKQ8W z3|Z80(E76s7-f1~>u(7isWV)NUMAP4|NnzP+EkIhRY5PB*0-Az6&oS~-A`!p@)i^} zd&DLO0|Cs;%)ighfcmt|#@z-OlWx|-Ziy*o=>_k!ldn%#ej@H~BLR==%|^N_Jq=+7_KAz zfmD)#uXPfwE_Q1HD?5P=9za$dD~r(*4aDo3?GLDne@xjj_*|i?302@7F1?6KBgE~q z6eLn+>gp)M>N*a&P%y9*#_;T{%(M`pqsx$_hh*An?ml4@O@ps-q|h*V;XW%}Ufs_PLfyf>J6R~4Buj^>i5x!% zYKWblZrSRyGu}QyYp(e#rf>q;IlSo7Q~8zQsJ_dXeb_Z(e8pER5-KHK+runvq)2VV>{g^^9UDbh7%d ztKz)*H=g-2?QPBj1jG)>_DSfx23>3R5RqLiIL%9HdohKFAJC*WB?lW{w3xud*C{Wx zIp?XWG8uL83Fm9bM>jVHKTAb^-uHG8a^lrnUESUZ`MpL;HPEYDx}AXmmP|x&qqL;9 zv2%dS!-v8YlEu;B93k8or_{~? zy=Yf#3L|H?Tny1r9Y?6l9^YOvD6dv*?CQ4crWH)EbyYQU9NwGbxclf0* zWNWlM9&W((BIUBkOWrhr+rr)OrI2LCgxKpeG>S*D zjvEy_PG)9fHETc5QO8oAx6}J`_4pGr8K(p{-hHbsts7ABbi4FQWr=3GeHqmILrF-~^33I) z`7s}fQKx2rQ$^JA!G`7^M&@53n&|@yYRn>L?v&>Av0>V|Mo5gD*cd?&dfw9@^iAUkvKMIu6O*FoLQVNlC%~owmiEgl+ee4s}}&*HrfS zOtH2eVwZsLigFlah)@A@sY=)trs&yx@2lZNZLG%*#|lQVtwq}#-6kES5R|Gf81(4E!oruGdSHg_h*E^A`*PqN^7(wQ^ZxeYCvAL$M`oy>#5ggrWHXS1)(v@ z!%qy~)^#LX&{l8AErnl5PP;yrRgfJs>ZllPmdRGjV!4dHYGJ zCf4Bfb>DKk_53$D>{a&}03bl>IH(OaW1`XvH4D;Fy}XxU!n=;d7ZVBGA2jWQBG!?LgT)zyt>ne}j!^dt zjzMuWuKC>Jmc-)Airs|))lBr)f>=lZZPiP2^FWbKGjGXUVe%1t{?%`1&-1ALK@?&r z$j}lK+UfhW)9L4my-*|G%~=RiE~g-o6P?$uWW)11IfrH3;$h3#An7yEx4P?r%JCR= z7kmuvixsUJwT$M@Z>7Q%G?}DUnBP(wL@G#+0{dCOjn5Bx`&QQx`*O5}tLvlbb+L-w zM_d%b1*FoyButkpA3JZ`ijF~Od_?TCPXwQdBEm$;k{y5i&W!M!+k6gq?Ch;N!r7rF zmN%nB{`S3XeKg>>3x|e%+L|Oj=PAzSfT8PJ5QGs^W66#C|Kf)=R;i4O_y-1TT)>QY z1pLpV&IC|Pmm4}eVI#?Knak^1sC$qjki?19oFLJ z+a(_~6}r^mPAmQNIK7t?fgH1rgv5{5Y-~wT7iQz)i+y@Dh{2H8=D715+8AODsJU)L zD{DJ7aI%yN`*Cd-1FQKK@BgGG2J3?Vpmgx5e!Jii+Xp&=V{Ik4&US-cBNm~XG}&rG zD@+I!_W#&y^*GS>mat|;Kfp-Luy4A1JH9;en)D<}o`&31@2_okA+d98;GO=%?sU(7 zEL>ID!*ghQamso@)>uJOF-q}#PF6_iN3Majw(_ZS+y^|BDE{G!`H%bTYy|kLniXfY zZh1Pb3jJ40<@J89ODVKhOjXd=8{2|W2@O-vT6Oq7O}6~(YxOUP7)Bdcx(P0;`?M(Q z19NeY8Yto^pfYDv_vp9yHa+^?lg)6->yXo!G2zkVz>bg>14hxCHoZo~N%iX|Qap=- z(cJcX14d_z`oYrraZw{vQ}?EIy^21ktBUI!3n_5!;BS@m80H*6g>GK6_wjz(_2&+u zbYTe&Y-tX{meEF((uh=fsw4t6l=a&P!le+;NNNWbbHw5--dOWCqV>jP|!@^ zK9Nc~tmb%tAI}algLU|+?uA1o7p6vacuq z>Q%ZX8vGRG3{qA_);|qjb(=9q{?ZM$wJ7U+jZNs+!c=S>3F}7jmUFsRAU{1o{(@|H zBwAN#(qqFBjg+a&5w6Q1@6^H2X2}=7PNI-RmPwE&Y#uh|!NHVH71#lpbLBYaYv0{F zu%}3?Z^!Lte*WEEB1~U*TUS_)^V0V&)H{vhj;Eik1a+9x)OelmrD{AI{ixlWc2x?0ilCms9wHluyEpBArTLO_DWqVk| zuumi|=_7V-2guF#PI3)?m^$)6whTIA8~pCR;}Gc$k`r0WIu(i5QFL8PO<7Twvz)}| zmexRO+pj2ee_%%;j32@>Q(>4oy6Tk(ab?K^0?j@sn;P(7qEPgG0BLqJjyNL;3>N43 zFNAh5fcH9fEs!l2&XIc6mCJ#+(4sTz1=)Rqe5m2l;fJBkd68KS3J$$r?)#OEq3u#SvklPhr^WKGiG1~IXR_7nH4WZ)cGXU zcC7Jp<98)v4=n$rcgKIOez{W3hX#k3PiskK<5U)Bhr)MpD%R%Xre}xN_9>rUtkVk9 zd>cogR{d-WsYv)M(?9>I3!_f&3n2ISkEzYu)a+~5U`o@&W)jM|_;s&if5IDl1Y%>G zPhn%1RLqgHF1$ahb{|!YIrCE@+DX*vgS4e3wRWvu*btfT`1MR|ga{SXV(mW@GH6qu ziGMlGC7tt;`?ZmnW-$R><+RDIPpV=xn`OR3xZI6TO^hZ{wjUVP4?^!FAPJ)dNZSep z5usGML)%%8kg~sKskvVAIN=;x;iy=itqi<|-rs3~d2?>Cj743?2AZv={VMy#j|f=j z#}HXxMCp|kcKJmcFH8e4C0$vlCC$RrK2D8$qrO0csqRDJhW`$b*r^V&l%AH+CoO#O zBxG?HsMD|ycybqN(>E9*Tp-mpVBAbxp0wTl)9ki`M7>Nuh2=V54P4a0sD$Ud=dt<2 z8X7ybN*qQ>53-3fy9h#hMA(Uxl%vr7bh#HmPN_{6>3z*`@MJw2IV+b=t!_3b>1z$w z`6nz?J@gO5R9UvFOPa1?MOQMF$wL>Kh~oE~EnlvqZd9r%aj9+l*D?VkniNJTpg<8l zcUT!Aq_79P3Y2q*i+fb6>>G^$XvCqZ{!Y}N{EOp1vw%-5081QNRdkylgjl7W&-7Y2~{VB3pq?hTk4}q3E3gpf$|}m0V~r(jHKQCBTo*$p1wKL;#^gg@5K}ZgfybQXz!v*$5tZd zV>U;?vJQ`Oo4y15U;^N%{Me z1aH^tuFo_E_C#uIPJe|!q(jBU{`v(t_`5PnONY;Ve7!@zgF48CeMea7^gN?@!%o%F zjI`Xn(p6j|I}`?vXPIvqy|K7{9irFtrI zhmbLd9w`(sN3J6|5eEc}b20SxkI7HsKAd`Fr1p$qh3m-dO|rVup8}(b%X6xjbJfkN z=n}qLs+UTqNR%Y%vU`C(bsTv9)j9@Zib~I9C zKoh6#$R2x3mU8TP=9^U{5YV9QDoQlL7`L1rQz{DMCBd22fE%@BQcCac^J@24v_)&$ z8%UWv|Hj$SuS2h0K6*SXf{Ti0guaS%EFM^#w}%Q%PgT@>sc8TYrMkjI`Wy3aANiL~ zxM}`pgdTE|!I(`8-Qsvw>N94LC~(mSR^c0ln2(ux+brTy$?%lDJmlFgOi+04ln^ro z;ua){QSEdcD;-cv#gjNQ-A&Ps_n^ryBSkNV@3Br&XMY{K`1f#ndJp+FQs9H0=`e} z)#R=@73jKLe*z}4nQbFI4^q?B)Z(R>fOzKTLa?=I=I2djj=2G>(L0SC4guH31jiRL zpACg8k58~cgaur3r}nmemo`W&qbZ2^b9ss>f2J6j{oeKP(T4mCM~DdP5BXEU%)n6U zE7!{f`h9XC!9+yeLjeHdYp4@7e-Zk9ek{!fkR(}Xs&xv=aEP52ZU!x}VtmL0u!we9 z`{@~&uf9=DW>14iy#<>`M;RVpV^lw>#hf(Y_QbO&0JVMLP z#`d)+UI0Z)OY746=kJRXaIK->%;I9gg8i@jh6-$0e^|55rZQef97Il1-_wTFLr*HA zsUY{|!N`ke!GWN)h{X1S{0ygUMNd6)g<*y0VDX3Ry_D=z9VDp=VWom%TS&~uhwDJK za1Z=iIZx$NywBS{QjD0U!A=PPQ#_V!n%)b9pzz6#nBUE#|sc( zxTa!dGEsaH_?_> zIvf!jJ#6dhLDfJ{x~LcqZ7ygg=$&MF%7pU+qP&8wLl#wFia=^eWN5G%d~i>3>dsAm z+H(XVR*_#<5X`9ENx2Zim~m(>?30vH33p3*!KC1~{nAE(Kc^5?FWyo7`GU%JLN$gl z555`SEtv2xOM&mQeu2WKe@CivbalB>A_%OgEzE~P(yG`wrd2*8nY`UQ{=PVt@-p+V(H+=sn~({il!ZLV4l4%gqD>vOOCI4B9;xjnh4`*_LMQhj7MseF zya9{X3*!hvePER4=xDe3Mc%%{Khw^{>=Q&`{3pY3H-;YSKqEG>x?KH<>nSve=08pZgiT5}<@NN#}wX;9MtSz)-hK!{7 z5!%XIZP3vvc6qL!xGcH{VvD6vmN99;mzr=FzYoq+Gnx1ks^YyGF{t%$BWev6GzHX2 zHNO1mou1pvtIE&EYzgjHSN+{Y%T-79zw`DXY`UuUnMQlAln4Y$7H62K41p^X&mX^c zptnsc?CvB%f(nGEkG8;E4&DJW4zweeXaSMp;weCAh2_;CbX5HQ{j0*}Mx4GR(@+U= zfKIBp80Uj;Ngy9UGGn&>XK4i?OP&rL8%04qU-62LL2Ti*+W-ajK#^K3#;6#fbIrhL z$kyeDUgrq=mI%aV&7zsU2)jwSFnXcsG!bZkx>>X&So5ZvdlT+Sy)$2ms zS)W+o{tWne`;~c9CeRB%{OKul8;E;4rB8W$nGvo*57oa4VFV;xN z_)c~Y@$((41iO#;xY?JLbxVb8X8;TN3H(IzbWJtHdmfacts&e#0wq;`K0+50%q+kd;H_Od--*(@|#7c%SnEH$Yws~}IB z>^!>s0@)W*XgWQ(r8x!Mv}5g-Oit~Y(O;)38VQ*W;bun-6lg%~x!j{9$niDUk1sMT zvTxhOkpU3k2lAs}^4E>xElS^t5Zn)sbkvm-nA3&^57d;%+AG(E!SC~ zxMa)DTuDP0VU7ezBsIA;&T4lwXN2Tdk1)4KgjWg zo)p(UG(_w{)X&!#!S{aKv&wl~Cb6^Bqjj|toIDPE@1E|@ah-P$!E{bv59i-3hzqAS z;w=_YIX-eSduvIa1q(p&cmNflE4VMe+rOoz=XX_u`b@CEU`ls0xxjq7uh-Wo9@<7o zGG{Z9j<4J}jw*TuO;g*S#AZxt^0(T2tqHm@sY%`T4ygtgQ->{z9GKF47#dv2E5CSR zv;%B5AH8A4xk#}UI z<49W(UWs=Jo^4WB3r)dxOE~iY2Aob76UG>R*~{;`Mo37h#iC&FcOj{mEMpdg?d;QM|s#h)H^YBb0=!(IauU^`BDoJi}bR%o`-5HE22k$si8JvyxRo1w@@4g^W)RgWuVtObt*0zSz)*Hrie!j z^Y;Tt0Jw;<$cEnqX5=-e-|^qpl#;OBaheI*D7OmP(#E9_&{(FYxBI*z*g|mw;K;enx_bS1MFL{(j$bjXhBg|AtMEqX5Zl=JtWjVnuL!dYaO$7`JJlOkoMrL|uL(Rp_nx!wI z5|IKibiG=ap;m?iLLSJNw-=5@@@zVS)k&we(P|<_?n_F8M57to-y;)m%IoO{J`H!* zypP&m+HFQgF{6$)Sm#g{g08VBGsqERi-kI6#m|(vgsWZ}lG9FSsq03m8&(hT1)uM9|aQM+5zwL8PVj4!O12 zs+W=vy9uIB?Y}3x(tcGUBMnOK6-?Rh55Rf*i!kYR!4dN~U^#6NKQ;`J4uLU6W0i<` z&7N8v`}3w`GgbHuF__7&Hz>6hb6 zhg$+F2|=bjp-azCiUnGLTM}x-h;mWho=1YLewRSkv2j;IA6}FfvAe@xF&Z6Js4~T0bM!WPiKw zW&1l{_Q;9d82BGxTddRH2U9J6AFNov$lp`3N^ZacCF@faJr{eB*#lDQHsIJD`zlg5 zx+S5a92si8*bS{;%p_ski1sq97=<~6e?G)aoq>JqS(*)+6#75K^=Zp+9YkUXLkkc7!Y#*yelBmblJ^OA`-xgF zDY8AWndtBX9yb=nhA+FmiHAy;qsTr>r%6Fm7lWUy^Oz?I+3XXroyUi~)*Zv_2oj)- z_;^uL+8hrYc?J1_psVrp34ND~pMOyH2cXFROF?z0Y=+tANN3$z81}J*Q+GP`ipV>J z;{v-?Pg{+zew?qTykd}NCH?)x4+tBDreAGeX+% zm1>V=AeFkNCR*L1b^E_?hn_kH$-lq8lL$4te>ZEFA)u{h%Bxtr2_>Ec3Vq}rutPQ? zx(DexVkN4WcNr*i;Q&n^rgT<+-T)X+f3tC!Hb+}YHpfFA~srm-dC_gRJ z)WGx4W{{{6u~D|$oXbBciX^pKEYJ=$RTCv1d*fKHwo#FCrPLvRO+($nA=WT>oVEXo zEn1j5-QJV!XPoYDAsCf4J#w|LsRDGXn)*VYrnoI?6O?===dg!A*-=0~%XZ_lj% zee&G@A#gxRmvBA0N@Aj}0lc4-{@%DS6v1r;p5`u%Ll{sYMz}|;CnNh(>IQ+fqUwZk zRH_=EC};|Cp?R~r4&;48Q(DW?omSS`0o^f8l(hzON!)}-+tN!Lj#nZQp zo#g2QM6~3*H8|>YiT`5qo8)V}Za89uX;#WpRpozQH_jC3_WvM~MsAnhC7F`+E= z{nsS0ZV7?vTk4ww(Zf_gVq2D#xnSKhRzv`5pj0#wH5+7f(&T5UcL~?)!Zi zFjfZh3k4+vx>4KZM$aJUjU9dtfMi`EhliBcRx}v=H|V({F#hevD7GB)yrsmY)%q?! z#FRa9MhC~PpY!5cIdoV0@l;ov3`#~G4>O8d{2;l;g>{WrS=5|W*Nu(iH)iWfBPizs z3hs<0+N|3=OtNOP;PYgAQz(l(SY%6Dy|@k`2lh-Qpt5vfm1Tda{6YE|D&#+9%~);Z zo|@P-C31syf4WTh3Y7L zuZeB&3@?f~7gH*r5V2&1=~KI<`x||Q4!;snL?_PFV0`IocuSbZyX50U2WMflh6M%Z@6 zf#rL}^2SyFJ<)yEF;lQ*Q)B4V7?K*)2am>~T+BxRbCUCn|H6eyK*0dFMui+mdYBL4 zM<65ho>x=fPE@36a6I7=x*2csK5sv)_i6Im6$M~y7etU!y_F5#?VqtCzq!zb4w3r9 zb$Xparl%7x=l05KYS2q8OKzXM)#+$K3o?HhqL)6rgzsD9@FtgKG1cK-z5AE$F=!{x)d)pHT3vDT1*x4e@X=qQ*@G&?_H>w7maIBV090 z5us%yh3(n1&Sh$j=JXo;sYgr~AHoyEoNyq(@{Rc9SKSaYalDL|SKFlm4GsYzp)?nf z7!^pl?&}tEifqP9anw;7wnli{PrZ7RcRNpH(hPW^_6x+-iIlk7IyAffI}`robXKU; z`MRe|F%1I?1aGz)e7IWhmH-DGt@@&!rMi2MhfIU&1~u7!A`H9LkX!EG3s4tUgAZwn zeKWw&kwcn{`8PT0K?Tw-H*o_giCjtFyj`@22(>->R)Z!9A2sI6anj=c-8|>Pz;N~S zU<#4nk__x`d39E9m)gao2}5rGBL@K@g0|f^(c!dDoTDfj8Fb6$Tm%OV1bLnDFup45s%eR7lQrsJRq zDyxqao3gwiI96HQT_LHRW4es8YU$m|6`ed)5<`-mW3QAVA{&+Q^gKMj>@HSXVrFOW zZC=}MT73U>*H99v%gaZ5o~>D)X8SN0-3Pb)1pSs*XwuY9W{#LUqbIRT*L(a!>e-be z9Ko#8*=F0ig1957$9my>VWGLdy582a!fiq`&a}`-C}YXVr>31ho2)2^-uv2XYLE&% z9aa@HEy!k3N$kH-jlA0IMmt7ORg+7~#wZhCdn$EV+D6eywlC`+ZPGHzvM$rMW>Jcm z`w>53=-eV`-bFSF>C2ZeL;QTaw(JB81A~P29`F^DQ`fY6+hmQR@*{?dIRa~JkJVPc z-(2C+umu8vA2H{|sTI$G7t1*0COmWwH<9g;H^Pw$?B`o}qI+UJ@~D!QnOQL$Is9^9 z%Y37Rd;|Ln8JR@WK(l;p&4AH=z2oyrhh^0r@l)=nt!AGatCKduVTNqM^+*4FM*8KN zM)lpuU5`xEK4nKb=U1Xf&Xle=R%bo1!rRHV==)8c3ukvOt+}5?_c?IRq&IcWa~9pO z)eto04ClI3-IHE-9+-MjdS;fH$r?c|T}=xR<=KZY*KDpgLDkdAjgtB;f80b~(L_fP zk(4Ckp`o`pDO-5j*qGH>;oLSU5>v;T9zG~le1fYs>|p~5`aPK513r?B>l-y?jQXYY zqZwp4>k+gKYESpIvCoY=9e7cVGkk}B2t4>oH`+WZcq!e@TsG8PCHr61Y91c3cTazC zK&Qxwq2b{+%d>gSW`nHSs=>#Z0iup8%@y7uCEWgH#r&gVW3i4-Wus%`?|(oL=qvGF z7W>AJ9TlydpSHg46T4iJq&as~l&XFA={nN7S*(rEyu_$q=@sfjo@(55Y|fJLg?TEP z?KeAH>Cy-b3j>OwG*y;G3-`oJe6+s=hf9qP-)Pp%&l(iuq;1J-dA^bgmW=Lj=o>&< z>|HbEJ@G1phTJzkhYo%UbafdX8`JXh3tmTnfx#kxqx<@jNZEY$PNyWUY8MIqPE_W+ zR)&zb=Yhe9bM>6UaidwTqT)bf3>_B$u<)-I;2N-r?ZK$}!pu30<pOxE!xR3LFRtI;KmkD>(%Ai;C!DbdsAFs-p#Qj3OK>#d|-nd=P=$L|* zdbZi~ekX44Yi;!p&Ca${?EtYL5X(1Uarx4Vy+B6q4odV~<&FpggJPRTB@+wuF6q|J z=9K)>;LnYa9o>&Tv3<7eBV`)r{jQ=Y662qw1tw3sqOF`6}KM;J;AoFL-yntO4a`G|fh!kyLK{ zd@9#(tBsD0ozE5awFnsg(%Ty(&}=Mv(upG+_e{*|)Cl1;>4h1D4A}fRU)O7KD-q^7 zWgVxrz};D8bad{Jm%o3}I6L3M0^L^w>_}i;(gyVXv$>Vb~k}srB`-Mp+XA-ysz6W zOlWiiTI`Py?r?>ZRj=&`spJ>#U~R2$SH0H6v>g(~Q+CTO2rSMRJ62bF20WRfXsiym z68&-vZ7uexX*x$o*Rtq)sSalL&WKJt`rhnOkRbE}8~ z$0HO#kh_Y9UsdwgXPThjv$GiSZQ9=}mxrWaU{vEMyY1h?4H{ryV|}wOGrWNZR?EmX z7}ifgC;}E{Qo=p^R@*-X$A8dQ`>kv~>$)7B8*5r|9c&)BNq$ZR6Ua!Uo!w~;%@Z8( ziH94T!yAt_wpDq|8KjjG%{h%LXpsnbsER+`Kl(hl2}(srMykHO!dCN=b8v7rTiqQK z!4mL6IqGe7&@;SUUD-TM^{1tx(DTWxKxZ7P91#&<=`dh-YhNASM&oFGQ#XH%MXoM^ zsU+I;xwA!s%yj>XN z0(HsLD|+-x$A`)7^f403GR{$(wQIQJ(^9F)oe478oABw#?ulw{V6V@dJz?q{wgY7d zVFn#5=O$#7E8r%MFrTG{{G%yD4AgV(7eQu`A_F(gujf@1SU~CSV@^34k6+nou!CR; zjTXeR^^0|lJZ%bRc@2i>Ez=nT${a*Xh2T@{o58`~xSk`(Cdhf}b^Ibc)A=U7`bm=- zaz}=NF(T~CKt-inrCr;ou@wUY4+F!T00W-|`SFeX;|!YEwi_)5uhZi=rgVh<0%<01 zK*{%>22RaGbnT2y7n>+dyewy~VFKq6xUdI!+3_PLBhfMlFS(+2i*k{(t)@#qW4EE8 zrKPq0!V`=UJA1?E_;~&5eVn!$mNf!{L6VyQ<(>;1@fnNCayt7&?ugToMhCx;J6tIq zk>^6+(wwnB*91wP*H=j5c)p}h!|2$xmUg;?$$OjpUpV<}X^4WFb_S$rh=jQM$LO+} z$eQ!~lvjsGxKrd?JD$(R0M}(77=lzowy!%B+W#LF0 zO8FPArv*RG@>$F3JF1)tAyK74Mx#0r14`rJdi%Y|a~pWEXgm=!FPN-aojRk(vo?SI z2@QLONY2d7G8aDaJr@MxKq$>aA>PfL;u)pVPv37od2hn;wI;#&HM~mT7IL?4@@sC^ z5;Cn2n>WZI8la^5-lpr9r$Or6kJ@O@a;8}{MFOQvUbdMp?*Zr&lGBxu*q6!JVVsGczGs-mZrfH(Qwscg%{<=D3D2#hIGzxw})m1WzO zchUJS{FEux{r;O@N2&|o)s6nC4<+uWoM1%T$r#2rO4qe zI!j>2=1_%Fnrmjw#;2Pzi?Ts#?h(EMu#`; z%QUtAok2ESN?XeMITD7B#l?_jR=2^Rf>HVS;>X(JBorc-_~<|%!xBNf<%-_E|NDkM zAP=Bh|NcREUzfg*j+I)XqfMxh{!@bC3Q(@!LvK*`?bCkR0}1*KytruoUtTC?^&7FO=r-84he0y>%amCk#D2Se#ssL(5f zaY)h2s_N(eL)?4DHMM+g!`KxBjsnubhBN``9aNfvbV4s8od`&mt|Ed+QR%(c5F#a% z&=iCyy(NJJh!{E~l#oyZZ#bUwfA0JFJ@4~=c-wr)&Q4}#&#alf_L_BFYqlg9Ih)M3 z$DJTi!oED|WH`W;5I6f>#!IdzG-Li{NFS$Sc0S-_4*={Ej-$l_BfTe z9CFgi_qqgSkAzLXh}#)z2Kzxtn2)pd((fEn53X4d5!^%BYx6Ds|blBo#+nG`?hXiKv!r&~`u@Hs^fCs4C>P}%|Ilpqsg zqYYkcEX~_`Jy(9vBR=hx%^nLaC~ira>25W> zwMF-IO=9(+D_4|WGr4Jg27gEH6b;QQ)7K|0qIng0zd3tPwApyzzD7A$l&6K)y{0(5 zge{@hw7dsS{hjFozL{V**(0%gXP6!YJbh!OL@iX$W8HR|dX$Sve@$C9<@U|=OJ@et zU9Adlt2rOGKrQEQ9sG&BUci*OSK@G>%tCzzuY@>a;1sBIbjw*X6a9PtmOE{k%(rSQ6G*t6U3WqGV}i=P{lM*ihq6 zrwe>Oc=zmpb3apNB^JK*p7f+%`$QmANlf*|a~7RWvkr+=0^Bc&{*l3XTkCyTi{rVA zaXp;%8P+8o6I3p|F-?IiCU$Xv{ED86B8#^q0J9*a1OWXXxB?t6LooC+rv(ul{US8Nb zRe8Rb);t~Xzyb@t_$efDFID5?r)!P?y7{{=dJX43_r_s_C0`mkWOqK1%{02@Rlxq@ z#m|(*hSN6|zVy$Y$IHCSalaf08Brek;Sz@l?)!U;?#usfAuqSc|4a02_?ldg`m44iD=onpdh?p{S$Q;+Q+Wuqj%G5BH8ZWOEo4uh3Z1;V!$X zTymLto|=+6@qVDo`^tS#&q+J*k+_>wiL1XleQ;hjkA`g4fwD-%-F!u1p^9QdOYjm6 z%_+54C*u1%o#n#j|MQjl2eohio}A@6Mf>mfzh3-rgz;~t|MLPTqa@ZCaYh7ge|$2X zscAUaFgPwOhHAQXFZ&3~-R<1vd}8p=wdFph=s1;V2=xw0A5r^uf9yo48QJOBPSUSm&r&a00@}|EP(`H+m*xNS^Q%ZEr%2aR|C|2mb_rYm$@}$Nyu?E( zrvJy}^gqqAKNq2)`R{^F*sZ4Y;j#C-gvK`l7K=#_JRAbV@2Sryw&Q zRFt84>VeON=*seYjWch6$Uq>n$$#4VtibTq^56eR5Gs*Zyu)nD%I=Y@-k>s%gh`?b znnhQ;_B{tU8mnJZPW>yG@!qNhIPtc!rKB&nOmXiWWZ)`l*q?rl@sIAIp~>e_dW_wd zcIK{aw~|HjS~8wy{3&kak}?|;(iguj*i-zOL4{#OOA=QH3jR?&%U?$RS8 zh5bNxP^_BlJ5<%{c+E zyt6j@KOz-MK=q9oeShB<8waj>56alH(@DLOE3${?t6oq1l6ms>vQ-YYIGvoFtb+RA zta`(FOQ=070%HP}7F4liETBw-m}!SE39DRgjV~QNavabjoR_8#MXj(kshTtRdRye>D49gBvESso%zO-J-+*njy?QGE5Zp^Yn+*FkQ zNL7!}{8;{a+FM=+jqNW9*K(8_5*6NM3EHnrc-0TK1K+8H;Em$zeW0%zY^0xV(9kdO zxSX?hM>Kpmf4P<@t!4x{#i7syVOSo~RURnSx1;9{`Ruue;k1-;DEzz@dcYTALC+of zd9bxUFUP$5E1loMSxJ3j8q3LKpla<%riCza)8oZu{3I{nEdP@QCX(~;v+G8=LG55k>K^k<;qO-Wwc-u~v)vm}b0)g74SDZ}VnU3psF*Y9ae%wvyr3d*fCDBkxQ@^=YeHX(IrZ|d z{I5q|qmlb?4GN1*y++--vfA_oUQl=!d?iLzrFt@pmPIx+lP6ncd~k|`Qfl@ti|8m7 z$%u-nI37MUX;jFS0t9l|1!g-Q{~Eucl?V0?$bxvY@>Hl<2hg1e=T|0a4wTEg)OKA6p6O>KR+sjt6&Ra49B*2yJnvKE>*D9SCP{# zx+Sw3uP8bkqtfL+o^m|;W=b?ObWs^rDR_#dK28|!?&$Z4mM&*S`f%>mS(+Z@(8g+B zmQvFCApn=iQ>};dLONgA_J zxc{1B{l+s>!j#*3&vF|A@}K79#QV9yV`csDU|u)>3gb4dyh?{PzagNXKJcg$Qt!TL zwm&<-DQ!O*mI*w}J@_G)clwxPs~N8s?%ul?A=A7zsUPpTzFhG*;El)B8841yJ6H0+ z&j4*oz}=UR8N;30BQnd?;K4VKnRs)ZE-!KqG;M?`A8&FEttWx?j1o6txC%2;q__ui zyKN`NQ&I36A-xK7OpN+;lzJ5KCg{!fBiNRph~(B_#38fWT%HtsZAaCtqG&TcO!H2+x}c&-ytx^lZ<@9TTCT~q4Sf1?V7d{HhE#Vj0GoN)k5KDyK0LC zzgC}SC6qr-3MW}asXLIGFXkkX7Z*Y~gH$6dcTD^9L^fYeA8b7b=9-Eene!g*z0?hw z;|5Emjh)S_kVr*rqql<6%ACpvBfh%iL`bNO=`TA6N(PmYgd8w0AAG37reUT}<^&Bu zLrcSQ#|(qKi(E47S{q;KzuwKHuM81Px+8@bq1wHw{_XAAK$*Pd_dr`jV@UQ2`go)F z4Ujmq(Ts`l&d96K<*V;uT6T#1 z5PWzOr-D+9_c}r}xikc8N?(GxJ&A~N7DIHXPK%nY+be|RPglID>0jTrS&(Kvx}7iz zjR-0D))(?}D8Z*B91=0TS5T&1K~LQNo&#|s>#rvBhBc)u{_d+D6G7=B#W_5{IPaYJ z?@Ma_%UM19%0pI~xJjOcP!+8{l?Yvk$_6|Y#CO(}@1ns|)xg?>CEmLwBFL7ZViU-y z=bkXk8yyeZfUE;QqVBFvIV4hE^x#Qrtc~EK~$;do!&ukGbYZ6-F1{3Rr@pP#8CQqOV>7Nmijp zE`%L-i8j&1&(DfGkR+{8og~g^`<{t3)v=C1@Nb(86Lc*bZvY;IC5-qdc9bucrAO_q zl7>4Lg_T>Q@7Q>Q&s&TsJs2C}t_XP0;f5^Yef*&v0ilM`@;TnD$(9rwprwX7;cU>h%Is$&w9;yh^?kzdO#7O&7+MTM%ud< zr^yo)+A>H(KlPX#;YU|KX@<0Xg5e5&t{B$aSV{J>j5(#3DsO*0n#*7ZvMU`U&t%F7 zJvKa7(IfE#kmkFN%+rJdp7<5tZ2i#JzcbpFX=$b6AW3AaY?%o&V$|cQl4(|q3sp2h z+b5T*9Dbf@ALV4bWLPW@jy^PG%n6Js#G9PV<5wN)*C^%QOhbrdy6P_+#GTIdvhFLKR~w^RG(b?T$y2 z78CCgWM$pV^e*JcP)v1s6z;2q_-`ber317XdGasGP8E!Oj!n)r%5ONMKboVjR45s` z-aPy1Wo5z|Z(-FucKNk_s#{&~(h^-5HdQ=zuWo4NJzZ$pUJ1vV*{-C?j_SeNqwQ$N zW}^mSWyk#LAjj+x7kopB)8ow|zr8bM?)M9Gnuzq%FOVjy2U!cq;gKq2i=7#i=m&mn zakLTZoGbZg#7!0Wv($h-)33!gY)2vfnGNpxL+Vna@jIJF#ymn%b~T=(qbaG-?pmh4 z#$6)w8^+fAth`y*%~q7A#R-fG~xCi5A;+u9|LnaP4qC+teMX4pMoIf2`w-TPA!RA+HF)K$R9l9Zg#SlN_WwW|85 zbSfxHZ^fVxAZAxoz^{*}aLKK>!P-^^b%!KXxAqw0M_Kh(^L%#%nvUII_%{q3I~!6t zf8{~)Y%>bjk$xiM9ju-P&7i~tImp&_2;~Zer7*{G;|Lz0Ewa@<5|PFt=(ynx^U2@2 zoSC1c$5TBqO4|QDZ=yJ`dfA2q504eF1}%yy=sDccMKn1Kjpqp4^q8QoYg>}PE^|2d zW1E-;N6yg2eW1ae_UZS|1vWlN%PnELnvJF)A{DlNNaCIDSyB7Xs|k|FDx$gP^Td|X zAio-K@48iDw14NNMfSbHu~{Z(S6jWen))?q6=rihVZqDGxhu`0yJY@jH6F=+<+!?0j~x={zMgeg=sT>?pH~g{`bzup0^N>!``?iP%0gRKX^$ zm4QU%w7GrSQD>3{4hAa}0=Axn* z^~n|od97mnjmmDo0W&R}eTUgaXaTtS0@I!G+J3QC^Rk@)cf6u3aQpU7o5v=xv25+UEOpX2r@Y;_qwyc|%)(|g*~)O|8&Zm1M5zS5 zaC2(!7Fz+?^~HT-7~ZXMei&eJ2b%nZ)cGIdKvip{d02}=1fL#> zGw5BIy)?k#!g(F5w3Rlos<#TsOPlgNKE8abFL4k1gUnV%qfzh!w;U{2r z?%Rq>_B>r$L`4WI#%)1LMcGW+wzL#H&RS=*mddQ$5!|wgs`y^bZ+Rs)X+JPc2P3^6 zzayMR{LL=~eB5C72(%CyfeO)~5OX5tXrf$`7Q()0g@NfTi-Jha%X6@ zR5i@OkF(4$T3siEmc{qy0Bl{fPF~+bM>6hUk731utg?JX#HMbdGPV~J8k|-3O%>uEITEN&S4-Yw}20cV308JZf`#{0?On3b#~)Z^q%xWqefxjO;Cxfw4D99 zw+U;v0vE*gSN!V^9aCm@y(7KXRjiF$0WWy5RzD@u_Bhe@*j6)}1*T}SLA}g!bYL1< zut(x}=d(NX!S3Wd*b`msR|{8qC%*jV+s5z>xXDxuq# zj_t*c)v*w<6wvxTUFjluK`!ckvl6P}3j%L|)6TEk0qP{(h92 zi_&~sK1r&P%Tq=1N>M<29+RL5SS8|QGSR5w^yFY8QNtr6(ygY$*Hd_Zw&NlcO$b86 zXoyPf`s>I!8Lz#YOwx{D3s?qTeVn$0Jx&%7k*w*4AwJ$7gwve~&K625xQ zCS*B?L-JXn=Yc!q=7pS6(4crEn`a%{x2AYfOAy2{MVwh^X#MApt0^gys*HavaNb*h z50+&|G}}q8QWBx=BrnA1Kr4MvU1{d)GB-ajho~N|f&;VTr{|JXi!td%JG}DNki*DAl2&+2J+)d5O zq@f16V!JN^A_p2BMiZ|hV}i`jlO1&GdqU5NRzUQ)Y{ynTT$Z9B9ix>Ho>BRLSi#$) zMDJzVo=X*_@ogGJ$|7A@o)C0h)(F>=>k3#;uGzLy_6n??h6I-mz3`XFQiE4wH!dkG zFQiF9e#gh7=PJs7?Be{`)9xSX+_^J#zV3)a8xLX%vwa{99vvg1 z%D<;n*(Wh6Arw=pQJsN8*xGUoW`C$r5isLjKPbO=IY$x6woi`QABv!=>x=Y|t@(HA z`uED+9x_|Z-!gwtomqW;rLWQU+=2wcD|osoU0TeQk`*F_3lY9`GRpa<`Wvq|cwj5K zw8oF@pC|3zZd736)hMdkjti1UQu0{yTXxW` z^+ajlh+YNmdQMP-cdf6Z+wzn}Kx5dqrl%MqN9(=I$j6Jj+3HL~BQ=y;C7lENP7VCj z^{CfqvMqzh(b5A7aWNFCx?(hq51Sroz#;bbE3TWLVd&6}=Dk`qN>X(D5YYI6rZ57oevZnls7#$tZ9 z^GapqJDmT%7v*uSN-{5MxfCZxyfnzxw=&m--k-N>{TX+euiUs1TSaH-h127yIK@qy zV&?VhZ!756D%D@JTna2j?3upZaX_b8`vRFdlno*wI>f!(xz}gE;QlzguxENd##5;V^7()l#L2rG-M+t|HlXy{%i!0q z2UOdpEsr_e__&Vxyz1j zensAJsEuMa{bFGmX1@?274{@Kg7m<&z3}{8NZmrHmS$h@aC@wL-cgl@_V{}^hf5}& zj(Kh|Sy*m0_C`@1w6eIZ$1V(V+>IJ!B;jKpMsdlQIuyokj~(0As9Z-r?Xw#x>x(;bC}c6( z{cv<(E#hUj7ODdom@e8%H-zC!_@ybo$NVR4j>qdSB7{11 z(HJ{a;v~1i?g8;mEj#cY~CXiG_|8RXLuVJnM0 zif8%SwD@{5m(fFCma0<#4zi*7Vq;+25jHq4zobe{$fOb=Olo^^@tQlptynXm#pH31 zM90C=PJQc_1gG}Hby#4}X^#)w1zEh3TS`8;g(?(vC`#~CA$y}9il{nYj!UQ8{%9e+ z?I7!JH1tp;BnVa=5^NUlrP}{;M-nVdC>8ASQwrL<;$w~(53$59JepP_vJ8an*iS2s zf;EN?^LX~NWd&Yry!al7A0j98_&%By-xTU6fxdh3a#RW*Q{9O2HH`{yC%mDfH}RG# zR*Z*xUYTv*k{p-CEhLY<;dd1nRSoru+xP#tO+S99s1EW2Q^jE;+6u~VW5hP zQQQ7l=8X|X2RydJlP$Dck4ELB>77?c&~~l!@eZ6r+mDmR~c)eR!1Tl;t-XAG|;KlVeI{qB@{bJ)Q%fo_@ad|<*p^n4Sh0s0S?!XKE zjBbe>;wG{-Ar-Z?zJ5LD%-p*R#rzgD%-m*obgGm@AX)Et5s&TNI^1SrnH9nIpZ60@ zuniA{szKQA?HrgE@K)m>>KRsoPUp?}I6{exMLchyue760!}tB__s!vq%EgJKf%jj5 zKO}aZGgW%$AUbV_9(23y`_DpjkMx|jzKE|}n`*T;fkKc)kdHC0^G>D6-JXlX22|8a z>J+1aNi75Viac5>FawEkliswx$9!JS?hPS$N6ls=qHL!5`Df2;&Zd|^wKScaJIYlh zjNG8~ZhhgsR#yD?uyXiQZj`)w3rciUY@k}i%>I`K z3w+WZr^q4|Q+cVHJX6g0tZ3u}0l7{^r}wzeFdvkKbA&w0Mw1nc18tSHH&?Mpw=$JV zC$Q5xhl*)ZC&q1CM0ROyrhDIg-y4>nz-Zm5?V?h}OW+b-{2Z}ds;JC+Ltlk_Z6I{* z3B8~6ulOq`&60bB|L{hS7{WYr8Yp@3L4p6%!`xG}XRn>2t-p36u(JY{>6L+Lb`_s) zII|cCZ%?tXu7-nz@{zOY)G05_q{sn+s$*0`%#*4kI=XEIry?#RbRo)BtI=>YLT0jR zrGzldE}4e@0~XpboAb(DG~iPDw_`W%&kk8F=Equ-W7ksPaN~y8VkV zQ<>##|0`7Rzru*Gg5}maT-!M67^tiS&Q(S*wer6!r5UfRsy7!6{5bs%*=rrW0IOnL zZ6N`dVCTsf{)L7OK%YO~Y>rf;LeQKZN*UApa#j8=)oQ*r$Y|1ZrnINcnS(PY=>0s| zD}OeQX#Da?E3I$c8WsMhrWg4>P1Zgwk@J3=j$uGY68`Qv+ zt5?9S{U+~6outlCp=&A~^iRuv+11a~{loPRHp>6`s0A;EsL6TX6_Y?`7u;p07)`NhAA|0zX2 zMFoj3nQXqLWbQ4fJG^1KBMF&IoD}=#@2AIe{~^XlGc$7({C=aPXpg-}d&$h(9tXE? zm$xTdSz5c6t=-aVoboIaZ#l`0HERr5O>l=2O&{C_u2`4`hkj&+>6z3h6yNK8$ zF45-5DW7D{Y5Z-~Zyw|AZ8aYAbD$MPnS@`DG&D3gRx3@qyJxD~adkZK9GFOb+2g$piFdr$z)L^w$@j$qEG;v>VImMg72?ymUJjLqjjFY84)imv(>vn)4d2;(as8_nSi`{vuOWmwlR1-Mz5!V#R9nBuS z{Q39Qp?0%%Z&>OP4Oeni?YBG0m{aXkDugamzEJMNn+_)FNp6kOdcOM}U(!8SQkY9R z$D!z2IMe0#D-!p)>vcOkCV} zE_!C0uMi((WRW}C_}n1)b&#C5fLwK!LSv$oXJMRD58szQ!~AXC)nsRXucG4i9A?AR ziX33006gR@?Rq)E1~)fI5>-r6`;@aUDBfG~IgTFPB#F}7xvZubK9cZcX!|=%0@}r9 zTP@!@tnRNEnRIK1I-0~5LLeVTEXM=60@)8-WF3yB7=GvaTYF;5V5<{7 zaX3FP1&Thfq8WI=qJN@Y&ep&B7+}N9`n+-Xh58*qab(Gwh;Y3pUI=VgXPZ$nqP;YZ zYzhOmGCa1aa*iQCa-dPjObuHcN+9m{Eb zYb&!=9avad3lEtcG6(!g7>4;~2NrJoz-qIE08UB<#ZyPj@X?bhm!Nd*QRwtqgL9M& zhwPben>mOK zFf>TN;Nfqy1yE?fv<3AaAADvBb+UB3h82hS-_DpOa)8n`N0iE3j0(V;(ID* zY9JM~_ME8MFPgt|FUhRJ zz#Utb3mSr><}}qm1fr5%gp|P(3^d6Cm^DIz!P}wJ5|Iq{9!mNPKUm5pe%xdMG~e)7 zZ!~;+%POSNsdAX5=!b&#jo3O#02ji7yKq%7BT!vfss4U5f@f3E=)LzT9%RD@v}RNv zAh(noh!Q{?jB2)J`&>B3u3LQb*0fMxpY%I(K(jWPAS3!al7+`i^4`h>eb*K8b#}j~R z`IG%ZbTYzy>=1@av*G$1EpM!Q!Ypg-9@GL*!1)yW$nA8<;A6>JwnS7<1LyIr75=`8xFch7&Vv0&pSk53ixV>DYHB&5EyR-4qIk=J z#RA^#<+ksPA51hjU@(O8Om!CB1ms$E(WiFtHP)G1D5BiPGFdDemLI7Mm zWioh-P~lxGi*SIamVm;j`F(=SitE%Ne>$DuZB0Xez^qB14Bb;Z0h8cNi(i?bHvjQ7 zyW|>;tOz2wOWvv_oTAZTp*w&bKSi$it&BFRp|3X9)cEE^Srm)z1J_R3pxbARxg9Gl zxE1OtRYtXLjP8aXiPeE>`#5JYyRm2fA+L=8^^A+!MS6#3KSzwAD1YVqmB&Y#DEv zh@( zKZ^NO8z?;1^h;z&+f2`*2^|n?79&6OZ6wx<_m-9|4AExP>@zB9at)y;KKR7RB&c|T zg}cbWK@dN=k=5{ADsw6nH3B>OQKe-Ej`uCkdg8;#v)$;yqT` zHSmbm*_zlFtb)FvwknzD08_W}!e=WpGVW;SQ)@as;wA5lnme}#&^7*b0qZ}FKG|)f zJ7W18^*=K2h9M%3XxE3Wrdv1{b$wg>(_Ks>y^X-Dr|7jDiyy`klkI@xH|#>h)Okhca?wG9we9ELR_H1AdXmjO1eelv|pUbezK81eML z!nB+WZ4hAn2+|VTmaqm!!}?lx8BP5jy71M5DP6Q0Q6yDSE0f)W*5@{x=pfYDbF9x% zNIcm%Zr(zBvdJds!6l?{hw|qZfm+AL1`l1(QL@7fj}u3d*ZJp%ys3V|3O(kcK_T&3 zm}e>Jx(_mIi8-;ZOsj%(<+{tZC2PIa%{1Rx3WoD7bNlb=AqZ5%yMDbWH*CP4gx5DBaN{ z{J!h7fbOf5GoI|Z_{QP)%3hB;J#`sJiSc65k1jV>(&vA6Y>3?x4n)Z~r8OFA;Vkpb z@>JYeE%WQSEBsZ?@m%AnuFahB`F;cvM};k5nB30MdSVPoVG@^5nc_K`?=NGFO_(!_ z3DK7g^jBdoKNv{>o8D;(r<9Cyvl~4LB;7-K`+R;#XI!rcZs&|FC10SqkLTL7Iq*$+ z{l}Z!+xG~{M2`RXgN)aSdOu@6ScW9CcC;OVP%mb59USmf*!;FG{gfJvF-dr~D2eb?*4b6Yz?{1W+n)J8jaP^z$EI z#GcJ7g^q;h_Zpmu1DB{l_O_<@vA@v=Y7t8sYHq$0Kg!vA)ab##)6-)rN$dY5r_q0R z>DZR=X$1V!=~t0aecV<5#fcTqoiEToQ2Vz-kJ>J-yAN*`UNXp^{7*>1{~YY_|E<&N z-#8We#gCm1zX9o4PX7dj&>YA{_wh9SkE0( zvNDfs%^%~_|kpEVzy!TVd#m)QRPTC7R|6YrR;pzpoF!k}~x5&u< ztEhddOfH(QM|~_;Fh{n3+#nqUc^9!r0#wFuuyra~Grff=ok4h+>i%+74 z8AO)@hp*u$fcypBw;4H$PI*V6TNP1ym+A{(Th+b@*@%MF^)E>@GzSnWS`cDhTlk>? z7?_aLpzlAnQM3;#>htA(n%ns9jy%*`>)kYWhpGd&?rx;0oYSk{AL^j6L4TYDl_0%p z8SOvs*572HoA^z^^Qk^*3EADT%vR6|4oUWK0rL1#NQM}Nge#9JTJGvYOV07cosM_P z>5~Vp2z>zFH+nSh@0wc5Kw4T||%2ujfh1uaAk*aE&-O;({o@)6

    ``~cd358d)RjZ!lFhe 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

    ?GpiFJr49x zM!IaL%#)h?elFtdH2o;XSXJMm^xpi4v1K2^jnw&?;htRdK{x$DlH7XrS@NfsjuAlG zgB*FBLESa{ZUVCPs+ERXP|Nj^heqQMf>&Zz8N~oz3lG^I!4(Btv=xS=i&kSFM2;y0 z>pw!>hst+EM)!nA=77RixJrJB7q?{2Os1peifnqWihO3V%e+CRSp*)C486f2puC+| z8Pr9E+1;83yLXO;4pAc^KSd4}(|i-QULwuf+~eKmo}~-WFaK!uy8oo*c z)Ty3`p9ynI87m}?N6b>(hx)NJ@<+w~z~S{KKX zC_HE{q=#ty00d6pX}_sD*vT0DH8_?7jvnSzOtoI8(^vn@sayQ4Sty{U;pECFguHo| z)`e%q8t{A&mvvOD|Ey}Bd+1gHn8$H4!oX^a+G!F++(#fVYoq6dBJbjoj2gel9<=9qZ-}@i?AgTDfz}(-#-So`2UczfC2EiYqG`kpp zz3W=Ox8bk{GTPqb|sJ6@V`8gEUVvq!1?!o^szJk ze_mJaHacC8O*r?rwDnY~df-I)+$r(r3|63(mFHXAI|V@AzYq01`i0eXj||p7hZ)pB zee*O3?91q149P7d^|!8|_%Yk{xtrDd-+#5pD3Aup^c!_C$h7HnI^Q$z=KP7$@dwQT{a1U|UG3vhoi=uh% diff --git a/components/dashCard.js b/components/dashCard.js index 7974973..b2ad75b 100644 --- a/components/dashCard.js +++ b/components/dashCard.js @@ -146,6 +146,14 @@ module.exports.dashCard = function dashCard(data) { Remove

    + diff --git a/controllers/apps.js b/controllers/apps.js index a83b216..d689d42 100644 --- a/controllers/apps.js +++ b/controllers/apps.js @@ -18,6 +18,10 @@ templates = templates.sort((a, b) => { exports.Apps = async function(req, res) { + + console.log(req.params.page); + + if (req.session.role == "admin") { // Get the user. diff --git a/database/ContainerSettings.js b/database/ContainerSettings.js index ae34235..14e4491 100644 --- a/database/ContainerSettings.js +++ b/database/ContainerSettings.js @@ -22,6 +22,10 @@ const Containers = sequelize.define('Containers', { type: DataTypes.STRING // allowNull defaults to true }, + size: { + type: DataTypes.STRING + // allowNull defaults to true + }, group: { type: DataTypes.STRING // allowNull defaults to true diff --git a/package-lock.json b/package-lock.json index 1ffb450..358dd27 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,17 +5,17 @@ "requires": true, "packages": { "": { - "name": "dweeb-ui", + "name": "dweebui", "version": "1.0.0", "license": "ISC", "dependencies": { "bcrypt": "^5.1.0", "child_process": "^1.0.2", - "cookie-session": "^2.0.0", "dockerode": "^4.0.0", "dockerode-compose": "^1.4.0", "ejs": "^3.1.9", "express": "^4.18.2", + "express-session": "^1.17.3", "js-yaml": "^4.1.0", "sequelize": "^6.35.1", "socket.io": "^4.6.1", @@ -158,27 +158,6 @@ "node": ">= 6.0.0" } }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/agentkeepalive": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", @@ -554,37 +533,11 @@ "node": ">= 0.6" } }, - "node_modules/cookie-session": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cookie-session/-/cookie-session-2.0.0.tgz", - "integrity": "sha512-hKvgoThbw00zQOleSlUr2qpvuNweoqBtxrmx0UFosx6AGi9lYtLoA+RbsvknrEX8Pr6MDbdWAb2j6SnMn+lPsg==", - "dependencies": { - "cookies": "0.8.0", - "debug": "3.2.7", - "on-headers": "~1.0.2", - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, - "node_modules/cookies": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", - "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", - "dependencies": { - "depd": "~2.0.0", - "keygrip": "~1.1.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/cors": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", @@ -612,11 +565,19 @@ } }, "node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { - "ms": "^2.1.1" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/define-data-property": { @@ -676,27 +637,6 @@ "node": ">= 8.0" } }, - "node_modules/docker-modem/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/docker-modem/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/dockerode": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-4.0.0.tgz", @@ -838,27 +778,6 @@ "node": ">= 0.6" } }, - "node_modules/engine.io/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/engine.io/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -928,6 +847,45 @@ "node": ">= 0.10.0" } }, + "node_modules/express-session": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz", + "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==", + "dependencies": { + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.0.2", + "parseurl": "~1.3.3", + "safe-buffer": "5.2.1", + "uid-safe": "~2.1.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express-session/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express-session/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express-session/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1204,29 +1162,6 @@ "node": ">= 6" } }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "optional": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "optional": true - }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -1239,27 +1174,6 @@ "node": ">= 6" } }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", @@ -1407,17 +1321,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/keygrip": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", - "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", - "dependencies": { - "tsscmp": "1.0.6" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -1669,9 +1572,9 @@ } }, "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/nan": { "version": "2.18.0", @@ -1945,6 +1848,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -2082,10 +1993,15 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, "node_modules/sequelize": { - "version": "6.35.1", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.35.1.tgz", - "integrity": "sha512-UlP5k33nJsN11wCDLaWZXw9bB8w4ESKc5QmG6D04qMimwBwKVNeqRJiaaBlEJdtg8cRK+OJh95dliP+uEi+g9Q==", + "version": "6.35.2", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.35.2.tgz", + "integrity": "sha512-EdzLaw2kK4/aOnWQ7ed/qh3B6/g+1DvmeXr66RwbcqSm/+QRS9X0LDI5INBibsy4eNJHWIRPo3+QK0zL+IPBHg==", "funding": [ { "type": "opencollective", @@ -2151,27 +2067,6 @@ "node": ">= 10.0.0" } }, - "node_modules/sequelize/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/sequelize/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/serve-static": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", @@ -2275,48 +2170,6 @@ "node": ">=10.0.0" } }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socket.io-parser/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/socket.io/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socket.io/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/socks": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", @@ -2345,29 +2198,6 @@ "node": ">= 10" } }, - "node_modules/socks-proxy-agent/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "optional": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socks-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "optional": true - }, "node_modules/split-ca": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", @@ -2578,14 +2408,6 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, - "node_modules/tsscmp": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", - "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", - "engines": { - "node": ">=0.6.x" - } - }, "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", @@ -2603,6 +2425,17 @@ "node": ">= 0.6" } }, + "node_modules/uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", diff --git a/package.json b/package.json index 6311081..e2e6a20 100644 --- a/package.json +++ b/package.json @@ -8,11 +8,11 @@ "dependencies": { "bcrypt": "^5.1.0", "child_process": "^1.0.2", - "cookie-session": "^2.0.0", "dockerode": "^4.0.0", "dockerode-compose": "^1.4.0", "ejs": "^3.1.9", "express": "^4.18.2", + "express-session": "^1.17.3", "js-yaml": "^4.1.0", "sequelize": "^6.35.1", "socket.io": "^4.6.1", diff --git a/routes/index.js b/routes/index.js index 30146c3..2f6c66a 100644 --- a/routes/index.js +++ b/routes/index.js @@ -27,6 +27,7 @@ router.post("/uninstall", Uninstall) router.get("/users", Users); router.get("/apps", Apps); +router.get("/apps/:page", Apps); router.post("/apps", searchApps); router.get("/settings", Settings); From a396764880c0f90f70757a64621303a110dae008 Mon Sep 17 00:00:00 2001 From: lllllllillllllillll Date: Tue, 12 Dec 2023 19:38:11 -0800 Subject: [PATCH 20/30] Added 'Hide' to containers. need to build unhide. --- app.js | 25 ++++++++++++++++++++++++- components/dashCard.js | 4 ++-- functions/system.js | 27 ++++++++++++++++++++++----- public/js/main.js | 6 ++++++ 4 files changed, 54 insertions(+), 8 deletions(-) diff --git a/app.js b/app.js index 7be165b..f78689d 100644 --- a/app.js +++ b/app.js @@ -8,10 +8,13 @@ const PORT = process.env.PORT || 8000; const routes = require("./routes"); // Functions and variables -const { serverStats, containerList, containerStats, containerAction, containerLogs } = require('./functions/system'); +const { serverStats, containerList, containerStats, containerAction, containerLogs, hiddenContainers } = require('./functions/system'); let sentList, clicked; app.locals.site_list = ''; +const Containers = require('./database/ContainerSettings'); + + // Configure Session const sessionMiddleware = session({ secret: "keyboard cat", @@ -90,6 +93,26 @@ io.on('connection', (socket) => { clicked = false; }); + + socket.on('hide', async (data) => { + console.log(`Hide ${data.container}`); + + let containerExists = await Containers.findOne({ where: {name:data.container}}); + + if(!containerExists){ + const container = await Containers.create({ + name: data.container, + visibility: false + }); + hiddenContainers(); + console.log(`[Created] Container ${data.container} hidden`) + } else { + containerExists.update({ visibility: false }); + console.log(`[Updated] Container ${data.container} hidden`) + hiddenContainers(); + } + }); + // Container logs socket.on('logs', (data) => { diff --git a/components/dashCard.js b/components/dashCard.js index b2ad75b..38a857c 100644 --- a/components/dashCard.js +++ b/components/dashCard.js @@ -148,10 +148,10 @@ module.exports.dashCard = function dashCard(data) { diff --git a/functions/system.js b/functions/system.js index 94b21bc..a0b466d 100644 --- a/functions/system.js +++ b/functions/system.js @@ -1,9 +1,22 @@ -const { currentLoad, mem, networkStats, fsSize, dockerContainerStats } = require('systeminformation'); +const { currentLoad, mem, networkStats, fsSize, dockerContainerStats, networkInterfaces } = require('systeminformation'); var Docker = require('dockerode'); var docker = new Docker({ socketPath: '/var/run/docker.sock' }); const { dashCard } = require('../components/dashCard'); const { Readable } = require('stream'); +const Containers = require('../database/ContainerSettings'); + +let hidden = ''; +module.exports.hiddenContainers = async function () { + hidden = await Containers.findAll({ where: {visibility:false}}); + hidden = hidden.map(a => a.name); +} + +async () => { +let netif = await networkInterfaces(); +console.log(netif); +} + // export docker module.exports.docker = docker; @@ -33,7 +46,7 @@ module.exports.containerList = async function () { for (const container of data) { - if (container.Names[0].slice(1) != 'dweebui') { + if (!hidden.includes(container.Names[0].slice(1))) { let imageVersion = container.Image.split('/'); let service = imageVersion[imageVersion.length - 1].split(':')[0]; @@ -53,7 +66,9 @@ module.exports.containerList = async function () { } ports_list.push(ports); } - } catch { console.log('no ports') } + } catch { + // console.log('no ports') + } for (let i = 0; i < 12; i++) { if (ports_list[i] == undefined) { @@ -78,7 +93,9 @@ module.exports.containerList = async function () { readwrite: value.split(':')[2] } volumes_list.push(volumes); - }} catch { console.log('no volumes') } + }} catch { + // console.log('no volumes') + } for (let i = 0; i < 12; i++) { if (volumes_list[i] == undefined) { let volumes = { @@ -172,7 +189,7 @@ module.exports.containerStats = async function () { for (const container of data) { - if (container.Names[0].slice(1) != 'dweebui') { + if (!hidden.includes(container.Names[0].slice(1))) { const stats = await dockerContainerStats(container.Id); let container_stat = { diff --git a/public/js/main.js b/public/js/main.js index bf3f660..994682f 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -115,6 +115,12 @@ function buttonAction(button) { socket.emit('clicked', {container: button.name, state: button.id, action: button.value}); } +// container button actions +function hideContainer(button) { + socket.emit('hide', {container: button.name}); +} + + let containerLogs; From 23ec95c6a68cc685668037c6c80520f191fee07b Mon Sep 17 00:00:00 2001 From: lllllllillllllillll Date: Tue, 12 Dec 2023 21:03:37 -0800 Subject: [PATCH 21/30] Container links now use ServerIP address --- app.js | 2 +- components/dashCard.js | 4 ++-- functions/system.js | 18 ++++++++++-------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/app.js b/app.js index f78689d..ecb26cd 100644 --- a/app.js +++ b/app.js @@ -39,7 +39,7 @@ app.use([ // Start Express server const server = app.listen(PORT, async () => { - console.log(`App listening on port ${PORT}`); + console.log(`App listening on port ${PORT}`); }); // Start Socket.io diff --git a/components/dashCard.js b/components/dashCard.js index 38a857c..6d5a59a 100644 --- a/components/dashCard.js +++ b/components/dashCard.js @@ -1,6 +1,6 @@ module.exports.dashCard = function dashCard(data) { - let { name, service, id, state, image, external_port, internal_port, ports, volumes, environment_variables, labels } = data; + let { name, service, id, state, image, external_port, internal_port, ports, volumes, environment_variables, labels, IPv4 } = data; //disable controls for a docker container depending on its name let enabled = ""; @@ -160,7 +160,7 @@ module.exports.dashCard = function dashCard(data) {
    diff --git a/functions/system.js b/functions/system.js index a0b466d..5fca7fc 100644 --- a/functions/system.js +++ b/functions/system.js @@ -6,20 +6,21 @@ const { Readable } = require('stream'); const Containers = require('../database/ContainerSettings'); +// export docker +module.exports.docker = docker; + + +let IPv4 = ''; +networkInterfaces().then(data => { + IPv4 = data[0].ip4; +}); + let hidden = ''; module.exports.hiddenContainers = async function () { hidden = await Containers.findAll({ where: {visibility:false}}); hidden = hidden.map(a => a.name); } -async () => { -let netif = await networkInterfaces(); -console.log(netif); -} - -// export docker -module.exports.docker = docker; - module.exports.serverStats = async function () { const cpuUsage = await currentLoad(); const ramUsage = await mem(); @@ -164,6 +165,7 @@ module.exports.containerList = async function () { volumes: volumes_list, environment_variables: environment_variables, labels: labels, + IPv4: IPv4 } let dockerCard = dashCard(container_info); From 22d769bcc3c8c81b18c9b09dea7d8cd457bb4473 Mon Sep 17 00:00:00 2001 From: lllllllillllllillll Date: Wed, 13 Dec 2023 01:04:56 -0800 Subject: [PATCH 22/30] Added 'Reset View' to dashCard --- app.js | 7 +++++++ components/dashCard.js | 1 + public/js/main.js | 6 ++++-- views/partials/navbar.ejs | 11 ++++++----- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/app.js b/app.js index ecb26cd..f281cfb 100644 --- a/app.js +++ b/app.js @@ -113,6 +113,13 @@ io.on('connection', (socket) => { } }); + socket.on('reset', (data) => { + // set visibility to true for all containers + Containers.update({ visibility: true }, { where: {} }); + console.log('All containers visible'); + hiddenContainers(); + }); + // Container logs socket.on('logs', (data) => { diff --git a/components/dashCard.js b/components/dashCard.js index 6d5a59a..44fa2a6 100644 --- a/components/dashCard.js +++ b/components/dashCard.js @@ -152,6 +152,7 @@ module.exports.dashCard = function dashCard(data) {
    diff --git a/public/js/main.js b/public/js/main.js index 994682f..a91ae29 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -115,12 +115,14 @@ function buttonAction(button) { socket.emit('clicked', {container: button.name, state: button.id, action: button.value}); } -// container button actions + function hideContainer(button) { socket.emit('hide', {container: button.name}); } - +function resetView() { + socket.emit('reset'); +} let containerLogs; diff --git a/views/partials/navbar.ejs b/views/partials/navbar.ejs index 6ce13f9..5d4afde 100644 --- a/views/partials/navbar.ejs +++ b/views/partials/navbar.ejs @@ -58,23 +58,24 @@
    From a10371d0e19ede889302edd476de5bdfc09f4fdf Mon Sep 17 00:00:00 2001 From: lllllllillllllillll Date: Wed, 13 Dec 2023 01:12:38 -0800 Subject: [PATCH 23/30] newest features --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc58580..c2aa991 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## v0.08 (dev) -* Added SECRET to register page as a simple security measure. +* Added SECRET field to register page as a simple security measure. +* dashCard links now use server IP. +* Added option to hide containers. +* Added 'Reset View' option. +* Removed the VPN, Firewall, and VNC placeholders. ## v0.07 (Dec 8th 2023) * View container logs. From 058eadd3cd10848743095619d8baa4da8dd88cd8 Mon Sep 17 00:00:00 2001 From: lllllllillllllillll Date: Wed, 13 Dec 2023 18:15:35 -0800 Subject: [PATCH 24/30] screenshot of logs --- components/dashCard.js | 28 +++++++++++++++++++--------- functions/system.js | 3 ++- screenshots/logs.png | Bin 0 -> 184677 bytes 3 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 screenshots/logs.png diff --git a/components/dashCard.js b/components/dashCard.js index 44fa2a6..8a29196 100644 --- a/components/dashCard.js +++ b/components/dashCard.js @@ -1,11 +1,21 @@ module.exports.dashCard = function dashCard(data) { - let { name, service, id, state, image, external_port, internal_port, ports, volumes, environment_variables, labels, IPv4 } = data; + let { name, service, id, state, image, external_port, internal_port, ports, volumes, environment_variables, labels, IPv4, style } = data; + + if (style = "Large") { + //Large cards + } else if (style = "Compact") { + //Compact cards + } else if (style = "Row") { + //Row cards + } + + //disable controls for a docker container depending on its name - let enabled = ""; - if (name.startsWith('Dweeb')) { - enabled = 'disabled=""'; + let actions = ""; + if (name.startsWith('dweebui')) { + actions = 'disabled=""'; } if ( external_port == undefined ) { external_port = 0; } @@ -122,16 +132,16 @@ module.exports.dashCard = function dashCard(data) {
    - - - -
    -
    +
    ${shortened_name} diff --git a/functions/system.js b/functions/system.js index 5fca7fc..6b9a5c1 100644 --- a/functions/system.js +++ b/functions/system.js @@ -165,7 +165,8 @@ module.exports.containerList = async function () { volumes: volumes_list, environment_variables: environment_variables, labels: labels, - IPv4: IPv4 + IPv4: IPv4, + style: "Large" } let dockerCard = dashCard(container_info); diff --git a/screenshots/logs.png b/screenshots/logs.png new file mode 100644 index 0000000000000000000000000000000000000000..0a9cff3d8a6a574b26d269e338417217e015dfa7 GIT binary patch literal 184677 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

    B`z#(cdI~?&GJ2^CLsh6TpoxS;CLxjhUxov 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 Date: Wed, 13 Dec 2023 21:26:42 -0800 Subject: [PATCH 25/30] docker pull sheild --- README.md | 2 ++ components/dashCard.js | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a0eaab1..1c8dc0a 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ Pre-Pre-Pre-Pre-Pre Alpha v0.08 ( :fire: Experimental. Don't install on any serv [![GitHub Stars](https://img.shields.io/github/stars/lllllllillllllillll/DweebUI)](https://github.com/lllllllillllllillll) [![GitHub License](https://img.shields.io/github/license/lllllllillllllillll/DweebUI)](https://github.com/lllllllillllllillll/DweebUI/blob/main/LICENSE) [![GitHub Activity](https://img.shields.io/github/commit-activity/y/lllllllillllllillll/DweebUI)](https://github.com/lllllllillllllillll) +[![Docker Pulls](https://img.shields.io/docker/pulls/lllllllillllllillll/dweebui)](https://hub.docker.com/repository/docker/lllllllillllllillll/dweebui) + * I haven't used Github very much and I'm still new to javascript. * This is the first project I've ever released and I'm sure it's full of plenty of bugs and mistakes. diff --git a/components/dashCard.js b/components/dashCard.js index 8a29196..3a3b6ca 100644 --- a/components/dashCard.js +++ b/components/dashCard.js @@ -2,11 +2,12 @@ module.exports.dashCard = function dashCard(data) { let { name, service, id, state, image, external_port, internal_port, ports, volumes, environment_variables, labels, IPv4, style } = data; - + let margin, icon, font = ''; + if (style = "Large") { //Large cards } else if (style = "Compact") { - //Compact cards + margin = 'style="margin-bottom: 0;"' } else if (style = "Row") { //Row cards } @@ -170,7 +171,7 @@ module.exports.dashCard = function dashCard(data) {

    -
    +
    ${shortened_name} From 1e4ff17a37371371e8aa9b3f589e54468c5a2f83 Mon Sep 17 00:00:00 2001 From: lllllllillllllillll Date: Thu, 14 Dec 2023 00:40:10 -0800 Subject: [PATCH 26/30] Added card styles : Full or compact. --- README.md | 30 ++++++++++++++++-------------- components/dashCard.js | 16 +++++++++------- functions/system.js | 2 +- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 1c8dc0a..1152a9c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # DweebUI -DweebUI is a simple Docker web interface created with javascript and node.js +DweebUI is a simple Docker web interface created using Javascript, Node.JS, and Express. Pre-Pre-Pre-Pre-Pre Alpha v0.08 ( :fire: Experimental. Don't install on any servers you care about :fire: ) @@ -9,8 +9,9 @@ Pre-Pre-Pre-Pre-Pre Alpha v0.08 ( :fire: Experimental. Don't install on any serv [![Docker Pulls](https://img.shields.io/docker/pulls/lllllllillllllillll/dweebui)](https://hub.docker.com/repository/docker/lllllllillllllillll/dweebui) -* I haven't used Github very much and I'm still new to javascript. +* This is a personal project that I decided to share. * This is the first project I've ever released and I'm sure it's full of plenty of bugs and mistakes. +* I haven't used Github very much and I'm still new to Javascript. * I probably should have waited a lot longer to share this :| @@ -19,22 +20,22 @@ Pre-Pre-Pre-Pre-Pre Alpha v0.08 ( :fire: Experimental. Don't install on any serv ## Features -* [x] Dashboard provides server metrics (cpu, ram, network, disk) and container controls on a single page. +* [x] Dashboard provides server metrics, container metrics, and container controls, on a single page. +* [x] View container logs. +* [ ] Update containers (planned). +* [ ] Manage your Docker networks, images, and volumes (planned). * [x] Light/Dark Mode. * [x] Easy to install app templates. -* [x] Automatically persists data in docker volumes if bind mount isn't used. -* [x] Proxy manager for Caddy. (Optional) -* [x] Partial Portainer Template Support (Network Mode, Ports, Volumes, Enviroment Variables, Labels, Commands, Restart Policy, Nvidia Hardware Acceleration). +* [x] Proxy manager for Caddy (Optional). * [x] Multi-User built-in. -* [ ] User pages: Shortcuts, Requests, Support. (planned) +* [ ] User pages (planned). * [x] Support for Windows, Linux, and MacOS. -* [ ] Import compose files. (planned) -* [x] Pure javascript. No frameworks or typescript. +* [ ] Docker compose support (planned). * [x] Templates.json maintains compatability with Portainer, allowing you to use the template without needing to use DweebUI. -* [ ] Manage your Docker networks, images, and volumes. (planned) -* [ ] Preset variables. (planned) -* [ ] VPN, VPS, and Firewall Toggles. (planned) -* [ ] Offline Mode. (planned) +* [x] Automatically persists data in docker volumes if bind mount isn't used. +* [ ] Preset variables (planned). +* [ ] Offline/Local Only (planned). + ## Setup @@ -92,8 +93,9 @@ sudo ./setup.sh ``` -## Credit +## Credits +* Dockerode and dockerode-compose by Apocas: https://github.com/apocas/dockerode * UI was built using HTML and CSS elements from https://tabler.io/ * Apps template based on Portainer template provided by Lissy93: https://github.com/Lissy93/portainer-templates * Icons from Walkxcode with some renames and additions: https://github.com/walkxcode/dashboard-icons \ No newline at end of file diff --git a/components/dashCard.js b/components/dashCard.js index 3a3b6ca..0a74950 100644 --- a/components/dashCard.js +++ b/components/dashCard.js @@ -2,14 +2,16 @@ module.exports.dashCard = function dashCard(data) { let { name, service, id, state, image, external_port, internal_port, ports, volumes, environment_variables, labels, IPv4, style } = data; - let margin, icon, font = ''; + let margin, iconSize, fontSize = ''; - if (style = "Large") { - //Large cards - } else if (style = "Compact") { + if (style == "Large") { + iconSize = 'height="150px" width="150px"' + } else if (style == "Compact") { + iconSize = 'height="110px" width="110px"' + margin = 'style="margin-bottom: 0;"' + } else if (style == "Row") { + iconSize = 'height="50px" width="50px"' margin = 'style="margin-bottom: 0;"' - } else if (style = "Row") { - //Row cards } @@ -126,7 +128,7 @@ module.exports.dashCard = function dashCard(data) {
    - +
    ${external_port}:${internal_port}
    diff --git a/functions/system.js b/functions/system.js index 6b9a5c1..3e12d55 100644 --- a/functions/system.js +++ b/functions/system.js @@ -166,7 +166,7 @@ module.exports.containerList = async function () { environment_variables: environment_variables, labels: labels, IPv4: IPv4, - style: "Large" + style: "Compact" } let dockerCard = dashCard(container_info); From 8c90b496c97f950d0a47a2aabe965a2552183b73 Mon Sep 17 00:00:00 2001 From: lllllllillllllillll Date: Thu, 14 Dec 2023 00:59:16 -0800 Subject: [PATCH 27/30] removed height --- components/dashCard.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/components/dashCard.js b/components/dashCard.js index 0a74950..041164d 100644 --- a/components/dashCard.js +++ b/components/dashCard.js @@ -5,12 +5,12 @@ module.exports.dashCard = function dashCard(data) { let margin, iconSize, fontSize = ''; if (style == "Large") { - iconSize = 'height="150px" width="150px"' + iconSize = 'width="150px"' } else if (style == "Compact") { - iconSize = 'height="110px" width="110px"' + iconSize = 'width="110px"' margin = 'style="margin-bottom: 0;"' } else if (style == "Row") { - iconSize = 'height="50px" width="50px"' + iconSize = 'width="50px"' margin = 'style="margin-bottom: 0;"' } From 9d9d5dac2e3d92928e9d3186f27a3dfd888d75d9 Mon Sep 17 00:00:00 2001 From: lllllllillllllillll Date: Thu, 14 Dec 2023 02:27:18 -0800 Subject: [PATCH 28/30] Bump sequelize from 6.35.1 to 6.35.2 --- app.js | 1 + package-lock.json | 2 +- package.json | 2 +- views/pages/dashboard.ejs | 3 --- 4 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app.js b/app.js index f281cfb..6635f59 100644 --- a/app.js +++ b/app.js @@ -125,6 +125,7 @@ io.on('connection', (socket) => { socket.on('logs', (data) => { containerLogs(data.container) .then(logs => { + console.log(`Refreshed logs for ${data.container}`) socket.emit('logString', logs); }) .catch(err => { diff --git a/package-lock.json b/package-lock.json index 358dd27..d552b0d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "express": "^4.18.2", "express-session": "^1.17.3", "js-yaml": "^4.1.0", - "sequelize": "^6.35.1", + "sequelize": "^6.35.2", "socket.io": "^4.6.1", "sqlite3": "^5.1.6", "systeminformation": "^5.21.20" diff --git a/package.json b/package.json index e2e6a20..1e8b47f 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "express": "^4.18.2", "express-session": "^1.17.3", "js-yaml": "^4.1.0", - "sequelize": "^6.35.1", + "sequelize": "^6.35.2", "socket.io": "^4.6.1", "sqlite3": "^5.1.6", "systeminformation": "^5.21.20" diff --git a/views/pages/dashboard.ejs b/views/pages/dashboard.ejs index f37fc34..90ec813 100644 --- a/views/pages/dashboard.ejs +++ b/views/pages/dashboard.ejs @@ -137,9 +137,6 @@