diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 628fbd10..0a235b1d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -42,7 +42,7 @@ devDependencies:
     version: 0.5.9(tailwindcss@3.3.2)
   '@types/node':
     specifier: ^20.1.1
-    version: 20.1.1
+    version: 20.2.1
   '@types/unist':
     specifier: ^2.0.6
     version: 2.0.6
@@ -96,7 +96,7 @@ devDependencies:
     version: 0.10.6(svelte@3.59.1)
   netlify-cli:
     specifier: ^15.0.2
-    version: 15.0.2(@types/node@20.1.1)(typescript@5.0.4)
+    version: 15.0.2(@types/node@20.2.1)(typescript@5.0.4)
   npm-run-all:
     specifier: ^4.1.5
     version: 4.1.5
@@ -171,7 +171,7 @@ devDependencies:
     version: 0.51.12(postcss@8.4.23)(rollup@3.21.5)(vite@4.3.5)
   vite:
     specifier: ^4.3.5
-    version: 4.3.5(@types/node@20.1.1)
+    version: 4.3.5(@types/node@20.2.1)
   vite-imagetools:
     specifier: ^4.0.19
     version: 4.0.19(rollup@3.21.5)
@@ -1851,7 +1851,7 @@ packages:
     dependencies:
       '@types/istanbul-lib-coverage': 2.0.4
       '@types/istanbul-reports': 3.0.1
-      '@types/node': 20.1.1
+      '@types/node': 20.2.1
       '@types/yargs': 16.0.5
       chalk: 4.1.2
     dev: true
@@ -1959,7 +1959,7 @@ packages:
       yargs: 17.7.2
     dev: true
 
-  /@netlify/build@29.11.1(@types/node@20.1.1):
+  /@netlify/build@29.11.1(@types/node@20.2.1):
     resolution: {integrity: sha512-Z/Be2ZzENeLvsuXBs2NaeVch5okHC8epIddP3HZqctcoqrrxNbDwfO/J7CT3kXfdjWmdxcFYh2aVcFPM3WdBsg==}
     engines: {node: ^14.16.0 || >=16.0.0}
     hasBin: true
@@ -2013,7 +2013,7 @@ packages:
       supports-color: 9.3.1
       terminal-link: 3.0.0
       tmp-promise: 3.0.3
-      ts-node: 10.9.1(@types/node@20.1.1)(typescript@5.0.4)
+      ts-node: 10.9.1(@types/node@20.2.1)(typescript@5.0.4)
       typescript: 5.0.4
       uuid: 8.3.2
       yargs: 17.7.2
@@ -2942,7 +2942,7 @@ packages:
       svelte: 3.59.1
       tiny-glob: 0.2.9
       undici: 5.22.0
-      vite: 4.3.5(@types/node@20.1.1)
+      vite: 4.3.5(@types/node@20.2.1)
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -2960,7 +2960,7 @@ packages:
       magic-string: 0.30.0
       svelte: 3.59.1
       svelte-hmr: 0.15.1(svelte@3.59.1)
-      vite: 4.3.5(@types/node@20.1.1)
+      vite: 4.3.5(@types/node@20.2.1)
       vitefu: 0.2.4(vite@4.3.5)
     transitivePeerDependencies:
       - supports-color
@@ -3014,7 +3014,7 @@ packages:
   /@types/decompress@4.2.4:
     resolution: {integrity: sha512-/C8kTMRTNiNuWGl5nEyKbPiMv6HA+0RbEXzFhFBEzASM6+oa4tJro9b8nj7eRlOFfuLdzUU+DS/GPDlvvzMOhA==}
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.2.1
     dev: true
 
   /@types/download@8.0.2:
@@ -3022,7 +3022,7 @@ packages:
     dependencies:
       '@types/decompress': 4.2.4
       '@types/got': 9.6.12
-      '@types/node': 20.1.1
+      '@types/node': 20.2.1
     dev: true
 
   /@types/estree@0.0.39:
@@ -3037,13 +3037,13 @@ packages:
     resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
     dependencies:
       '@types/minimatch': 5.1.2
