From cbf6e257bef78473b2e68cd7dea7e03355a7571b Mon Sep 17 00:00:00 2001 From: Samuel Elliott Date: Wed, 27 Dec 2023 16:40:09 +0000 Subject: [PATCH] Presence embeds --- Dockerfile | 1 + package-lock.json | 763 ++++++++++++++++++++ package.json | 1 + resources/cli/fonts/opensans-normal-400.ttf | Bin 0 -> 130832 bytes resources/cli/fonts/opensans-normal-500.ttf | Bin 0 -> 130976 bytes src/cli/presence-server.ts | 123 +++- src/cli/util/index.ts | 2 + src/cli/util/presence-embed-render.ts | 78 ++ src/cli/util/presence-embed-server.ts | 178 +++++ src/cli/util/presence-embed.ts | 220 ++++++ src/util/misc.ts | 11 + 11 files changed, 1366 insertions(+), 11 deletions(-) create mode 100644 resources/cli/fonts/opensans-normal-400.ttf create mode 100644 resources/cli/fonts/opensans-normal-500.ttf create mode 100644 src/cli/util/presence-embed-render.ts create mode 100644 src/cli/util/presence-embed-server.ts create mode 100644 src/cli/util/presence-embed.ts diff --git a/Dockerfile b/Dockerfile index 1b247c3..c62eb5c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,6 +24,7 @@ RUN npm ci --production COPY bin /app/bin COPY resources /app/resources +COPY resources/cli/fonts /usr/local/share/fonts COPY --from=build /app/dist /app/dist RUN ln -s /app/bin/nxapi.js /usr/local/bin/nxapi diff --git a/package-lock.json b/package-lock.json index 9151e60..184cb24 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,7 @@ "node-notifier": "^10.0.1", "node-persist": "^3.1.3", "read": "^3.0.0", + "sharp": "^0.33.1", "splatnet3-types": "^0.2.20231119210145", "supports-color": "^8.1.1", "tslib": "^2.6.2", @@ -2682,6 +2683,15 @@ "node": ">= 10.0.0" } }, + "node_modules/@emnapi/runtime": { + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-0.44.0.tgz", + "integrity": "sha512-ZX/etZEZw8DR7zAB1eVQT40lNo0jeqpb6dCgOvctB6FIQ5PoXfMuNY8+ayQfu8tNQbAB8gQWSSJupR8NxeiZXw==", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@fastify/busboy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", @@ -2707,6 +2717,437 @@ "@hapi/hoek": "^9.0.0" } }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.1.tgz", + "integrity": "sha512-esr2BZ1x0bo+wl7Gx2hjssYhjrhUsD88VQulI0FrG8/otRQUOxLWHMBd1Y1qo2Gfg2KUvXNpT0ASnV9BzJCexw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.0" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.1.tgz", + "integrity": "sha512-YrnuB3bXuWdG+hJlXtq7C73lF8ampkhU3tMxg5Hh+E7ikxbUVOU9nlNtVTloDXz6pRHt2y2oKJq7DY/yt+UXYw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.0" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.0.tgz", + "integrity": "sha512-VzYd6OwnUR81sInf3alj1wiokY50DjsHz5bvfnsFpxs5tqQxESoHtJO6xyksDs3RIkyhMWq2FufXo6GNSU9BMw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "macos": ">=11", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.0.tgz", + "integrity": "sha512-dD9OznTlHD6aovRswaPNEy8dKtSAmNo4++tO7uuR4o5VxbVAOoEQ1uSmN4iFAdQneTHws1lkTZeiXPrcCkh6IA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "macos": ">=10.13", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.0.tgz", + "integrity": "sha512-VwgD2eEikDJUk09Mn9Dzi1OW2OJFRQK+XlBTkUNmAWPrtj8Ly0yq05DFgu1VCMx2/DqCGQVi5A1dM9hTmxf3uw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.0.tgz", + "integrity": "sha512-xTYThiqEZEZc0PRU90yVtM3KE7lw1bKdnDQ9kCTHWbqWyHOe4NpPOtMGy27YnN51q0J5dqRrvicfPbALIOeAZA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.0.tgz", + "integrity": "sha512-o9E46WWBC6JsBlwU4QyU9578G77HBDT1NInd+aERfxeOPbk0qBZHgoDsQmA2v9TbqJRWzoBPx1aLOhprBMgPjw==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.0.tgz", + "integrity": "sha512-naldaJy4hSVhWBgEjfdBY85CAa4UO+W1nx6a1sWStHZ7EUfNiuBTTN2KUYT5dH1+p/xij1t2QSXfCiFJoC5S/Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.0.tgz", + "integrity": "sha512-OdorplCyvmSAPsoJLldtLh3nLxRrkAAAOHsGWGDYfN0kh730gifK+UZb3dWORRa6EusNqCTjfXV4GxvgJ/nPDQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.0.tgz", + "integrity": "sha512-FW8iK6rJrg+X2jKD0Ajhjv6y74lToIBEvkZhl42nZt563FfxkCYacrXZtd+q/sRQDypQLzY5WdLkVTbJoPyqNg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.1.tgz", + "integrity": "sha512-Ii4X1vnzzI4j0+cucsrYA5ctrzU9ciXERfJR633S2r39CiD8npqH2GMj63uFZRCFt3E687IenAdbwIpQOJ5BNA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.0" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.1.tgz", + "integrity": "sha512-59B5GRO2d5N3tIfeGHAbJps7cLpuWEQv/8ySd9109ohQ3kzyCACENkFVAnGPX00HwPTQcaBNF7HQYEfZyZUFfw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.0" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.1.tgz", + "integrity": "sha512-tRGrb2pHnFUXpOAj84orYNxHADBDIr0J7rrjwQrTNMQMWA4zy3StKmMvwsI7u3dEZcgwuMMooIIGWEWOjnmG8A==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.0" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.1.tgz", + "integrity": "sha512-4y8osC0cAc1TRpy02yn5omBeloZZwS62fPZ0WUAYQiLhSFSpWJfY/gMrzKzLcHB9ulUV6ExFiu2elMaixKDbeg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.0" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.1.tgz", + "integrity": "sha512-D3lV6clkqIKUizNS8K6pkuCKNGmWoKlBGh5p0sLO2jQERzbakhu4bVX1Gz+RS4vTZBprKlWaf+/Rdp3ni2jLfA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.0" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.1.tgz", + "integrity": "sha512-LOGKNu5w8uu1evVqUAUKTix2sQu1XDRIYbsi5Q0c/SrXhvJ4QyOx+GaajxmOg5PZSsSnCYPSmhjHHsRBx06/wQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.0" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.1.tgz", + "integrity": "sha512-vWI/sA+0p+92DLkpAMb5T6I8dg4z2vzCUnp8yvxHlwBpzN8CIcO3xlSXrLltSvK6iMsVMNswAv+ub77rsf25lA==", + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@emnapi/runtime": "^0.44.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.1.tgz", + "integrity": "sha512-/xhYkylsKL05R+NXGJc9xr2Tuw6WIVl2lubFJaFYfW4/MQ4J+dgjIo/T4qjNRizrqs/szF/lC9a5+updmY9jaQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.1.tgz", + "integrity": "sha512-XaM69X0n6kTEsp9tVYYLhXdg7Qj32vYJlAKRutxUsm1UlgQNx6BOhHwZPwukCGXBU2+tH87ip2eV1I/E8MQnZg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@jest/create-cache-key-function": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", @@ -5084,6 +5525,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -5100,6 +5553,15 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "node_modules/colorette": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", @@ -5655,6 +6117,14 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "engines": { + "node": ">=8" + } + }, "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", @@ -10108,6 +10578,59 @@ "node": ">=8" } }, + "node_modules/sharp": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.1.tgz", + "integrity": "sha512-iAYUnOdTqqZDb3QjMneBKINTllCJDZ3em6WaWy7NPECM4aHncvqHRm0v0bN9nqJxMiwamv5KIdauJ6lUzKDpTQ==", + "hasInstallScript": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.2", + "semver": "^7.5.4" + }, + "engines": { + "libvips": ">=8.15.0", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.1", + "@img/sharp-darwin-x64": "0.33.1", + "@img/sharp-libvips-darwin-arm64": "1.0.0", + "@img/sharp-libvips-darwin-x64": "1.0.0", + "@img/sharp-libvips-linux-arm": "1.0.0", + "@img/sharp-libvips-linux-arm64": "1.0.0", + "@img/sharp-libvips-linux-s390x": "1.0.0", + "@img/sharp-libvips-linux-x64": "1.0.0", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.0", + "@img/sharp-libvips-linuxmusl-x64": "1.0.0", + "@img/sharp-linux-arm": "0.33.1", + "@img/sharp-linux-arm64": "0.33.1", + "@img/sharp-linux-s390x": "0.33.1", + "@img/sharp-linux-x64": "0.33.1", + "@img/sharp-linuxmusl-arm64": "0.33.1", + "@img/sharp-linuxmusl-x64": "0.33.1", + "@img/sharp-wasm32": "0.33.1", + "@img/sharp-win32-ia32": "0.33.1", + "@img/sharp-win32-x64": "0.33.1" + } + }, + "node_modules/sharp/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -10164,6 +10687,19 @@ "dev": true, "peer": true }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, "node_modules/simple-update-notifier": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", @@ -13131,6 +13667,15 @@ } } }, + "@emnapi/runtime": { + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-0.44.0.tgz", + "integrity": "sha512-ZX/etZEZw8DR7zAB1eVQT40lNo0jeqpb6dCgOvctB6FIQ5PoXfMuNY8+ayQfu8tNQbAB8gQWSSJupR8NxeiZXw==", + "optional": true, + "requires": { + "tslib": "^2.4.0" + } + }, "@fastify/busboy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", @@ -13153,6 +13698,147 @@ "@hapi/hoek": "^9.0.0" } }, + "@img/sharp-darwin-arm64": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.1.tgz", + "integrity": "sha512-esr2BZ1x0bo+wl7Gx2hjssYhjrhUsD88VQulI0FrG8/otRQUOxLWHMBd1Y1qo2Gfg2KUvXNpT0ASnV9BzJCexw==", + "optional": true, + "requires": { + "@img/sharp-libvips-darwin-arm64": "1.0.0" + } + }, + "@img/sharp-darwin-x64": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.1.tgz", + "integrity": "sha512-YrnuB3bXuWdG+hJlXtq7C73lF8ampkhU3tMxg5Hh+E7ikxbUVOU9nlNtVTloDXz6pRHt2y2oKJq7DY/yt+UXYw==", + "optional": true, + "requires": { + "@img/sharp-libvips-darwin-x64": "1.0.0" + } + }, + "@img/sharp-libvips-darwin-arm64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.0.tgz", + "integrity": "sha512-VzYd6OwnUR81sInf3alj1wiokY50DjsHz5bvfnsFpxs5tqQxESoHtJO6xyksDs3RIkyhMWq2FufXo6GNSU9BMw==", + "optional": true + }, + "@img/sharp-libvips-darwin-x64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.0.tgz", + "integrity": "sha512-dD9OznTlHD6aovRswaPNEy8dKtSAmNo4++tO7uuR4o5VxbVAOoEQ1uSmN4iFAdQneTHws1lkTZeiXPrcCkh6IA==", + "optional": true + }, + "@img/sharp-libvips-linux-arm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.0.tgz", + "integrity": "sha512-VwgD2eEikDJUk09Mn9Dzi1OW2OJFRQK+XlBTkUNmAWPrtj8Ly0yq05DFgu1VCMx2/DqCGQVi5A1dM9hTmxf3uw==", + "optional": true + }, + "@img/sharp-libvips-linux-arm64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.0.tgz", + "integrity": "sha512-xTYThiqEZEZc0PRU90yVtM3KE7lw1bKdnDQ9kCTHWbqWyHOe4NpPOtMGy27YnN51q0J5dqRrvicfPbALIOeAZA==", + "optional": true + }, + "@img/sharp-libvips-linux-s390x": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.0.tgz", + "integrity": "sha512-o9E46WWBC6JsBlwU4QyU9578G77HBDT1NInd+aERfxeOPbk0qBZHgoDsQmA2v9TbqJRWzoBPx1aLOhprBMgPjw==", + "optional": true + }, + "@img/sharp-libvips-linux-x64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.0.tgz", + "integrity": "sha512-naldaJy4hSVhWBgEjfdBY85CAa4UO+W1nx6a1sWStHZ7EUfNiuBTTN2KUYT5dH1+p/xij1t2QSXfCiFJoC5S/Q==", + "optional": true + }, + "@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.0.tgz", + "integrity": "sha512-OdorplCyvmSAPsoJLldtLh3nLxRrkAAAOHsGWGDYfN0kh730gifK+UZb3dWORRa6EusNqCTjfXV4GxvgJ/nPDQ==", + "optional": true + }, + "@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.0.tgz", + "integrity": "sha512-FW8iK6rJrg+X2jKD0Ajhjv6y74lToIBEvkZhl42nZt563FfxkCYacrXZtd+q/sRQDypQLzY5WdLkVTbJoPyqNg==", + "optional": true + }, + "@img/sharp-linux-arm": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.1.tgz", + "integrity": "sha512-Ii4X1vnzzI4j0+cucsrYA5ctrzU9ciXERfJR633S2r39CiD8npqH2GMj63uFZRCFt3E687IenAdbwIpQOJ5BNA==", + "optional": true, + "requires": { + "@img/sharp-libvips-linux-arm": "1.0.0" + } + }, + "@img/sharp-linux-arm64": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.1.tgz", + "integrity": "sha512-59B5GRO2d5N3tIfeGHAbJps7cLpuWEQv/8ySd9109ohQ3kzyCACENkFVAnGPX00HwPTQcaBNF7HQYEfZyZUFfw==", + "optional": true, + "requires": { + "@img/sharp-libvips-linux-arm64": "1.0.0" + } + }, + "@img/sharp-linux-s390x": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.1.tgz", + "integrity": "sha512-tRGrb2pHnFUXpOAj84orYNxHADBDIr0J7rrjwQrTNMQMWA4zy3StKmMvwsI7u3dEZcgwuMMooIIGWEWOjnmG8A==", + "optional": true, + "requires": { + "@img/sharp-libvips-linux-s390x": "1.0.0" + } + }, + "@img/sharp-linux-x64": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.1.tgz", + "integrity": "sha512-4y8osC0cAc1TRpy02yn5omBeloZZwS62fPZ0WUAYQiLhSFSpWJfY/gMrzKzLcHB9ulUV6ExFiu2elMaixKDbeg==", + "optional": true, + "requires": { + "@img/sharp-libvips-linux-x64": "1.0.0" + } + }, + "@img/sharp-linuxmusl-arm64": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.1.tgz", + "integrity": "sha512-D3lV6clkqIKUizNS8K6pkuCKNGmWoKlBGh5p0sLO2jQERzbakhu4bVX1Gz+RS4vTZBprKlWaf+/Rdp3ni2jLfA==", + "optional": true, + "requires": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.0" + } + }, + "@img/sharp-linuxmusl-x64": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.1.tgz", + "integrity": "sha512-LOGKNu5w8uu1evVqUAUKTix2sQu1XDRIYbsi5Q0c/SrXhvJ4QyOx+GaajxmOg5PZSsSnCYPSmhjHHsRBx06/wQ==", + "optional": true, + "requires": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.0" + } + }, + "@img/sharp-wasm32": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.1.tgz", + "integrity": "sha512-vWI/sA+0p+92DLkpAMb5T6I8dg4z2vzCUnp8yvxHlwBpzN8CIcO3xlSXrLltSvK6iMsVMNswAv+ub77rsf25lA==", + "optional": true, + "requires": { + "@emnapi/runtime": "^0.44.0" + } + }, + "@img/sharp-win32-ia32": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.1.tgz", + "integrity": "sha512-/xhYkylsKL05R+NXGJc9xr2Tuw6WIVl2lubFJaFYfW4/MQ4J+dgjIo/T4qjNRizrqs/szF/lC9a5+updmY9jaQ==", + "optional": true + }, + "@img/sharp-win32-x64": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.1.tgz", + "integrity": "sha512-XaM69X0n6kTEsp9tVYYLhXdg7Qj32vYJlAKRutxUsm1UlgQNx6BOhHwZPwukCGXBU2+tH87ip2eV1I/E8MQnZg==", + "optional": true + }, "@jest/create-cache-key-function": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", @@ -15061,6 +15747,15 @@ "mimic-response": "^1.0.0" } }, + "color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "requires": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + } + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -15074,6 +15769,15 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "colorette": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", @@ -15520,6 +16224,11 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, + "detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==" + }, "detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", @@ -19065,6 +19774,45 @@ "kind-of": "^6.0.2" } }, + "sharp": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.1.tgz", + "integrity": "sha512-iAYUnOdTqqZDb3QjMneBKINTllCJDZ3em6WaWy7NPECM4aHncvqHRm0v0bN9nqJxMiwamv5KIdauJ6lUzKDpTQ==", + "requires": { + "@img/sharp-darwin-arm64": "0.33.1", + "@img/sharp-darwin-x64": "0.33.1", + "@img/sharp-libvips-darwin-arm64": "1.0.0", + "@img/sharp-libvips-darwin-x64": "1.0.0", + "@img/sharp-libvips-linux-arm": "1.0.0", + "@img/sharp-libvips-linux-arm64": "1.0.0", + "@img/sharp-libvips-linux-s390x": "1.0.0", + "@img/sharp-libvips-linux-x64": "1.0.0", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.0", + "@img/sharp-libvips-linuxmusl-x64": "1.0.0", + "@img/sharp-linux-arm": "0.33.1", + "@img/sharp-linux-arm64": "0.33.1", + "@img/sharp-linux-s390x": "0.33.1", + "@img/sharp-linux-x64": "0.33.1", + "@img/sharp-linuxmusl-arm64": "0.33.1", + "@img/sharp-linuxmusl-x64": "0.33.1", + "@img/sharp-wasm32": "0.33.1", + "@img/sharp-win32-ia32": "0.33.1", + "@img/sharp-win32-x64": "0.33.1", + "color": "^4.2.3", + "detect-libc": "^2.0.2", + "semver": "^7.5.4" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -19109,6 +19857,21 @@ "dev": true, "peer": true }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + } + } + }, "simple-update-notifier": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", diff --git a/package.json b/package.json index a39317f..86b6487 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@ "node-notifier": "^10.0.1", "node-persist": "^3.1.3", "read": "^3.0.0", + "sharp": "^0.33.1", "splatnet3-types": "^0.2.20231119210145", "supports-color": "^8.1.1", "tslib": "^2.6.2", diff --git a/resources/cli/fonts/opensans-normal-400.ttf b/resources/cli/fonts/opensans-normal-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..67803bb642742643c9525b6d25b8ade89383232c GIT binary patch literal 130832 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 literal 0 HcmV?d00001 diff --git a/resources/cli/fonts/opensans-normal-500.ttf b/resources/cli/fonts/opensans-normal-500.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ae716936e9e4c1d23bd12f7d7e44fdc695627a5d GIT binary patch literal 130976 zcmbS!2Vm4i_W#U$zq{!WinN66CYx-^rtEHZQ>f`Ap(Kz12{pYynkh69LJ=_n(nKi& zB4EMu7Tclcc@`{ZJM^sB0Qp(aQ>^EKu>a4@cXktzYyTuO@6DU?X5PH_X1?E@oe)Y0 z8Hh+F#tAvOdA~pM$aF%KHbUr=6N-yUc7OQ!B0?5*5|aMIgp%o5gQ^X+goN!Oq`$tX zB+0(x;F?TA*kH6$QBs;&I)7lshp2lD=~>mym2J&duI`na1iZnudnQABi9fU>c=BLxV~v=U4=4l3L&lrLW@!wYAb6DkDc3y ze6&eY8bAm-9fG2e=a#H^fBF3WV}2w7V2z*mUU}vp9G<@J{d-aOMZb4_A$Ot&7ww0)?h7vH zyolooTU^uGK*3>geM2VzZS1UUqM@h}fgb8niV;Rfit4-{qJK1m{vdF4n~oqgB3D%p zgQ~;0lhs#2*`-1DDzUSzqJ)f25$4Vy#teHnDjnfptWzK7gLcHs9gS&iQ#z^*0x$Svev zP+la>qzCd|NH&q(WEnX~HqudKEhq;-|C-!Dme72}%Rt$Sb{-P7Zy=k=PPB0lZMabH zFu7l}v<&TQt#P;&Is1{fjNApTzb9+R268)Ezm{~98^M1!IYh1}>&VUIR)IeNeoM#- zvYu=M&!s5E^R|QY-TG&gWjcQ{*qz4qDtANbjKI3YPd}vi430w>f)I=}RZS?NrzNx$ zHq)te5~eIt77<0IY7kM?0qS5fKn+vFAR|hGnN#hj_E&?|Yt$j?P<5C(Tpgi?sG;ge z)u=|OQD`fbM3S*6n?vRzZo)4m%kfJw;*E&6lG_pQBF7LvPCi0>3cr+`!7n9e@k`04 zA+{wGQ_iJE#i9Gg?KTvfYJj{U&@@! zNfcJd3V}~%lMxrOX^2bNOvL4E5#sCF3dF0K3-N>O5yXFB#}PlT*a%gUm1M+Dr4n(o z0xJ@dQj{(Qyfk?!%apaidz4L(;4R86z_%;6BEC&Ii1@H_KjH@zw68p*JcRgB=Z+=zLGobYXi>~Oas%kZip)8IB_7>*dm8{LL+#(KlpFt=gMNVj2hXuDxl zsN0YpT4YGgcqV0@!I4~KuvsmJ*q9|tp`QfH6g*iepLGkn|-_pCv-fzt=r zf~OBG4=xX~2Ts@7)#-udYI%QkrTUGk^mq509$@#M?qkAvNxygysXzF|r*Q8F@g^cdajDz!{J=Hs3=(dAb>+eO#A zqDpw2F?E(pzurZr&zfC!l+sP*H*DNUMrKWPZ7wN$5T-gZtNbWq*;C7os>-JFtPWx! z7K^0=P@p`4q(;?ZYU%w&Hbp*yCl9zJYE^l4UPLs@q4>FyBGNpkx003^#@z~EAw25> z_w$2^s+<8l1+Szh6~KbX3TmY`T1l(vO1hQaNnP~s^gMO55S9x2dxE{d{=zzYM>gV7OBPR9Cg0BT3x5!qHfU*()~&Ir0yBr3%YY* zG;Dm>4Pkr3z76|6?4O3ohL4N^#%qjW#t5U?Xf-AqM;XT$bBt}qWyY1pn~XiiO~yUO zgT}j!_lN7k2Zav_H-<-qo5K^s=S8pxeMJ9=ff3h4jED$}utelXR7BK9y>#~@M@lZL z7gH{dxj61(=EaQ@0jp=fPoyO(HZj5k)@mAwq7~y?ajBvIb;ecO_um&T12qPpH<1VIQ zgc%pJFXmx{zhH#a{iFL6_cLsT`)L;7e%k$e@-VrZ-aux#^Wk2X(h=@kF0Z}3=5m+2 zg6{{&C2|p-n_T+qrPnUKdg+zR*Iiz6x%|?u%abqdyc}@pcH~?_`1w-(rJpX>UOsfW z>hiox|2#YO?0`>}p8fXhf=`0ZHk^(5>inli*3?om@oz!R)pKb+EubbEsp?f9)mQ0M{ZxN704q7xaW;qkNPkiXse`f7 z4}`9!DN9&78>K8&8`MU%My+E*)rD%UTCX-MRV+l=tZY$^{)$g5nLzeY9j&GB(Z937 zY#eK4o7fRp^*ih~Z9Y2j-LZ$kc`j&32Zint!-S_$ddW*h5zr!cOXQs~qpO1X| z`6m08_}=dOgzsy<-}@Q-oPI5Sd;C7~AK+i%zuW(OKtMohKxM!q0jC0$KyzSb;Ecew zzzu%{Ww>ql%;7f<|Ko_^BNmPLIV2}!Mo2@*vXBiS`$CR{ zd=~P3s4jG9Xl&@1&?%u6q3xkJguW2^Ug(#hmqzv<89vf6vVP<{Bfl7VF)S#|7-kP! z81_=w2Vq|uh+%-iWJonUW_Zr3tv?<**(KOf8YFcI5ZrWq| zK2jGsG%_}FbmZj7`H>4FUyuAG^2aEjsNqqTsBuxnQPokcQQc8nqYg!VXpS&D%@fSC z%nQvc%$v=-&4FEpjLwLj7F`qF8hu^#rs)0A_eUR#J{_Zv85R>4 zlM<5^QyNnj(;o9^%;nhN*oat1Y+h`6Y*XxWan862apiHfao5JJiQ67`IPO^7OL6bV zeHQnyjQxdNJu6Yk)P)T4mj7 zeZ%^l&0)*171(Cjs%>qy<+ht_x7zNrJ!pH}_PSlM2iOPML+lOqHv1C$0sDRS2kr0L zPuVXdv*h&T%;bXPJ;?`?&p47CS&r$BI>%ziddDuu@0>x-M&~}~g_OdS+frUm4Ni5Y zj!oT`x;yoSw8XTOw5GHN)Bcg3nqHs2BmIj}V@7q4dT-QMqb`r`KiW9jK00^wjiYyt z{&@6fqrVx$#`uq^8FOgN+haZ-b75@g*vPRn$Ic&HKlZ@b`^KIb=N#8CZrQkf<4%q{ zGw$5D@5Wsi&&KFLQMC$F0P`IK=}_Dnf5JA+?rMAF+Q4f|uD$KrzqR|fXSKJr?`?mpBdDXKV_V1Wj^A}W+3|YECmmmQ zeBY_-9MW0Y+1Rp?7{1Nt}DH6>vexyK4SUYzs>-y8zf4@SvV)%-L6`3oh zuV`Fx{faFs4z2j(iq}{C-->^(3|bk!(z&u=<=mCmuDo&O9V_o$`N+x_R=&6L%ay-$ z_wSDAPU$Y}p4Z*py{>y#x2ya4?svP-b^o-At?IXG#H#pJ<5o>wRkLczstv35uX=dZ zi>p3Z_1$XU)gxBNuO7F$cy-n4&eiKy-@f|bYS-!~R=>FVPRjgaTZu`3Z z>+WB7Y~5??&fXYxW5SKuH+J9nyBmL5U%0+v{i5|7)*o1ZZ2fEN&#u34Q`Sv|H|@CT zho0#@2YSxmJnZJko2@sGxp~sfb8bGmLD?{ML(PW88`f;NWy75tez)Ph4epHtHkvj% zH|B4gwXtdAij6%RZ{2wJ#)mdOxAC2gpKLt8@#jqen+9z%Z%W*hvMGO4^QNv%*KgXi zY5%5&Z?W8xdP~+VJ8${NX1~oLn-ey#-2B$&54ZH+GJZ?(mOWcu-a2sWoUNO;zPD|_ zwz6&A+n(C?#&)`W?Dk#TUE9C9wcysKTkqQuxWm4qZO1#e4Z5xIwoh*#ar>;>Z@>L7 zJ41K2?CjpTb>}@hpWOM<&bN1-+4=R(3%m5Y2JRZUD`uBtSH`YMyUKRe>}uP!eAoJ2 z+js5Xb^oqoyN>TVvFn3fU+?`vJ|es})vsk=As-m&}W?#FjO zyZehh{r9BrsoS${&yRN`+_CVEwRar71$M(Ly_se~{ef{ z90$f8$U9JUpzOfL0}mef`(5Mi>bmQX2d_D3J-GAWH;2X^$~`ps(DXxd57i!OKGb#S z`a?Gy+IVQkp?!z$Idt^UP4t;d!vqL{09(FkVaMt08hZ_&CK78}x?T7aq zK7IF$yXW0qclX-6Z@GK7*y|*+L_FhA)eourefmk95~KcWi8Inqe@fyCap>=tINo!5 z%jn1m{Z>iWlQ4a!#C^y?-3f{Nk~rOAiTjZl-3p2OlPujBi3gBz>Sc)sk}>Kt5)Yyg z%6^IWBMzlW;=yE~GE3qENT4!B;={=Z#i8NY1P3ZH5~svp36r=2oWJqI*s0n(Myeyh ziYn=P;>&)KxDOe~&Pm*lgt1p7?oT4veG(5Kk!+pB14$@bAn_n#W;qh?2i((#{v;0X z2em!~lX&`~#0QW_dQjp6Ng~BtE78wEB#n-f_+T=IGKpV+d8;v7R(w%>S<5|0b3HW)%O+i2wWX^^WGZ znqefr9mUm3d3t}fyeoTswKBi%?bS;3_VTwq@^HVBQ*WJ_n6VnnR|A=edH>I|H(A(4 zBlM%$JI6+^HSn45goTX4Cm~6&p=xMQBhsC~6A>DrRf)p#>XBbW^2j7o3f_&#Ga|+9 zuM=1ausUFig$~w&qLpX@tQPjyA^KrNKQxPNM;Sf}UbY05J_*pHgMC}(Bkye?9;IfW zPP^zE=WZl6^pFQ*pPv1iuctSaWD)wu$5ctG5Ody(k>>p{g2wq~lBojkgiMT}Yx3#% zpCsg|rAc)$cq~T$nuWAl(c)6!lM*p5?&-MPJ0X`E^rY3x@z-_hk<$uG<$dn0SC3RD z>bD@T6Cnwo8Pp2N)Pu(Tp%LR;ig+?|wNe^yBl3Dn@|mc`_?yx8Z%g)Vlgn5u`P*^@ zs9%XbHiA<r^LVE)}lno<4edm;gEOwlurB zQsa_Q!;0Tz{Ccp_=x-5zCy>$qp|xLo2oL98o8+_A%bRj#17s(Xd2Ju zaJ5#7QKuE7t`%c7LbJOt<_6HX^%(I9phr(V+RY`&OLRfHeYLE29_oa|xOYer{nA!m zJ~tgCR=f%HXV0h=M3<8{sg$j+UfSNoLhIXW7t*g9YOC7m6HS$!myG35g&Yt>PH5UL7-fN z9mP;GjPQL%2ni)4NfwVUs837|FPjX<0^mhU%H!-jNLa4)pn|Hob_L>%Qp$$0sp#wc3Uv+d?Z6dal zPk|?sQ-~epWJgz32YIujtF42)*2&AixU9Cll{_OPV-m4Z#G0)5TvB2dag>N75i@+! ztfgQz$PX29xQOwIJ}3i3%y;Gd^a79h6CA}JpT_|r?l0m%5o0z%#|aO_5r`FOpFGV! zF;~HppS;kCJP!Hi5&WbB*G%oagqE+B!3hXamLZRlXul?(LjBkJH}M;xJE$A1o>8B| z?_PYWHAW3pF5vf5{4Q4#l_82R`#~AP?q_@PTYm>{0Ge_A2|7{rE)fF6E$dNV!M3SGi9)qTH|i4xdUt zh0mw&Rt}){FcMD^@MLrg&Mj;q=g3#&YjU1^N4_UN(sEiy7vZz5JMp>tqwG1wt~it( zeK-aao$|QyN976SPy7>ZjJ%M1Oiq(e$p3jup|9#_q$sqWYq!?_6ajUZ;V|@IAfB%_ zKypRO&4?!{J%|ew{?6>|pT;;Z${+TB4S!)72U3OtnnSQFGNi zb%L6&7N~{lM0Jun8SOFfhrXy*H62fFziQ=b_IS0Hc`Kqm0guU7wt^g+YFCq0hw4;Q z)KoQ1P5%#lDN@V&v;s-tj0(dOEpMGmN|P4eG(d7qI8ng^1s;jjGzU+HTm!jHi04t9 zt?=kMK1T-5P-+@vN6G%*3l@}`6p3ogR+=hhZVl-SD#Zg zvY{y3AJ!ZQ$z07h8nGw#@Z?e$B0kSrpq8t%)Y-7Tx#~Q8s$79jsH)V3%G1g-%CpLG zJ=)QEF2EqzK1A-*{O@~CpF@&{#y zatx14wy)~})*1$~C8|aok+_!@BdYtg; z#0iQSc)H9YX|RJ4TndmH!+{e9eb+14ji|v&JI)OSQ|=R0oRH$V9DCo3z2L!UvcR;u ztsGab?Nj%>rySupS6;1|hu-{NapB|=PB7v0lIB6; zga_f8m4zM;Mr~e$dji#SmJD8m=SLuDzCoNE6ep}OSe!!R7N7^e$3IdGxg=ML zCoL;JbMD7{>CZTE@d15}K1Cm-2k8#Fo-U)Ew1qa{OvWs%n^T~%S#%6d!C90z8cD0WeSo#~1bGSX37^CXwFhxp?=br9FFXK&f9Z!5UpW+F#BUI+ zeky3tX40Pq&;Xp3<15NQ;j=@rYLvki89YDM9IOD75U1h{BEyPMh}fwXAaI}pw>U6|TwG^>KEkT^DPD5;0ry{ng#fYtH5qcUb z*18bRmyF4C8#sP|g?L5PZosoG(^T@Fj!5S5a0gYjC2CDaX`y#5;OPc<)3mTO+#yG!!; zEV+x3yC!YVBz+?HeB7U5548omsLj|%!JEsy)StQbdv;W62S0bA96(>AF_u`2)dE>0 zKvvxA7DC@6#eR#g--TqN&~a@wnI=~g&rZzaH$D3)ZD%I-W!Mi2|IEEG_o>*Y&Bsoy z1A8^BEZTmJzQirZyK8fDZ>{Wr{6<5*V_Q=dR6zz z71uAnZrRc$ix+iucC=sH*4onCv~WRVLw#LsO?6de#r%15=ggi}UN&>a^wN^4#YIyl zPnuX*kUt?W#t`i97f+7{_-C84YyA`A$x;6RpaBW-)TPgM`3Rz`$YR7XxU%qx)5>yl zLc+t#LrmeW43`>}%R^;NPqinb98I7W>Y|B>C8mi}XO$Uqdn!aNP)dK5((==Iiy}{A zE|y(d=E}2xE^@T=1d&ETEt!8sc7Z3`WOR|@o}QYcM2SK(86iihKy=wRmt!R5CRdfk z6mBZ3MN>z8Nnm(sMK-WN4@Qj>z`=Mdm{cKD&omvQ5}Q@#GFH@;=c6=XQ7-XUa*Q}l zOEkQ~Wvn(DUHT|fRdHEQxQkYpLS%Yc86-w4LwayT#8_T_%>8sIFKr4(Ta08KHPQ7` zk7m&IC9}%F)MZ>>TJ|8LEV}}S3nP(NcFagz8G_0J{_5&$lA~XDT8NL~Q8G$T_VJ$HA1aj86{=BY()rkKD@jmrR*5R8Hsw{IhzVwczXFh|XBaD7RTUPX z#^AgjWE-n1d1*4_C{v=2;=C~(N5(;J`aqYzsW!_MV9N65j3?u@96itRF=e^v5KZd2 zrd;E&#-3_Z6*MrTxU4>;uDlX$yE06bF4dG3a#ST*u&!YgL&`l$rdTkxiO|6!OYv+N zDHn#ZrzgjFG($C4R#)MYjR_LY$mprWutSX1+*pG% zzFcKUvG5!JvJjf^7BXT^MdLleqq*Mj6!Jw13HVKVV@Fw$+4P{WH5;a|Msb;Qu zW#O&`A+Dx!t}j}VN>_IkPLc+jMwxgd^lSohCsep}Q4?I<)s+|rd=hjIghCLEWmV8+ zG?-V>6XsoN`%EjGo zG5F)J7``8%vZn-f2{)h+mk(Bey2@HpIGj6Z-oTLUK*v7oYo4D2zc_rPn-g~L_N)iWxvEEt20c}6kSmC$4^gaV!_M?+dcKUl1&k0y9;nk`4? z`b70oK#X#=TC~ExqE+;4TA8buGv$9i;t$BR78e_uhD<&|bQ=5zyaFbQ3r`nS0P$u( z^+I@Uql;lF6HY^`U%;z|NQ$fmitxL9)x^4@bs<3Ouf|l*+jj+uKffrKZxkllrJ@g7 zwhteUr%i#Q(^?&L3EkBO0359NI>-OSKq_QHje^+Go>&_B0Qk&jRKn^jO(DnJPZh&Q zRv=YjDlg~k@dvfzHAK@rTEkpiXxaCwqL7?4<^fTz0F>fG&kn{1;WwyR9Dn!3pJ!n(n7}YtrFyciN+u1b`f_?rDeJh zm0K1p%C%UVQkWIw!V7rw7sC^BX=#%5<#|2cOfE=KnM)g{DdI&IU$pnzT0Or19W$tc zm`#_T=m_^lW?$a1f6WRH2z-JHIRgNu4Wp0`MF&B{rh9s-E3w0x+mBmlpm_l312Lv_ z3@u%b4YFB|aTjy$=mQ2UlBH#Q_yJG?p*#V|2!JzHnZX$N({O0A-^bi;E_Jp3xY+)F@FdY7k(mkV&QXjJ{0F4aBFh}+D1emlX#l+qJV|eNyVslB# z;hld?a9xk7@9FUkx_XZ9mF0s(1#bM9|qR(Fw2ymtA$Cewiu0#*k@%^?6$B_0yn}NptP@9IJq8dcp59Q zG{X;Zzf(R8d#P!BcZ??hQ?QYaA!D@1B9o?ZC0GO0sIoC3>E(E?IOhH$l=~})hGCIM zDD5#Cg9jk1$2brV8m=3-DXKEhBxqR0^=4U$kKhJNPmflP@5uvM&%_c4fj_bNr-k^V zPu}OR+b#bt8;etRDg4zj(qLK=&Si0o%rh;;b|Ks3G8*T=DPpNVMka@r_w-;%?J@D^ zsu}!22QkmYcZ02=e1E|AGT!ndL-DNEmk@{sFt%gvBcc4ksh966FW<%B%X`q{VSJ3# zUzIIaIXaui;!h0q7{O|6(mJA=CGVa&J+tt*7=Da|arUx5Jl!vpyK&K>ZM;M3tK?~d zABNAvM2I1qlo{kkorT!dZKO;8ESaPGm^9G$$c+rA#1O`*wWI`j)yznyux(^AGoy|V z-tKH86$tlASPmG6upFTgp%h_0!aQCcArp8tLKBDhL}s{8JZaY@;KSH7a$MJsEZ4nF zj^lgD$5lJhCy@Su9LF~+kFz}Yd>sWnn;iGaC&%?s2wC9skp^{on!b`&2$pp5a?B{(3Oa}jarNjLTt0vRbo5>vYJUOC#Mw$Ve)s3W? zy-dQ@YP{iclOq`O9n9#y88YDb5uY2#5l&a%6XlPfPLnbR_1`D83O->#-kta+EYZ&e zf1KsPH!+#=5-C*t!MBcn0yu$>-y?hAzvulySd1{7mr?tXMe0$SsK1BQurp-5>LA6) ztLC!jG?ln7D9xH2*}Ehe!NSL)^Cd@gW62UOZ~7z&1ie_%LGBJRML&X!)z2pJ`Z**C zvQH6m=d!;d_>6SB`CN#3;Bz4Zo9RA^#XWs`S5=J2dINSbDjE^@CUTxcK;4KPtfOJ$ocme z=SIMv0N)q#H@aVe>}w#0F@TS$cc4xN^b_`hGB*nwfu3?*g{|Dh<;86VaGivlewkInEeH`bF`8+P>58rq6_&B^TpCIh$1C)i`s5>wo$cm3o-wl5U|E9l* zw4zJ_w@ESXpGdQEfz04@%1)BQ>i1-?3YzX3jN3tc)OW~2p0At{_Hjggku-^NTxYIz z|C9R=d~cj7D97hqR|TK+F4?J^MS1AEat>*Xve|l63N#85%_9+zQX+pe1PE1AamFd zY?!Y@pK?3bpCJA|BT*J*L?5_68-#QT>~KHYmiBNZ6#BvK182)|h(!ctg8LWRK|&Bl zFn^NCaduIJ5z2K~JFX$!2#aB-JN1=hliv<9hh8G3%3@N=dPp(C6y$HBK9^T1;~}$c zqzIuvUrP=Frs-GWvzSOS&(}g8)rS)!*Hy@%PX7lo2El?b1!1~+7n#lNLiYvvvku=; zK;3HSOO);)=~Rr+Tb}M4?j`l=Uh*e=0Js7trxpWtV!a!Lkb^J^!OlN|<%e}Vkllwp z57Kl7Xxo6BftP~tDuVn$`BEOZoViSNvDoL_1DgyYBe|aO_208*puHCT46Ji{=tcw9 zx|QTkTn}?W=qmJ+&m-3ppE_dKcadmaE$OcdBmI3^p!0*#PB;2-7xZ^6(v?VmM?!T$ zq@OQC`c=&5Gh`I>EmYVzx3gT$59{oxmyNYsLcddFx$oQP!xr=$4V@i`2+FN3bH1dsD10dgOz!Vb9J;&Z!1Wg7|7%|aS|@|llyV1s6N zLieu&eJA>=0z&^`gC?vu{dC)izb+8^oQQU7u%4^~{EQs&-HEaMh;$12hEuDabrpVW zi1HQeL-X0h19dj+*={CAADo!doh26CD`clGl5FL6t9~Wmb7H+Z4_&Dt5qb%^U(v%q za2wU#jlSXj6W#Y{>l^gzbM(a@ec=1dg`o4cxE-R8`pNK<-1lCwAMmUT!cTMC_a$pE zpLJd+d2xTl<)Z$cB^osOv_fh}8{v3~7{|!uoyp#S_KIZHe z_{7D4k8s}zzjD<*ilk@!%Y2Xh{s(yFUc_VX{|S11Zr{BL_rX|8;Vb47a&d_Uf0+kZ z(Hu8$~x!3Q_gs0V2od|oU9r<1AVClpGQbI54t~-Kj=ogztF{#r}#cn)aUbz zbsqCj!)3%?z}{#+Ndp|sarT1S4LAz$G+-ivQKR!bJhKFP%Zs#fLX_t?>WDIqC*!!f7R$;w5OWJrE zXF=N7Dw2hhR>Rc4k!x|rVJ7ypDXM|QbAAkKH=95vavVPF0MkL1J|t2(PjVGE8Kny* zhjk&?n-3;)aT2CgeTyuBO^sK-!*lSfzyo2YJIEyUB>LJ9ZT^+a)TI!sfE<@W@aFul z+6VU&Y=ZkGjlcWJU-1WTFJBMOtMKFFfX-k^yac_wj5{=b!Kv2EFC#z?+#3Pk2E;ko z%l|+?{>A5!E<^bUKpVm|;JAnE(s*l__hY|lz*_wnPJ8Uf zJZQG?pWAy3&+k)61kRV>tKra{+eo6i278t}Fo%=G`;7U(=U~53p*F+EH<|0f$ z=!Z~+FdZQqVKM^We{ehekG%QwJbjZC$uI_R411j9_YM4=g?=M>0Q>1WkN#t?(+Yen z?hDg4Gyv{BI1zP~AJ`@?pP~xR8L8rIvG%ts^^0CJy4nX}eUM>PpAAghu1c+gN;0ay-ev zH!iYBHp#&^&+^CwocJoZ;*82voB%5!rDVD|_gF^C$t*IP%)z~1^Ke651*xPe?lW6U zZXkccU1*<^bz~E{ncRV!&<;`^>7jbE2KSfwP+#1n=7-a6&ytU*zqmW?NAd&t33B=! z`3ueqK0vBSHQ7vR$jkUP$cyA9@>lW-c7LzomasbVH*$i!j$4@OaSCe-PH(+Q-oiP; zFUjA@P5AamBfgP?cP{vb$9~d^`_$URw@3IlNfwdC)xeRA0ufy$X%kdiVPO=hb z?z+h;aqjtXoao|52>Q|fICXuAT&4qXVr&o{Ox!qeW>M5kqiGC{#hEh;#mCMxktT`TknA*>T)=4^Cr+fL(lnY*N72zZ zpEj0`qvL4?&7@i64Ecm+(;S*h^XLR|;zD zUQ7N++i_~BlXl_$wa@4xau~O$Ey4Xh%jk7=vtg$Tt{!jxx1Ta551Xgpd0BXdJEl5x8O#kZFD=m6{qrUqqozYILE%5?xAuVl&(D+7yKrXj5Is!qruWc$>3#GFy`TP$K7f0aT=XbT^gTo$rjO7^=^w~$+^6*z zeVqQ0K0*IPpQL}riNB}mGxS+{oIXdNr!UYK>0fZ(>1Fx~eHG^c|4L8L*XbMdZ}d(2 z7JZw(L*Kd`8Ttu5OaG64N=4;X_K>@AzJEKpl|05WSSHJ2*(`_UvOG3{<+B3ZlsA!0 z!cBQoa8F(_o64rK65N$Hoy}k~SsCu@n#E?bIczSQ$L6yNR>`VZHLGE@td7;Q2G+^|H+bU*tYdw~6(x!6(M=l2kMm_35iZ+~FN*kkN*_D9@K^e6Tt`!jor zJ;!wAy}|y*-ehmFw{fGL!PwXG; zXZBBafn8+3uuJSRbHl+?g((VNQ0QN*S$;QN}9cl<`W2lBr}V*-DO*tK=yYlzgQ?DO4sZla$HI6s1Th zR;J2c+(@_+dL&S%Q!$`{HxP`URAs87syJP)=eKlecXWwc@A`@RHgP+bxTWj2 z_il!%2Hd?Fj@vg)YNQ&aUgfN*YQ4&LQLb|KQ@zS}WyA^FVw}PK^|xxS_T34*`N20U z>Tp*WzdLLJ?hR{Fo7EO^9{gH z_T+&4-ckV#y||iRRoSjKAkr6fHa6AN>Kg^{DUf|`lzlGH`rN1qra<6Alrrs}6@oZB@}qLu9sAfTjIBmo`0 zxM;&}%akxnU#eB^6hJNI6V%BkXu38*UD^aqmm}zsBbcs@pi2PV^!CP|A@;>;|UR*y*8{skm{AXcmq$)4-qPnKmmii9=Ox_o* zSfv;B$;=fbpUPSR1ByDDDmxl9ytNmXvPqLLUDw&#(%KPJ(^%VH+tJt|QvR7uZ4H$I z^{Z@Y?W}F8ZLAE;ZR==62L#zS7q?sSihc#?r@#V>nj5(T&=S-86!tG_uC3P!4QNF1 zU-8ljUTRitXQggJWpi_-=vZ>P!$C+%P9 z6+~cdpAq?@Biiu!cmy^W-=gK>@l+K=ov5!?p}4M|4^CH8+tgX^Vtfh-BY4mB;#;3G5v}!roc3p=UWG4nGJD{{-fYk`-kFJ$VK9INT z=~w?N`WYx2)uv5miiE$YEKtGCVYNx9`9ghSmvg9w<1xK>vpDg(&Oa94{f3oDCEcqu({>hSmvgGfO{2h|NL-Kb> z{tn4sE*B1m9KS>IcS!yY$=@OQJ0yRHy&(*lCM+pb4q^ca=hs_{mlCIN^D*hYhb4EqWZ-G_|5c~lHXzvrZ3kD zE){@llig}_26eU6$lX&-Ra4NlUGSuQpVHn@TcdAoY~hP_M{PBHhF|THYFIob&ZQWcwh(m(jqeiU%NFW2)AuCHZ?U?i^VTkES%M?@LbwrBn&0l zo-&{ht)08TTG??iHFj&N)fYUS;D$-1J3*7g=%tB9wIxQoYXLu>0oAs&ZT$?C95y>?2ya>{gyOs7cwPLcYZ zBK12(>UWCN?-XfQDN?^vq<*JJ{Z5hkog(!+Me28oho98*6shN_l7Fh?pDOvMO8%*m zzcz_hN2=tnO(xQkf2!o4D*2~M{;86Gs^p(4`KL<$X_9}Mmy-89*5 znrt^swwor~O_S}W%XZS`IIxG{k28*RDaUj9R#|4hk0Q}WN0{4*v0Ovyh}^3Rm~GbR5lDaS0y zUp|~UvLyd3$v;c-&yxJJB>ybQKTGn@lKitIe`zd^EXhAh^3Rg|vnBs*$v<0;KU?z8 zmi)6N|7^)WTk_AA{IezhY{@@c^3Rsz&zAhNCI4*6KS%PH#_W*B?8uS)b0q&9$zL;a zt0PD9&yoCdB>x=AKS%PKUeb4mE+Hq{BtG$ zT**II^3Rq0b0z;=$v;=}&z1b8Q*-1={&|vrp5&h=`R7Ugd6IvgT zA3z}=K+!)yAs;}|KR_`*fMR|CMgIUr|7^LMeF94UntdWI`D^xxwB)bZC(@F?W}iq) z{+fLvE%|HqiL~Ue*(cJHzh|{Po(AeHTy(b zj$gA+q~-WE`?Te1_6aD*uh}Qka{QWoA}z=7S%fwF1YPpi>=S9pU$al7C4bF6k(T^5 z`?Te1_6aEYYxaq>l)q-5NK5%^_KCEVzh<9EOZjW|Y0K5@ z6Hv-qvqz+*yfu47T8>w(idMoM_J%@5d5x`y~-*G z{R%vfQL?O1I)Mkucc(H#D5%WP-m;0rVA-$vd|c?aAoeftzBUtSp8~C0!F^t>YE5y4 zgRkqG$P|fw{MC?n{~?m%RhPg9@Qhz|I*?B(UVL~PK_azpqPKagBikx+ggw}`hjmPk za6*|`&g1~z7G5-S?U7TKEkxWqWhvgYe4p-_g8uR)w>K?cD|^%O?W8BIuNPej?(^nb z5CZCZW$nk`f@{>erdGUgOyqaSiJm!0lU+}}Cn{>~})cTTy#bISdlQ||Aa za)0NP`#Y!H-#O*}&MEhIPPxBx%Ke>F?(dv(f9I6@JEz>=IpzM&Dff3yxxaI2t}ri4 zdk+LC#tSIM3n!$py`i2%I)raE7(^`<%>(Kd&?W#sdAk*~E1 zL~9cTM2k&zTA%sdlcLW8;caq6_L-wvpEZoPEXwh=MLDf?fokoGf`Wr6DEi#mQRl-u z%^~Li=%;lXn6K!!KzQ@K3~!y6(HiHN);2FBng-%8S{9#-XaniwxtxnYI2(@0fpAnC zh=y@aq8w)>%4xg=sxcD<1vidyZMI`?A)&Bkq=hX53WWp|3JE9_7EmZGps)%+={w~+ z5~sH3$A(Dw4&+Oyy>mfY*f#Q|kJaAIfG*S8I~BWKdxwrar$)Egt-<^aq>b-VU|vnN z9UWeRQxXDUZ=M%}_I`4uk$L^JRW(Z{ak!2m_~U%r4DDWDV#F?{i5U64zQoAy^(98_ zUSIK*1Ad>Y___gMe2YVdG%svkh!c1G%pSveJnifr?k`g|F^2y;>5sdq_WzpO3EWS=4Y_XJTc8l#H;5H{j|SXzOHuwt-KQMa z8-RZ$Vk3{)QoRk7-|2T?6smT+n)uI^RNS$~#DDtiPlgbZwjTlKp3^oVtVdXlupD6# zLYssO0BaC%`Z*1!Ow(|>ROC+r%tOF!k!djq5eT?vGnLC?thb zxVUp|2;?m8>b&d#Rk=JEg3qmnMAwrG};{ekn zjx(64@dzUj`r%*w{({#2^Zz>4K^MfGi?kT`#4()H3dC8>6*#RpjTnI|eP$W=E9wuU zyn^$WX5@~*U3i>!FKmom*X^?<17d`!^z7mj2m~PDknuc%_9kX!w996 z4@Hf!z;WZ7H}53R(*=vXQKGdxQCs^Tr3AeoDLBKM;vzH!->^wJh_Dv{XNOa^B5Xid zCt)`rWSIh4ra+b{4G28H3SkcF&p^O^v?-8p3gnvt*``3YDY)$~B_6?yV3c75AZAXa zA%PTMl*6?X&Yuv@A-s!G_-g-;R{ZByCjZwe|F5(vbTtg$bTFz$e19cEjlef|qwqb9 zD0#21xHl7H1$2ItY$iHKF}_dxZSvsce#ziNa7fwyi~T2#+0Wb0+0P2>BmCE|H|(!~ z_PqTm`{RQ4u>Ar1Jpwym-(%k)u+8=!`&#=7lv`qNw>Jq|oxQ?7OJJq;DfWDUWucWZ z_7s$}+T-kzf)-{UW*;c9K)c>fY!?Wz{b2jr_PIv0oq-DC$M%8kZ5vKl1AEDK-1elv zj^Y26-EV{T*!J6Y*|rPXCfj-&>=Lx)wna8rC9nmy8rwX9mD#4*CJ8JL|NU%~z#O(j zTa3UWY@xOx9CJQw3%2_^ zQP4(M2U}r#p!r%^(k~oK`YGvr(m8>hP5LP5-J~~=J0t0pq~`_gsien~9v0XGN%tfj z5ZIoi9Z8!7)|0e033G*3mL#<&iP=i3ORC@$&}Jo-N^DB9;0jtVmhYuyd9g8GEX9ji zlj5{i?B|ojJfoE``%|*zUTm0`HqeU&Ch284Vjreqi5KjW)(88+OZ(c3eeT81Bz_?4 zzHQs}8|;La_L3JnZkr~{J!$(|V#g96l-T{Y#NS|ty|n#aY?l|??!`7GuGi{1A5Ijy zNl4;y>sPY9UTl$<*5<_)B-Y4sz1Tc2t;~x}OB8yImh-H|vPOn=+;6Z^UYf&;C3>+K zo9t;~MA9p=ZZ8(zRdw+r6}{UfKpP?FkRf{(QnZtrh3P3Eh&1SH}~*^P8~DzDIKF^kOX@%zhxDLFQK3 zdn7i;`lyE4Hz&-Hv|`UpClq@0AR)(#jq_mEg9%u3_)mfzx4UVW*PwGFc-lfyo-(@xn8~x5LYOXuakBJ6iltUW*HU% z))W6g{5@KG@dx7Nyv6UZy)9{*tx^WI58~x)S$*TBRm89GmRsT}7vF9>F6%ZW$+5-P zd1)0Mn(d|dSz5WIpW;hpjjNSA7C%LnI~$)b%VpW5=ZYVb^pQrhVZHQ}^U&f`y#6oG zW7F|g4=p~|{6w%fmj5LraVudnt~AhTWHjS%NM8 z8pd~D62tCG=BjbhCwl5yV&Z;|`%cT{J2DN6`zr2JN%Lxx4ZA8%Lyc2$CuOd;r*Ut_ zy{6IPUW|K2E7v=#aZh+#el*S{%iR}uP-1&Ma*4Y=ZmXni@YYxt*BvK3QCw$SOI!ob zkE`-na@-tmdo$vSW!*w=%Q;D}#Ela*(mXtReO;VAPWs6>bDUAu9pR-7juUeP|APIR z%=L|vULf|D*q=07?D^Pp5<46Fk;LAOeM4fect#ZaeC$(__IT{Wu@7)O_MX@S8ZGI8 zSm|?OcX)alyV+Z}$J2w@wO-l^PmLt+t}1p(Y`f&qT*y(e{`hV!qahF`s*}GoBvAd=T@tmfJ_Or7ge$ytZ&PedbR)THRjnn9RH*x{5x> zoQQcz_T_lYlM*`?^Pt4;k2x%{{V}^FwmoK(#MZ~Gme}%`MG|X^Ss<~Rn0Xq8|IM5z zX=O3fBsM8V`i+>3m{F4Eh>_*^(}|?T#6(CeG-imzf@Az8rh2gG%h5k;wCL}mW!>mc zqfbfNNzZKc>Ui{<(XVN_{OLr)_>+>X@nZBd8kU473`u(;`cX;4^M|ClqVJQ~L662p z?~T4)(t5G2(HkUfU39m^mPL0;ti@y9(GAg6k~SxLhK412_s`MA@vq3-LXXsl^WLj{APaKV}rd>EzT^xk2%aNeU5pcIZ)>6 zrNWZl^{Cg!_LYHWjgPtz^@CP7>g%Y_C3eP3`@lF;Nk+MyTfrBWj38pQD03J~qnV^BfSRMqbux z^vXW+=g99Q?PTOvl1J|xd3{Obr;(?$+{lxWZ%XVniyTq3x19ZaV<@oi%+VvH!=|cK}9JWq-f> z-kX_Z(r3~LX)}`sfwW1XrU0R&K|&|=5K8C+1Vn_;LJ_IbQ9w`;5vj4es4Pveth%o5 zy1KSiS8=VYka_uj=e(Ja1>OH=%**A@dFP&c?z!ilbMCo!{^IzPr*zeE!BaZtwJaUa zde@os)+kO|t2OL6g4YlO5wd_(nN~cuEyso#W{5)ijP?t#v)Tb!oREK&?@Y-(W}avcumiIS!+DrE^I38#+Gw zkM`@H(idL)!2Yp!rAu65|C|14;vD;*J#cT>ujr+O2kjnBbIT*Jzvx|IQ={!q>u{N^ zkq-MQ`!NreM_Nk^i)F8=4% zx_`%irS~ZQ(|C_Q%{&nQ7f*kO#d|bs{8eupB>sYT6^}m`|E%ZTGx5hgrQfPM(hB!b zE8M=;x*e@`o8#Aeu&jz-s+TfH#4plIw=C{>mp5J#Kf|l9;wQJ(jrZ1NJ{>>G^X{kd z9vz$IA77!@W%P;fua`Pq@YZ!Y=dFwH<<;o%J>qk9xcCgOZ`!8Rv9<12DZ#4=<8PH> zTkBd&j(zcwI_6u^ym(8zzo#{9`s)AP@-%OGkhB}5e;Riq?#H<6RF3;1?&CPtsBwRe z`_c31tehPaVBA`-cM`WEZi)WJt?2o!`17sk@2%)tTz%Y<44xsk-i@2%#S&N7 zTAGwLDQ+y`CQf>&8bLB1R~1(l*OykDxWc$@aoKTcD5aoePlw#cMaPB51(UBEXGTe- zIB={M7asdd?Dr^r9s9ZdY3xU+dq4JV)V+q%rP!BIdOo%(_Czf7U+m%72V-}|ZbfNB zY-4OgEMb`+J1cf-EVNJT=-6SggJMfi>VtRlW4oY~g*Q4;Y%?|~Ha<3rv_))aY+$Sp zc{Z_f?1M4QF+byLAO9WmRUG#t=F`}~n7_whPRINy=4#A^m~$vSi_#gg^2FH6CkYTpnJnjhUgBuyY+rJMwta9=#pkLMCv} z#x6YfP+9uaP>mhyZsH~EO%GG?#7)Vx)BQ1j8p7}+<-Mq>r!sEfxrs8ZvUoB~B-guT zWKQ5lOVkTDzcpDY2mW?k9-yEVnY0F;Tr-W}?iZM#kC5Z?)(8wTzi0UC3*>K8~KEnBh^4dWq|;TwlYj{7UuWSFVrY z`r%ZM`^gC2!1WRQ^iehdlJZXQq#E3PLX>Y{$PHYxo@kJg7(SHocVzgETw^475p0OS zTkHAV^;{oCPcfWpg1GFh2NUW+$f;3{Gg79dohV?KH^V5;_^SZ{0}aFrOgHWBGYbu5|=`$ zj3>(Ka)MNsGGuqAd^$S?3E#%5*nRNrdGajdf4Dq=%gd;2dXvjUr=9Uk=e82) zDMI-f%oLUq9(gw7DJ4886P{AsDvL7XDP@k$X4*>mt=WuoJmHb2@Uz$ygz|PD$bejI zGIDtYm5ncRnOZ64wzhLy#oX3*ZmXEv+RkkiGyd(2znC#Uz|VSZ958&RjiM)WYzjZ0 zWd1zKBmN1OKjHdq%&QRnNi_=Dv3L@s8cJm~lXUKyDskA3ZIglkk zkXsqfbPnfMWX3R=;FU0bcM-qakIP2A%zZcVTVL^8rN&6$oNWT-%5wg66W14W{dTTT zrhX~R4dp!bOF6IiOKZTpcQYlgbAOwd^G%E=nrj+0f50>{%ugC|^(TJ!E{43pFjbl# z>Z=&$ZH9T9V3aVTL0QB!gfI>N(dtn{UK^g=%73{0AI4eF7+&Y{Hl}SG*L=>ce9st` zbGa{n+Lu4w%{3P0s)cIA&rDl)uJ1=WNB)KNPc&1tL_;o|vVou6J;|4#vNL%eCA(Sq(yVas3nA$0wM>F-&ueX$CN8#0T8dj^4?;sjSY> zFyC>b5cT)pT>dv>u#+B>_pm(M8FMVZwTH{A8AjHo0!B6r!E>V4kDkW&fv1pQ@XeRN zi5rnoHVB4a!|&eEpH!pD3@LN#tRK`T84~suunpuEU*htM3=caIZ>2Hjcq$v>8Gef) z8SrNq@(k4|J*ceoAV`Jl6|R>LvVLyQ{emrrw~F1D@O*%t%DepO!~AJE<4NcF^#aek zbpG@O`c%A5?~2!PYq^lwDv&!G@qO&_dglCkrrgT2tP{Vrk?GmU^i1LM6o%oxiwgvU zm58LM7gN=XA;&W0SSpKW7=9vuI*~t3;ZJQ`e}U^+J1K{`{xH{1=jR%h!!=y~ndidK z)Ry4+CH}+pD;dK|E^nr%;>URWxMmE0I)=-gxIBQ%N4Sp%x#k$x@R*A4sH}uBh7hi= zWg2R!EOcsBt{=tkj^gq(E>APYf)87`yoJX-kIHHukM$<5m$|&2%jzN+9a%@UXZ#slKbq^=5>^&- z&7T;ci7&}s>DxEqf?zTp?|e$VCaxx9#; zf@g&InQNAD>&v+Qd(zB8hn&f8&14w1Y2{N4^EJbK%`)7TKV8j`tGV2jv2`Um7ok+6 zrm)P{@^c?!_>M7r#~8Btt?49Ps;+ssFLD&WyOgYA#mqP#U<-LE!{5y{i;QQe73Rq@ zrePnIMGJqL&Gk#^so1DSu@Q%rK3wj@KxJ`^>OmD~QDe$ zuWQ{=4yUKGoH(g$A~}Km_86W!8FHuT7|JEghi?t9f(D*(;sxTH_>?>dd8la}mD$S} z%AUffJT5~STLoJeR)(w~NXQ=EQeL34T+1ukb$&Kb4!!(?iM-1O_Evr%Ujt>5=O5U@ z`GKrcQNp9#o!dRfz35I)ah>T5r>D5iEfzD(b*877=n-FW{Ti+hGX6~BFs%A)JcEf6JkcVaU*eg`Jh@4&3k%!TH|bp^ zlkh0rX2l%<&@H{XSGtTXdvzT#iXPj2jGxA+pI6WD&mHFSm^$k2m4O}yuc`}RZXR(Je zi$9&^fk)rv8Psce25Ek9gY;N1!H7uaMleH`GKNxqx0Gx8F;`imDx0{KVwS*ShAif` ziW$C`;kR=u+gW4GVR@+FUjM)n{sVL72dYu*1gRwP?6dRgZzs8hl zYsNO4@yupCvl;U*Od+pX%I6HT-DE~jw=?8+#;~2?w-da$M?u!USZBC~=R_p{&q-8P z8mM>TJLblxR94*dlrECZCR?eDn=0{?lbN0bDjQjgD!l3`=~ScKV3;6=381p7ThXXHUMgFuEM*b5 z#eei!ro*sKYv6WAGW-gzw@_If$L%K4TXGncl~C4-g#;s;sEpe;iSqGWa~I>$=TSA+ zq!1oOx6S%djhex&+|Qpr!mV^<4D6rE?4PQ$SrTd(W+;`_xm;7hH5FWQm}@3;&15Q@ z2GLVFO*P634D&R@%wm`YR5m=zH9S)C4_xk!+x>;gIOXmP*`4ZDe#+roQ_M9VF#J)j zSwm&Tt{ny>TS4+1u3xLy6Ha3kmlLR7u~XUL<{B&4SgCA^;~KVPl!vK|JDKsW!XAN0 zp&IosT>miRKh5PBdcq3Yi_uJ^vbfIAP6Q)5G0aWEV_^SF{)yk^lU;^K=~E?>Y0!J> z%kZq#<%v{QOSxtWzon1G*Np86u78p1dA6#bam_D`%}ixO5Z7#Gn7ve1tGI?^4)S)C zW!wRufcxGh-10sKXOd>%CtF&ApB!n0bf1)q+oE^j^wA#NjXpqnR{Fa%Rr&}&_u*#p zk8!%~Q~YegZQ)7lJ8qt?5<76~^l-5UH%`}!2kE|O@jUK| zJ|SMjjm~GqH@MCDy!cMOpk#^`+;Hrar{j*}2{PS0JWt+@`-T_D2XNQ$D)}Jp5#A&p zqdSDL2+Z;zt{;x4EE)dC39&?+!jq+qEuV^A zkZ}dyl@MNN7Q$o-@N>zsOG-`63UMw;&&Vut(9PJn&aCjTP@}`1Bt~ya|HfV3C9k3) zuS>Z&s`}q}zO102tfUW2ZdqERJR-l&7)?@elR-473SrBNx`sRVif{?H4ZmV=QbUs5 z9}h#5``>af{o-Bde)Si;+g^&3x)$Qw0-^(@xVUyf__*7Z_-cu*ycWk5u3+ za9X;iJ45jE8Ym5M@*@OSg%l~aFf?N2-yECOhF_<`zhMIZRNm_;!nD^1?;EWBt8#aF zizH(5wSS9_RS#5($jaSSLTUb9g!k0`r7X}cZqLx^sY0gjzxpeS91km-K5+kcX!wqALm+nZ-FtNy$0k z;SnKea!z(`ZeETv4F58rHY8RCmrY?Ixw$#n_;+$hAS%McW#hs(`wjSD+WM2jCY@ch zbY@d!LB9hP4bM*c^QBqSQ^yTl+N(M(Wz@nq^X|q*=f?fHIugvF&%kW?Pxy~ zlVsFpr;KWxzU>+7yJETjuzs0EnGxTM@rDk)(wu#rkcH7L-x#OBpYW3+!2e`?=Y_p6 zBqch{9^i`dw-}}N?Qw3C1~Mx>_-a-`YSvX6Pp?p*8xeLRD8=Q2AUshxg!Okm6I=Ej z-22du{X6#$C@vmQI-tKYv-zFJl+<;59@=|w=Yu=;59rfpKxxSU!>ixE|Naj@y#M~U z_dWRF{sRa0Kd^t%jS|Sq)qlVD-VZ;#_ujuZJ@DXz2k-+`tw>W_zBarI+bU7Yka|d| zh3!nSd5UDo2=YlX`1whl!~I;rW>==9P#;LRyQW8U#fWexNVH7?BjGgSuPr%HhM*_$ z*yuxKx;CZtd^dOGM#dd9fMr{e2JGMSONu#J}8Sf1CVqM}P)xvN#T3Y?ag}l=E zuV2xcmp2IY{5helT&cOyzsEr7x1c0I3M(}GnaxIj)g}3Z0MZ{AfC-KeQhb_An$eibVKz0bIZG^`wWXwS_N0TuW^`YFc+$FyGsYa9uYDrF z{-9Vh`_Tu+xE2lQ)0kD6G5$pTf{W*8YoGhl7>xuE6VPs&6jvBzP@|)v0uwqJTvmS% zC!s>H29XA#wxGhPP4Ja;yRHY59F826NF{A?HHK7L)3db%qm}ka`k(2MfKxzic7d5Mc-L zNS*n{AKg{*(aUdW(`6hU_pzo&Y12iC)+9>yD{nP-7l*T|tNO*H3`=w)f*>scUueI= zCOHa2qT00!50ArP^4RvOE6Aq}XV3^wHP2Yw;){nHrerIv)492F;gQhplNzLiiIA!hqVSZiZ7fx$4eaL2* z25Pz(uHajoGO7QTkPaQf!;OyE09SyK*Q?Yl-A+LN2WRIi;D1C|5{tRXc}r9r_B2`W z+C>8u78)y0OB}iHtA{&HcO;EXf96l4On$LrSC4FXajNUBtuvlpTPA+GXJ_M@(d$YR zO6JIOR^E93;jupE$Nc?wYVJdsgVLv6+O+HMiz*L(r=36e@R|oI7W6DwHoXYk8-np7 zy=;`Mg}w$^R$3_Zn7iKH3pdb|4dnOU&T@amww^G2+$N$xmf z>!ih}CyaUW?%M6slTs$H8#QNd<;`PL8&}UPo;uhbkT86ZaWqw-AeG+zc4EHd3U^ZD^o!OMWbQj$7-qGb`593w@rY$!Zz~?(4&;a}ts! zra$|qYNLPb=*BTipPxGa?aecvUR$b}@7}d??N}Z-rQgb%e|>nY*?cr0aEDM1S}V%sN}0%obAcQ(-|Smq&BouDhYyAZ1Vnpt)6#->%P< zQ{@E(PsK>9*=xMO*5b>xAaQEv z=3M29+fV-KOYy{X@sG!~ecCzDHUm3V3Cfp{KoizM+#iCq9~QU1q6rA=4CU$O{`k6> z@_qZX8TwEN=IDX}8>pirj9c;%L|Mxiz^xh7Id6c9Ju3Z(6sPAFf_Lqesrb%C0He zrPkF~mRv0*#^(%Y@r`c-r4EJG0cB<3*2H|pcBftb+n-iQ_szoqdULNZ#qw%@ak*ljm z%n39nZ<%`N#H>r}s!wKzBJC?9e@Let+Al|sX}>g$-6*UV?)qwM^+&6I)E<6%(Z{0K z<-drE7jOPBxq8kNAOH5{9Vaj8BL8(<)7IfNefv-N)A2QLER3^i(`+f`$$ck3KJ{5) zT0i5D+7Az1)V|!3o3J%0}NUahQcpkd*3Unvhft?R+@9Sf=Mn_9A79Ur8 ziQPcCj zPJAvR&Tj9$W0|4p@Wr8xBZAFA6`STXJ~u%bh|8jC-TO4t#zkc_DQLm#;Wd`n;HRW^ zkcVL3R!hrHeghj1$-%Al>Fs?w6h4b9nxOD`uYm2RxY#fG(n?EmRAUw()_FZ+We}L>_K^=ha-aa!WGH?EV4W#Vk%7ed3fvmHL~In z1sbQ#7xw}tMDjlapUXrl8!(lv24-#!z+rOc42q5~>DXm-?rRfHY4Zd9p78bWG-JGB z_l>#RU&2N|k0j@81d`pL$UcFpA)qbY>;_M82osYHyBxFBAimYYc3ivWoR%#P{mXq- zezL*+COVMYqrQjun;To3j92vsg$60G3B7>3!-B8(!xnb_ntV6<(tOGTYg`4`2r0TS z$j?7as6K&a*%cA&!!KoF;?n9cK{zm5$xHO+O)jm&32w%Q+(J;QYZWSTKzCoz8>*q4S_DB zwFv69aKh2YcuoA-?dPNT7{v2G%HNx0qv1vMc<%E1`Zxa_EsW^2VoQ;dg1HA9*l-d4 zRfz6i1uCv^uQ-y**ZnJYuvmw;I#|I7EEr|O#bJ-RA3N4^WbpkW{qw(zPP=YysJXWP z;MMVeyMExcN%9AeY5%%7W5y*B{@6c6)pO5kPkwevbKiHLP)^}{HZ$+l5JcqpuP#LY z{H1W}VUVw{U!cG2@?%+|_y(;$qyn)3k>PJZH+5eG0ps?<&|}Tt4m^5ItZdq{?AVB- zhNh3-82i}rQa6Hk$J}psT{>lLBek+bJIp-|hsMS1vtuDvP3_wo%ryJ1lK(>{3UwKQ z6WEhvZ_?uR+x;H%%z80O`&|3dKivO+^#6qR@#RcylPHn@ClhoYd;=Z?AubzJ80cfM z`1=Qj1VK*)dIp;KU?Cr^)hBeYT$bjWgWuoT)UrJYeth*4brsz)cWER$PE z?C|)54~ zxf~STXdaR|b4KURGiGNgj{#?dB$;Y}vjc38K%a;NC8$GeFz^O>#^2)<0e6~`9H^M6 z5o@dxk+0-g(HaVJp4C*NEqzb>$uB$%GzD0~{j{5Z(Hh?T&@apqXfy;{!~Jhu6N-O? zH3)uwbl`_XiSkh5u%Ue{mfk~#CpV7+UF$kkR}W1}9yxkc2W3HXW5>~>ha_apU(!RN zZ4l^4NxcL*{YVGP20tHFm`Mk#9y+}`81#{iX;Ig-b|2x( zHJ@)@;l3oND{F|hexQwZBYkOxoACXLG%h~+N>8RNd!~r7uy1Np2i^RS>~=>he{;)< zWvl8swe{vkU^##o;Y?sLNr7j{R4^j+&EXj=&AhnFGc~8Urd<~n?Rn#ky*IF>COD?` z6W*egkYifGFgud`EoPL5R`Y91@U;m*L?+pJwy z7Pj;URfyop=m!)C+E5lYuU78XE-xe8RqA`P1$hYm@T&Y&sUgTH;N^^g(?;qBavbJ> z$mNJ0Q6-hOHHo7}m4q8@X>;q6+QkeSSs4>b+I4ix*UCTD2~rI1xO5a+Oo@qpu~w_( z=jT$*t_aD*>uIWYql2{=7RTgP2RI=y&l~p2%@roESCJ!EUcIt8*(Yt%%CVF7jTEvl zzBq5n(0%<2D=vy2d;YMuZg}Gp>V&hexFZhq7?jd~%bX*}eSGql*JawbrsTStOs2WD zBdT`Z4+KgSY+ zWdRy6* z=yA&qBzKF{6`A4k*%d6g{LFE2Mw81L8X2iK-j)x=b~z;20usU_ zoQT1|R^x$71`+z0fh0NQ%6C7#I<#R-oWH?*dB4p!cFgjWLuPvw?hEl zkye%wH>aaG^y}BVv8QnO`Dfz(_|{)vKKHtpu4Hf_0+Aui-u6bLJ1KJ)Wjzre6wOf zr-I_*;dQkyu8l41W)Vxy$0U4qB|RgxQ*uepxijaqH?%L8KQW@~oT{e2Q@d?CF?-gW zS<~mbw9tpPOxe^fbZ~ahksT8rowM-B2!q+MFg9sw{*hONsa^M^n1qmBTc5eKEqi>g z9tGi@2KO91LaALab3y%G^QR+0T;N-+CAAuo7)2b9l3YRU%r4bnwff$giLJBH6W|2% z^$0Xs)?&U<^><8JIbivz(HG}0a;@!l8S`z3bE2(VdGe5x_qns=)2mijpJ;Huj#gxR z7ri7Jk#|FT#KBLgX2s}|d2lHTR0M=pZ?Frj74t7o&cIiDWcKc@R@_7?sW{lBprC8l zf`TrP)|PvmPv<>EDIfusC3R8Lyx!ik`p?9X< zj20SXK4>U6$~38<3%BUu6lDonr1(Os1)PH8QaSQy9?67x)oDWW`9jQ>LGE8fE~qScp-q0K+0Ey#?WXcvpLWcR(|KlR!&w7{bx z7NA7y7-B_&ImC{wQ!Kc0#S3Hn7;`lld&LpaF$syP)oSy_OtqO@QAU_q7)jb;O{M)w zXGjFCI^eB$^z?#mG@{NKp~tTyplc0to_g-$^tv6ZFJ+AFKjrSc%ll*eY_&^@mmEzA z$azkk_=i8a)8(gEtT_9m`-uGX@Oj-v9$)IdtXAymT9!O&^q7&Yas}$bNUnm6E<+#` zeTXm7=iO={M%_jbQz5_phied}$JbH2jv1@fiRa$d#pud8_iJj!-fk7i9vwOhE$CiT zEaIHuhE|=e2g>yAR+^axU177;j5(;z>bK^_MRT58Te9Sz2X=kl(0r|E&Gcz&3k%oG zcyOECVeLEH%FDOCv-WJu>PGGCvZp3ad}`U!GvnW)6-*0PSEAKOtg%?ZEJjyIpv%wS zZa4Y4!b01%YtujP3PvlJ$98u>J9wE5ZOKcRZui1|Jol8@br*zQrja?qhtju_1@Zlx#tIm#_{OsM& zy#oqofWqFO(7VP4y27ADEm&hsnAuoknMrNemLmAYw0q;g8l!LGML6@EA=trav$!Ca z-Qd^xk(C#|n|-Bm`Jr^5s6(1{#_}HW>LVNPy;lnt@1#sjDyhXP)Baf@t*jle=hsW} zT~!Y+aa?-+ujgLENjB0oN;j5?c7*|u2^I;H=@!d$iJ;sC2gSO)oRVLN?b|LavY>t8 z{1I7K9*Xp}Pgtf-G#Q>V`eanE9O6cX-Nhc0XlJ<=tN04E(2?xoKudDCs>Zi7x%^a* zV6^q5+H9;Pv!Fmu^rm@vhZm)+n09Hy{3Cq^oEyD-UfR6r)3#T9_WY!il|}t`4V*I5 zxoC3jwm~9$`nD2>?UW<8s&9vaf({+3=8xXAGbLefT!&uWI``e?@fmF_|;MzxuN_TCH%; zF4~jj+*2rTxp@lsA|%;JCyqN3-C=g464)UIV$u{9SwP+RmWpQ2aZ{66X8t`=4As5{|O_~h`9P$7v z;CmtVraNBb7dXTbZT)8=NCbVNtrPctrhTY=@QIu)M^T!9 z`*ZhIN&^CBS+nA9?F!hSkX~adF3#yC4k$vu7ojGQBN9Wd3dGXEgX*(Ab1F@WNJ@B}H#lqoj*Mn}iQNET3x*AXJU zMe$${rFlrWV$zdyD7Z)q3uM(uv>W>sPspByuk~d6A z08cD90&b%dJ3_(N^qhwxj`x^ybPKqxDK2;DKPkQIGN*G%NzeLGB{iM9-;xHvdNLUa?CZ!xowKDFi@F0VWqXMOMQ-l;-2KI;_0? z2#X9l^77`4Z#8emp1kAcPljUN*XrGyr07X#;I9zPa!8?1MMVZj*nLn*No(oOYh;07 zbUjM8trKMmbL8lYbzYAAPSvLD?%h{*t-G(d@7l>D*Y)mpSH*oxpPpFz^xcM64=Ikw zLlN=SXVx}8Im{7rEZU}=zhYVTuhY-`yTO7523|VmX9f0x9ax_&5msw>te;;@V4xK4 z593hZ#3vV+GYUL81zxpJkpPraBIc%g<^+R*P&OEV!U~y z$0+B^FHd{ka3#b3U`(fZE3{vBT&bMiE9~@5Xy83HFs! z*QU?ySvWs!&9uh&r2G5K>)U^RpFZ>Z^_$m6eygV|W8KtMwuA)RswwNz=jG?m%UCmI zRa_$ddu@iRXTN#9`Gw-*`NVq&lu9R^!lh1yVNz&lh#ArpjLwCG_=_;r<&U1}Q;HHT z$t=YWqyoB<*Ey_ooJf^p%R!CYUyONEoBXr(uIQk>`?B_D(NX*J_gdZCiXxwOE9)L! ztGR`;_ThE1Taw$%blO{15x>Ix6+`0& zrQ4jbJ$fquc`p6YrGohe= z)mtyjI#k}R_`cDunk?72+Uy=)=wCCnoDYK?d-BEd{%iT4d(#mpI z*5?gVk|*9{OP(|M?yVi-Hpg_#@0Q%7iz8`d{opAp9Z54PHXcZdKM>v_a#**N?%k79 zhAx_!Ro*8lxc$gpS(W_~gGWL3M4G{@tiXvE%ESyj6NC+IU(zJZ^){IWiEYXvtw(BV z&z`BNJ;dtnsj2z-sj1x!3-X-Kyxg1|WHs_%@}MWRd~NK5xo$-kNiVF~0rvJ?&5A1} zv>{#M&^7k2_0-N{dxD-IMuGfrOBf$i)vm9+dTqjUtBY24?V2?)ZRz@Z)@IJn&YU`B<>$w1#vT3V z`t@HtK6cFGUxd!NBCHP`6xLVg(o2UP(!RMeM>uZ2+4y>We9Ypg_9u4le>^H|S$K5Q zxF^2au=fyRUcON?YN_?`>bQ$J~g9svOe zve%cwqc7L@g>$r-S1){KD#*>#zjUDjQjIKQ%6#)Q#^ ziwp143df{(?>wfs-%3UV^j##1)-AZecRPvsrNA_Js^LW`fj zzrokX#~7fPC6iGWoLF%+D}qSV=h$HEObe4p)c*_;qc>}xh?vdVVeyz4w@Ld{L~qg# z${FI}O6`Dluu2??x>dx?u0f(l2L-#nkRs%FFn&FKf@iGSVQ=$0O1%3Mv3wu0(mgqg z2p=KS9(nR!NeO^v=qTk=bkg4^P?5rs^P#xRQbTG)TY=G2kFeiNc`qibL%|-qKDQhW z>u-os@@?`W_YgjZ_tg|$KYDe|%&O`k)zeq}h5#M9O;kj*($KhS!rXS+0x?0`FaB0p zT-N*M>%S#HGw+ZUWbGS6RU^J}hN8SOMXMnai1Mn&n?I`l#?Y;_63kFa6`V^!?4v#M z*@LBX;XVo}8psi#Z^aoo`46$Z*3h14nz(&%)%}wuZXYsa`}mO)YKD&3FcK4dc5sR7f|)VFy}Z(ryas0IZ1n#{<^C!L64bCL!Cf%C9o zBgnsCtsCO3QC`)i-O6Cyw@-1l$zgRWL*z!|+lUn*^9Qc(B6G+>tW=-s;&02z`>iAz zlTB`PKk-%h;P}2hy42)U=5HCjVpsOGialb3GGx(brQ<6)buZ|gIxV|k`Mh3p<_!R! zgp{fj%R7y4@ji^d5xE>uQK12g91@z#`ZS9-;V25H%Lf^ZY@gin==4mvs+> z9yadSnbMW{z1I~^8e2E5e(u!aWj(u3%PY&@Xnbqwq(Rfdd_ranTDUbj?p}M!KzzgP z!it{VdUi~hOkZ;F-w}G@<9}O(9(z3|vSssROL*z1QHhQ51IyYOZJ{xhBL~H_ORAfj zMmQcv%n^PMEPPubmP9{QiHy`8vrvzbPgWQHBQv$tKTG!PVz+V9M(>X`+eR!X9W+0Q zHZLw;u3t2NHBMIFJhdyYJS96Vva~u=J8SIb9cQOCc5RgN#V%#I(S$gRB;#Hb$sbWUWb9(52cNYDo0W4Gj2Gi7wbAWw6-l>ZV`1o zN;rkmhJT3vzzU=6-Y`d)a8jTfj1^(Zm?O;(EdXn+S;SiFPWh%bPi#K4Y?(IxhOC&o zh0}f}PL_GtZS6n#kInbHo6gNaD$mtr=S0EzPIZ}4+mZ1esMe80R?KP<%Cu?Us2urI>5_NE4;Mqk6)=R>nTs{LmPoC?b^U4c#d| z`m%hmt$+6}HQALtw^py*nKQLwH|56YRJY4^riEHly=4EEhS~tGr-Skm!(~w38Q*hP zBo!3KWp?Y9ot>VamzR~MC~5w#dG?5iYQz$QjT@%PsE)7^tTeni4Mah*Tl9tXH_h4zi;g^?O ze6QQA(q6rzT9Yef#Ft$Y^Lh*&-hFIsb^?+sUpcHNS5|dR7G1~*E$!W#&%_~z(6ru| zgxxh9GnIN{<7*nuMzq6Lw3PZiwn`Ix)7V}`hk^QOdIBx<&D_jZ_ivHSmm z0e7GN9T?)A-d3Fy!JM;&>5VbxT0R0D2bd!06QZbPBV#gCGMs0;pN7g`)CQ(rntVG< z%PWAvNqe-$ctlCd+}mL=^Cfw>i73+Bs?*+KiUQi{je#QQ{yb#%Q8r~DG%_+v{hj}S)COjs}c?oC0J6p0jWeZTu88_@R+>fBP3TgX^;G@E#A3P9R7=_ z(vF`-!d3gbajO7QEdNExmhzG(<$I55wkNeL?C`cj)}=m9hKVMUOq_Ry~^y+Cp5iAi{hSL1fQ`ZdLJW>0o>F!JYo9}TXQ@Y=xKMqiq*%K(^5AwlzSv>Y+ z-jbGF$m0=(94)VW+zwMOM>93Nl9e8S&!-Je>P^O9>L^5g#X`)*0rER|OUzcBmZc zqVB8zcJS!6YnMd~?lNt+dDXF@k3Dx%@f&+&d5Lzx(DdtPT0pm@Q`W5l8Jx57267U5 zNMVJ3XY`wO8k>-}Ik4u&8HZ zY+BFEv~#GPP#d&1veMdmkTIycVO( zIYCAnc-luFW$7}sx%qTD@4D%Hza6Gt%>EsicrPAk>x~SPb2}cxmmV0SsKjx7^XYDP zKz!(hkm|mXFuU`!bda{xY-??4Af48i0-jRj4v6PB43ko`ajajVo*5s&USB3G;9|*H z808xr99d*c?1UX~eBq~2>Kf_iO3%+{+*lDQ?uhk~O%pvN0{`)jJeIbnb=$;mDD>Ah zCn`4w8Av7@G_?B9HGiyg=cxy`*FH34@S&Mw4=m}JId}K0ng>VE`rwi07EG$#+pnePE4P3`)Gwr%T~ZM8!NuP7BCF4$lezc}lV5A)%U`A( zlEt;@jx8N>hKwFE#(h>#qw2l7Mz-wRS$%Ig&0*ZPMOjPWRbTK3Yc!1<)nf-RnMa+D zkkT6cCXZH9o3XeZrk-wCz<3eqU9(cmKZ?`<1k@$9>KH(-@?-J zIbgaHEjo-;r(xX(HSGd)AhZP?G6USHL)dR~w2C*ttm^TjK=eKGKr@%NS8{m+B< zf4+R-Up5b@ua5DJUpiRRD&Ff*o$j8#uBg|Vy8ZVjl*~ih13IpsH*eHu+Lwo4)NVE| z`e^Uo4;Dr_la)Eom+f4zG&(QRy?x;B*)_X{{_(|bQ>!vC#+^X2Tcsq`F1=^j}B8Q?Pi#)J77pw z2nMneMx)a)R|lcdQ4qWO39+l=C{dIw6gfgtI2=I=RbUSU|9ei0arjvGiu6#jUZxOM z6cUCq(|h+$_xzPt;W*jcp1q2@bSduDQ+~l)LK`z%o>OP3YY_vm!;{M?jEYH03J;Hu z4+{-8xss!!&Dg={*wNRAGYHzO>$lc;eT65r&pR$T!4fG8mKX#MJd3)ab*0Z$XWjF~ z{<0Na1}_>_*jI#pTec>zV)5|&;^u1rK5iSDjSQ4YVPV>kxFK0cNs&7=wMc91w)s^{ zO5a#5f<=c!$E>PF172NTa(9M2JfhuOe<-d`a~}(jnD`W=g7^M;#4$T~RfoljnG}mO z0Pl$34pYzZ8uRJ6J78$U84pJM(r@G8nNKhn&14$Q&Ndy5KCgLCo9P+N^wbNi?Vu-- z<6ZiEV|4hn1I3Gzy7m=73Ujd5qq3(SqwHglHom?pI1fud(T5qIGEr4>)P1icEbc5aJD z%chfbIv)6wgOs_vHjLJ?RjW$)K?Bvxh!&%dOP~j?vGoOi50X2g}Pz^fA6W<+>8-hpQXV3;0JAs7EP zJ%(>v@l=Ra|0g}AqJr_n-$u{LHuRL@z9ph3whcY!$){ufK+HjNsp!Ob!r+Cs;g4aL zF%4b1EgFt(xbMDD5hbkTS*Dez+vlas-gM^7rkm-UBiwX0?v<-=zxcuxq8@xueq}jN zVLp^eUoam6+xY)%Tdo)^6UgB1evg>s_9Xnnw0-B5=m zBqS~_DKk1cTrns4xzfTpr!n;^=ZfeqAnbX*f#hoeP{_&3KSmB#fd2xe$I$ zN|jZJyS+0($3wbE$5Sp2F`lH`@fb)32#-mWBPzz22HlB?q(H}1A?x03${m}I2zI@Xv>I>Ng{j%1<=W2Ioe2HOD?a9~{vmR+N%R!D#Q57v$C=Ws{PipnO1u zm@oEdlZ`+!WmU=Y6W+}5y?c$JXSQs0PC#;a%Ft6A+@s~St5=VHa+&)V_4O@hz~vUK zWAZVMTIn&k%9b(UA^4*TA+~$Qs0G?tUQf2B#}}wl8j=Ih2*LSYIpM*R;Jf}MYYdBIvz5SJnOAiNK%DXPJmv^aPk}mYYtkISO?X80<63tWIr6BlK)q3&%cru) zQyGa}Pdd?$yKe$Sh{0s>L0YQGli0~&x&gBH%rJHgC}&itU9@U(;cM-|O>e#_3!r`rH!1ea5U;BfZeH=8J7D50S)L z;Ip)@`QU;4s`qVSl(S*@04A8`dh2Ks{a#F1fhv%Gx`eojcaI{wAPILxpk>%Ev)x-U zYjNm{PfQ0O6E#G}jlHS~IUu-n(B~t?m^mV`EKFv z+BjVi?z?v0ivdLjZp*i5DI1muohuAxjJ_tq2;OjB?``-@A%`XnI&*np` z_!1qFFyn|G$p%>t^b7Y_tTAD-%j)AfQID_zZ|b)0%UTlMN`?}-n}wgpA08RgN@-5lL3 z=GVK{_PD%1&d*T?-F>pUsIm1_j8e6tVHC9WRs9ggkW=?HZ^0=UnjN%~Uu12YMdJB1VuRbuNrdwA({` zT}Y=<{BSPZh;yb%NQR+qa+FceZ=^Cfk4Ql423(kp99O=KB_X2CT^=DxNs1+VT4yE2 z{iK}gen+ls{(Gmo?2ol~w`>tfU)3L<+hyX_eO+fJr%W?k_4Ctj!Z_(;eqIdz_+wG| z?8$-K-)=mGn>{SSYWEN<<%%@D#!%m$LE5#j# zOfeG;^?>~-FU_|{MfIdM>|N-&runjg?=7Tg7biR>>IeS}^EO|b<&HKywr|GaVS^u@ zci*3T6}+)#`zOm6fA-*tYduruZFcwBdtbrIsZ&?v7p#;YTe!tvwu;<2>iESU?s7eI zmP4SkXU>?@C`8j)_v$&*`%ZK|eD%WWrZJ<>tZY0x+IP>+>h)#1c2U1!?UF+h0L^iR zr6eAQ^}Sjgvs~%MV>{FX6UkCSM+&?!&@L)Y{6k8BhqcHl)*>sl?sQTG^>~+cJ#_7z z?Lu?B$?djl({3Z$9l>@lwQCfmV7mEqc$-%F#6MG?>!EB8W68sze=lWxl7*=s_FvRz z;W&#I<~BU!MKhkBci3mXDwY4kU_9{d9j zZf_O7GPj!XKU&p!klLozNN^r^2>?3?qBXV`;ZD%H(NVs(dG-bMz@_qgCwy|`MJw(+<0GeT*`iJQt%E+`jJ`idd#YWSGnKd+ zleBJVo4q%V_HkTxgbpJe2WQNuBils#7!PZ29Z#94V?5z^;34g;<0-?f$%H5Bc08=T zbv)%_G~+eQWxM^f}iChZmJxCTNt zXs<{Xk=XQQ6Q;`$VOzv=PRCXyIslvhnYd0mY5Ho=#BsGI z!~;6e4rGTo83!9f5)u@%xjiSbvL2=Vrr(JH2&}ia-+H0En3ZbFvcU15F|%-d#=3%` z9mULL|8)_@``vTc*PmV2Yw6VZu->yK7{~s`)fkY9gNRsEs}(v|IFbRo3iT0~7&SbP zu(^VHRD$c!e;M?)AC&qXHV`n_Uci?sH1t|Q4TTn4tTIS07SCUFGv;${2L5m%}Y&+b>(AuE2cVewSg z&GG8tdmkx@4BG2w0eT7Fil~MgUPYFIqcAw$X7h^;48$G9QPv=jP1+_brCTJPbbIpR z$@HVG3r|WWoj9abUg_RpqRLP`@lh0u2el>c(pyw(T9$6 zE!)$af7kws0H4FY<`MIirtt;$YR}D=JipcL%5CIoxG**~@ znjS;$ZVL7di==WXyD-X_m}rfSr7JcJ=HBJy1N!yrkdxlSbJxb->DoTd@+m-C!Y%U( zQIh}r(ha4}4cN&PHS}hr3LKR4q#FN!+{^JsR$=$N%!0yIns;O;g5KlzRX-MA? z(>p)>|KrXMbyCmloc#Qp?4ETw6Z%Z6UodU*0+H+=RaV|ED7tU|IK&h*a`Kp16rNJ2FFZ^-yiZkjO zdvbjB3U+uAl+g3L6QimpCEc5g+qGS}Ym+97YHy71Ja>9>guNy&Z$d&u%Jey%{|j^b zLVsT=P{kR5|3}$(07P|cfA8F~4Om!~U3y)rbdVxNnu;Jziim(+R0Inu_JUn8_TGDs zT~my)#l#XdG1cTHdFe07GrcN%{eCld7ct3u|M#gY3*4PM_sp4d&Ybc)v(a1=VN8I! z$bb^qjo|Hscm$Z??w|#bINN*n8yvJKabi4f&>B3n+C#V(HF{Ktd*G1dM3GEzx2d@sVedJik7@BbCbImj48C*w-m*asX%V9 z!#x#NcpBWZjOC@uF78*NyLXR{%gGVHYlmsz7_yBII`7C8NY2WO_B51ht9XF4k+=I3 z)eecnX3ZKlc)|Q3ahcgMG1;lYz2*^h%@c=>oYasGUIb63(;2~Yb{tU?pnjj`wHKZB z5GZWi%D=eYk$C!TOoU%&XYa1EYrU>Vua3_18b9C6u`)-z&lihdp^^>tt0o5rQ9s+= zUF)bP7`ztZiWXo-(-1TT|7EnJFz*!b7w2kKsWK?NcT8kiLC=8jMBNyNX@eqq7vu#- zBS!QHqs0yN;6utS zba5f?7z>))-|@xz?6Pw6IG^s>#?98Z-LhO!ci`0tcw<_fAc|KZ)pD*JJQOQ~-*COyE zW!WSgRr2uSgeuNJQqXG^^ja#l#Lw7o!vFdk^v$K8i9r9ACq9FWqhS07K7|2K{2XI_ z!ak8k5Hsm;mtS$TsYFU*FqsHb0C%_i_Gklc{yI($r=cCtV#qYCmCE7`BBhQ_$YxK(QuGWR3dS&k=GtBA+M2} z(oatQo*IpZucP$6`0RsAQ>KaO5B}iYV(W(l2M-w@)%J;XhAfVzr13b+m|0$I#$b8* z2`K6%o&aVMBpCDf0R51MMIA_I#dDm-A41FWzqBWQDKY{|HdVfFv#(xDw z0c5`Z(4fLnTz6shw^+WZY0KtXJfz? z7pQ;KnZ~VnJ3D|8pcgx)=imTvLpB~25eO#H_9axVjZXlEGfdF{Xd{BQ8S(zceDb*z z!oO~j{QFjT;uP+hzowAW@8c>tm%S%A&ho3}X^uaEySw3T)Qg~`UIctkR|E)l_?~8& z@YGkKbcb#127fKhEpZAU#NE}6Z!&AO{tot(znFBD|ED}=5@2b8?P)SzOV<0sU zQGlh1^CdElQLCl)c7=;c&Tx%m20f!4(9xjAvCpA@WDrFYr7CsH>6LC>F~!Sgeq5Gz zt=|i)FRwli4wL*QUR}{!>Q2s;uDUV~HPikry9)TCwv&ZBW|2>D?>xwx2iT3Y-qlgz z!Z-POdHMRHTaMPccF;xg**43X^5zO*0n{%WN+->MRbe@4{XEhmdH;>KhG(yuY&l4p zt5=opBvEg^O`>;{udF4_mIG5)XOFledNu!J^P(>=mmWEpb>YGKmr3A`?a~LYY*SH%SH4=X@Wa|H!i2z1*#P-F0|Zx+vQG4b*4gE;71;;Y z{z-O4i+sgr^oqz1(Oz21SIw@ND_;TE1H397VhH<~l&5!*rF#jbDC!f6C5y2erRx zm!rE=T%c2sMjH}kDjV+V=uB zl&`NF+Ivka+B;T0J!kbXH?{Gl=aya_9voo#NSUzvwIO>_TBo%g4365^S~sWbzLirZ zPr-61RG4=-BA2cTbRN-bm9B_^Dk;DiOD3k85`;94ULLw0hb7 z$)JPf)ikomlMF~91DMkpGdLA%V4?k~;<@`9>X+o?&gnb;+3wlrX8ro*%KE{LO)pKK z@N6m2YzI!8zH247baQBFT6$q%XTQV#VP{&WPW9A!&KNwXB`Yjwvu~$@ygt1!zecH< zKZA%SMRc_{y1RRL1l#kT3cyQ8chEuIk<5TDJd~Lj78Jxjwgu!GlDk;pJ|#1MrX=pV zIV~t)$gp{5Yx^H~e}+@lgkEfK|QM>ft)E9|=~Cu&H4vv*Xmvs=Tn3syb& z`0df0z;ACoCVlS8ixS5wL{`2osNlqN^Lk~WkQ9h(eV6!6QN83~WpJwUns z$+#VNXEw4b#!nfy5TQCNN?Q5JWe!Vr5tJ|cl=aIWJ`5_tdf;6~INqmW~^qKUb@Id-O`U#nk^ytgvA$Ak>dO-x* zJmh#t8GXvi6hPM@jYY+g{eAtKQu?n1l2zM-+8QVACP$a_bqjb6q&)m*G@}3-^AD;q zAN_&7GZxPnsqo3vb9xdgH~{vgNpyf%kzH%ny)%S_Sb=kB!YB^jfC#3AiLw+74q@0* zP+;&Z-HQ(@s|ZLkI!DL5H7x8GMk<^GL){(C_Kuy97+%uFw9?+w1AL=T@O~h~tr*Z( zE$$IjV&1x@w%oWb?kawR%1#wrl14V0i;HqSGFJDnyhyb@U3b)gWA2lfwnqj4>td~^ zGDf9T08P+__{6X#ZGcbcj1|v%WN~-Ca11eP)PUx?R(#>$4d6PphBh?@PC@65{A=$? zi>1Q{KqQ#YdeQQIKxp&k1?3-V*`sBVt(+*UWZWsX=*5as_ z%qanW!|E11Gk_c(x^aYuopWwuVfEAkS6<||uMO%ozHmgtnu10BhK+zTq+4}rg;_2KGZ>C)fDV~~>z23+>IRQ?MB86EI)u0C{24+eBuqp()bCpq}*3N*(%h3khn~z-DK~wXbJapTLpi(Du1_SV7D%i z%p0*{4J-pN0C#gVIjfo+;9T|a@bm_HO~vLE zdr^6F(np(?zc*Dft$ZqZb@7Hp^SRLH9x3L=bP8QjCfyVKp8IX)Jn8*QSEUQFaW`(= z!VyuHXU||R!3vj5t%tLZPB2;l^uUx%T>M2hJYFmqw9bj#obp{6>1nfb4zBOIW_IJ8 z<&GGZ{yj;80q*Wcrj2=25*efd3;G8@0aPvFF zZYHQgR|LF=s&hZ;J@a<-@v&Dnnc9U4>k%cpm#Lf&gk2BFSfs>LwZtSX^noz8`HMrF zzL>F+IG*D;>8IkMZLel5YS_6dsAuP{uUsTQuK9Y=te;Q3YMHpB`27jvjtsuBqwnSg zDd>y|4)}&Yg8Lik-Ca0?0oe~q^qXXgl4ZnYQUA7Vxor>#=*KXbr;CI91?I`_WSoqBvuG+Hy$n*dFzV(ZlWt;a7k*-L0DfJ{5u^ASf zH#8HlAWV);YFF0)7l8C3L~qYD05j(3e^^%duUL&4tRE`2XuT*!6=h~O4aQrKCM0Kl zVNJhH1I})qb8hISM~V#>xBR$xGWTOfdHwGGod*du!|UE(zT`-S9anMg@`9iCT$ZGT zS}BOUZ#VUq%Lj=mbjTFTLCuI47EC@2e+7B;FK~XNPzi1e$aHpaadB6B0r=X}vB?kK z3~I!}y&Vp;7R-`)0!^+46z3bPGF2ve2oC@}-YRty6EF6x&hnW{5?+@|uDHf@jdYJP zd1gmfPAK$SChd8Lyt~i4dz?#{!81pwOdgE_O@Pc1$u+fCpeSt7*k?`aOJ-Rb`BL(9 zaj{ahU2RWS3bcGq=?qUGa$(eJH(+u)HUasX0J@l2PC!9r8aO-B_~;MA>zca1do0v7c?(7Yy4MEn0va~BO&ZsX8MGYIpv|}JC$ej9MU;G zODGy}`uT=k51txYTRXJ%kG&1gpBlJK`fca=8#$AUNuqS4Vp7-YW7BsKyJhf0eM3(u zw5~xup`c#sJfy4r>0l4}h$6?}*iK+qu``OI-j`kz>2E!vuzGqXpXq6c<>cT* zhChVkEdNJLUmtURL{vrcxOvjjo6=tXYblMi-2M2rL1%x=-XWlW-}z0WEMc_afi(B> zGf&;PiKk(nIU3KPnFuU$xr@a`9Bh$7%o83M;YXad&D1UvaiCKmiNe9#1P`R!)`vwr~J8ie@Y&bvd##f@)=Y@;U?#^CxVc3;f3u_x9F=wot zssVF0KssY5qtk^qrc6CzE{}a!urI(q*w55C#@h3AoUH!wM3H@6b$i~czmAq3NMA{t z;hzjyaO`Ns{u%Xh2OsN1XiJ}`ANUPOz?<39NF*vBo?U%+p1VsT~r!qrtFfcQF_J5oNcz$J;N zml;IqAJWbkFY%)+gRkHHd89@9=leIF-BY}8?orzOsdxR0({F!nC9%xkk3H$u@8L;T zDp}?b2OOhG;zZ2C5wq~fv}b)_P^>Sgl<1Uti{|vO2h75=(I-Ted7=lGB>F40*sj9) zXRo&TUme?H#?WpK#3G%rORXN$mD@_6+42%uEKTClrjuw2@^R$UWR#n|E`2%Hx-O5s z=b$h0P?g_c7J6u4gF?eQ+GBzU@axr0=qp6m0SMnvEV5?+$`{kY|4_M@5itXE=iLuD zpDUdAhn9D_j4v#2Ua`FK1@|NOk|oXhO1C(0pIbcX3-`l$9{yWvpHhMM^z`tsGl%m{ z2D=VINj}fFqtOV|fz%FvD0^e9&}Fs;szTk53w?^~` zt=$7wRKOG#$AKzFtc*^jb~XqKdlxlKG)53=`ok73gMkLo84nC2nBq9nqe0Wl=Xo?F zQS)|Ry&#B6qHg;M4*a&aV<(L5YZ9J@KRzIF>i8@JM|Pgwb1u5|KXx1pXn z7Jm^Hn28pg>cFYAyg(~7{?dqrvIkukQSqZ?E?Rhv{@k*T`@-S@5x~{~BSBIMKVT$p z>?Awh3rWS)KTWri?1HCV%@6^U-F0%lMxs?r3O~Fm<>-9<1Drfc7BmLtdNRQnuD6F^ zbm2RT;;8SweXA5Aj>*8Pwf!=0pq?UPyUg`}i8r)IXYl(cVg&N_biacM8*N(RvHxGb zo}tDlA@L~L-MHO5fvpupOPF_35U@e$Qhr>=9J zThXOHJbXy!{1LtUE$@ForfXb`Dz(blpeBXLl>T(-#X)+9O9q$dK?Oo$o5d+A#^f9m z10*auA8SMa^M`4O@Bi$3r}FGI%n$KR^asXLB7z~W=BwE8R7(xRT3Q8~UVQE9!{?|x zJ8HRZ6KD^9ryRNwr}}#she>d~4o!MQ1?_%hUC?&jfmLN@a(fFTWa7IcPILK|4<}9v596MfxlXm(HcLAds<+g%*Dj?Zog`)nxhpFrd{wRf zBlZ>-e~asUTb8+0?$S}DN$M^b1$EY$4m$dYcu78iDh>vXH* zV`EG_ItR)r#0ZRPmENv+aG-_#S$fO4mNxbNSbCG;(jG4K?)4uUB}w}Cr+1GWEZaTx z8CX_OlNYAk_{u83As3;gmEMd7MnvoJ1V*f|D@3BnURD%fD4V9h(pe3O4tK({ymagO zD?cDG7GejO|QD*gM>w?|G??w|Zt`%T()eikI}c1T`k3;K9_t6XX8M-@$e zVOxX6K#^m>+CIx5sD`)rn8xj*Zfs@k(dr@zqB zowww0=TtqXq8DULz@bjjBVUq!+Vi!v@4TfF}{4h*JRfII2@86P#=&lgbPqq=Q;5s32_E>5q!I8E9b2{z5~+ z9Rm@b&~t1RFORSgAHeYo8Ir3 zMcUqL*StOF@`i>CJhQ5T#!9JAwSxI`JivqS<_o-^pUGrTQ2|`-sTZ}KnAFkKuKks) zGpNZ#i|^@~DN%j{drXLF9x`fm?aMnPck2P8p(E$x)MyY=5y$ zI@h8hc~Kb*KA>42vaLq@ zA;2S+=}fdv4k`e`>K$p!h}SRzf`W1khZehG4lvWKCY#uX9P`iqDMg->qW(!fld|6> zr_Yfy@a=w0TdP@KXRl<=WciA7r7zsC2l((He1Xw)wN!wj^7mJ`!RH}EuULh~laaJ` zpTpxbZ^r-{HU*V0}#XVX_EuFMt|MV%9>wD)^ zy(|pQZW%D7*+b);+0eUYU8Ua7bUdK5xg;yCD0p*T-(LAa0ULuuF;B`_Yd{y4W#_1L zQo~cLMYzK%*eEwKOHDS^XfO?wY2ZbH4sCv>sSOO7e9ph3|wh*4T>#ey?=MypV?@lmVk+3 zXMZ3?li&U&x!s_?_4{aW0Q%$IR~SqC=m$ZEu}sWLgUiv8_EVABl3EAUO5+eSYPVpz zayZ8dx|`BPm$d3RHU23^#{ffE_b$PSGTiTDbqi0djUkrdV zz`}An6Gp|iE#)W1k4m@HfvtD({VC5<>NVkBESCh0EVKe;SFLq%tn!`NJMxYp6S;(I z*DN(C__K$ej@%C;(`*tPnwmJJbx^w8@?b*08lrzb~Bg+lh;ZeqYq`$LZ$Hg@v1&UufP`a7^hUZ(r|azb;I{W1h98-D{5EDxbsIX3V8#d-(zSwo zv)I;3BVZHZSF_pUd)TbgEJ|6cJ3_F$*w%1^Ghg2#%_g(4<{(8I!Y4$r3M1!XBxaqW zN29%?qgG?UfL2o4JR7#a921yUJC#%qA2f7t`St6Sr=}jh05)hESe+6}J_IX#l#p|L z8-eM|_)58n%@uYun&5(eMUi#-vRSBE?Gr__I`pliIu4FPE}H~yyf(P@l^v3cw1>|IoVsuG5|CNS z%3V5Q#D;S4on^Oluxwy8l4_WK75Ct7_Tab<_9{Xq4orT~bNpj_wf&w}N0J%(B3^&^ z22rlQSljQ?=0}R}$1j~T^(Vd#jkj!f+*CTKCQpKRLOUJkL%IX0_M~^jD(E2>vALbC zo7=j#+iwK6AvP6GCX%={R|eI-v_;a~;QZ%Ll|CeaW1r%d%TER}KEjO-V2cuvO;}q}RrY8+UFAFm3V-8Tb3`OOF&Z3UwG6UPZXO340ips!pR3 z%;?;QNEBAl(;AF=!cv7~4z?MpauC=WlVU+BY8EPsn&02hdUv{=^wah0#L;Q`YfDzW zH>K@S%JiW_rl+J%8!}{iDi?M}dbDuDCwr;%lTz2;9lKCEJ@@Q@{%7aSIbBn8n$q6` z%l?j)zpQ>d9WiPU6p*{>$m>mQ)A2M_kfuUY`DNx2R{|FYD1pkKoZZyp!&Btj>kodP zH~ClT>j@*sb$vlg{~ZUh-%gU!>S{80kj)lh2t}|(2oQ>Xp+5Q!C~R0MCmMN%#EYgm zIBs5EMsIKA{pdp66;G56GyAk%0<`;NJJt?cktU2!qCjAa@NrSSJiU_ql6y^@*t9V9 z=H|`U$t=MQa6R?HOr4e@;e{r-PJq{CIMawkK4st`}eQ7c2) z0M7A64lTUqQ0&eQzRD(dz)l9(q?1irK<;&rPk*sJU`xraQU3LBR$u5}eRZ2uB|U^K z($X)mi%}Qg9M&Tx3f0vGufN%}bnatW!XKul$!9Q4HVLY3%Rh!`@>rTN*`hp)86sjq zedGk^9R~+T7le&m?d%+x0HvM?Dr8`GGn>1^EWzbeOt;TX@ch?0h_x%*rE)3k)mO=T zWZOIMj&E(jbTWFhQejHIl3ej!I=Rw53s4)y&J?!7H027Ix^O2DO01vGO{gtUsh-CsAe;%iq`;z(m|Jyjt!2PE*jO|b(D33#{`%>7w>d8=yV}Cj$UY?K~S!C6Q zOlrw9s#m;=k?c=rc9w^dufmTy)*AxF@GhH^<6r6x>9fJQgRIC=Y+!S0uQ&v4OUYgS zC^rqd7=4&&5eiP=2=tZmHRSHWgOvKXLiKl7sN^d^XX_OZ8pzuLI(M6t!uNV~8Dr9} zLxfX`sDog=OrhuKU%pq{3BH)Vq?B2$GwEGC`AY=3xHymK&Je|HFoz->jh-=^5cqMB zo2d%1cTUdsU+og+Z^vIUQRWynXxfQ|2s~k%-x6Nxzd8#eD%xtq6ITWStB3pU}BzgxL(8!-IC} zDudJ2jQsVapX~g@Tvq$%Bs=TGv$@Ak7Uu8UmuI3<3eUlP%05f&3$5PCNr@2QLO{ z6Lt?1y$7+k*Nd~YCfhw^*&;tW?qQ<=_XdW~_Fv-?7NEVL)8p+*M;}jDq}-eG_wCIu zJb5gaz3D&~^hKg{(OT&;8@hWfbS3ozWA_sZ_n=17U^HqKtr9H=ebK}Ok&owt__fmB z*f(ONXGzbPH)2UO|E_nN9si5>v)*KE(Gfg@ zaT$0!^9;#P6=byC!FC(`09I$Uv^VC>Xuw$a2@9kDN52_Ee-=g_dY$o-=8&2Af-XO5 zuQT3crZmSJKl~jt*hv1xjpVK7Q2@C)iWqyd2I^#aXWSHUZGUy}m=C9Mqd#P8!-U*(8Q z*UZj6QXHB>y`lmfnmp{Cl?qQZIAi?~XbXxsGz7D?i9*6}dzmA0d}SO*nA$-&;~M_c z@BYKj$;vG|H}6`vef{>l?%nfx<@Mwn+ul0JhcDi=YxB((u=SAHJ1Xw%M( zyXX({yLHR&m6s>p{O-N?e){RX_r7~-+qUgHc5L6eeKN`&&RSmm{@%Txe!6$>`{i4= zZQFsrTbKXkC!ljVe}DrwLn3HTp)wDf;TE<5Z4h63RXU5>4$F_=Yh1-68pz~^?u<&o zv1-XUCOO~|^2dwZCfcjg8Hpnrd=R7REI-m0?t$)4TpCZiKjCbRPG>0O1`naD2iEj2 z4W76TO`Y&r^d;d^Y@fvkA+f;M*3TLVYA`+^wbsrf{9BLPjZiHE9^mIQyeWaLxj^pY zD}lySaQHa}vOCQ=H{tm*Xx0**nVa9XYafpq4N5}XeJoeNy(Qd--Qb?7r44~~f&xKx z2xH0%V09c@cX zUM9}JC(nLsYx+yXt-Q;blRLT7-+r6c)m-f1Js_iGLdND@+2YwxUK?<5PQC>JwWlp_ z&EK$i{y*PeBh?oa>ohAJOzACkD{S4$~sZ~jM)0N{5bw^7J(^eGbO&gG< zCm%@$4uEQ>r5fYV?G42nGt$=$+Y;M?e`#{Wd*;CYGp7&K&zMnP zKW!Q*-hX_?=AI_~ct^wJ(PPHD=qDJA*u(uF-RBRnh*YEk*#}MzetMU1r8>l2Y(nTu zp?08;f(&A-Lz1T2!g!(Q>x2ZbIC_&N(P|Am5i1Hpx}?Fnr@`%0dJb045_>LftXbP9 za!_pN0TJ0tMzyRTdS*(&-qf_*_{me|3~p-LRgu4A&YO;24hwWXj^y6Jr;2y3ocH#Q zMCs?ciGseWdQh1(GW`xHe-vj_?h3b1^#b3XO(_=^zIHqKe7V zj(ySbv^bxI>uj)GaHGPxN4yNcj+M!0KjK`Ly5CbJhnMv!F78v=y98nA`uNtR3B2ord|`9qie*V{-vi9axpeEe17~_~9(U;M zjPYZ~jvhUBEbSEK$9*oM{}5!N7v+CXS68HY@NOzJEmauZM2>S~=1z1xn1=0F;F4R< zR0ab}Zh#w@$6rhr=Mt8@O9y?XP+bb+Yuj<}}gc*|F>b3S*u&jA5>n~SqVlkKKK zUi581g|k%2jTkx7g344X3LwnZ-jvydIQzNa+Ca{*MM#Qsn<1F-1kuqwmnai*i!{G86NF^Oc_I z7uG4cTfSJ*HP+1Yu?|fxMx$PjB!4@>tSxG;uMPK%g(4C+gOiKln=4UZL*g4_YFMv#12#pP)3Y;lGG<|{k0ImlrYN!N6IjjMRyzEGW(=dR2mdrRXG(58ZnpfvN zwYytj!Sv%3$`^&f7)hH@p1v|AWZ=lqzOzb0dsi3C9GKc~0RM@&QwhS=`$WAIF$O zxOqYp?}xqjgdYZ-8)%~jI@6#>KMJ>%hoG@>=7+0`;{mvAfVqKcC4CpF`??dTIRiZ< z-IxA-nuL5oq-~bNI-cKX87&_D15R*WF@ZcK#s~)Z;e!=%3e=LPtSc#8E_rS_tsJ;p*@N~}(NXqql4sLh5eOmqaVWMHqt^#|z{aUAlK{*fZ zUp@*>8A9d=kwTy{L_s;_6;4IJ0#g}lrPv`vh-%nX@LLdA1O|iXqJU=Mw950;N2I_YpTxoP?LoMj_W5?C=_O6HtIb>>G~e%~T} z+4X&Vp)+~(2;Dz^fgjHo_f&D#hG>|$9H4@^K z%-pk@rh^FOln@Qab)qihGIB*q4H>#+wa= zG*+aWo2{bl&XC;lctrG|U8oE2P+rl+WCSVw+{}#=B3wcn z#<5Cl1A6#gRRZxCRK$)}+SwsuMhHLIQN?=s+Eg2cGXn!b?f~i!W0)CD+|^n8&Fs zHW)H_YlRrNMrnyNRdi=g9O%{>owyh}aQMLJe4m~H%1bj}6V%J*EZ^!$6 zSFV}%A*k+*68-Hbhg$m%Q#~)csM@=}Gx;FvEV<@dwxMW0AZk)F%aJr%Et;i6m*vSe zPBm57#Z+~3uy9gRa(gIWe{A-pjV)+51|=uiK!kl$;7;aJQ_zhWg$k3RTxwBW62ArS z+rcKLUN>K4ZiOI6A{tMS1T={Z_`!3LNihJJ5|b4z=&})#iS808)AsVRH>kRFNl5Vb z2ec7$TYx~euS_MN?`u#3Jx(C<3^xF9<*CC2$0Me@=`o2$aquG6_w;ML^?d^UIbPy_ zIM*Vq-NC*@TW_oJX*L?I??`}+9dH*HWjTqyDBdP9jejV{ToiRz8ZCK5|L|i-l^=;t zc%~759$qF+Z82lUa2JWwB%*(CU=02!CH!Lhtc43_(U&wnyL)bCW^VUv^6`<;W1=D= zyEgW}Gc7wRuv2tuer!;1XVO2$&&kgvD0ape;YAWN=F+7x(rcIg04~qv#>UIi>-0uS zY0Q`h2T=RZ5yuCqjg4dkvefV!W<)jvc zoZsDL%GjvVZnKgyx+Zih$nor*mRweroYq_E($=S~l0Wz`I<9Ny=<>lii#K>ic%BT1 zN{LR%O-LVCk}BQrnUT@6Af3jX7*hOHigU;x$F>75>m$TK;q}xb%fJ?Gv&JhBFHz!m zoWg*b5)PHxso=|~Orx)tm!Db8$x(MUp!;?G1ZyXXF$Tq0#OE$Si@!W_Br)KwdUNM&=S&QFYH+F4Rkb}M1 z&pqBLDy*^VfJ%Ga;4u@ol>lQ#y46~=dqzdYpnIq6Q_4pv{Yy8#w`iA3vgc;$=WAoT z44v7n^RR0Fs6c1U0+VlDX;j_l)QV}diEzaw(ZDxfo!oa>`OeaUUQ>EH%|rcfgFDib(53ab~-#D zXQREplTT8RTVYjI;2p{LpWOFFd$!JvjLY)ZXt(lWK-bXa&s-m5`GAY&7gDNw!!P(6 zBAT8+E{x1{4Gqa2uP zN2!a|o<-eUJcw@Pw_xRK4}Bxu`<o+ureh(svt${%!C1#QKaMHMr)* zh>DE*ac+Rt*pZXPzWxgotXg`Di1j+H{ag_35a z!4m{Nad0*2Jw)1R)xSfH1Pc=U841f3f*{@%Vu03IJIg!3i5@*T@oM>@wu4VUI#7yU zqF)|Fgd#4{^qS6X%FOUi50?$TwPV-K0q=ji^Y##ycl}C3!!=?$NPCEm9p+p-zNc}~ zwb(wdPdzDFo}#(ez;cLdl_bhl$h{D|3%|m?rsx_DF3vhPA;eDAS7>+6 z+8T{b6vj_`F}N-9hIK|;`^6kIMH~Hmc1l;%9i2XNY+t{Cwp*EtMvYpSk+HCG`zpC1 z+CqZXHE4#G*Uh0i>l+b=vnb6cKx z_NqhSloDgX{Q5j6%f?MVE+rwq@JHLqPMzzwcQg->WkS2LiPwbR;A23>4N-V``6!Xl z*`(2Gf!J>c40%k1x=^hLsc6PPG#k7FLMYXKY->RaW1iykI{TRNd4qO(0ib_AO{uvt zzWK=F8)?}d!f&QtiyC{{x1Czwr69Qc#8U2#rEvbdn=f+lQ*=dBi!h_M2f{gNrg9zP z1IA1Z(sB$Jt*DR)*fO&eJ|DzsZ7whB#D!9kW>)8Gr#KZBckk?*Vlw4~&73E`Q`pye z*gl82sE9z7a-vEzP~M}c&ZX$Ma&_+C^@f(Ks%Tv-tExiZSsAJ_9Pz>1f@a!%SJy&!!%B4bx6r^sEo zJm-+K2VuQ`jNeIG$V-HizO?)%MP4sH_sW$@ixFHC0x6az6tmnPeW;I*+32D16zz~( zBU+PxY}3x7nd>x4&zs>1BN7QJ*v%x4&|F9OS(P84v=<|;4eO`y@ssL-+w0`OJ5MrNh=qLA@_DkA8*@C(>jmry4QBYme+|) zAJodkAWG5+wzbjD%S-U}Rk%9wD1>cNsha|A_2#mt2s5GH^2enzQ1`X~p&Z3(FY^{B zeJI`Apph=3Ql^Jf{mI|AjeD(6L9YV?Mjo72;J_WQlq<8Qo)|ymcuk+PE=NexUCRK( zmbWbX*ZykKIs9;7LfXWGqmNI%uqc-me1or$D=A(_u3QMBBQ7RK-&eXyizXO}KXbGi;* zkf-GomPg9`B}4lz%S?O9rSap#@Fo>WDF6N{mv$F;{E=Z`C`=&ENiChUrM;c$I(Mp;EPlcw+KLk$jPF(N1Qd{eD zPe~8&a3zgOS8s3o?xdubork+CP%C?Kn=EzoB|dx9)T6l2`^0(goLray$kGBQuV;B* zz&7o0f110llnXfie1D$ZpU3@aehZxd$Gt*cyLNu$snO5fAa`b{wH}@hU5HDvgRck8 z%O!705%eV#&Gqk@>$9vipb#QXt~qbTvl|qCikM7S553-A03Lv&y}ix=QbdQ~L~Uq%yS6u$^SWVshu&rMi=KSFYWZ-Z_7sjJ`NSrSbB1h$q_44nD}R z1>ruCeAw$#$s0VBM6S>EDlGPGo*mFD7jyFh@1Up-J_mmq`$G+emlqHxjeb6;jdXN0 z%A}K}fNf4jfIqn!%sk{Lh=%p!%?9j8k|6pMv9~m2+WP*1PrWwZJ7Z+^t(p<(-t*sF z>X}j1QX`Gxk68+68di&Bu&>=U0kb(>QywF?Qhs((8_l)=*Z3G=0MLnid}o%!M<_k_|O zXYxzqJf@tV>DRM)kn{qtvV0FeSW%s{&c0}Rh4eJZ$|*E+l9v2R0*bmx7f4yzj3ONw zS+`kw$Hsl%f_i3nN;5KjNkBl5+3W+2;^#+a>FMbWGJ2~)NR!FS#)Yz|kXKm#AB3e6 z_HW2aPYg0+ve~OfNJFQsuMJ%O>O!CFk^OF0*JpUme`B>*p-f@D zU5!lPfg{3sOCRnKA2YHaD15u9-q(UOI?E375vYt337JDtlE9uLCDZHib5QhAKTl8C zUzFN-h;}};iaXn5{Lhb|%#)rUGBMY8=J`o(iCBQ#ig+x*EaxzH>811MIdAD@tipFh zO;=&9LxH>s*@b2z*^^(mfWjQQ3ehEQsCS`ht+iN+e?Ug3NV!6#@*XlY(=)vT{rsZ! zPJpF%k4{h5hDXCYSz123vZyFm%gRDwInq2kVCVzFi)N5fBrofRgI1A!!m_VQ4&;Hy zZD%%W*4ezqa>N2_B%6IK64>EforDd-P|A@$(G-~AWZ%gpwjuJw`O6#6T`p zLV6A^oiQ$>Y>sl2BZCyC0w-8?QXUUS?->3(9>z^!Au^1M%cKy)(BG5S-^KBAaAt*~NRt|-n~ zxNu@S5I{nqF087|$KAg%F=k*UwY0sY5&S{143#penO>A`PWtR@&@CfFrdwIX?7qc4 zwagxfW7&!S8`Z4!KL3?!u*(0Yh^`~mJk1G?_F;yo!QqpZj~$THm^1X=(P6^_^J{ue zsgLbZY;dcIj+(Nxpm|A3uVZTmE$!9gsruGQEBDWs+gEv!#0N%Ollo!!;vb*|6%R1_yqv z;U9lKgFY`EYr8k)(=A&*nJTn2y}9P2hjdo-d@vf846WQ@btj%KE`l45o{qMo=i^yD zK6#otOi2aE+79Q<4PVTb6oXp2t1LTJJ?0Krw#tzkpvi4{@~pW)vYaZ~(Ac=4i0`yx zQ{B>@;5%xw^k-fjc#IXUsF7A8D_O~48=Skayej(qP|)#IEJD2)+TAIIFZ|UhT zEWf=;@=g98b}ECbyVK#wvI&F2bKP8HMfaqp>W6^;Xe-Wc7!(&=RN60wb6SsvyPQn|B@*%xrz=n?UE@to!Fr#_0KN3X z57OYf4?IJZO0}Qsiol$~LX}#*Ri!j{i*NfFwU6n=GlL=*bt5N7PKl>{!=9U-^tf^K z^d;B}pTHYqe>yO>WA_#|KYB((0*idrbo|KvbU-ww3Wp4>&jgQ22F<&uHrGRUXFxle zGD5@nfRuR0NM%!ivdIVBX0mZxcz6bl)IrVsh2h%W9@cX6pm+e0$qyS3UoH5+hVzt^ zBn~Lt^7Zze|K60pfVjTXC4>4cVK8!OQI1D*X9ajrp}(d-TB6h|JHbjwrtwPuKp*rKQlPC+Y*cu-qdn_{ zf#ZzRt@!X;)HCXY)KZFH1*?Uy4c?iLr_-FfQH-e=D^<;KK!bDp}VtZYwne6q{* z%Y>}INxEG1NR5n4^}H&*d~?0!@(g2gJn@SN3<~#L`^|`(5El~C*|_qnts{4ibO{R$>*RZ5$FAGH zVdkJ<-`lb*RNYpWDNOKpjZ)-fnhWYQO%*kKlf8q3K{?xGGP}8^#Pdxf^Lq5i$<58l z>BJmO2rg5d46B{yoJB)p<2zbRk7tyVrf`&^2%B=IfB`O-gwAp~n4CFBtbku^aT!J~ zT}0;NqkTP@;}!01`Qz5AI&c8a40OTadVfAByDA}d?D#o_j)t0LAqpU zDY5B2(#K05U6G_&d97Dx6mLy0h^S91o>duDb7n!tsMuSvW3v{Xu8!(Eqa?jPqF36s z;u$Y5>6r`G8GSr2@0hB8rtW#b_a&6WhpI#-k zpX?{P3&Rt_*ZD;jthzh@jP(2Rs1R~ODh`WSPSj`S-(6J@>9;OCVfY2<$Nh(-&u@>* z!XGN>C&7pJj>?GI@i4@Ck)u;E*siIppQ;H+zJ7+;X0t-AN{LrB4a@G)BRjhjb7C`s z{~fihiHMI09DaaL_(h_a8|1y#8UFRJ% z_mSeoXDoBdbMt#c1~K25${Vs7K_{Z(7n5b&6C=aJY?%vfM#nCJE<&fG7q<8pszlz1y#_ z*RjFP&(G~P@}uJk^-;Grd~;}Y=Yh`?d+}y;r>D)aCF|arfBaFagU-^Ayqi1!xi9AJ zBZljvp?iU$$v+1xfFUM18ts|@DBiC8I^LU!36u5S^w!8fomaj$EhTkvTH}h`f>k5B z_3Lzf=F5w67yk(OQ}11-fU47r79a29>SU=R_qgs$-dKSGK#%}v$`)aqh-4I0`-t{h z7LlXc2uQZ7AodC|1SN^|#jl(29P!JMKD|S{v!qX+ZGKkzB#ZdnmOjoVzM?W)y0~xb zUTM?*ar>mp*(7W4xcy}KzNY<1tW|_dS5z0p6~NH(1m7nqx+8`=2)3GArhT5iGLlbK z`Zf#;_C@5M<*nfUvJ8Y55FURO?V

