From b2e7ffb670828ac8bda3e865687224c7cf76da15 Mon Sep 17 00:00:00 2001
From: SrIzan10 <66965250+SrIzan10@users.noreply.github.com>
Date: Sat, 25 May 2024 16:09:59 +0200
Subject: [PATCH] feat: move to astro (#10)
* initial commit
* add shadcn ui
* only main page is left!
* ready to pr?
* change font
---
.eslintrc.json | 6 -
.frontmatter/database/mediaDb.json | 1 -
.frontmatter/database/pinnedItemsDb.json | 1 -
.frontmatter/database/taxonomyDb.json | 1 -
.gitignore | 42 +-
.gitpod.yml | 11 -
.idea/.gitignore | 5 -
.idea/discord.xml | 7 -
.idea/mainwebsite.iml | 12 -
.idea/modules.xml | 8 -
.idea/vcs.xml | 6 -
.prettierrc | 9 +
.vscode/extensions.json | 4 +
.vscode/launch.json | 11 +
.vscode/settings.json | 9 +-
.vscode/tailwind.json | 55 +
.yarnrc.yml | 1 -
README.md | 69 +-
astro.config.mjs | 12 +
components.json | 17 +
frontmatter.json | 58 -
next.config.js | 14 -
package.json | 66 +-
public/blog-placeholder-1.jpg | Bin 0 -> 32040 bytes
public/blog-placeholder-2.jpg | Bin 0 -> 33136 bytes
public/blog-placeholder-3.jpg | Bin 0 -> 28687 bytes
public/blog-placeholder-4.jpg | Bin 0 -> 38690 bytes
public/blog-placeholder-5.jpg | Bin 0 -> 34890 bytes
public/blog-placeholder-about.jpg | Bin 0 -> 21606 bytes
public/blog/.gitkeep | 0
public/blog/atom.xml | 361 -
public/blog/feed.json | 73 -
public/blog/img/osu-eOS/graphicsContext.png | Bin 3939 -> 0 bytes
public/blog/img/osu-eOS/noaudio.mp4 | Bin 5471126 -> 0 bytes
public/blog/img/sernAutomataV2/prMerge1.png | Bin 125358 -> 0 bytes
public/blog/img/sernAutomataV2/prMerge2.png | Bin 73993 -> 0 bytes
public/blog/rss.xml | 342 -
public/collab.webp | Bin 503846 -> 0 bytes
public/favicon.svg | 9 +
public/fonts/atkinson-bold.woff | Bin 0 -> 23780 bytes
public/fonts/atkinson-regular.woff | Bin 0 -> 22792 bytes
public/main-pfp.png | Bin 299778 -> 0 bytes
src/app/(pages)/(root)/page.tsx | 27 -
src/app/(pages)/_collab/page.tsx | 19 -
src/app/(pages)/blog/[id]/page.tsx | 111 -
src/app/(pages)/blog/page.tsx | 25 -
src/app/_components/BlogPostCard.tsx | 40 -
src/app/_components/BlogRssDial.tsx | 44 -
src/app/_components/ImageAuthor.tsx | 20 -
src/app/_components/NavBar.tsx | 44 -
src/app/_components/RandomBackground.tsx | 21 -
.../EmotionRootStyleRegistry.tsx | 56 -
src/app/_components/ThemeRegistry/theme.ts | 25 -
src/app/_css/Blog.css | 35 -
src/app/_css/BlogNavBar.css | 53 -
src/app/_css/BlogPost.css | 24 -
src/app/_css/BlogPostCard.css | 14 -
src/app/_css/ImageAuthor.css | 24 -
src/app/_css/LinkShortenerVerification.css | 3 -
src/app/_css/RandomBackground.css | 12 -
src/app/_css/Root.css | 38 -
src/app/globals.css | 69 -
src/app/layout.tsx | 30 -
src/backgrounds.json | 60 +-
...stall-functionality-on-pyramid-launcher.md | 68 -
.../2024-05-08-releasing-sern-automata-v2.md | 46 -
src/blog/Hey.md | 15 -
src/blog/How-to-change-ArchLinux-password.md | 53 -
src/blog/Install-osu-on-eOS.md | 150 -
src/blog/The-last-migration-mongodb.md | 223 -
src/blogPostGenerator.js | 67 -
src/components/BaseHead.astro | 46 +
src/components/FormattedDate.astro | 17 +
src/components/Header.astro | 31 +
src/components/ImageAuthor.astro | 24 +
src/components/ui/button.tsx | 56 +
src/components/ui/dropdown-menu.tsx | 198 +
src/components/ui/modetoggle.tsx | 52 +
src/consts.ts | 5 +
src/env.d.ts | 6 +
src/layouts/BlogPost.astro | 52 +
src/lib/ghost.ts | 8 +
src/lib/utils.ts | 6 +
src/pages/blog/[...slug].astro | 41 +
src/pages/blog/index.astro | 46 +
src/pages/index.astro | 39 +
src/pages/rss.xml.js | 16 +
src/styles/global.css | 182 +
tailwind.config.mjs | 75 +
tsconfig.json | 33 +-
yarn.lock | 10401 ++++++++--------
91 files changed, 6333 insertions(+), 7627 deletions(-)
delete mode 100644 .eslintrc.json
delete mode 100644 .frontmatter/database/mediaDb.json
delete mode 100644 .frontmatter/database/pinnedItemsDb.json
delete mode 100644 .frontmatter/database/taxonomyDb.json
delete mode 100644 .gitpod.yml
delete mode 100644 .idea/.gitignore
delete mode 100644 .idea/discord.xml
delete mode 100644 .idea/mainwebsite.iml
delete mode 100644 .idea/modules.xml
delete mode 100644 .idea/vcs.xml
create mode 100644 .prettierrc
create mode 100644 .vscode/extensions.json
create mode 100644 .vscode/launch.json
create mode 100644 .vscode/tailwind.json
delete mode 100644 .yarnrc.yml
create mode 100644 astro.config.mjs
create mode 100644 components.json
delete mode 100644 frontmatter.json
delete mode 100644 next.config.js
create mode 100644 public/blog-placeholder-1.jpg
create mode 100644 public/blog-placeholder-2.jpg
create mode 100644 public/blog-placeholder-3.jpg
create mode 100644 public/blog-placeholder-4.jpg
create mode 100644 public/blog-placeholder-5.jpg
create mode 100644 public/blog-placeholder-about.jpg
delete mode 100644 public/blog/.gitkeep
delete mode 100644 public/blog/atom.xml
delete mode 100644 public/blog/feed.json
delete mode 100644 public/blog/img/osu-eOS/graphicsContext.png
delete mode 100644 public/blog/img/osu-eOS/noaudio.mp4
delete mode 100644 public/blog/img/sernAutomataV2/prMerge1.png
delete mode 100644 public/blog/img/sernAutomataV2/prMerge2.png
delete mode 100644 public/blog/rss.xml
delete mode 100644 public/collab.webp
create mode 100644 public/favicon.svg
create mode 100644 public/fonts/atkinson-bold.woff
create mode 100644 public/fonts/atkinson-regular.woff
delete mode 100644 public/main-pfp.png
delete mode 100644 src/app/(pages)/(root)/page.tsx
delete mode 100644 src/app/(pages)/_collab/page.tsx
delete mode 100644 src/app/(pages)/blog/[id]/page.tsx
delete mode 100644 src/app/(pages)/blog/page.tsx
delete mode 100644 src/app/_components/BlogPostCard.tsx
delete mode 100644 src/app/_components/BlogRssDial.tsx
delete mode 100644 src/app/_components/ImageAuthor.tsx
delete mode 100644 src/app/_components/NavBar.tsx
delete mode 100644 src/app/_components/RandomBackground.tsx
delete mode 100644 src/app/_components/ThemeRegistry/EmotionRootStyleRegistry.tsx
delete mode 100644 src/app/_components/ThemeRegistry/theme.ts
delete mode 100644 src/app/_css/Blog.css
delete mode 100644 src/app/_css/BlogNavBar.css
delete mode 100644 src/app/_css/BlogPost.css
delete mode 100644 src/app/_css/BlogPostCard.css
delete mode 100644 src/app/_css/ImageAuthor.css
delete mode 100644 src/app/_css/LinkShortenerVerification.css
delete mode 100644 src/app/_css/RandomBackground.css
delete mode 100644 src/app/_css/Root.css
delete mode 100644 src/app/globals.css
delete mode 100644 src/app/layout.tsx
delete mode 100644 src/blog/2024-02-02-how-i-made-the-install-functionality-on-pyramid-launcher.md
delete mode 100644 src/blog/2024-05-08-releasing-sern-automata-v2.md
delete mode 100644 src/blog/Hey.md
delete mode 100644 src/blog/How-to-change-ArchLinux-password.md
delete mode 100644 src/blog/Install-osu-on-eOS.md
delete mode 100644 src/blog/The-last-migration-mongodb.md
delete mode 100644 src/blogPostGenerator.js
create mode 100644 src/components/BaseHead.astro
create mode 100644 src/components/FormattedDate.astro
create mode 100644 src/components/Header.astro
create mode 100644 src/components/ImageAuthor.astro
create mode 100644 src/components/ui/button.tsx
create mode 100644 src/components/ui/dropdown-menu.tsx
create mode 100644 src/components/ui/modetoggle.tsx
create mode 100644 src/consts.ts
create mode 100644 src/env.d.ts
create mode 100644 src/layouts/BlogPost.astro
create mode 100644 src/lib/ghost.ts
create mode 100644 src/lib/utils.ts
create mode 100644 src/pages/blog/[...slug].astro
create mode 100644 src/pages/blog/index.astro
create mode 100644 src/pages/index.astro
create mode 100644 src/pages/rss.xml.js
create mode 100644 src/styles/global.css
create mode 100644 tailwind.config.mjs
diff --git a/.eslintrc.json b/.eslintrc.json
deleted file mode 100644
index d2a18fa..0000000
--- a/.eslintrc.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "extends": "next/core-web-vitals",
- "rules": {
- "react/no-unescaped-entities": "off"
- }
-}
diff --git a/.frontmatter/database/mediaDb.json b/.frontmatter/database/mediaDb.json
deleted file mode 100644
index 9e26dfe..0000000
--- a/.frontmatter/database/mediaDb.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
\ No newline at end of file
diff --git a/.frontmatter/database/pinnedItemsDb.json b/.frontmatter/database/pinnedItemsDb.json
deleted file mode 100644
index 9e26dfe..0000000
--- a/.frontmatter/database/pinnedItemsDb.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
\ No newline at end of file
diff --git a/.frontmatter/database/taxonomyDb.json b/.frontmatter/database/taxonomyDb.json
deleted file mode 100644
index 9e26dfe..0000000
--- a/.frontmatter/database/taxonomyDb.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 92ecd67..16d54bb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,38 +1,24 @@
-# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+# build output
+dist/
+# generated types
+.astro/
# dependencies
-/node_modules
-/.pnp
-.pnp.js
-.yarn/install-state.gz
+node_modules/
-# testing
-/coverage
-
-# next.js
-/.next/
-/out/
-
-# production
-/build
-
-# misc
-.DS_Store
-*.pem
-
-# debug
+# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
+pnpm-debug.log*
-# local env files
-.env*.local
-# vercel
-.vercel
+# environment variables
+.env
+.env.production
-# typescript
-*.tsbuildinfo
-next-env.d.ts
+# macOS-specific files
+.DS_Store
-blogPosts.json
\ No newline at end of file
+# jetbrains setting folder
+.idea/
diff --git a/.gitpod.yml b/.gitpod.yml
deleted file mode 100644
index 8238b63..0000000
--- a/.gitpod.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-# This configuration file was automatically generated by Gitpod.
-# Please adjust to your needs (see https://www.gitpod.io/docs/introduction/learn-gitpod/gitpod-yaml)
-# and commit this file to your remote git repository to share the goodness with others.
-
-# Learn more from ready-to-use templates: https://www.gitpod.io/docs/introduction/getting-started/quickstart
-
-tasks:
- - init: yarn install && yarn run build
- command: yarn run dev
-
-
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index b58b603..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Editor-based HTTP Client requests
-/httpRequests/
diff --git a/.idea/discord.xml b/.idea/discord.xml
deleted file mode 100644
index d8e9561..0000000
--- a/.idea/discord.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/mainwebsite.iml b/.idea/mainwebsite.iml
deleted file mode 100644
index 24643cc..0000000
--- a/.idea/mainwebsite.iml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index 47de522..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 35eb1dd..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..e1265f8
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,9 @@
+{
+ "useTabs": false,
+ "printWidth": 800,
+ "tabWidth": 2,
+ "singleQuote": true,
+ "trailingComma": "all",
+ "semi": false,
+ "plugins": ["prettier-plugin-astro"]
+}
\ No newline at end of file
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..56f043d
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,4 @@
+{
+ "recommendations": ["astro-build.astro-vscode", "unifiedjs.vscode-mdx"],
+ "unwantedRecommendations": []
+}
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..d642209
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "command": "./node_modules/.bin/astro dev",
+ "name": "Development server",
+ "request": "launch",
+ "type": "node-terminal"
+ }
+ ]
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 6a3b83c..c9be8be 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,3 +1,10 @@
{
- "javascript.preferences.importModuleSpecifierEnding": "minimal"
+ "css.customData": [".vscode/tailwind.json"],
+ "editor.tabSize": 2,
+ "editor.insertSpaces": true,
+ "editor.detectIndentation": false,
+ "prettier.documentSelectors": ["**/*.astro"],
+ "[astro]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ }
}
\ No newline at end of file
diff --git a/.vscode/tailwind.json b/.vscode/tailwind.json
new file mode 100644
index 0000000..9ccc998
--- /dev/null
+++ b/.vscode/tailwind.json
@@ -0,0 +1,55 @@
+{
+ "version": 1.1,
+ "atDirectives": [
+ {
+ "name": "@tailwind",
+ "description": "Use the `@tailwind` directive to insert Tailwind's `base`, `components`, `utilities` and `screens` styles into your CSS.",
+ "references": [
+ {
+ "name": "Tailwind Documentation",
+ "url": "https://tailwindcss.com/docs/functions-and-directives#tailwind"
+ }
+ ]
+ },
+ {
+ "name": "@apply",
+ "description": "Use the `@apply` directive to inline any existing utility classes into your own custom CSS. This is useful when you find a common utility pattern in your HTML that you’d like to extract to a new component.",
+ "references": [
+ {
+ "name": "Tailwind Documentation",
+ "url": "https://tailwindcss.com/docs/functions-and-directives#apply"
+ }
+ ]
+ },
+ {
+ "name": "@responsive",
+ "description": "You can generate responsive variants of your own classes by wrapping their definitions in the `@responsive` directive:\n```css\n@responsive {\n .alert {\n background-color: #E53E3E;\n }\n}\n```\n",
+ "references": [
+ {
+ "name": "Tailwind Documentation",
+ "url": "https://tailwindcss.com/docs/functions-and-directives#responsive"
+ }
+ ]
+ },
+ {
+ "name": "@screen",
+ "description": "The `@screen` directive allows you to create media queries that reference your breakpoints by **name** instead of duplicating their values in your own CSS:\n```css\n@screen sm {\n /* ... */\n}\n```\n…gets transformed into this:\n```css\n@media (min-width: 640px) {\n /* ... */\n}\n```\n",
+ "references": [
+ {
+ "name": "Tailwind Documentation",
+ "url": "https://tailwindcss.com/docs/functions-and-directives#screen"
+ }
+ ]
+ },
+ {
+ "name": "@variants",
+ "description": "Generate `hover`, `focus`, `active` and other **variants** of your own utilities by wrapping their definitions in the `@variants` directive:\n```css\n@variants hover, focus {\n .btn-brand {\n background-color: #3182CE;\n }\n}\n```\n",
+ "references": [
+ {
+ "name": "Tailwind Documentation",
+ "url": "https://tailwindcss.com/docs/functions-and-directives#variants"
+ }
+ ]
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/.yarnrc.yml b/.yarnrc.yml
deleted file mode 100644
index 8b757b2..0000000
--- a/.yarnrc.yml
+++ /dev/null
@@ -1 +0,0 @@
-nodeLinker: node-modules
\ No newline at end of file
diff --git a/README.md b/README.md
index e4ea4ae..758716e 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,68 @@
-# Welcome to Sr Izan's website
+# Astro Starter Kit: Blog
-My public face on the wild internet.
+```sh
+npm create astro@latest -- --template blog
+```
-Hosted on Vercel. Made with Next.js, Typescript, Markdown and Material UI.
+[](https://stackblitz.com/github/withastro/astro/tree/latest/examples/blog)
+[](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/blog)
+[](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/blog/devcontainer.json)
-URL: https://srizan.dev
+> 🧑🚀 **Seasoned astronaut?** Delete this file. Have fun!
+
+
+
+Features:
+
+- ✅ Minimal styling (make it your own!)
+- ✅ 100/100 Lighthouse performance
+- ✅ SEO-friendly with canonical URLs and OpenGraph data
+- ✅ Sitemap support
+- ✅ RSS Feed support
+- ✅ Markdown & MDX support
+
+## 🚀 Project Structure
+
+Inside of your Astro project, you'll see the following folders and files:
+
+```text
+├── public/
+├── src/
+│ ├── components/
+│ ├── content/
+│ ├── layouts/
+│ └── pages/
+├── astro.config.mjs
+├── README.md
+├── package.json
+└── tsconfig.json
+```
+
+Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
+
+There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
+
+The `src/content/` directory contains "collections" of related Markdown and MDX documents. Use `getCollection()` to retrieve posts from `src/content/blog/`, and type-check your frontmatter using an optional schema. See [Astro's Content Collections docs](https://docs.astro.build/en/guides/content-collections/) to learn more.
+
+Any static assets, like images, can be placed in the `public/` directory.
+
+## 🧞 Commands
+
+All commands are run from the root of the project, from a terminal:
+
+| Command | Action |
+| :------------------------ | :----------------------------------------------- |
+| `npm install` | Installs dependencies |
+| `npm run dev` | Starts local dev server at `localhost:4321` |
+| `npm run build` | Build your production site to `./dist/` |
+| `npm run preview` | Preview your build locally, before deploying |
+| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
+| `npm run astro -- --help` | Get help using the Astro CLI |
+
+## 👀 Want to learn more?
+
+Check out [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).
+
+## Credit
+
+This theme is based off of the lovely [Bear Blog](https://github.com/HermanMartinus/bearblog/).
diff --git a/astro.config.mjs b/astro.config.mjs
new file mode 100644
index 0000000..a33a85a
--- /dev/null
+++ b/astro.config.mjs
@@ -0,0 +1,12 @@
+import { defineConfig } from 'astro/config';
+import mdx from '@astrojs/mdx';
+import sitemap from '@astrojs/sitemap';
+import react from "@astrojs/react";
+
+import tailwind from "@astrojs/tailwind";
+
+// https://astro.build/config
+export default defineConfig({
+ site: 'https://example.com',
+ integrations: [mdx(), sitemap(), react(), tailwind()]
+});
\ No newline at end of file
diff --git a/components.json b/components.json
new file mode 100644
index 0000000..ce6d657
--- /dev/null
+++ b/components.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "https://ui.shadcn.com/schema.json",
+ "style": "default",
+ "rsc": false,
+ "tsx": true,
+ "tailwind": {
+ "config": "tailwind.config.mjs",
+ "css": "./src/styles/global.css",
+ "baseColor": "slate",
+ "cssVariables": true,
+ "prefix": ""
+ },
+ "aliases": {
+ "components": "@/components",
+ "utils": "@/lib/utils"
+ }
+}
\ No newline at end of file
diff --git a/frontmatter.json b/frontmatter.json
deleted file mode 100644
index df56464..0000000
--- a/frontmatter.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
- "$schema": "https://frontmatter.codes/frontmatter.schema.json",
- "frontMatter.taxonomy.contentTypes": [
- {
- "name": "default",
- "pageBundle": false,
- "previewPath": null,
- "fields": [
- {
- "title": "Title",
- "name": "title",
- "type": "string"
- },
- {
- "title": "Description",
- "name": "description",
- "type": "string"
- },
- {
- "title": "Publishing date",
- "name": "date",
- "type": "datetime",
- "default": "{{now}}",
- "isPublishDate": true
- },
- {
- "title": "Content preview",
- "name": "preview",
- "type": "image"
- },
- {
- "title": "Is in draft",
- "name": "draft",
- "type": "draft"
- },
- {
- "title": "Tags",
- "name": "tags",
- "type": "tags"
- },
- {
- "title": "Categories",
- "name": "categories",
- "type": "categories"
- }
- ]
- }
- ],
- "frontMatter.framework.id": "next",
- "frontMatter.content.publicFolder": "public",
- "frontMatter.preview.host": "http://localhost:3000",
- "frontMatter.content.pageFolders": [
- {
- "title": "blog",
- "path": "[[workspace]]/src/blog"
- }
- ]
-}
\ No newline at end of file
diff --git a/next.config.js b/next.config.js
deleted file mode 100644
index 486d5c4..0000000
--- a/next.config.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/** @type {import('next').NextConfig} */
-export const nextConfig = {
- reactStrictMode: false,
- images: {
- remotePatterns: [
- {
- hostname: 'img.srizan.dev'
- },
- {
- hostname: 'res.cloudinary.com'
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/package.json b/package.json
index af4a563..2719859 100644
--- a/package.json
+++ b/package.json
@@ -1,40 +1,42 @@
{
- "name": "njs-move",
- "version": "0.1.0",
- "private": true,
+ "name": "mainwebsite",
"type": "module",
+ "version": "0.0.1",
"scripts": {
- "dev": "node src/blogPostGenerator.js && next dev",
- "build": "node src/blogPostGenerator.js && next build",
- "start": "node src/blogPostGenerator.js;next start",
- "lint": "next lint"
+ "dev": "astro dev",
+ "start": "astro dev",
+ "build": "astro check && astro build",
+ "preview": "astro preview",
+ "astro": "astro"
},
"dependencies": {
- "@emotion/react": "^11.11.1",
- "@emotion/styled": "^11.11.0",
- "@mui/lab": "^5.0.0-alpha.153",
- "@mui/material": "^5.14.18",
- "dayjs": "^1.11.10",
- "feed": "^4.2.2",
- "glob": "^10.3.10",
- "gray-matter": "^4.0.3",
- "marked": "^10.0.0",
- "next": "^14.0.3",
- "react": "^18",
- "react-dom": "^18",
- "react-icons": "^4.12.0",
- "react-markdown": "^9.0.1",
- "react-syntax-highlighter": "^15.5.0",
- "remark-gfm": "^4.0.0"
+ "@astrojs/check": "^0.7.0",
+ "@astrojs/mdx": "^3.0.1",
+ "@astrojs/react": "^3.3.4",
+ "@astrojs/rss": "^4.0.6",
+ "@astrojs/sitemap": "^3.1.5",
+ "@astrojs/tailwind": "^5.1.0",
+ "@radix-ui/react-dropdown-menu": "^2.0.6",
+ "@radix-ui/react-slot": "^1.0.2",
+ "@tryghost/content-api": "^1.11.21",
+ "@types/react": "^18.3.2",
+ "@types/react-dom": "^18.3.0",
+ "astro": "^4.8.7",
+ "class-variance-authority": "^0.7.0",
+ "clsx": "^2.1.1",
+ "lucide-react": "^0.379.0",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
+ "react-icons": "^5.2.1",
+ "tailwind-merge": "^2.3.0",
+ "tailwindcss": "^3.4.3",
+ "tailwindcss-animate": "^1.0.7",
+ "typescript": "^5.4.5"
},
"devDependencies": {
- "@types/node": "^20",
- "@types/react": "^18",
- "@types/react-dom": "^18",
- "@types/react-syntax-highlighter": "^15.5.10",
- "eslint": "^8",
- "eslint-config-next": "14.0.2",
- "typescript": "^5"
- },
- "packageManager": "yarn@4.1.1"
+ "@tailwindcss/typography": "^0.5.13",
+ "@types/tryghost__content-api": "^1.3.16",
+ "prettier": "^3.2.5",
+ "prettier-plugin-astro": "^0.14.0"
+ }
}
diff --git a/public/blog-placeholder-1.jpg b/public/blog-placeholder-1.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..74d4009b527342f03264c9caefd390aa5247b376
GIT binary patch
literal 32040
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
literal 0
HcmV?d00001
diff --git a/public/blog-placeholder-2.jpg b/public/blog-placeholder-2.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c4214b0e639a782769ea329846e51ec066b7976e
GIT binary patch
literal 33136
zcmZ6x2T+qu)HWPIEFcO3qM?aOFFqgvq>0j$4oQfFrWA$Hq=YKPLN}mDsM1>s0jZ$~
zSOTFdkbpn{CDef72}m#gJn#39c3foaN)@;^q@PfA;Ko!At!7g8clKgf0ji%LO4JVG%JA
zVWI2SrKPW52i?4R6QuRO!p6hR&2x^2_uM&Nfph222?+4=@$m|X3J3@a2#87og^mR%
zdF7gznAo)|GBT2qGBPSE|EQ?^?|7}hUjTfk*?w|-;$XW9VCQ4w;A8ts0$e^`=6?eC
zUtt5VbDTK!cLH$w|7dp^V5r%B8)Zl$NM9ccg{Xq=-Zzs}HnXDYL+@ULLX_Y*qhdrU
z5O*wCS-JNE`cQo+#O&VCu`dV;NvB9X2jVDy8BuLyya0zQ(u^eD~*hcUuoO0hT@+;P*T
z^w<-JD9!SG6zsZITIJ
z8U|NvAbZ^eC>w_bV&C%Nj+c(Zy^Xt&m391K3?>VgC|8t(lf8Ud7KrZ6X0jm27m$sOa&eKI2~Ji{qO!rz@WOqAbdV~ALIo)omzU;X1OGu;Q3cReXltw2
z5FTqiwAB}Lvt+31YZ6rfboQ%Zp=S~TxkDFGak)p2K5pMY(q+5h8g90=fRr@n|zjcY`_D
zOCItXWcH>^UtjRTT`0uRP*6Y;0)a>#n@8YMIc~1{{N`YHAh1GK((tUl;W=xrR~WhL
zNk!S&m&>r1%khTh_fTG-$^k*{beAMtEeY~63uBV-3U>icL0o+7=85yf7i1b#8j3v2Q2IE~H7=QV_o2WOulQv2?J$)!h9|%|C**iXU0o{c
zmmd4Lo7>iv=$l(tVk=ivpjY*%8MWUn5dEKRpMWxCii_o-8QDW7^*wk4O&-YilDxC-
zhq~d
z8-rW-5`e0>-qA9GN5lPc*RWCKExR))&L?4aadIEJY9#VFPheX*CU?C)`M4G^QM4a
zEN8}5uG)o?aF|Wya#@fq!w39NnTNsK(?fO%UaGuvCf%PO^DE|X)yCQ-RAr!jGzp7v
zMa{CJA2k@;yMw4lMHje6+2r{zf?R5Iy6r|?6q<7-IR!-(E$V&iebl_Hmd)YUf)G5C
zHn*&AOX0y-0U+^KQN-H>5c>rDdgNYx=?X4UUl&fM_OT0
z&1nrxOu&5q8O}QbNaD@5a|6xPvU;^Xs1_*hqIdH&qEZ#uV{0W1Jllzqa(PX%PEUw=
zRlKxfv}n_!)`;p~B4#7=u4!-QxvS?$oLH=_dtwwQY0D+oWB9o4;)8^%F9Mf@Epkoq
zV4UX7%Eolp@NVp5#2`!RiOi3_b9$qCcRp8sKUvFXVC&L*&)89(U|vS7T!EGa0}0tv
z%3K!eCz_H5|Fz#?<|>@v9j}FE#otWi*6fFwd-_Z`s!iTyP)ou_V^Q>n9%_Q_?~NY3M&;Dr(pP-j
z)qg)zmG`b)CFzx8h$d1CsrE<9XbGsj);(crM!*h6ZtUHHYt-%S`u%y>-@7%d#Yo$;Tsp&Xo
zGF9U^AJj!#PMcQs(i|upx+w5^(1iVTOn3U_`=8Vvj$VC{q(Isn!I!QswZNTT4Pqv)
zQV`b+Gljc0vb*Z+#5^m(?^Eu@cz+gr+fCQYHkB2ev^SrmB1J9D{wN|0koq?*klA(c
z?prck{Xd7?l)`0BSAM!~n0`WpnsYN;RMTgsG0;aa=fStC*9)pzG(7K
zlf2Bu`|J{Zi7z$#PP*Fl&6w5|SKpy6P5Dyuy2uZZ$@hMN^xr+G!wn+eC+5_pJ)P5+
zdsNt$1@&>a5MzC87qd|e*3m3ZZ=R^iQRGN}r@CqwM0!Ik&27*$qkEW`xU~DYE
z+B!);;Y5H&*ve@=$u|l$DEFI{U*r0%e$}0GHX<~R1rwF(+Dtuc8}i&o6@jmr1Md8a
zc3)=2!roIeHQuA%p8Ch`o=9^kSD)K|Wad92!|{J{nPURReu9(Zf5;3w?=i*c{*UIc
zxtsnE+hOnhkDvhn0{`ibe}w=}0Nb&b06+!+IC%xY_1}N#2W0@8p1`pY@bK7PD8Qx%
zFaxm1SP2LKIAg+MxY(cHxuXZ*=mr$Z$P^Y90{G_G^kl5>CJ6x8we^m@Y?5ST01`hh
z9yiMbiemvMKz%ZtT(Tx*0>^5C9w(PI)WqgLwFleX^fIVix|PgxU?C@$4cZfGVpaR%
z1O;GKCU?v=(u?$XJpnQ{I2=Jy4pYd^!^MMvfi}GRDJ7Is
z0Effd5}k|H006<@A4j&g1T}3Q))%qsM#P
zkl_T#JO{*F0a$Ue$2@q>c5IE2k+Hh+oShxO#r`6e>pHK*@xB!n8FC3-=R0v4z#c0g
zQ=EAE6|WwEQ^49pz@b>;wB8kkqPv)4Oo_}Z1Kt=w8JA6ZnUKmccaFKES0;PRkjzL4
z2?kdH#mCsoLL3Yd-kyH-!AdUacqh>wi7*>QxDV4F+#=j34;I
z{R;*OcVuKuP3rMbld{F@X$Eh3V{DS@8=$smNL9f7V|U(kK~vid9BvqwnVxp6;7z`0
zLxAIs!G)SEW?xUc*K_&<^uJxh9ZU25V~v4cx~vZz4?PAP8rpO7KLwW}{1|dL6e^$I
zpZ54(LWY1GZlV!Kg+gVIJ)~R=u5f`(ZK?R*iVDI$me#hN3jepF}G
z=1f3kv=JU`lhiRX@QviR!=kKVW;Xn?z6mWxJsO{N?ilI%rCxoL{M7$K52c#gv9Ps&
zW)=Yqk8Rt;5{~lK&vcw!YaW~Z3rIxnPW5h{jtWvWIl7kQSzzpF*$hu9v)q)o`3uPK
z+W=W#ZVJ);b(>=PyMUxg!(z?w1z_Y}BtO>WxA5l1?k&+q0M!H1DmS7D5!BY?wJ{>Xf3L|hq=(9
z!bEB@{l0R1Tb?@^LOF7kWtQ(9-llBGWEt6!{sIJc
zXxdKk9r(Wh-N!9hr+sd(z7TMv*VXHunH|IUfRBB9$FL#A4hKTxF**5?(YFgbDzHb3j=czvgVEOf
z5D-`O2TE1e;WpN|6@8@rMSUUIq&&+DyAvNs9!msI4d_^6ttDDh%3#a8v0Xp;p}J*8
zCDlWFaX)qCU@5b81|zq(JCvQu-?8&V5p_O
z7kQK)B3|s1qm{aQc=98;`aW|$^f@C)Z<7o4t(@mu*J40h@5<=yg(%IaLWdPbX!A}k
zV<;BEPS?`Wf*t*?j9yX9eMO{ucbn4OHjfb%1P;4@@WYTQczCz!dU4!efXN?=1HHBrdk<|BsWcWepzY5q#Uc5KTqNb7Zti(Yspl}q
zbP<&wSMYRF{y;TK-lohKF}~gG2h(rcyifq{8aFsVcvbxZQw|1y=QejVw~z0-JAG_y
zx#0CJaHr#YWG_Z0ahkE>w2)+2jnvFk*TqFWVk{<*4=nxyc-jRitj*Ts1AWJ@z8xm&
zI$=2xkBfX!y&XgP|N8tHqeT5016PwDS0JiZ0?T1jUz}44ofD!H?Kfo$Le7jR)Rup=
z*wo%hwK~tI<7+z}W#@#H?`JWEbMUKG2T=ticG!-jN_)a{^#ywhc3a$?+_Jt+Tia;a
z8-t4KPdZm5{4trbXpNb%(m}u|Q45QUICmioEO8gjI2BN4u}SNgwVuS-$*?eAt{;*x
z;9bcyV)YOWBUCJIpV@k-#i))vj*P}3T8HBOQ?TXP=o8h8f5rmZz8x$VEFh{Db0uz5
zXxkc0uVxsHrAoBjd{+bqu&Ie&Jrfo`8G
zLk1)@SHKT%Z#X^fzCb+D!h&+_dVT((Qjv^}`UTbKNI1Xo#EPQB4<&r!f}=L~BsYWO
z{Yx2|=!Ftm>0WMPB!XjHxQ)M^5t;`?Gj)2KM`y#&SdDMZ{GyFHS`cMgntt?3EoMWf
z=P5d&qG0T9PIXJZq+xi${@Cotoz-T1PWjeOzT}9O^jO?VGY(y=;~TaK#I28QSfQDb
z?;K6H&n?cL&&5DU@N>h}q`f?Iuu#868RFL%W_#{A7ITPPn?asuDc`^@+R)oRZOB_`
z6=d=3rz}(icJ5H9mS4qn-O2FSyNA6MO|w~(RMB4aTKjm%FL4rXUp;C*GAcJGX(o{#
zfM2K2(WsV~WCKQsOonj5E`75)^3}#|N<>c6?>)tpKgy7E%ZXIu5ljwcWhsX_KmBp7
zJTi2B3_2?T#^r9X&j=m#$}@?9L6!&j9NnMJ6MM|)3kfE56ui&aa{J=Y9xQiahEA}!
z1s(066c)JomWAh+OmP6K16eYx=?;FD*3gu#A?Z+?OwsPGpdhxjH@PstW&=xHzAr4p
zj}lFq1&bnu*TDUlHHP0fhd+){pk|@_g!artwkf1`KD?lhA51#S=^RLPF$qLU4*JfVD8Z%)S
z8UX>rI+yst<1{Z<&t{vWx%0KqKuuq3EmtS0cmh)N^A)?>d^3T`w@EC*z~J6eK@=!F
zvuSEu+Z5}+Ej-qNjsB(GYxyPg_Fd-!tr1~{FcZe&XI{ved4l0*gkIa+3!ybdw`|Hk
zEm=K|g9hPLFRMs{oFiEl6%o0szykjTc!BRn-i`udLnx)f2xiH+e)8(=8@_)
zW^?NzdU9>BH3x&Ht!#|^ELhqk`~}Q=VXey|$2PPFc4La$elGxHGk0&C%8zVlSq3AGa=Y>(D0^J;pv$AB`0H8Gpc}3}h*FmY{OjnEPHNj-;&0n;ZrLwy&Fla>_j^lYVvz_2aFT2u(@yqOa2RBP&NNKqsNWY5@2Xi7GQ(q(sJG1?!HN76oiLK@p
zT1Q~Lj>DYPw(Qy`+xdKkE{Zc+ur>BwbbQD(-q~?ebG+F&(n5_&BKl*aoy%t2R?Iep
z+klb1v=W-Kgrn`ke$MX@`tr&$P{(US6d{Dv9?)Wdo{q5P6E#apv9sm5tlL7G9XD6N
z$2=MvJ-2?cUXO^+rA*`C@0`Dhns_Y{R_v?2H2wnK;8_}(+O(<3=DVBxcelc>SpONL
zHd?w(kv9ObFPwU{(w(!NfVrA^M_xe|a*m!LEJ}Jx3zMUCX_CeYAcBvfnL!l_AvMOp
z^7BwIV_2;ruv1yA$Fxyu6M)BV&L;bL@);v#(erAjryMq>r+z2a9nJX8W8DOpuuQx~
z`GEr+(*YO@r-x0mMznQTEV7tEy-;prrgGa=iG2Vz8j
zbtNnVQ5ek+o!(~wr?(Fn)x{y(8oeD)$xN_JW6S2G;1&7q@>YD147pqA*eg1b*0vJ<(Q;XUn4RW_tC%69cO)0k<|eWReP-V
z{n#Bwiahd$Rk2cgUu?+Jy@xsjp{sJCO*VF*-Mq+e%v!u7rPL)lMn3T1LOT=Lo|H35
zcVy~(8LYs?UjLBOrXL9@*{Q(d(>JwN^u1`l^XWvnd1-o|T*|iWDi%)h0C6~4%(M;%
zpJVnejrro{ts_$MJ_v=_px&sv6;i)#s+2NqdVQHCk%PK+&fyhp&e1k~t$Eurn(l7i
z6pI2-4Nz-*CKHbHPIqXt=7~>0C2DG>Z)=Q<>p(1Zz2NE7^VaQKztQ*GY(SB4?<*6l_$942Ew+`{uwuuE3)Z_~DI%Hocbzr1fu3nVx&%fmY|cU*XC?&hQ|M
zaTv{KEzl?p)_Af2POx-(ctVzj#I{jZu+C5M)2OnY**~PM-+BzGDi2VN=^p+DELxlo
z$q+t>4b7XLb?)beV_Oo3}d7c=MI~KliVd5$nmu_t}-4ef#-_NuDiBI56E6~zt
zzsehBiwLt=jLw;|<7L%1V2ug#Fq;Mur13rf@%s=l)v@QDEjgx5)2X-f_g1RYaUqki
ztqf;(At>-jV6-eB#7p(?O`<8IeF(>lL%2QBFY&PDH)#w8FDobbwO9m@{epueVyQy13DU}p#Ca*Z@n9A+N
z9A~(f>DWix@(2Fg6Yloje*u13mZE3%n?^U)REkm;pqk6$V5CwO*P+i$K%%jm+6vfK
zu)afWIQJ@a1Z1C+uDo&y?q@wx^&)Se+G>UQhPDxyXz-`k`*AgPp6AN|6|jTKYdyIw
zA9?*5Vm2IopnuuWakVSq?Rn8iEp$|rWaxtene@Yz)_kP)r}=aFL#mU2
zXdTeLdjyRh^7H&G7{)$Dn5oLS3o$+#J7=+Iu+s0XTV?HAaYWs|t<&(%rXw3hDc`61
z=XJO{{S1FmU~}N>wZVOPms#bvJG;FnNcZsz9ymt?!G3vQ4SBi-PJ~NVB%1Mj6HXcv
zt4Pw~W66HdB0yMHBX;K1K?Q5~r^*X6+f3wwpEo=IqCV*LTZtafQ8<^Bq8pJTma`F<
zycP+IZwr$b>yEmM;5;NjsG6wmSokW0lYH`nJ7HH8rAj
z!w#BvX=a#MEo-{O)f(d2<5k(Djjvu$ND~LKKRn
zVd7YlJ?KUq7D_Y?(a~e?)*R4MlW{Es3mt@g5jrwRn8g=)7mqF7ypVKNa7$Rb
z_lCbN@jiBp!VSV~Z@t!-?n7^?2Qq}8L?lKhF{H6ho42`iwn`2
zdc!(L&D+ht(Li>kec$x&{qt?>WEmhP4v0^iyz_=Ep%(hjTz6@+MutZ(t)eA^EX@V-&^FJw!nYwWV#-icvDJyQN4ofMbN1$GuTc7
z!>hey)-xBbuB#pXoL(l|&;(JgYMpXM1q;dt<^HqIs{nbPYHHoeywnTl#`ziWAc9v)
z{k4sWxGK$me}F$In`WGECRv*M?&SuPw^HB8Gp9@(63M{~H<;tgALRBz!1P38nd`v;
z;>R*780s+P{HRv6YkL1zo5{cLx;8ba^E`gd`c9`dz)(lCc$)SnmZnGIBlvqK=V)ms
zVw895@9Kb#9!S3a)!*Mkzf0a?V-*HnqzoO
z$l{zf-ZBZBQjOzKM1scB&G}XW#T+3U1mlM)Z{l?GMyXc>_A%C$nJjsDv1BHsV8w;9
z(%vu=%lbtgvpDF}y1Xz7nl47Prr)+^W*bHv%IjnGHUnp#Qqw+?eaGR|p!wAH92QNx
z?X%J~CVgSvd%Kz!p1zeMmz?WS&_CI6#*q=dIhzRE-M@NPiE)Y8G<$aTIi!y`r{@(Z
z(eaN{nPB&Kk$^wwv>D_(1HZ1Ki1xlCr)zgAgW89g^(=nESnw-<^%1d!+wyZ3x)O%D
zg;OEiCe%NQG$7elsv~$dhc>Ia^R)d{LTiHLw)kW*nZU443r%R*fX_T0qE$Bdi?;RF
z$Z0Iqmc=BpZH$aIYOr=%Ero|3Fmt?GD$IyPFujJEydTnnY7PNsly5St)&ko;;HHL6
z+8n&S%HNE>XjnEJbGYOCD7$uT_+)Jh-7=9!BML6$&OGx*5&47oifALAIu6m3(@S|5
zIEELx(Dm#9G+cFb>Cs;RycuQ=Q50UT-_#hl
zD9_0Ms-)}Lm3zi6=ywHSz|lefu~v_!9;)Sh#+om_M{e+^9}QWjs2FM7ihVP^WxEVt
zYkzO=Rlc+OLq|BH9pT%(x!u`D7XMc~u;XT(efsU#V164SGYktU!8&J6mluf35n#Oy
zj~BBoF=K7Mdy_B_$c^r~f)dH^hsy~P{01w=Uj5#1>W)tA)S}_mTYLnaE!>K2kAF~lS1QcYC?P*9H@KHM>
zwQS56gj12}&I)FEZB&kOjS3%=qc!!%ExY0e{bpYC%_Olt<<4hRolUu!v;Hc-rysPH
zeKof46Gz3R?Wg-=?F0?z=(GNC---93o42MsP`|$)jSerM-brBS)FF+Ws@I^9j^9ZFd4m=b*yk_cvP-Zxo>EN+oovzg#QLS~@z(!?jQ28;)^t_Oj`wEz&r>A7vGLu3zD5L&dn--(-7zYZPJYi>)~x?dS25F2sJ+Hn^l0i_
zzu{Pzl-i}zk_62l-^dnV_>X1odl&aL#@x0TO`;^P$T1PWrXOk!1V)(z=CVf{R1lAB
z&6p`!j5Hyrb`G_5z@Mjvd{FMVfYM4LUhGvDO{9@g;4-!m;?$Sv7V;^g3mDs3jE&P;
zd$5h+*s*{o2BoyC3axj8185B}&as5CJn|id>c_^Gxlu)=#?a;i2NTfkv&Gf&u@KAk
zJl{gKQ4a_VTs<4s^|YBaP%r3iH#n-nf^mXe0sByUH8GN0TDZp2eo8@Z__n#&%D
zlLYis>xY>f?}}(8C+hN)l{dwxV{b_~CKs2rZI6x!r`z2UW#F4!-yr;_b?y6_TVVR7
zo6eUTTHo7?_TsBh>x{_-qzIhI7zcz48+U^7qNXvK+Zp@A$?mhla%Q
zbrBKtj9Z?$eNs@l{sP~(;`?SbAN8@tWUwN!HT=vX)Pg5cqY9YqN>Of08)gN~J7A|}lAs|o9t^E`C_h^wx~4d2}|OUiT34?4Ge`F8sB
zC^Rw;f*$i??YYH=EEp(u-Oj
zIV48p`0n#4tqka=hTS1jBK2;0`FAC;2$XY&vk7Mc-=MV)SV}LVT^C@^qbNsgqALAsUgwtzDVG+q5SW`Barmi5bS>Kv-8Ms
z(!X24(S8`}>Y&z^|KK*%^Ic@QZqR}Gj;vaL&59hxnR)-S`JeYMwq@oG{ChkyOBq6`
zOeDNLZrh))If6IE&R<2&
z7<&=NMNxB0bxJ8^nyCRSSM$O^a8!zH&5DzqfyuC^@~{bO{=D`6L~K|l{0XfZ%oJ;{6SRrV?9Ao<-J)DA;9&OI`U&wflG;
zd~P7=v~$2Dl}}@es7wx5OU>{x@+YHS7kbLsni_}FpES9+Of4ziFhU6{lLFey{E42y
z;R)Xje!T7zA>aw8`Vg-6t6~}@k6@O_9;EVSU~<>+qDX!EIoULES(G$1>HXdITjJvX
zbTMqEn0BMH)6kUl*{M~n52P03h%DdDwm*1f@Vp-ES>uc8KT3n0BJrq`EtH?v948+1
zR#lM5EiWHo=-YBR_YXdNX%v214ZMLiXcHY){qQlOWxS>MW%=yf&b>sZTAA5zxZy@$
z4a`o=Bret;-V_6|to1i*PfJ?uT?vne&X-Y`-o27}eO^yR-xguXuHsJ|QW(WI=ObeC
zB|X~@!t+9p(~1MK;qF*I_Gqf!O1fLOEX1N$?E|Cb*;wG#nvmxRo-k%zXQrLktG#87
zY#dCI!R&zOQv@(G3>RvsEe`qU-)^q2;yWs8;f`(Q2-y?4?YD2@V*zK{!Ff5->UoA*A;u>Iym
zcf(EDKXEhMe+~_o*#N@v2{&p&7?O=g6j8E%^Fc3S?J=lBfk%jX&3DSFu>t*I%;u99
zemONkeKztWv$8wgs5wNL?0Ddp`OCC20Va2ay9E`B4Q7+;!^b#-JBb|MJj3SF6XJ^w1ScXDH#O$!HiW4s`i2Kl=AzJLiUAAr#
zv5r%<*m1UYrV#8Y*NullQR=f2AwfQCzHsU?oGVV9Rw(~C{+ve&c^QpC4`>hra~3$6MMmN_EjS{{xC5Go(q*Ir~S3|ELUPOfy;g97%w
zA~SCO1q^{j4BAZV98YdJOq}`do02wTX@v8?fpNYA29|Yo5%!c@xZAH~9zHtM>}$z7
zurTA+n73Ikw_!ccxN+su2>!ckQkX+{#CzC{bpKG4UeDbg)Ed>7HN@(>!nl;4Q?I}y
zCDry=Q%>;nJgR?t_O*kam#>z2QDTW$U1yzA8DiJ(lcQyO5lRR#jtox9w7(O4-GuDi
z+_h<_L7&4+RVhqAs6IYd`|vU?GxfdkhsLUp#)=Bn`@g%_x>-FRrf;b;PAPbDzj&_Pv`>mH_M2tYUAEOH8KCJK+RJ
z%S<;whjInKxXig(si~OxlR|nh&t_LS~2NGV#~T^?RKy&CX?IgWh-|c65}&H
zja?#BEJX!n)@hO7geW?SgF4LqNC)LMU)RR{7*3}@!6p}z3Ph4}`*(7xZeMQ_LF^M6
z*MJAN1#E1O>=oL8WT5GI*GF_{MYlxPr#K#w7JXM0k(!Ea&RL#ee27h^c=a@Rs$R(M
zS~>o@-^69>q~Cu5hbM)5m+HJo%^9lKyvz0r_<={$`W+`5!D_$LpS^pkY~A|a!L-;v
zfHNyqA?Xhvrr0@DK0_k`r&}JfC?j^v_P?yO%24Z`rYgA^Y+CmsaF|gmZ$n
zrXb>|n{BiPPl`Xs8;8N1o$sz>R9f;5)5oXw(w5Ex0aeaJVbR8C)*+`PIzaFnG6JJN
zbxpGpam4v9yhCM0J$RWIc^4q}G`)|RUxl(1qEYu=wlO*7Uj0~Ut4=t-l}0GL>S-D;(ypU#SgK5D%W5HzDk6WC
zwogse&$7qgH~Mq5(j^=GRdi?w-{jKlVP_{>8mlpkXup9EJD()CKAz}&sS5C2vl?$6sax*r5v65^P02q6
z=u!GO`{!hVdym49;EH#;s`Yh{%h1`6sg{ysPp+RezjoJT$ly*rMLEoI@~yMd7;tFV
zJtg;w+in5na8%BPFcfHkdzOLAHE(_4+nrJ-nyXTo8*W5vRVg9a+a7^B+ZXf%a+ESf
zA0J|}#%&sH%N;Ay1{clW+Ne_z)k3X$d%0~li%&&bXtuue*=buT@qlnwkwo&AYhYN%
zXLiX)Fgmgrt@2R9=)Iq$m6RO4rS9TOX+s@^xUg1ijNhfneUtPn)A4k@x}-@65_Pug
z4M=aPBh|@!ViNOkM%teqLF;186W%+ZASJ?gq+|r-g~=7hslNk+H1Rz}|C(R6!?;}b
zF1#ULA!1aNB5&Gt8Ep8K`7SXTs+8PvieFm3(tm-N^18OrJA;5exy*}(&Yim2m2^mK
zhL8Av1;{?(-`YGO0L<3@?w_K|+I`s6y8KlF!V$C1mi7C)Oov#!uwSF7&8G^~iSli|
zwToM_lZZ1tE&g-w1HL!=?vaO1%(qC`i=v?EU$EI?POnHG^N?wxH!ik0
z%AmPyS6pjB{vX#_R@FRwbg{R5am4IL>ID%_rnJ$q>jo`f6uaFr|GV+siSDrDD;~8AQ~0jY1O1C*lJ%Y~4c<~lOGByM
zVLw~~b&SPy6#Zf0dFw|bygUq72kez+#OagwVFA@wQJP+2&&6e=e|OeCR|d$=4~ufX
ze;5$ZP3z<9V!B8?d!ga>5%S*b)q2eOif~uT9hKS|lKhb>Nm!=MwYKEue8&
z()n2O)pd212ER+})R!fl{YL5UUq>k|NM2TyNbOX4BBbAhzPkdvVe5t=f0>d9I3Z2RXu
zy(PxHYFUKV?D45OHe-pVS@}bJQjqmjOikey>!y#o9d3?q+_B%2RQGx(Q)9`fqAxSS
z)edg|cJ#(QHDwY|UFEBiWtm6U_S>{QT^AXoLn7m&e~nyu
z{F=3Ze8rf})J|^uHhy%0a91U61=j-S`uClFnD03ZW6`9-6(I+!sPB-d5)9+b`Jp
zWb)oy4lj)F@e_SKryMc2EJ!NM8dES!YqFuI-ruNv97;FRSnXa?Y3SN2PU0P)?HpKoy9?Q`MEN=?8CQ!-DbaptEMsz9*s+2fpidPq=s54wUsc
zJ-=myJRqW}dK%3_^3vBtZKQ0+l?g9>wN42O3A4KVr_kvf@8FgbWw46_m2*jP!jOS#%Xk+NKaK-OuoIqm%*y;S=
zHCauCn({+N*O0OtVDaVU&NwdJYq68y)V|2)p5UT;uAwW%ECpIc#>7keT8(FriHvDS
zj)^siAY|rs2ho%A8A?U{q~UB=Lq#PG;Hv+Z%BIFw%6;uM-93F`SIlZOsxLWayQj+b
zPE6lK`K%;qOp+V|ZfQ9Z^iIKT>&)f9;ev31oVA;A5f@j1xkMK@$H6d@Nv!TQueHe>kCB{TvH|eyB5en
zmT&y~zz&AH<}PsZ*??(<&JRSN)X}Rxh7IJDggM2^&t#EGi7*$!4Ef)(hmKMYp)Qkm
z_p1|JxB$bxq^d%qz6`iTlq4zudVz3YA-F5Q