-      '@types/node': 20.1.1
+      '@types/node': 20.2.1
     dev: true
 
   /@types/got@9.6.12:
     resolution: {integrity: sha512-X4pj/HGHbXVLqTpKjA2ahI4rV/nNBc9mGO2I/0CgAra+F2dKgMXnENv2SRpemScBzBAI4vMelIVYViQxlSE6xA==}
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.2.1
       '@types/tough-cookie': 4.0.2
       form-data: 2.5.1
     dev: true
@@ -3061,7 +3061,7 @@ packages:
   /@types/http-proxy@1.17.11:
     resolution: {integrity: sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==}
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.2.1
     dev: true
 
   /@types/istanbul-lib-coverage@2.0.4:
@@ -3087,7 +3087,7 @@ packages:
   /@types/keyv@3.1.4:
     resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.2.1
     dev: true
 
   /@types/mdast@3.0.11:
@@ -3107,12 +3107,12 @@ packages:
   /@types/node-fetch@2.6.3:
     resolution: {integrity: sha512-ETTL1mOEdq/sxUtgtOhKjyB2Irra4cjxksvcMUR5Zr4n+PxVhsCD9WS46oPbHL3et9Zde7CNRr+WUNlcHvsX+w==}
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.2.1
       form-data: 3.0.1
     dev: true
 
-  /@types/node@20.1.1:
-    resolution: {integrity: sha512-uKBEevTNb+l6/aCQaKVnUModfEMjAl98lw2Si9P5y4hLu9tm6AlX2ZIoXZX6Wh9lJueYPrGPKk5WMCNHg/u6/A==}
+  /@types/node@20.2.1:
+    resolution: {integrity: sha512-DqJociPbZP1lbZ5SQPk4oag6W7AyaGMO6gSfRwq3PWl4PXTwJpRQJhDq4W0kzrg3w6tJ1SwlvGZ5uKFHY13LIg==}
     dev: true
 
   /@types/normalize-package-data@2.4.1:
@@ -3126,13 +3126,13 @@ packages:
   /@types/resolve@1.17.1:
     resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==}
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.2.1
     dev: true
 
   /@types/responselike@1.0.0:
     resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==}
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.2.1
     dev: true
 
   /@types/retry@0.12.1:
@@ -3173,7 +3173,7 @@ packages:
     resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==}
     requiresBuild: true
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.2.1
     dev: true
     optional: true
 
@@ -3521,7 +3521,7 @@ packages:
       chokidar: 3.5.3
       fast-glob: 3.2.12
       magic-string: 0.30.0
-      vite: 4.3.5(@types/node@20.1.1)
+      vite: 4.3.5(@types/node@20.2.1)
     transitivePeerDependencies:
       - rollup
     dev: true
@@ -7752,7 +7752,7 @@ packages:
     resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==}
     engines: {node: '>= 10.13.0'}
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.2.1
       merge-stream: 2.0.0
       supports-color: 7.2.0
     dev: true
@@ -8998,7 +8998,7 @@ packages:
     resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==}
     dev: true
 
-  /netlify-cli@15.0.2(@types/node@20.1.1)(typescript@5.0.4):
+  /netlify-cli@15.0.2(@types/node@20.2.1)(typescript@5.0.4):
     resolution: {integrity: sha512-QCxY1uGEAhhm5ZJhMf0w1jrNjaUzk0w72dmzfX1STxMPCicSUXkQHHZxuV1jrSlJIZm+WDzkq5C/omrbp/SMig==}
     engines: {node: ^14.18.0 || >=16.0.0}
     hasBin: true
@@ -9006,7 +9006,7 @@ packages:
     dependencies:
       '@bugsnag/js': 7.20.2
       '@fastify/static': 6.10.1
-      '@netlify/build': 29.11.1(@types/node@20.1.1)
+      '@netlify/build': 29.11.1(@types/node@20.2.1)
       '@netlify/build-info': 7.0.1
       '@netlify/config': 20.4.1
       '@netlify/edge-bundler': 8.14.1
@@ -11985,7 +11985,7 @@ packages:
     resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
     dev: true
 
-  /ts-node@10.9.1(@types/node@20.1.1)(typescript@5.0.4):
+  /ts-node@10.9.1(@types/node@20.2.1)(typescript@5.0.4):
     resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
     hasBin: true
     peerDependencies:
@@ -12004,7 +12004,7 @@ packages:
       '@tsconfig/node12': 1.0.11
       '@tsconfig/node14': 1.0.3
       '@tsconfig/node16': 1.0.3
-      '@types/node': 20.1.1
+      '@types/node': 20.2.1
       acorn: 8.8.2
       acorn-walk: 8.2.0
       arg: 4.1.3
@@ -12515,14 +12515,14 @@ packages:
       fast-glob: 3.2.12
       pretty-bytes: 6.1.0
       rollup: 3.21.5
-      vite: 4.3.5(@types/node@20.1.1)
+      vite: 4.3.5(@types/node@20.2.1)
       workbox-build: 6.5.4
       workbox-window: 6.5.4
     transitivePeerDependencies:
       - supports-color
     dev: true
 
-  /vite@4.3.5(@types/node@20.1.1):
+  /vite@4.3.5(@types/node@20.2.1):
     resolution: {integrity: sha512-0gEnL9wiRFxgz40o/i/eTBwm+NEbpUeTWhzKrZDSdKm6nplj+z4lKz8ANDgildxHm47Vg8EUia0aicKbawUVVA==}
     engines: {node: ^14.18.0 || >=16.0.0}
     hasBin: true
@@ -12547,7 +12547,7 @@ packages:
       terser:
         optional: true
     dependencies:
-      '@types/node': 20.1.1
+      '@types/node': 20.2.1
       esbuild: 0.17.18
       postcss: 8.4.23
       rollup: 3.21.5
@@ -12563,7 +12563,7 @@ packages:
       vite:
         optional: true
     dependencies:
-      vite: 4.3.5(@types/node@20.1.1)
+      vite: 4.3.5(@types/node@20.2.1)
     dev: true
 
   /vscode-oniguruma@1.7.0:
diff --git a/src/app.pcss b/src/app.pcss
index de89e016..2d15caf8 100644
--- a/src/app.pcss
+++ b/src/app.pcss
@@ -56,7 +56,12 @@ html {
 /* .urara-prose a */
 
 .urara-prose :is(p, li) > a {
-  @apply bg-[length:100%_0.2em] hover:bg-[length:100%_100%] bg-[position:0_88%] bg-gradient-to-t from-secondary/50 to-secondary/40 bg-no-repeat transition-all ease-in-out !no-underline;
+  @apply underline 
+  font-normal 
+  hover:decoration-red-700/50
+  hover:text-red-700 
+  decoration-2
+  underline-offset-4  decoration-gray-700/30;
 }
 
 /* .urara-prose misc */
diff --git a/vite.config.ts.timestamp-1684429627933-63a6906442cd4.mjs b/vite.config.ts.timestamp-1684429627933-63a6906442cd4.mjs
new file mode 100644
index 00000000..3fbec8ff
--- /dev/null
+++ b/vite.config.ts.timestamp-1684429627933-63a6906442cd4.mjs
@@ -0,0 +1,123 @@
+// vite.config.ts
+import { defineConfig } from "file:///Users/seviche/Desktop/Urara-Blog/node_modules/.pnpm/vite@4.3.5_@types+node@20.2.1/node_modules/vite/dist/node/index.js";
+import UnoCSS from "file:///Users/seviche/Desktop/Urara-Blog/node_modules/.pnpm/unocss@0.51.12_postcss@8.4.23_rollup@3.21.5_vite@4.3.5/node_modules/unocss/dist/vite.mjs";
+import { presetTagify, presetIcons } from "file:///Users/seviche/Desktop/Urara-Blog/node_modules/.pnpm/unocss@0.51.12_postcss@8.4.23_rollup@3.21.5_vite@4.3.5/node_modules/unocss/dist/index.mjs";
+import extractorSvelte from "file:///Users/seviche/Desktop/Urara-Blog/node_modules/.pnpm/@unocss+extractor-svelte@0.51.12/node_modules/@unocss/extractor-svelte/dist/index.mjs";
+import { imagetools } from "file:///Users/seviche/Desktop/Urara-Blog/node_modules/.pnpm/vite-imagetools@4.0.19_rollup@3.21.5/node_modules/vite-imagetools/dist/index.mjs";
+import { sveltekit as SvelteKit } from "file:///Users/seviche/Desktop/Urara-Blog/node_modules/.pnpm/@sveltejs+kit@1.16.2_svelte@3.59.1_vite@4.3.5/node_modules/@sveltejs/kit/src/exports/vite/index.js";
+import { SvelteKitPWA } from "file:///Users/seviche/Desktop/Urara-Blog/node_modules/.pnpm/@vite-pwa+sveltekit@0.2.1_@sveltejs+kit@1.16.2_vite-plugin-pwa@0.14.7/node_modules/@vite-pwa/sveltekit/dist/index.mjs";
+import TailwindCSS from "file:///Users/seviche/Desktop/Urara-Blog/node_modules/.pnpm/tailwindcss@3.3.2/node_modules/tailwindcss/lib/index.js";
+
+// src/lib/config/general.ts
+var theme = [
+  {
+    name: "lofi",
+    text: "Light"
+  },
+  {
+    name: "dracula",
+    text: "Dracula"
+  },
+  {
+    name: "coffee",
+    text: "Coffee"
+  },
+  {
+    name: "cupcake",
+    text: "Cupcake"
+  },
+  {
+    name: "valentine",
+    text: "Valentine"
+  },
+  {
+    name: "aqua",
+    text: "Aqua"
+  },
+  {
+    name: "synthwave",
+    text: "Synthwave"
+  },
+  {
+    name: "night",
+    text: "Night"
+  },
+  // {
+  //   name: 'lofi',
+  //   text: 'Lo-Fi'
+  // },
+  {
+    name: "garden",
+    text: "Garden"
+  },
+  {
+    name: "lemonade",
+    text: "Lemonade"
+  },
+  {
+    name: "cmyk",
+    text: "CMYK"
+  },
+  {
+    name: "retro",
+    text: "Retro"
+  },
+  {
+    name: "black",
+    text: "Black"
+  }
+];
+
+// tailwind.config.ts
+import typography from "file:///Users/seviche/Desktop/Urara-Blog/node_modules/.pnpm/@tailwindcss+typography@0.5.9_tailwindcss@3.3.2/node_modules/@tailwindcss/typography/src/index.js";
+import daisyui from "file:///Users/seviche/Desktop/Urara-Blog/node_modules/.pnpm/daisyui@2.51.6_autoprefixer@10.4.14_postcss@8.4.23/node_modules/daisyui/src/index.js";
+var tailwind_config_default = {
+  content: ["./src/**/*.{html,md,js,svelte,ts}"],
+  theme: { extend: {} },
+  plugins: [typography, daisyui],
+  daisyui: { themes: theme.map(({ name }) => name) }
+};
+
+// vite.config.ts
+import LightningCSS from "file:///Users/seviche/Desktop/Urara-Blog/node_modules/.pnpm/postcss-lightningcss@0.7.0_postcss@8.4.23/node_modules/postcss-lightningcss/src/index.js";
+var vite_config_default = defineConfig({
+  envPrefix: "URARA_",
+  build: {
+    sourcemap: false,
+    rollupOptions: {
+      cache: false
+    }
+  },
+  css: {
+    postcss: {
+      plugins: [TailwindCSS(tailwind_config_default), LightningCSS()]
+    }
+  },
+  plugins: [
+    UnoCSS({
+      include: [/\.svelte$/, /\.md?$/, /\.ts$/],
+      extractors: [extractorSvelte],
+      presets: [
+        presetTagify({
+          extraProperties: (matched) => matched.startsWith("i-") ? { display: "inline-block" } : {}
+        }),
+        presetIcons({ scale: 1.5 })
+      ]
+    }),
+    imagetools(),
+    SvelteKit(),
+    SvelteKitPWA({
+      registerType: "autoUpdate",
+      manifest: false,
+      scope: "/",
+      workbox: {
+        globPatterns: ["posts.json", "**/*.{js,css,html,svg,ico,png,webp,avif}"],
+        globIgnores: ["**/sw*", "**/workbox-*"]
+      }
+    })
+  ]
+});
+export {
+  vite_config_default as default
+};
+//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiLCAic3JjL2xpYi9jb25maWcvZ2VuZXJhbC50cyIsICJ0YWlsd2luZC5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvc2V2aWNoZS9EZXNrdG9wL1VyYXJhLUJsb2dcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy9zZXZpY2hlL0Rlc2t0b3AvVXJhcmEtQmxvZy92aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMvc2V2aWNoZS9EZXNrdG9wL1VyYXJhLUJsb2cvdml0ZS5jb25maWcudHNcIjsvLyB2aXRlIGRlZmluZSBjb25maWdcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gJ3ZpdGUnXG4vLyB2aXRlIHBsdWdpblxuaW1wb3J0IFVub0NTUyBmcm9tICd1bm9jc3Mvdml0ZSdcbmltcG9ydCB7IHByZXNldFRhZ2lmeSwgcHJlc2V0SWNvbnMgfSBmcm9tICd1bm9jc3MnXG5pbXBvcnQgZXh0cmFjdG9yU3ZlbHRlIGZyb20gJ0B1bm9jc3MvZXh0cmFjdG9yLXN2ZWx0ZSdcbmltcG9ydCB7IGltYWdldG9vbHMgfSBmcm9tICd2aXRlLWltYWdldG9vbHMnXG5pbXBvcnQgeyBzdmVsdGVraXQgYXMgU3ZlbHRlS2l0IH0gZnJvbSAnQHN2ZWx0ZWpzL2tpdC92aXRlJ1xuaW1wb3J0IHsgU3ZlbHRlS2l0UFdBIH0gZnJvbSAnQHZpdGUtcHdhL3N2ZWx0ZWtpdCdcbi8vIHBvc3Rjc3MgJiB0YWlsd2luZGNzc1xuaW1wb3J0IFRhaWx3aW5kQ1NTIGZyb20gJ3RhaWx3aW5kY3NzJ1xuaW1wb3J0IHRhaWx3aW5kQ29uZmlnIGZyb20gJy4vdGFpbHdpbmQuY29uZmlnJ1xuaW1wb3J0IExpZ2h0bmluZ0NTUyBmcm9tICdwb3N0Y3NzLWxpZ2h0bmluZ2NzcydcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcbiAgZW52UHJlZml4OiAnVVJBUkFfJyxcbiAgYnVpbGQ6IHtcbiAgICBzb3VyY2VtYXA6IGZhbHNlLFxuICAgIHJvbGx1cE9wdGlvbnM6IHtcbiAgICAgIGNhY2hlOiBmYWxzZVxuICAgIH1cbiAgfSxcbiAgY3NzOiB7XG4gICAgcG9zdGNzczoge1xuICAgICAgcGx1Z2luczogW1RhaWx3aW5kQ1NTKHRhaWx3aW5kQ29uZmlnKSwgTGlnaHRuaW5nQ1NTKCldXG4gICAgfVxuICB9LFxuICBwbHVnaW5zOiBbXG4gICAgVW5vQ1NTKHtcbiAgICAgIGluY2x1ZGU6IFsvXFwuc3ZlbHRlJC8sIC9cXC5tZD8kLywgL1xcLnRzJC9dLFxuICAgICAgZXh0cmFjdG9yczogW2V4dHJhY3RvclN2ZWx0ZV0sXG4gICAgICBwcmVzZXRzOiBbXG4gICAgICAgIHByZXNldFRhZ2lmeSh7XG4gICAgICAgICAgZXh0cmFQcm9wZXJ0aWVzOiAobWF0Y2hlZDogc3RyaW5nKSA9PiAobWF0Y2hlZC5zdGFydHNXaXRoKCdpLScpID8geyBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyB9IDoge30pXG4gICAgICAgIH0pLFxuICAgICAgICBwcmVzZXRJY29ucyh7IHNjYWxlOiAxLjUgfSlcbiAgICAgIF1cbiAgICB9KSxcbiAgICBpbWFnZXRvb2xzKCksXG4gICAgU3ZlbHRlS2l0KCksXG4gICAgU3ZlbHRlS2l0UFdBKHtcbiAgICAgIHJlZ2lzdGVyVHlwZTogJ2F1dG9VcGRhdGUnLFxuICAgICAgbWFuaWZlc3Q6IGZhbHNlLFxuICAgICAgc2NvcGU6ICcvJyxcbiAgICAgIHdvcmtib3g6IHtcbiAgICAgICAgZ2xvYlBhdHRlcm5zOiBbJ3Bvc3RzLmpzb24nLCAnKiovKi57anMsY3NzLGh0bWwsc3ZnLGljbyxwbmcsd2VicCxhdmlmfSddLFxuICAgICAgICBnbG9iSWdub3JlczogWycqKi9zdyonLCAnKiovd29ya2JveC0qJ11cbiAgICAgIH1cbiAgICB9KVxuICBdXG59KVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvc2V2aWNoZS9EZXNrdG9wL1VyYXJhLUJsb2cvc3JjL2xpYi9jb25maWdcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy9zZXZpY2hlL0Rlc2t0b3AvVXJhcmEtQmxvZy9zcmMvbGliL2NvbmZpZy9nZW5lcmFsLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9zZXZpY2hlL0Rlc2t0b3AvVXJhcmEtQmxvZy9zcmMvbGliL2NvbmZpZy9nZW5lcmFsLnRzXCI7aW1wb3J0IHR5cGUgeyBUaGVtZUNvbmZpZywgSGVhZENvbmZpZywgSGVhZGVyQ29uZmlnLCBGb290ZXJDb25maWcsIERhdGVDb25maWcsIEZlZWRDb25maWcgfSBmcm9tICckbGliL3R5cGVzL2dlbmVyYWwnXG5cbmV4cG9ydCBjb25zdCB0aGVtZTogVGhlbWVDb25maWcgPSBbXG4gIHtcbiAgICBuYW1lOiAnbG9maScsXG4gICAgdGV4dDogJ0xpZ2h0J1xuICB9LFxuICB7XG4gICAgbmFtZTogJ2RyYWN1bGEnLFxuICAgIHRleHQ6ICdEcmFjdWxhJ1xuICB9LFxuICB7XG4gICAgbmFtZTogJ2NvZmZlZScsXG4gICAgdGV4dDogJ0NvZmZlZSdcbiAgfSxcbiAge1xuICAgIG5hbWU6ICdjdXBjYWtlJyxcbiAgICB0ZXh0OiAnQ3VwY2FrZSdcbiAgfSxcbiAge1xuICAgIG5hbWU6ICd2YWxlbnRpbmUnLFxuICAgIHRleHQ6ICdWYWxlbnRpbmUnXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnYXF1YScsXG4gICAgdGV4dDogJ0FxdWEnXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnc3ludGh3YXZlJyxcbiAgICB0ZXh0OiAnU3ludGh3YXZlJ1xuICB9LFxuICB7XG4gICAgbmFtZTogJ25pZ2h0JyxcbiAgICB0ZXh0OiAnTmlnaHQnXG4gIH0sXG4gIC8vIHtcbiAgLy8gICBuYW1lOiAnbG9maScsXG4gIC8vICAgdGV4dDogJ0xvLUZpJ1xuICAvLyB9LFxuICB7XG4gICAgbmFtZTogJ2dhcmRlbicsXG4gICAgdGV4dDogJ0dhcmRlbidcbiAgfSxcbiAge1xuICAgIG5hbWU6ICdsZW1vbmFkZScsXG4gICAgdGV4dDogJ0xlbW9uYWRlJ1xuICB9LFxuICB7XG4gICAgbmFtZTogJ2NteWsnLFxuICAgIHRleHQ6ICdDTVlLJ1xuICB9LFxuICB7XG4gICAgbmFtZTogJ3JldHJvJyxcbiAgICB0ZXh0OiAnUmV0cm8nXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnYmxhY2snLFxuICAgIHRleHQ6ICdCbGFjaydcbiAgfVxuXVxuXG5leHBvcnQgY29uc3QgaGVhZDogSGVhZENvbmZpZyA9IHtcbiAgY3VzdG9tOiAoeyBkZXYgfSkgPT5cbiAgICBkZXZcbiAgICAgID8gW11cbiAgICAgIDogW1xuICAgICAgICAgIC8vIEluZGllQXV0aFxuICAgICAgICAgICc8bGluayByZWw9XCJhdXRob3JpemF0aW9uX2VuZHBvaW50XCIgaHJlZj1cImh0dHBzOi8vaW5kaWVhdXRoLmNvbS9hdXRoXCI+JyxcbiAgICAgICAgICAnPGxpbmsgcmVsPVwidG9rZW5fZW5kcG9pbnRcIiBocmVmPVwiaHR0cHM6Ly90b2tlbnMuaW5kaWVhdXRoLmNvbS90b2tlblwiPicsXG4gICAgICAgICAgJzxsaW5rIHJlbD1cIm1lXCIgaHJlZj1cImh0dHBzOi8vZ2l0aHViLmNvbS9zZXZpY2hlY2NcIiAvPicsXG4gICAgICAgICAgLy8gVW1hbWkgQW5hbHl0aWNzXG4gICAgICAgICAgJzxzY3JpcHQgZGF0YS1jZmFzeW5jPVwiZmFsc2VcIiAgZGVmZXIgZGF0YS1kby1ub3QtdHJhY2s9XCJ0cnVlXCIgZGF0YS13ZWJzaXRlLWlkPVwiMjQwM2VhMzAtNzRmZi00ZmZhLTgyNjQtNTU2YjlmM2IyODk3XCIgc3JjPVwiaHR0cHM6Ly9oZXhvdmVyYy52ZXJjZWwuYXBwL3VtYW1pLmpzXCI+PC9zY3JpcHQ+JyxcbiAgICAgICAgICAvLyBzcGxpdGJlZVxuICAgICAgICAgICc8c2NyaXB0IGFzeW5jIGRhdGEtY2Zhc3luYz1cImZhbHNlXCIgc3JjPVwiaHR0cHM6Ly9jZG4uc3BsaXRiZWUuaW8vc2IuanNcIj48L3NjcmlwdD4nLFxuICAgICAgICAgIC8vIEJsb2NrIEJhaWR1c3BpZGVyXG4gICAgICAgICAgJzxtZXRhIG5hbWU9XCJiYWlkdXNwaWRlclwiIGNvbnRlbnQ9XCJub2luZGV4LG5vYXJjaGl2ZVwiPicsXG4gICAgICAgICAgLy8gTWljcm9zdWJcbiAgICAgICAgICAnPGxpbmsgcmVsPVwibWljcm9zdWJcIiBocmVmPVwiaHR0cHM6Ly9hcGVydHVyZS5wM2suaW8vbWljcm9zdWIvNzYxXCI+J1xuICAgICAgICBdLFxuICBtZTogWydodHRwczovL2tvbmd3b28uaWN1L0BzZXZpY2hlJ11cbn1cblxuZXhwb3J0IGNvbnN0IGhlYWRlcjogSGVhZGVyQ29uZmlnID0ge1xuICBzZWFyY2g6IHtcbiAgICBwcm92aWRlcjogJ2R1Y2tkdWNrZ28nXG4gIH0sXG4gIG5hdjogW1xuICAgIHtcbiAgICAgIHRleHQ6ICdQcm9qZWN0cycsXG4gICAgICBsaW5rOiAnL3Byb2plY3RzJ1xuICAgIH0sXG4gICAgLy8ge1xuICAgIC8vICAgdGV4dDogJ05vdGVzJyxcbiAgICAvLyAgIGxpbms6ICcvbm90ZXMnXG4gICAgLy8gfSxcbiAgICB7XG4gICAgICB0ZXh0OiAnRnJpZW5kcycsXG4gICAgICBsaW5rOiAnL2ZyaWVuZHMnXG4gICAgfSxcbiAgICB7XG4gICAgICB0ZXh0OiAnQWJvdXQnLFxuICAgICAgbGluazogJy9hYm91dCdcbiAgICB9LFxuICAgIHtcbiAgICAgIHRleHQ6ICdldGMnLFxuICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6ICdCb29rbWFya3MnLFxuICAgICAgICAgIGxpbms6ICdodHRwczovL2FpcnRhYmxlLmNvbS9zaHJwZnR4ZjZKZ1JvbVAyWCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6ICdEYWlseSBOb3RlcycsXG4gICAgICAgICAgbGluazogJ2h0dHBzOi8veC5zZXZpY2hlLmNjJ1xuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICBdXG59XG5cbmV4cG9ydCBjb25zdCBmb290ZXI6IEZvb3RlckNvbmZpZyA9IHtcbiAgbmF2OiBbXG4gICAge1xuICAgICAgdGV4dDogJ0ZlZWQnLFxuICAgICAgbGluazogJy9hdG9tLnhtbCdcbiAgICB9LFxuICAgIHtcbiAgICAgIHRleHQ6ICdQcmF2aWN5JyxcbiAgICAgIGxpbms6ICcvcHJpdmFjeSdcbiAgICB9XG4gIF0sXG4gIGh0bWw6ICc8YSByZWw9XCJsaWNlbnNlXCIgaHJlZj1cImh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzQuMC9cIj5DQyBCWS1OQy1TQSA0LjA8L2E+JyxcbiAgc2luY2U6ICcyMDIxJ1xufVxuXG5leHBvcnQgY29uc3QgZGF0ZTogRGF0ZUNvbmZpZyA9IHtcbiAgbG9jYWxlczogJ2VuLVVTJyxcbiAgb3B0aW9uczoge1xuICAgIHllYXI6ICdudW1lcmljJyxcbiAgICB3ZWVrZGF5OiAnc2hvcnQnLFxuICAgIG1vbnRoOiAnc2hvcnQnLFxuICAgIGRheTogJ251bWVyaWMnLFxuICAgIHRpbWVab25lOiAnQXNpYS9TaGFuZ2hhaSdcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZmVlZDogRmVlZENvbmZpZyA9IHtcbiAgaHViczogWydodHRwczovL3B1YnN1Ymh1YmJ1Yi5hcHBzcG90LmNvbScsICdodHRwczovL2JyaWRneS1mZWQuc3VwZXJmZWVkci5jb20nXVxufVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvc2V2aWNoZS9EZXNrdG9wL1VyYXJhLUJsb2dcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy9zZXZpY2hlL0Rlc2t0b3AvVXJhcmEtQmxvZy90YWlsd2luZC5jb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL3NldmljaGUvRGVza3RvcC9VcmFyYS1CbG9nL3RhaWx3aW5kLmNvbmZpZy50c1wiO2ltcG9ydCB7IHRoZW1lIH0gZnJvbSAnLi9zcmMvbGliL2NvbmZpZy9nZW5lcmFsJ1xuLy8gQHRzLWlnbm9yZSBDb3VsZCBub3QgZmluZCBhIGRlY2xhcmF0aW9uIGZpbGUgZm9yIG1vZHVsZSAnQHRhaWx3aW5kY3NzL3R5cG9ncmFwaHknLlxuaW1wb3J0IHR5cG9ncmFwaHkgZnJvbSAnQHRhaWx3aW5kY3NzL3R5cG9ncmFwaHknXG4vLyBAdHMtaWdub3JlIENvdWxkIG5vdCBmaW5kIGEgZGVjbGFyYXRpb24gZmlsZSBmb3IgbW9kdWxlICdkYWlzeXVpJy5cbmltcG9ydCBkYWlzeXVpIGZyb20gJ2RhaXN5dWknXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY29udGVudDogWycuL3NyYy8qKi8qLntodG1sLG1kLGpzLHN2ZWx0ZSx0c30nXSxcbiAgdGhlbWU6IHsgZXh0ZW5kOiB7fSB9LFxuICBwbHVnaW5zOiBbdHlwb2dyYXBoeSwgZGFpc3l1aV0sXG4gIGRhaXN5dWk6IHsgdGhlbWVzOiB0aGVtZS5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ0EsU0FBUyxvQkFBb0I7QUFFN0IsT0FBTyxZQUFZO0FBQ25CLFNBQVMsY0FBYyxtQkFBbUI7QUFDMUMsT0FBTyxxQkFBcUI7QUFDNUIsU0FBUyxrQkFBa0I7QUFDM0IsU0FBUyxhQUFhLGlCQUFpQjtBQUN2QyxTQUFTLG9CQUFvQjtBQUU3QixPQUFPLGlCQUFpQjs7O0FDUmpCLElBQU0sUUFBcUI7QUFBQSxFQUNoQztBQUFBLElBQ0UsTUFBTTtBQUFBLElB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