{}108{>zpB?RT(wh7B9kpej@qbWYDvK1_V# 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 literal 0 HcmV?d00001 diff --git a/src/cli/presence-server.ts b/src/cli/presence-server.ts index 2d4e739..b3f0e50 100644 --- a/src/cli/presence-server.ts +++ b/src/cli/presence-server.ts @@ -2,12 +2,13 @@ import * as net from 'node:net'; import * as os from 'node:os'; import * as fs from 'node:fs/promises'; import * as path from 'node:path'; +import { createHash } from 'node:crypto'; import express, { Request, Response } from 'express'; import { fetch } from 'undici'; import * as persist from 'node-persist'; import { BankaraMatchSetting_schedule, CoopRule, CoopSetting_schedule, DetailFestRecordDetailResult, DetailVotingStatusResult, FestMatchSetting_schedule, FestRecordResult, FestState, FestTeam_schedule, FestTeam_votingStatus, FestVoteState, Fest_schedule, FriendListResult, FriendOnlineState, Friend_friendList, GraphQLSuccessResponse, KnownRequestId, LeagueMatchSetting_schedule, RegularMatchSetting_schedule, StageScheduleResult, XMatchSetting_schedule } from 'splatnet3-types/splatnet3'; import type { Arguments as ParentArguments } from '../cli.js'; -import { product, version } from '../util/product.js'; +import { git, product, version } from '../util/product.js'; import Users, { CoralUser } from '../common/users.js'; import { Friend } from '../api/coral-types.js'; import SplatNet3Api, { PersistedQueryResult, RequestIdSymbol } from '../api/splatnet3.js'; @@ -22,6 +23,7 @@ import { ArgumentsCamelCase, Argv, YargsArguments } from '../util/yargs.js'; import { getTitleIdFromEcUrl } from '../util/misc.js'; import { getSettingForCoopRule, getSettingForVsMode } from '../discord/monitor/splatoon3.js'; import { CoralApiInterface } from '../api/coral.js'; +import { PresenceEmbedFormat, getUserEmbedOptionsFromRequest, renderUserEmbedImage, renderUserEmbedSvg } from './util/presence-embed.js'; const debug = createDebug('cli:presence-server'); const debugSplatnet3Proxy = createDebug('cli:presence-server:splatnet3-proxy'); @@ -31,7 +33,7 @@ interface AllUsersResult extends Friend { splatoon3?: Friend_friendList | null; splatoon3_fest_team?: (FestTeam_schedule & FestTeam_votingStatus) | null; } -interface PresenceResponse { +export interface PresenceResponse { friend: Friend; title: TitleResult | null; splatoon3?: Friend_friendList | null; @@ -529,7 +531,8 @@ class Server extends HttpServer { app: express.Express; titles = new Map(); - readonly promise_image = new Map>(); + readonly promise_image = new Map>(); constructor( readonly storage: persist.LocalStorage, @@ -565,6 +568,18 @@ class Server extends HttpServer { app.get('/api/presence/:user/events', this.createApiRequestHandler((req, res) => this.handlePresenceStreamRequest(req, res, req.params.user))); + app.get('/api/presence/:user/image', this.createApiRequestHandler((req, res) => + this.handleUserImageRequest(req, res, req.params.user))); + + app.get('/api/presence/:user/embed', this.createApiRequestHandler((req, res) => + this.handlePresenceEmbedRequest(req, res, req.params.user, PresenceEmbedFormat.SVG))); + app.get('/api/presence/:user/embed.png', this.createApiRequestHandler((req, res) => + this.handlePresenceEmbedRequest(req, res, req.params.user, PresenceEmbedFormat.PNG))); + app.get('/api/presence/:user/embed.jpeg', this.createApiRequestHandler((req, res) => + this.handlePresenceEmbedRequest(req, res, req.params.user, PresenceEmbedFormat.JPEG))); + app.get('/api/presence/:user/embed.webp', this.createApiRequestHandler((req, res) => + this.handlePresenceEmbedRequest(req, res, req.params.user, PresenceEmbedFormat.WEBP))); + if (image_proxy_path?.baas) { this.image_proxy_path_baas = image_proxy_path.baas; app.use('/api/presence/resources/baas', express.static(this.image_proxy_path_baas, {redirect: false})); @@ -1097,6 +1112,55 @@ class Server extends HttpServer { } } + async handleUserImageRequest(req: Request, res: Response, presence_user_nsaid: string) { + res.setHeader('Access-Control-Allow-Origin', '*'); + + const result = await this.handlePresenceRequest(req, null, presence_user_nsaid); + + const url_map = await this.downloadImages({ + url: result.friend.imageUri, + }, this.getResourceBaseUrls(req)); + + const image_url = url_map[result.friend.imageUri]; + + res.statusCode = 303; + res.setHeader('Location', image_url); + res.setHeader('Content-Type', 'text/plain'); + res.write('Redirecting to ' + image_url + '\n'); + res.end(); + } + + async handlePresenceEmbedRequest(req: Request, res: Response, presence_user_nsaid: string, format = PresenceEmbedFormat.SVG) { + res.setHeader('Access-Control-Allow-Origin', '*'); + + const result = await this.handlePresenceRequest(req, null, presence_user_nsaid); + + const {theme, friend_code, transparent} = getUserEmbedOptionsFromRequest(req); + + const etag = createHash('sha256').update(JSON.stringify({ + result, + theme, + friend_code, + transparent, + v: version + '-' + git?.revision, + })).digest('base64url'); + + if (req.headers['if-none-match'] === '"' + etag + '"' || req.headers['if-none-match'] === 'W/"' + etag + '"') { + res.statusCode = 304; + res.end(); + return; + } + + const url_map = await this.downloadImages(result, this.getResourceBaseUrls(req)); + + const svg = renderUserEmbedSvg(result, url_map, theme, friend_code); + const [image, type] = await renderUserEmbedImage(svg, format); + + res.setHeader('Content-Type', type); + res.setHeader('Etag', '"' + etag + '"'); + res.end(image); + } + async handleSplatNet3ProxyFriends(req: Request, res: Response) { if (!this.enable_splatnet3_proxy) throw new ResponseError(403, 'forbidden'); @@ -1154,6 +1218,37 @@ class Server extends HttpServer { atum: string | null; splatnet3: string | null; }): Promise> { + const image_urls = this.getImageUrls(data, base_url); + const url_map: Record = {}; + + await Promise.all(image_urls.map(async ([url, dir, base_url]) => { + url_map[url] = new URL(await this.downloadImage(url, dir), base_url).toString(); + })); + + return url_map; + } + + async getImages(data: unknown, base_url: { + baas: string | null; + atum: string | null; + splatnet3: string | null; + }): Promise> { + const image_urls = this.getImageUrls(data, base_url); + const url_map: Record = {}; + + await Promise.all(image_urls.map(async ([url, dir, base_url]) => { + const [name, data, type] = await this.downloadImage(url, dir, true); + url_map[url] = [new URL(name, base_url).toString(), data, type]; + })); + + return url_map; + } + + getImageUrls(data: unknown, base_url: { + baas: string | null; + atum: string | null; + splatnet3: string | null; + }) { const image_urls: [url: string, dir: string, base_url: string][] = []; // Use JSON.stringify to iterate over everything in the response @@ -1185,13 +1280,7 @@ class Server extends HttpServer { return value; }); - const url_map: Record = {}; - - await Promise.all(image_urls.map(async ([url, dir, base_url]) => { - url_map[url] = new URL(await this.downloadImage(url, dir), base_url).toString(); - })); - - return url_map; + return image_urls; } getResourceBaseUrls(req: Request) { @@ -1206,7 +1295,10 @@ class Server extends HttpServer { }; } - downloadImage(url: string, dir: string) { + downloadImage(url: string, dir: string, return_image_data: true): Promise + downloadImage(url: string, dir: string, return_image_data?: false): Promise + downloadImage(url: string, dir: string, return_image_data?: boolean): Promise + downloadImage(url: string, dir: string, return_image_data?: boolean) { const pathname = new URL(url).pathname; const name = pathname.substr(1).toLowerCase() .replace(/^resources\//g, '') @@ -1215,6 +1307,11 @@ class Server extends HttpServer { const promise = this.promise_image.get(dir + '/' + name) ?? Promise.resolve().then(async () => { try { + if (return_image_data) { + const data = await fs.readFile(path.join(dir, name)); + return [name, data, 'image/jpeg'] as const; + } + await fs.stat(path.join(dir, name)); return name; } catch (err) {} @@ -1230,6 +1327,10 @@ class Server extends HttpServer { debug('Downloaded image %s', name); + if (return_image_data) { + return [name, data, 'image/jpeg'] as const; + } + return name; }).then(result => { this.promise_image.delete(dir + '/' + name); diff --git a/src/cli/util/index.ts b/src/cli/util/index.ts index f9ffe9b..6857546 100644 --- a/src/cli/util/index.ts +++ b/src/cli/util/index.ts @@ -5,3 +5,5 @@ export * as discordActivity from './discord-activity.js'; export * as discordRpc from './discord-rpc.js'; export * as remoteConfig from './remote-config.js'; export * as storage from './storage.js'; +export * as presenceEmbedRender from './presence-embed-render.js'; +export * as presenceEmbedServer from './presence-embed-server.js'; diff --git a/src/cli/util/presence-embed-render.ts b/src/cli/util/presence-embed-render.ts new file mode 100644 index 0000000..26b88ea --- /dev/null +++ b/src/cli/util/presence-embed-render.ts @@ -0,0 +1,78 @@ +import type { Arguments as ParentArguments } from '../util.js'; +import createDebug from '../../util/debug.js'; +import { ArgumentsCamelCase, Argv, YargsArguments } from '../../util/yargs.js'; +import { getPresenceFromUrl } from '../../api/znc-proxy.js'; +import { PresenceResponse } from '../presence-server.js'; +import { PresenceEmbedFormat, PresenceEmbedTheme, renderUserEmbedImage, renderUserEmbedSvg } from './presence-embed.js'; + +const debug = createDebug('cli:util:render-presence-embed'); + +export const command = 'render-presence-embed '; +export const desc = 'Render presence embed'; + +export function builder(yargs: Argv) { + return yargs.positional('url', { + describe: 'Presence URL', + type: 'string', + demandOption: true, + }).option('output', { + describe: 'Output (svg, png, jpeg or webp)', + type: 'string', + default: 'svg', + }).option('theme', { + describe: 'Theme (light or dark)', + type: 'string', + default: 'light', + }).option('friend-code', { + describe: 'Friend code', + type: 'string', + }).option('scale', { + describe: 'Image scale', + type: 'number', + default: 1, + }).option('transparent', { + describe: 'Remove border and use transparent background', + type: 'boolean', + default: false, + }); +} + +type Arguments = YargsArguments>; + +export async function handler(argv: ArgumentsCamelCase) { + const theme = argv.theme === 'dark' ? PresenceEmbedTheme.DARK : PresenceEmbedTheme.LIGHT; + const format = + argv.output === 'png' ? PresenceEmbedFormat.PNG : + argv.output === 'jpeg' ? PresenceEmbedFormat.JPEG : + argv.output === 'webp' ? PresenceEmbedFormat.WEBP : + PresenceEmbedFormat.SVG; + + if (argv.friendCode && !argv.friendCode.match(/^\d{4}-\d{4}-\d{4}$/)) { + throw new TypeError('Invalid friend code'); + } + + const [presence, user, data] = await getPresenceFromUrl(argv.url); + const result = data as PresenceResponse; + + const image_urls = [result.friend.imageUri]; + + if ('imageUri' in result.friend.presence.game) image_urls.push(result.friend.presence.game.imageUri); + + const url_map: Record = {}; + + debug('images', image_urls); + + await Promise.all(image_urls.map(async (url) => { + debug('Fetching image %s', url); + const response = await fetch(url); + const data = new Uint8Array(await response.arrayBuffer()); + + url_map[url] = [url, data, 'image/jpeg']; + })); + + const svg = renderUserEmbedSvg(result, url_map, theme, argv.friendCode, argv.scale, argv.transparent); + const [image, type] = await renderUserEmbedImage(svg, format); + + console.warn('output type', type); + process.stdout.write(image); +} diff --git a/src/cli/util/presence-embed-server.ts b/src/cli/util/presence-embed-server.ts new file mode 100644 index 0000000..83b299d --- /dev/null +++ b/src/cli/util/presence-embed-server.ts @@ -0,0 +1,178 @@ +import * as os from 'node:os'; +import * as net from 'node:net'; +import express, { Request, Response } from 'express'; +import { createHash } from 'node:crypto'; +import type { Arguments as ParentArguments } from '../util.js'; +import createDebug from '../../util/debug.js'; +import { ArgumentsCamelCase, Argv, YargsArguments } from '../../util/yargs.js'; +import { getPresenceFromUrl } from '../../api/znc-proxy.js'; +import { PresenceResponse } from '../presence-server.js'; +import { addCliFeatureUserAgent } from '../../util/useragent.js'; +import { HttpServer, ResponseError } from './http-server.js'; +import { git, product, version } from '../../util/product.js'; +import { parseListenAddress } from '../../util/net.js'; +import { RawValueSymbol, htmlentities } from '../../util/misc.js'; +import { PresenceEmbedFormat, PresenceEmbedTheme, getUserEmbedOptionsFromRequest, renderUserEmbedImage, renderUserEmbedSvg } from './presence-embed.js'; + +const debug = createDebug('cli:util:presence-embed-server'); + +export const command = 'presence-embed-server '; +export const desc = 'Presence embed test server'; + +export function builder(yargs: Argv) { + return yargs.positional('url', { + describe: 'Presence URL', + type: 'string', + demandOption: true, + }).option('listen', { + describe: 'Server address and port', + type: 'array', + default: ['[::]:0'], + }); +} + +type Arguments = YargsArguments>; + +export async function handler(argv: ArgumentsCamelCase) { + addCliFeatureUserAgent('presence-embed-test-server'); + + const server = new Server(argv.url); + const app = server.app; + + for (const address of argv.listen) { + const [host, port] = parseListenAddress(address); + const server = app.listen(port, host ?? '::'); + server.on('listening', () => { + const address = server.address() as net.AddressInfo; + console.log('Listening on %s, port %d', address.address, address.port); + }); + } +} + +class Server extends HttpServer { + app: express.Express; + + constructor( + readonly base_url: string, + ) { + super(); + + const app = this.app = express(); + + app.use('/api/presence', (req, res, next) => { + console.log('[%s] %s %s HTTP/%s from %s, port %d%s, %s', + new Date(), req.method, req.url, req.httpVersion, + req.socket.remoteAddress, req.socket.remotePort, + req.headers['x-forwarded-for'] ? ' (' + req.headers['x-forwarded-for'] + ')' : '', + req.headers['user-agent']); + + res.setHeader('Server', product + ' presence-embed-test-server'); + res.setHeader('X-Server', product + ' presence-embed-test-server'); + res.setHeader('X-Served-By', os.hostname()); + + next(); + }); + + app.get('/api/presence/:user/embed', this.createApiRequestHandler((req, res) => + this.handlePresenceEmbedRequest(req, res, req.params.user, PresenceEmbedFormat.SVG))); + app.get('/api/presence/:user/embed.png', this.createApiRequestHandler((req, res) => + this.handlePresenceEmbedRequest(req, res, req.params.user, PresenceEmbedFormat.PNG))); + app.get('/api/presence/:user/embed.jpeg', this.createApiRequestHandler((req, res) => + this.handlePresenceEmbedRequest(req, res, req.params.user, PresenceEmbedFormat.JPEG))); + app.get('/api/presence/:user/embed.webp', this.createApiRequestHandler((req, res) => + this.handlePresenceEmbedRequest(req, res, req.params.user, PresenceEmbedFormat.WEBP))); + + app.get('/api/presence/:user/embed.html', this.createApiRequestHandler((req, res) => + this.handlePresenceEmbedHtmlRequest(req, res, req.params.user))); + } + + async handlePresenceEmbedRequest(req: Request, res: Response, presence_user_nsaid: string, format = PresenceEmbedFormat.SVG) { + if (!presence_user_nsaid.match(/^[0-9a-f]{16}$/)) throw new ResponseError(404, 'not_found'); + + res.setHeader('Access-Control-Allow-Origin', '*'); + + const url = new URL(req.url, 'https://localhost'); + url.searchParams.delete('theme'); + url.searchParams.delete('friend-code'); + url.searchParams.delete('transparent'); + const qs = url.searchParams.size ? '?' + url.searchParams.toString() : ''; + + const [presence, user, data] = await getPresenceFromUrl(this.base_url + '/' + presence_user_nsaid + qs); + const result = data as PresenceResponse; + + const {theme, friend_code, transparent} = getUserEmbedOptionsFromRequest(req); + + const etag = createHash('sha256').update(JSON.stringify({ + data, + format, + theme, + friend_code, + transparent, + v: version + '-' + git?.revision, + })).digest('base64url'); + + if (req.headers['if-none-match'] === '"' + etag + '"' || req.headers['if-none-match'] === 'W/"' + etag + '"') { + res.statusCode = 304; + res.end(); + return; + } + + const image_urls = [result.friend.imageUri]; + + if ('imageUri' in result.friend.presence.game) image_urls.push(result.friend.presence.game.imageUri); + + const url_map: Record = {}; + + await Promise.all(image_urls.map(async (url) => { + debug('Fetching image %s', url); + const response = await fetch(url); + const data = new Uint8Array(await response.arrayBuffer()); + + url_map[url] = [url, data, 'image/jpeg']; + })); + + const svg = renderUserEmbedSvg(result, url_map, theme, friend_code, 1, transparent); + const [image, type] = await renderUserEmbedImage(svg, format); + + res.setHeader('Content-Type', type); + res.setHeader('Etag', '"' + etag + '"'); + res.end(image); + } + + async handlePresenceEmbedHtmlRequest(req: Request, res: Response, presence_user_nsaid: string) { + if (!presence_user_nsaid.match(/^[0-9a-f]{16}$/)) throw new ResponseError(404, 'not_found'); + + const url = new URL(req.url, 'https://localhost'); + url.searchParams.delete('theme'); + const qs = url.searchParams.size ? '&' + url.searchParams.toString() : ''; + + const url_2 = new URL(req.url, 'https://localhost'); + url_2.searchParams.delete('theme'); + url_2.searchParams.delete('friend-code'); + const qs_2 = url_2.searchParams.size ? '?' + url_2.searchParams.toString() : ''; + + const [presence, user, data] = await getPresenceFromUrl(this.base_url + '/' + presence_user_nsaid + qs_2); + const result = data as PresenceResponse; + + const image_urls = [result.friend.imageUri]; + + if ('imageUri' in result.friend.presence.game) image_urls.push(result.friend.presence.game.imageUri); + + const url_map: Record = {}; + + await Promise.all(image_urls.map(async (url) => { + debug('Fetching image %s', url); + const response = await fetch(url); + const data = new Uint8Array(await response.arrayBuffer()); + + url_map[url] = [url, data, 'image/jpeg']; + })); + + const svg = renderUserEmbedSvg(result, url_map, PresenceEmbedTheme.LIGHT, undefined, 1, true); + + res.setHeader('Content-Type', 'text/html'); + res.write(``); + res.write(htmlentities`Nintendo Switch presence

${{[RawValueSymbol]: svg}}

\n`); + res.end(); + } +} diff --git a/src/cli/util/presence-embed.ts b/src/cli/util/presence-embed.ts new file mode 100644 index 0000000..f1e736a --- /dev/null +++ b/src/cli/util/presence-embed.ts @@ -0,0 +1,220 @@ +import * as fs from 'node:fs/promises'; +import * as path from 'node:path'; +import { Request } from 'express'; +import sharp from 'sharp'; +import { FriendOnlineState } from 'splatnet3-types/splatnet3'; +import { dir } from '../../util/product.js'; +import createDebug from '../../util/debug.js'; +import { Game, PresenceState } from '../../api/coral-types.js'; +import { RawValueSymbol, htmlentities } from '../../util/misc.js'; +import { PresenceResponse } from '../presence-server.js'; + +const debug = createDebug('cli:util:presence-embed'); + +export enum PresenceEmbedFormat { + SVG, + PNG, + JPEG, + WEBP, +} + +export enum PresenceEmbedTheme { + LIGHT, + DARK, +} +interface PresenceEmbedThemeColours { + background: string; + separator: string; + text: string; + online: string; + online_border: string; +} + +const embed_themes: Record = { + [PresenceEmbedTheme.LIGHT]: { + background: '#ebebeb', + separator: '#7b7b7b', + text: '#000000', + online: '#2db742', + online_border: '#0eb728', + }, + [PresenceEmbedTheme.DARK]: { + background: '#2d2d2d', + separator: '#7e7e7e', + text: '#ffffff', + online: '#47e85f', + online_border: '#19e838', + }, +}; + +const embed_titles: Partial, + image: (url: string) => string | undefined, + theme?: PresenceEmbedTheme, +) => readonly [svg: string, height: number]>> = { + '0100c2500fc20000': renderUserSplatoon3EmbedPartialSvg, +}; + +export function getUserEmbedOptionsFromRequest(req: Request) { + const url = new URL(req.url, 'https://localhost'); + + const theme = url.searchParams.get('theme') === 'dark' ? PresenceEmbedTheme.DARK : PresenceEmbedTheme.LIGHT; + const friend_code = url.searchParams.getAll('friend-code').find(c => c.match(/^\d{4}-\d{4}-\d{4}$/)); + const transparent = url.searchParams.get('transparent') === '1'; + + return {theme, friend_code, transparent}; +} + +export async function renderUserEmbedImage( + svg: string, + format: PresenceEmbedFormat, +): Promise<[data: Buffer, type: string]> { + if (format === PresenceEmbedFormat.SVG) { + return [Buffer.from(svg), 'image/svg+xml']; + } + + const start = Date.now(); + debug('generating image, format %s', PresenceEmbedFormat[format]); + + let image = sharp(Buffer.from(svg)).withMetadata({ + density: 72 * 2, + }); + + if (format === PresenceEmbedFormat.PNG) image = image.png(); + if (format === PresenceEmbedFormat.JPEG) image = image.jpeg(); + if (format === PresenceEmbedFormat.WEBP) image = image.webp(); + + const data = await image.toBuffer(); + + debug('generated %s in %d ms', PresenceEmbedFormat[format], Date.now() - start); + + if (format === PresenceEmbedFormat.PNG) return [data, 'image/png']; + if (format === PresenceEmbedFormat.JPEG) return [data, 'image/jpeg']; + if (format === PresenceEmbedFormat.WEBP) return [data, 'image/webp']; + + throw new TypeError('Invalid format'); +} + +export function renderUserEmbedSvg( + result: PresenceResponse, + url_map: Record, + theme = PresenceEmbedTheme.LIGHT, + friend_code?: string, + scale = 1, + transparent = false, +) { + let width = 500; + let height = 180; + if (friend_code) height += 40; + + const colours = embed_themes[theme]; + const font_family = '\'Open Sans\', -apple-system, BlinkMacSystemFont, Arial, sans-serif'; + + const state = result.friend.presence.state; + const game = 'name' in result.friend.presence.game ? result.friend.presence.game : null; + + const image = (url: string) => + url_map[url] instanceof Array ? + 'data:' + url_map[url][2] + ';base64,' + + Buffer.from(url_map[url][1]).toString('base64') : + url_map[url] as string | undefined; + + const title_extra = result.title ? embed_titles[result.title.id]?.call(null, result, url_map, image, theme) : null; + if (title_extra) height += title_extra[1]; + + return htmlentities` + + + + + + + + + + + + + + + + + ${{[RawValueSymbol]: transparent ? '' : htmlentities` + + `}} + + + ${result.friend.name} + + + + ${{[RawValueSymbol]: game && (state === PresenceState.ONLINE || state === PresenceState.PLAYING) ? htmlentities` + + + ${{[RawValueSymbol]: renderUserTitleEmbedPartialSvg(game, colours, font_family)}} + ` : htmlentities` + Offline + `}} + + ${{[RawValueSymbol]: friend_code ? htmlentities` + Friend code: SW-${friend_code} + ` : ''}} + + ${{[RawValueSymbol]: title_extra?.[0] ?? ''}} + +`; +} + +function renderUserTitleEmbedPartialSvg(game: Game, colours: PresenceEmbedThemeColours, font_family: string) { + const playing_text_offset = game.sysDescription ? 92 : 97; + const title_name_text_offset = game.sysDescription ? 122 : 133; + + return htmlentities` + + Playing + + ${game.name} + + ${game.sysDescription} + `; +} + +function renderUserSplatoon3EmbedPartialSvg( + result: PresenceResponse, + url_map: Record, + image: (url: string) => string | undefined, + theme = PresenceEmbedTheme.LIGHT, +) { + return ['', 0] as const; +} + +const embed_fonts: [name: string, style: string, weight: string, files: [format: string, type: string, path: string][]][] = [ + ['Open Sans', 'normal', '400', [['opentype', 'font/ttf', 'opensans-normal-400.ttf']]], + ['Open Sans', 'normal', '500', [['opentype', 'font/ttf', 'opensans-normal-500.ttf']]], +]; + +const embed_style = ` +text { + -webkit-user-select: none; + user-select: none; +} + +` + (await Promise.all(embed_fonts.map(async ([name, style, weight, files]) => `@font-face { + font-family: '${name}'; + font-style: ${style}; + font-weight: ${weight}; + src: ${(await Promise.all(files.map(async ([format, type, file]) => `url('data:${type};base64,${ + (await fs.readFile(path.join(dir, 'resources', 'cli', 'fonts', file))).toString('base64') + }') format('${format}')`))).join(',')}; +}`))).join('\n'); diff --git a/src/util/misc.ts b/src/util/misc.ts index f984065..18663a6 100644 --- a/src/util/misc.ts +++ b/src/util/misc.ts @@ -40,3 +40,14 @@ export function timeoutSignal(ms = 60 * 1000) { return [controller.signal, () => clearTimeout(timeout), controller] as const; } + +export const RawValueSymbol = Symbol('RawValue'); +export type RawValue = {[RawValueSymbol]: string}; + +export function htmlentities(strings: TemplateStringsArray, ...args: (string | number | RawValue)[]): string { + return strings.map((s, i) => s + (args[i] ? ( + typeof args[i] === 'object' && RawValueSymbol in (args[i] as object) ? + (args[i] as RawValue)[RawValueSymbol] : + args[i].toString().replace(/[\u00A0-\u9999<>\&]/gim, c => '&#' + c.charCodeAt(0) + ';') + ) : '')).join(''); +}