From adffae9e21f16c4808bc7a7a2f738e90bd36fee6 Mon Sep 17 00:00:00 2001 From: Gil Desmarais Date: Sun, 14 Sep 2025 18:36:35 +0200 Subject: [PATCH 01/33] phase1 --- astro-migration/.gitignore | 21 + astro-migration/.vscode/extensions.json | 4 + astro-migration/.vscode/launch.json | 11 + astro-migration/README.md | 49 + astro-migration/astro.config.mjs | 155 + astro-migration/package-lock.json | 5597 +++++++++++++++++ astro-migration/package.json | 17 + .../public/assets/android-chrome-192x192.png | Bin 0 -> 1686 bytes .../public/assets/android-chrome-512x512.png | Bin 0 -> 4091 bytes .../public/assets/apple-touch-icon.png | Bin 0 -> 1749 bytes .../public/assets/browserconfig.xml | 9 + .../public/assets/favicon-16x16.png | Bin 0 -> 310 bytes .../public/assets/favicon-32x32.png | Bin 0 -> 598 bytes astro-migration/public/assets/favicon.ico | Bin 0 -> 1874 bytes astro-migration/public/assets/icon.png | Bin 0 -> 4052 bytes astro-migration/public/assets/logo.png | Bin 0 -> 7414 bytes .../public/assets/mstile-144x144.png | Bin 0 -> 1507 bytes .../public/assets/mstile-150x150.png | Bin 0 -> 1427 bytes .../public/assets/mstile-310x150.png | Bin 0 -> 1533 bytes .../public/assets/mstile-310x310.png | Bin 0 -> 2716 bytes .../public/assets/mstile-70x70.png | Bin 0 -> 1121 bytes .../public/assets/safari-pinned-tab.svg | 1 + .../public/assets/site.webmanifest | 19 + astro-migration/public/favicon.svg | 1 + astro-migration/src/assets/houston.webp | Bin 0 -> 98506 bytes astro-migration/src/assets/logo.png | Bin 0 -> 7414 bytes .../src/components/FeedDirectory.astro | 507 ++ astro-migration/src/content.config.ts | 7 + .../src/content/docs/feed-directory/index.mdx | 30 + .../src/content/docs/guides/example.md | 11 + astro-migration/src/content/docs/index.mdx | 37 + .../src/content/docs/reference/example.md | 11 + astro-migration/src/data/configs.ts | 91 + astro-migration/src/data/configs.yml | 483 ++ astro-migration/src/types/global.d.ts | 10 + astro-migration/tsconfig.json | 5 + 36 files changed, 7076 insertions(+) create mode 100644 astro-migration/.gitignore create mode 100644 astro-migration/.vscode/extensions.json create mode 100644 astro-migration/.vscode/launch.json create mode 100644 astro-migration/README.md create mode 100644 astro-migration/astro.config.mjs create mode 100644 astro-migration/package-lock.json create mode 100644 astro-migration/package.json create mode 100644 astro-migration/public/assets/android-chrome-192x192.png create mode 100644 astro-migration/public/assets/android-chrome-512x512.png create mode 100644 astro-migration/public/assets/apple-touch-icon.png create mode 100644 astro-migration/public/assets/browserconfig.xml create mode 100644 astro-migration/public/assets/favicon-16x16.png create mode 100644 astro-migration/public/assets/favicon-32x32.png create mode 100644 astro-migration/public/assets/favicon.ico create mode 100644 astro-migration/public/assets/icon.png create mode 100644 astro-migration/public/assets/logo.png create mode 100644 astro-migration/public/assets/mstile-144x144.png create mode 100644 astro-migration/public/assets/mstile-150x150.png create mode 100644 astro-migration/public/assets/mstile-310x150.png create mode 100644 astro-migration/public/assets/mstile-310x310.png create mode 100644 astro-migration/public/assets/mstile-70x70.png create mode 100644 astro-migration/public/assets/safari-pinned-tab.svg create mode 100644 astro-migration/public/assets/site.webmanifest create mode 100644 astro-migration/public/favicon.svg create mode 100644 astro-migration/src/assets/houston.webp create mode 100644 astro-migration/src/assets/logo.png create mode 100644 astro-migration/src/components/FeedDirectory.astro create mode 100644 astro-migration/src/content.config.ts create mode 100644 astro-migration/src/content/docs/feed-directory/index.mdx create mode 100644 astro-migration/src/content/docs/guides/example.md create mode 100644 astro-migration/src/content/docs/index.mdx create mode 100644 astro-migration/src/content/docs/reference/example.md create mode 100644 astro-migration/src/data/configs.ts create mode 100644 astro-migration/src/data/configs.yml create mode 100644 astro-migration/src/types/global.d.ts create mode 100644 astro-migration/tsconfig.json diff --git a/astro-migration/.gitignore b/astro-migration/.gitignore new file mode 100644 index 00000000..6240da8b --- /dev/null +++ b/astro-migration/.gitignore @@ -0,0 +1,21 @@ +# build output +dist/ +# generated types +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store diff --git a/astro-migration/.vscode/extensions.json b/astro-migration/.vscode/extensions.json new file mode 100644 index 00000000..22a15055 --- /dev/null +++ b/astro-migration/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + "recommendations": ["astro-build.astro-vscode"], + "unwantedRecommendations": [] +} diff --git a/astro-migration/.vscode/launch.json b/astro-migration/.vscode/launch.json new file mode 100644 index 00000000..d6422097 --- /dev/null +++ b/astro-migration/.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/astro-migration/README.md b/astro-migration/README.md new file mode 100644 index 00000000..1b7f5c3d --- /dev/null +++ b/astro-migration/README.md @@ -0,0 +1,49 @@ +# Starlight Starter Kit: Basics + +[![Built with Starlight](https://astro.badg.es/v2/built-with-starlight/tiny.svg)](https://starlight.astro.build) + +``` +npm create astro@latest -- --template starlight +``` + +> πŸ§‘β€πŸš€ **Seasoned astronaut?** Delete this file. Have fun! + +## πŸš€ Project Structure + +Inside of your Astro + Starlight project, you'll see the following folders and files: + +``` +. +β”œβ”€β”€ public/ +β”œβ”€β”€ src/ +β”‚ β”œβ”€β”€ assets/ +β”‚ β”œβ”€β”€ content/ +β”‚ β”‚ └── docs/ +β”‚ └── content.config.ts +β”œβ”€β”€ astro.config.mjs +β”œβ”€β”€ package.json +└── tsconfig.json +``` + +Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory. Each file is exposed as a route based on its file name. + +Images can be added to `src/assets/` and embedded in Markdown with a relative link. + +Static assets, like favicons, 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 [Starlight’s docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat). diff --git a/astro-migration/astro.config.mjs b/astro-migration/astro.config.mjs new file mode 100644 index 00000000..603d212e --- /dev/null +++ b/astro-migration/astro.config.mjs @@ -0,0 +1,155 @@ +// @ts-check +import { defineConfig } from 'astro/config'; +import starlight from '@astrojs/starlight'; + +// https://astro.build/config +export default defineConfig({ + site: 'https://html2rss.github.io', + base: '/', + integrations: [ + starlight({ + title: 'html2rss', + description: 'html2rss brings back RSS. It\'s an open source project with decentralised instances. These instances generate RSS feeds for websites which do not offer them.', + logo: { + src: './src/assets/logo.png', + replacesTitle: true, + }, + head: [ + { + tag: 'meta', + attrs: { + name: 'mobile-web-app-capable', + content: 'yes', + }, + }, + { + tag: 'meta', + attrs: { + name: 'apple-mobile-web-app-capable', + content: 'yes', + }, + }, + { + tag: 'meta', + attrs: { + name: 'apple-mobile-web-app-status-bar-style', + content: 'black', + }, + }, + { + tag: 'meta', + attrs: { + name: 'referrer', + content: 'no-referrer', + }, + }, + { + tag: 'meta', + attrs: { + name: 'theme-color', + content: '#111111', + }, + }, + { + tag: 'link', + attrs: { + rel: 'apple-touch-icon', + sizes: '180x180', + href: '/assets/images/apple-touch-icon.png', + }, + }, + { + tag: 'link', + attrs: { + rel: 'icon', + type: 'image/png', + sizes: '32x32', + href: '/assets/images/favicon-32x32.png', + }, + }, + { + tag: 'link', + attrs: { + rel: 'icon', + type: 'image/png', + sizes: '16x16', + href: '/assets/images/favicon-16x16.png', + }, + }, + { + tag: 'link', + attrs: { + rel: 'manifest', + href: '/assets/images/site.webmanifest', + }, + }, + { + tag: 'link', + attrs: { + rel: 'mask-icon', + href: '/assets/images/safari-pinned-tab.svg', + color: '#111111', + }, + }, + { + tag: 'link', + attrs: { + rel: 'shortcut icon', + href: '/assets/images/favicon.ico', + }, + }, + { + tag: 'script', + attrs: { + 'data-goatcounter': 'https://html2rss.goatcounter.com/count', + async: true, + src: '//gc.zgo.at/count.js', + }, + }, + ], + social: [ + { + icon: 'github', + label: 'GitHub', + href: 'https://github.com/html2rss' + }, + ], + editLink: { + baseUrl: 'https://github.com/html2rss/html2rss.github.io/edit/main/', + }, + sidebar: [ + { + label: 'Home', + link: '/', + }, + { + label: 'Feed Directory', + link: '/feed-directory/', + }, + { + label: 'Web Application', + autogenerate: { directory: 'web-application' }, + }, + { + label: 'Ruby Gem', + autogenerate: { directory: 'ruby-gem' }, + }, + { + label: 'Get Involved', + autogenerate: { directory: 'get-involved' }, + }, + { + label: 'Support', + autogenerate: { directory: 'support' }, + }, + ], + defaultLocale: 'root', + locales: { + root: { + label: 'English', + lang: 'en', + }, + }, + }), + ], +}); diff --git a/astro-migration/package-lock.json b/astro-migration/package-lock.json new file mode 100644 index 00000000..1b3ebcd6 --- /dev/null +++ b/astro-migration/package-lock.json @@ -0,0 +1,5597 @@ +{ + "name": "astro-migration", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "astro-migration", + "version": "0.0.1", + "dependencies": { + "@astrojs/starlight": "^0.35.3", + "astro": "^5.6.1", + "sharp": "^0.34.2" + } + }, + "node_modules/@astrojs/compiler": { + "version": "2.12.2", + "license": "MIT" + }, + "node_modules/@astrojs/internal-helpers": { + "version": "0.7.2", + "license": "MIT" + }, + "node_modules/@astrojs/markdown-remark": { + "version": "6.3.6", + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.7.2", + "@astrojs/prism": "3.3.0", + "github-slugger": "^2.0.0", + "hast-util-from-html": "^2.0.3", + "hast-util-to-text": "^4.0.2", + "import-meta-resolve": "^4.1.0", + "js-yaml": "^4.1.0", + "mdast-util-definitions": "^6.0.0", + "rehype-raw": "^7.0.0", + "rehype-stringify": "^10.0.1", + "remark-gfm": "^4.0.1", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.1.2", + "remark-smartypants": "^3.0.2", + "shiki": "^3.2.1", + "smol-toml": "^1.3.4", + "unified": "^11.0.5", + "unist-util-remove-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "unist-util-visit-parents": "^6.0.1", + "vfile": "^6.0.3" + } + }, + "node_modules/@astrojs/mdx": { + "version": "4.3.5", + "license": "MIT", + "dependencies": { + "@astrojs/markdown-remark": "6.3.6", + "@mdx-js/mdx": "^3.1.1", + "acorn": "^8.15.0", + "es-module-lexer": "^1.7.0", + "estree-util-visit": "^2.0.0", + "hast-util-to-html": "^9.0.5", + "kleur": "^4.1.5", + "rehype-raw": "^7.0.0", + "remark-gfm": "^4.0.1", + "remark-smartypants": "^3.0.2", + "source-map": "^0.7.6", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.3" + }, + "engines": { + "node": "18.20.8 || ^20.3.0 || >=22.0.0" + }, + "peerDependencies": { + "astro": "^5.0.0" + } + }, + "node_modules/@astrojs/prism": { + "version": "3.3.0", + "license": "MIT", + "dependencies": { + "prismjs": "^1.30.0" + }, + "engines": { + "node": "18.20.8 || ^20.3.0 || >=22.0.0" + } + }, + "node_modules/@astrojs/sitemap": { + "version": "3.5.1", + "license": "MIT", + "dependencies": { + "sitemap": "^8.0.0", + "stream-replace-string": "^2.0.0", + "zod": "^3.24.4" + } + }, + "node_modules/@astrojs/starlight": { + "version": "0.35.3", + "license": "MIT", + "dependencies": { + "@astrojs/markdown-remark": "^6.3.1", + "@astrojs/mdx": "^4.2.3", + "@astrojs/sitemap": "^3.3.0", + "@pagefind/default-ui": "^1.3.0", + "@types/hast": "^3.0.4", + "@types/js-yaml": "^4.0.9", + "@types/mdast": "^4.0.4", + "astro-expressive-code": "^0.41.1", + "bcp-47": "^2.1.0", + "hast-util-from-html": "^2.0.1", + "hast-util-select": "^6.0.2", + "hast-util-to-string": "^3.0.0", + "hastscript": "^9.0.0", + "i18next": "^23.11.5", + "js-yaml": "^4.1.0", + "klona": "^2.0.6", + "mdast-util-directive": "^3.0.0", + "mdast-util-to-markdown": "^2.1.0", + "mdast-util-to-string": "^4.0.0", + "pagefind": "^1.3.0", + "rehype": "^13.0.1", + "rehype-format": "^5.0.0", + "remark-directive": "^3.0.0", + "ultrahtml": "^1.6.0", + "unified": "^11.0.5", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.2" + }, + "peerDependencies": { + "astro": "^5.5.0" + } + }, + "node_modules/@astrojs/telemetry": { + "version": "3.3.0", + "license": "MIT", + "dependencies": { + "ci-info": "^4.2.0", + "debug": "^4.4.0", + "dlv": "^1.1.3", + "dset": "^3.1.4", + "is-docker": "^3.0.0", + "is-wsl": "^3.1.0", + "which-pm-runs": "^1.1.0" + }, + "engines": { + "node": "18.20.8 || ^20.3.0 || >=22.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.4", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.4" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.4", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.4", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@capsizecss/unpack": { + "version": "2.4.0", + "license": "MIT", + "dependencies": { + "blob-to-buffer": "^1.2.8", + "cross-fetch": "^3.0.4", + "fontkit": "^2.0.2" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "4.1.0", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.5.0", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.9", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@expressive-code/core": { + "version": "0.41.3", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^4.0.4", + "hast-util-select": "^6.0.2", + "hast-util-to-html": "^9.0.1", + "hast-util-to-text": "^4.0.1", + "hastscript": "^9.0.0", + "postcss": "^8.4.38", + "postcss-nested": "^6.0.1", + "unist-util-visit": "^5.0.0", + "unist-util-visit-parents": "^6.0.1" + } + }, + "node_modules/@expressive-code/plugin-frames": { + "version": "0.41.3", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.41.3" + } + }, + "node_modules/@expressive-code/plugin-shiki": { + "version": "0.41.3", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.41.3", + "shiki": "^3.2.2" + } + }, + "node_modules/@expressive-code/plugin-text-markers": { + "version": "0.41.3", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.41.3" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.3", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.0" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.0", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "license": "MIT" + }, + "node_modules/@mdx-js/mdx": { + "version": "3.1.1", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "acorn": "^8.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-scope": "^1.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@oslojs/encoding": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/@pagefind/default-ui": { + "version": "1.4.0", + "license": "MIT" + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "license": "MIT" + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.50.1", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@shikijs/core": { + "version": "3.12.2", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.12.2", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.5" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "3.12.2", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.12.2", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^4.3.3" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "3.12.2", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.12.2", + "@shikijs/vscode-textmate": "^10.0.2" + } + }, + "node_modules/@shikijs/langs": { + "version": "3.12.2", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.12.2" + } + }, + "node_modules/@shikijs/themes": { + "version": "3.12.2", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.12.2" + } + }, + "node_modules/@shikijs/types": { + "version": "3.12.2", + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "license": "MIT" + }, + "node_modules/@swc/helpers": { + "version": "0.5.17", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "license": "MIT" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/fontkit": { + "version": "2.0.8", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/js-yaml": { + "version": "4.0.9", + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdx": { + "version": "2.0.13", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/@types/nlcst": { + "version": "2.0.3", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/node": { + "version": "24.4.0", + "license": "MIT", + "dependencies": { + "undici-types": "~7.11.0" + } + }, + "node_modules/@types/sax": { + "version": "1.2.7", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "license": "ISC" + }, + "node_modules/acorn": { + "version": "8.15.0", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "8.0.0", + "license": "MIT" + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.3", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-iterate": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/astring": { + "version": "1.9.0", + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/astro": { + "version": "5.13.7", + "license": "MIT", + "dependencies": { + "@astrojs/compiler": "^2.12.2", + "@astrojs/internal-helpers": "0.7.2", + "@astrojs/markdown-remark": "6.3.6", + "@astrojs/telemetry": "3.3.0", + "@capsizecss/unpack": "^2.4.0", + "@oslojs/encoding": "^1.1.0", + "@rollup/pluginutils": "^5.2.0", + "acorn": "^8.15.0", + "aria-query": "^5.3.2", + "axobject-query": "^4.1.0", + "boxen": "8.0.1", + "ci-info": "^4.3.0", + "clsx": "^2.1.1", + "common-ancestor-path": "^1.0.1", + "cookie": "^1.0.2", + "cssesc": "^3.0.0", + "debug": "^4.4.1", + "deterministic-object-hash": "^2.0.2", + "devalue": "^5.1.1", + "diff": "^5.2.0", + "dlv": "^1.1.3", + "dset": "^3.1.4", + "es-module-lexer": "^1.7.0", + "esbuild": "^0.25.0", + "estree-walker": "^3.0.3", + "flattie": "^1.1.1", + "fontace": "~0.3.0", + "github-slugger": "^2.0.0", + "html-escaper": "3.0.3", + "http-cache-semantics": "^4.2.0", + "import-meta-resolve": "^4.2.0", + "js-yaml": "^4.1.0", + "kleur": "^4.1.5", + "magic-string": "^0.30.18", + "magicast": "^0.3.5", + "mrmime": "^2.0.1", + "neotraverse": "^0.6.18", + "p-limit": "^6.2.0", + "p-queue": "^8.1.0", + "package-manager-detector": "^1.3.0", + "picomatch": "^4.0.3", + "prompts": "^2.4.2", + "rehype": "^13.0.2", + "semver": "^7.7.2", + "shiki": "^3.12.0", + "smol-toml": "^1.4.2", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tsconfck": "^3.1.6", + "ultrahtml": "^1.6.0", + "unifont": "~0.5.2", + "unist-util-visit": "^5.0.0", + "unstorage": "^1.17.0", + "vfile": "^6.0.3", + "vite": "^6.3.6", + "vitefu": "^1.1.1", + "xxhash-wasm": "^1.1.0", + "yargs-parser": "^21.1.1", + "yocto-spinner": "^0.2.3", + "zod": "^3.25.76", + "zod-to-json-schema": "^3.24.6", + "zod-to-ts": "^1.2.0" + }, + "bin": { + "astro": "astro.js" + }, + "engines": { + "node": "18.20.8 || ^20.3.0 || >=22.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/astrodotbuild" + }, + "optionalDependencies": { + "sharp": "^0.34.0" + } + }, + "node_modules/astro-expressive-code": { + "version": "0.41.3", + "license": "MIT", + "dependencies": { + "rehype-expressive-code": "^0.41.3" + }, + "peerDependencies": { + "astro": "^4.0.0-beta || ^5.0.0-beta || ^3.3.0" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/base-64": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bcp-47": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/bcp-47-match": { + "version": "2.0.3", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/blob-to-buffer": { + "version": "1.2.9", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/boxen": { + "version": "8.0.1", + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^8.0.0", + "chalk": "^5.3.0", + "cli-boxes": "^3.0.0", + "string-width": "^7.2.0", + "type-fest": "^4.21.0", + "widest-line": "^5.0.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brotli": { + "version": "1.3.3", + "license": "MIT", + "dependencies": { + "base64-js": "^1.1.2" + } + }, + "node_modules/camelcase": { + "version": "8.0.0", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ccount": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "5.6.2", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ci-info": { + "version": "4.3.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/collapse-white-space": { + "version": "2.1.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/color": { + "version": "4.2.3", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/common-ancestor-path": { + "version": "1.0.1", + "license": "ISC" + }, + "node_modules/cookie": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/cookie-es": { + "version": "1.2.2", + "license": "MIT" + }, + "node_modules/cross-fetch": { + "version": "3.2.0", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" + } + }, + "node_modules/crossws": { + "version": "0.3.5", + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, + "node_modules/css-selector-parser": { + "version": "3.1.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/css-tree": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "mdn-data": "2.12.2", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/defu": { + "version": "6.1.4", + "license": "MIT" + }, + "node_modules/dequal": { + "version": "2.0.3", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destr": { + "version": "2.0.5", + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.0.4", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/deterministic-object-hash": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "base-64": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/devalue": { + "version": "5.3.2", + "license": "MIT" + }, + "node_modules/devlop": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dfa": { + "version": "1.2.0", + "license": "MIT" + }, + "node_modules/diff": { + "version": "5.2.0", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/direction": { + "version": "2.0.1", + "license": "MIT", + "bin": { + "direction": "cli.js" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/dset": { + "version": "3.1.4", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/emoji-regex": { + "version": "10.5.0", + "license": "MIT" + }, + "node_modules/entities": { + "version": "6.0.1", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "license": "MIT" + }, + "node_modules/esast-util-from-estree": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esbuild": { + "version": "0.25.9", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.9", + "@esbuild/android-arm": "0.25.9", + "@esbuild/android-arm64": "0.25.9", + "@esbuild/android-x64": "0.25.9", + "@esbuild/darwin-arm64": "0.25.9", + "@esbuild/darwin-x64": "0.25.9", + "@esbuild/freebsd-arm64": "0.25.9", + "@esbuild/freebsd-x64": "0.25.9", + "@esbuild/linux-arm": "0.25.9", + "@esbuild/linux-arm64": "0.25.9", + "@esbuild/linux-ia32": "0.25.9", + "@esbuild/linux-loong64": "0.25.9", + "@esbuild/linux-mips64el": "0.25.9", + "@esbuild/linux-ppc64": "0.25.9", + "@esbuild/linux-riscv64": "0.25.9", + "@esbuild/linux-s390x": "0.25.9", + "@esbuild/linux-x64": "0.25.9", + "@esbuild/netbsd-arm64": "0.25.9", + "@esbuild/netbsd-x64": "0.25.9", + "@esbuild/openbsd-arm64": "0.25.9", + "@esbuild/openbsd-x64": "0.25.9", + "@esbuild/openharmony-arm64": "0.25.9", + "@esbuild/sunos-x64": "0.25.9", + "@esbuild/win32-arm64": "0.25.9", + "@esbuild/win32-ia32": "0.25.9", + "@esbuild/win32-x64": "0.25.9" + } + }, + "node_modules/esbuild/node_modules/@esbuild/aix-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz", + "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/android-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz", + "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/android-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz", + "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/android-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz", + "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/darwin-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz", + "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz", + "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/freebsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz", + "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/linux-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz", + "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/linux-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz", + "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/linux-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz", + "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/linux-loong64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz", + "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/linux-mips64el": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz", + "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/linux-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz", + "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/linux-riscv64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz", + "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/linux-s390x": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz", + "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/linux-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz", + "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz", + "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/netbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz", + "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz", + "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/openbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz", + "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz", + "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/sunos-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz", + "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/win32-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz", + "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/win32-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz", + "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild/node_modules/@esbuild/win32-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz", + "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/estree-util-attach-comments": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-build-jsx": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-scope": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-visit": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "license": "MIT" + }, + "node_modules/expressive-code": { + "version": "0.41.3", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.41.3", + "@expressive-code/plugin-frames": "^0.41.3", + "@expressive-code/plugin-shiki": "^0.41.3", + "@expressive-code/plugin-text-markers": "^0.41.3" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/flattie": { + "version": "1.1.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/fontace": { + "version": "0.3.0", + "license": "MIT", + "dependencies": { + "@types/fontkit": "^2.0.8", + "fontkit": "^2.0.4" + } + }, + "node_modules/fontkit": { + "version": "2.0.4", + "license": "MIT", + "dependencies": { + "@swc/helpers": "^0.5.12", + "brotli": "^1.3.2", + "clone": "^2.1.2", + "dfa": "^1.2.0", + "fast-deep-equal": "^3.1.3", + "restructure": "^3.0.0", + "tiny-inflate": "^1.0.3", + "unicode-properties": "^1.4.0", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.4.0", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/github-slugger": { + "version": "2.0.0", + "license": "ISC" + }, + "node_modules/h3": { + "version": "1.15.4", + "license": "MIT", + "dependencies": { + "cookie-es": "^1.2.2", + "crossws": "^0.3.5", + "defu": "^6.1.4", + "destr": "^2.0.5", + "iron-webcrypto": "^1.2.1", + "node-mock-http": "^1.0.2", + "radix3": "^1.1.2", + "ufo": "^1.6.1", + "uncrypto": "^0.1.3" + } + }, + "node_modules/hast-util-embedded": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-is-element": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-format": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-embedded": "^3.0.0", + "hast-util-minify-whitespace": "^1.0.0", + "hast-util-phrasing": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "html-whitespace-sensitive-tag-names": "^3.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-html": { + "version": "2.0.3", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.1.0", + "hast-util-from-parse5": "^8.0.0", + "parse5": "^7.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "8.0.3", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-has-property": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-body-ok-link": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-minify-whitespace": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-embedded": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-phrasing": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-embedded": "^3.0.0", + "hast-util-has-property": "^3.0.0", + "hast-util-is-body-ok-link": "^3.0.0", + "hast-util-is-element": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.1.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-select": { + "version": "6.0.4", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "bcp-47-match": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "css-selector-parser": "^3.0.0", + "devlop": "^1.0.0", + "direction": "^2.0.0", + "hast-util-has-property": "^3.0.0", + "hast-util-to-string": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "nth-check": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree": { + "version": "3.1.3", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-attach-comments": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.6", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5/node_modules/property-information": { + "version": "6.5.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-to-string": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-text": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unist-util-find-after": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "9.0.1", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-escaper": { + "version": "3.0.3", + "license": "MIT" + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/html-whitespace-sensitive-tag-names": { + "version": "3.0.1", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "license": "BSD-2-Clause" + }, + "node_modules/i18next": { + "version": "23.16.8", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/inline-style-parser": { + "version": "0.2.4", + "license": "MIT" + }, + "node_modules/iron-webcrypto": { + "version": "1.2.1", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/brc-dd" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.4", + "license": "MIT" + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "license": "ISC" + }, + "node_modules/magic-string": { + "version": "0.30.19", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/magicast": { + "version": "0.3.5", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-definitions": { + "version": "6.0.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-directive": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.12.2", + "license": "CC0-1.0" + }, + "node_modules/micromark": { + "version": "4.0.2", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "parse-entities": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-expression": { + "version": "3.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^3.0.0", + "micromark-extension-mdx-jsx": "^3.0.0", + "micromark-extension-mdx-md": "^2.0.0", + "micromark-extension-mdxjs-esm": "^3.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression": { + "version": "2.0.3", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-events-to-acorn": { + "version": "2.0.3", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/mrmime": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/neotraverse": { + "version": "0.6.18", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/nlcst-to-string": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "license": "MIT" + }, + "node_modules/node-mock-http": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/ofetch": { + "version": "1.4.1", + "license": "MIT", + "dependencies": { + "destr": "^2.0.3", + "node-fetch-native": "^1.6.4", + "ufo": "^1.5.4" + } + }, + "node_modules/ohash": { + "version": "2.0.11", + "license": "MIT" + }, + "node_modules/oniguruma-parser": { + "version": "0.12.1", + "license": "MIT" + }, + "node_modules/oniguruma-to-es": { + "version": "4.3.3", + "license": "MIT", + "dependencies": { + "oniguruma-parser": "^0.12.1", + "regex": "^6.0.1", + "regex-recursion": "^6.0.2" + } + }, + "node_modules/p-limit": { + "version": "6.2.0", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "8.1.1", + "license": "MIT", + "dependencies": { + "eventemitter3": "^5.0.1", + "p-timeout": "^6.1.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "6.1.4", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-manager-detector": { + "version": "1.3.0", + "license": "MIT" + }, + "node_modules/pagefind": { + "version": "1.4.0", + "license": "MIT", + "bin": { + "pagefind": "lib/runner/bin.cjs" + }, + "optionalDependencies": { + "@pagefind/darwin-arm64": "1.4.0", + "@pagefind/darwin-x64": "1.4.0", + "@pagefind/freebsd-x64": "1.4.0", + "@pagefind/linux-arm64": "1.4.0", + "@pagefind/linux-x64": "1.4.0", + "@pagefind/windows-x64": "1.4.0" + } + }, + "node_modules/pagefind/node_modules/@pagefind/darwin-arm64": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.4.0.tgz", + "integrity": "sha512-2vMqkbv3lbx1Awea90gTaBsvpzgRs7MuSgKDxW0m9oV1GPZCZbZBJg/qL83GIUEN2BFlY46dtUZi54pwH+/pTQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/pagefind/node_modules/@pagefind/darwin-x64": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-x64/-/darwin-x64-1.4.0.tgz", + "integrity": "sha512-e7JPIS6L9/cJfow+/IAqknsGqEPjJnVXGjpGm25bnq+NPdoD3c/7fAwr1OXkG4Ocjx6ZGSCijXEV4ryMcH2E3A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/pagefind/node_modules/@pagefind/freebsd-x64": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@pagefind/freebsd-x64/-/freebsd-x64-1.4.0.tgz", + "integrity": "sha512-WcJVypXSZ+9HpiqZjFXMUobfFfZZ6NzIYtkhQ9eOhZrQpeY5uQFqNWLCk7w9RkMUwBv1HAMDW3YJQl/8OqsV0Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/pagefind/node_modules/@pagefind/linux-arm64": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@pagefind/linux-arm64/-/linux-arm64-1.4.0.tgz", + "integrity": "sha512-PIt8dkqt4W06KGmQjONw7EZbhDF+uXI7i0XtRLN1vjCUxM9vGPdtJc2mUyVPevjomrGz5M86M8bqTr6cgDp1Uw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/pagefind/node_modules/@pagefind/linux-x64": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@pagefind/linux-x64/-/linux-x64-1.4.0.tgz", + "integrity": "sha512-z4oddcWwQ0UHrTHR8psLnVlz6USGJ/eOlDPTDYZ4cI8TK8PgwRUPQZp9D2iJPNIPcS6Qx/E4TebjuGJOyK8Mmg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/pagefind/node_modules/@pagefind/windows-x64": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.4.0.tgz", + "integrity": "sha512-NkT+YAdgS2FPCn8mIA9bQhiBs+xmniMGq1LFPDhcFn0+2yIUEiIG06t7bsZlhdjknEQRTSdT7YitP6fC5qwP0g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/pako": { + "version": "0.2.9", + "license": "MIT" + }, + "node_modules/parse-entities": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "license": "MIT" + }, + "node_modules/parse-latin": { + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "@types/unist": "^3.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-modify-children": "^4.0.0", + "unist-util-visit-children": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prismjs": { + "version": "1.30.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prompts/node_modules/kleur": { + "version": "3.0.3", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/property-information": { + "version": "7.1.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/radix3": { + "version": "1.1.2", + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "4.1.2", + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/recma-build-jsx": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-jsx": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "acorn-jsx": "^5.0.0", + "estree-util-to-js": "^2.0.0", + "recma-parse": "^1.0.0", + "recma-stringify": "^1.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/recma-parse": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "esast-util-from-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-to-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/regex": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-recursion": { + "version": "6.0.2", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "license": "MIT" + }, + "node_modules/rehype": { + "version": "13.0.2", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "rehype-parse": "^9.0.0", + "rehype-stringify": "^10.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-expressive-code": { + "version": "0.41.3", + "license": "MIT", + "dependencies": { + "expressive-code": "^0.41.3" + } + }, + "node_modules/rehype-format": { + "version": "5.0.1", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-format": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-parse": { + "version": "9.0.1", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-from-html": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-recma": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "hast-util-to-estree": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-stringify": { + "version": "10.0.1", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-to-html": "^9.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-directive": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-directive": "^3.0.0", + "micromark-extension-directive": "^3.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "3.1.1", + "license": "MIT", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-smartypants": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "retext": "^9.0.0", + "retext-smartypants": "^6.0.0", + "unified": "^11.0.4", + "unist-util-visit": "^5.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/restructure": { + "version": "3.0.2", + "license": "MIT" + }, + "node_modules/retext": { + "version": "9.0.0", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "retext-latin": "^4.0.0", + "retext-stringify": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-latin": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "parse-latin": "^7.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-smartypants": { + "version": "6.2.0", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-stringify": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rollup": { + "version": "4.50.1", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.50.1", + "@rollup/rollup-android-arm64": "4.50.1", + "@rollup/rollup-darwin-arm64": "4.50.1", + "@rollup/rollup-darwin-x64": "4.50.1", + "@rollup/rollup-freebsd-arm64": "4.50.1", + "@rollup/rollup-freebsd-x64": "4.50.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.50.1", + "@rollup/rollup-linux-arm-musleabihf": "4.50.1", + "@rollup/rollup-linux-arm64-gnu": "4.50.1", + "@rollup/rollup-linux-arm64-musl": "4.50.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.50.1", + "@rollup/rollup-linux-ppc64-gnu": "4.50.1", + "@rollup/rollup-linux-riscv64-gnu": "4.50.1", + "@rollup/rollup-linux-riscv64-musl": "4.50.1", + "@rollup/rollup-linux-s390x-gnu": "4.50.1", + "@rollup/rollup-linux-x64-gnu": "4.50.1", + "@rollup/rollup-linux-x64-musl": "4.50.1", + "@rollup/rollup-openharmony-arm64": "4.50.1", + "@rollup/rollup-win32-arm64-msvc": "4.50.1", + "@rollup/rollup-win32-ia32-msvc": "4.50.1", + "@rollup/rollup-win32-x64-msvc": "4.50.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup/node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.50.1.tgz", + "integrity": "sha512-HJXwzoZN4eYTdD8bVV22DN8gsPCAj3V20NHKOs8ezfXanGpmVPR7kalUHd+Y31IJp9stdB87VKPFbsGY3H/2ag==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-android-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.50.1.tgz", + "integrity": "sha512-PZlsJVcjHfcH53mOImyt3bc97Ep3FJDXRpk9sMdGX0qgLmY0EIWxCag6EigerGhLVuL8lDVYNnSo8qnTElO4xw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-darwin-x64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.50.1.tgz", + "integrity": "sha512-2ofU89lEpDYhdLAbRdeyz/kX3Y2lpYc6ShRnDjY35bZhd2ipuDMDi6ZTQ9NIag94K28nFMofdnKeHR7BT0CATw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.50.1.tgz", + "integrity": "sha512-wOsE6H2u6PxsHY/BeFHA4VGQN3KUJFZp7QJBmDYI983fgxq5Th8FDkVuERb2l9vDMs1D5XhOrhBrnqcEY6l8ZA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.50.1.tgz", + "integrity": "sha512-A/xeqaHTlKbQggxCqispFAcNjycpUEHP52mwMQZUNqDUJFFYtPHCXS1VAG29uMlDzIVr+i00tSFWFLivMcoIBQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.50.1.tgz", + "integrity": "sha512-54v4okehwl5TaSIkpp97rAHGp7t3ghinRd/vyC1iXqXMfjYUTm7TfYmCzXDoHUPTTf36L8pr0E7YsD3CfB3ZDg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.50.1.tgz", + "integrity": "sha512-p/LaFyajPN/0PUHjv8TNyxLiA7RwmDoVY3flXHPSzqrGcIp/c2FjwPPP5++u87DGHtw+5kSH5bCJz0mvXngYxw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.50.1.tgz", + "integrity": "sha512-2AbMhFFkTo6Ptna1zO7kAXXDLi7H9fGTbVaIq2AAYO7yzcAsuTNWPHhb2aTA6GPiP+JXh85Y8CiS54iZoj4opw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.50.1.tgz", + "integrity": "sha512-Cgef+5aZwuvesQNw9eX7g19FfKX5/pQRIyhoXLCiBOrWopjo7ycfB292TX9MDcDijiuIJlx1IzJz3IoCPfqs9w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.50.1.tgz", + "integrity": "sha512-RPhTwWMzpYYrHrJAS7CmpdtHNKtt2Ueo+BlLBjfZEhYBhK00OsEqM08/7f+eohiF6poe0YRDDd8nAvwtE/Y62Q==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.50.1.tgz", + "integrity": "sha512-eSGMVQw9iekut62O7eBdbiccRguuDgiPMsw++BVUg+1K7WjZXHOg/YOT9SWMzPZA+w98G+Fa1VqJgHZOHHnY0Q==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.50.1.tgz", + "integrity": "sha512-S208ojx8a4ciIPrLgazF6AgdcNJzQE4+S9rsmOmDJkusvctii+ZvEuIC4v/xFqzbuP8yDjn73oBlNDgF6YGSXQ==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.50.1.tgz", + "integrity": "sha512-3Ag8Ls1ggqkGUvSZWYcdgFwriy2lWo+0QlYgEFra/5JGtAd6C5Hw59oojx1DeqcA2Wds2ayRgvJ4qxVTzCHgzg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.50.1.tgz", + "integrity": "sha512-t9YrKfaxCYe7l7ldFERE1BRg/4TATxIg+YieHQ966jwvo7ddHJxPj9cNFWLAzhkVsbBvNA4qTbPVNsZKBO4NSg==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.50.1.tgz", + "integrity": "sha512-MCgtFB2+SVNuQmmjHf+wfI4CMxy3Tk8XjA5Z//A0AKD7QXUYFMQcns91K6dEHBvZPCnhJSyDWLApk40Iq/H3tA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.50.1.tgz", + "integrity": "sha512-nEvqG+0jeRmqaUMuwzlfMKwcIVffy/9KGbAGyoa26iu6eSngAYQ512bMXuqqPrlTyfqdlB9FVINs93j534UJrg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.50.1.tgz", + "integrity": "sha512-RDsLm+phmT3MJd9SNxA9MNuEAO/J2fhW8GXk62G/B4G7sLVumNFbRwDL6v5NrESb48k+QMqdGbHgEtfU0LCpbA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.50.1.tgz", + "integrity": "sha512-hpZB/TImk2FlAFAIsoElM3tLzq57uxnGYwplg6WDyAxbYczSi8O2eQ+H2Lx74504rwKtZ3N2g4bCUkiamzS6TQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.50.1.tgz", + "integrity": "sha512-SXjv8JlbzKM0fTJidX4eVsH+Wmnp0/WcD8gJxIZyR6Gay5Qcsmdbi9zVtnbkGPG8v2vMR1AD06lGWy5FLMcG7A==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/rollup/node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.1.tgz", + "integrity": "sha512-StxAO/8ts62KZVRAm4JZYq9+NqNsV7RvimNK+YM7ry//zebEH6meuugqW/P5OFUCjyQgui+9fUxT6d5NShvMvA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/sax": { + "version": "1.4.1", + "license": "ISC" + }, + "node_modules/semver": { + "version": "7.7.2", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.34.3", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.4", + "semver": "^7.7.2" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.3", + "@img/sharp-darwin-x64": "0.34.3", + "@img/sharp-libvips-darwin-arm64": "1.2.0", + "@img/sharp-libvips-darwin-x64": "1.2.0", + "@img/sharp-libvips-linux-arm": "1.2.0", + "@img/sharp-libvips-linux-arm64": "1.2.0", + "@img/sharp-libvips-linux-ppc64": "1.2.0", + "@img/sharp-libvips-linux-s390x": "1.2.0", + "@img/sharp-libvips-linux-x64": "1.2.0", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.0", + "@img/sharp-libvips-linuxmusl-x64": "1.2.0", + "@img/sharp-linux-arm": "0.34.3", + "@img/sharp-linux-arm64": "0.34.3", + "@img/sharp-linux-ppc64": "0.34.3", + "@img/sharp-linux-s390x": "0.34.3", + "@img/sharp-linux-x64": "0.34.3", + "@img/sharp-linuxmusl-arm64": "0.34.3", + "@img/sharp-linuxmusl-x64": "0.34.3", + "@img/sharp-wasm32": "0.34.3", + "@img/sharp-win32-arm64": "0.34.3", + "@img/sharp-win32-ia32": "0.34.3", + "@img/sharp-win32-x64": "0.34.3" + } + }, + "node_modules/sharp/node_modules/@img/sharp-darwin-x64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.3.tgz", + "integrity": "sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.0" + } + }, + "node_modules/sharp/node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.0.tgz", + "integrity": "sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/sharp/node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.0.tgz", + "integrity": "sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/sharp/node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.0.tgz", + "integrity": "sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/sharp/node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.0.tgz", + "integrity": "sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/sharp/node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.0.tgz", + "integrity": "sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/sharp/node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.0.tgz", + "integrity": "sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/sharp/node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.0.tgz", + "integrity": "sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/sharp/node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.0.tgz", + "integrity": "sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/sharp/node_modules/@img/sharp-linux-arm": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.3.tgz", + "integrity": "sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.0" + } + }, + "node_modules/sharp/node_modules/@img/sharp-linux-arm64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.3.tgz", + "integrity": "sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.0" + } + }, + "node_modules/sharp/node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.3.tgz", + "integrity": "sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.0" + } + }, + "node_modules/sharp/node_modules/@img/sharp-linux-s390x": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.3.tgz", + "integrity": "sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.0" + } + }, + "node_modules/sharp/node_modules/@img/sharp-linux-x64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.3.tgz", + "integrity": "sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.0" + } + }, + "node_modules/sharp/node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.3.tgz", + "integrity": "sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.0" + } + }, + "node_modules/sharp/node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.3.tgz", + "integrity": "sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.0" + } + }, + "node_modules/sharp/node_modules/@img/sharp-wasm32": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.3.tgz", + "integrity": "sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.4.4" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/sharp/node_modules/@img/sharp-win32-arm64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.3.tgz", + "integrity": "sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/sharp/node_modules/@img/sharp-win32-ia32": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.3.tgz", + "integrity": "sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/sharp/node_modules/@img/sharp-win32-x64": { + "version": "0.34.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.3.tgz", + "integrity": "sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/shiki": { + "version": "3.12.2", + "license": "MIT", + "dependencies": { + "@shikijs/core": "3.12.2", + "@shikijs/engine-javascript": "3.12.2", + "@shikijs/engine-oniguruma": "3.12.2", + "@shikijs/langs": "3.12.2", + "@shikijs/themes": "3.12.2", + "@shikijs/types": "3.12.2", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.4", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "license": "MIT" + }, + "node_modules/sitemap": { + "version": "8.0.0", + "license": "MIT", + "dependencies": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "bin": { + "sitemap": "dist/cli.js" + }, + "engines": { + "node": ">=14.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/sitemap/node_modules/@types/node": { + "version": "17.0.45", + "license": "MIT" + }, + "node_modules/smol-toml": { + "version": "1.4.2", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 18" + }, + "funding": { + "url": "https://github.com/sponsors/cyyynthia" + } + }, + "node_modules/source-map": { + "version": "0.7.6", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stream-replace-string": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/string-width": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.2", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/style-to-js": { + "version": "1.1.17", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.9" + } + }, + "node_modules/style-to-object": { + "version": "1.0.9", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.4" + } + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tsconfck": { + "version": "3.1.6", + "license": "MIT", + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "license": "0BSD" + }, + "node_modules/type-fest": { + "version": "4.41.0", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.9.2", + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.6.1", + "license": "MIT" + }, + "node_modules/ultrahtml": { + "version": "1.6.0", + "license": "MIT" + }, + "node_modules/uncrypto": { + "version": "0.1.3", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.11.0", + "license": "MIT" + }, + "node_modules/unicode-properties": { + "version": "1.4.1", + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/unicode-trie": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "node_modules/unified": { + "version": "11.0.5", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unifont": { + "version": "0.5.2", + "license": "MIT", + "dependencies": { + "css-tree": "^3.0.0", + "ofetch": "^1.4.1", + "ohash": "^2.0.0" + } + }, + "node_modules/unist-util-find-after": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-modify-children": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "array-iterate": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position-from-estree": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-children": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unstorage": { + "version": "1.17.1", + "license": "MIT", + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^4.0.3", + "destr": "^2.0.5", + "h3": "^1.15.4", + "lru-cache": "^10.4.3", + "node-fetch-native": "^1.6.7", + "ofetch": "^1.4.1", + "ufo": "^1.6.1" + }, + "peerDependencies": { + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", + "@azure/identity": "^4.6.0", + "@azure/keyvault-secrets": "^4.9.0", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6.0.3 || ^7.0.0", + "@deno/kv": ">=0.9.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", + "@vercel/kv": "^1.0.1", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", + "idb-keyval": "^6.2.1", + "ioredis": "^5.4.2", + "uploadthing": "^7.4.4" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@deno/kv": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/blob": { + "optional": true + }, + "@vercel/functions": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "uploadthing": { + "optional": true + } + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/vfile": { + "version": "6.0.3", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "5.0.3", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "6.3.6", + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "1.1.1", + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*", + "tests/projects/workspace/packages/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which-pm-runs": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/widest-line": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi": { + "version": "9.0.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/xxhash-wasm": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yocto-spinner": { + "version": "0.2.3", + "license": "MIT", + "dependencies": { + "yoctocolors": "^2.1.1" + }, + "engines": { + "node": ">=18.19" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.2", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.25.76", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-to-json-schema": { + "version": "3.24.6", + "license": "ISC", + "peerDependencies": { + "zod": "^3.24.1" + } + }, + "node_modules/zod-to-ts": { + "version": "1.2.0", + "peerDependencies": { + "typescript": "^4.9.4 || ^5.0.2", + "zod": "^3" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/astro-migration/package.json b/astro-migration/package.json new file mode 100644 index 00000000..6d225b6e --- /dev/null +++ b/astro-migration/package.json @@ -0,0 +1,17 @@ +{ + "name": "astro-migration", + "type": "module", + "version": "0.0.1", + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro build", + "preview": "astro preview", + "astro": "astro" + }, + "dependencies": { + "@astrojs/starlight": "^0.35.3", + "astro": "^5.6.1", + "sharp": "^0.34.2" + } +} \ No newline at end of file diff --git a/astro-migration/public/assets/android-chrome-192x192.png b/astro-migration/public/assets/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..75aee0e93fb997f749492876c31df0e355a26546 GIT binary patch literal 1686 zcmYjRe>hb68vmY|(HyMyq?Q?pvs`N=)1cZ>bk9ibDA|*gS)!Btm`9t=)|N5EQC+5} zrt3$8(zLd1Dv7RTw3Q>abj@zuCJ7<6WmV{6NTb>D+<)%pdEOt-`}sVd_j%qw-lKTv zS2k7-RsaB-U~y2Gxze)%GtD`kab`IH(0V*1e66LWrC6rq@Ptw^kYYeV08%?BzzIUt zLgIjy0R-hqgg_vc2qaP-2j*d7AqwNlDqH{yC8Urb2bBPUVIB%s$pB9*5zEx55QAYv zsvSg7RE7hb(sU{SCV*80P)LASrjjUWj8wExKqUpZLPOy|LjscqNUH`3O&g(Z8&v@z z5AIX~u>h7}po#<%6>UYE2>a| zkb?@eGN2>?E(A0MFdod|2?V&5P`AJc!ozTc!yzz0(o>j}LduZ(kxFS*KMcdB3t%s8u&wbs4S)qZI7k#OgWfb| znJ*0}^~@#vON`m}e;|h5T(17k74DxZC_Y)tZPMuy^p=dR{=R*tpRd13s7c;av9Bk2 zI_-wFDZ=5IDeAr5ILWe)91J;JnfmaTHb^%a5TF)r%HG%VvioMH7v+22f%dP1GM|sU z&Fer9ZBQqXIb#NL<{M)^Nkhg7n*i!CQ!rEgN7#?6w=*lk4+hYq8FT1TE(z?v-ej%l z(H+u6Uu;;i0GV`J5XNq9ux@hi1)f$|FFV2N;d!(>=)Z=4S(m*^?^8dt3yS4>H|a(U zUM$Mgd4a#B+2YuvoXr+DgZ!VhbaSmCQ0TQj(qjtzqF=GB!oqm-$pL%fhOf+y;j(kT z-@KZ{l+u+$w{1yQVv*lVW1Jf>?yeh~91&H>x7L*K)y=y_O@Y*#uZDRw2ZIw0VHP)E zoTy)J4OQQ9Y4`s=FPN54#A5A(&&9`ec zFq$L&Rx4*8fpVYZBBLeEu@At~Cd=P)5ka8k&rVR?MdAJXfu;=Mg8Gllq=N9QBmZU3 z3*3-#c4I0>`H^W=uficAl2ecX!-to@p(m z&Nb}xR+cL-7x2|s;KJBf8QjNTXj|PrKv4xRVpAyT%eK<^HF&KPzR%-Q<XWw%a$F`zZyk7AG66DAeKM&B$-TdxaWz>t%CW4FG&y+SvikXn5ZJ&h%Rhf2 zfFa}FO6jpJ@UL>NTJzKH!OxIy`}3NNwc&F(akPB9yU(_E1M1sSwT6E{0)_$h`mRc-@1{AKFr2#}<$eP)}zkK zKhvgasJ;2FBB>`)7Lx21O$qypP8Ts2^WB#CcTUd*mmi0*6z)C${Fg2Dpbu$}J2*LU zVE@GdSC^m|ZTClamTbObYG(I3daxrm;vcsnSAAjE@E&#GZgd8_ipP2$=NxwpQ1?iA zzG&sv1D8)mq`c<;TKl`9eCBSJ9kuXy&!U9nO40U?j$AorsA-9$|I;hkpOzlq?)LD` ztt)4#lnM)MIP~4NJ$__YJHv%7^1(ii-ZAFBEBt&KPJR9M>J^Bbj7t7)h5GCIRdTSb z#Dw6I^s(&khs)h|9@l|qXUSGp;5kFzYY5Lsn$uk5RIhI>T%=gUUXR5+@#|arwCjc) z^64R#;@|v<>z=!Qw4kphoEwRXM`{4~h!D$*{yaK*#Sac(M|N@FHBnze$?OtaH0etI zxOeiwl>IRsns7a1;P|%mAyMC*JO||3d6weYt2pI+Uzp2srN=koODYr3@98~ircSY7 zW2_>w=ajV3y8Nzla+hi|W8i^(?q=9@tE>Fp^#PZwfA2obgl7L5YI?j5-}3(ePIVqO Sd~xZiSvq)aXi#M!ap*5zBiL#H literal 0 HcmV?d00001 diff --git a/astro-migration/public/assets/android-chrome-512x512.png b/astro-migration/public/assets/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..14de528b6b8878d081a881850cc3cb35c26df9bc GIT binary patch literal 4091 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 literal 0 HcmV?d00001 diff --git a/astro-migration/public/assets/apple-touch-icon.png b/astro-migration/public/assets/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7620245c425ac8b9df0e618c9ffe4b706a0f1331 GIT binary patch literal 1749 zcmYLJeLRzE7=AOI)`xS1%2zCPA|KmiN`BImu~8XG*6+wf&P!pjSnEurWM@tE!IE># z#)(qCmKLh@<*PaE%{f^TQzu5$DlsWL@3ubP-~C?i{ap8TU(fwMe>`mRR)3>;mh%7r zFd`9sL*TDS`yvrA&NH2Wan^qF=1>BhfHj(A$+(6Oz(JQxXexm3@fV;e(}k|8)#Sk% zHBB;36RQ|)8m$r*z{m$+QlIFpzG1Rtf~IXzF(j%lq<#y1V+8<8G+IHMh9QP!UjmfD zqzX3IB2VWp)@a+mj>iyd1vHq{G4L)Kk}o+dgMAnhwYCKBqVLk-H-9+MH-2OEVt5H# z!TA>fAJ8xLVm+@f=^J$ueji&;!U*dA_uEoCM!D9COe)w0A9@-+Wa~BnDd#KN)Jh3W zF0PPNFpwyfv9Us#gO^h?sNqBhlp=#@p2N$)%G-#>6-e_uS~${JhDFkh$$WDj(i}-v zDUl2ZEEQFwKq8Iv)MSYVD958}!qr5TtPN$Z7UPXQ9F!G&nTo*!@OZJyzKx0 zhQ%abpHRlE(c78uJU|BjbLEms18u5%cov5gr)=1FJZ7rKx*N)C6GRDt7Jbvh=Z8t| z@yT^J+Gld_YS`O0g&Ij4df5i&x_X;5(YTWId_szP?g`JtX^i0dsRF`#HsXd|*Ufu| zmV!sIuRWylz=r#fUy5ucXHdRUG*OI>S9_=bl;d?WK5TDB z)(Sh^w)&?;#1sR#ny&`rrEX?Cw|*lj~gi!t($D!$sGRsMy1h z{8)T;V{xJ1(Dh4TvIvE4e*6+zbCY^)bq^t8Lz}QRZ(zQ~eBmT1I?VF(%*wsRE_YDn zWg!dvF!?Q>xQh{SxOGQk2iKareuh%YYBNg>k|?2B2cZ7n`-3b;qITi4?%Z(1I!0Qd ztL#7i5ckZMv8B5?k?PhWus-2AFyP1(3=#K6<~&w;`|vM#QYquRGI0g2&P72D%!^JX zE}WZzJFD-3wIA1aR1IYBftEdLM6(A!c?H}F?7gToo4f0Q;QG<~&9Z&L<8R7d_80oq z8@)I_=F$`uF^<>}m$1oZ>9}H{+u_M!H$Stbp-fgY&NJ{xc@z{`_|!W5GWJk4p89%D z7t7?Ar(JKGUSe5DpLBlGCVyPAwE20hGc(I@h7tj3Vv7EayCjIrR{)KIxA|6%t&e@D ziHegWC;Y;BG4bQCbN|B!3NQ7BitLzN!(*&xP}}~y1L7&@Rl12s=?3P-tKBtI(5-yx zf_GqW#`%s||NdprdMay28httild><7F2cJ!C>_0B^oC$!bS<@j?ti!; z7yd3!t#b4cErl$&LNB-0M_7eA+>-U1m-9~S`Jz9)OKNMsr=?`u9wh<5K@!c|JwwckGt zCdaIRYG$8X$ID(upy0^4AN&wj)kO5M0!%6i=XEgl%I4d^hmQ66or?ueyOHhcM*9F0 z?yBlc$aMf_AHHU{WF=U}tP`KGV*-nRP-S&MIvnVy|R&d + + + + + #111111 + + + diff --git a/astro-migration/public/assets/favicon-16x16.png b/astro-migration/public/assets/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..3186b4186e944d321255e8ed201e337d4bbfdfb8 GIT binary patch literal 310 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 aGT!6g9+~P`H=>ttOLxGKlrYZ!jP+mQ{Q{%_ literal 0 HcmV?d00001 diff --git a/astro-migration/public/assets/icon.png b/astro-migration/public/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1f5ade57f6037d91079ec681893265b0e773ea89 GIT binary patch literal 4052 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 KQL0n0iTN)_&su;0 literal 0 HcmV?d00001 diff --git a/astro-migration/public/assets/mstile-144x144.png b/astro-migration/public/assets/mstile-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..9f7dd617666b8dbec24d34d7bc12afaa9a8aa853 GIT binary patch literal 1507 zcmYjR2~ZPf6y8(`Yk;spk&K3LXlqg#3C6+HlZ9x)WrI+q9vx7W4AgK`Ab8N2r~_0a zQvnkwHAd2gN;tw5DLCQKqN9>hkbsDIK@bL`as-K_y98}_-oAa``@i@7@BK6TXK{A1 z9B?ae001}yvYES)uNZy7MTpl)oU#D`!{dZR>_A|m)|jX@A;$k0SfSNhln4P`MQBKD zH3TMWr>x#mf+nrCpH~0RL}M8$vXCtKBxn+7E&O)Ne^oNTB1Y8~$cQpR)>sgTm_WG@ zEa-e}W&ujj!enF@L_`K~D=pRl^@t9VLH0tW&|wiKADLH!1}K~_K_;>qlHnpWjqyK) zdBOrj`$t43=I!H9)*0I^Tpc2L+iD zi0cQr`z5xUI7Sl@(rd((?K&BSD~XEY7-gDB5TfaIiQpi+(l7`zh+v{NQjn=-GmId` z$Ps|V%u2l<1QKZ`cOqz{u?>Um1_+`sBBNv)Q#(bY7fX}|E(r2q@DxcFAy z?AEKCRS#C-hHGz=LcjN$IBi~P6PDrnGnDf?q3zPtTJF}&x&4dF`Mt5Gfs}?>({WWS|p@6k4#FH2bNHK^>**`2C4nc zacP05hT;EwWVx^_d$mp2i}F`97mLW79t2GeXa5MPqVM5rA!aHYFEI;zDzgpQnEwkYW^KIT3;7!= z9o9~*?@4*QC^d2>2&d*uFFjZox)LY+M=`XA+^it%*_qoUoUohuCIHqRccfn@$J{u2 z$D8tXP=6#uYwWjuDHz>0jW1NQscrXcnv-N>KRkAQEi0MBgu{J6&mpapHJHMVn#HE5Y3iX(%hJ#ICI=E78}=SeQtrW7{s#MG;yQfaM!Y-R$JbHgTa%%bEm_67{Bb(b@qJOz-HR;f^RBDUE0!!S z5p7%D|7-xBE!!%9mhJ7-%RA}eu@`tJ%ZlF@XH2*#BR06zboAlO!mhgQFIgY#6hosJSG(V6Al#ir`kLEVIh?ZME_%Vw#wUsR0D+xaC ztbPCM(F3M}3ToO{n!FQhu+c4^^3F{>72gw!xg*>R=HHCVKeBdJoNx6Z$UjwET{DOG zV0%}SzfC>gbnofzll8>2hCSNJ6MyW-`+HT0@@|9`Ou|_|!Fo27e+YERk$l`Slbq_z6M5Bt;S*kgKep~WVJkv)idmE;}K)qnBpAVB%tJFf3VoZ zrj^EzAMZQkRUDL6u{~7rFzIhH$qxMk?cdh_daE40z0t=PbE&{X=;~xaZ)+fM$1Y~M Hf0XcFgo5ms literal 0 HcmV?d00001 diff --git a/astro-migration/public/assets/mstile-150x150.png b/astro-migration/public/assets/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..08ccc4d64452cdc363cbb5934445e82c2273ada5 GIT binary patch literal 1427 zcmeAS@N?(olHy`uVBq!ia0y~yVB`Z~4rZW;e?I4QASWikC&U%VEjaK46a8O-5U)7! z0j}Wx0+4vofo~86K=S_*1`r8RzvDlgjgXoFlLc7>G76#wN-hB!_yK4vkP9>xX3>X= z9sj{>kot-f{~-#{^a8m>2YzI1fLaPsQ?cVm#s!dG5Ep_V&I7xx0;vALe~_DDQb3gj zJAk%)C^+#S=zxY5{~Le`;Cj&*K#j|w{)MP1IPe7|G65u5a^M>%WR`-$1ZeEdZEHh7 z;ad{q7tF9?!;1?A4iXbGcFYi{_z=J`;fKJD6(1BF6a*|15-$AM!BJrGK%nDB#R-WQ z9s)ByG@LNt_@NOYVDR8Tguw<6jSn0@GCCGWa4b+LXz2LBaX>-ffk!}tfq(?Z4Gs9A4vhut&bT-+Fff;Sx;TbZFupn12y_U;;RU~gjJv(9bXzX>`E3{WzW*J*_vG8J znQHP1lj}1j|7Z!fx$gc|kWk`uu<@Prg9q=|9zWi0am3&8T(iGxdOFMNb!;*nv8?QF zd;dK9?k&_iU9o;*P(i^-hAmN61q(JS7bh4o`KP|HwExoD+0@+KxOovX`!aD=zQ7mW z3?GEuUkAwYnVqq`bv(}J#ev4nT71cO-@V)_H>KSrc(M??c(d8MQj-S-+Lkg5AG@Ul zw;N^d*{OX}=1h6hjd_=+J8voSU0ipPImC0y-3gX8i?F6gWFt9ORmcnT3P&k$K-lHeOBN2U`5};kE})E3xd;RqQBfx^!TZC`GjtR>+H{` ze)?GcIrCAu{!&+mO{3VIbq}*Mx%tIbHb}ZZR{v!YVZ&pnj<6-|8SrM5T^WvRczOzKkOTP6{ zZT&3eaOHJ6g@2@ld>sVtM%{lOkSB9<$4%83#m@SBH<})Aal2zVqtJn6V{Hn1A5Y=U zDVE1KN?)v9ZGU|Gk%{tWEFTE}n}1J+`O&6iFFrk$d!Z%IGbYuzt$L=hO>pu2muDxQ z7P_8&;5txF?OxlLXDj$$ZqIs_U_bx2D8nlDLQ(eXqVMf5&Q$&y+gUD=y!7io*}rqb z3kwwIEjY?$J(;V|)!gfM-<9~+we`!YJny9OxpXc$v+>Q1jc@LixE*Ai&vw7ig#Ukp z>dH5E9Za4_uL(N3giEZ6$Z>y^p!#ga7kjsO4v literal 0 HcmV?d00001 diff --git a/astro-migration/public/assets/mstile-310x150.png b/astro-migration/public/assets/mstile-310x150.png new file mode 100644 index 0000000000000000000000000000000000000000..81721191a4e0e688536ddf98aa26bd8776e444f8 GIT binary patch literal 1533 zcmeAS@N?(olHy`uVBq!ia0y~yVA5k?VC3Uq28ztQkmCmA#02<+xB|Ha2Yz6p|0@vU z6$d`R75rZS5-&RN4M+mjfY1^!2~oe}KSU5J3zV9HBn#G305%Px5y%D_2sLK~1H@Rc zT^}lT{0A~BPJj%AYXKPxb-<5|4N$wF+F|BY?D&y!0YeI`s{rV{B@7h@eqmfewim z9s)B?-1yLN!hqw4zypnlhyw;1A2XLl_zs{9P%&k_p5l z1*F~Ao2BgDWWZCeYi?|OdB)6{wmw_VoSAv=zx+nu)DA7nZ#qwlvnJ%dUwFZGTl~QV zY|M%}`JB5n&rAKAKYtN(djWf5V9m7&+?DqkPAymOm*4NN^pnX-zV}G@H1CF#$A4lv z0Ia=6> zpUTPH$>UFVOc`s=mJb}soaX~k}??UP~}_NLo>a}`|i+2NnZdDVuAsX@&t zx9K&uIJaL-2HCO4=IVTI7>8j^t>x%VS*|bA-r_Wbr-pnz1JHO)T5{C&>YcAz= zZ=AAh|2+o}J$2~V5VuiU)Gx5^tm^mJRH@|4Q|I2x{BOMu9 zT+anNnRUfOC!R{xt2nF1eVO4;aFw2ij^NS<4oUWlpDxn+l<=tCZ1$eR2cCA#?-H*v#jm?&WN1z-~S!Eu+aTHYwGEh;`L2ZU+3w0*yVpXkoLRA zVy@q#br*J>dU~%v_;-O)px$AHU2VIy$>mp)df1B>}GJ{ewEnn fRjj0BJwj?3U$q)*t(U5_04elz^>bP0l+XkKQa!K< literal 0 HcmV?d00001 diff --git a/astro-migration/public/assets/mstile-310x310.png b/astro-migration/public/assets/mstile-310x310.png new file mode 100644 index 0000000000000000000000000000000000000000..e5d0965319fea532b72a778a831b609a6161bdd1 GIT binary patch literal 2716 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 literal 0 HcmV?d00001 diff --git a/astro-migration/public/assets/safari-pinned-tab.svg b/astro-migration/public/assets/safari-pinned-tab.svg new file mode 100644 index 00000000..d90a7357 --- /dev/null +++ b/astro-migration/public/assets/safari-pinned-tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/astro-migration/public/assets/site.webmanifest b/astro-migration/public/assets/site.webmanifest new file mode 100644 index 00000000..0c8e62dd --- /dev/null +++ b/astro-migration/public/assets/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/assets/images/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/assets/images/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#111111", + "background_color": "#111111", + "display": "standalone" +} diff --git a/astro-migration/public/favicon.svg b/astro-migration/public/favicon.svg new file mode 100644 index 00000000..cba5ac14 --- /dev/null +++ b/astro-migration/public/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/astro-migration/src/assets/houston.webp b/astro-migration/src/assets/houston.webp new file mode 100644 index 0000000000000000000000000000000000000000..930c164974ad8eb528878f15a98016249b8cf546 GIT binary patch literal 98506 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 b6~t;_wBcJ3AWgga7~Sz~izoKbpAY~5r|m$8 literal 0 HcmV?d00001 diff --git a/astro-migration/src/assets/logo.png b/astro-migration/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2be23113f88b8380acebdcf6ff3810f3b55c014a GIT binary patch literal 7414 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 KQL0n0iTN)_&su;0 literal 0 HcmV?d00001 diff --git a/astro-migration/src/components/FeedDirectory.astro b/astro-migration/src/components/FeedDirectory.astro new file mode 100644 index 00000000..b0c98a00 --- /dev/null +++ b/astro-migration/src/components/FeedDirectory.astro @@ -0,0 +1,507 @@ +--- +import { configs } from '../data/configs'; +--- + +

+ + +
+
+
+ Instance URL + +
+ +
+ Search + +
+
+ +
+ {configs.map((config, index) => ( +
+
+ {config.channel?.url && ( +
+

+ {config.valid_channel_url ? ( + + {config.channel.url} + + ) : ( + <> + {config.channel.url} + + + )} +

+ {!config.valid_channel_url && ( + + )} +
+ )} + + {!config.valid_channel_url && ( +
+
+ {Object.entries(config.url_parameters || {}).map(([key, fallback]) => ( +
+ + +
+ ))} +
+ +
+
+
+ )} +
+ + +
+ ))} +
+
+
+ + + + + + +
+ + + + + + + + + + + + + +
+ + + + + diff --git a/astro-migration/src/content.config.ts b/astro-migration/src/content.config.ts new file mode 100644 index 00000000..d9ee8c9d --- /dev/null +++ b/astro-migration/src/content.config.ts @@ -0,0 +1,7 @@ +import { defineCollection } from 'astro:content'; +import { docsLoader } from '@astrojs/starlight/loaders'; +import { docsSchema } from '@astrojs/starlight/schema'; + +export const collections = { + docs: defineCollection({ loader: docsLoader(), schema: docsSchema() }), +}; diff --git a/astro-migration/src/content/docs/feed-directory/index.mdx b/astro-migration/src/content/docs/feed-directory/index.mdx new file mode 100644 index 00000000..44300d9a --- /dev/null +++ b/astro-migration/src/content/docs/feed-directory/index.mdx @@ -0,0 +1,30 @@ +--- +title: 'Feed Directory' +description: 'Browse pre-built configurations to create RSS feeds for various websites.' +--- + +# Welcome to the Feed Directory! + +This directory contains a list of pre-built configurations to create RSS feeds for various websites. + +## Instance URL + +An "Instance URL" is the address of a running `html2rss-web` application. You can use a public instance, but we encourage you to host your own. + +[πŸš€ Host Your Own Instance (and share it!)](/web-application/how-to/deployment) + +Find more public instances on the [community-run wiki](https://github.com/html2rss/html2rss-web/wiki/Instances). + +--- + +import FeedDirectory from '../../../components/FeedDirectory.astro'; + + + +--- + +## Contribute to the Directory + +The feed configurations in this directory are community-driven. If you've created a new feed configuration, we encourage you to share it with the community. + +[Contribute on GitHub](https://github.com/html2rss/html2rss-configs) diff --git a/astro-migration/src/content/docs/guides/example.md b/astro-migration/src/content/docs/guides/example.md new file mode 100644 index 00000000..ebd0f3bc --- /dev/null +++ b/astro-migration/src/content/docs/guides/example.md @@ -0,0 +1,11 @@ +--- +title: Example Guide +description: A guide in my new Starlight docs site. +--- + +Guides lead a user through a specific task they want to accomplish, often with a sequence of steps. +Writing a good guide requires thinking about what your users are trying to do. + +## Further reading + +- Read [about how-to guides](https://diataxis.fr/how-to-guides/) in the DiΓ‘taxis framework diff --git a/astro-migration/src/content/docs/index.mdx b/astro-migration/src/content/docs/index.mdx new file mode 100644 index 00000000..61131f9f --- /dev/null +++ b/astro-migration/src/content/docs/index.mdx @@ -0,0 +1,37 @@ +--- +title: 'Turn Any Website Into an RSS Feed' +description: 'html2rss brings back RSS. It is an open source project with decentralised instances. These instances generate RSS feeds for websites which do not offer them.' +--- + +# Turn Any Website Into an RSS Feed + +Ever wished you could follow your favorite websites like a social media feed? The html2rss project makes it possible by creating RSS feeds for any website - even ones that don't offer them. + +[**πŸš€ Get Started with html2rss-web**](/web-application/getting-started) + +--- + +## What is RSS? + +RSS (Really Simple Syndication) lets you follow websites in your favorite feed reader. Instead of checking multiple websites daily, you get all updates in one place - like a personalized news feed. + +## The html2rss Project + +The html2rss project provides two main ways to create RSS feeds: + +- **html2rss-web** - A user-friendly web application (recommended for most users) +- **html2rss** - A Ruby gem for developers and advanced users + +Both use the same powerful engine to extract content from websites and convert it into RSS feeds. + +--- + +## Choose Your Path + +- **[html2rss-web](/web-application):** **Start here!** Easy-to-use web application. No technical knowledge required. +- **[Feed Directory](/feed-directory/):** Browse ready-made feeds for popular websites +- **[html2rss (Ruby Gem)](/ruby-gem):** For developers who want to create custom configurations + +--- + +**Ready to get started?** Check out our [html2rss-web getting started guide](/web-application/getting-started) or [browse existing feeds](/feed-directory/) to see what's possible. diff --git a/astro-migration/src/content/docs/reference/example.md b/astro-migration/src/content/docs/reference/example.md new file mode 100644 index 00000000..0224f096 --- /dev/null +++ b/astro-migration/src/content/docs/reference/example.md @@ -0,0 +1,11 @@ +--- +title: Example Reference +description: A reference page in my new Starlight docs site. +--- + +Reference pages are ideal for outlining how things work in terse and clear terms. +Less concerned with telling a story or addressing a specific use case, they should give a comprehensive outline of what you're documenting. + +## Further reading + +- Read [about reference](https://diataxis.fr/reference/) in the DiΓ‘taxis framework diff --git a/astro-migration/src/data/configs.ts b/astro-migration/src/data/configs.ts new file mode 100644 index 00000000..37a59b21 --- /dev/null +++ b/astro-migration/src/data/configs.ts @@ -0,0 +1,91 @@ +export interface Config { + domain: string; + name: string; + valid_channel_url: boolean; + url_parameters: Record; + default_parameters: Record; + channel: { + url: string; + time_zone?: string; + ttl?: number; + language?: string; + title?: string; + json?: boolean; + }; +} + +export const configs: Config[] = [ + { + domain: "adfc.de", + name: "pressemitteilungen", + valid_channel_url: true, + url_parameters: {}, + default_parameters: {}, + channel: { + url: "https://www.adfc.de/presse/pressemitteilungen/", + time_zone: "Europe/Berlin", + ttl: 720, + language: "de", + }, + }, + { + domain: "apnews.com", + name: "hub", + valid_channel_url: false, + url_parameters: { + section: "String", + }, + default_parameters: { + section: "news", + }, + channel: { + url: "https://apnews.com/%
s", + language: "en", + ttl: 120, + time_zone: "UTC", + }, + }, + { + domain: "avherald.com", + name: "index", + valid_channel_url: true, + url_parameters: {}, + default_parameters: {}, + channel: { + url: "https://avherald.com/", + language: "en", + ttl: 120, + time_zone: "UTC", + }, + }, + { + domain: "bbc.co.uk", + name: "available_episodes", + valid_channel_url: false, + url_parameters: { + id: "String", + }, + default_parameters: { + id: "b006wkfp", + }, + channel: { + url: "https://www.bbc.co.uk/programmes/%s/episodes/player", + time_zone: "UTC", + ttl: 720, + }, + }, + { + domain: "bbc.com", + name: "mundo", + valid_channel_url: true, + url_parameters: {}, + default_parameters: {}, + channel: { + url: "https://www.bbc.com/mundo", + language: "es", + ttl: 360, + time_zone: "UTC", + }, + }, + // Add more configs as needed - this is a subset for testing +]; diff --git a/astro-migration/src/data/configs.yml b/astro-migration/src/data/configs.yml new file mode 100644 index 00000000..46d622d1 --- /dev/null +++ b/astro-migration/src/data/configs.yml @@ -0,0 +1,483 @@ +--- +- domain: adfc.de + name: pressemitteilungen + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.adfc.de/presse/pressemitteilungen/ + time_zone: Europe/Berlin + ttl: 720 + language: de +- domain: apnews.com + name: hub + valid_channel_url: false + url_parameters: + section: &1 !ruby/class 'String' + default_parameters: + section: news + channel: + url: https://apnews.com/%
s + language: en + ttl: 120 + time_zone: UTC +- domain: avherald.com + name: index + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://avherald.com/ + language: en + ttl: 120 + time_zone: UTC +- domain: bbc.co.uk + name: available_episodes + valid_channel_url: false + url_parameters: + id: *1 + default_parameters: + id: b006wkfp + channel: + url: https://www.bbc.co.uk/programmes/%s/episodes/player + time_zone: UTC + ttl: 720 +- domain: bbc.com + name: mundo + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.bbc.com/mundo + language: es + ttl: 360 + time_zone: UTC +- domain: blog.mondediplo.net + name: feed + valid_channel_url: false + url_parameters: + blog: *1 + default_parameters: + blog: "-Defense-en-ligne-" + channel: + url: https://blog.mondediplo.net/%s + time_zone: Europe/Paris + title: 'blog.mondediplo.net: %s' + ttl: 120 +- domain: canarianweekly.com + name: front + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.canarianweekly.com/ + time_zone: Europe/London + ttl: 720 + language: en +- domain: cinemascore.com + name: index + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://webapp.cinemascore.com/guest/surveys + ttl: 720 + json: true + time_zone: America/Los_Angeles +- domain: cleanenergywire.org + name: news + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.cleanenergywire.org/news-archive + time_zone: Europe/Berlin + ttl: 360 +- domain: cnet.com + name: section_sub + valid_channel_url: false + url_parameters: + section: *1 + sub: *1 + default_parameters: + section: news + sub: tech + channel: + url: https://www.cnet.com/%
s/%s/ + language: en + ttl: 360 + time_zone: UTC +- domain: computerbase.de + name: meistgelesen + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + title: 'computerbase.de: meistgelesen' + url: https://www.computerbase.de + time_zone: Europe/Berlin + ttl: 360 + language: de +- domain: cutle.fish + name: index + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://cutle.fish/ + ttl: 360 + time_zone: UTC +- domain: deraktionaer.de + name: meistgelesen + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + title: 'deraktionaer.de: meistgelesen' + url: https://deraktionaer.de/ + time_zone: Europe/Berlin + ttl: 360 + language: de +- domain: developer.apple.com + name: tutorials_data_documentation_technotes_json + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + json: true + url: https://developer.apple.com/tutorials/data/documentation/Technotes.json + ttl: 360 + time_zone: UTC +- domain: dfs.de + name: pressemitteilungen + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.dfs.de/homepage/de/medien/presse/ + time_zone: Europe/Berlin + ttl: 1440 + language: de +- domain: dsw-info.de + name: presse + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.dsw-info.de/presse + time_zone: Europe/Berlin + ttl: 720 + language: de +- domain: espn.com + name: f1 + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.espn.com/f1/ + time_zone: UTC + ttl: 60 +- domain: fia.com + name: documents + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.fia.com/documents/championships/fia-formula-one-world-championship-14/season/season-2025-2071 + ttl: 360 + time_zone: UTC +- domain: formula1.com + name: latest + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.formula1.com/en/latest/all.html + time_zone: UTC + ttl: 120 +- domain: github.com + name: releases + valid_channel_url: false + url_parameters: + username: *1 + repository: *1 + default_parameters: + username: nuxt + repository: nuxt.js + channel: + url: https://github.com/%s/%s/releases + time_zone: UTC + ttl: 720 + description: Releases of %s/%s on github.com. +- domain: iaapa.org + name: news + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.iaapa.org/news + time_zone: UTC + ttl: 720 +- domain: imdb.com + name: ratings + valid_channel_url: false + url_parameters: + user_id: *1 + default_parameters: + user_id: ur7019649 + channel: + url: https://www.imdb.com/user/%s/ratings + time_zone: UTC + ttl: 1440 +- domain: ingenieur.de + name: karriere_arbeitsleben_heiko_mell + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.ingenieur.de/karriere/arbeitsleben/heiko-mell/ + language: de-DE + ttl: 360 + time_zone: UTC +- domain: kinocheck.de + name: filmstarts + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://kinocheck.de/filmstarts + time_zone: Europe/Berlin + ttl: 1440 + language: de +- domain: newyorker.com + name: magazine + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.newyorker.com/magazine + language: en + ttl: 360 + time_zone: UTC +- domain: nomanssky.com + name: news + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.nomanssky.com/news/ + language: en-GB + ttl: 360 + time_zone: UTC +- domain: pankow.lebensmittel-kontrollergebnisse.de + name: search + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://pankow.lebensmittel-kontrollergebnisse.de/Search + language: de + ttl: 360 + time_zone: Europe/Berlin +- domain: phys.org + name: weekly + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://phys.org/weekly-news/ + time_zone: Europe/London + ttl: 1440 +- domain: rbb24.de + name: meistgeklickt + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + title: 'rbb24.de: meistgeklickt' + url: https://rbb24.de/ + time_zone: Europe/Berlin + ttl: 30 + language: de +- domain: robinwood.de + name: aktuelles + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.robinwood.de/was-gibt-es-neues/aktuelles + time_zone: Europe/Berlin + ttl: 720 + language: de +- domain: s3.amazonaws.com + name: popular_movies + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://s3.amazonaws.com/popular-movies/movies.json + time_zone: UTC + ttl: 1440 + json: true +- domain: sebastianvettel.de + name: news + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://sebastianvettel.de/news/ + language: de-DE + ttl: 8640 + time_zone: Europe/Berlin +- domain: softwareleadweekly.com + name: issues + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://softwareleadweekly.com/issues + time_zone: UTC + ttl: 720 +- domain: solarthermalworld.org + name: news + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://solarthermalworld.org/news + time_zone: UTC + ttl: 180 +- domain: spektrum.de + name: meistgelesen + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + title: 'spektrum.de: meistgelesen' + url: https://www.spektrum.de/ + time_zone: Europe/Berlin + ttl: 60 + language: de +- domain: spiegel.de + name: impressum_autor + valid_channel_url: false + url_parameters: + id: *1 + default_parameters: + id: 975b6ae0-0001-0003-0000-000000018282 + channel: + url: https://www.spiegel.de/impressum/autor-%s + time_zone: Europe/Berlin + ttl: 180 + language: de +- domain: stackoverflow.com + name: hot_network_questions + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + title: 'stackoverflow.com: Hot Network Questions' + url: https://stackoverflow.com/questions + time_zone: America/New_York + ttl: 30 +- domain: steuerzahler.de + name: news + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.steuerzahler.de/news + time_zone: Europe/Berlin + ttl: 720 + language: de +- domain: stripes.com + name: index + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.stripes.com/ + language: en + ttl: 360 + time_zone: America/New_York +- domain: support.apple.com + name: en_gb_ht201222 + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://support.apple.com/en-gb/HT201222 + language: en + ttl: 360 + time_zone: UTC +- domain: support.apple.com + name: exchange_repair + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://support.apple.com/exchange_repair + time_zone: America/Los_Angeles + ttl: 720 +- domain: teneriffa-news.com + name: news + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.teneriffa-news.com/news + time_zone: Europe/Lisbon + ttl: 720 + language: de +- domain: test.de + name: archiv + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.test.de/archiv/ + language: de + ttl: 360 + time_zone: Europe/Berlin +- domain: theguardian.com + name: international_mostpopular + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + title: 'theguardian.com: International most popular' + url: https://www.theguardian.com/international + time_zone: Europe/London + ttl: 60 +- domain: thoughtworks.com + name: insights + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.thoughtworks.com/insights + language: en + ttl: 360 + time_zone: UTC +- domain: tourismusnetzwerk-brandenburg.de + name: aktuelle_nachrichten + valid_channel_url: true + url_parameters: {} + default_parameters: {} + channel: + url: https://www.tourismusnetzwerk-brandenburg.de/nc/aktuelle-nachrichten/ + time_zone: Europe/Berlin + ttl: 720 + language: de +- domain: webentwickler-jobs.de + name: in + valid_channel_url: false + url_parameters: + region: *1 + default_parameters: + region: berlin + channel: + url: https://www.webentwickler-jobs.de/in/%s + language: de + ttl: 360 + time_zone: Europe/Berlin diff --git a/astro-migration/src/types/global.d.ts b/astro-migration/src/types/global.d.ts new file mode 100644 index 00000000..5501c4e8 --- /dev/null +++ b/astro-migration/src/types/global.d.ts @@ -0,0 +1,10 @@ +declare global { + interface Window { + feedDirectoryData: { + configsData: any[]; + }; + Alpine: any; + } +} + +export {}; diff --git a/astro-migration/tsconfig.json b/astro-migration/tsconfig.json new file mode 100644 index 00000000..8bf91d3b --- /dev/null +++ b/astro-migration/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "astro/tsconfigs/strict", + "include": [".astro/types.d.ts", "**/*"], + "exclude": ["dist"] +} From bde1b2e9558935f141ebd5bfeb59c91b583cb61d Mon Sep 17 00:00:00 2001 From: Gil Desmarais Date: Sun, 14 Sep 2025 18:54:08 +0200 Subject: [PATCH 02/33] phase 2 --- .../src/content/docs/get-involved/index.mdx | 15 ++ .../how-to/advanced-content-extraction.mdx | 16 ++ .../content/docs/ruby-gem/how-to/index.mdx | 8 + .../src/content/docs/ruby-gem/index.mdx | 18 +++ .../content/docs/ruby-gem/installation.mdx | 68 +++++++++ .../content/docs/ruby-gem/reference/index.mdx | 8 + .../docs/ruby-gem/reference/selectors.mdx | 137 ++++++++++++++++++ .../content/docs/ruby-gem/tutorials/index.mdx | 8 + .../ruby-gem/tutorials/simple-blog-list.mdx | 62 ++++++++ .../ruby-gem/tutorials/your-first-feed.mdx | 63 ++++++++ .../content/docs/support/troubleshooting.mdx | 56 +++++++ .../docs/web-application/getting-started.mdx | 35 +++++ .../how-to/automatic-updates.mdx | 10 ++ .../web-application/how-to/deployment.mdx | 17 +++ .../docs/web-application/how-to/index.mdx | 8 + .../how-to/setup-for-development.mdx | 46 ++++++ .../how-to/use-automatic-feed-generation.mdx | 38 +++++ .../how-to/use-in-production.mdx | 17 +++ .../how-to/use-included-configs.mdx | 21 +++ .../content/docs/web-application/index.mdx | 21 +++ .../docs/web-application/installation.mdx | 119 +++++++++++++++ .../reference/env-variables.mdx | 28 ++++ .../docs/web-application/reference/index.mdx | 8 + .../web-application/reference/monitoring.mdx | 28 ++++ .../tutorials/building-feeds.mdx | 12 ++ .../docs/web-application/tutorials/index.mdx | 6 + 26 files changed, 873 insertions(+) create mode 100644 astro-migration/src/content/docs/get-involved/index.mdx create mode 100644 astro-migration/src/content/docs/ruby-gem/how-to/advanced-content-extraction.mdx create mode 100644 astro-migration/src/content/docs/ruby-gem/how-to/index.mdx create mode 100644 astro-migration/src/content/docs/ruby-gem/index.mdx create mode 100644 astro-migration/src/content/docs/ruby-gem/installation.mdx create mode 100644 astro-migration/src/content/docs/ruby-gem/reference/index.mdx create mode 100644 astro-migration/src/content/docs/ruby-gem/reference/selectors.mdx create mode 100644 astro-migration/src/content/docs/ruby-gem/tutorials/index.mdx create mode 100644 astro-migration/src/content/docs/ruby-gem/tutorials/simple-blog-list.mdx create mode 100644 astro-migration/src/content/docs/ruby-gem/tutorials/your-first-feed.mdx create mode 100644 astro-migration/src/content/docs/support/troubleshooting.mdx create mode 100644 astro-migration/src/content/docs/web-application/getting-started.mdx create mode 100644 astro-migration/src/content/docs/web-application/how-to/automatic-updates.mdx create mode 100644 astro-migration/src/content/docs/web-application/how-to/deployment.mdx create mode 100644 astro-migration/src/content/docs/web-application/how-to/index.mdx create mode 100644 astro-migration/src/content/docs/web-application/how-to/setup-for-development.mdx create mode 100644 astro-migration/src/content/docs/web-application/how-to/use-automatic-feed-generation.mdx create mode 100644 astro-migration/src/content/docs/web-application/how-to/use-in-production.mdx create mode 100644 astro-migration/src/content/docs/web-application/how-to/use-included-configs.mdx create mode 100644 astro-migration/src/content/docs/web-application/index.mdx create mode 100644 astro-migration/src/content/docs/web-application/installation.mdx create mode 100644 astro-migration/src/content/docs/web-application/reference/env-variables.mdx create mode 100644 astro-migration/src/content/docs/web-application/reference/index.mdx create mode 100644 astro-migration/src/content/docs/web-application/reference/monitoring.mdx create mode 100644 astro-migration/src/content/docs/web-application/tutorials/building-feeds.mdx create mode 100644 astro-migration/src/content/docs/web-application/tutorials/index.mdx diff --git a/astro-migration/src/content/docs/get-involved/index.mdx b/astro-migration/src/content/docs/get-involved/index.mdx new file mode 100644 index 00000000..360e5b18 --- /dev/null +++ b/astro-migration/src/content/docs/get-involved/index.mdx @@ -0,0 +1,15 @@ +--- +title: 'Get Involved' +description: 'Engage with the html2rss project. Contribute and connect with the community.' +--- + +# Get Involved + +- [**Sponsoring**](/get-involved/sponsoring) + +Engage with the `html2rss` project. Contribute and connect with the community. + +- [**Project Roadmap**](https://github.com/orgs/html2rss/projects/3/views/1): View current work, plans, and priorities. +- [**Report Bugs & Discuss Features**](/get-involved/issues-and-features): Report bugs or propose features. +- [**Join Community Discussions**](/get-involved/discussions): Connect with users and contributors. +- [**Contribute to html2rss**](/get-involved/contributing): Contribute code, documentation, or feed configurations. diff --git a/astro-migration/src/content/docs/ruby-gem/how-to/advanced-content-extraction.mdx b/astro-migration/src/content/docs/ruby-gem/how-to/advanced-content-extraction.mdx new file mode 100644 index 00000000..6f87b471 --- /dev/null +++ b/astro-migration/src/content/docs/ruby-gem/how-to/advanced-content-extraction.mdx @@ -0,0 +1,16 @@ +--- +title: 'Advanced Content Extraction' +description: 'While basic selectors are straightforward, you can achieve very precise content extraction by combining selectors with different extractors and post-processors.' +--- + +# Advanced Content Extraction with Selectors + +While basic selectors are straightforward, you can achieve very precise content extraction by combining selectors with different extractors and post-processors. + +## Extractors + +Learn how to extract specific attributes (like `src` for images) or static values. See [Extractors](/ruby-gem/reference/selectors). + +## Post Processors + +Manipulate extracted text, sanitize HTML, convert Markdown, or apply custom logic. See [Post Processors](/ruby-gem/reference/selectors). diff --git a/astro-migration/src/content/docs/ruby-gem/how-to/index.mdx b/astro-migration/src/content/docs/ruby-gem/how-to/index.mdx new file mode 100644 index 00000000..b5e61966 --- /dev/null +++ b/astro-migration/src/content/docs/ruby-gem/how-to/index.mdx @@ -0,0 +1,8 @@ +--- +title: 'How-To Guides' +description: 'This section provides practical examples and solutions for common tasks when using the html2rss gem.' +--- + +# How-To Guides + +This section provides practical examples and solutions for common tasks when using the `html2rss` gem. diff --git a/astro-migration/src/content/docs/ruby-gem/index.mdx b/astro-migration/src/content/docs/ruby-gem/index.mdx new file mode 100644 index 00000000..f2c96cb7 --- /dev/null +++ b/astro-migration/src/content/docs/ruby-gem/index.mdx @@ -0,0 +1,18 @@ +--- +title: 'Ruby Gem' +description: 'This section provides comprehensive documentation for the html2rss Ruby gem.' +--- + +# The html2rss Ruby Gem + +This section provides comprehensive documentation for the `html2rss` Ruby gem. + +## Getting Started + +If you are new to `html2rss`, we recommend starting with the [tutorials](/ruby-gem/tutorials). + +## Documentation Sections + +- **[Tutorials](/ruby-gem/tutorials)**: Step-by-step guides to help you get started with `html2rss`. +- **[How-To Guides](/ruby-gem/how-to)**: Practical examples and solutions for common tasks. +- **[Reference](/ruby-gem/reference)**: Detailed information on configuration options. diff --git a/astro-migration/src/content/docs/ruby-gem/installation.mdx b/astro-migration/src/content/docs/ruby-gem/installation.mdx new file mode 100644 index 00000000..8f64c81a --- /dev/null +++ b/astro-migration/src/content/docs/ruby-gem/installation.mdx @@ -0,0 +1,68 @@ +--- +title: 'Installation' +description: 'This guide will walk you through the process of installing html2rss on your system.' +--- + +# Installation + +This guide will walk you through the process of installing html2rss on your system. html2rss can be installed in several ways, depending on your preferred method and environment. + +--- + +### Prerequisites + +- **Ruby:** html2rss is built with Ruby. Ensure you have Ruby installed (version 3.2 or higher required). You can check your Ruby version by running `ruby -v` in your terminal. If you don't have Ruby, visit [ruby-lang.org](https://www.ruby-lang.org/en/documentation/installation/) for installation instructions. +- **Bundler (Recommended):** Bundler is a Ruby gem that manages your application's dependencies. It's highly recommended for a smooth installation. Install it with `gem install bundler`. + +--- + +### Method 1: Gem Installation (Recommended for CLI Usage) + +The simplest way to get html2rss for command-line usage is to install it as a Ruby gem. + +```bash +gem install html2rss +``` + +After installation, you should be able to run `html2rss --version` to confirm it's working. + +--- + +### Method 2: Using a Gemfile (For Ruby Projects) + +If you're integrating html2rss into an existing Ruby project, add it to your `Gemfile`: + +```ruby +# Gemfile +gem 'html2rss' +``` + +Then, run `bundle install` in your project directory. + +--- + +### Method 3: GitHub Codespaces (For Cloud Development) + +For a quick start without local setup, you can develop html2rss directly in your browser using GitHub Codespaces: + +[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?repo=html2rss/html2rss) + +The Codespace comes pre-configured with Ruby 3.4, all dependencies, and VS Code extensions ready to go! + +--- + +### Verifying Installation + +To ensure html2rss is installed correctly, open your terminal and run: + +```bash +html2rss --version +``` + +You should see the installed version number. If you encounter any issues, please refer to the [Troubleshooting Guide](/support/troubleshooting). + +--- + +### Next Steps + +Now that html2rss is installed, let's create your [first RSS feed](/ruby-gem/tutorials/your-first-feed)! diff --git a/astro-migration/src/content/docs/ruby-gem/reference/index.mdx b/astro-migration/src/content/docs/ruby-gem/reference/index.mdx new file mode 100644 index 00000000..3680350c --- /dev/null +++ b/astro-migration/src/content/docs/ruby-gem/reference/index.mdx @@ -0,0 +1,8 @@ +--- +title: 'Reference' +description: 'This section provides detailed information on the various configuration options available in html2rss.' +--- + +# Reference + +This section provides detailed information on the various configuration options available in `html2rss`. diff --git a/astro-migration/src/content/docs/ruby-gem/reference/selectors.mdx b/astro-migration/src/content/docs/ruby-gem/reference/selectors.mdx new file mode 100644 index 00000000..bb91bd19 --- /dev/null +++ b/astro-migration/src/content/docs/ruby-gem/reference/selectors.mdx @@ -0,0 +1,137 @@ +--- +title: 'Selectors' +description: 'The selectors scraper gives you fine-grained control over content extraction using CSS selectors.' +--- + +# Selectors + +The `selectors` scraper gives you fine-grained control over content extraction using CSS selectors. + +> A valid RSS item requires at least a `title` or a `description`. + +## Basic Configuration + +At a minimum, you need an `items` selector to define the list of articles and a `title` selector for the article titles. + +```yml +channel: + url: "https://example.com" +selectors: + items: + selector: ".article" + title: + selector: "h1" +``` + +## Automatic Item Enhancement + +To simplify configuration, `html2rss` can automatically extract the `title`, `url`, and `image` from each item. This feature is enabled by default. + +```yml +selectors: + items: + selector: ".article" + enhance: true # default: true +``` + +## RSS 2.0 Selectors + +While you can define any named selector, only the following are used in the final RSS feed: + +| RSS 2.0 Tag | `html2rss` Name | +| ------------- | --------------- | ------------------------------ | +| `title` | `title` | +| `description` | `description` | +| `link` | `url` | +| `author` | `author` | +| `category` | `categories` | +| `guid` | `guid` | +| `enclosure` | `enclosure` | +| `pubDate` | `published_at` | +| `comments` | `comments` | ⚠️ _Not currently implemented_ | + +## Selector Options + +Each selector can be configured with the following options: + +| Name | Description | +| -------------- | -------------------------------------------------------- | +| `selector` | The CSS selector for the target element. | +| `extractor` | The extractor to use for this selector. | +| `attribute` | The attribute name (required for `attribute` extractor). | +| `static` | The static value (required for `static` extractor). | +| `post_process` | A list of post-processors to apply to the value. | + +### Extractors + +Extractors define how to get the value from a selected element. + +- `text`: The inner text of the element (default). +- `html`: The outer HTML of the element. +- `href`: The value of the `href` attribute. +- `attribute`: The value of a specified attribute. +- `static`: A static value. + +### Post-Processors + +Post-processors manipulate the extracted value. + +- `gsub`: Performs a global substitution on a string. +- `html_to_markdown`: Converts HTML to Markdown. +- `markdown_to_html`: Converts Markdown to HTML. +- `parse_time`: Parses a string into a `Time` object. +- `parse_uri`: Parses a string into a `URI` object. +- `sanitize_html`: Sanitizes HTML to prevent security vulnerabilities. +- `substring`: Extracts a substring from a string. +- `template`: Creates a new string from a template and other selector values. + +> Always use the `sanitize_html` post-processor for any HTML content to prevent security risks. + +## Advanced Usage + +### Categories + +To add categories to an item, provide a list of selector names to the `categories` selector. + +```yml +selectors: + genre: + selector: ".genre" + branch: + selector: ".branch" + categories: + - genre + - branch +``` + +### Custom GUID + +To create a custom GUID for an item, provide a list of selector names to the `guid` selector. + +```yml +selectors: + title: + selector: "h1" + url: + selector: "a" + extractor: "href" + guid: + - url +``` + +### Enclosures + +To add an enclosure (e.g., an image, audio, or video file) to an item, use the `enclosure` selector to specify the URL of the file. + +```yml +selectors: + items: + selector: ".post" + title: + selector: "h2" + enclosure: + selector: "audio" + extractor: "attribute" + attribute: "src" + content_type: "audio/mp3" +``` diff --git a/astro-migration/src/content/docs/ruby-gem/tutorials/index.mdx b/astro-migration/src/content/docs/ruby-gem/tutorials/index.mdx new file mode 100644 index 00000000..7fd64980 --- /dev/null +++ b/astro-migration/src/content/docs/ruby-gem/tutorials/index.mdx @@ -0,0 +1,8 @@ +--- +title: 'Tutorials' +description: 'This section provides step-by-step tutorials to help you get started with the html2rss Ruby gem.' +--- + +# Tutorials + +This section provides step-by-step tutorials to help you get started with the `html2rss` Ruby gem. diff --git a/astro-migration/src/content/docs/ruby-gem/tutorials/simple-blog-list.mdx b/astro-migration/src/content/docs/ruby-gem/tutorials/simple-blog-list.mdx new file mode 100644 index 00000000..11d44988 --- /dev/null +++ b/astro-migration/src/content/docs/ruby-gem/tutorials/simple-blog-list.mdx @@ -0,0 +1,62 @@ +--- +title: 'Scraping a Simple Blog List' +description: 'This example demonstrates how to create a feed from a typical blog that has a list of articles on its homepage.' +--- + +# Tutorial: Scraping a Simple Blog List + +This example demonstrates how to create a feed from a typical blog that has a list of articles on its homepage. + +--- + +## The Goal + +We want to create an RSS feed that contains the title, link, and summary of each article on the blog. + +--- + +## The HTML + +Here's a simplified view of the HTML structure we're targeting. The key is to find a container element that wraps each blog post (in this case, `.post-item`) and then find the selectors for the title, link, and summary within that container. + +```html +
+
+

First Post Title

+

Summary of the first post...

+
+
+

Second Post Title

+

Summary of the second post...

+
+
+``` + +--- + +## The Configuration + +This configuration uses the `selectors` scraper to precisely extract the content we want. + +```yaml +channel: + url: https://example.com/blog +selectors: + items: + selector: ".post-item" + title: + selector: ".post-title a" + url: + selector: ".post-title a" + extractor: "href" + description: + selector: ".post-summary" +``` + +### Configuration Breakdown + +- **`items.selector: ".post-item"`**: This is the most important selector. It tells `html2rss` that every element with the class `post-item` is a single item in the RSS feed. +- **`title.selector: ".post-title a"`**: Within each `.post-item`, this finds the `` tag inside the element with the class `post-title`. +- **`url.selector: ".post-title a"`**: This finds the same `` tag. +- **`url.extractor: "href"`**: This extracts the URL from the `href` attribute of the `` tag. +- **`description.selector: ".post-summary"`**: This finds the element with the class `post-summary`. diff --git a/astro-migration/src/content/docs/ruby-gem/tutorials/your-first-feed.mdx b/astro-migration/src/content/docs/ruby-gem/tutorials/your-first-feed.mdx new file mode 100644 index 00000000..c248de0c --- /dev/null +++ b/astro-migration/src/content/docs/ruby-gem/tutorials/your-first-feed.mdx @@ -0,0 +1,63 @@ +--- +title: 'Your First Feed' +description: 'Welcome to html2rss! This guide will walk you through creating your first RSS feed.' +--- + +# Your First Feed: A Step-by-Step Guide + +Welcome to `html2rss`! This guide will walk you through creating your first RSS feed. We'll start with the easiest method and gradually introduce more powerful options. + +--- + +## Step 1: The "No-Config" Method (`auto`) + +The easiest way to create a feed is with the `auto` command. It requires no configuration file and intelligently scrapes the page to find content. + +Open your terminal and run this command: + +```bash +html2rss auto https://unmatchedstyle.com/ +``` + +`html2rss` will analyze the website and generate an RSS feed for you, printing it directly to the console. This is a great way to see if `html2rss` can automatically handle your target website. + +**Is the result not quite right?** Let's move to the next step. + +--- + +## Step 2: The "Full Control" Method (`selectors`) + +When you need to extract content with precision, the `selectors` scraper is the tool for the job. This method gives you complete control over what content is included in your feed by using CSS selectors. + +Let's create a feed for Stack Overflow's "Hot Network Questions". + +1. **Create a file** named `stackoverflow.yml`. +2. **Add the following content:** + + ```yaml + channel: + url: https://stackoverflow.com/questions + selectors: + items: + selector: "#hot-network-questions > ul > li" + title: + selector: "a" + url: + selector: "a" + extractor: "href" + ``` + +3. **Run the `feed` command:** + + ```bash + html2rss feed stackoverflow.yml + ``` + +This configuration tells `html2rss`: + +- The main container for all items is `
    `. +- Each item is inside a `
  • ` tag. +- The `title` of each item is the text of the `` tag. +- The `url` of each item is the `href` attribute of the `` tag. + +This is just the beginning! From here, you can dive deep into the full range of [configuration options](/ruby-gem/reference) to create the perfect feed. diff --git a/astro-migration/src/content/docs/support/troubleshooting.mdx b/astro-migration/src/content/docs/support/troubleshooting.mdx new file mode 100644 index 00000000..00f49593 --- /dev/null +++ b/astro-migration/src/content/docs/support/troubleshooting.mdx @@ -0,0 +1,56 @@ +--- +title: 'Troubleshooting' +description: 'This guide provides solutions to common issues encountered when using html2rss.' +--- + +# Troubleshooting + +This guide provides solutions to common issues encountered when using `html2rss`. + +## Essential Tools + +Your browser's developer tools are essential for troubleshooting. Use them to inspect the HTML structure of a webpage and find the correct CSS selectors. + +- **To open:** Right-click an element on a webpage and select "Inspect" or "Inspect Element." + +## Common Issues + +### Empty Feeds + +If your feed is empty, check the following: + +- **URL:** Ensure the `url` in your configuration is correct and accessible. +- **`items.selector`:** Verify that the `items.selector` matches the elements on the page. +- **Website Changes:** Websites change their HTML structure frequently. Your selectors may be outdated. + +### Missing Item Parts + +If parts of your items (e.g., title, link) are missing, check the following: + +- **Selector:** Ensure the selector for the missing part is correct and relative to the `items.selector`. +- **Extractor:** Verify that you are using the correct `extractor` (e.g., `text`, `href`, `attribute`). +- **Dynamic Content:** `html2rss` does not execute JavaScript. If the content is loaded dynamically, `html2rss` may not be able to see it. + +### Date/Time Parsing Errors + +If you are having issues with date/time parsing, check the following: + +- **`time_format`:** Ensure the `time_format` in your configuration matches the date string on the website. +- **`time_zone`:** Specify the correct `time_zone` if the website uses a specific time zone. + +### `html2rss` Command Not Found + +If you are getting a "command not found" error, try the following: + +- **Re-install:** Re-install `html2rss` to ensure it is installed correctly: `gem install html2rss`. +- **Check `PATH`:** Ensure that the directory where Ruby gems are installed is in your system's `PATH`. + +## Tips & Tricks + +- **Mobile Redirects:** Check that the channel URL does not redirect to a mobile page with a different markup structure. +- **`curl` and `pup`:** For static sites, use `curl` and `pup` to quickly find selectors: `curl URL | pup`. +- **CSS Selectors:** For a comprehensive overview of CSS selectors, see the [W3C documentation](https://www.w3.org/TR/selectors-4/#overview). + +## Still Stuck? + +If you are still having issues, please [open an issue on GitHub](https://github.com/html2rss/html2rss/issues). diff --git a/astro-migration/src/content/docs/web-application/getting-started.mdx b/astro-migration/src/content/docs/web-application/getting-started.mdx new file mode 100644 index 00000000..dd98b683 --- /dev/null +++ b/astro-migration/src/content/docs/web-application/getting-started.mdx @@ -0,0 +1,35 @@ +--- +title: 'Getting Started' +description: 'Welcome! This guide will help you create RSS feeds from any website using the html2rss-web application.' +--- + +# Getting Started with html2rss-web + +Welcome! This guide will help you create RSS feeds from any website using the html2rss-web application. + +## What is html2rss-web? + +html2rss-web is a user-friendly web application that turns any website into an RSS feed. It's part of the html2rss project, which also includes a Ruby gem for developers. Think of html2rss-web as a translator that converts website content into a format your feed reader can understand. + +## Why Use RSS Feeds? + +Instead of visiting 20 different websites every day, you can: + +- **Get all updates in one place** - your feed reader +- **Never miss new content** - automatic notifications +- **Save time** - no more manual checking +- **Stay organized** - categorize and filter content + +## Quick Start Options + +### Option 1: Browse Ready-Made Feeds (Easiest) + +1. **[Feed Directory](/feed-directory/)** - See what's already available +2. **Copy the RSS URL** and add it to your feed reader + +### Option 2: Install Your Own Instance + +1. **[Installation Guide](/web-application/installation)** - Set up your own copy +2. **[Create Custom Feeds](/web-application/how-to/)** - Make feeds for any website + +**New to RSS?** We recommend starting with the [Feed Directory](/feed-directory/) to see examples, then installing html2rss-web to create your own feeds. diff --git a/astro-migration/src/content/docs/web-application/how-to/automatic-updates.mdx b/astro-migration/src/content/docs/web-application/how-to/automatic-updates.mdx new file mode 100644 index 00000000..66c59504 --- /dev/null +++ b/astro-migration/src/content/docs/web-application/how-to/automatic-updates.mdx @@ -0,0 +1,10 @@ +--- +title: 'Automatic Updates' +description: 'The watchtower service automatically pulls running Docker images and checks for updates.' +--- + +# Automatic Updates with Watchtower + +The [watchtower](https://containrrr.dev/watchtower/) service automatically pulls running Docker images and checks for updates. If an update is available, it will automatically start the updated image with the same configuration as the running one. Please read its manual. + +The `docker-compose.yml` in the [Installation Guide](/web-application/installation) contains a service description for watchtower. diff --git a/astro-migration/src/content/docs/web-application/how-to/deployment.mdx b/astro-migration/src/content/docs/web-application/how-to/deployment.mdx new file mode 100644 index 00000000..779e8420 --- /dev/null +++ b/astro-migration/src/content/docs/web-application/how-to/deployment.mdx @@ -0,0 +1,17 @@ +--- +title: 'Deployment' +description: 'This app is published on Docker Hub and therefore easy to use with Docker.' +--- + +# Deployment + +This app is published on Docker Hub and therefore easy to use with Docker. +The `docker-compose.yml` in the [Installation Guide](/web-application/installation) is a good starting point. + +If you're going to host a public instance, _please, please, please_: + +- Put the application behind a reverse proxy. +- Allow outside connections only via HTTPS. +- Have an auto-update strategy (e.g., watchtower). +- Monitor your `/health_check.txt` endpoint. +- [Let the world know and add your instance to the wiki](https://github.com/html2rss/html2rss-web/wiki/Instances) -- thank you! diff --git a/astro-migration/src/content/docs/web-application/how-to/index.mdx b/astro-migration/src/content/docs/web-application/how-to/index.mdx new file mode 100644 index 00000000..fdc10113 --- /dev/null +++ b/astro-migration/src/content/docs/web-application/how-to/index.mdx @@ -0,0 +1,8 @@ +--- +title: 'How-To Guides' +description: 'This section provides guides on how to perform specific tasks with html2rss-web.' +--- + +# How-To Guides + +This section provides guides on how to perform specific tasks with html2rss-web. diff --git a/astro-migration/src/content/docs/web-application/how-to/setup-for-development.mdx b/astro-migration/src/content/docs/web-application/how-to/setup-for-development.mdx new file mode 100644 index 00000000..1e6a761b --- /dev/null +++ b/astro-migration/src/content/docs/web-application/how-to/setup-for-development.mdx @@ -0,0 +1,46 @@ +--- +title: 'Setup for development' +description: 'Check out the git repository and set up your development environment.' +--- + +# Setup for development + +Check out the git repository and… + +### Using Docker + +This approach allows you to experiment without installing Ruby on your machine. +All you need to do is install and run Docker. + +```sh +# Build image from Dockerfile and name/tag it as html2rss-web: +docker build -t html2rss-web -f Dockerfile . + +# Run the image and name it html2rss-web-dev: +docker run \ + --detach \ + --mount type=bind,source=$(pwd)/config,target=/app/config \ + --name html2rss-web-dev \ + html2rss-web + +# Open an interactive TTY with the shell `sh`: +docker exec -ti html2rss-web-dev sh + +# Stop and clean up the container +docker stop html2rss-web-dev +docker rm html2rss-web-dev + +# Remove the image +docker rmi html2rss-web +``` + +### Using installed Ruby + +If you're comfortable with installing Ruby directly on your machine, follow these instructions: + +1. Install Ruby `>= 3.2` +2. `gem install bundler foreman` +3. `bundle` +4. `foreman start` + +_html2rss-web_ now listens on port **3000** for requests. diff --git a/astro-migration/src/content/docs/web-application/how-to/use-automatic-feed-generation.mdx b/astro-migration/src/content/docs/web-application/how-to/use-automatic-feed-generation.mdx new file mode 100644 index 00000000..810a06dd --- /dev/null +++ b/astro-migration/src/content/docs/web-application/how-to/use-automatic-feed-generation.mdx @@ -0,0 +1,38 @@ +--- +title: 'Use automatic feed generation' +description: 'This feature lets you create RSS feeds automatically - just enter a website URL and html2rss-web figures out the rest!' +--- + +# Automatic Feed Generation + +This feature lets you create RSS feeds automatically - just enter a website URL and html2rss-web figures out the rest! + +> **Note:** This feature is disabled by default for security reasons. + +## How to Enable It + +1. **Edit your `docker-compose.yml` file** and uncomment these lines: + +```yaml +environment: + AUTO_SOURCE_ENABLED: "true" + AUTO_SOURCE_USERNAME: your-username + AUTO_SOURCE_PASSWORD: your-secure-password + AUTO_SOURCE_ALLOWED_ORIGINS: 127.0.0.1:3000 +``` + +2. **Restart html2rss-web:** + +```bash +docker compose down +docker compose up -d +``` + +## How to Use It + +1. **Open the auto-source page:** Go to `http://localhost:3000/auto_source/` +2. **Enter your credentials** (the username and password you set above) +3. **Enter a website URL** and click "Generate" +4. **Get your RSS feed!** html2rss-web will create a feed automatically + +**That's it!** No configuration files needed - html2rss-web does all the work for you. diff --git a/astro-migration/src/content/docs/web-application/how-to/use-in-production.mdx b/astro-migration/src/content/docs/web-application/how-to/use-in-production.mdx new file mode 100644 index 00000000..62fd206b --- /dev/null +++ b/astro-migration/src/content/docs/web-application/how-to/use-in-production.mdx @@ -0,0 +1,17 @@ +--- +title: 'Use in production' +description: 'This app is published on Docker Hub and therefore easy to use with Docker.' +--- + +# Use in production + +This app is published on Docker Hub and therefore easy to use with Docker. +The above `docker-compose.yml` is a good starting point. + +If you're going to host a public instance, _please, please, please_: + +- Put the application behind a reverse proxy. +- Allow outside connections only via HTTPS. +- Have an auto-update strategy (e.g., watchtower). +- Monitor your `/health_check.txt` endpoint. +- [Let the world know and add your instance to the wiki](https://github.com/html2rss/html2rss-web/wiki/Instances) -- thank you! diff --git a/astro-migration/src/content/docs/web-application/how-to/use-included-configs.mdx b/astro-migration/src/content/docs/web-application/how-to/use-included-configs.mdx new file mode 100644 index 00000000..d7722326 --- /dev/null +++ b/astro-migration/src/content/docs/web-application/how-to/use-included-configs.mdx @@ -0,0 +1,21 @@ +--- +title: 'Use the included configs' +description: 'html2rss-web comes with hundreds of ready-made feeds for popular websites! No configuration needed - just use the URLs.' +--- + +# Using Pre-Made Feeds + +html2rss-web comes with hundreds of ready-made feeds for popular websites! No configuration needed - just use the URLs. + +## How to Use Them + +1. **Find a feed** in the [Feed Directory](/feed-directory/) +2. **Copy the URL** (it looks like `domainname.tld/whatever.rss`) +3. **Add it to your feed reader** - paste the URL and you're done! + +## Example + +If you see a config file named `example.com/news.yml`, you can access it at: +`http://localhost:3000/example.com/news.rss` + +Just replace `localhost:3000` with your html2rss-web address. diff --git a/astro-migration/src/content/docs/web-application/index.mdx b/astro-migration/src/content/docs/web-application/index.mdx new file mode 100644 index 00000000..a04b9eee --- /dev/null +++ b/astro-migration/src/content/docs/web-application/index.mdx @@ -0,0 +1,21 @@ +--- +title: 'Web Application' +description: 'html2rss-web scrapes websites to build and deliver RSS 2.0 feeds. It is a powerful tool for creating custom RSS feeds.' +--- + +# html2rss-web + +This web application scrapes websites to build and deliver RSS 2.0 feeds. It is a powerful tool for creating custom RSS feeds. + +## Get Started + +Our **[Getting Started guide](/web-application/getting-started)** covers essential first steps, from understanding the application to installing your own instance. + +## Key Features + +- **Stable URLs:** Provides stable URLs for automatically sourced feeds. +- **Custom Feeds:** Create custom feeds. +- **Feed Directory:** Includes many [feeds](https://github.com/html2rss/html2rss-configs) out of the box. +- **Caching:** Handles request caching and sets HTTP headers. + +The functionality of scraping websites and building the RSS feeds is provided by the Ruby gem [`html2rss`](https://github.com/html2rss/html2rss). diff --git a/astro-migration/src/content/docs/web-application/installation.mdx b/astro-migration/src/content/docs/web-application/installation.mdx new file mode 100644 index 00000000..e1a26189 --- /dev/null +++ b/astro-migration/src/content/docs/web-application/installation.mdx @@ -0,0 +1,119 @@ +--- +title: 'Installation' +description: "This guide will help you set up your own copy of html2rss-web on your computer. Don't worry - we will walk you through every step!" +--- + +# Installation + +This guide will help you set up your own copy of html2rss-web on your computer. Don't worry - we'll walk you through every step! + +## What You'll Need + +- **Docker** - A tool that makes installation simple (like an app store for server software) +- **About 10 minutes** - The whole process is quick and automated + +**Don't have Docker?** [Install it first](https://docs.docker.com/get-started/) - it's free and works on Windows, Mac, and Linux. + +## Step 1: Create a Folder + +Create a new folder on your computer to store html2rss-web files: + +**On Windows:** Right-click β†’ New Folder β†’ Name it "html2rss-web" +**On Mac/Linux:** Open Terminal and run: + +```bash +mkdir html2rss-web +cd html2rss-web +``` + +## Step 2: Create the Configuration File + +Create a file called `docker-compose.yml` in your new folder. This file tells Docker how to set up html2rss-web with all the features you need. + +**How to create the file:** + +- **On Windows:** Right-click in the folder β†’ New β†’ Text Document β†’ Rename it to `docker-compose.yml` (make sure to change the extension) +- **On Mac/Linux:** Use any text editor to create the file + +```yaml +services: + html2rss-web: + image: gilcreator/html2rss-web + restart: unless-stopped + ports: + - "127.0.0.1:3000:3000" + volumes: + - type: bind + source: ./feeds.yml + target: /app/config/feeds.yml + read_only: true + environment: + RACK_ENV: production + HEALTH_CHECK_USERNAME: health + HEALTH_CHECK_PASSWORD: please-set-YOUR-OWN-veeeeeery-l0ng-aNd-h4rd-to-gue55-Passw0rd! + BROWSERLESS_IO_WEBSOCKET_URL: ws://browserless:3001 + BROWSERLESS_IO_API_TOKEN: 6R0W53R135510 + + watchtower: + image: containrrr/watchtower + restart: unless-stopped + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - "~/.docker/config.json:/config.json" + command: --cleanup --interval 7200 + + browserless: + image: "ghcr.io/browserless/chromium" + restart: unless-stopped + ports: + - "127.0.0.1:3001:3001" + environment: + PORT: 3001 + CONCURRENT: 10 + TOKEN: 6R0W53R135510 +``` + +## Step 3: Download the Feed List + +html2rss-web needs a list of feeds to work with. Download our pre-made list: + +**On Windows:** Right-click [this link](https://raw.githubusercontent.com/html2rss/html2rss-web/master/config/feeds.yml) β†’ Save As β†’ Name it "feeds.yml" β†’ Save in your html2rss-web folder + +**On Mac/Linux:** Open Terminal in your html2rss-web folder and run: + +```bash +curl https://raw.githubusercontent.com/html2rss/html2rss-web/master/config/feeds.yml -o feeds.yml +``` + +## Step 4: Start html2rss-web + +Now start html2rss-web: + +**On Windows:** Open Command Prompt in your html2rss-web folder and run: + +```cmd +docker compose up -d +``` + +**On Mac/Linux:** In Terminal, run: + +```bash +docker compose up -d +``` + +**That's it!** πŸŽ‰ html2rss-web is now running. + +**To verify it's working:** + +1. Open your web browser +2. Go to `http://localhost:3000` +3. You should see the html2rss-web interface with a list of available feeds + +**If you see the interface, congratulations!** You've successfully set up html2rss-web. + +## Next Steps + +- **Try it out!** Visit `http://localhost:3000` to see html2rss-web in action +- **Browse existing feeds** - Check out what's already available +- **Create your first feed** - Follow our [How-To Guides](/web-application/how-to/) to make custom feeds +- **Need help?** Check our [troubleshooting guide](/support/troubleshooting) if something doesn't work diff --git a/astro-migration/src/content/docs/web-application/reference/env-variables.mdx b/astro-migration/src/content/docs/web-application/reference/env-variables.mdx new file mode 100644 index 00000000..6373da34 --- /dev/null +++ b/astro-migration/src/content/docs/web-application/reference/env-variables.mdx @@ -0,0 +1,28 @@ +--- +title: 'ENV variables' +description: 'Configuration reference for html2rss-web environment variables.' +--- + +# Configuration Reference + +## Supported ENV variables + +| Name | Description | +| ------------------------------ | ---------------------------------- | +| `BASE_URL` | default: 'http://localhost:3000' | +| `LOG_LEVEL` | default: 'warn' | +| `HEALTH_CHECK_USERNAME` | default: auto-generated on start | +| `HEALTH_CHECK_PASSWORD` | default: auto-generated on start | +| | | +| `AUTO_SOURCE_ENABLED` | default: false | +| `AUTO_SOURCE_USERNAME` | no default. | +| `AUTO_SOURCE_PASSWORD` | no default. | +| `AUTO_SOURCE_ALLOWED_ORIGINS` | no default. | +| | | +| `PORT` | default: 3000 | +| `RACK_ENV` | default: 'development' | +| `RACK_TIMEOUT_SERVICE_TIMEOUT` | default: 15 | +| `WEB_CONCURRENCY` | default: 2 | +| `WEB_MAX_THREADS` | default: 5 | +| | | +| `SENTRY_DSN` | no default. | diff --git a/astro-migration/src/content/docs/web-application/reference/index.mdx b/astro-migration/src/content/docs/web-application/reference/index.mdx new file mode 100644 index 00000000..8d690e8a --- /dev/null +++ b/astro-migration/src/content/docs/web-application/reference/index.mdx @@ -0,0 +1,8 @@ +--- +title: 'Reference' +description: 'This section contains detailed reference material.' +--- + +# Reference + +This section contains detailed reference material. diff --git a/astro-migration/src/content/docs/web-application/reference/monitoring.mdx b/astro-migration/src/content/docs/web-application/reference/monitoring.mdx new file mode 100644 index 00000000..f712c2b3 --- /dev/null +++ b/astro-migration/src/content/docs/web-application/reference/monitoring.mdx @@ -0,0 +1,28 @@ +--- +title: 'Monitoring' +description: 'Runtime monitoring and application performance monitoring for html2rss-web.' +--- + +# Monitoring + +## Runtime monitoring via `GET /health_check.txt` + +It is recommended to set up monitoring of the `/health_check.txt` endpoint. With that, you can find out when one of _your own_ configs breaks. The endpoint uses HTTP Basic authentication. + +First, set the username and password via these environment variables: `HEALTH_CHECK_USERNAME` and `HEALTH_CHECK_PASSWORD`. If these are not set, html2rss-web will generate a new random username and password on _each_ start. + +An authenticated `GET /health_check.txt` request will respond with: + +- If the feeds are generatable: `success`. +- Otherwise: the names of the broken configs. + +To get notified when one of your configs breaks, set up monitoring of this endpoint. + +[UptimeRobot's free plan](https://uptimerobot.com/) is sufficient for basic monitoring (every 5 minutes). +Create a monitor of type _Keyword_ with this information and make it aware of your username and password: + +![A screenshot showing the Keyword Monitor: a name, the instance's URL to /health_check.txt, and an interval.](/assets/images/uptimerobot_monitor.jpg) + +## Application Performance Monitoring using Sentry + +When you specify `SENTRY_DSN` in your environment variables, the application will be setup to use Sentry. diff --git a/astro-migration/src/content/docs/web-application/tutorials/building-feeds.mdx b/astro-migration/src/content/docs/web-application/tutorials/building-feeds.mdx new file mode 100644 index 00000000..78b99e00 --- /dev/null +++ b/astro-migration/src/content/docs/web-application/tutorials/building-feeds.mdx @@ -0,0 +1,12 @@ +--- +title: 'Building your RSS feeds' +description: 'To build your own RSS feed, you need to create a feed config.' +--- + +# How to build your RSS feeds + +To build your own RSS feed, you need to create a _feed config_. +That _feed config_ goes into the file `feeds.yml`. +Check out the [`example` feed config](https://github.com/html2rss/html2rss-web/blob/master/config/feeds.yml#L9). + +Please refer to [html2rss' README for a description of _the feed config and its options_](https://github.com/html2rss/html2rss#the-feed-config-and-its-options). html2rss-web is just a small web application that builds on html2rss. diff --git a/astro-migration/src/content/docs/web-application/tutorials/index.mdx b/astro-migration/src/content/docs/web-application/tutorials/index.mdx new file mode 100644 index 00000000..f6e542a6 --- /dev/null +++ b/astro-migration/src/content/docs/web-application/tutorials/index.mdx @@ -0,0 +1,6 @@ +--- +title: 'Tutorials' +description: 'Step-by-step tutorials for using html2rss-web.' +--- + +# Tutorials From 2449594b0bb39ba3cf1bddb8d7be20f389c3e836 Mon Sep 17 00:00:00 2001 From: Gil Desmarais Date: Sun, 14 Sep 2025 21:49:51 +0200 Subject: [PATCH 03/33] feed directory qa --- astro-migration/.github/workflows/deploy.yml | 70 ++ astro-migration/Gemfile | 30 + astro-migration/Gemfile.lock | 300 ++++++++ astro-migration/README.md | 202 +++++- astro-migration/bin/data-update | 65 ++ astro-migration/package-lock.json | 39 ++ astro-migration/package.json | 10 +- .../src/components/FeedDirectory.astro | 204 +++--- astro-migration/src/data/configs.json | 641 ++++++++++++++++++ astro-migration/src/data/configs.ts | 91 --- astro-migration/src/data/configs.yml | 483 ------------- astro-migration/src/data/loadConfigs.ts | 34 + astro-migration/src/types/global.d.ts | 4 +- 13 files changed, 1474 insertions(+), 699 deletions(-) create mode 100644 astro-migration/.github/workflows/deploy.yml create mode 100644 astro-migration/Gemfile create mode 100644 astro-migration/Gemfile.lock create mode 100755 astro-migration/bin/data-update create mode 100644 astro-migration/src/data/configs.json delete mode 100644 astro-migration/src/data/configs.ts delete mode 100644 astro-migration/src/data/configs.yml create mode 100644 astro-migration/src/data/loadConfigs.ts diff --git a/astro-migration/.github/workflows/deploy.yml b/astro-migration/.github/workflows/deploy.yml new file mode 100644 index 00000000..858e27fe --- /dev/null +++ b/astro-migration/.github/workflows/deploy.yml @@ -0,0 +1,70 @@ +name: Deploy to GitHub Pages + +on: + push: + branches: [ main ] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.3' + bundler-cache: true + + - name: Update feed data + run: | + cd astro-migration + bundle install + ruby bin/data-update + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '22' + cache: 'npm' + cache-dependency-path: astro-migration/package-lock.json + + - name: Install dependencies + run: | + cd astro-migration + npm ci + + - name: Build Astro site + run: | + cd astro-migration + npm run build + + - name: Setup Pages + uses: actions/configure-pages@v4 + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: astro-migration/dist + + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/astro-migration/Gemfile b/astro-migration/Gemfile new file mode 100644 index 00000000..78156f51 --- /dev/null +++ b/astro-migration/Gemfile @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +source 'https://rubygems.org' + +gem 'jekyll', '~> 4.4' +gem 'just-the-docs' + +gem 'html2rss', git: 'https://github.com/html2rss/html2rss.git' +gem 'html2rss-configs', git: 'https://github.com/html2rss/html2rss-configs.git' + +group :jekyll_plugins do + gem 'jekyll-feed', '~> 0.17' + gem 'jekyll-loading-lazy' + gem 'jekyll-sitemap' + gem 'jekyll-target-blank' +end + +# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem +# and associated library. +platforms :mingw, :x64_mingw, :mswin, :jruby do + gem 'tzinfo', '~> 2.0' + gem 'tzinfo-data' +end + +# Performance-booster for watching directories on Windows +gem 'wdm', '~> 0.1.1', platforms: %i[mingw x64_mingw mswin] + +group :development do + gem 'rubocop', '~> 1.80' +end diff --git a/astro-migration/Gemfile.lock b/astro-migration/Gemfile.lock new file mode 100644 index 00000000..96fece54 --- /dev/null +++ b/astro-migration/Gemfile.lock @@ -0,0 +1,300 @@ +GIT + remote: https://github.com/html2rss/html2rss-configs.git + revision: c8799e7f19b12913986b1cf7e534b6d0c145c62a + specs: + html2rss-configs (0.2.0) + html2rss + +GIT + remote: https://github.com/html2rss/html2rss.git + revision: 252289759287d5f0d7251a958d12a72ceebc27d6 + specs: + html2rss (0.17.0) + addressable (~> 2.7) + dry-validation + faraday (> 2.0.1, < 3.0) + faraday-follow_redirects + kramdown + mime-types (> 3.0) + nokogiri (>= 1.10, < 2.0) + parallel + puppeteer-ruby + regexp_parser + reverse_markdown (~> 3.0) + rss + sanitize + thor + tzinfo + zeitwerk + +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + ast (2.4.3) + base64 (0.3.0) + bigdecimal (3.2.3) + colorator (1.1.0) + concurrent-ruby (1.3.5) + crass (1.0.6) + csv (3.3.5) + dry-configurable (1.3.0) + dry-core (~> 1.1) + zeitwerk (~> 2.6) + dry-core (1.1.0) + concurrent-ruby (~> 1.0) + logger + zeitwerk (~> 2.6) + dry-inflector (1.2.0) + dry-initializer (3.2.0) + dry-logic (1.6.0) + bigdecimal + concurrent-ruby (~> 1.0) + dry-core (~> 1.1) + zeitwerk (~> 2.6) + dry-schema (1.14.1) + concurrent-ruby (~> 1.0) + dry-configurable (~> 1.0, >= 1.0.1) + dry-core (~> 1.1) + dry-initializer (~> 3.2) + dry-logic (~> 1.5) + dry-types (~> 1.8) + zeitwerk (~> 2.6) + dry-types (1.8.3) + bigdecimal (~> 3.0) + concurrent-ruby (~> 1.0) + dry-core (~> 1.0) + dry-inflector (~> 1.0) + dry-logic (~> 1.4) + zeitwerk (~> 2.6) + dry-validation (1.11.1) + concurrent-ruby (~> 1.0) + dry-core (~> 1.1) + dry-initializer (~> 3.2) + dry-schema (~> 1.14) + zeitwerk (~> 2.6) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + eventmachine (1.2.7) + faraday (2.13.4) + faraday-net_http (>= 2.0, < 3.5) + json + logger + faraday-follow_redirects (0.3.0) + faraday (>= 1, < 3) + faraday-net_http (3.4.1) + net-http (>= 0.5.0) + ffi (1.17.2-aarch64-linux-gnu) + ffi (1.17.2-aarch64-linux-musl) + ffi (1.17.2-arm-linux-gnu) + ffi (1.17.2-arm-linux-musl) + ffi (1.17.2-arm64-darwin) + ffi (1.17.2-x86_64-darwin) + ffi (1.17.2-x86_64-linux-gnu) + ffi (1.17.2-x86_64-linux-musl) + forwardable-extended (2.6.0) + google-protobuf (4.32.1) + bigdecimal + rake (>= 13) + google-protobuf (4.32.1-aarch64-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.32.1-aarch64-linux-musl) + bigdecimal + rake (>= 13) + google-protobuf (4.32.1-arm64-darwin) + bigdecimal + rake (>= 13) + google-protobuf (4.32.1-x86_64-darwin) + bigdecimal + rake (>= 13) + google-protobuf (4.32.1-x86_64-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.32.1-x86_64-linux-musl) + bigdecimal + rake (>= 13) + http_parser.rb (0.8.0) + i18n (1.14.7) + concurrent-ruby (~> 1.0) + jekyll (4.4.1) + addressable (~> 2.4) + base64 (~> 0.2) + colorator (~> 1.0) + csv (~> 3.0) + em-websocket (~> 0.5) + i18n (~> 1.0) + jekyll-sass-converter (>= 2.0, < 4.0) + jekyll-watch (~> 2.0) + json (~> 2.6) + kramdown (~> 2.3, >= 2.3.1) + kramdown-parser-gfm (~> 1.0) + liquid (~> 4.0) + mercenary (~> 0.3, >= 0.3.6) + pathutil (~> 0.9) + rouge (>= 3.0, < 5.0) + safe_yaml (~> 1.0) + terminal-table (>= 1.8, < 4.0) + webrick (~> 1.7) + jekyll-feed (0.17.0) + jekyll (>= 3.7, < 5.0) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) + jekyll-loading-lazy (0.1.1) + jekyll (>= 3.0, < 5.0) + nokogiri (>= 1.10, < 2.0) + jekyll-sass-converter (3.1.0) + sass-embedded (~> 1.75) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-target-blank (2.0.2) + jekyll (>= 3.0, < 5.0) + nokogiri (~> 1.10) + jekyll-watch (2.2.1) + listen (~> 3.0) + json (2.13.2) + just-the-docs (0.10.1) + jekyll (>= 3.8.5) + jekyll-include-cache + jekyll-seo-tag (>= 2.0) + rake (>= 12.3.1) + kramdown (2.5.1) + rexml (>= 3.3.9) + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + language_server-protocol (3.17.0.5) + lint_roller (1.1.0) + liquid (4.0.4) + listen (3.9.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + logger (1.7.0) + mercenary (0.4.0) + mime-types (3.7.0) + logger + mime-types-data (~> 3.2025, >= 3.2025.0507) + mime-types-data (3.2025.0909) + net-http (0.6.0) + uri + nokogiri (1.18.9-aarch64-linux-gnu) + racc (~> 1.4) + nokogiri (1.18.9-aarch64-linux-musl) + racc (~> 1.4) + nokogiri (1.18.9-arm-linux-gnu) + racc (~> 1.4) + nokogiri (1.18.9-arm-linux-musl) + racc (~> 1.4) + nokogiri (1.18.9-arm64-darwin) + racc (~> 1.4) + nokogiri (1.18.9-x86_64-darwin) + racc (~> 1.4) + nokogiri (1.18.9-x86_64-linux-gnu) + racc (~> 1.4) + nokogiri (1.18.9-x86_64-linux-musl) + racc (~> 1.4) + parallel (1.27.0) + parser (3.3.9.0) + ast (~> 2.4.1) + racc + pathutil (0.16.2) + forwardable-extended (~> 2.6) + prism (1.5.1) + public_suffix (6.0.2) + puppeteer-ruby (0.45.6) + concurrent-ruby (>= 1.1, < 1.4) + mime-types (>= 3.0) + websocket-driver (>= 0.6.0) + racc (1.8.1) + rainbow (3.1.1) + rake (13.3.0) + rb-fsevent (0.11.2) + rb-inotify (0.11.1) + ffi (~> 1.0) + regexp_parser (2.11.2) + reverse_markdown (3.0.0) + nokogiri + rexml (3.4.4) + rouge (4.6.0) + rss (0.3.1) + rexml + rubocop (1.80.2) + json (~> 2.3) + language_server-protocol (~> 3.17.0.2) + lint_roller (~> 1.1.0) + parallel (~> 1.10) + parser (>= 3.3.0.2) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 2.9.3, < 3.0) + rubocop-ast (>= 1.46.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.46.0) + parser (>= 3.3.7.2) + prism (~> 1.4) + ruby-progressbar (1.13.0) + safe_yaml (1.0.5) + sanitize (7.0.0) + crass (~> 1.0.2) + nokogiri (>= 1.16.8) + sass-embedded (1.92.1-aarch64-linux-gnu) + google-protobuf (~> 4.31) + sass-embedded (1.92.1-aarch64-linux-musl) + google-protobuf (~> 4.31) + sass-embedded (1.92.1-arm-linux-gnueabihf) + google-protobuf (~> 4.31) + sass-embedded (1.92.1-arm-linux-musleabihf) + google-protobuf (~> 4.31) + sass-embedded (1.92.1-arm64-darwin) + google-protobuf (~> 4.31) + sass-embedded (1.92.1-x86_64-darwin) + google-protobuf (~> 4.31) + sass-embedded (1.92.1-x86_64-linux-gnu) + google-protobuf (~> 4.31) + sass-embedded (1.92.1-x86_64-linux-musl) + google-protobuf (~> 4.31) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + thor (1.4.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (2.6.0) + uri (1.0.3) + webrick (1.9.1) + websocket-driver (0.8.0) + base64 + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + zeitwerk (2.7.3) + +PLATFORMS + aarch64-linux-gnu + aarch64-linux-musl + arm-linux-gnu + arm-linux-gnueabihf + arm-linux-musl + arm-linux-musleabihf + arm64-darwin + x86_64-darwin + x86_64-linux-gnu + x86_64-linux-musl + +DEPENDENCIES + html2rss! + html2rss-configs! + jekyll (~> 4.4) + jekyll-feed (~> 0.17) + jekyll-loading-lazy + jekyll-sitemap + jekyll-target-blank + just-the-docs + rubocop (~> 1.80) + tzinfo (~> 2.0) + tzinfo-data + wdm (~> 0.1.1) + +BUNDLED WITH + 2.7.1 diff --git a/astro-migration/README.md b/astro-migration/README.md index 1b7f5c3d..7d69b2a3 100644 --- a/astro-migration/README.md +++ b/astro-migration/README.md @@ -1,49 +1,187 @@ -# Starlight Starter Kit: Basics +# html2rss Documentation - Astro Starlight Migration -[![Built with Starlight](https://astro.badg.es/v2/built-with-starlight/tiny.svg)](https://starlight.astro.build) +This is the migrated version of the html2rss documentation site, converted from Jekyll to Astro Starlight. + +## πŸš€ Features + +- **Modern Documentation**: Built with Astro Starlight for better performance and developer experience +- **Interactive Feed Directory**: Fully functional with search, filtering, and parameter configuration +- **Progressive Enhancement**: Works without JavaScript, enhanced with Alpine.js +- **Dark Theme**: Integrated with Starlight's theme system +- **GitHub Integration**: Edit links and social links +- **Analytics**: GoatCounter integration +- **SEO Optimized**: Meta tags, sitemap, and search indexing + +## πŸ“ Project Structure ``` -npm create astro@latest -- --template starlight +astro-migration/ +β”œβ”€β”€ src/ +β”‚ β”œβ”€β”€ content/docs/ # Documentation content (MDX) +β”‚ β”œβ”€β”€ components/ # Astro components +β”‚ β”‚ └── FeedDirectory.astro # Interactive feed directory +β”‚ β”œβ”€β”€ data/ # Data files +β”‚ β”‚ β”œβ”€β”€ configs.json # Generated feed configurations +β”‚ β”‚ └── loadConfigs.ts # Data loader +β”‚ └── assets/ # Static assets +β”œβ”€β”€ bin/ +β”‚ └── data-update # Script to update feed data +β”œβ”€β”€ public/ # Public assets +β”œβ”€β”€ .github/workflows/ # CI/CD workflows +└── Gemfile # Ruby dependencies for data updates ``` -> πŸ§‘β€πŸš€ **Seasoned astronaut?** Delete this file. Have fun! +## πŸ› οΈ Development -## πŸš€ Project Structure +### Prerequisites -Inside of your Astro + Starlight project, you'll see the following folders and files: +- Node.js 22+ +- Ruby 3.3+ +- npm/yarn +### Setup + +1. **Install Node.js dependencies:** + ```bash + npm install + ``` + +2. **Install Ruby dependencies:** + ```bash + bundle install + ``` + +3. **Update feed data:** + ```bash + npm run update-data + ``` + +4. **Start development server:** + ```bash + npm run dev + ``` + +### Available Scripts + +- `npm run dev` - Start development server +- `npm run build` - Build for production +- `npm run preview` - Preview production build +- `npm run update-data` - Update feed configurations from html2rss-configs +- `npm run build:full` - Update data and build + +## πŸ“Š Data Management + +The feed directory data is automatically generated from the `html2rss-configs` gem: + +1. **Source**: `html2rss-configs` gem (latest commit from GitHub) +2. **Generation**: `bin/data-update` script processes the gem's configs +3. **Output**: `src/data/configs.json` (clean JSON format) +4. **Usage**: Loaded by `src/data/loadConfigs.ts` in the FeedDirectory component + +### Data Update Process + +The `bin/data-update` script: +- Fetches all config files from the `html2rss-configs` gem +- Extracts metadata (domain, name, parameters, etc.) +- Converts to clean JSON format (no parsing issues) +- Generates `src/data/configs.json` + +## πŸš€ Deployment + +### GitHub Pages (CI/CD) + +The site is automatically deployed via GitHub Actions: + +1. **Trigger**: Push to `main` branch +2. **Process**: + - Install Ruby dependencies + - Run `bin/data-update` to update feed data + - Install Node.js dependencies + - Build Astro site + - Deploy to GitHub Pages + +### Manual Deployment + +```bash +# Update data and build +npm run build:full + +# Deploy the dist/ folder to your hosting provider ``` -. -β”œβ”€β”€ public/ -β”œβ”€β”€ src/ -β”‚ β”œβ”€β”€ assets/ -β”‚ β”œβ”€β”€ content/ -β”‚ β”‚ └── docs/ -β”‚ └── content.config.ts -β”œβ”€β”€ astro.config.mjs -β”œβ”€β”€ package.json -└── tsconfig.json -``` -Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory. Each file is exposed as a route based on its file name. +## πŸ”§ Configuration + +### Astro Configuration + +Key settings in `astro.config.mjs`: +- Site URL and base path +- Starlight integration with custom head elements +- GitHub social links and edit URLs +- Sidebar navigation structure + +### Feed Directory + +The interactive Feed Directory (`src/components/FeedDirectory.astro`): +- Uses Alpine.js for interactivity +- Loads data from `src/data/configs.yml` +- Provides search and filtering +- Shows parameter forms for dynamic feeds +- Generates RSS URLs and GitHub edit links + +## πŸ“ Content Migration + +All content has been migrated from Jekyll to Astro Starlight: + +- **Markdown β†’ MDX**: Converted all `.md` files to `.mdx` +- **Frontmatter**: Updated to Starlight format +- **URLs**: Updated relative links +- **Images**: Migrated to `public/assets/images/` +- **Components**: Recreated Jekyll components as Astro components + +## 🎨 Styling + +- **Theme**: Uses Starlight's built-in theme system +- **Colors**: HSL color variables for dark/light mode compatibility +- **Components**: Custom CSS for Feed Directory integrated with Starlight +- **Responsive**: Mobile-friendly design + +## πŸ” Search + +- **Engine**: Pagefind (integrated with Starlight) +- **Indexing**: Automatic during build +- **Features**: Full-text search across all documentation + +## πŸ“ˆ Analytics + +- **Provider**: GoatCounter +- **Integration**: Script added to `astro.config.mjs` +- **Privacy**: No cookies, GDPR compliant + +## πŸ› Troubleshooting + +### Common Issues -Images can be added to `src/assets/` and embedded in Markdown with a relative link. +1. **Data not loading**: Run `npm run update-data` to regenerate configs +2. **Build errors**: Check for JSON syntax issues in generated data +3. **Styling issues**: Ensure CSS uses Starlight's color variables -Static assets, like favicons, can be placed in the `public/` directory. +### Development Tips -## 🧞 Commands +- Use `npm run build:full` to test the complete build process +- Check `src/data/configs.json` for data issues +- Use browser dev tools to debug Alpine.js components -All commands are run from the root of the project, from a terminal: +## πŸ“š Migration Notes -| 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 | +This migration preserves all functionality from the original Jekyll site: -## πŸ‘€ Want to learn more? +- βœ… All content migrated +- βœ… Feed Directory fully functional +- βœ… Search and navigation working +- βœ… GitHub integration maintained +- βœ… Analytics preserved +- βœ… SEO optimization maintained +- βœ… Progressive enhancement working +- βœ… Dark theme support -Check out [Starlight’s docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat). +The new Astro Starlight version provides better performance, modern tooling, and improved developer experience while maintaining full backward compatibility. diff --git a/astro-migration/bin/data-update b/astro-migration/bin/data-update new file mode 100755 index 00000000..dce71b1b --- /dev/null +++ b/astro-migration/bin/data-update @@ -0,0 +1,65 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +require 'rubygems' +require 'bundler/setup' + +require 'fileutils' +require 'html2rss' +require 'html2rss/configs' +require 'uri' +require 'yaml' +require 'json' + +file_names = Html2rss::Configs.file_names.sort + +def extract_default_parameters(parameters) + return {} unless parameters.is_a?(Hash) + + parameters.each_with_object({}) do |(param_name, param_config), defaults| + defaults[param_name] = param_config['default'] if param_config.is_a?(Hash) && param_config['default'] + end +end + +def valid_url(url) + !!URI(url) +rescue StandardError + false +end + +def string_formatting_references(string) + string.to_s.scan(/%[{<](\w+)[>}](\w)?/).to_h.transform_values do |value| + case value + when 'i', 'd', 'u' + Numeric + else + String + end + end +end + +output = file_names.map do |file_name| + config = YAML.safe_load(File.open(file_name), symbolize_names: false) + + file_name_splits = file_name.split('/') + + # Extract default parameter values from the parameters section + default_parameters = extract_default_parameters(config['parameters']) + + { + 'domain' => file_name_splits[-2..-2].join, + 'name' => File.basename(file_name_splits[-1..].join, '.*'), + 'valid_channel_url' => valid_url(config['channel']['url']), + 'url_parameters' => string_formatting_references(config['channel']['url']), + 'default_parameters' => default_parameters, + 'channel' => config['channel'] + } +end + +config_file = File.join(__dir__, '..', 'src/data/configs.json') +FileUtils.touch config_file + +# Convert to JSON (no Ruby-specific tags to clean up) +json_content = JSON.pretty_generate(output) + +File.write(config_file, json_content) diff --git a/astro-migration/package-lock.json b/astro-migration/package-lock.json index 1b3ebcd6..33921f86 100644 --- a/astro-migration/package-lock.json +++ b/astro-migration/package-lock.json @@ -9,8 +9,12 @@ "version": "0.0.1", "dependencies": { "@astrojs/starlight": "^0.35.3", + "alpinejs": "^3.15.0", "astro": "^5.6.1", "sharp": "^0.34.2" + }, + "devDependencies": { + "@types/alpinejs": "^3.13.11" } }, "node_modules/@astrojs/compiler": { @@ -440,6 +444,13 @@ "tslib": "^2.8.0" } }, + "node_modules/@types/alpinejs": { + "version": "3.13.11", + "resolved": "https://registry.npmjs.org/@types/alpinejs/-/alpinejs-3.13.11.tgz", + "integrity": "sha512-3KhGkDixCPiLdL3Z/ok1GxHwLxEWqQOKJccgaQL01wc0EVM2tCTaqlC3NIedmxAXkVzt/V6VTM8qPgnOHKJ1MA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/debug": { "version": "4.1.12", "license": "MIT", @@ -474,6 +485,8 @@ }, "node_modules/@types/js-yaml": { "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", + "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", "license": "MIT" }, "node_modules/@types/mdast": { @@ -520,6 +533,21 @@ "version": "1.3.0", "license": "ISC" }, + "node_modules/@vue/reactivity": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.5.tgz", + "integrity": "sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.1.5" + } + }, + "node_modules/@vue/shared": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.1.5.tgz", + "integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==", + "license": "MIT" + }, "node_modules/acorn": { "version": "8.15.0", "license": "MIT", @@ -537,6 +565,15 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/alpinejs": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.15.0.tgz", + "integrity": "sha512-lpokA5okCF1BKh10LG8YjqhfpxyHBk4gE7boIgVHltJzYoM7O9nK3M7VlntLEJGsVmu7U/RzUWajmHREGT38Eg==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "~3.1.1" + } + }, "node_modules/ansi-align": { "version": "3.0.1", "license": "ISC", @@ -2354,6 +2391,8 @@ }, "node_modules/js-yaml": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "license": "MIT", "dependencies": { "argparse": "^2.0.1" diff --git a/astro-migration/package.json b/astro-migration/package.json index 6d225b6e..04b4d55f 100644 --- a/astro-migration/package.json +++ b/astro-migration/package.json @@ -7,11 +7,17 @@ "start": "astro dev", "build": "astro build", "preview": "astro preview", - "astro": "astro" + "astro": "astro", + "update-data": "ruby bin/data-update", + "build:full": "npm run update-data && npm run build" }, "dependencies": { "@astrojs/starlight": "^0.35.3", + "alpinejs": "^3.15.0", "astro": "^5.6.1", "sharp": "^0.34.2" + }, + "devDependencies": { + "@types/alpinejs": "^3.13.11" } -} \ No newline at end of file +} diff --git a/astro-migration/src/components/FeedDirectory.astro b/astro-migration/src/components/FeedDirectory.astro index b0c98a00..9770295c 100644 --- a/astro-migration/src/components/FeedDirectory.astro +++ b/astro-migration/src/components/FeedDirectory.astro @@ -1,5 +1,5 @@ --- -import { configs } from '../data/configs'; +import { configs } from '../data/loadConfigs'; ---
    @@ -40,15 +40,16 @@ import { configs } from '../data/configs';
    - {config.channel?.url && ( -
    -

    - {config.valid_channel_url ? ( +
    +

    + {config.channel?.url ? ( + config.valid_channel_url ? ( ) : ( - <> - {config.channel.url} - - - )} -

    - {!config.valid_channel_url && ( - + {config.channel.url} + ) + ) : ( + {config.domain}/{config.name} )} -
    - )} +

    + {!config.valid_channel_url && Object.keys(config.url_parameters || {}).length > 0 && ( + + )} +
    {!config.valid_channel_url && (
    @@ -108,7 +104,7 @@ import { configs } from '../data/configs'; name={key} class="feed-directory__item-param-form__input form-control" placeholder={String(fallback)} - x-model={`params['${key}']`} + x-model={`params.${key}`} aria-label={key} />
    @@ -125,7 +121,7 @@ import { configs } from '../data/configs'; - @@ -335,13 +370,6 @@ import { configs } from '../data/configs';
    - - + + +

    Page Moved

    +
    + + + + diff --git a/astro-migration/public/_redirects b/astro-migration/public/_redirects new file mode 100644 index 00000000..b98bd4d4 --- /dev/null +++ b/astro-migration/public/_redirects @@ -0,0 +1,35 @@ +# Redirects from Jekyll URLs (with trailing slash) to Astro URLs (without trailing slash) + +# Root pages +/about/ /about 301 +/configs/ /configs 301 +/html2rss-configs/ /html2rss-configs 301 + +# Get Involved pages +/get-involved/contributing/ /get-involved/contributing 301 +/get-involved/discussions/ /get-involved/discussions 301 +/get-involved/issues-and-features/ /get-involved/issues-and-features 301 +/get-involved/sponsoring/ /get-involved/sponsoring 301 + +# Ruby Gem How-To pages +/ruby-gem/how-to/advanced-content-extraction/ /ruby-gem/how-to/advanced-content-extraction 301 +/ruby-gem/how-to/custom-http-requests/ /ruby-gem/how-to/custom-http-requests 301 +/ruby-gem/how-to/dynamic-parameters/ /ruby-gem/how-to/dynamic-parameters 301 +/ruby-gem/how-to/handling-dynamic-content/ /ruby-gem/how-to/handling-dynamic-content 301 +/ruby-gem/how-to/managing-feed-configs/ /ruby-gem/how-to/managing-feed-configs 301 +/ruby-gem/how-to/scraping-json/ /ruby-gem/how-to/scraping-json 301 +/ruby-gem/how-to/styling-rss-feed/ /ruby-gem/how-to/styling-rss-feed 301 + +# Ruby Gem Reference pages +/ruby-gem/reference/auto-source/ /ruby-gem/reference/auto-source 301 +/ruby-gem/reference/channel/ /ruby-gem/reference/channel 301 +/ruby-gem/reference/cli-reference/ /ruby-gem/reference/cli-reference 301 +/ruby-gem/reference/headers/ /ruby-gem/reference/headers 301 +/ruby-gem/reference/strategy/ /ruby-gem/reference/strategy 301 +/ruby-gem/reference/stylesheets/ /ruby-gem/reference/stylesheets 301 + +# Web Application pages +/web-application/reference/versioning-and-releases/ /web-application/reference/versioning-and-releases 301 + +# Catch-all for any other trailing slash URLs +/*/ /:splat 301 diff --git a/astro-migration/src/content/docs/about.mdx b/astro-migration/src/content/docs/about.mdx new file mode 100644 index 00000000..660c9fbd --- /dev/null +++ b/astro-migration/src/content/docs/about.mdx @@ -0,0 +1,33 @@ +--- +title: About html2rss +description: Learn about html2rss, our mission, principles, and the team behind this open-source project. +--- + +# About html2rss + +`html2rss` is an open-source project dedicated to empowering you to take control of your web content. In an age where traditional RSS feeds are often missing, `html2rss` provides a robust and flexible solution to convert almost any HTML content into a structured RSS format. + +Started in 2018, the project has evolved into a comprehensive suite of tools designed to help you create and consume RSS feeds effortlessly. + +--- + +## Our Vision and Principles + +Our mission is to provide a simple, powerful, and accessible tool that enables individuals and developers to create custom RSS feeds from any web page. We believe in the power of open standards and the freedom to access information on your own terms. + +Our project is guided by these core principles: + +- **User Empowerment:** Giving you the tools to customize your web experience. +- **Simplicity & Power:** Offering an easy-to-use interface with powerful underlying capabilities. +- **Open Source:** Fostering a collaborative environment where the community can contribute and improve the project. +- **Reliability:** Striving for a stable and dependable tool that consistently delivers. + +For insights into our ongoing development, project roadmap, and how you can get involved, please visit our [Get Involved](/get-involved/) page. + +--- + +### The Team + +`html2rss` is maintained by a dedicated group of volunteers and contributors from around the world. We are passionate about open source and committed to continuously improving the project. + +Want to join us? Check out our [Contributing Guide](/get-involved/contributing/)! diff --git a/astro-migration/src/content/docs/configs.mdx b/astro-migration/src/content/docs/configs.mdx new file mode 100644 index 00000000..b6e41748 --- /dev/null +++ b/astro-migration/src/content/docs/configs.mdx @@ -0,0 +1,10 @@ +--- +title: Configs +description: Redirect to feed directory +--- + +# Configs + +This page has moved to the [Feed Directory](/feed-directory/). + +If you are not redirected automatically, [click here to go to the feed directory](/feed-directory/). diff --git a/astro-migration/src/content/docs/get-involved/contributing.mdx b/astro-migration/src/content/docs/get-involved/contributing.mdx new file mode 100644 index 00000000..953ece3d --- /dev/null +++ b/astro-migration/src/content/docs/get-involved/contributing.mdx @@ -0,0 +1,79 @@ +--- +title: Contributing +description: Learn how to contribute to the html2rss project +--- + +# Contributing to html2rss + +We're thrilled that you're interested in contributing to `html2rss`! There are many ways to get involved, and we welcome contributions of all kinds. + +--- + +## Code of Conduct + +Before you begin, please read our [Code of Conduct](https://github.com/html2rss/.github/blob/main/CODE_OF_CONDUCT.md). We expect all contributors to adhere to this code to ensure that our community is a welcoming and inclusive space for everyone. + +--- + +## How to Contribute + +Here are some of the ways you can contribute to the `html2rss` project: + +### 1. Create a Feed Config + +Are you missing an RSS feed for a website? You can create your own feed config and share it with the community. It's a great way to get started with `html2rss` and help other users. + +The html2rss "ecosystem" is a community project. We welcome contributions of all kinds. This includes new feed configs, suggesting and implementing features, providing bug fixes, documentation improvements, and any other kind of help. + +Which way you choose to add a new feed config is up to you. You can do it manually. Please [submit a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)! + +After you're done, you can test your feed config by running `bundle exec html2rss feed lib/html2rss/configs//.yml`. + +#### Preferred way: manually + +1. Fork the `html2rss-config` git repository and run `bundle install` (you need to have Ruby >= 3.3 installed). +2. Create a new folder and file following this convention: `lib/html2rss/configs//.yml` +3. Create the feed config in the `.yml` file. +4. Add this spec file in the `spec/html2rss/configs//_spec.rb` file. + +```ruby + RSpec.describe '/' do + include_examples 'config.yml', described_class + end +``` + +### 2. Improve this Website + +This website is built with Astro and Starlight and is hosted on GitHub Pages. If you have any ideas for improving the documentation or the design, we'd love to hear from you. + +[**Find the source code on GitHub**](https://github.com/html2rss/html2rss.github.io) + +### 3. Host a Public Instance + +The [`html2rss-web`](https://github.com/html2rss/html2rss-web) project is a web application that allows you to create and manage your RSS feeds through a user-friendly interface. You can host your own public instance to help other users create feeds. + +[**Learn how to host a public instance**](/web-application/how-to/deployment) + +### 4. Improve the `html2rss` Gem + +Are you a Ruby developer? You can help us improve the core `html2rss` gem. Whether you're fixing a bug, adding a new feature, or improving the documentation, your contributions are welcome. + +[**Check out the documentation for the `html2rss` Gem**](/ruby-gem/) + +### 5. Report Bugs & Discuss Features + +If you've found a bug, please open an issue on the appropriate GitHub repository. For new feature ideas, we encourage you to start a discussion first. + +**Report Bugs:** + +- [**`html2rss` issues**](https://github.com/html2rss/html2rss/issues) +- [**`html2rss-web` issues**](https://github.com/html2rss/html2rss-web/issues) +- [**`html2rss-configs` issues**](https://github.com/html2rss/html2rss-configs/issues) + +**Discuss Features:** + +- [**Start a New Discussion on GitHub**](https://github.com/orgs/html2rss/discussions) + +--- + +We appreciate your interest in contributing to `html2rss`! diff --git a/astro-migration/src/content/docs/get-involved/discussions.mdx b/astro-migration/src/content/docs/get-involved/discussions.mdx new file mode 100644 index 00000000..639550ce --- /dev/null +++ b/astro-migration/src/content/docs/get-involved/discussions.mdx @@ -0,0 +1,12 @@ +--- +title: Join Community Discussions +description: Connect with the html2rss community through GitHub discussions +--- + +# Join Community Discussions + +Connect with other users and contributors by joining our community discussions on GitHub. This is a vibrant space for general questions, sharing tips, discussing ideas, and getting feedback from the community. + +[**πŸ’¬ Join Discussions on GitHub**](https://github.com/orgs/html2rss/discussions) + +We encourage you to participate, ask questions, and share your insights! diff --git a/astro-migration/src/content/docs/get-involved/issues-and-features.mdx b/astro-migration/src/content/docs/get-involved/issues-and-features.mdx new file mode 100644 index 00000000..4a0a1d1d --- /dev/null +++ b/astro-migration/src/content/docs/get-involved/issues-and-features.mdx @@ -0,0 +1,35 @@ +--- +title: Report Bugs & Discuss Features +description: Learn how to report bugs and suggest new features for html2rss +--- + +# Report Bugs & Discuss Features + +We appreciate your help in improving `html2rss`! Please follow these guidelines when reporting issues or suggesting new features. + +--- + +### Reporting Bugs + +If you've found a bug, please open an issue on the appropriate GitHub repository. This helps us track and resolve problems efficiently. + +[**➑️ Open an Issue on GitHub**](https://github.com/html2rss/html2rss/issues) + +When opening a bug report, please provide as much detail as possible, including: + +- The `html2rss` version you are using. +- Your operating system. +- Your configuration file (if applicable). +- The target URL you are trying to scrape. +- Any error messages you receive. +- Steps to reproduce the issue. + +--- + +### Discussing New Features + +For new feature ideas or enhancements, we encourage you to start a discussion on GitHub Discussions first. This allows for community input, refinement of the idea, and helps us prioritize development. + +[**πŸ’¬ Start a New Discussion on GitHub**](https://github.com/orgs/html2rss/discussions) + +If the discussion leads to a concrete proposal, a formal feature request issue can then be opened. diff --git a/astro-migration/src/content/docs/get-involved/sponsoring.mdx b/astro-migration/src/content/docs/get-involved/sponsoring.mdx new file mode 100644 index 00000000..3858493b --- /dev/null +++ b/astro-migration/src/content/docs/get-involved/sponsoring.mdx @@ -0,0 +1,18 @@ +--- +title: Sponsoring +description: Support the html2rss project through sponsorship +--- + +# Sponsoring html2rss + +`html2rss` is an open-source project, and its development is made possible by the support of our community. If you find `html2rss` useful, please consider sponsoring the project. + +## Why Sponsor? + +- **Ensure the project's longevity:** Your sponsorship helps to ensure that the project remains actively maintained and developed. +- **Support new features:** Your contribution will help to fund the development of new features and improvements. +- **Show your appreciation:** Sponsoring is a great way to show your appreciation for the project and the work that goes into it. + +## How to Sponsor + +You can sponsor the project through [GitHub Sponsors](https://github.com/sponsors/gildesmarais). diff --git a/astro-migration/src/content/docs/html2rss-configs.mdx b/astro-migration/src/content/docs/html2rss-configs.mdx new file mode 100644 index 00000000..45255aa5 --- /dev/null +++ b/astro-migration/src/content/docs/html2rss-configs.mdx @@ -0,0 +1,185 @@ +--- +title: Creating Custom RSS Feeds +description: Learn how to create custom RSS feeds using html2rss configuration files +--- + +# Creating Custom RSS Feeds + +Want to create RSS feeds for websites that don't offer them? This guide shows you how to write simple configuration files that tell the html2rss engine exactly what content to extract. + +**Don't worry if you're not technical** - we'll explain everything step by step! + +You can see examples of what others have created in the [Feed Directory](/feed-directory/). + +--- + +## How It Works + +Think of the html2rss engine as a smart assistant that needs instructions. You give it a simple "recipe" (called a config file) that tells it: + +1. **Which website** to look at +2. **What content** to find (articles, posts, etc.) +3. **How to organize** that content into an RSS feed + +The recipe is written in YAML - a simple format that's easy to read and write. Both html2rss-web and the html2rss Ruby gem use these same configuration files. + +### The `channel` Block + +This tells the html2rss engine basic information about your feed - like giving it a name and telling it which website to look at. + +**Example:** + +```yaml +channel: + url: https://example.com/blog + title: My Awesome Blog +``` + +This says: "Look at this website and call the feed 'My Awesome Blog'" + +### The `selectors` Block + +This is where you tell the html2rss engine exactly what to find on the page. You use CSS selectors (like you might use in web design) to point to specific parts of the webpage. + +**Example:** + +```yaml +selectors: + items: + selector: "article.post" + title: + selector: "h2 a" + link: + selector: "h2 a" +``` + +This says: "Find each article, get the title from the h2 link, and get the link from the same h2 link" + +**Need more details?** Check our [complete guide to selectors](/ruby-gem/reference/selectors/) for all the options. + +--- + +## Tutorial: Your First Feed + +Let's create a simple RSS feed step by step. We'll use a basic blog as our example. + +### Step 1: Look at the Website + +First, visit the website you want to create a feed for. Right-click and "View Page Source" to see the HTML structure. Look for patterns like this: + +```html +
    +
    +

    First Post

    +

    This is the summary of the first post.

    +
    +
    +

    Second Post

    +

    This is the summary of the second post.

    +
    +
    +``` + +**What we see:** Each article is wrapped in `
    `, titles are in `

    ` tags, and descriptions are in `

    ` tags. + +### Step 2: Create Your Config File + +Create a new text file and save it as `my-blog.yml` (or any name you like). Add this basic information: + +```yaml +# my-blog.yml +channel: + url: https://example.com/blog + title: My Awesome Blog + description: The latest news from my awesome blog. +``` + +This tells html2rss: "Look at this website and call the feed 'My Awesome Blog'" + +### Step 3: Tell html2rss What to Find + +Now add the selectors that tell html2rss exactly what content to extract: + +```yaml +# my-blog.yml +selectors: + items: + selector: "article.post" + title: + selector: "h2 a" + link: + selector: "h2 a" + description: + selector: "p" +``` + +**What this means:** + +- `items: "article.post"` = "Find each article with class 'post'" +- `title: "h2 a"` = "Get the title from the h2 link" +- `link: "h2 a"` = "Get the link from the same h2 link" +- `description: "p"` = "Get the description from the paragraph" + +--- + +## Advanced Techniques + +### Dynamic Feeds with Parameters + +Use the `parameters` block to create flexible configs. This is useful for feeds based on search terms, categories, or regions. + +```yaml +# news-search.yml +parameters: + query: + type: string + default: "technology" + +channel: + url: "https://news.example.com/search?q={query}" + title: "News results for '{query}'" + +selectors: + items: + selector: ".article" + title: + selector: "h2 a" + url: + selector: "h2 a" + extractor: "href" +``` + +--- + +## Contributing Your Config + +Have you created a config that others might find useful? We strongly encourage you to contribute it to the project! By sharing your config, you make it available to all users of the public `html2rss-web` service and the Feed Directory. + +To contribute, please [create a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) to the `html2rss-configs` repository. + +--- + +## Usage and Integration + +### With `html2rss-web` + +Once your pull request is reviewed and merged, your config will become available on the public [`html2rss-web`](/web-application/) instance. You can then access it at the path `/.rss`. + +### Programmatic Usage in Ruby + +You can also use `html2rss-configs` programmatically in your Ruby applications. + +Add this to your Gemfile: + +```ruby +gem 'html2rss-configs', git: 'https://github.com/html2rss/html2rss-configs.git' +``` + +And use it in your code: + +```ruby +require 'html2rss/configs' + +config = Html2rss::Configs.find_by_name('domainname.tld/whatever') +rss = Html2rss.feed(config) +``` diff --git a/astro-migration/src/content/docs/ruby-gem/how-to/custom-http-requests.mdx b/astro-migration/src/content/docs/ruby-gem/how-to/custom-http-requests.mdx new file mode 100644 index 00000000..d58c342b --- /dev/null +++ b/astro-migration/src/content/docs/ruby-gem/how-to/custom-http-requests.mdx @@ -0,0 +1,12 @@ +--- +title: Custom HTTP Requests +description: Learn how to customize HTTP requests with custom headers +--- + +# Customizing HTTP Requests + +You might need to send custom HTTP headers (e.g., `User-Agent`, `Authorization`) to access certain content or interact with APIs. + +## Solution + +Configure [custom HTTP headers](/ruby-gem/reference/headers) in your feed configuration. diff --git a/astro-migration/src/content/docs/ruby-gem/how-to/dynamic-parameters.mdx b/astro-migration/src/content/docs/ruby-gem/how-to/dynamic-parameters.mdx new file mode 100644 index 00000000..361df4e4 --- /dev/null +++ b/astro-migration/src/content/docs/ruby-gem/how-to/dynamic-parameters.mdx @@ -0,0 +1,33 @@ +--- +title: Dynamic Parameters +description: Learn how to use dynamic parameters in URLs and headers +--- + +# Dynamic Parameters in URLs and Headers + +For websites with similar structures but varying content based on a parameter in the URL or headers, you can use dynamic parameters. + +## Solution + +You can add dynamic parameters to the `channel` and `headers` values. This is useful for creating feeds from structurally similar pages with different URLs. + +```yaml +channel: + url: "http://domainname.tld/whatever/%s.html" +headers: + X-Something: "%s" +``` + +You can then pass the values for these parameters when you run `html2rss`: + +```bash +html2rss feed the_feed_config.yml --params id:42 foo:bar +``` + +--- + +## Explanation + +- The `%s` syntax in the URL and headers is a placeholder for dynamic parameters. +- You provide the actual values for these parameters at runtime using the `--params` option. +- This allows you to reuse the same feed configuration for multiple similar pages or APIs. diff --git a/astro-migration/src/content/docs/ruby-gem/how-to/handling-dynamic-content.mdx b/astro-migration/src/content/docs/ruby-gem/how-to/handling-dynamic-content.mdx new file mode 100644 index 00000000..1c82ee67 --- /dev/null +++ b/astro-migration/src/content/docs/ruby-gem/how-to/handling-dynamic-content.mdx @@ -0,0 +1,12 @@ +--- +title: Handling Dynamic Content +description: Learn how to handle dynamic content and JavaScript with html2rss +--- + +# Handling Dynamic Content and JavaScript + +Some websites load their content dynamically using JavaScript. The default `html2rss` strategy might not see this content. + +## Solution + +Use the [`browserless` strategy](/ruby-gem/reference/strategy) to render JavaScript-heavy websites with a headless browser. diff --git a/astro-migration/src/content/docs/ruby-gem/how-to/managing-feed-configs.mdx b/astro-migration/src/content/docs/ruby-gem/how-to/managing-feed-configs.mdx new file mode 100644 index 00000000..a3f72e43 --- /dev/null +++ b/astro-migration/src/content/docs/ruby-gem/how-to/managing-feed-configs.mdx @@ -0,0 +1,60 @@ +--- +title: Managing Feed Configs +description: Learn how to manage feed configurations with YAML files +--- + +# Managing Feed Configurations with YAML + +For easier management, especially when using the CLI or `html2rss-web`, you can store your feed configurations in a YAML file. + +## Global and Feed-Specific Configurations + +You can define global settings that apply to all feeds, and then define individual feed configurations under the `feeds` key. + +```yml +# Global settings +headers: + "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1" + "Accept": "text/html" + +# Feed-specific settings +feeds: + my-first-feed: + channel: + url: "https://example.com/blog" + selectors: + # ... + my-second-feed: + channel: + url: "https://example.com/news" + selectors: + # ... +``` + +## Building Feeds from a YAML File + +### Ruby + +```ruby +require 'html2rss' + +# Build a specific feed from the YAML file +my_feed_config = Html2rss.config_from_yaml_file('feeds.yml', 'my-first-feed') +rss = Html2rss.feed(my_feed_config) +puts rss + +# If the YAML file contains only one feed, you can omit the feed name +single_feed_config = Html2rss.config_from_yaml_file('single.yml') +rss = Html2rss.feed(single_feed_config) +puts rss +``` + +### Command Line + +```sh +# Build a specific feed +html2rss feed feeds.yml my-first-feed + +# Build a feed from a single-feed YAML file +html2rss feed single.yml +``` diff --git a/astro-migration/src/content/docs/ruby-gem/how-to/scraping-json.mdx b/astro-migration/src/content/docs/ruby-gem/how-to/scraping-json.mdx new file mode 100644 index 00000000..4b4c575f --- /dev/null +++ b/astro-migration/src/content/docs/ruby-gem/how-to/scraping-json.mdx @@ -0,0 +1,93 @@ +--- +title: Scraping JSON Responses +description: Learn how to scrape JSON responses with html2rss +--- + +# Scraping JSON Responses + +When a website returns a JSON response (i.e., with a `Content-Type` of `application/json`), `html2rss` converts the JSON to XML, allowing you to use CSS selectors for data extraction. + +> [!NOTE] +> The JSON response must be an Array or a Hash for the conversion to work. + +## JSON to XML Conversion Examples + +### JSON Object + +A JSON object like this: + +```json +{ + "data": [{ "title": "Headline", "url": "https://example.com" }] +} +``` + +is converted to this XML structure: + +```xml + + + + + Headline + https://example.com + + + + +``` + +You would use `array > object` as your `items` selector. + +### JSON Array + +A JSON array like this: + +```json +[{ "title": "Headline", "url": "https://example.com" }] +``` + +is converted to this XML structure: + +```xml + + + Headline + https://example.com + + +``` + +You would use `array > object` as your `items` selector. + +## Configuration Examples + +### Ruby + +```ruby +Html2rss.feed( + headers: { + Accept: 'application/json' + }, + channel: { + url: 'http://domainname.tld/whatever.json' + }, + selectors: { + title: { selector: 'foo' } + } +) +``` + +### YAML + +```yml +headers: + Accept: application/json +channel: + url: "http://domainname.tld/whatever.json" +selectors: + items: + selector: "array > object" + title: + selector: "foo" +``` diff --git a/astro-migration/src/content/docs/ruby-gem/how-to/styling-rss-feed.mdx b/astro-migration/src/content/docs/ruby-gem/how-to/styling-rss-feed.mdx new file mode 100644 index 00000000..eebbedbc --- /dev/null +++ b/astro-migration/src/content/docs/ruby-gem/how-to/styling-rss-feed.mdx @@ -0,0 +1,12 @@ +--- +title: Styling Your RSS Feed +description: Learn how to style your RSS feed with stylesheets +--- + +# Styling Your RSS Feed + +You can make your RSS feed look good in a web browser by attaching stylesheets. + +## Solution + +Add [stylesheets](/ruby-gem/reference/stylesheets) to your feed configuration. diff --git a/astro-migration/src/content/docs/ruby-gem/reference/auto-source.mdx b/astro-migration/src/content/docs/ruby-gem/reference/auto-source.mdx new file mode 100644 index 00000000..f4339c78 --- /dev/null +++ b/astro-migration/src/content/docs/ruby-gem/reference/auto-source.mdx @@ -0,0 +1,56 @@ +--- +title: Auto Source +description: Learn about the auto_source scraper that automatically finds items on a page +--- + +# Auto Source + +The `auto_source` scraper automatically finds items on a page, so you don't have to specify CSS selectors. + +To enable it, add `auto_source: {}` to your configuration: + +```yaml +channel: + url: https://example.com +auto_source: {} +``` + +## How It Works + +`auto_source` uses the following strategies to find content: + +1. **`schema`:** Parses ` + + + + + + + + + + + +html2rss | html2rss brings back RSS. It’s an open source project with decentralised instances. These instances generate RSS feeds for websites which do not offer them. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + + + + + + + + + + + + + +
    + + + + + +
    Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + +
    +
    + +

    + + + 404 - Page Not Found + + +

    + + +

    Sorry, the page you're looking for doesn't exist.

    + +

    Here are some helpful links to get you back on track:

    + + + +

    + If you think this is an error, please + report it on GitHub. +

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/README.md b/jekyll-backup/_site/README.md new file mode 100644 index 00000000..a4dbd361 --- /dev/null +++ b/jekyll-backup/_site/README.md @@ -0,0 +1,23 @@ +# html2rss.github.io + +This repository hosts the documentation and website for `html2rss`, a tool for creating RSS feeds from any website. + +## 🌐 Community & Resources + +| Resource | Description | Link | +| ------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------ | +| **πŸ“š Documentation & Feed Directory** | Complete guides, tutorials, and browse 100+ pre-built feeds | [html2rss.github.io](https://html2rss.github.io) | +| **πŸ’¬ Community Discussions** | Get help, share ideas, and connect with other users | [GitHub Discussions](https://github.com/orgs/html2rss/discussions) | +| **πŸ“‹ Project Board** | Track development progress and upcoming features | [View Project Board](https://github.com/orgs/html2rss/projects) | +| **πŸ’– Support Development** | Help fund ongoing development and maintenance | [Sponsor on GitHub](https://github.com/sponsors/gildesmarais) | + +**Quick Start Options:** + +- **New to RSS?** β†’ Start with the [web application](https://html2rss.github.io/web-application) +- **Ruby Developer?** β†’ Check out the [Ruby gem documentation](https://html2rss.github.io/ruby-gem) +- **Need a specific feed?** β†’ Browse the [feed directory](https://html2rss.github.io/feed-directory) +- **Want to contribute?** β†’ See our [contributing guide](https://html2rss.github.io/get-involved/contributing) + +## Contributing + +Contributions are welcome! See our [Get Involved page](https://html2rss.github.io/get-involved) for details on discussions, reporting issues, and contributing. diff --git a/jekyll-backup/_site/about.html b/jekyll-backup/_site/about.html new file mode 100644 index 00000000..ad2a29bd --- /dev/null +++ b/jekyll-backup/_site/about.html @@ -0,0 +1,505 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +About html2rss | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + +
    +
    + +

    + + + About html2rss + + +

    + + +

    html2rss is an open-source project dedicated to empowering you to take control of your web content. In an age where traditional RSS feeds are often missing, html2rss provides a robust and flexible solution to convert almost any HTML content into a structured RSS format.

    + +

    Started in 2018, the project has evolved into a comprehensive suite of tools designed to help you create and consume RSS feeds effortlessly.

    +
    +

    + + + Our Vision and Principles + + +

    + + +

    Our mission is to provide a simple, powerful, and accessible tool that enables individuals and developers to create custom RSS feeds from any web page. We believe in the power of open standards and the freedom to access information on your own terms.

    + +

    Our project is guided by these core principles:

    + +
      +
    • +User Empowerment: Giving you the tools to customize your web experience.
    • +
    • +Simplicity & Power: Offering an easy-to-use interface with powerful underlying capabilities.
    • +
    • +Open Source: Fostering a collaborative environment where the community can contribute and improve the project.
    • +
    • +Reliability: Striving for a stable and dependable tool that consistently delivers.
    • +
    + +

    For insights into our ongoing development, project roadmap, and how you can get involved, please visit our Get Involved page.

    +
    +

    + + + The Team + + +

    + + +

    html2rss is maintained by a dedicated group of volunteers and contributors from around the world. We are passionate about open source and committed to continuously improving the project.

    + +

    Want to join us? Check out our Contributing Guide!

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/assets/css/just-the-docs-dark.css b/jekyll-backup/_site/assets/css/just-the-docs-dark.css new file mode 100644 index 00000000..182446f2 --- /dev/null +++ b/jekyll-backup/_site/assets/css/just-the-docs-dark.css @@ -0,0 +1 @@ +ο»Ώ.highlight,pre.highlight{background:#f9f9f9;color:#383942}.highlight pre{background:#f9f9f9}.highlight .hll{background:#f9f9f9}.highlight .c{color:#9fa0a6;font-style:italic}.highlight .err{color:#fff;background-color:#e05151}.highlight .k{color:#a625a4}.highlight .l{color:#50a04f}.highlight .n{color:#383942}.highlight .o{color:#383942}.highlight .p{color:#383942}.highlight .cm{color:#9fa0a6;font-style:italic}.highlight .cp{color:#9fa0a6;font-style:italic}.highlight .c1{color:#9fa0a6;font-style:italic}.highlight .cs{color:#9fa0a6;font-style:italic}.highlight .ge{font-style:italic}.highlight .gs{font-weight:700}.highlight .kc{color:#a625a4}.highlight .kd{color:#a625a4}.highlight .kn{color:#a625a4}.highlight .kp{color:#a625a4}.highlight .kr{color:#a625a4}.highlight .kt{color:#a625a4}.highlight .ld{color:#50a04f}.highlight .m{color:#b66a00}.highlight .s{color:#50a04f}.highlight .na{color:#b66a00}.highlight .nb{color:#ca7601}.highlight .nc{color:#ca7601}.highlight .no{color:#ca7601}.highlight .nd{color:#ca7601}.highlight .ni{color:#ca7601}.highlight .ne{color:#ca7601}.highlight .nf{color:#383942}.highlight .nl{color:#ca7601}.highlight .nn{color:#383942}.highlight .nx{color:#383942}.highlight .py{color:#ca7601}.highlight .nt{color:#e35549}.highlight .nv{color:#ca7601}.highlight .ow{font-weight:700}.highlight .w{color:#f8f8f2}.highlight .mf{color:#b66a00}.highlight .mh{color:#b66a00}.highlight .mi{color:#b66a00}.highlight .mo{color:#b66a00}.highlight .sb{color:#50a04f}.highlight .sc{color:#50a04f}.highlight .sd{color:#50a04f}.highlight .s2{color:#50a04f}.highlight .se{color:#50a04f}.highlight .sh{color:#50a04f}.highlight .si{color:#50a04f}.highlight .sx{color:#50a04f}.highlight .sr{color:#0083bb}.highlight .s1{color:#50a04f}.highlight .ss{color:#0083bb}.highlight .bp{color:#ca7601}.highlight .vc{color:#ca7601}.highlight .vg{color:#ca7601}.highlight .vi{color:#e35549}.highlight .il{color:#b66a00}.highlight .gu{color:#75715e}.highlight .gd{color:#e05151}.highlight .gi{color:#43d089}.highlight .language-json .w+.s2{color:#e35549}.highlight .language-json .kc{color:#0083bb}.highlight,pre.highlight{background:#31343f;color:#dee2f7}.highlight pre{background:#31343f}.highlight .hll{background:#31343f}.highlight .c{color:#63677e;font-style:italic}.highlight .err{color:#960050;background-color:#1e0010}.highlight .k{color:#e19ef5}.highlight .l{color:#a3eea0}.highlight .n{color:#dee2f7}.highlight .o{color:#dee2f7}.highlight .p{color:#dee2f7}.highlight .cm{color:#63677e;font-style:italic}.highlight .cp{color:#63677e;font-style:italic}.highlight .c1{color:#63677e;font-style:italic}.highlight .cs{color:#63677e;font-style:italic}.highlight .ge{font-style:italic}.highlight .gs{font-weight:700}.highlight .kc{color:#e19ef5}.highlight .kd{color:#e19ef5}.highlight .kn{color:#e19ef5}.highlight .kp{color:#e19ef5}.highlight .kr{color:#e19ef5}.highlight .kt{color:#e19ef5}.highlight .ld{color:#a3eea0}.highlight .m{color:#eddc96}.highlight .s{color:#a3eea0}.highlight .na{color:#eddc96}.highlight .nb{color:#fdce68}.highlight .nc{color:#fdce68}.highlight .no{color:#fdce68}.highlight .nd{color:#fdce68}.highlight .ni{color:#fdce68}.highlight .ne{color:#fdce68}.highlight .nf{color:#dee2f7}.highlight .nl{color:#fdce68}.highlight .nn{color:#dee2f7}.highlight .nx{color:#dee2f7}.highlight .py{color:#fdce68}.highlight .nt{color:#f9867b}.highlight .nv{color:#fdce68}.highlight .ow{font-weight:700}.highlight .w{color:#f8f8f2}.highlight .mf{color:#eddc96}.highlight .mh{color:#eddc96}.highlight .mi{color:#eddc96}.highlight .mo{color:#eddc96}.highlight .sb{color:#a3eea0}.highlight .sc{color:#a3eea0}.highlight .sd{color:#a3eea0}.highlight .s2{color:#a3eea0}.highlight .se{color:#a3eea0}.highlight .sh{color:#a3eea0}.highlight .si{color:#a3eea0}.highlight .sx{color:#a3eea0}.highlight .sr{color:#7be2f9}.highlight .s1{color:#a3eea0}.highlight .ss{color:#7be2f9}.highlight .bp{color:#fdce68}.highlight .vc{color:#fdce68}.highlight .vg{color:#fdce68}.highlight .vi{color:#f9867b}.highlight .il{color:#eddc96}.highlight .gu{color:#75715e}.highlight .gd{color:#f92672}.highlight .gi{color:#a6e22e}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}html{font-size:.875rem !important}@media(min-width: 31.25rem){html{font-size:1rem !important}}body{font-family:system-ui,-apple-system,blinkmacsystemfont,"Segoe UI",roboto,"Helvetica Neue",arial,sans-serif,"Segoe UI Emoji";font-size:inherit;line-height:1.4;color:#e6e1e8;background-color:#27262b;overflow-wrap:break-word}ol,ul,dl,pre,address,blockquote,table,div,hr,form,fieldset,noscript .table-wrapper{margin-top:0}h1,h2,h3,h4,h5,h6,#toctitle{margin-top:0;margin-bottom:1em;font-weight:500;line-height:1.25;color:#f5f6fa}p{margin-top:1em;margin-bottom:1em}a{color:#2c84fa;text-decoration:none}a:not([class]){text-decoration:underline;text-decoration-color:#44434d;text-underline-offset:2px}a:not([class]):hover{text-decoration-color:rgba(44,132,250,.45)}code{font-family:"SFMono-Regular",menlo,consolas,monospace;font-size:.75em;line-height:1.4}figure,pre{margin:0}li{margin:.25em 0}img{max-width:100%;height:auto}hr{height:1px;padding:0;margin:2rem 0;background-color:#44434d;border:0}blockquote{margin:10px 0;margin-block-start:0;margin-inline-start:0;padding-left:1rem;border-left:3px solid #44434d}.side-bar{z-index:0;display:flex;flex-wrap:wrap;background-color:#27262b}@media(min-width: 50rem){.side-bar{flex-flow:column nowrap;position:fixed;width:15.5rem;height:100%;border-right:1px solid #44434d;align-items:flex-end}}@media(min-width: 66.5rem){.side-bar{width:calc((100% - 66.5rem)/2 + 16.5rem);min-width:16.5rem}}@media(min-width: 50rem){.side-bar+.main{margin-left:15.5rem}}@media(min-width: 66.5rem){.side-bar+.main{margin-left:max(16.5rem,(100% - 66.5rem)/2 + 16.5rem)}}.side-bar+.main .main-header{display:none;background-color:#27262b}@media(min-width: 50rem){.side-bar+.main .main-header{display:flex;background-color:#27262b}}.side-bar+.main .main-header.nav-open{display:block}@media(min-width: 50rem){.side-bar+.main .main-header.nav-open{display:flex}}.main{margin:auto}@media(min-width: 50rem){.main{position:relative;max-width:50rem}}.main-content-wrap{padding-top:1rem;padding-bottom:1rem;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.main-content-wrap{padding-right:2rem;padding-left:2rem}}@media(min-width: 50rem){.main-content-wrap{padding-top:2rem;padding-bottom:2rem}}.main-header{z-index:0;border-bottom:1px solid #44434d}@media(min-width: 50rem){.main-header{display:flex;justify-content:space-between;height:3.75rem}}.site-nav,.site-header,.site-footer{width:100%}@media(min-width: 66.5rem){.site-nav,.site-header,.site-footer{width:16.5rem}}.site-nav{display:none}.site-nav.nav-open{display:block}@media(min-width: 50rem){.site-nav{display:block;padding-top:3rem;padding-bottom:1rem;overflow-y:auto;flex:1 1 auto}}.site-header{display:flex;min-height:3.75rem;align-items:center}@media(min-width: 50rem){.site-header{height:3.75rem;max-height:3.75rem;border-bottom:1px solid #44434d}}.site-title{flex-grow:1;display:flex;height:100%;align-items:center;padding-top:.75rem;padding-bottom:.75rem;color:#f5f6fa;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.site-title{padding-right:2rem;padding-left:2rem}}.site-title{font-size:1.125rem !important}@media(min-width: 31.25rem){.site-title{font-size:1.5rem !important;line-height:1.25}}@media(min-width: 50rem){.site-title{padding-top:.5rem;padding-bottom:.5rem}}.site-logo{width:100%;height:100%;background-image:url("/assets/images/logo.png");background-repeat:no-repeat;background-position:left center;background-size:contain}.site-button{display:flex;height:100%;padding:1rem;align-items:center}@media(min-width: 50rem){.site-header .site-button{display:none}}.site-title:hover{background-image:linear-gradient(-90deg, rgb(31.6333333333, 30.8222222222, 34.8777777778) 0%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0.8) 80%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0) 100%)}.site-button:hover{background-image:linear-gradient(-90deg, rgb(31.6333333333, 30.8222222222, 34.8777777778) 0%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0.8) 100%)}body{position:relative;padding-bottom:4rem;overflow-y:scroll}@media(min-width: 50rem){body{position:static;padding-bottom:0}}.site-footer{position:absolute;bottom:0;left:0;padding-top:1rem;padding-bottom:1rem;color:#959396;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.site-footer{padding-right:2rem;padding-left:2rem}}.site-footer{font-size:.6875rem !important}@media(min-width: 31.25rem){.site-footer{font-size:.75rem !important}}@media(min-width: 50rem){.site-footer{position:static;justify-self:end}}.icon{width:1.5rem;height:1.5rem;color:#2c84fa}.main-content{line-height:1.6}.main-content ol,.main-content ul,.main-content dl,.main-content pre,.main-content address,.main-content blockquote,.main-content .table-wrapper{margin-top:.5em}.main-content a{overflow:hidden;text-overflow:ellipsis}.main-content ul,.main-content ol{padding-left:1.5em}.main-content li .highlight{margin-top:.25rem}.main-content ol{list-style-type:none;counter-reset:step-counter}.main-content ol>li{position:relative}.main-content ol>li::before{position:absolute;top:.2em;left:-1.6em;color:#959396;content:counter(step-counter);counter-increment:step-counter}.main-content ol>li::before{font-size:.75rem !important}@media(min-width: 31.25rem){.main-content ol>li::before{font-size:.875rem !important}}@media(min-width: 31.25rem){.main-content ol>li::before{top:.11em}}.main-content ol>li ol{counter-reset:sub-counter}.main-content ol>li ol>li::before{content:counter(sub-counter, lower-alpha);counter-increment:sub-counter}.main-content ul{list-style:none}.main-content ul>li::before{position:absolute;margin-left:-1.4em;color:#959396;content:"β€’"}.main-content .task-list-item::before{content:""}.main-content .task-list-item-checkbox{margin-right:.6em;margin-left:-1.4em}.main-content hr+*{margin-top:0}.main-content h1:first-of-type{margin-top:.5em}.main-content dl{display:grid;grid-template:auto/10em 1fr}.main-content dt,.main-content dd{margin:.25em 0}.main-content dt{grid-column:1;font-weight:500;text-align:right}.main-content dt::after{content:":"}.main-content dd{grid-column:2;margin-bottom:0;margin-left:1em}.main-content dd blockquote:first-child,.main-content dd div:first-child,.main-content dd dl:first-child,.main-content dd dt:first-child,.main-content dd h1:first-child,.main-content dd h2:first-child,.main-content dd h3:first-child,.main-content dd h4:first-child,.main-content dd h5:first-child,.main-content dd h6:first-child,.main-content dd li:first-child,.main-content dd ol:first-child,.main-content dd p:first-child,.main-content dd pre:first-child,.main-content dd table:first-child,.main-content dd ul:first-child,.main-content dd .table-wrapper:first-child{margin-top:0}.main-content dd dl:first-child dt:first-child,.main-content dd dl:first-child dd:nth-child(2),.main-content ol dl:first-child dt:first-child,.main-content ol dl:first-child dd:nth-child(2),.main-content ul dl:first-child dt:first-child,.main-content ul dl:first-child dd:nth-child(2){margin-top:0}.main-content .anchor-heading{position:absolute;right:-1rem;width:1.5rem;height:100%;padding-right:.25rem;padding-left:.25rem;overflow:visible}@media(min-width: 50rem){.main-content .anchor-heading{right:auto;left:-1.5rem}}.main-content .anchor-heading svg{display:inline-block;width:100%;height:100%;color:#2c84fa;visibility:hidden}.main-content .anchor-heading:hover svg,.main-content .anchor-heading:focus svg,.main-content h1:hover>.anchor-heading svg,.main-content h2:hover>.anchor-heading svg,.main-content h3:hover>.anchor-heading svg,.main-content h4:hover>.anchor-heading svg,.main-content h5:hover>.anchor-heading svg,.main-content h6:hover>.anchor-heading svg{visibility:visible}.main-content summary{cursor:pointer}.main-content h1,.main-content h2,.main-content h3,.main-content h4,.main-content h5,.main-content h6,.main-content #toctitle{position:relative;margin-top:1.5em;margin-bottom:.25em}.main-content h1+table,.main-content h1+.table-wrapper,.main-content h1+.code-example,.main-content h1+.highlighter-rouge,.main-content h1+.sectionbody .listingblock,.main-content h2+table,.main-content h2+.table-wrapper,.main-content h2+.code-example,.main-content h2+.highlighter-rouge,.main-content h2+.sectionbody .listingblock,.main-content h3+table,.main-content h3+.table-wrapper,.main-content h3+.code-example,.main-content h3+.highlighter-rouge,.main-content h3+.sectionbody .listingblock,.main-content h4+table,.main-content h4+.table-wrapper,.main-content h4+.code-example,.main-content h4+.highlighter-rouge,.main-content h4+.sectionbody .listingblock,.main-content h5+table,.main-content h5+.table-wrapper,.main-content h5+.code-example,.main-content h5+.highlighter-rouge,.main-content h5+.sectionbody .listingblock,.main-content h6+table,.main-content h6+.table-wrapper,.main-content h6+.code-example,.main-content h6+.highlighter-rouge,.main-content h6+.sectionbody .listingblock,.main-content #toctitle+table,.main-content #toctitle+.table-wrapper,.main-content #toctitle+.code-example,.main-content #toctitle+.highlighter-rouge,.main-content #toctitle+.sectionbody .listingblock{margin-top:1em}.main-content h1+p:not(.label),.main-content h2+p:not(.label),.main-content h3+p:not(.label),.main-content h4+p:not(.label),.main-content h5+p:not(.label),.main-content h6+p:not(.label),.main-content #toctitle+p:not(.label){margin-top:0}.main-content>h1:first-child,.main-content>h2:first-child,.main-content>h3:first-child,.main-content>h4:first-child,.main-content>h5:first-child,.main-content>h6:first-child,.main-content>.sect1:first-child>h2,.main-content>.sect2:first-child>h3,.main-content>.sect3:first-child>h4,.main-content>.sect4:first-child>h5,.main-content>.sect5:first-child>h6{margin-top:.5rem}.nav-list{padding:0;margin-top:0;margin-bottom:0;list-style:none}.nav-list .nav-list-item{position:relative;margin:0}.nav-list .nav-list-item{font-size:.875rem !important}@media(min-width: 31.25rem){.nav-list .nav-list-item{font-size:1rem !important}}@media(min-width: 50rem){.nav-list .nav-list-item{font-size:.75rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.nav-list .nav-list-item{font-size:.875rem !important}}.nav-list .nav-list-item .nav-list-link{display:block;min-height:3rem;padding-top:.25rem;padding-bottom:.25rem;line-height:2.5rem;padding-right:3rem;padding-left:1rem}@media(min-width: 50rem){.nav-list .nav-list-item .nav-list-link{min-height:2rem;line-height:1.5rem;padding-right:2rem;padding-left:2rem}}.nav-list .nav-list-item .nav-list-link.external>svg{width:1rem;height:1rem;vertical-align:text-bottom}.nav-list .nav-list-item .nav-list-link.active{font-weight:600;text-decoration:none}.nav-list .nav-list-item .nav-list-link:hover,.nav-list .nav-list-item .nav-list-link.active{background-image:linear-gradient(-90deg, rgb(31.6333333333, 30.8222222222, 34.8777777778) 0%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0.8) 80%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0) 100%)}.nav-list .nav-list-item .nav-list-expander{position:absolute;right:0;width:3rem;height:3rem;padding:0.75rem;color:#2c84fa}@media(min-width: 50rem){.nav-list .nav-list-item .nav-list-expander{width:2rem;height:2rem;padding:0.5rem}}.nav-list .nav-list-item .nav-list-expander:hover{background-image:linear-gradient(-90deg, rgb(31.6333333333, 30.8222222222, 34.8777777778) 0%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0.8) 100%)}.nav-list .nav-list-item .nav-list-expander svg{transform:rotate(90deg)}.nav-list .nav-list-item>.nav-list{display:none;padding-left:.75rem;list-style:none}.nav-list .nav-list-item>.nav-list .nav-list-item{position:relative}.nav-list .nav-list-item>.nav-list .nav-list-item .nav-list-link{color:#959396}.nav-list .nav-list-item>.nav-list .nav-list-item .nav-list-expander{color:#959396}.nav-list .nav-list-item.active>.nav-list-expander svg{transform:rotate(-90deg)}.nav-list .nav-list-item.active>.nav-list{display:block}.nav-category{padding:.5rem 1rem;font-weight:600;text-align:start;text-transform:uppercase;border-bottom:1px solid #44434d}.nav-category{font-size:.6875rem !important}@media(min-width: 31.25rem){.nav-category{font-size:.75rem !important}}@media(min-width: 50rem){.nav-category{padding:.5rem 2rem;margin-top:1rem;text-align:start}.nav-category:first-child{margin-top:0}}.nav-list.nav-category-list>.nav-list-item{margin:0}.nav-list.nav-category-list>.nav-list-item>.nav-list{padding:0}.nav-list.nav-category-list>.nav-list-item>.nav-list>.nav-list-item>.nav-list-link{color:#2c84fa}.nav-list.nav-category-list>.nav-list-item>.nav-list>.nav-list-item>.nav-list-expander{color:#2c84fa}.aux-nav{height:100%;overflow-x:auto}.aux-nav{font-size:.6875rem !important}@media(min-width: 31.25rem){.aux-nav{font-size:.75rem !important}}.aux-nav .aux-nav-list{display:flex;height:100%;padding:0;margin:0;list-style:none}.aux-nav .aux-nav-list-item{display:inline-block;height:100%;padding:0;margin:0}@media(min-width: 50rem){.aux-nav{padding-right:1rem}}@media(min-width: 50rem){.breadcrumb-nav{margin-top:-1rem}}.breadcrumb-nav-list{padding-left:0;margin-bottom:.75rem;list-style:none}.breadcrumb-nav-list-item{display:table-cell}.breadcrumb-nav-list-item{font-size:.6875rem !important}@media(min-width: 31.25rem){.breadcrumb-nav-list-item{font-size:.75rem !important}}.breadcrumb-nav-list-item::before{display:none}.breadcrumb-nav-list-item::after{display:inline-block;margin-right:.5rem;margin-left:.5rem;color:#959396;content:"/"}.breadcrumb-nav-list-item:last-child::after{content:""}h1,.text-alpha{font-weight:300}h1,.text-alpha{font-size:2rem !important;line-height:1.25}@media(min-width: 31.25rem){h1,.text-alpha{font-size:2.25rem !important}}h2,.text-beta,#toctitle{font-size:1.125rem !important}@media(min-width: 31.25rem){h2,.text-beta,#toctitle{font-size:1.5rem !important;line-height:1.25}}h3,.text-gamma{font-size:1rem !important}@media(min-width: 31.25rem){h3,.text-gamma{font-size:1.125rem !important}}h4,.text-delta{font-weight:400;text-transform:uppercase;letter-spacing:.1em}h4,.text-delta{font-size:.6875rem !important}@media(min-width: 31.25rem){h4,.text-delta{font-size:.75rem !important}}h4 code{text-transform:none}h5,.text-epsilon{font-size:.75rem !important}@media(min-width: 31.25rem){h5,.text-epsilon{font-size:.875rem !important}}h6,.text-zeta{font-size:.6875rem !important}@media(min-width: 31.25rem){h6,.text-zeta{font-size:.75rem !important}}.text-small{font-size:.6875rem !important}@media(min-width: 31.25rem){.text-small{font-size:.75rem !important}}.text-mono{font-family:"SFMono-Regular",menlo,consolas,monospace !important}.text-left{text-align:left !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.label:not(g),.label-blue:not(g){display:inline-block;padding:.16em .56em;margin-right:.5rem;margin-left:.5rem;color:#fff;text-transform:uppercase;vertical-align:middle;background-color:#2869e6;border-radius:12px}.label:not(g),.label-blue:not(g){font-size:.6875rem !important}@media(min-width: 31.25rem){.label:not(g),.label-blue:not(g){font-size:.75rem !important}}.label-green:not(g){background-color:#009c7b}.label-purple:not(g){background-color:#5e41d0}.label-red:not(g){background-color:#e94c4c}.label-yellow:not(g){color:#44434d;background-color:#f7d12e}.btn{display:inline-block;box-sizing:border-box;padding:.3em 1em;margin:0;font-family:inherit;font-size:inherit;font-weight:500;line-height:1.5;color:#2c84fa;text-decoration:none;vertical-align:baseline;cursor:pointer;background-color:#302d36;border-width:0;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);appearance:none}.btn:focus{text-decoration:none;outline:none;box-shadow:0 0 0 3px rgba(0,0,255,.25)}.btn:focus:hover,.btn.selected:focus{box-shadow:0 0 0 3px rgba(0,0,255,.25)}.btn:hover,.btn.zeroclipboard-is-hover{color:rgb(34.0361111111,126.1916666667,249.7638888889)}.btn:hover,.btn:active,.btn.zeroclipboard-is-hover,.btn.zeroclipboard-is-active{text-decoration:none;background-color:hsl(260,9.0909090909%,18.4117647059%)}.btn:active,.btn.selected,.btn.zeroclipboard-is-active{background-color:hsl(260,9.0909090909%,16.4117647059%);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn.selected:hover{background-color:hsl(0,0%,81.2745098039%)}.btn:disabled,.btn:disabled:hover,.btn.disabled,.btn.disabled:hover{color:hsla(0,0%,40%,.5);cursor:default;background-color:rgba(229,229,229,.5);background-image:none;box-shadow:none}.btn-outline{color:#2c84fa;background:rgba(0,0,0,0);box-shadow:inset 0 0 0 2px #e6e1e8}.btn-outline:hover,.btn-outline:active,.btn-outline.zeroclipboard-is-hover,.btn-outline.zeroclipboard-is-active{color:rgb(24.0722222222,120.3833333333,249.5277777778);text-decoration:none;background-color:rgba(0,0,0,0);box-shadow:inset 0 0 0 3px #e6e1e8}.btn-outline:focus{text-decoration:none;outline:none;box-shadow:inset 0 0 0 2px #5c5962,0 0 0 3px rgba(0,0,255,.25)}.btn-outline:focus:hover,.btn-outline.selected:focus{box-shadow:inset 0 0 0 2px #5c5962}.btn-primary{color:#fff;background-color:rgb(36.1802816901,72.3605633803,166.6197183099);background-image:linear-gradient(rgb(42.5492957746, 85.0985915493, 195.9507042254), rgb(36.1802816901, 72.3605633803, 166.6197183099));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-primary:hover,.btn-primary.zeroclipboard-is-hover{color:#fff;background-color:rgb(34.3605633803,68.7211267606,158.2394366197);background-image:linear-gradient(rgb(39.8197183099, 79.6394366197, 183.3802816901), rgb(34.3605633803, 68.7211267606, 158.2394366197))}.btn-primary:active,.btn-primary.selected,.btn-primary.zeroclipboard-is-active{background-color:rgb(33.4507042254,66.9014084507,154.0492957746);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-primary.selected:hover{background-color:rgb(28.9014084507,57.8028169014,133.0985915493)}.btn-purple{color:#fff;background-color:rgb(87.0708860759,56.8227848101,205.9772151899);background-image:linear-gradient(rgb(111.3227848101, 85.4430379747, 213.0569620253), rgb(87.0708860759, 56.8227848101, 205.9772151899));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-purple:hover,.btn-purple.zeroclipboard-is-hover{color:#fff;background-color:rgb(81.0025316456,50.0936708861,202.5063291139);background-image:linear-gradient(rgb(100.9291139241, 73.1772151899, 210.0227848101), rgb(81.0025316456, 50.0936708861, 202.5063291139))}.btn-purple:active,.btn-purple.selected,.btn-purple.zeroclipboard-is-active{background-color:rgb(79.3670886076,49.082278481,198.417721519);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-purple.selected:hover{background-color:rgb(71.1898734177,44.0253164557,177.9746835443)}.btn-blue{color:#fff;background-color:rgb(34.0361111111,126.1916666667,249.7638888889);background-image:linear-gradient(rgb(68.9097222222, 146.5208333333, 250.5902777778), rgb(34.0361111111, 126.1916666667, 249.7638888889));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-blue:hover,.btn-blue.zeroclipboard-is-hover{color:#fff;background-color:rgb(24.0722222222,120.3833333333,249.5277777778);background-image:linear-gradient(rgb(53.9638888889, 137.8083333333, 250.2361111111), rgb(24.0722222222, 120.3833333333, 249.5277777778))}.btn-blue:active,.btn-blue.selected,.btn-blue.zeroclipboard-is-active{background-color:rgb(19.0902777778,117.4791666667,249.4097222222);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-blue.selected:hover{background-color:rgb(5.625,104.625,237.375)}.btn-green{color:#fff;background-color:rgb(16.1242424242,171.6757575758,125.2);background-image:linear-gradient(rgb(19.1893939394, 204.3106060606, 149), rgb(16.1242424242, 171.6757575758, 125.2));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-green:hover,.btn-green.zeroclipboard-is-hover{color:#fff;background-color:rgb(15.2484848485,162.3515151515,118.4);background-image:linear-gradient(rgb(17.8757575758, 190.3242424242, 138.8), rgb(15.2484848485, 162.3515151515, 118.4))}.btn-green:active,.btn-green.selected,.btn-green.zeroclipboard-is-active{background-color:rgb(14.8106060606,157.6893939394,115);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-green.selected:hover{background-color:rgb(12.6212121212,134.3787878788,98)}.btn-reset{background:none;border:none;margin:0;text-align:inherit;font:inherit;border-radius:0;appearance:none}.search{position:relative;z-index:2;flex-grow:1;height:4rem;padding:.5rem;transition:padding linear 200ms}@media(min-width: 50rem){.search{position:relative !important;width:auto !important;height:100% !important;padding:0;transition:none}}.search-input-wrap{position:relative;z-index:1;height:3rem;overflow:hidden;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);transition:height linear 200ms}@media(min-width: 50rem){.search-input-wrap{position:absolute;width:100%;max-width:33.5rem;height:100% !important;border-radius:0;box-shadow:none;transition:width ease 400ms}}.search-input{position:absolute;width:100%;height:100%;padding:.5rem 1rem .5rem 2.5rem;font-size:1rem;color:#e6e1e8;background-color:#302d36;border-top:0;border-right:0;border-bottom:0;border-left:0;border-radius:0}@media(min-width: 50rem){.search-input{padding:.5rem 1rem .5rem 3.5rem;font-size:.875rem;background-color:#27262b;transition:padding-left linear 200ms}}.search-input:focus{outline:0}.search-input:focus+.search-label .search-icon{color:#2c84fa}.search-label{position:absolute;display:flex;height:100%;padding-left:1rem}@media(min-width: 50rem){.search-label{padding-left:2rem;transition:padding-left linear 200ms}}.search-label .search-icon{width:1.2rem;height:1.2rem;align-self:center;color:#959396}.search-results{position:absolute;left:0;display:none;width:100%;max-height:calc(100% - 4rem);overflow-y:auto;background-color:#302d36;border-bottom-right-radius:4px;border-bottom-left-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}@media(min-width: 50rem){.search-results{top:100%;width:33.5rem;max-height:calc(100vh - 200%) !important}}.search-results-list{padding-left:0;margin-bottom:.25rem;list-style:none}.search-results-list{font-size:.875rem !important}@media(min-width: 31.25rem){.search-results-list{font-size:1rem !important}}@media(min-width: 50rem){.search-results-list{font-size:.75rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.search-results-list{font-size:.875rem !important}}.search-results-list-item{padding:0;margin:0}.search-result{display:block;padding:.25rem .75rem}.search-result:hover,.search-result.active{background-color:hsl(252,6.1728395062%,12.8823529412%)}.search-result-title{display:block;padding-top:.5rem;padding-bottom:.5rem}@media(min-width: 31.25rem){.search-result-title{display:inline-block;width:40%;padding-right:.5rem;vertical-align:top}}.search-result-doc{display:flex;align-items:center;word-wrap:break-word}.search-result-doc.search-result-doc-parent{opacity:.5}.search-result-doc.search-result-doc-parent{font-size:.75rem !important}@media(min-width: 31.25rem){.search-result-doc.search-result-doc-parent{font-size:.875rem !important}}@media(min-width: 50rem){.search-result-doc.search-result-doc-parent{font-size:.6875rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.search-result-doc.search-result-doc-parent{font-size:.75rem !important}}.search-result-doc .search-result-icon{width:1rem;height:1rem;margin-right:.5rem;color:#2c84fa;flex-shrink:0}.search-result-doc .search-result-doc-title{overflow:auto}.search-result-section{margin-left:1.5rem;word-wrap:break-word}.search-result-rel-url{display:block;margin-left:1.5rem;overflow:hidden;color:#959396;text-overflow:ellipsis;white-space:nowrap}.search-result-rel-url{font-size:.5625rem !important}@media(min-width: 31.25rem){.search-result-rel-url{font-size:.625rem !important}}.search-result-previews{display:block;padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;margin-left:.5rem;color:#959396;word-wrap:break-word;border-left:1px solid;border-left-color:#44434d}.search-result-previews{font-size:.6875rem !important}@media(min-width: 31.25rem){.search-result-previews{font-size:.75rem !important}}@media(min-width: 31.25rem){.search-result-previews{display:inline-block;width:60%;padding-left:.5rem;margin-left:0;vertical-align:top}}.search-result-preview+.search-result-preview{margin-top:.25rem}.search-result-highlight{font-weight:bold}.search-no-result{padding:.5rem .75rem}.search-no-result{font-size:.75rem !important}@media(min-width: 31.25rem){.search-no-result{font-size:.875rem !important}}.search-button{position:fixed;right:1rem;bottom:1rem;display:flex;width:3.5rem;height:3.5rem;background-color:#302d36;border:1px solid rgba(44,132,250,.3);border-radius:1.75rem;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);align-items:center;justify-content:center}.search-overlay{position:fixed;top:0;left:0;z-index:1;width:0;height:0;background-color:rgba(0,0,0,.3);opacity:0;transition:opacity ease 400ms,width 0s 400ms,height 0s 400ms}.search-active .search{position:fixed;top:0;left:0;width:100%;height:100%;padding:0}.search-active .search-input-wrap{height:4rem;border-radius:0}@media(min-width: 50rem){.search-active .search-input-wrap{width:33.5rem;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}}.search-active .search-input{background-color:#302d36}@media(min-width: 50rem){.search-active .search-input{padding-left:2.3rem}}@media(min-width: 50rem){.search-active .search-label{padding-left:.6rem}}.search-active .search-results{display:block}.search-active .search-overlay{width:100%;height:100%;opacity:1;transition:opacity ease 400ms,width 0s,height 0s}@media(min-width: 50rem){.search-active .main{position:fixed;right:0;left:0}}.search-active .main-header{padding-top:4rem}@media(min-width: 50rem){.search-active .main-header{padding-top:0}}.table-wrapper{display:block;width:100%;max-width:100%;margin-bottom:1.5rem;overflow-x:auto;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}table{display:table;min-width:100%;border-collapse:separate}th,td{min-width:7.5rem;padding:.5rem .75rem;background-color:#302d36;border-bottom:1px solid rgba(68,67,77,.5);border-left:1px solid #44434d}th,td{font-size:.75rem !important}@media(min-width: 31.25rem){th,td{font-size:.875rem !important}}th:first-of-type,td:first-of-type{border-left:0}tbody tr:last-of-type th,tbody tr:last-of-type td{border-bottom:0}tbody tr:last-of-type td{padding-bottom:.75rem}thead th{border-bottom:1px solid #44434d}:not(pre,figure)>code{padding:.2em .15em;font-weight:400;background-color:#31343f;border:1px solid #44434d;border-radius:4px}a:visited code{border-color:#44434d}div.highlighter-rouge,div.listingblock>div.content,figure.highlight{margin-top:0;margin-bottom:.75rem;background-color:#31343f;border-radius:4px;box-shadow:none;-webkit-overflow-scrolling:touch;position:relative;padding:0}div.highlighter-rouge>button,div.listingblock>div.content>button,figure.highlight>button{width:.75rem;opacity:0;position:absolute;top:0;right:0;border:.75rem solid #31343f;background-color:#31343f;color:#e6e1e8;box-sizing:content-box}div.highlighter-rouge>button svg,div.listingblock>div.content>button svg,figure.highlight>button svg{fill:#e6e1e8}div.highlighter-rouge>button:active,div.listingblock>div.content>button:active,figure.highlight>button:active{text-decoration:none;outline:none;opacity:1}div.highlighter-rouge>button:focus,div.listingblock>div.content>button:focus,figure.highlight>button:focus{opacity:1}div.highlighter-rouge:hover>button,div.listingblock>div.content:hover>button,figure.highlight:hover>button{cursor:copy;opacity:1}div.highlighter-rouge div.highlight{overflow-x:auto;padding:.75rem;margin:0;border:0}div.highlighter-rouge pre.highlight,div.highlighter-rouge code{padding:0;margin:0;border:0}div.listingblock{margin-top:0;margin-bottom:.75rem}div.listingblock div.content{overflow-x:auto;padding:.75rem;margin:0;border:0}div.listingblock div.content>pre,div.listingblock code{padding:0;margin:0;border:0}figure.highlight pre,figure.highlight :not(pre)>code{overflow-x:auto;padding:.75rem;margin:0;border:0}.highlight .table-wrapper{padding:.75rem 0;margin:0;border:0;box-shadow:none}.highlight .table-wrapper td,.highlight .table-wrapper pre{min-width:0;padding:0;background-color:#31343f;border:0}.highlight .table-wrapper td,.highlight .table-wrapper pre{font-size:.6875rem !important}@media(min-width: 31.25rem){.highlight .table-wrapper td,.highlight .table-wrapper pre{font-size:.75rem !important}}.highlight .table-wrapper td.gl{width:1em;padding-right:.75rem;padding-left:.75rem}.highlight .table-wrapper pre{margin:0;line-height:2}.code-example,.listingblock>.title{padding:.75rem;margin-bottom:.75rem;overflow:auto;border:1px solid #44434d;border-radius:4px}.code-example+.highlighter-rouge,.code-example+.sectionbody .listingblock,.code-example+.content,.code-example+figure.highlight,.listingblock>.title+.highlighter-rouge,.listingblock>.title+.sectionbody .listingblock,.listingblock>.title+.content,.listingblock>.title+figure.highlight{position:relative;margin-top:-1rem;border-right:1px solid #44434d;border-bottom:1px solid #44434d;border-left:1px solid #44434d;border-top-left-radius:0;border-top-right-radius:0}code.language-mermaid{padding:0;background-color:inherit;border:0}.highlight,pre.highlight{background:#31343f;color:#dee2f7}.highlight pre{background:#31343f}.text-grey-dk-000{color:#959396 !important}.text-grey-dk-100{color:#5c5962 !important}.text-grey-dk-200{color:#44434d !important}.text-grey-dk-250{color:#302d36 !important}.text-grey-dk-300{color:#27262b !important}.text-grey-lt-000{color:#f5f6fa !important}.text-grey-lt-100{color:#eeebee !important}.text-grey-lt-200{color:#ecebed !important}.text-grey-lt-300{color:#e6e1e8 !important}.text-blue-000{color:#2c84fa !important}.text-blue-100{color:#2869e6 !important}.text-blue-200{color:#264caf !important}.text-blue-300{color:#183385 !important}.text-green-000{color:#41d693 !important}.text-green-100{color:#11b584 !important}.text-green-200{color:#009c7b !important}.text-green-300{color:#026e57 !important}.text-purple-000{color:#7253ed !important}.text-purple-100{color:#5e41d0 !important}.text-purple-200{color:#4e26af !important}.text-purple-300{color:#381885 !important}.text-yellow-000{color:#ffeb82 !important}.text-yellow-100{color:#fadf50 !important}.text-yellow-200{color:#f7d12e !important}.text-yellow-300{color:#e7af06 !important}.text-red-000{color:#f77e7e !important}.text-red-100{color:#f96e65 !important}.text-red-200{color:#e94c4c !important}.text-red-300{color:#dd2e2e !important}.bg-grey-dk-000{background-color:#959396 !important}.bg-grey-dk-100{background-color:#5c5962 !important}.bg-grey-dk-200{background-color:#44434d !important}.bg-grey-dk-250{background-color:#302d36 !important}.bg-grey-dk-300{background-color:#27262b !important}.bg-grey-lt-000{background-color:#f5f6fa !important}.bg-grey-lt-100{background-color:#eeebee !important}.bg-grey-lt-200{background-color:#ecebed !important}.bg-grey-lt-300{background-color:#e6e1e8 !important}.bg-blue-000{background-color:#2c84fa !important}.bg-blue-100{background-color:#2869e6 !important}.bg-blue-200{background-color:#264caf !important}.bg-blue-300{background-color:#183385 !important}.bg-green-000{background-color:#41d693 !important}.bg-green-100{background-color:#11b584 !important}.bg-green-200{background-color:#009c7b !important}.bg-green-300{background-color:#026e57 !important}.bg-purple-000{background-color:#7253ed !important}.bg-purple-100{background-color:#5e41d0 !important}.bg-purple-200{background-color:#4e26af !important}.bg-purple-300{background-color:#381885 !important}.bg-yellow-000{background-color:#ffeb82 !important}.bg-yellow-100{background-color:#fadf50 !important}.bg-yellow-200{background-color:#f7d12e !important}.bg-yellow-300{background-color:#e7af06 !important}.bg-red-000{background-color:#f77e7e !important}.bg-red-100{background-color:#f96e65 !important}.bg-red-200{background-color:#e94c4c !important}.bg-red-300{background-color:#dd2e2e !important}.d-block{display:block !important}.d-flex{display:flex !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-none{display:none !important}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}.float-left{float:left !important}.float-right{float:right !important}.flex-justify-start{justify-content:flex-start !important}.flex-justify-end{justify-content:flex-end !important}.flex-justify-between{justify-content:space-between !important}.flex-justify-around{justify-content:space-around !important}.v-align-baseline{vertical-align:baseline !important}.v-align-bottom{vertical-align:bottom !important}.v-align-middle{vertical-align:middle !important}.v-align-text-bottom{vertical-align:text-bottom !important}.v-align-text-top{vertical-align:text-top !important}.v-align-top{vertical-align:top !important}.fs-1{font-size:.5625rem !important}@media(min-width: 31.25rem){.fs-1{font-size:.625rem !important}}.fs-2{font-size:.6875rem !important}@media(min-width: 31.25rem){.fs-2{font-size:.75rem !important}}.fs-3{font-size:.75rem !important}@media(min-width: 31.25rem){.fs-3{font-size:.875rem !important}}.fs-4{font-size:.875rem !important}@media(min-width: 31.25rem){.fs-4{font-size:1rem !important}}.fs-5{font-size:1rem !important}@media(min-width: 31.25rem){.fs-5{font-size:1.125rem !important}}.fs-6{font-size:1.125rem !important}@media(min-width: 31.25rem){.fs-6{font-size:1.5rem !important;line-height:1.25}}.fs-7{font-size:1.5rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-7{font-size:2rem !important}}.fs-8{font-size:2rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-8{font-size:2.25rem !important}}.fs-9{font-size:2.25rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-9{font-size:2.625rem !important}}.fs-10{font-size:2.625rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-10{font-size:3rem !important}}.fw-300{font-weight:300 !important}.fw-400{font-weight:400 !important}.fw-500{font-weight:500 !important}.fw-700{font-weight:700 !important}.lh-0{line-height:0 !important}.lh-default{line-height:1.4}.lh-tight{line-height:1.25}.ls-5{letter-spacing:.05em !important}.ls-10{letter-spacing:.1em !important}.ls-0{letter-spacing:0 !important}.text-uppercase{text-transform:uppercase !important}.list-style-none{padding:0 !important;margin:0 !important;list-style:none !important}.list-style-none li::before{display:none !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-0{margin-right:-0 !important;margin-left:-0 !important}.mx-0-auto{margin-right:auto !important;margin-left:auto !important}.m-1{margin:0.25rem !important}.mt-1{margin-top:0.25rem !important}.mr-1{margin-right:0.25rem !important}.mb-1{margin-bottom:0.25rem !important}.ml-1{margin-left:0.25rem !important}.mx-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-1-auto{margin-right:auto !important;margin-left:auto !important}.m-2{margin:0.5rem !important}.mt-2{margin-top:0.5rem !important}.mr-2{margin-right:0.5rem !important}.mb-2{margin-bottom:0.5rem !important}.ml-2{margin-left:0.5rem !important}.mx-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-2-auto{margin-right:auto !important;margin-left:auto !important}.m-3{margin:0.75rem !important}.mt-3{margin-top:0.75rem !important}.mr-3{margin-right:0.75rem !important}.mb-3{margin-bottom:0.75rem !important}.ml-3{margin-left:0.75rem !important}.mx-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}.mx-3-auto{margin-right:auto !important;margin-left:auto !important}.m-4{margin:1rem !important}.mt-4{margin-top:1rem !important}.mr-4{margin-right:1rem !important}.mb-4{margin-bottom:1rem !important}.ml-4{margin-left:1rem !important}.mx-4{margin-right:1rem !important;margin-left:1rem !important}.my-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-4{margin-right:-1rem !important;margin-left:-1rem !important}.mx-4-auto{margin-right:auto !important;margin-left:auto !important}.m-5{margin:1.5rem !important}.mt-5{margin-top:1.5rem !important}.mr-5{margin-right:1.5rem !important}.mb-5{margin-bottom:1.5rem !important}.ml-5{margin-left:1.5rem !important}.mx-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-5-auto{margin-right:auto !important;margin-left:auto !important}.m-6{margin:2rem !important}.mt-6{margin-top:2rem !important}.mr-6{margin-right:2rem !important}.mb-6{margin-bottom:2rem !important}.ml-6{margin-left:2rem !important}.mx-6{margin-right:2rem !important;margin-left:2rem !important}.my-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-6{margin-right:-2rem !important;margin-left:-2rem !important}.mx-6-auto{margin-right:auto !important;margin-left:auto !important}.m-7{margin:2.5rem !important}.mt-7{margin-top:2.5rem !important}.mr-7{margin-right:2.5rem !important}.mb-7{margin-bottom:2.5rem !important}.ml-7{margin-left:2.5rem !important}.mx-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}.mx-7-auto{margin-right:auto !important;margin-left:auto !important}.m-8{margin:3rem !important}.mt-8{margin-top:3rem !important}.mr-8{margin-right:3rem !important}.mb-8{margin-bottom:3rem !important}.ml-8{margin-left:3rem !important}.mx-8{margin-right:3rem !important;margin-left:3rem !important}.my-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-8{margin-right:-3rem !important;margin-left:-3rem !important}.mx-8-auto{margin-right:auto !important;margin-left:auto !important}.m-9{margin:3.5rem !important}.mt-9{margin-top:3.5rem !important}.mr-9{margin-right:3.5rem !important}.mb-9{margin-bottom:3.5rem !important}.ml-9{margin-left:3.5rem !important}.mx-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}.mx-9-auto{margin-right:auto !important;margin-left:auto !important}.m-10{margin:4rem !important}.mt-10{margin-top:4rem !important}.mr-10{margin-right:4rem !important}.mb-10{margin-bottom:4rem !important}.ml-10{margin-left:4rem !important}.mx-10{margin-right:4rem !important;margin-left:4rem !important}.my-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-10{margin-right:-4rem !important;margin-left:-4rem !important}.mx-10-auto{margin-right:auto !important;margin-left:auto !important}@media(min-width: 20rem){.m-xs-0{margin:0 !important}.mt-xs-0{margin-top:0 !important}.mr-xs-0{margin-right:0 !important}.mb-xs-0{margin-bottom:0 !important}.ml-xs-0{margin-left:0 !important}.mx-xs-0{margin-right:0 !important;margin-left:0 !important}.my-xs-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-xs-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 20rem){.m-xs-1{margin:0.25rem !important}.mt-xs-1{margin-top:0.25rem !important}.mr-xs-1{margin-right:0.25rem !important}.mb-xs-1{margin-bottom:0.25rem !important}.ml-xs-1{margin-left:0.25rem !important}.mx-xs-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-xs-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-xs-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 20rem){.m-xs-2{margin:0.5rem !important}.mt-xs-2{margin-top:0.5rem !important}.mr-xs-2{margin-right:0.5rem !important}.mb-xs-2{margin-bottom:0.5rem !important}.ml-xs-2{margin-left:0.5rem !important}.mx-xs-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-xs-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-xs-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 20rem){.m-xs-3{margin:0.75rem !important}.mt-xs-3{margin-top:0.75rem !important}.mr-xs-3{margin-right:0.75rem !important}.mb-xs-3{margin-bottom:0.75rem !important}.ml-xs-3{margin-left:0.75rem !important}.mx-xs-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-xs-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-xs-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 20rem){.m-xs-4{margin:1rem !important}.mt-xs-4{margin-top:1rem !important}.mr-xs-4{margin-right:1rem !important}.mb-xs-4{margin-bottom:1rem !important}.ml-xs-4{margin-left:1rem !important}.mx-xs-4{margin-right:1rem !important;margin-left:1rem !important}.my-xs-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-xs-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 20rem){.m-xs-5{margin:1.5rem !important}.mt-xs-5{margin-top:1.5rem !important}.mr-xs-5{margin-right:1.5rem !important}.mb-xs-5{margin-bottom:1.5rem !important}.ml-xs-5{margin-left:1.5rem !important}.mx-xs-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-xs-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-xs-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 20rem){.m-xs-6{margin:2rem !important}.mt-xs-6{margin-top:2rem !important}.mr-xs-6{margin-right:2rem !important}.mb-xs-6{margin-bottom:2rem !important}.ml-xs-6{margin-left:2rem !important}.mx-xs-6{margin-right:2rem !important;margin-left:2rem !important}.my-xs-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-xs-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 20rem){.m-xs-7{margin:2.5rem !important}.mt-xs-7{margin-top:2.5rem !important}.mr-xs-7{margin-right:2.5rem !important}.mb-xs-7{margin-bottom:2.5rem !important}.ml-xs-7{margin-left:2.5rem !important}.mx-xs-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-xs-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-xs-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 20rem){.m-xs-8{margin:3rem !important}.mt-xs-8{margin-top:3rem !important}.mr-xs-8{margin-right:3rem !important}.mb-xs-8{margin-bottom:3rem !important}.ml-xs-8{margin-left:3rem !important}.mx-xs-8{margin-right:3rem !important;margin-left:3rem !important}.my-xs-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-xs-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 20rem){.m-xs-9{margin:3.5rem !important}.mt-xs-9{margin-top:3.5rem !important}.mr-xs-9{margin-right:3.5rem !important}.mb-xs-9{margin-bottom:3.5rem !important}.ml-xs-9{margin-left:3.5rem !important}.mx-xs-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-xs-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-xs-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 20rem){.m-xs-10{margin:4rem !important}.mt-xs-10{margin-top:4rem !important}.mr-xs-10{margin-right:4rem !important}.mb-xs-10{margin-bottom:4rem !important}.ml-xs-10{margin-left:4rem !important}.mx-xs-10{margin-right:4rem !important;margin-left:4rem !important}.my-xs-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-xs-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 31.25rem){.m-sm-0{margin:0 !important}.mt-sm-0{margin-top:0 !important}.mr-sm-0{margin-right:0 !important}.mb-sm-0{margin-bottom:0 !important}.ml-sm-0{margin-left:0 !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-sm-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 31.25rem){.m-sm-1{margin:0.25rem !important}.mt-sm-1{margin-top:0.25rem !important}.mr-sm-1{margin-right:0.25rem !important}.mb-sm-1{margin-bottom:0.25rem !important}.ml-sm-1{margin-left:0.25rem !important}.mx-sm-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-sm-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-sm-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 31.25rem){.m-sm-2{margin:0.5rem !important}.mt-sm-2{margin-top:0.5rem !important}.mr-sm-2{margin-right:0.5rem !important}.mb-sm-2{margin-bottom:0.5rem !important}.ml-sm-2{margin-left:0.5rem !important}.mx-sm-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-sm-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-sm-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 31.25rem){.m-sm-3{margin:0.75rem !important}.mt-sm-3{margin-top:0.75rem !important}.mr-sm-3{margin-right:0.75rem !important}.mb-sm-3{margin-bottom:0.75rem !important}.ml-sm-3{margin-left:0.75rem !important}.mx-sm-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-sm-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-sm-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 31.25rem){.m-sm-4{margin:1rem !important}.mt-sm-4{margin-top:1rem !important}.mr-sm-4{margin-right:1rem !important}.mb-sm-4{margin-bottom:1rem !important}.ml-sm-4{margin-left:1rem !important}.mx-sm-4{margin-right:1rem !important;margin-left:1rem !important}.my-sm-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-sm-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 31.25rem){.m-sm-5{margin:1.5rem !important}.mt-sm-5{margin-top:1.5rem !important}.mr-sm-5{margin-right:1.5rem !important}.mb-sm-5{margin-bottom:1.5rem !important}.ml-sm-5{margin-left:1.5rem !important}.mx-sm-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-sm-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-sm-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 31.25rem){.m-sm-6{margin:2rem !important}.mt-sm-6{margin-top:2rem !important}.mr-sm-6{margin-right:2rem !important}.mb-sm-6{margin-bottom:2rem !important}.ml-sm-6{margin-left:2rem !important}.mx-sm-6{margin-right:2rem !important;margin-left:2rem !important}.my-sm-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-sm-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 31.25rem){.m-sm-7{margin:2.5rem !important}.mt-sm-7{margin-top:2.5rem !important}.mr-sm-7{margin-right:2.5rem !important}.mb-sm-7{margin-bottom:2.5rem !important}.ml-sm-7{margin-left:2.5rem !important}.mx-sm-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-sm-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-sm-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 31.25rem){.m-sm-8{margin:3rem !important}.mt-sm-8{margin-top:3rem !important}.mr-sm-8{margin-right:3rem !important}.mb-sm-8{margin-bottom:3rem !important}.ml-sm-8{margin-left:3rem !important}.mx-sm-8{margin-right:3rem !important;margin-left:3rem !important}.my-sm-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-sm-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 31.25rem){.m-sm-9{margin:3.5rem !important}.mt-sm-9{margin-top:3.5rem !important}.mr-sm-9{margin-right:3.5rem !important}.mb-sm-9{margin-bottom:3.5rem !important}.ml-sm-9{margin-left:3.5rem !important}.mx-sm-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-sm-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-sm-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 31.25rem){.m-sm-10{margin:4rem !important}.mt-sm-10{margin-top:4rem !important}.mr-sm-10{margin-right:4rem !important}.mb-sm-10{margin-bottom:4rem !important}.ml-sm-10{margin-left:4rem !important}.mx-sm-10{margin-right:4rem !important;margin-left:4rem !important}.my-sm-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-sm-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 50rem){.m-md-0{margin:0 !important}.mt-md-0{margin-top:0 !important}.mr-md-0{margin-right:0 !important}.mb-md-0{margin-bottom:0 !important}.ml-md-0{margin-left:0 !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-md-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 50rem){.m-md-1{margin:0.25rem !important}.mt-md-1{margin-top:0.25rem !important}.mr-md-1{margin-right:0.25rem !important}.mb-md-1{margin-bottom:0.25rem !important}.ml-md-1{margin-left:0.25rem !important}.mx-md-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-md-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-md-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 50rem){.m-md-2{margin:0.5rem !important}.mt-md-2{margin-top:0.5rem !important}.mr-md-2{margin-right:0.5rem !important}.mb-md-2{margin-bottom:0.5rem !important}.ml-md-2{margin-left:0.5rem !important}.mx-md-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-md-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-md-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 50rem){.m-md-3{margin:0.75rem !important}.mt-md-3{margin-top:0.75rem !important}.mr-md-3{margin-right:0.75rem !important}.mb-md-3{margin-bottom:0.75rem !important}.ml-md-3{margin-left:0.75rem !important}.mx-md-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-md-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-md-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 50rem){.m-md-4{margin:1rem !important}.mt-md-4{margin-top:1rem !important}.mr-md-4{margin-right:1rem !important}.mb-md-4{margin-bottom:1rem !important}.ml-md-4{margin-left:1rem !important}.mx-md-4{margin-right:1rem !important;margin-left:1rem !important}.my-md-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-md-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 50rem){.m-md-5{margin:1.5rem !important}.mt-md-5{margin-top:1.5rem !important}.mr-md-5{margin-right:1.5rem !important}.mb-md-5{margin-bottom:1.5rem !important}.ml-md-5{margin-left:1.5rem !important}.mx-md-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-md-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-md-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 50rem){.m-md-6{margin:2rem !important}.mt-md-6{margin-top:2rem !important}.mr-md-6{margin-right:2rem !important}.mb-md-6{margin-bottom:2rem !important}.ml-md-6{margin-left:2rem !important}.mx-md-6{margin-right:2rem !important;margin-left:2rem !important}.my-md-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-md-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 50rem){.m-md-7{margin:2.5rem !important}.mt-md-7{margin-top:2.5rem !important}.mr-md-7{margin-right:2.5rem !important}.mb-md-7{margin-bottom:2.5rem !important}.ml-md-7{margin-left:2.5rem !important}.mx-md-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-md-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-md-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 50rem){.m-md-8{margin:3rem !important}.mt-md-8{margin-top:3rem !important}.mr-md-8{margin-right:3rem !important}.mb-md-8{margin-bottom:3rem !important}.ml-md-8{margin-left:3rem !important}.mx-md-8{margin-right:3rem !important;margin-left:3rem !important}.my-md-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-md-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 50rem){.m-md-9{margin:3.5rem !important}.mt-md-9{margin-top:3.5rem !important}.mr-md-9{margin-right:3.5rem !important}.mb-md-9{margin-bottom:3.5rem !important}.ml-md-9{margin-left:3.5rem !important}.mx-md-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-md-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-md-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 50rem){.m-md-10{margin:4rem !important}.mt-md-10{margin-top:4rem !important}.mr-md-10{margin-right:4rem !important}.mb-md-10{margin-bottom:4rem !important}.ml-md-10{margin-left:4rem !important}.mx-md-10{margin-right:4rem !important;margin-left:4rem !important}.my-md-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-md-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 66.5rem){.m-lg-0{margin:0 !important}.mt-lg-0{margin-top:0 !important}.mr-lg-0{margin-right:0 !important}.mb-lg-0{margin-bottom:0 !important}.ml-lg-0{margin-left:0 !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-lg-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 66.5rem){.m-lg-1{margin:0.25rem !important}.mt-lg-1{margin-top:0.25rem !important}.mr-lg-1{margin-right:0.25rem !important}.mb-lg-1{margin-bottom:0.25rem !important}.ml-lg-1{margin-left:0.25rem !important}.mx-lg-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-lg-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-lg-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 66.5rem){.m-lg-2{margin:0.5rem !important}.mt-lg-2{margin-top:0.5rem !important}.mr-lg-2{margin-right:0.5rem !important}.mb-lg-2{margin-bottom:0.5rem !important}.ml-lg-2{margin-left:0.5rem !important}.mx-lg-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-lg-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-lg-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 66.5rem){.m-lg-3{margin:0.75rem !important}.mt-lg-3{margin-top:0.75rem !important}.mr-lg-3{margin-right:0.75rem !important}.mb-lg-3{margin-bottom:0.75rem !important}.ml-lg-3{margin-left:0.75rem !important}.mx-lg-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-lg-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-lg-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 66.5rem){.m-lg-4{margin:1rem !important}.mt-lg-4{margin-top:1rem !important}.mr-lg-4{margin-right:1rem !important}.mb-lg-4{margin-bottom:1rem !important}.ml-lg-4{margin-left:1rem !important}.mx-lg-4{margin-right:1rem !important;margin-left:1rem !important}.my-lg-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-lg-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 66.5rem){.m-lg-5{margin:1.5rem !important}.mt-lg-5{margin-top:1.5rem !important}.mr-lg-5{margin-right:1.5rem !important}.mb-lg-5{margin-bottom:1.5rem !important}.ml-lg-5{margin-left:1.5rem !important}.mx-lg-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-lg-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-lg-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 66.5rem){.m-lg-6{margin:2rem !important}.mt-lg-6{margin-top:2rem !important}.mr-lg-6{margin-right:2rem !important}.mb-lg-6{margin-bottom:2rem !important}.ml-lg-6{margin-left:2rem !important}.mx-lg-6{margin-right:2rem !important;margin-left:2rem !important}.my-lg-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-lg-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 66.5rem){.m-lg-7{margin:2.5rem !important}.mt-lg-7{margin-top:2.5rem !important}.mr-lg-7{margin-right:2.5rem !important}.mb-lg-7{margin-bottom:2.5rem !important}.ml-lg-7{margin-left:2.5rem !important}.mx-lg-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-lg-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-lg-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 66.5rem){.m-lg-8{margin:3rem !important}.mt-lg-8{margin-top:3rem !important}.mr-lg-8{margin-right:3rem !important}.mb-lg-8{margin-bottom:3rem !important}.ml-lg-8{margin-left:3rem !important}.mx-lg-8{margin-right:3rem !important;margin-left:3rem !important}.my-lg-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-lg-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 66.5rem){.m-lg-9{margin:3.5rem !important}.mt-lg-9{margin-top:3.5rem !important}.mr-lg-9{margin-right:3.5rem !important}.mb-lg-9{margin-bottom:3.5rem !important}.ml-lg-9{margin-left:3.5rem !important}.mx-lg-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-lg-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-lg-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 66.5rem){.m-lg-10{margin:4rem !important}.mt-lg-10{margin-top:4rem !important}.mr-lg-10{margin-right:4rem !important}.mb-lg-10{margin-bottom:4rem !important}.ml-lg-10{margin-left:4rem !important}.mx-lg-10{margin-right:4rem !important;margin-left:4rem !important}.my-lg-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-lg-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 87.5rem){.m-xl-0{margin:0 !important}.mt-xl-0{margin-top:0 !important}.mr-xl-0{margin-right:0 !important}.mb-xl-0{margin-bottom:0 !important}.ml-xl-0{margin-left:0 !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-xl-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 87.5rem){.m-xl-1{margin:0.25rem !important}.mt-xl-1{margin-top:0.25rem !important}.mr-xl-1{margin-right:0.25rem !important}.mb-xl-1{margin-bottom:0.25rem !important}.ml-xl-1{margin-left:0.25rem !important}.mx-xl-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-xl-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-xl-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 87.5rem){.m-xl-2{margin:0.5rem !important}.mt-xl-2{margin-top:0.5rem !important}.mr-xl-2{margin-right:0.5rem !important}.mb-xl-2{margin-bottom:0.5rem !important}.ml-xl-2{margin-left:0.5rem !important}.mx-xl-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-xl-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-xl-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 87.5rem){.m-xl-3{margin:0.75rem !important}.mt-xl-3{margin-top:0.75rem !important}.mr-xl-3{margin-right:0.75rem !important}.mb-xl-3{margin-bottom:0.75rem !important}.ml-xl-3{margin-left:0.75rem !important}.mx-xl-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-xl-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-xl-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 87.5rem){.m-xl-4{margin:1rem !important}.mt-xl-4{margin-top:1rem !important}.mr-xl-4{margin-right:1rem !important}.mb-xl-4{margin-bottom:1rem !important}.ml-xl-4{margin-left:1rem !important}.mx-xl-4{margin-right:1rem !important;margin-left:1rem !important}.my-xl-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-xl-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 87.5rem){.m-xl-5{margin:1.5rem !important}.mt-xl-5{margin-top:1.5rem !important}.mr-xl-5{margin-right:1.5rem !important}.mb-xl-5{margin-bottom:1.5rem !important}.ml-xl-5{margin-left:1.5rem !important}.mx-xl-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-xl-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-xl-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 87.5rem){.m-xl-6{margin:2rem !important}.mt-xl-6{margin-top:2rem !important}.mr-xl-6{margin-right:2rem !important}.mb-xl-6{margin-bottom:2rem !important}.ml-xl-6{margin-left:2rem !important}.mx-xl-6{margin-right:2rem !important;margin-left:2rem !important}.my-xl-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-xl-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 87.5rem){.m-xl-7{margin:2.5rem !important}.mt-xl-7{margin-top:2.5rem !important}.mr-xl-7{margin-right:2.5rem !important}.mb-xl-7{margin-bottom:2.5rem !important}.ml-xl-7{margin-left:2.5rem !important}.mx-xl-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-xl-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-xl-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 87.5rem){.m-xl-8{margin:3rem !important}.mt-xl-8{margin-top:3rem !important}.mr-xl-8{margin-right:3rem !important}.mb-xl-8{margin-bottom:3rem !important}.ml-xl-8{margin-left:3rem !important}.mx-xl-8{margin-right:3rem !important;margin-left:3rem !important}.my-xl-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-xl-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 87.5rem){.m-xl-9{margin:3.5rem !important}.mt-xl-9{margin-top:3.5rem !important}.mr-xl-9{margin-right:3.5rem !important}.mb-xl-9{margin-bottom:3.5rem !important}.ml-xl-9{margin-left:3.5rem !important}.mx-xl-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-xl-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-xl-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 87.5rem){.m-xl-10{margin:4rem !important}.mt-xl-10{margin-top:4rem !important}.mr-xl-10{margin-right:4rem !important}.mb-xl-10{margin-bottom:4rem !important}.ml-xl-10{margin-left:4rem !important}.mx-xl-10{margin-right:4rem !important;margin-left:4rem !important}.my-xl-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-xl-10{margin-right:-4rem !important;margin-left:-4rem !important}}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-right:0 !important;padding-left:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:0.25rem !important}.pt-1{padding-top:0.25rem !important}.pr-1{padding-right:0.25rem !important}.pb-1{padding-bottom:0.25rem !important}.pl-1{padding-left:0.25rem !important}.px-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-2{padding:0.5rem !important}.pt-2{padding-top:0.5rem !important}.pr-2{padding-right:0.5rem !important}.pb-2{padding-bottom:0.5rem !important}.pl-2{padding-left:0.5rem !important}.px-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-3{padding:0.75rem !important}.pt-3{padding-top:0.75rem !important}.pr-3{padding-right:0.75rem !important}.pb-3{padding-bottom:0.75rem !important}.pl-3{padding-left:0.75rem !important}.px-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-4{padding:1rem !important}.pt-4{padding-top:1rem !important}.pr-4{padding-right:1rem !important}.pb-4{padding-bottom:1rem !important}.pl-4{padding-left:1rem !important}.px-4{padding-right:1rem !important;padding-left:1rem !important}.py-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-5{padding:1.5rem !important}.pt-5{padding-top:1.5rem !important}.pr-5{padding-right:1.5rem !important}.pb-5{padding-bottom:1.5rem !important}.pl-5{padding-left:1.5rem !important}.px-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-6{padding:2rem !important}.pt-6{padding-top:2rem !important}.pr-6{padding-right:2rem !important}.pb-6{padding-bottom:2rem !important}.pl-6{padding-left:2rem !important}.px-6{padding-right:2rem !important;padding-left:2rem !important}.py-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-7{padding:2.5rem !important}.pt-7{padding-top:2.5rem !important}.pr-7{padding-right:2.5rem !important}.pb-7{padding-bottom:2.5rem !important}.pl-7{padding-left:2.5rem !important}.px-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-8{padding:3rem !important}.pt-8{padding-top:3rem !important}.pr-8{padding-right:3rem !important}.pb-8{padding-bottom:3rem !important}.pl-8{padding-left:3rem !important}.px-8{padding-right:3rem !important;padding-left:3rem !important}.py-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-9{padding:3.5rem !important}.pt-9{padding-top:3.5rem !important}.pr-9{padding-right:3.5rem !important}.pb-9{padding-bottom:3.5rem !important}.pl-9{padding-left:3.5rem !important}.px-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-10{padding:4rem !important}.pt-10{padding-top:4rem !important}.pr-10{padding-right:4rem !important}.pb-10{padding-bottom:4rem !important}.pl-10{padding-left:4rem !important}.px-10{padding-right:4rem !important;padding-left:4rem !important}.py-10{padding-top:4rem !important;padding-bottom:4rem !important}@media(min-width: 20rem){.p-xs-0{padding:0 !important}.pt-xs-0{padding-top:0 !important}.pr-xs-0{padding-right:0 !important}.pb-xs-0{padding-bottom:0 !important}.pl-xs-0{padding-left:0 !important}.px-xs-0{padding-right:0 !important;padding-left:0 !important}.py-xs-0{padding-top:0 !important;padding-bottom:0 !important}.p-xs-1{padding:0.25rem !important}.pt-xs-1{padding-top:0.25rem !important}.pr-xs-1{padding-right:0.25rem !important}.pb-xs-1{padding-bottom:0.25rem !important}.pl-xs-1{padding-left:0.25rem !important}.px-xs-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-xs-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-xs-2{padding:0.5rem !important}.pt-xs-2{padding-top:0.5rem !important}.pr-xs-2{padding-right:0.5rem !important}.pb-xs-2{padding-bottom:0.5rem !important}.pl-xs-2{padding-left:0.5rem !important}.px-xs-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-xs-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-xs-3{padding:0.75rem !important}.pt-xs-3{padding-top:0.75rem !important}.pr-xs-3{padding-right:0.75rem !important}.pb-xs-3{padding-bottom:0.75rem !important}.pl-xs-3{padding-left:0.75rem !important}.px-xs-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-xs-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-xs-4{padding:1rem !important}.pt-xs-4{padding-top:1rem !important}.pr-xs-4{padding-right:1rem !important}.pb-xs-4{padding-bottom:1rem !important}.pl-xs-4{padding-left:1rem !important}.px-xs-4{padding-right:1rem !important;padding-left:1rem !important}.py-xs-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-xs-5{padding:1.5rem !important}.pt-xs-5{padding-top:1.5rem !important}.pr-xs-5{padding-right:1.5rem !important}.pb-xs-5{padding-bottom:1.5rem !important}.pl-xs-5{padding-left:1.5rem !important}.px-xs-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-xs-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-xs-6{padding:2rem !important}.pt-xs-6{padding-top:2rem !important}.pr-xs-6{padding-right:2rem !important}.pb-xs-6{padding-bottom:2rem !important}.pl-xs-6{padding-left:2rem !important}.px-xs-6{padding-right:2rem !important;padding-left:2rem !important}.py-xs-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-xs-7{padding:2.5rem !important}.pt-xs-7{padding-top:2.5rem !important}.pr-xs-7{padding-right:2.5rem !important}.pb-xs-7{padding-bottom:2.5rem !important}.pl-xs-7{padding-left:2.5rem !important}.px-xs-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-xs-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-xs-8{padding:3rem !important}.pt-xs-8{padding-top:3rem !important}.pr-xs-8{padding-right:3rem !important}.pb-xs-8{padding-bottom:3rem !important}.pl-xs-8{padding-left:3rem !important}.px-xs-8{padding-right:3rem !important;padding-left:3rem !important}.py-xs-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-xs-9{padding:3.5rem !important}.pt-xs-9{padding-top:3.5rem !important}.pr-xs-9{padding-right:3.5rem !important}.pb-xs-9{padding-bottom:3.5rem !important}.pl-xs-9{padding-left:3.5rem !important}.px-xs-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-xs-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-xs-10{padding:4rem !important}.pt-xs-10{padding-top:4rem !important}.pr-xs-10{padding-right:4rem !important}.pb-xs-10{padding-bottom:4rem !important}.pl-xs-10{padding-left:4rem !important}.px-xs-10{padding-right:4rem !important;padding-left:4rem !important}.py-xs-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 31.25rem){.p-sm-0{padding:0 !important}.pt-sm-0{padding-top:0 !important}.pr-sm-0{padding-right:0 !important}.pb-sm-0{padding-bottom:0 !important}.pl-sm-0{padding-left:0 !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.p-sm-1{padding:0.25rem !important}.pt-sm-1{padding-top:0.25rem !important}.pr-sm-1{padding-right:0.25rem !important}.pb-sm-1{padding-bottom:0.25rem !important}.pl-sm-1{padding-left:0.25rem !important}.px-sm-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-sm-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-sm-2{padding:0.5rem !important}.pt-sm-2{padding-top:0.5rem !important}.pr-sm-2{padding-right:0.5rem !important}.pb-sm-2{padding-bottom:0.5rem !important}.pl-sm-2{padding-left:0.5rem !important}.px-sm-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-sm-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-sm-3{padding:0.75rem !important}.pt-sm-3{padding-top:0.75rem !important}.pr-sm-3{padding-right:0.75rem !important}.pb-sm-3{padding-bottom:0.75rem !important}.pl-sm-3{padding-left:0.75rem !important}.px-sm-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-sm-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-sm-4{padding:1rem !important}.pt-sm-4{padding-top:1rem !important}.pr-sm-4{padding-right:1rem !important}.pb-sm-4{padding-bottom:1rem !important}.pl-sm-4{padding-left:1rem !important}.px-sm-4{padding-right:1rem !important;padding-left:1rem !important}.py-sm-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-sm-5{padding:1.5rem !important}.pt-sm-5{padding-top:1.5rem !important}.pr-sm-5{padding-right:1.5rem !important}.pb-sm-5{padding-bottom:1.5rem !important}.pl-sm-5{padding-left:1.5rem !important}.px-sm-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-sm-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-sm-6{padding:2rem !important}.pt-sm-6{padding-top:2rem !important}.pr-sm-6{padding-right:2rem !important}.pb-sm-6{padding-bottom:2rem !important}.pl-sm-6{padding-left:2rem !important}.px-sm-6{padding-right:2rem !important;padding-left:2rem !important}.py-sm-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-sm-7{padding:2.5rem !important}.pt-sm-7{padding-top:2.5rem !important}.pr-sm-7{padding-right:2.5rem !important}.pb-sm-7{padding-bottom:2.5rem !important}.pl-sm-7{padding-left:2.5rem !important}.px-sm-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-sm-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-sm-8{padding:3rem !important}.pt-sm-8{padding-top:3rem !important}.pr-sm-8{padding-right:3rem !important}.pb-sm-8{padding-bottom:3rem !important}.pl-sm-8{padding-left:3rem !important}.px-sm-8{padding-right:3rem !important;padding-left:3rem !important}.py-sm-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-sm-9{padding:3.5rem !important}.pt-sm-9{padding-top:3.5rem !important}.pr-sm-9{padding-right:3.5rem !important}.pb-sm-9{padding-bottom:3.5rem !important}.pl-sm-9{padding-left:3.5rem !important}.px-sm-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-sm-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-sm-10{padding:4rem !important}.pt-sm-10{padding-top:4rem !important}.pr-sm-10{padding-right:4rem !important}.pb-sm-10{padding-bottom:4rem !important}.pl-sm-10{padding-left:4rem !important}.px-sm-10{padding-right:4rem !important;padding-left:4rem !important}.py-sm-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 50rem){.p-md-0{padding:0 !important}.pt-md-0{padding-top:0 !important}.pr-md-0{padding-right:0 !important}.pb-md-0{padding-bottom:0 !important}.pl-md-0{padding-left:0 !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.p-md-1{padding:0.25rem !important}.pt-md-1{padding-top:0.25rem !important}.pr-md-1{padding-right:0.25rem !important}.pb-md-1{padding-bottom:0.25rem !important}.pl-md-1{padding-left:0.25rem !important}.px-md-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-md-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-md-2{padding:0.5rem !important}.pt-md-2{padding-top:0.5rem !important}.pr-md-2{padding-right:0.5rem !important}.pb-md-2{padding-bottom:0.5rem !important}.pl-md-2{padding-left:0.5rem !important}.px-md-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-md-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-md-3{padding:0.75rem !important}.pt-md-3{padding-top:0.75rem !important}.pr-md-3{padding-right:0.75rem !important}.pb-md-3{padding-bottom:0.75rem !important}.pl-md-3{padding-left:0.75rem !important}.px-md-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-md-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-md-4{padding:1rem !important}.pt-md-4{padding-top:1rem !important}.pr-md-4{padding-right:1rem !important}.pb-md-4{padding-bottom:1rem !important}.pl-md-4{padding-left:1rem !important}.px-md-4{padding-right:1rem !important;padding-left:1rem !important}.py-md-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-md-5{padding:1.5rem !important}.pt-md-5{padding-top:1.5rem !important}.pr-md-5{padding-right:1.5rem !important}.pb-md-5{padding-bottom:1.5rem !important}.pl-md-5{padding-left:1.5rem !important}.px-md-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-md-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-md-6{padding:2rem !important}.pt-md-6{padding-top:2rem !important}.pr-md-6{padding-right:2rem !important}.pb-md-6{padding-bottom:2rem !important}.pl-md-6{padding-left:2rem !important}.px-md-6{padding-right:2rem !important;padding-left:2rem !important}.py-md-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-md-7{padding:2.5rem !important}.pt-md-7{padding-top:2.5rem !important}.pr-md-7{padding-right:2.5rem !important}.pb-md-7{padding-bottom:2.5rem !important}.pl-md-7{padding-left:2.5rem !important}.px-md-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-md-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-md-8{padding:3rem !important}.pt-md-8{padding-top:3rem !important}.pr-md-8{padding-right:3rem !important}.pb-md-8{padding-bottom:3rem !important}.pl-md-8{padding-left:3rem !important}.px-md-8{padding-right:3rem !important;padding-left:3rem !important}.py-md-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-md-9{padding:3.5rem !important}.pt-md-9{padding-top:3.5rem !important}.pr-md-9{padding-right:3.5rem !important}.pb-md-9{padding-bottom:3.5rem !important}.pl-md-9{padding-left:3.5rem !important}.px-md-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-md-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-md-10{padding:4rem !important}.pt-md-10{padding-top:4rem !important}.pr-md-10{padding-right:4rem !important}.pb-md-10{padding-bottom:4rem !important}.pl-md-10{padding-left:4rem !important}.px-md-10{padding-right:4rem !important;padding-left:4rem !important}.py-md-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 66.5rem){.p-lg-0{padding:0 !important}.pt-lg-0{padding-top:0 !important}.pr-lg-0{padding-right:0 !important}.pb-lg-0{padding-bottom:0 !important}.pl-lg-0{padding-left:0 !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.p-lg-1{padding:0.25rem !important}.pt-lg-1{padding-top:0.25rem !important}.pr-lg-1{padding-right:0.25rem !important}.pb-lg-1{padding-bottom:0.25rem !important}.pl-lg-1{padding-left:0.25rem !important}.px-lg-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-lg-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-lg-2{padding:0.5rem !important}.pt-lg-2{padding-top:0.5rem !important}.pr-lg-2{padding-right:0.5rem !important}.pb-lg-2{padding-bottom:0.5rem !important}.pl-lg-2{padding-left:0.5rem !important}.px-lg-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-lg-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-lg-3{padding:0.75rem !important}.pt-lg-3{padding-top:0.75rem !important}.pr-lg-3{padding-right:0.75rem !important}.pb-lg-3{padding-bottom:0.75rem !important}.pl-lg-3{padding-left:0.75rem !important}.px-lg-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-lg-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-lg-4{padding:1rem !important}.pt-lg-4{padding-top:1rem !important}.pr-lg-4{padding-right:1rem !important}.pb-lg-4{padding-bottom:1rem !important}.pl-lg-4{padding-left:1rem !important}.px-lg-4{padding-right:1rem !important;padding-left:1rem !important}.py-lg-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-lg-5{padding:1.5rem !important}.pt-lg-5{padding-top:1.5rem !important}.pr-lg-5{padding-right:1.5rem !important}.pb-lg-5{padding-bottom:1.5rem !important}.pl-lg-5{padding-left:1.5rem !important}.px-lg-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-lg-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-lg-6{padding:2rem !important}.pt-lg-6{padding-top:2rem !important}.pr-lg-6{padding-right:2rem !important}.pb-lg-6{padding-bottom:2rem !important}.pl-lg-6{padding-left:2rem !important}.px-lg-6{padding-right:2rem !important;padding-left:2rem !important}.py-lg-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-lg-7{padding:2.5rem !important}.pt-lg-7{padding-top:2.5rem !important}.pr-lg-7{padding-right:2.5rem !important}.pb-lg-7{padding-bottom:2.5rem !important}.pl-lg-7{padding-left:2.5rem !important}.px-lg-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-lg-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-lg-8{padding:3rem !important}.pt-lg-8{padding-top:3rem !important}.pr-lg-8{padding-right:3rem !important}.pb-lg-8{padding-bottom:3rem !important}.pl-lg-8{padding-left:3rem !important}.px-lg-8{padding-right:3rem !important;padding-left:3rem !important}.py-lg-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-lg-9{padding:3.5rem !important}.pt-lg-9{padding-top:3.5rem !important}.pr-lg-9{padding-right:3.5rem !important}.pb-lg-9{padding-bottom:3.5rem !important}.pl-lg-9{padding-left:3.5rem !important}.px-lg-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-lg-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-lg-10{padding:4rem !important}.pt-lg-10{padding-top:4rem !important}.pr-lg-10{padding-right:4rem !important}.pb-lg-10{padding-bottom:4rem !important}.pl-lg-10{padding-left:4rem !important}.px-lg-10{padding-right:4rem !important;padding-left:4rem !important}.py-lg-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 87.5rem){.p-xl-0{padding:0 !important}.pt-xl-0{padding-top:0 !important}.pr-xl-0{padding-right:0 !important}.pb-xl-0{padding-bottom:0 !important}.pl-xl-0{padding-left:0 !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.p-xl-1{padding:0.25rem !important}.pt-xl-1{padding-top:0.25rem !important}.pr-xl-1{padding-right:0.25rem !important}.pb-xl-1{padding-bottom:0.25rem !important}.pl-xl-1{padding-left:0.25rem !important}.px-xl-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-xl-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-xl-2{padding:0.5rem !important}.pt-xl-2{padding-top:0.5rem !important}.pr-xl-2{padding-right:0.5rem !important}.pb-xl-2{padding-bottom:0.5rem !important}.pl-xl-2{padding-left:0.5rem !important}.px-xl-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-xl-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-xl-3{padding:0.75rem !important}.pt-xl-3{padding-top:0.75rem !important}.pr-xl-3{padding-right:0.75rem !important}.pb-xl-3{padding-bottom:0.75rem !important}.pl-xl-3{padding-left:0.75rem !important}.px-xl-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-xl-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-xl-4{padding:1rem !important}.pt-xl-4{padding-top:1rem !important}.pr-xl-4{padding-right:1rem !important}.pb-xl-4{padding-bottom:1rem !important}.pl-xl-4{padding-left:1rem !important}.px-xl-4{padding-right:1rem !important;padding-left:1rem !important}.py-xl-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-xl-5{padding:1.5rem !important}.pt-xl-5{padding-top:1.5rem !important}.pr-xl-5{padding-right:1.5rem !important}.pb-xl-5{padding-bottom:1.5rem !important}.pl-xl-5{padding-left:1.5rem !important}.px-xl-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-xl-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-xl-6{padding:2rem !important}.pt-xl-6{padding-top:2rem !important}.pr-xl-6{padding-right:2rem !important}.pb-xl-6{padding-bottom:2rem !important}.pl-xl-6{padding-left:2rem !important}.px-xl-6{padding-right:2rem !important;padding-left:2rem !important}.py-xl-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-xl-7{padding:2.5rem !important}.pt-xl-7{padding-top:2.5rem !important}.pr-xl-7{padding-right:2.5rem !important}.pb-xl-7{padding-bottom:2.5rem !important}.pl-xl-7{padding-left:2.5rem !important}.px-xl-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-xl-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-xl-8{padding:3rem !important}.pt-xl-8{padding-top:3rem !important}.pr-xl-8{padding-right:3rem !important}.pb-xl-8{padding-bottom:3rem !important}.pl-xl-8{padding-left:3rem !important}.px-xl-8{padding-right:3rem !important;padding-left:3rem !important}.py-xl-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-xl-9{padding:3.5rem !important}.pt-xl-9{padding-top:3.5rem !important}.pr-xl-9{padding-right:3.5rem !important}.pb-xl-9{padding-bottom:3.5rem !important}.pl-xl-9{padding-left:3.5rem !important}.px-xl-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-xl-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-xl-10{padding:4rem !important}.pt-xl-10{padding-top:4rem !important}.pr-xl-10{padding-right:4rem !important}.pb-xl-10{padding-bottom:4rem !important}.pl-xl-10{padding-left:4rem !important}.px-xl-10{padding-right:4rem !important;padding-left:4rem !important}.py-xl-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media print{.site-footer,.site-button,#edit-this-page,#back-to-top,.site-nav,.main-header{display:none !important}.side-bar{width:100%;height:auto;border-right:0 !important}.site-header{border-bottom:1px solid #44434d}.site-title{font-size:1rem !important;font-weight:700 !important}.text-small{font-size:8pt !important}pre.highlight{border:1px solid #44434d}.main{max-width:none;margin-left:0}}a.skip-to-main{left:-999px;position:absolute;top:auto;width:1px;height:1px;overflow:hidden;z-index:-999}a.skip-to-main:focus,a.skip-to-main:active{color:#2c84fa;background-color:#27262b;left:auto;top:auto;width:30%;height:auto;overflow:auto;margin:10px 35%;padding:5px;border-radius:15px;border:4px solid #264caf;text-align:center;font-size:1.2em;z-index:999}div.opaque{background-color:#27262b}/*# sourceMappingURL=just-the-docs-dark.css.map */ \ No newline at end of file diff --git a/jekyll-backup/_site/assets/css/just-the-docs-dark.css.map b/jekyll-backup/_site/assets/css/just-the-docs-dark.css.map new file mode 100644 index 00000000..e9e4f0bb --- /dev/null +++ b/jekyll-backup/_site/assets/css/just-the-docs-dark.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/vendor/OneLightJekyll/syntax.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/vendor/OneDarkJekyll/syntax.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/vendor/normalize.scss/normalize.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/base.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/color_schemes/dark.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/_variables.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/content.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/navigation.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/labels.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/buttons.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_buttons.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/search.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/tables.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/code.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_colors.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_lists.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_spacing.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/print.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/skiptomain.scss","just-the-docs-dark.scss"],"names":[],"mappings":"CAEA,yBAEE,mBACA,cAGF,eACE,mBAGF,gBACE,mBAGF,cACE,cACA,kBAGF,gBACE,WACA,yBAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,kBAGF,eACE,gBAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,gBAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,iCACE,cAGF,8BACE,cC7QF,yBAEE,mBACA,cAGF,eACE,mBAGF,gBACE,mBAGF,cACE,cACA,kBAGF,gBACE,cACA,yBAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,kBAGF,eACE,gBAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,gBAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cCvQF,4EAUA,KACE,iBACA,sBAUF,KACE,SAOF,KACE,cAQF,GACE,cACA,eAWF,GACE,uBACA,SACA,iBAQF,IACE,sBACA,cAUF,EACE,+BAQF,YACE,mBACA,0BACA,iCAOF,SAEE,mBAQF,cAGE,sBACA,cAOF,MACE,cAQF,QAEE,cACA,cACA,kBACA,wBAGF,IACE,eAGF,IACE,WAUF,IACE,kBAWF,sCAKE,oBACA,eACA,iBACA,SAQF,aAGE,iBAQF,cAGE,oBAOF,gDAIE,kBAOF,wHAIE,kBACA,UAOF,4GAIE,8BAOF,SACE,2BAUF,OACE,sBACA,cACA,cACA,eACA,UACA,mBAOF,SACE,wBAOF,SACE,cAQF,6BAEE,sBACA,UAOF,kFAEE,YAQF,cACE,qBACA,oBAOF,yCACE,gBAQF,6BACE,kBACA,aAUF,QACE,cAOF,QACE,kBAUF,SACE,aAOF,SACE,aC1VF,MACE,aCJa,KDOf,EACE,sBAGF,KACE,uBEmBA,KACE,6BClBA,4BHHJ,KEyBI,2BFnBJ,KACE,YIfiB,gHJgBjB,kBACA,YIbiB,IJcjB,MIiBY,QJhBZ,iBIYY,QJXZ,yBAGF,mFAYE,aAGF,4BAOE,aACA,kBACA,gBACA,YI1CyB,KJ2CzB,MIjBY,QJoBd,EACE,eACA,kBAGF,EACE,MIlBS,QJmBT,qBAGF,eACE,0BACA,sBInCY,QJoCZ,0BAEA,qBACE,2CAIJ,KACE,YIvEiB,0CJwEjB,gBACA,YIvEiB,IJ0EnB,WAEE,SAGF,GACE,eAGF,IACE,eACA,YAGF,GACE,WACA,UACA,cACA,iBInEY,QJoEZ,SAIF,WACE,cAGA,qBACA,sBACA,kBACA,8BK7GF,UACE,UACA,aACA,eACA,iBD4BY,QDpBV,yBEZJ,UAOI,wBACA,eACA,MDwFW,QCvFX,YACA,+BACA,iDAZJ,UAgBI,yCACA,UD+EQ,SDpFR,yBEQF,gBAEI,YD2ES,SDrFX,2BEQF,gBAQI,uDAOF,6BACE,aACA,iBDLQ,QDpBV,yBEuBA,6BAKI,aACA,iBDTM,SCYR,sCACE,cFjCJ,yBEgCE,sCAII,cAOV,MACE,YF5CE,yBE2CJ,MAII,kBACA,UDyCY,OCrChB,mBACE,YDaK,KCZL,eDYK,KDvDL,cCuDK,KDtDL,aCsDK,KDlEH,yBEoDJ,mBFrCI,cCqDG,KDpDH,aCoDG,MDpEH,yBEoDJ,mBAOI,YDSG,KCRH,eDQG,MCJP,aACE,UACA,gCFlEE,yBEgEJ,aAKI,aACA,8BACA,ODmBY,SCfhB,oCAGE,WF9EE,2BE2EJ,oCAMI,MDGQ,SCCZ,UACE,aAEA,mBACE,cFzFA,yBEqFJ,UAQI,cACA,YDxBG,KCyBH,eD7BG,KC8BH,gBACA,eAIJ,aACE,aACA,WDbc,QCcd,mBFxGE,yBEqGJ,aAMI,ODjBY,QCkBZ,WDlBY,QCmBZ,iCAIJ,YACE,YACA,aACA,YACA,mBACA,YDrDK,OCsDL,eDtDK,OCuDL,MDnGY,QDVZ,cCuDK,KDtDL,aCsDK,KDlEH,yBEiHJ,YFlGI,cCqDG,KDpDH,aCoDG,MF/BL,YACE,8BCtCA,4BEiHJ,YHvEI,4BACA,YEhDuB,MDKvB,yBEiHJ,YAcI,YD/DG,MCgEH,eDhEG,OCqEL,WACE,WACA,YACA,gDACA,4BACA,gCACA,wBAIJ,aACE,aACA,YACA,QDhFK,KCiFL,mBFnJE,yBEuJF,0BACE,cAIJ,kBACE,qNAQF,mBACE,2JASF,KACE,kBACA,eDzGM,KC0GN,kBFlLE,yBE+KJ,KAMI,gBACA,kBAMJ,aACE,kBACA,SACA,OACA,YD9HK,KC+HL,eD/HK,KCgIL,MDlLY,QDLZ,cCuDK,KDtDL,aCsDK,KDlEH,yBE4LJ,aF7KI,cCqDG,KDpDH,aCoDG,MFvEL,aACE,8BCEA,4BE4LJ,aH1LI,6BCFA,yBE4LJ,aAaI,gBACA,kBAIJ,MACE,MD5IK,OC6IL,OD7IK,OC8IL,MDpLS,QEtCX,cACE,YFEoB,qJEOlB,gBAGF,gBACE,gBACA,uBAGF,kCAEE,mBAIA,4BACE,WF+CC,OE3CL,iBACE,qBACA,2BAEA,oBACE,kBAEA,4BACE,kBACA,SACA,YACA,MFfM,QEgBN,8BACA,+BJ1BN,4BACE,4BCRA,4BG2BE,4BJfF,8BCZA,4BG2BE,4BAUI,WAIJ,uBACE,0BAGE,kCACE,0CACA,8BAOV,iBACE,gBAGE,4BACE,kBACA,mBACA,MF7CM,QE8CN,YAMJ,sCACE,WAIJ,uCACE,kBACA,mBAKF,mBACE,aAGF,+BACE,gBAGF,iBACE,aACA,4BAGF,kCAEE,eAGF,iBACE,cACA,gBACA,iBAEA,wBACE,YAIJ,iBACE,cACA,gBACA,gBAmBE,wjBACE,aASF,6RAEE,aAKN,8BACE,kBACA,YACA,MFnFG,OEoFH,YACA,cFzFG,OE0FH,aF1FG,OE2FH,iBH1JA,yBGmJF,8BAUI,WACA,cAGF,kCACE,qBACA,WACA,YACA,MFxIK,QEyIL,kBAYF,kVACE,mBAIJ,sBACE,eAGF,8HAOE,kBACA,iBACA,oBAEA,6qCAKE,eAGF,gOACE,aAIJ,kWAWE,WF9JG,MG3EP,UACE,UACA,aACA,gBACA,gBAEA,yBACE,kBACA,SLoBF,yBACE,6BClBA,4BILF,yBL2BE,2BCtBA,yBDOF,yBACE,6BCRA,kDILF,yBLiBE,8BKPA,wCACE,cACA,WH+DC,KG9DD,YHuDC,OGtDD,eHsDC,OGrDD,mBAEE,cH0DD,KGzDC,aHqDD,KDlEH,yBIKA,wCAeI,WHgDD,KG/CC,mBAEE,cH6CH,KG5CG,aH4CH,MGrCD,qDACE,MHkCD,KGjCC,OHiCD,KGhCC,2BAGF,+CACE,gBACA,qBAGF,6FAEE,qNASJ,4CACE,kBAEE,QAGF,MHWC,KGVD,OHUC,KGTD,gBACA,MHjCK,QD7BP,yBIqDA,4CAYI,MHGD,KGFC,OHED,KGDC,gBAGF,kDACE,2JAQA,gDACE,wBAKN,mCACE,aACA,aHtBC,OGuBD,gBAEA,kDACE,kBAEA,iEACE,MH9EI,QGiFN,qEACE,MHlFI,QGwFR,uDAEI,yBAMJ,0CACE,cAMR,cACE,mBACA,gBACA,iBACA,yBACA,gCL/HA,cACE,8BCEA,4BIuHJ,cLrHI,6BCFA,yBIuHJ,cASI,mBACA,WH/DG,KGgEH,iBAEA,0BACE,cAMJ,2CACE,SAEA,qDACE,UAGE,mFACE,MHtHC,QGyHH,uFACE,MH1HC,QGmIX,SACE,YACA,gBLrKA,SACE,8BCEA,4BIgKJ,SL9JI,6BKmKF,uBACE,aACA,YACA,UACA,SACA,gBAGF,4BACE,qBACA,YACA,UACA,SJjLA,yBIgKJ,SAqBI,cHnHG,MDlEH,yBI2LJ,gBAEI,kBAIJ,qBACE,eACA,cHlIK,OGmIL,gBAGF,0BACE,mBL3MA,0BACE,8BCEA,4BIuMJ,0BLrMI,6BKyMF,kCACE,aAGF,iCACE,qBACA,aHjJG,MGkJH,YHlJG,MGmJH,MHnMU,QGoMV,YAIA,4CACE,WCpON,eAEE,gBNoEA,eACE,0BACA,YElEuB,KDKvB,4BKXJ,eN4EI,8BA5BF,wBACE,8BCtCA,4BKJJ,wBN8CI,4BACA,YEhDuB,MFgCzB,eACE,0BC5BA,4BKEJ,eN8BI,+BMzBJ,eAEE,gBACA,yBACA,oBNdA,eACE,8BCEA,4BKOJ,eNLI,6BMcJ,QACE,oBNVA,iBACE,4BCRA,4BKoBJ,iBNRI,8BAfF,cACE,8BCEA,4BKyBJ,cNvBI,6BALF,YACE,8BCEA,4BK8BJ,YN5BI,6BMgCJ,WACE,iEAGF,WACE,2BAGF,aACE,6BAGF,YACE,4BCvDF,iCAEE,qBACA,oBACA,aLoEK,MKnEL,YLmEK,MKlEL,MLiBM,KKhBN,yBACA,sBACA,iBL6BS,QK5BT,mBPLA,iCACE,8BCEA,4BMRJ,iCPUI,6BOKJ,oBACE,iBL2BU,QKxBZ,qBACE,iBLcW,QKXb,kBACE,iBL2BQ,QKxBV,qBACE,MLFY,QKGZ,iBLkBW,QMlDb,KACE,qBACA,sBACA,iBACA,SACA,oBACA,kBACA,gBACA,gBACA,MN+BS,QM9BT,qBACA,wBACA,eACA,iBNiBY,QMhBZ,eACA,cNyEc,IMxEd,WACE,qDAEF,gBAEA,WACE,qBACA,aACA,uCAGF,qCAEE,uCAGF,uCAEE,uDAGF,gFAIE,qBACA,uDAGF,uDAGE,uDACA,sBACA,2CAGF,oBACE,0CAKA,oEAEE,wBACA,eACA,sCACA,sBACA,gBAKN,aACE,MN/BS,QMgCT,yBACA,mCAEA,gHAIE,uDACA,qBACA,+BACA,mCAGF,mBACE,qBACA,aACA,WACE,oDAIJ,qDAEE,mCAIJ,aCnGE,MP0BM,KOzBN,iEACA,uIACA,WACE,qDAGF,uDAEE,MPiBI,KOhBJ,iEACA,uIAGF,+EAGE,iEACA,sBACA,2CAGF,4BACE,iEDgFJ,YCvGE,MP0BM,KOzBN,iEACA,wIACA,WACE,qDAGF,qDAEE,MPiBI,KOhBJ,iEACA,wIAGF,4EAGE,+DACA,sBACA,2CAGF,2BACE,iEDoFJ,UC3GE,MP0BM,KOzBN,kEACA,yIACA,WACE,qDAGF,iDAEE,MPiBI,KOhBJ,kEACA,yIAGF,sEAGE,kEACA,sBACA,2CAGF,yBACE,4CDwFJ,WC/GE,MP0BM,KOzBN,yDACA,qHACA,WACE,qDAGF,mDAEE,MPiBI,KOhBJ,yDACA,uHAGF,yEAGE,uDACA,sBACA,2CAGF,0BACE,sDD4FJ,WACE,gBACA,YACA,SACA,mBACA,aACA,gBACA,gBE3HF,QACE,kBACA,UACA,YACA,ORgFM,KQ/EN,QRuEK,MQtEL,gCTME,yBSZJ,QASI,6BACA,sBACA,uBACA,UACA,iBAIJ,mBACE,kBACA,UACA,OR8DK,KQ7DL,gBACA,cRmEc,IQlEd,WACE,qDAEF,+BTdE,yBSKJ,mBAYI,kBACA,WACA,URwEmB,QQvEnB,uBACA,gBACA,gBACA,6BAIJ,cACE,kBACA,WACA,YACA,gCACA,eACA,MRTY,QQUZ,iBRfY,QQgBZ,aACA,eACA,gBACA,cACA,gBTvCE,yBS2BJ,cAeI,gCACA,kBACA,iBRxBU,QQyBV,sCAGF,oBACE,UAEA,+CACE,MRvBK,QQ4BX,cACE,kBACA,aACA,YACA,aRKK,KDlEH,yBSyDJ,cAOI,aRIG,KQHH,sCAGF,2BACE,aACA,cACA,kBACA,MRxDU,QQ4Dd,gBACE,kBACA,OACA,aACA,WACA,6BACA,gBACA,iBRhEY,QQiEZ,2BRPc,IQQd,0BRRc,IQSd,WACE,qDTvFA,yBS4EJ,gBAeI,SACA,MRDmB,QQEnB,0CAIJ,qBACE,eACA,cRpCK,OQqCL,gBVnFA,qBACE,6BClBA,4BSiGJ,qBV3EI,2BCtBA,yBDOF,qBACE,6BCRA,kDSiGJ,qBVrFI,8BUgGJ,0BACE,UACA,SAGF,eACE,cACA,sBAEA,2CAEE,iBX1Ha,sCW8HjB,qBACE,cACA,YR7DK,MQ8DL,eR9DK,MDhEH,4BS2HJ,qBAMI,qBACA,UACA,cRnEG,MQoEH,oBAIJ,mBACE,aACA,mBACA,qBAEA,4CACE,WVvIF,4CACE,4BCRA,4BS6IF,4CVjIE,8BCZA,yBDHF,4CACE,+BCEA,kDS6IF,4CV3IE,6BUoJF,uCACE,MRrFG,KQsFH,ORtFG,KQuFH,aRzFG,MQ0FH,MR7HO,QQ8HP,cAGF,4CACE,cAIJ,uBACE,mBACA,qBAGF,uBACE,cACA,mBACA,gBACA,MR5JY,QQ6JZ,uBACA,mBV3LA,uBACE,8BCYA,4BSwKJ,uBVhLI,8BU0LJ,wBACE,cACA,YRpHK,MQqHL,eRrHK,MQsHL,aRpHK,KQqHL,YRvHK,MQwHL,MRxKY,QQyKZ,qBACA,YR9GO,UQ+GP,kBRzKY,QFrBZ,wBACE,8BCEA,4BSkLJ,wBVhLI,6BCFA,4BSkLJ,wBAaI,qBACA,UACA,aRjIG,MQkIH,cACA,oBAIJ,8CACE,WRzIK,OQ4IP,yBACE,iBAGF,kBACE,qBVzMA,kBACE,4BCRA,4BS+MJ,kBVnMI,8BUwMJ,eACE,eACA,MRpJK,KQqJL,ORrJK,KQsJL,aACA,MRlJK,OQmJL,ORnJK,OQoJL,iBRxMY,QQyMZ,qCACA,sBACA,WACE,qDAEF,mBACA,uBAGF,gBACE,eACA,MACA,OACA,UACA,QACA,SACA,gCACA,UACA,WACE,kDAMF,uBACE,eACA,MACA,OACA,WACA,YACA,UAGF,kCACE,ORvLI,KQwLJ,gBThQA,yBS8PF,kCAKI,MRxKiB,QQyKjB,WACE,sDAKN,6BACE,iBRxPU,QDnBV,yBS0QF,6BAII,qBT9QF,yBSkRF,6BAEI,oBAIJ,+BACE,cAGF,+BACE,WACA,YACA,UACA,WACE,sCTjSF,yBSuSA,qBACE,eACA,QACA,QAIJ,4BACE,YRvOI,KDxEJ,yBS8SF,4BAII,eC7TN,eACE,cACA,WACA,eACA,cT0EK,OSzEL,gBACA,cTkFc,ISjFd,WACE,qDAIJ,MACE,cACA,eACA,yBAGF,MAEE,iBACA,qBACA,iBTQY,QSPZ,0CACA,8BXNA,MACE,4BCRA,4BUOJ,MXKI,8BWKF,kCACE,cAOE,kDAEE,gBAGF,yBACE,eTkCD,OS3BL,SACE,gCC9CF,sBACE,mBACA,gBACA,iBbDoB,QaEpB,yBACA,cV+EY,IU1EhB,eACE,aVcY,QUqCd,oEAGE,aACA,cVMK,OULL,iBbjEsB,QakEtB,cVgBc,IUfd,gBACA,iCACA,kBACA,UAIA,yFACE,MVLG,OUMH,UACA,kBACA,MACA,QACA,4BACA,iBbjFoB,QakFpB,MVrDU,QUsDV,uBAEA,qGACE,KVzDQ,QU4DV,8GACE,qBACA,aACA,UAGF,2GACE,UAMF,2GACE,YACA,UASJ,oCACE,gBACA,QV7CG,OU8CH,SACA,SAGF,+DAEE,UACA,SACA,SAUJ,iBACE,aACA,cVlEK,OU2CL,6BACE,gBACA,QV7CG,OU8CH,SACA,SAGF,uDAEE,UACA,SACA,SAwBF,qDAEE,gBACA,QVjFG,OUkFH,SACA,SAQJ,0BACE,iBACA,SACA,SACA,gBAEA,2DAEE,YACA,UACA,iBb3KoB,Qa4KpB,SZ1KF,2DACE,8BCEA,4BWkKF,2DZhKE,6BY0KF,gCACE,UACA,cV7GG,OU8GH,aV9GG,OUiHL,8BACE,SACA,cAKJ,mCAEE,QV1HK,OU2HL,cV3HK,OU4HL,cACA,yBACA,cVlHc,IUoHd,4RAIE,kBACA,iBACA,+BACA,gCACA,8BACA,yBACA,0BAKJ,sBACE,UACA,yBACA,SAIF,yBAEE,Wb9NsB,QaiOpB,MbhOoB,QauOxB,eACE,WbzOsB,QcLxB,kBACE,yBAGF,kBACE,yBAGF,kBACE,yBAGF,kBACE,yBAGF,kBACE,yBAGF,kBACE,yBAGF,kBACE,yBAGF,kBACE,yBAGF,kBACE,yBAGF,eACE,yBAGF,eACE,yBAGF,eACE,yBAGF,eACE,yBAGF,gBACE,yBAGF,gBACE,yBAGF,gBACE,yBAGF,gBACE,yBAGF,iBACE,yBAGF,iBACE,yBAGF,iBACE,yBAGF,iBACE,yBAGF,iBACE,yBAGF,iBACE,yBAGF,iBACE,yBAGF,iBACE,yBAGF,cACE,yBAGF,cACE,yBAGF,cACE,yBAGF,cACE,yBAKF,gBACE,oCAGF,gBACE,oCAGF,gBACE,oCAGF,gBACE,oCAGF,gBACE,oCAGF,gBACE,oCAGF,gBACE,oCAGF,gBACE,oCAGF,gBACE,oCAGF,aACE,oCAGF,aACE,oCAGF,aACE,oCAGF,aACE,oCAGF,cACE,oCAGF,cACE,oCAGF,cACE,oCAGF,cACE,oCAGF,eACE,oCAGF,eACE,oCAGF,eACE,oCAGF,eACE,oCAGF,eACE,oCAGF,eACE,oCAGF,eACE,oCAGF,eACE,oCAGF,YACE,oCAGF,YACE,oCAGF,YACE,oCAGF,YACE,oCCvOF,SACE,yBAGF,QACE,wBAGF,UACE,0BAGF,gBACE,gCAGF,QACE,wBbPE,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBAQR,YACE,sBAGF,aACE,uBAGF,oBACE,sCAGF,kBACE,oCAGF,sBACE,yCAGF,qBACE,wCAKF,kBACE,mCAGF,gBACE,iCAGF,gBACE,iCAGF,qBACE,sCAGF,kBACE,mCAGF,aACE,8BdlGA,MACE,8BCYA,4BcZJ,MfII,8BAKF,MACE,8BCEA,4BcRJ,MfUI,6BAKF,MACE,4BCRA,4BcJJ,MfgBI,8BAKF,MACE,6BClBA,kCDsBA,2BAKF,MACE,0BC5BA,4BcIJ,Mf4BI,+BAKF,MACE,8BCtCA,4BcQJ,MfkCI,4BACA,YEhDuB,MFqDzB,MACE,4BACA,YEvDuB,KDKvB,4BcYJ,Mf0CI,2BAKF,MACE,0BACA,YElEuB,KDKvB,4BcgBJ,MfiDI,8BAKF,MACE,6BACA,YE7EuB,KDKvB,4BcoBJ,MfwDI,+BAKF,OACE,8BACA,YExFuB,KDKvB,4BcwBJ,Of+DI,2Be3DJ,QACE,2BAGF,QACE,2BAGF,QACE,2BAGF,QACE,2BAGF,MACE,yBAGF,YACE,YbxDiB,Ia2DnB,UACE,Yb1DyB,Ka6D3B,MACE,gCAGF,OACE,+BAGF,MACE,4BAGF,gBACE,oCC/EF,iBACE,qBACA,oBACA,2BAGE,4BACE,wBCLN,SACE,6BACA,4BAQA,KACE,oBAEF,MACE,wBAEF,MACE,0BAEF,MACE,2BAEF,MACE,yBAGF,MACE,0BACA,yBAGF,MACE,wBACA,2BAGF,OACE,2BACA,0BAEF,WACE,6BACA,4BAhCF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAGF,OACE,iCACA,gCAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAGF,OACE,iCACA,gCAEF,WACE,6BACA,4BAhCF,KACE,uBAEF,MACE,2BAEF,MACE,6BAEF,MACE,8BAEF,MACE,4BAGF,MACE,6BACA,4BAGF,MACE,2BACA,8BAGF,OACE,8BACA,6BAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,KACE,uBAEF,MACE,2BAEF,MACE,6BAEF,MACE,8BAEF,MACE,4BAGF,MACE,6BACA,4BAGF,MACE,2BACA,8BAGF,OACE,8BACA,6BAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,KACE,uBAEF,MACE,2BAEF,MACE,6BAEF,MACE,8BAEF,MACE,4BAGF,MACE,6BACA,4BAGF,MACE,2BACA,8BAGF,OACE,8BACA,6BAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,MACE,uBAEF,OACE,2BAEF,OACE,6BAEF,OACE,8BAEF,OACE,4BAGF,OACE,6BACA,4BAGF,OACE,2BACA,8BAGF,QACE,8BACA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CE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,4BgB6CE,SACE,uBAEF,UACE,2BAEF,UACE,6BAEF,UACE,8BAEF,UACE,4BAGF,UACE,6BACA,4BAGF,UACE,2BACA,8BAGF,WACE,8BACA,8BhBzEJ,yBgB6CE,QACE,oBAEF,SACE,wBAEF,SACE,0BAEF,SACE,2BAEF,SACE,yBAGF,SACE,0BACA,yBAGF,SACE,wBACA,2BAGF,UACE,2BACA,2BhBzEJ,yBgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BA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BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,2BgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,2BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,2BgB6CE,SACE,uBAEF,UACE,2BAEF,UACE,6BAEF,UACE,8BAEF,UACE,4BAGF,UACE,6BACA,4BAGF,UACE,2BACA,8BAGF,WACE,8BACA,8BAaN,KACE,qBAEF,MACE,yBAEF,MACE,2BAEF,MACE,4BAEF,MACE,0BAGF,MACE,2BACA,0BAGF,MACE,yBACA,4BAvBF,KACE,2BAEF,MACE,+BAEF,MACE,iCAEF,MACE,kCAEF,MACE,gCAGF,MACE,iCACA,gCAGF,MACE,+BACA,kCAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,2BAEF,MACE,+BAEF,MACE,iCAEF,MACE,kCAEF,MACE,gCAGF,MACE,iCACA,gCAGF,MACE,+BACA,kCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,MACE,wBAEF,OACE,4BAEF,OACE,8BAEF,OACE,+BAEF,OACE,6BAGF,OACE,8BACA,6BAGF,OACE,4BACA,+BhB7GA,yBgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,4BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,yBgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,2BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,2BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gCC3JR,aACE,8EAME,wBAGF,UACE,WACA,YACA,0BAGF,aACE,gCAGF,YACE,0BACA,2BAGF,YACE,yBAGF,cACE,yBAGF,MACE,eACA,eClCJ,eACE,YACA,kBACA,SACA,UACA,WACA,gBACA,aAGF,2CAEE,MjB4BS,QiB3BT,iBjBkBY,QiBjBZ,UACA,SACA,UACA,YACA,cACA,gBACA,YACA,mBACA,yBACA,kBACA,gBACA,YClBF,WACE,iBlBuBY","sourcesContent":["// Generated with OneLightJekyll applied to Atom's One Light theme\n\n.highlight,\npre.highlight {\n background: #f9f9f9;\n color: #383942;\n}\n\n.highlight pre {\n background: #f9f9f9;\n}\n\n.highlight .hll {\n background: #f9f9f9;\n}\n\n.highlight .c {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .err {\n color: #fff;\n background-color: #e05151;\n}\n\n.highlight .k {\n color: #a625a4;\n}\n\n.highlight .l {\n color: #50a04f;\n}\n\n.highlight .n {\n color: #383942;\n}\n\n.highlight .o {\n color: #383942;\n}\n\n.highlight .p {\n color: #383942;\n}\n\n.highlight .cm {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .cp {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .c1 {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .cs {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .ge {\n font-style: italic;\n}\n\n.highlight .gs {\n font-weight: 700;\n}\n\n.highlight .kc {\n color: #a625a4;\n}\n\n.highlight .kd {\n color: #a625a4;\n}\n\n.highlight .kn {\n color: #a625a4;\n}\n\n.highlight .kp {\n color: #a625a4;\n}\n\n.highlight .kr {\n color: #a625a4;\n}\n\n.highlight .kt {\n color: #a625a4;\n}\n\n.highlight .ld {\n color: #50a04f;\n}\n\n.highlight .m {\n color: #b66a00;\n}\n\n.highlight .s {\n color: #50a04f;\n}\n\n.highlight .na {\n color: #b66a00;\n}\n\n.highlight .nb {\n color: #ca7601;\n}\n\n.highlight .nc {\n color: #ca7601;\n}\n\n.highlight .no {\n color: #ca7601;\n}\n\n.highlight .nd {\n color: #ca7601;\n}\n\n.highlight .ni {\n color: #ca7601;\n}\n\n.highlight .ne {\n color: #ca7601;\n}\n\n.highlight .nf {\n color: #383942;\n}\n\n.highlight .nl {\n color: #ca7601;\n}\n\n.highlight .nn {\n color: #383942;\n}\n\n.highlight .nx {\n color: #383942;\n}\n\n.highlight .py {\n color: #ca7601;\n}\n\n.highlight .nt {\n color: #e35549;\n}\n\n.highlight .nv {\n color: #ca7601;\n}\n\n.highlight .ow {\n font-weight: 700;\n}\n\n.highlight .w {\n color: #f8f8f2;\n}\n\n.highlight .mf {\n color: #b66a00;\n}\n\n.highlight .mh {\n color: #b66a00;\n}\n\n.highlight .mi {\n color: #b66a00;\n}\n\n.highlight .mo {\n color: #b66a00;\n}\n\n.highlight .sb {\n color: #50a04f;\n}\n\n.highlight .sc {\n color: #50a04f;\n}\n\n.highlight .sd {\n color: #50a04f;\n}\n\n.highlight .s2 {\n color: #50a04f;\n}\n\n.highlight .se {\n color: #50a04f;\n}\n\n.highlight .sh {\n color: #50a04f;\n}\n\n.highlight .si {\n color: #50a04f;\n}\n\n.highlight .sx {\n color: #50a04f;\n}\n\n.highlight .sr {\n color: #0083bb;\n}\n\n.highlight .s1 {\n color: #50a04f;\n}\n\n.highlight .ss {\n color: #0083bb;\n}\n\n.highlight .bp {\n color: #ca7601;\n}\n\n.highlight .vc {\n color: #ca7601;\n}\n\n.highlight .vg {\n color: #ca7601;\n}\n\n.highlight .vi {\n color: #e35549;\n}\n\n.highlight .il {\n color: #b66a00;\n}\n\n.highlight .gu {\n color: #75715e;\n}\n\n.highlight .gd {\n color: #e05151;\n}\n\n.highlight .gi {\n color: #43d089;\n}\n\n.highlight .language-json .w + .s2 {\n color: #e35549;\n}\n\n.highlight .language-json .kc {\n color: #0083bb;\n}\n","// Generated with OneDarkJekyll applied to Atom's One Dark Vivid theme\n\n.highlight,\npre.highlight {\n background: #31343f;\n color: #dee2f7;\n}\n\n.highlight pre {\n background: #31343f;\n}\n\n.highlight .hll {\n background: #31343f;\n}\n\n.highlight .c {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .err {\n color: #960050;\n background-color: #1e0010;\n}\n\n.highlight .k {\n color: #e19ef5;\n}\n\n.highlight .l {\n color: #a3eea0;\n}\n\n.highlight .n {\n color: #dee2f7;\n}\n\n.highlight .o {\n color: #dee2f7;\n}\n\n.highlight .p {\n color: #dee2f7;\n}\n\n.highlight .cm {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .cp {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .c1 {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .cs {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .ge {\n font-style: italic;\n}\n\n.highlight .gs {\n font-weight: 700;\n}\n\n.highlight .kc {\n color: #e19ef5;\n}\n\n.highlight .kd {\n color: #e19ef5;\n}\n\n.highlight .kn {\n color: #e19ef5;\n}\n\n.highlight .kp {\n color: #e19ef5;\n}\n\n.highlight .kr {\n color: #e19ef5;\n}\n\n.highlight .kt {\n color: #e19ef5;\n}\n\n.highlight .ld {\n color: #a3eea0;\n}\n\n.highlight .m {\n color: #eddc96;\n}\n\n.highlight .s {\n color: #a3eea0;\n}\n\n.highlight .na {\n color: #eddc96;\n}\n\n.highlight .nb {\n color: #fdce68;\n}\n\n.highlight .nc {\n color: #fdce68;\n}\n\n.highlight .no {\n color: #fdce68;\n}\n\n.highlight .nd {\n color: #fdce68;\n}\n\n.highlight .ni {\n color: #fdce68;\n}\n\n.highlight .ne {\n color: #fdce68;\n}\n\n.highlight .nf {\n color: #dee2f7;\n}\n\n.highlight .nl {\n color: #fdce68;\n}\n\n.highlight .nn {\n color: #dee2f7;\n}\n\n.highlight .nx {\n color: #dee2f7;\n}\n\n.highlight .py {\n color: #fdce68;\n}\n\n.highlight .nt {\n color: #f9867b;\n}\n\n.highlight .nv {\n color: #fdce68;\n}\n\n.highlight .ow {\n font-weight: 700;\n}\n\n.highlight .w {\n color: #f8f8f2;\n}\n\n.highlight .mf {\n color: #eddc96;\n}\n\n.highlight .mh {\n color: #eddc96;\n}\n\n.highlight .mi {\n color: #eddc96;\n}\n\n.highlight .mo {\n color: #eddc96;\n}\n\n.highlight .sb {\n color: #a3eea0;\n}\n\n.highlight .sc {\n color: #a3eea0;\n}\n\n.highlight .sd {\n color: #a3eea0;\n}\n\n.highlight .s2 {\n color: #a3eea0;\n}\n\n.highlight .se {\n color: #a3eea0;\n}\n\n.highlight .sh {\n color: #a3eea0;\n}\n\n.highlight .si {\n color: #a3eea0;\n}\n\n.highlight .sx {\n color: #a3eea0;\n}\n\n.highlight .sr {\n color: #7be2f9;\n}\n\n.highlight .s1 {\n color: #a3eea0;\n}\n\n.highlight .ss {\n color: #7be2f9;\n}\n\n.highlight .bp {\n color: #fdce68;\n}\n\n.highlight .vc {\n color: #fdce68;\n}\n\n.highlight .vg {\n color: #fdce68;\n}\n\n.highlight .vi {\n color: #f9867b;\n}\n\n.highlight .il {\n color: #eddc96;\n}\n\n.highlight .gu {\n color: #75715e;\n}\n\n.highlight .gd {\n color: #f92672;\n}\n\n.highlight .gi {\n color: #a6e22e;\n}\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// Base element style overrides\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\n:root {\n color-scheme: $color-scheme;\n}\n\n* {\n box-sizing: border-box;\n}\n\nhtml {\n scroll-behavior: smooth;\n\n @include fs-4;\n}\n\nbody {\n font-family: $body-font-family;\n font-size: inherit;\n line-height: $body-line-height;\n color: $body-text-color;\n background-color: $body-background-color;\n overflow-wrap: break-word;\n}\n\nol,\nul,\ndl,\npre,\naddress,\nblockquote,\ntable,\ndiv,\nhr,\nform,\nfieldset,\nnoscript .table-wrapper {\n margin-top: 0;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n#toctitle {\n margin-top: 0;\n margin-bottom: 1em;\n font-weight: 500;\n line-height: $body-heading-line-height;\n color: $body-heading-color;\n}\n\np {\n margin-top: 1em;\n margin-bottom: 1em;\n}\n\na {\n color: $link-color;\n text-decoration: none;\n}\n\na:not([class]) {\n text-decoration: underline;\n text-decoration-color: $border-color;\n text-underline-offset: 2px;\n\n &:hover {\n text-decoration-color: rgba($link-color, 0.45);\n }\n}\n\ncode {\n font-family: $mono-font-family;\n font-size: 0.75em;\n line-height: $body-line-height;\n}\n\nfigure,\npre {\n margin: 0;\n}\n\nli {\n margin: 0.25em 0;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\nhr {\n height: 1px;\n padding: 0;\n margin: $sp-6 0;\n background-color: $border-color;\n border: 0;\n}\n\n// adds a GitHub-style sidebar to blockquotes\nblockquote {\n margin: 10px 0;\n\n // resets user-agent stylesheets for blockquotes\n margin-block-start: 0;\n margin-inline-start: 0;\n padding-left: 1rem;\n border-left: 3px solid $border-color;\n}\n","$color-scheme: dark;\n$body-background-color: $grey-dk-300;\n$body-heading-color: $grey-lt-000;\n$body-text-color: $grey-lt-300;\n$link-color: $blue-000;\n$nav-child-link-color: $grey-dk-000;\n$sidebar-color: $grey-dk-300;\n$base-button-color: $grey-dk-250;\n$btn-primary-color: $blue-200;\n$code-background-color: #31343f; // OneDarkJekyll default for syntax-one-dark-vivid\n$code-linenumber-color: #dee2f7; // OneDarkJekyll .nf for syntax-one-dark-vivid\n$feedback-color: darken($sidebar-color, 3%);\n$table-background-color: $grey-dk-250;\n$search-background-color: $grey-dk-250;\n$search-result-preview-color: $grey-dk-000;\n$border-color: $grey-dk-200;\n\n@import \"./vendor/OneDarkJekyll/syntax\"; // this is the one-dark-vivid atom syntax theme\n","@mixin fs-1 {\n & {\n font-size: $font-size-1 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-1-sm !important;\n }\n}\n\n@mixin fs-2 {\n & {\n font-size: $font-size-2 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-3 !important;\n }\n}\n\n@mixin fs-3 {\n & {\n font-size: $font-size-3 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-4 !important;\n }\n}\n\n@mixin fs-4 {\n & {\n font-size: $font-size-4 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-5 !important;\n }\n}\n\n@mixin fs-5 {\n & {\n font-size: $font-size-5 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-6 !important;\n }\n}\n\n@mixin fs-6 {\n & {\n font-size: $font-size-6 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n}\n\n@mixin fs-7 {\n & {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-8 !important;\n }\n}\n\n@mixin fs-8 {\n & {\n font-size: $font-size-8 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-9 !important;\n }\n}\n\n@mixin fs-9 {\n & {\n font-size: $font-size-9 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10 !important;\n }\n}\n\n@mixin fs-10 {\n & {\n font-size: $font-size-10 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10-sm !important;\n }\n}\n","// Media query\n\n// Media query mixin\n// Usage:\n// @include mq(md) {\n// ..medium and up styles\n// }\n@mixin mq($name) {\n // Retrieves the value from the key\n $value: map-get($media-queries, $name);\n\n // If the key exists in the map\n @if $value {\n // Prints a media query based on the value\n @media (min-width: $value) {\n @content;\n }\n } @else {\n @warn \"No value could be retrieved from `#{$media-query}`. Please make sure it is defined in `$media-queries` map.\";\n }\n}\n\n// Responsive container\n\n@mixin container {\n padding-right: $gutter-spacing-sm;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-right: $gutter-spacing;\n padding-left: $gutter-spacing;\n }\n}\n","// Typography\n\n// prettier-ignore\n$body-font-family: system-ui, -apple-system, blinkmacsystemfont, \"Segoe UI\",\n roboto, \"Helvetica Neue\", arial, sans-serif, \"Segoe UI Emoji\" !default;\n$mono-font-family: \"SFMono-Regular\", menlo, consolas, monospace !default;\n$root-font-size: 16px !default; // DEPRECATED: previously base font-size for rems\n$body-line-height: 1.4 !default;\n$content-line-height: 1.6 !default;\n$body-heading-line-height: 1.25 !default;\n\n// Font size\n// `-sm` suffix is the size at the small (and above) media query\n\n$font-size-1: 0.5625rem !default;\n$font-size-1-sm: 0.625rem !default;\n$font-size-2: 0.6875rem !default; // h4 - uppercased!, h6 not uppercased, text-small\n$font-size-3: 0.75rem !default; // h5\n$font-size-4: 0.875rem !default;\n$font-size-5: 1rem !default; // h3\n$font-size-6: 1.125rem !default; // h2\n$font-size-7: 1.5rem !default;\n$font-size-8: 2rem !default; // h1\n$font-size-9: 2.25rem !default;\n$font-size-10: 2.625rem !default;\n$font-size-10-sm: 3rem !default;\n\n// Colors\n\n$white: #fff !default;\n$grey-dk-000: #959396 !default;\n$grey-dk-100: #5c5962 !default;\n$grey-dk-200: #44434d !default;\n$grey-dk-250: #302d36 !default;\n$grey-dk-300: #27262b !default;\n$grey-lt-000: #f5f6fa !default;\n$grey-lt-100: #eeebee !default;\n$grey-lt-200: #ecebed !default;\n$grey-lt-300: #e6e1e8 !default;\n$purple-000: #7253ed !default;\n$purple-100: #5e41d0 !default;\n$purple-200: #4e26af !default;\n$purple-300: #381885 !default;\n$blue-000: #2c84fa !default;\n$blue-100: #2869e6 !default;\n$blue-200: #264caf !default;\n$blue-300: #183385 !default;\n$green-000: #41d693 !default;\n$green-100: #11b584 !default;\n$green-200: #009c7b !default;\n$green-300: #026e57 !default;\n$yellow-000: #ffeb82 !default;\n$yellow-100: #fadf50 !default;\n$yellow-200: #f7d12e !default;\n$yellow-300: #e7af06 !default;\n$red-000: #f77e7e !default;\n$red-100: #f96e65 !default;\n$red-200: #e94c4c !default;\n$red-300: #dd2e2e !default;\n\n// Spacing\n\n$spacing-unit: 1rem; // 1rem == 16px\n\n$spacers: (\n sp-0: 0,\n sp-1: $spacing-unit * 0.25,\n sp-2: $spacing-unit * 0.5,\n sp-3: $spacing-unit * 0.75,\n sp-4: $spacing-unit,\n sp-5: $spacing-unit * 1.5,\n sp-6: $spacing-unit * 2,\n sp-7: $spacing-unit * 2.5,\n sp-8: $spacing-unit * 3,\n sp-9: $spacing-unit * 3.5,\n sp-10: $spacing-unit * 4,\n) !default;\n$sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px\n$sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px\n$sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px\n$sp-4: map-get($spacers, sp-4) !default; // 1 rem == 16px\n$sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px\n$sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px\n$sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px\n$sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px\n$sp-9: map-get($spacers, sp-9) !default; // 3.5 rem == 56px\n$sp-10: map-get($spacers, sp-10) !default; // 4 rem == 64px\n\n// Borders\n\n$border: 1px solid !default;\n$border-radius: 4px !default;\n$border-color: $grey-lt-100 !default;\n\n// Grid system\n\n$gutter-spacing: $sp-6 !default;\n$gutter-spacing-sm: $sp-4 !default;\n$nav-width: 16.5rem !default;\n$nav-width-md: 15.5rem !default;\n$nav-list-item-height: $sp-6 !default;\n$nav-list-item-height-sm: $sp-8 !default;\n$nav-list-expander-right: true;\n$content-width: 50rem !default;\n$header-height: 3.75rem !default;\n$search-results-width: $content-width - $nav-width !default;\n$transition-duration: 400ms;\n\n// Media queries in pixels\n\n$media-queries: (\n xs: 20rem,\n sm: 31.25rem,\n md: $content-width,\n lg: $content-width + $nav-width,\n xl: 87.5rem,\n) !default;\n","// The basic two column layout\n\n.side-bar {\n z-index: 0;\n display: flex;\n flex-wrap: wrap;\n background-color: $sidebar-color;\n\n @include mq(md) {\n flex-flow: column nowrap;\n position: fixed;\n width: $nav-width-md;\n height: 100%;\n border-right: $border $border-color;\n align-items: flex-end;\n }\n\n @include mq(lg) {\n width: calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width});\n min-width: $nav-width;\n }\n\n & + .main {\n @include mq(md) {\n margin-left: $nav-width-md;\n }\n\n @include mq(lg) {\n // stylelint-disable function-name-case\n // disable for Max(), we want to use the CSS max() function\n margin-left: Max(\n #{$nav-width},\n calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width})\n );\n // stylelint-enable function-name-case\n }\n\n .main-header {\n display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n background-color: $body-background-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\n }\n }\n }\n}\n\n.main {\n margin: auto;\n\n @include mq(md) {\n position: relative;\n max-width: $content-width;\n }\n}\n\n.main-content-wrap {\n padding-top: $gutter-spacing-sm;\n padding-bottom: $gutter-spacing-sm;\n\n @include container;\n\n @include mq(md) {\n padding-top: $gutter-spacing;\n padding-bottom: $gutter-spacing;\n }\n}\n\n.main-header {\n z-index: 0;\n border-bottom: $border $border-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n }\n}\n\n.site-nav,\n.site-header,\n.site-footer {\n width: 100%;\n\n @include mq(lg) {\n width: $nav-width;\n }\n}\n\n.site-nav {\n display: none;\n\n &.nav-open {\n display: block;\n }\n\n @include mq(md) {\n display: block;\n padding-top: $sp-8;\n padding-bottom: $gutter-spacing-sm;\n overflow-y: auto;\n flex: 1 1 auto;\n }\n}\n\n.site-header {\n display: flex;\n min-height: $header-height;\n align-items: center;\n\n @include mq(md) {\n height: $header-height;\n max-height: $header-height;\n border-bottom: $border $border-color;\n }\n}\n\n.site-title {\n flex-grow: 1;\n display: flex;\n height: 100%;\n align-items: center;\n padding-top: $sp-3;\n padding-bottom: $sp-3;\n color: $body-heading-color;\n\n @include container;\n\n @include fs-6;\n\n @include mq(md) {\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n }\n}\n\n@if variable-exists(logo) {\n .site-logo {\n width: 100%;\n height: 100%;\n background-image: url($logo);\n background-repeat: no-repeat;\n background-position: left center;\n background-size: contain;\n }\n}\n\n.site-button {\n display: flex;\n height: 100%;\n padding: $gutter-spacing-sm;\n align-items: center;\n}\n\n@include mq(md) {\n .site-header .site-button {\n display: none;\n }\n}\n\n.site-title:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n}\n\n.site-button:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n}\n\n// stylelint-disable selector-max-type\n\nbody {\n position: relative;\n padding-bottom: $sp-10;\n overflow-y: scroll;\n\n @include mq(md) {\n position: static;\n padding-bottom: 0;\n }\n}\n\n// stylelint-enable selector-max-type\n\n.site-footer {\n position: absolute;\n bottom: 0;\n left: 0;\n padding-top: $sp-4;\n padding-bottom: $sp-4;\n color: $grey-dk-000;\n\n @include container;\n\n @include fs-2;\n\n @include mq(md) {\n position: static;\n justify-self: end;\n }\n}\n\n.icon {\n width: $sp-5;\n height: $sp-5;\n color: $link-color;\n}\n","@charset \"UTF-8\";\n\n// Styles for rendered markdown in the .main-content container\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity, selector-max-id\n\n.main-content {\n line-height: $content-line-height;\n\n ol,\n ul,\n dl,\n pre,\n address,\n blockquote,\n .table-wrapper {\n margin-top: 0.5em;\n }\n\n a {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n ul,\n ol {\n padding-left: 1.5em;\n }\n\n li {\n .highlight {\n margin-top: $sp-1;\n }\n }\n\n ol {\n list-style-type: none;\n counter-reset: step-counter;\n\n > li {\n position: relative;\n\n &::before {\n position: absolute;\n top: 0.2em;\n left: -1.6em;\n color: $grey-dk-000;\n content: counter(step-counter);\n counter-increment: step-counter;\n @include fs-3;\n\n @include mq(sm) {\n top: 0.11em;\n }\n }\n\n ol {\n counter-reset: sub-counter;\n\n > li {\n &::before {\n content: counter(sub-counter, lower-alpha);\n counter-increment: sub-counter;\n }\n }\n }\n }\n }\n\n ul {\n list-style: none;\n\n > li {\n &::before {\n position: absolute;\n margin-left: -1.4em;\n color: $grey-dk-000;\n content: \"β€’\";\n }\n }\n }\n\n .task-list-item {\n &::before {\n content: \"\";\n }\n }\n\n .task-list-item-checkbox {\n margin-right: 0.6em;\n margin-left: -1.4em;\n\n // The same margin-left is used above for ul > li::before\n }\n\n hr + * {\n margin-top: 0;\n }\n\n h1:first-of-type {\n margin-top: 0.5em;\n }\n\n dl {\n display: grid;\n grid-template: auto / 10em 1fr;\n }\n\n dt,\n dd {\n margin: 0.25em 0;\n }\n\n dt {\n grid-column: 1;\n font-weight: 500;\n text-align: right;\n\n &::after {\n content: \":\";\n }\n }\n\n dd {\n grid-column: 2;\n margin-bottom: 0;\n margin-left: 1em;\n\n blockquote,\n div,\n dl,\n dt,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n li,\n ol,\n p,\n pre,\n table,\n ul,\n .table-wrapper {\n &:first-child {\n margin-top: 0;\n }\n }\n }\n\n dd,\n ol,\n ul {\n dl:first-child {\n dt:first-child,\n dd:nth-child(2) {\n margin-top: 0;\n }\n }\n }\n\n .anchor-heading {\n position: absolute;\n right: -$sp-4;\n width: $sp-5;\n height: 100%;\n padding-right: $sp-1;\n padding-left: $sp-1;\n overflow: visible;\n\n @include mq(md) {\n right: auto;\n left: -$sp-5;\n }\n\n svg {\n display: inline-block;\n width: 100%;\n height: 100%;\n color: $link-color;\n visibility: hidden;\n }\n }\n\n .anchor-heading:hover,\n .anchor-heading:focus,\n h1:hover > .anchor-heading,\n h2:hover > .anchor-heading,\n h3:hover > .anchor-heading,\n h4:hover > .anchor-heading,\n h5:hover > .anchor-heading,\n h6:hover > .anchor-heading {\n svg {\n visibility: visible;\n }\n }\n\n summary {\n cursor: pointer;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n #toctitle {\n position: relative;\n margin-top: 1.5em;\n margin-bottom: 0.25em;\n\n + table,\n + .table-wrapper,\n + .code-example,\n + .highlighter-rouge,\n + .sectionbody .listingblock {\n margin-top: 1em;\n }\n\n + p:not(.label) {\n margin-top: 0;\n }\n }\n\n > h1:first-child,\n > h2:first-child,\n > h3:first-child,\n > h4:first-child,\n > h5:first-child,\n > h6:first-child,\n > .sect1:first-child > h2,\n > .sect2:first-child > h3,\n > .sect3:first-child > h4,\n > .sect4:first-child > h5,\n > .sect5:first-child > h6 {\n margin-top: $sp-2;\n }\n}\n","// Main nav, breadcrumb, etc...\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity\n\n.nav-list {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n margin: 0;\n\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n\n .nav-list-link {\n display: block;\n min-height: $nav-list-item-height-sm;\n padding-top: $sp-1;\n padding-bottom: $sp-1;\n line-height: #{$nav-list-item-height-sm - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height-sm;\n padding-left: $gutter-spacing-sm;\n } @else {\n padding-right: $gutter-spacing-sm;\n padding-left: $nav-list-item-height-sm;\n }\n\n @include mq(md) {\n min-height: $nav-list-item-height;\n line-height: #{$nav-list-item-height - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height;\n padding-left: $gutter-spacing;\n } @else {\n padding-right: $gutter-spacing;\n padding-left: $nav-list-item-height;\n }\n }\n\n &.external > svg {\n width: $sp-4;\n height: $sp-4;\n vertical-align: text-bottom;\n }\n\n &.active {\n font-weight: 600;\n text-decoration: none;\n }\n\n &:hover,\n &.active {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n }\n }\n\n .nav-list-expander {\n position: absolute;\n @if $nav-list-expander-right {\n right: 0;\n }\n\n width: $nav-list-item-height-sm;\n height: $nav-list-item-height-sm;\n padding: #{$nav-list-item-height-sm * 0.25};\n color: $link-color;\n\n @include mq(md) {\n width: $nav-list-item-height;\n height: $nav-list-item-height;\n padding: #{$nav-list-item-height * 0.25};\n }\n\n &:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n }\n\n @if $nav-list-expander-right {\n svg {\n transform: rotate(90deg);\n }\n }\n }\n\n > .nav-list {\n display: none;\n padding-left: $sp-3;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n\n .nav-list-link {\n color: $nav-child-link-color;\n }\n\n .nav-list-expander {\n color: $nav-child-link-color;\n }\n }\n }\n\n &.active {\n > .nav-list-expander svg {\n @if $nav-list-expander-right {\n transform: rotate(-90deg);\n } @else {\n transform: rotate(90deg);\n }\n }\n\n > .nav-list {\n display: block;\n }\n }\n }\n}\n\n.nav-category {\n padding: $sp-2 $gutter-spacing-sm;\n font-weight: 600;\n text-align: start;\n text-transform: uppercase;\n border-bottom: $border $border-color;\n @include fs-2;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing;\n margin-top: $gutter-spacing-sm;\n text-align: start;\n\n &:first-child {\n margin-top: 0;\n }\n }\n}\n\n.nav-list.nav-category-list {\n > .nav-list-item {\n margin: 0;\n\n > .nav-list {\n padding: 0;\n\n > .nav-list-item {\n > .nav-list-link {\n color: $link-color;\n }\n\n > .nav-list-expander {\n color: $link-color;\n }\n }\n }\n }\n}\n\n// Aux nav\n\n.aux-nav {\n height: 100%;\n overflow-x: auto;\n @include fs-2;\n\n .aux-nav-list {\n display: flex;\n height: 100%;\n padding: 0;\n margin: 0;\n list-style: none;\n }\n\n .aux-nav-list-item {\n display: inline-block;\n height: 100%;\n padding: 0;\n margin: 0;\n }\n\n @include mq(md) {\n padding-right: $gutter-spacing-sm;\n }\n}\n\n// Breadcrumb nav\n\n.breadcrumb-nav {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n}\n\n.breadcrumb-nav-list {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n}\n\n.breadcrumb-nav-list-item {\n display: table-cell;\n @include fs-2;\n\n &::before {\n display: none;\n }\n\n &::after {\n display: inline-block;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $grey-dk-000;\n content: \"/\";\n }\n\n &:last-child {\n &::after {\n content: \"\";\n }\n }\n}\n","// Typography\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\nh1,\n.text-alpha {\n font-weight: 300;\n\n @include fs-8;\n}\n\nh2,\n.text-beta,\n#toctitle {\n @include fs-6;\n}\n\nh3,\n.text-gamma {\n @include fs-5;\n}\n\nh4,\n.text-delta {\n font-weight: 400;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n\n @include fs-2;\n}\n\nh4 code {\n text-transform: none;\n}\n\nh5,\n.text-epsilon {\n @include fs-3;\n}\n\nh6,\n.text-zeta {\n @include fs-2;\n}\n\n.text-small {\n @include fs-2;\n}\n\n.text-mono {\n font-family: $mono-font-family !important;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n","// Labels (not the form kind)\n\n// this :not() prevents a style clash with Mermaid.js's\n// diagram labels, which also use .label\n// for more, see https://github.com/just-the-docs/just-the-docs/issues/1272\n// and the accompanying PR\n.label:not(g),\n.label-blue:not(g) {\n display: inline-block;\n padding: 0.16em 0.56em;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $white;\n text-transform: uppercase;\n vertical-align: middle;\n background-color: $blue-100;\n border-radius: 12px;\n\n @include fs-2;\n}\n\n.label-green:not(g) {\n background-color: $green-200;\n}\n\n.label-purple:not(g) {\n background-color: $purple-100;\n}\n\n.label-red:not(g) {\n background-color: $red-200;\n}\n\n.label-yellow:not(g) {\n color: $grey-dk-200;\n background-color: $yellow-200;\n}\n","// Buttons and things that look like buttons\n// stylelint-disable color-named\n\n.btn {\n display: inline-block;\n box-sizing: border-box;\n padding: 0.3em 1em;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n line-height: 1.5;\n color: $link-color;\n text-decoration: none;\n vertical-align: baseline;\n cursor: pointer;\n background-color: $base-button-color;\n border-width: 0;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n appearance: none;\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: darken($link-color, 2%);\n }\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n text-decoration: none;\n background-color: darken($base-button-color, 1%);\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($base-button-color, 3%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken(#dcdcdc, 5%);\n }\n\n &:disabled,\n &.disabled {\n &,\n &:hover {\n color: rgba(102, 102, 102, 0.5);\n cursor: default;\n background-color: rgba(229, 229, 229, 0.5);\n background-image: none;\n box-shadow: none;\n }\n }\n}\n\n.btn-outline {\n color: $link-color;\n background: transparent;\n box-shadow: inset 0 0 0 2px $grey-lt-300;\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n color: darken($link-color, 4%);\n text-decoration: none;\n background-color: transparent;\n box-shadow: inset 0 0 0 3px $grey-lt-300;\n }\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow:\n inset 0 0 0 2px $grey-dk-100,\n 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: inset 0 0 0 2px $grey-dk-100;\n }\n}\n\n.btn-primary {\n @include btn-color($white, $btn-primary-color);\n}\n\n.btn-purple {\n @include btn-color($white, $purple-100);\n}\n\n.btn-blue {\n @include btn-color($white, $blue-000);\n}\n\n.btn-green {\n @include btn-color($white, $green-100);\n}\n\n.btn-reset {\n background: none;\n border: none;\n margin: 0;\n text-align: inherit;\n font: inherit;\n border-radius: 0;\n appearance: none;\n}\n","// Colored button\n\n@mixin btn-color($fg, $bg) {\n color: $fg;\n background-color: darken($bg, 2%);\n background-image: linear-gradient(lighten($bg, 5%), darken($bg, 2%));\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.25),\n 0 4px 10px rgba(0, 0, 0, 0.12);\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: $fg;\n background-color: darken($bg, 4%);\n background-image: linear-gradient((lighten($bg, 2%), darken($bg, 4%)));\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($bg, 5%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken($bg, 10%);\n }\n}\n","// Search input and autocomplete\n\n.search {\n position: relative;\n z-index: 2;\n flex-grow: 1;\n height: $sp-10;\n padding: $sp-2;\n transition: padding linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: relative !important;\n width: auto !important;\n height: 100% !important;\n padding: 0;\n transition: none;\n }\n}\n\n.search-input-wrap {\n position: relative;\n z-index: 1;\n height: $sp-8;\n overflow: hidden;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n transition: height linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: absolute;\n width: 100%;\n max-width: $search-results-width;\n height: 100% !important;\n border-radius: 0;\n box-shadow: none;\n transition: width ease $transition-duration;\n }\n}\n\n.search-input {\n position: absolute;\n width: 100%;\n height: 100%;\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing-sm + $sp-5};\n font-size: 1rem;\n color: $body-text-color;\n background-color: $search-background-color;\n border-top: 0;\n border-right: 0;\n border-bottom: 0;\n border-left: 0;\n border-radius: 0;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing + $sp-5};\n font-size: 0.875rem;\n background-color: $body-background-color;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n &:focus {\n outline: 0;\n\n + .search-label .search-icon {\n color: $link-color;\n }\n }\n}\n\n.search-label {\n position: absolute;\n display: flex;\n height: 100%;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-left: $gutter-spacing;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n .search-icon {\n width: #{$sp-4 * 1.2};\n height: #{$sp-4 * 1.2};\n align-self: center;\n color: $grey-dk-000;\n }\n}\n\n.search-results {\n position: absolute;\n left: 0;\n display: none;\n width: 100%;\n max-height: calc(100% - #{$sp-10});\n overflow-y: auto;\n background-color: $search-background-color;\n border-bottom-right-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n\n @include mq(md) {\n top: 100%;\n width: $search-results-width;\n max-height: calc(100vh - 200%) !important;\n }\n}\n\n.search-results-list {\n padding-left: 0;\n margin-bottom: $sp-1;\n list-style: none;\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n}\n\n.search-results-list-item {\n padding: 0;\n margin: 0;\n}\n\n.search-result {\n display: block;\n padding: $sp-1 $sp-3;\n\n &:hover,\n &.active {\n background-color: $feedback-color;\n }\n}\n\n.search-result-title {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 40%;\n padding-right: $sp-2;\n vertical-align: top;\n }\n}\n\n.search-result-doc {\n display: flex;\n align-items: center;\n word-wrap: break-word;\n\n &.search-result-doc-parent {\n opacity: 0.5;\n @include fs-3;\n\n @include mq(md) {\n @include fs-2;\n }\n }\n\n .search-result-icon {\n width: $sp-4;\n height: $sp-4;\n margin-right: $sp-2;\n color: $link-color;\n flex-shrink: 0;\n }\n\n .search-result-doc-title {\n overflow: auto;\n }\n}\n\n.search-result-section {\n margin-left: #{$sp-4 + $sp-2};\n word-wrap: break-word;\n}\n\n.search-result-rel-url {\n display: block;\n margin-left: #{$sp-4 + $sp-2};\n overflow: hidden;\n color: $search-result-preview-color;\n text-overflow: ellipsis;\n white-space: nowrap;\n @include fs-1;\n}\n\n.search-result-previews {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n padding-left: $sp-4;\n margin-left: $sp-2;\n color: $search-result-preview-color;\n word-wrap: break-word;\n border-left: $border;\n border-left-color: $border-color;\n @include fs-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 60%;\n padding-left: $sp-2;\n margin-left: 0;\n vertical-align: top;\n }\n}\n\n.search-result-preview + .search-result-preview {\n margin-top: $sp-1;\n}\n\n.search-result-highlight {\n font-weight: bold;\n}\n\n.search-no-result {\n padding: $sp-2 $sp-3;\n @include fs-3;\n}\n\n.search-button {\n position: fixed;\n right: $sp-4;\n bottom: $sp-4;\n display: flex;\n width: $sp-9;\n height: $sp-9;\n background-color: $search-background-color;\n border: 1px solid rgba($link-color, 0.3);\n border-radius: #{$sp-9 * 0.5};\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n align-items: center;\n justify-content: center;\n}\n\n.search-overlay {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n width: 0;\n height: 0;\n background-color: rgba(0, 0, 0, 0.3);\n opacity: 0;\n transition:\n opacity ease $transition-duration,\n width 0s $transition-duration,\n height 0s $transition-duration;\n}\n\n.search-active {\n .search {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .search-input-wrap {\n height: $sp-10;\n border-radius: 0;\n\n @include mq(md) {\n width: $search-results-width;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n }\n }\n\n .search-input {\n background-color: $search-background-color;\n\n @include mq(md) {\n padding-left: 2.3rem;\n }\n }\n\n .search-label {\n @include mq(md) {\n padding-left: 0.6rem;\n }\n }\n\n .search-results {\n display: block;\n }\n\n .search-overlay {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n opacity ease $transition-duration,\n width 0s,\n height 0s;\n }\n\n @include mq(md) {\n .main {\n position: fixed;\n right: 0;\n left: 0;\n }\n }\n\n .main-header {\n padding-top: $sp-10;\n\n @include mq(md) {\n padding-top: 0;\n }\n }\n}\n","// Tables\n// stylelint-disable max-nesting-depth, selector-no-type, selector-max-type\n\n.table-wrapper {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: $sp-5;\n overflow-x: auto;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n}\n\ntable {\n display: table;\n min-width: 100%;\n border-collapse: separate;\n}\n\nth,\ntd {\n min-width: 7.5rem;\n padding: $sp-2 $sp-3;\n background-color: $table-background-color;\n border-bottom: $border rgba($border-color, 0.5);\n border-left: $border $border-color;\n\n @include fs-3;\n\n &:first-of-type {\n border-left: 0;\n }\n}\n\ntbody {\n tr {\n &:last-of-type {\n th,\n td {\n border-bottom: 0;\n }\n\n td {\n padding-bottom: $sp-3;\n }\n }\n }\n}\n\nthead {\n th {\n border-bottom: $border $border-color;\n }\n}\n","// Code and syntax highlighting\n// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type, scss/comment-no-empty\n\n// {% raw %}\n\n// This instruction applies to all queues not within 'pre' or 'figure', avoiding 'code' generated by the highlight.\n:not(pre, figure) {\n & > code {\n padding: 0.2em 0.15em;\n font-weight: 400;\n background-color: $code-background-color;\n border: $border $border-color;\n border-radius: $border-radius;\n }\n}\n\n// Avoid appearance of dark border around visited code links in Safari\na:visited code {\n border-color: $border-color;\n}\n\n// Content structure for highlighted code blocks using fences or Liquid\n//\n// ```[LANG]...```, no kramdown line_numbers:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n//\n// ```[LANG]...```, kramdown line_numbers = true:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.rouge-gutter.gl > pre.lineno\n// | td.rouge-code > pre\n//\n// {% highlight LANG %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n//\n// {% highlight LANG linenos %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.gutter.gl > pre.lineno\n// | td.code > pre\n//\n// ----...---- (AsciiDoc)\n// div.listingblock > div.content > pre.rouge.highlight\n//\n// fix_linenos removes the outermost pre when it encloses table.rouge-table\n//\n// See docs/index-test.md for some tests.\n//\n// No kramdown line_numbers: fences and Liquid highlighting look the same.\n// Kramdown line_numbers = true: fences have a wider gutter than with Liquid?\n\n// ```[LANG]...```\n// or in AsciiDoc:\n//\n// ----\n// ...\n// ----\n\n// the code may appear with 3 different types:\n// container \\ case: default case, code with line number, code with html rendering\n// top level: div.highlighter-rouge, figure.highlight, figure.highlight\n// second level: div.highlight, div.table-wrapper, pre.highlight\n// third level: pre.highlight, td.code, absent\n// last level: code, pre, code (optionality)\n// highlighter level: span, span, span\n// the spacing are only in the second level for case 1, 3 and in the third level for case 2\n// in AsciiDoc, there is a parent container that contains optionally a title and the content.\n\n// select top level container\ndiv.highlighter-rouge,\ndiv.listingblock > div.content,\nfigure.highlight {\n margin-top: 0;\n margin-bottom: $sp-3;\n background-color: $code-background-color;\n border-radius: $border-radius;\n box-shadow: none;\n -webkit-overflow-scrolling: touch;\n position: relative;\n padding: 0;\n\n // copy button (or other button)\n // the button appear only when there is a hover on the code or focus on button\n > button {\n width: $sp-3;\n opacity: 0;\n position: absolute;\n top: 0;\n right: 0;\n border: $sp-3 solid $code-background-color;\n background-color: $code-background-color;\n color: $body-text-color;\n box-sizing: content-box;\n\n svg {\n fill: $body-text-color;\n }\n\n &:active {\n text-decoration: none;\n outline: none;\n opacity: 1;\n }\n\n &:focus {\n opacity: 1;\n }\n }\n\n // the button can be seen by doing a simple hover in the code, there is no need to go over the location of the button\n &:hover {\n > button {\n cursor: copy;\n opacity: 1;\n }\n }\n}\n\n// setting the spacing and scrollbar on the second level for the first case\n// remove all space on the second and third level\n// this is a mixin to accommodate for the slightly different structures generated via Markdown vs AsciiDoc\n@mixin scroll-and-spacing($code-div, $pre-select) {\n #{$code-div} {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n\n #{$pre-select},\n code {\n padding: 0;\n margin: 0;\n border: 0;\n }\n}\n\n// for Markdown\ndiv.highlighter-rouge {\n @include scroll-and-spacing(\"div.highlight\", \"pre.highlight\");\n}\n\n// for AsciiDoc. we also need to fix the margins for its parent container.\ndiv.listingblock {\n margin-top: 0;\n margin-bottom: $sp-3;\n\n @include scroll-and-spacing(\"div.content\", \"div.content > pre\");\n}\n\n// {% highlight LANG %}...{% endhighlight %},\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the second level for the thirt case\n// the css rule are apply only to the last code enviroment\n// setting the scroolbar\nfigure.highlight {\n pre,\n :not(pre) > code {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n}\n\n// ```[LANG]...```, kramdown line_numbers = true,\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the thirt level for the second case\n.highlight .table-wrapper {\n padding: $sp-3 0;\n margin: 0;\n border: 0;\n box-shadow: none;\n\n td,\n pre {\n min-width: 0;\n padding: 0;\n background-color: $code-background-color;\n border: 0;\n\n @include fs-2;\n }\n\n td.gl {\n width: 1em;\n padding-right: $sp-3;\n padding-left: $sp-3;\n }\n\n pre {\n margin: 0;\n line-height: 2;\n }\n}\n\n// Code examples: html render of a code\n.code-example,\n.listingblock > .title {\n padding: $sp-3;\n margin-bottom: $sp-3;\n overflow: auto;\n border: 1px solid $border-color;\n border-radius: $border-radius;\n\n + .highlighter-rouge,\n + .sectionbody .listingblock,\n + .content,\n + figure.highlight {\n position: relative;\n margin-top: -$sp-4;\n border-right: 1px solid $border-color;\n border-bottom: 1px solid $border-color;\n border-left: 1px solid $border-color;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n\n// Mermaid diagram code blocks should be left unstyled.\ncode.language-mermaid {\n padding: 0;\n background-color: inherit;\n border: 0;\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight,\npre.highlight {\n background: $code-background-color; // Code Background\n // For Backwards Compatibility Before $code-linenumber-color was added\n @if variable-exists(code-linenumber-color) {\n color: $code-linenumber-color; // Code Line Numbers\n } @else {\n color: $body-text-color; // Code Line Numbers\n }\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight pre {\n background: $code-background-color; // Code Background\n}\n\n// {% endraw %}\n","// Utility classes for colors\n\n// Text colors\n\n.text-grey-dk-000 {\n color: $grey-dk-000 !important;\n}\n\n.text-grey-dk-100 {\n color: $grey-dk-100 !important;\n}\n\n.text-grey-dk-200 {\n color: $grey-dk-200 !important;\n}\n\n.text-grey-dk-250 {\n color: $grey-dk-250 !important;\n}\n\n.text-grey-dk-300 {\n color: $grey-dk-300 !important;\n}\n\n.text-grey-lt-000 {\n color: $grey-lt-000 !important;\n}\n\n.text-grey-lt-100 {\n color: $grey-lt-100 !important;\n}\n\n.text-grey-lt-200 {\n color: $grey-lt-200 !important;\n}\n\n.text-grey-lt-300 {\n color: $grey-lt-300 !important;\n}\n\n.text-blue-000 {\n color: $blue-000 !important;\n}\n\n.text-blue-100 {\n color: $blue-100 !important;\n}\n\n.text-blue-200 {\n color: $blue-200 !important;\n}\n\n.text-blue-300 {\n color: $blue-300 !important;\n}\n\n.text-green-000 {\n color: $green-000 !important;\n}\n\n.text-green-100 {\n color: $green-100 !important;\n}\n\n.text-green-200 {\n color: $green-200 !important;\n}\n\n.text-green-300 {\n color: $green-300 !important;\n}\n\n.text-purple-000 {\n color: $purple-000 !important;\n}\n\n.text-purple-100 {\n color: $purple-100 !important;\n}\n\n.text-purple-200 {\n color: $purple-200 !important;\n}\n\n.text-purple-300 {\n color: $purple-300 !important;\n}\n\n.text-yellow-000 {\n color: $yellow-000 !important;\n}\n\n.text-yellow-100 {\n color: $yellow-100 !important;\n}\n\n.text-yellow-200 {\n color: $yellow-200 !important;\n}\n\n.text-yellow-300 {\n color: $yellow-300 !important;\n}\n\n.text-red-000 {\n color: $red-000 !important;\n}\n\n.text-red-100 {\n color: $red-100 !important;\n}\n\n.text-red-200 {\n color: $red-200 !important;\n}\n\n.text-red-300 {\n color: $red-300 !important;\n}\n\n// Background colors\n\n.bg-grey-dk-000 {\n background-color: $grey-dk-000 !important;\n}\n\n.bg-grey-dk-100 {\n background-color: $grey-dk-100 !important;\n}\n\n.bg-grey-dk-200 {\n background-color: $grey-dk-200 !important;\n}\n\n.bg-grey-dk-250 {\n background-color: $grey-dk-250 !important;\n}\n\n.bg-grey-dk-300 {\n background-color: $grey-dk-300 !important;\n}\n\n.bg-grey-lt-000 {\n background-color: $grey-lt-000 !important;\n}\n\n.bg-grey-lt-100 {\n background-color: $grey-lt-100 !important;\n}\n\n.bg-grey-lt-200 {\n background-color: $grey-lt-200 !important;\n}\n\n.bg-grey-lt-300 {\n background-color: $grey-lt-300 !important;\n}\n\n.bg-blue-000 {\n background-color: $blue-000 !important;\n}\n\n.bg-blue-100 {\n background-color: $blue-100 !important;\n}\n\n.bg-blue-200 {\n background-color: $blue-200 !important;\n}\n\n.bg-blue-300 {\n background-color: $blue-300 !important;\n}\n\n.bg-green-000 {\n background-color: $green-000 !important;\n}\n\n.bg-green-100 {\n background-color: $green-100 !important;\n}\n\n.bg-green-200 {\n background-color: $green-200 !important;\n}\n\n.bg-green-300 {\n background-color: $green-300 !important;\n}\n\n.bg-purple-000 {\n background-color: $purple-000 !important;\n}\n\n.bg-purple-100 {\n background-color: $purple-100 !important;\n}\n\n.bg-purple-200 {\n background-color: $purple-200 !important;\n}\n\n.bg-purple-300 {\n background-color: $purple-300 !important;\n}\n\n.bg-yellow-000 {\n background-color: $yellow-000 !important;\n}\n\n.bg-yellow-100 {\n background-color: $yellow-100 !important;\n}\n\n.bg-yellow-200 {\n background-color: $yellow-200 !important;\n}\n\n.bg-yellow-300 {\n background-color: $yellow-300 !important;\n}\n\n.bg-red-000 {\n background-color: $red-000 !important;\n}\n\n.bg-red-100 {\n background-color: $red-100 !important;\n}\n\n.bg-red-200 {\n background-color: $red-200 !important;\n}\n\n.bg-red-300 {\n background-color: $red-300 !important;\n}\n","// Utility classes for layout\n\n// Display\n\n.d-block {\n display: block !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .d-sm-block, .d-md-none, .d-lg-inline\n .d-#{$media-query}-block {\n display: block !important;\n }\n .d-#{$media-query}-flex {\n display: flex !important;\n }\n .d-#{$media-query}-inline {\n display: inline !important;\n }\n .d-#{$media-query}-inline-block {\n display: inline-block !important;\n }\n .d-#{$media-query}-none {\n display: none !important;\n }\n }\n }\n}\n\n// Horizontal alignment\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.flex-justify-start {\n justify-content: flex-start !important;\n}\n\n.flex-justify-end {\n justify-content: flex-end !important;\n}\n\n.flex-justify-between {\n justify-content: space-between !important;\n}\n\n.flex-justify-around {\n justify-content: space-around !important;\n}\n\n// Vertical alignment\n\n.v-align-baseline {\n vertical-align: baseline !important;\n}\n\n.v-align-bottom {\n vertical-align: bottom !important;\n}\n\n.v-align-middle {\n vertical-align: middle !important;\n}\n\n.v-align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.v-align-text-top {\n vertical-align: text-top !important;\n}\n\n.v-align-top {\n vertical-align: top !important;\n}\n","// Utility classes for typography\n\n.fs-1 {\n @include fs-1;\n}\n\n.fs-2 {\n @include fs-2;\n}\n\n.fs-3 {\n @include fs-3;\n}\n\n.fs-4 {\n @include fs-4;\n}\n\n.fs-5 {\n @include fs-5;\n}\n\n.fs-6 {\n @include fs-6;\n}\n\n.fs-7 {\n @include fs-7;\n}\n\n.fs-8 {\n @include fs-8;\n}\n\n.fs-9 {\n @include fs-9;\n}\n\n.fs-10 {\n @include fs-10;\n}\n\n.fw-300 {\n font-weight: 300 !important;\n}\n\n.fw-400 {\n font-weight: 400 !important;\n}\n\n.fw-500 {\n font-weight: 500 !important;\n}\n\n.fw-700 {\n font-weight: 700 !important;\n}\n\n.lh-0 {\n line-height: 0 !important;\n}\n\n.lh-default {\n line-height: $body-line-height;\n}\n\n.lh-tight {\n line-height: $body-heading-line-height;\n}\n\n.ls-5 {\n letter-spacing: 0.05em !important;\n}\n\n.ls-10 {\n letter-spacing: 0.1em !important;\n}\n\n.ls-0 {\n letter-spacing: 0 !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n","// Utility classes for lists\n\n// stylelint-disable selector-max-type\n\n.list-style-none {\n padding: 0 !important;\n margin: 0 !important;\n list-style: none !important;\n\n li {\n &::before {\n display: none !important;\n }\n }\n}\n","// Utility classes for margins and padding\n\n// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before\n\n// Margin spacer utilities\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-0, .m-1, .m-2...\n .m-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n .mx-#{$scale}-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-sm-0, .m-md-1, .m-lg-2...\n .m-#{$media-query}-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$media-query}-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$media-query}-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$media-query}-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n }\n }\n}\n\n// Padding spacer utilities\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-0, .p-1, .p-2...\n .p-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @include mq($media-query) {\n @for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-sm-0, .p-md-1, .p-lg-2...\n .p-#{$media-query}-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$media-query}-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$media-query}-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n }\n }\n}\n","// stylelint-disable selector-max-specificity, selector-max-id, selector-max-type, selector-no-qualifying-type\n\n@media print {\n .site-footer,\n .site-button,\n #edit-this-page,\n #back-to-top,\n .site-nav,\n .main-header {\n display: none !important;\n }\n\n .side-bar {\n width: 100%;\n height: auto;\n border-right: 0 !important;\n }\n\n .site-header {\n border-bottom: 1px solid $border-color;\n }\n\n .site-title {\n font-size: 1rem !important;\n font-weight: 700 !important;\n }\n\n .text-small {\n font-size: 8pt !important;\n }\n\n pre.highlight {\n border: 1px solid $border-color;\n }\n\n .main {\n max-width: none;\n margin-left: 0;\n }\n}\n","// Skipnav\n// Skip to main content\n\na.skip-to-main {\n left: -999px;\n position: absolute;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n z-index: -999;\n}\n\na.skip-to-main:focus,\na.skip-to-main:active {\n color: $link-color;\n background-color: $body-background-color;\n left: auto;\n top: auto;\n width: 30%;\n height: auto;\n overflow: auto;\n margin: 10px 35%;\n padding: 5px;\n border-radius: 15px;\n border: 4px solid $btn-primary-color;\n text-align: center;\n font-size: 1.2em;\n z-index: 999;\n}\n","\n$logo: \"/assets/images/logo.png\";\n\n@import \"./support/support\";\n@import \"./custom/setup\";\n@import \"./color_schemes/light\";\n\n@import \"./color_schemes/dark\";\n\n@import \"./modules\";\ndiv.opaque {\n background-color: $body-background-color;\n}\n@import \"./custom/custom\";\n\n\n"],"file":"just-the-docs-dark.css"} \ No newline at end of file diff --git a/jekyll-backup/_site/assets/css/just-the-docs-default.css b/jekyll-backup/_site/assets/css/just-the-docs-default.css new file mode 100644 index 00000000..f085134e --- /dev/null +++ b/jekyll-backup/_site/assets/css/just-the-docs-default.css @@ -0,0 +1 @@ +ο»Ώ.highlight,pre.highlight{background:#f9f9f9;color:#383942}.highlight pre{background:#f9f9f9}.highlight .hll{background:#f9f9f9}.highlight .c{color:#9fa0a6;font-style:italic}.highlight .err{color:#fff;background-color:#e05151}.highlight .k{color:#a625a4}.highlight .l{color:#50a04f}.highlight .n{color:#383942}.highlight .o{color:#383942}.highlight .p{color:#383942}.highlight .cm{color:#9fa0a6;font-style:italic}.highlight .cp{color:#9fa0a6;font-style:italic}.highlight .c1{color:#9fa0a6;font-style:italic}.highlight .cs{color:#9fa0a6;font-style:italic}.highlight .ge{font-style:italic}.highlight .gs{font-weight:700}.highlight .kc{color:#a625a4}.highlight .kd{color:#a625a4}.highlight .kn{color:#a625a4}.highlight .kp{color:#a625a4}.highlight .kr{color:#a625a4}.highlight .kt{color:#a625a4}.highlight .ld{color:#50a04f}.highlight .m{color:#b66a00}.highlight .s{color:#50a04f}.highlight .na{color:#b66a00}.highlight .nb{color:#ca7601}.highlight .nc{color:#ca7601}.highlight .no{color:#ca7601}.highlight .nd{color:#ca7601}.highlight .ni{color:#ca7601}.highlight .ne{color:#ca7601}.highlight .nf{color:#383942}.highlight .nl{color:#ca7601}.highlight .nn{color:#383942}.highlight .nx{color:#383942}.highlight .py{color:#ca7601}.highlight .nt{color:#e35549}.highlight .nv{color:#ca7601}.highlight .ow{font-weight:700}.highlight .w{color:#f8f8f2}.highlight .mf{color:#b66a00}.highlight .mh{color:#b66a00}.highlight .mi{color:#b66a00}.highlight .mo{color:#b66a00}.highlight .sb{color:#50a04f}.highlight .sc{color:#50a04f}.highlight .sd{color:#50a04f}.highlight .s2{color:#50a04f}.highlight .se{color:#50a04f}.highlight .sh{color:#50a04f}.highlight .si{color:#50a04f}.highlight .sx{color:#50a04f}.highlight .sr{color:#0083bb}.highlight .s1{color:#50a04f}.highlight .ss{color:#0083bb}.highlight .bp{color:#ca7601}.highlight .vc{color:#ca7601}.highlight .vg{color:#ca7601}.highlight .vi{color:#e35549}.highlight .il{color:#b66a00}.highlight .gu{color:#75715e}.highlight .gd{color:#e05151}.highlight .gi{color:#43d089}.highlight .language-json .w+.s2{color:#e35549}.highlight .language-json .kc{color:#0083bb}.highlight,pre.highlight{background:#31343f;color:#dee2f7}.highlight pre{background:#31343f}.highlight .hll{background:#31343f}.highlight .c{color:#63677e;font-style:italic}.highlight .err{color:#960050;background-color:#1e0010}.highlight .k{color:#e19ef5}.highlight .l{color:#a3eea0}.highlight .n{color:#dee2f7}.highlight .o{color:#dee2f7}.highlight .p{color:#dee2f7}.highlight .cm{color:#63677e;font-style:italic}.highlight .cp{color:#63677e;font-style:italic}.highlight .c1{color:#63677e;font-style:italic}.highlight .cs{color:#63677e;font-style:italic}.highlight .ge{font-style:italic}.highlight .gs{font-weight:700}.highlight .kc{color:#e19ef5}.highlight .kd{color:#e19ef5}.highlight .kn{color:#e19ef5}.highlight .kp{color:#e19ef5}.highlight .kr{color:#e19ef5}.highlight .kt{color:#e19ef5}.highlight .ld{color:#a3eea0}.highlight .m{color:#eddc96}.highlight .s{color:#a3eea0}.highlight .na{color:#eddc96}.highlight .nb{color:#fdce68}.highlight .nc{color:#fdce68}.highlight .no{color:#fdce68}.highlight .nd{color:#fdce68}.highlight .ni{color:#fdce68}.highlight .ne{color:#fdce68}.highlight .nf{color:#dee2f7}.highlight .nl{color:#fdce68}.highlight .nn{color:#dee2f7}.highlight .nx{color:#dee2f7}.highlight .py{color:#fdce68}.highlight .nt{color:#f9867b}.highlight .nv{color:#fdce68}.highlight .ow{font-weight:700}.highlight .w{color:#f8f8f2}.highlight .mf{color:#eddc96}.highlight .mh{color:#eddc96}.highlight .mi{color:#eddc96}.highlight .mo{color:#eddc96}.highlight .sb{color:#a3eea0}.highlight .sc{color:#a3eea0}.highlight .sd{color:#a3eea0}.highlight .s2{color:#a3eea0}.highlight .se{color:#a3eea0}.highlight .sh{color:#a3eea0}.highlight .si{color:#a3eea0}.highlight .sx{color:#a3eea0}.highlight .sr{color:#7be2f9}.highlight .s1{color:#a3eea0}.highlight .ss{color:#7be2f9}.highlight .bp{color:#fdce68}.highlight .vc{color:#fdce68}.highlight .vg{color:#fdce68}.highlight .vi{color:#f9867b}.highlight .il{color:#eddc96}.highlight .gu{color:#75715e}.highlight .gd{color:#f92672}.highlight .gi{color:#a6e22e}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}html{font-size:.875rem !important}@media(min-width: 31.25rem){html{font-size:1rem !important}}body{font-family:system-ui,-apple-system,blinkmacsystemfont,"Segoe UI",roboto,"Helvetica Neue",arial,sans-serif,"Segoe UI Emoji";font-size:inherit;line-height:1.4;color:#e6e1e8;background-color:#27262b;overflow-wrap:break-word}ol,ul,dl,pre,address,blockquote,table,div,hr,form,fieldset,noscript .table-wrapper{margin-top:0}h1,h2,h3,h4,h5,h6,#toctitle{margin-top:0;margin-bottom:1em;font-weight:500;line-height:1.25;color:#f5f6fa}p{margin-top:1em;margin-bottom:1em}a{color:#2c84fa;text-decoration:none}a:not([class]){text-decoration:underline;text-decoration-color:#44434d;text-underline-offset:2px}a:not([class]):hover{text-decoration-color:rgba(44,132,250,.45)}code{font-family:"SFMono-Regular",menlo,consolas,monospace;font-size:.75em;line-height:1.4}figure,pre{margin:0}li{margin:.25em 0}img{max-width:100%;height:auto}hr{height:1px;padding:0;margin:2rem 0;background-color:#44434d;border:0}blockquote{margin:10px 0;margin-block-start:0;margin-inline-start:0;padding-left:1rem;border-left:3px solid #44434d}.side-bar{z-index:0;display:flex;flex-wrap:wrap;background-color:#27262b}@media(min-width: 50rem){.side-bar{flex-flow:column nowrap;position:fixed;width:15.5rem;height:100%;border-right:1px solid #44434d;align-items:flex-end}}@media(min-width: 66.5rem){.side-bar{width:calc((100% - 66.5rem)/2 + 16.5rem);min-width:16.5rem}}@media(min-width: 50rem){.side-bar+.main{margin-left:15.5rem}}@media(min-width: 66.5rem){.side-bar+.main{margin-left:max(16.5rem,(100% - 66.5rem)/2 + 16.5rem)}}.side-bar+.main .main-header{display:none;background-color:#27262b}@media(min-width: 50rem){.side-bar+.main .main-header{display:flex;background-color:#27262b}}.side-bar+.main .main-header.nav-open{display:block}@media(min-width: 50rem){.side-bar+.main .main-header.nav-open{display:flex}}.main{margin:auto}@media(min-width: 50rem){.main{position:relative;max-width:50rem}}.main-content-wrap{padding-top:1rem;padding-bottom:1rem;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.main-content-wrap{padding-right:2rem;padding-left:2rem}}@media(min-width: 50rem){.main-content-wrap{padding-top:2rem;padding-bottom:2rem}}.main-header{z-index:0;border-bottom:1px solid #44434d}@media(min-width: 50rem){.main-header{display:flex;justify-content:space-between;height:3.75rem}}.site-nav,.site-header,.site-footer{width:100%}@media(min-width: 66.5rem){.site-nav,.site-header,.site-footer{width:16.5rem}}.site-nav{display:none}.site-nav.nav-open{display:block}@media(min-width: 50rem){.site-nav{display:block;padding-top:3rem;padding-bottom:1rem;overflow-y:auto;flex:1 1 auto}}.site-header{display:flex;min-height:3.75rem;align-items:center}@media(min-width: 50rem){.site-header{height:3.75rem;max-height:3.75rem;border-bottom:1px solid #44434d}}.site-title{flex-grow:1;display:flex;height:100%;align-items:center;padding-top:.75rem;padding-bottom:.75rem;color:#f5f6fa;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.site-title{padding-right:2rem;padding-left:2rem}}.site-title{font-size:1.125rem !important}@media(min-width: 31.25rem){.site-title{font-size:1.5rem !important;line-height:1.25}}@media(min-width: 50rem){.site-title{padding-top:.5rem;padding-bottom:.5rem}}.site-logo{width:100%;height:100%;background-image:url("/assets/images/logo.png");background-repeat:no-repeat;background-position:left center;background-size:contain}.site-button{display:flex;height:100%;padding:1rem;align-items:center}@media(min-width: 50rem){.site-header .site-button{display:none}}.site-title:hover{background-image:linear-gradient(-90deg, rgb(31.6333333333, 30.8222222222, 34.8777777778) 0%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0.8) 80%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0) 100%)}.site-button:hover{background-image:linear-gradient(-90deg, rgb(31.6333333333, 30.8222222222, 34.8777777778) 0%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0.8) 100%)}body{position:relative;padding-bottom:4rem;overflow-y:scroll}@media(min-width: 50rem){body{position:static;padding-bottom:0}}.site-footer{position:absolute;bottom:0;left:0;padding-top:1rem;padding-bottom:1rem;color:#959396;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.site-footer{padding-right:2rem;padding-left:2rem}}.site-footer{font-size:.6875rem !important}@media(min-width: 31.25rem){.site-footer{font-size:.75rem !important}}@media(min-width: 50rem){.site-footer{position:static;justify-self:end}}.icon{width:1.5rem;height:1.5rem;color:#2c84fa}.main-content{line-height:1.6}.main-content ol,.main-content ul,.main-content dl,.main-content pre,.main-content address,.main-content blockquote,.main-content .table-wrapper{margin-top:.5em}.main-content a{overflow:hidden;text-overflow:ellipsis}.main-content ul,.main-content ol{padding-left:1.5em}.main-content li .highlight{margin-top:.25rem}.main-content ol{list-style-type:none;counter-reset:step-counter}.main-content ol>li{position:relative}.main-content ol>li::before{position:absolute;top:.2em;left:-1.6em;color:#959396;content:counter(step-counter);counter-increment:step-counter}.main-content ol>li::before{font-size:.75rem !important}@media(min-width: 31.25rem){.main-content ol>li::before{font-size:.875rem !important}}@media(min-width: 31.25rem){.main-content ol>li::before{top:.11em}}.main-content ol>li ol{counter-reset:sub-counter}.main-content ol>li ol>li::before{content:counter(sub-counter, lower-alpha);counter-increment:sub-counter}.main-content ul{list-style:none}.main-content ul>li::before{position:absolute;margin-left:-1.4em;color:#959396;content:"β€’"}.main-content .task-list-item::before{content:""}.main-content .task-list-item-checkbox{margin-right:.6em;margin-left:-1.4em}.main-content hr+*{margin-top:0}.main-content h1:first-of-type{margin-top:.5em}.main-content dl{display:grid;grid-template:auto/10em 1fr}.main-content dt,.main-content dd{margin:.25em 0}.main-content dt{grid-column:1;font-weight:500;text-align:right}.main-content dt::after{content:":"}.main-content dd{grid-column:2;margin-bottom:0;margin-left:1em}.main-content dd blockquote:first-child,.main-content dd div:first-child,.main-content dd dl:first-child,.main-content dd dt:first-child,.main-content dd h1:first-child,.main-content dd h2:first-child,.main-content dd h3:first-child,.main-content dd h4:first-child,.main-content dd h5:first-child,.main-content dd h6:first-child,.main-content dd li:first-child,.main-content dd ol:first-child,.main-content dd p:first-child,.main-content dd pre:first-child,.main-content dd table:first-child,.main-content dd ul:first-child,.main-content dd .table-wrapper:first-child{margin-top:0}.main-content dd dl:first-child dt:first-child,.main-content dd dl:first-child dd:nth-child(2),.main-content ol dl:first-child dt:first-child,.main-content ol dl:first-child dd:nth-child(2),.main-content ul dl:first-child dt:first-child,.main-content ul dl:first-child dd:nth-child(2){margin-top:0}.main-content .anchor-heading{position:absolute;right:-1rem;width:1.5rem;height:100%;padding-right:.25rem;padding-left:.25rem;overflow:visible}@media(min-width: 50rem){.main-content .anchor-heading{right:auto;left:-1.5rem}}.main-content .anchor-heading svg{display:inline-block;width:100%;height:100%;color:#2c84fa;visibility:hidden}.main-content .anchor-heading:hover svg,.main-content .anchor-heading:focus svg,.main-content h1:hover>.anchor-heading svg,.main-content h2:hover>.anchor-heading svg,.main-content h3:hover>.anchor-heading svg,.main-content h4:hover>.anchor-heading svg,.main-content h5:hover>.anchor-heading svg,.main-content h6:hover>.anchor-heading svg{visibility:visible}.main-content summary{cursor:pointer}.main-content h1,.main-content h2,.main-content h3,.main-content h4,.main-content h5,.main-content h6,.main-content #toctitle{position:relative;margin-top:1.5em;margin-bottom:.25em}.main-content h1+table,.main-content h1+.table-wrapper,.main-content h1+.code-example,.main-content h1+.highlighter-rouge,.main-content h1+.sectionbody .listingblock,.main-content h2+table,.main-content h2+.table-wrapper,.main-content h2+.code-example,.main-content h2+.highlighter-rouge,.main-content h2+.sectionbody .listingblock,.main-content h3+table,.main-content h3+.table-wrapper,.main-content h3+.code-example,.main-content h3+.highlighter-rouge,.main-content h3+.sectionbody .listingblock,.main-content h4+table,.main-content h4+.table-wrapper,.main-content h4+.code-example,.main-content h4+.highlighter-rouge,.main-content h4+.sectionbody .listingblock,.main-content h5+table,.main-content h5+.table-wrapper,.main-content h5+.code-example,.main-content h5+.highlighter-rouge,.main-content h5+.sectionbody .listingblock,.main-content h6+table,.main-content h6+.table-wrapper,.main-content h6+.code-example,.main-content h6+.highlighter-rouge,.main-content h6+.sectionbody .listingblock,.main-content #toctitle+table,.main-content #toctitle+.table-wrapper,.main-content #toctitle+.code-example,.main-content #toctitle+.highlighter-rouge,.main-content #toctitle+.sectionbody .listingblock{margin-top:1em}.main-content h1+p:not(.label),.main-content h2+p:not(.label),.main-content h3+p:not(.label),.main-content h4+p:not(.label),.main-content h5+p:not(.label),.main-content h6+p:not(.label),.main-content #toctitle+p:not(.label){margin-top:0}.main-content>h1:first-child,.main-content>h2:first-child,.main-content>h3:first-child,.main-content>h4:first-child,.main-content>h5:first-child,.main-content>h6:first-child,.main-content>.sect1:first-child>h2,.main-content>.sect2:first-child>h3,.main-content>.sect3:first-child>h4,.main-content>.sect4:first-child>h5,.main-content>.sect5:first-child>h6{margin-top:.5rem}.nav-list{padding:0;margin-top:0;margin-bottom:0;list-style:none}.nav-list .nav-list-item{position:relative;margin:0}.nav-list .nav-list-item{font-size:.875rem !important}@media(min-width: 31.25rem){.nav-list .nav-list-item{font-size:1rem !important}}@media(min-width: 50rem){.nav-list .nav-list-item{font-size:.75rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.nav-list .nav-list-item{font-size:.875rem !important}}.nav-list .nav-list-item .nav-list-link{display:block;min-height:3rem;padding-top:.25rem;padding-bottom:.25rem;line-height:2.5rem;padding-right:3rem;padding-left:1rem}@media(min-width: 50rem){.nav-list .nav-list-item .nav-list-link{min-height:2rem;line-height:1.5rem;padding-right:2rem;padding-left:2rem}}.nav-list .nav-list-item .nav-list-link.external>svg{width:1rem;height:1rem;vertical-align:text-bottom}.nav-list .nav-list-item .nav-list-link.active{font-weight:600;text-decoration:none}.nav-list .nav-list-item .nav-list-link:hover,.nav-list .nav-list-item .nav-list-link.active{background-image:linear-gradient(-90deg, rgb(31.6333333333, 30.8222222222, 34.8777777778) 0%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0.8) 80%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0) 100%)}.nav-list .nav-list-item .nav-list-expander{position:absolute;right:0;width:3rem;height:3rem;padding:0.75rem;color:#2c84fa}@media(min-width: 50rem){.nav-list .nav-list-item .nav-list-expander{width:2rem;height:2rem;padding:0.5rem}}.nav-list .nav-list-item .nav-list-expander:hover{background-image:linear-gradient(-90deg, rgb(31.6333333333, 30.8222222222, 34.8777777778) 0%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0.8) 100%)}.nav-list .nav-list-item .nav-list-expander svg{transform:rotate(90deg)}.nav-list .nav-list-item>.nav-list{display:none;padding-left:.75rem;list-style:none}.nav-list .nav-list-item>.nav-list .nav-list-item{position:relative}.nav-list .nav-list-item>.nav-list .nav-list-item .nav-list-link{color:#959396}.nav-list .nav-list-item>.nav-list .nav-list-item .nav-list-expander{color:#959396}.nav-list .nav-list-item.active>.nav-list-expander svg{transform:rotate(-90deg)}.nav-list .nav-list-item.active>.nav-list{display:block}.nav-category{padding:.5rem 1rem;font-weight:600;text-align:start;text-transform:uppercase;border-bottom:1px solid #44434d}.nav-category{font-size:.6875rem !important}@media(min-width: 31.25rem){.nav-category{font-size:.75rem !important}}@media(min-width: 50rem){.nav-category{padding:.5rem 2rem;margin-top:1rem;text-align:start}.nav-category:first-child{margin-top:0}}.nav-list.nav-category-list>.nav-list-item{margin:0}.nav-list.nav-category-list>.nav-list-item>.nav-list{padding:0}.nav-list.nav-category-list>.nav-list-item>.nav-list>.nav-list-item>.nav-list-link{color:#2c84fa}.nav-list.nav-category-list>.nav-list-item>.nav-list>.nav-list-item>.nav-list-expander{color:#2c84fa}.aux-nav{height:100%;overflow-x:auto}.aux-nav{font-size:.6875rem !important}@media(min-width: 31.25rem){.aux-nav{font-size:.75rem !important}}.aux-nav .aux-nav-list{display:flex;height:100%;padding:0;margin:0;list-style:none}.aux-nav .aux-nav-list-item{display:inline-block;height:100%;padding:0;margin:0}@media(min-width: 50rem){.aux-nav{padding-right:1rem}}@media(min-width: 50rem){.breadcrumb-nav{margin-top:-1rem}}.breadcrumb-nav-list{padding-left:0;margin-bottom:.75rem;list-style:none}.breadcrumb-nav-list-item{display:table-cell}.breadcrumb-nav-list-item{font-size:.6875rem !important}@media(min-width: 31.25rem){.breadcrumb-nav-list-item{font-size:.75rem !important}}.breadcrumb-nav-list-item::before{display:none}.breadcrumb-nav-list-item::after{display:inline-block;margin-right:.5rem;margin-left:.5rem;color:#959396;content:"/"}.breadcrumb-nav-list-item:last-child::after{content:""}h1,.text-alpha{font-weight:300}h1,.text-alpha{font-size:2rem !important;line-height:1.25}@media(min-width: 31.25rem){h1,.text-alpha{font-size:2.25rem !important}}h2,.text-beta,#toctitle{font-size:1.125rem !important}@media(min-width: 31.25rem){h2,.text-beta,#toctitle{font-size:1.5rem !important;line-height:1.25}}h3,.text-gamma{font-size:1rem !important}@media(min-width: 31.25rem){h3,.text-gamma{font-size:1.125rem !important}}h4,.text-delta{font-weight:400;text-transform:uppercase;letter-spacing:.1em}h4,.text-delta{font-size:.6875rem !important}@media(min-width: 31.25rem){h4,.text-delta{font-size:.75rem !important}}h4 code{text-transform:none}h5,.text-epsilon{font-size:.75rem !important}@media(min-width: 31.25rem){h5,.text-epsilon{font-size:.875rem !important}}h6,.text-zeta{font-size:.6875rem !important}@media(min-width: 31.25rem){h6,.text-zeta{font-size:.75rem !important}}.text-small{font-size:.6875rem !important}@media(min-width: 31.25rem){.text-small{font-size:.75rem !important}}.text-mono{font-family:"SFMono-Regular",menlo,consolas,monospace !important}.text-left{text-align:left !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.label:not(g),.label-blue:not(g){display:inline-block;padding:.16em .56em;margin-right:.5rem;margin-left:.5rem;color:#fff;text-transform:uppercase;vertical-align:middle;background-color:#2869e6;border-radius:12px}.label:not(g),.label-blue:not(g){font-size:.6875rem !important}@media(min-width: 31.25rem){.label:not(g),.label-blue:not(g){font-size:.75rem !important}}.label-green:not(g){background-color:#009c7b}.label-purple:not(g){background-color:#5e41d0}.label-red:not(g){background-color:#e94c4c}.label-yellow:not(g){color:#44434d;background-color:#f7d12e}.btn{display:inline-block;box-sizing:border-box;padding:.3em 1em;margin:0;font-family:inherit;font-size:inherit;font-weight:500;line-height:1.5;color:#2c84fa;text-decoration:none;vertical-align:baseline;cursor:pointer;background-color:#302d36;border-width:0;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);appearance:none}.btn:focus{text-decoration:none;outline:none;box-shadow:0 0 0 3px rgba(0,0,255,.25)}.btn:focus:hover,.btn.selected:focus{box-shadow:0 0 0 3px rgba(0,0,255,.25)}.btn:hover,.btn.zeroclipboard-is-hover{color:rgb(34.0361111111,126.1916666667,249.7638888889)}.btn:hover,.btn:active,.btn.zeroclipboard-is-hover,.btn.zeroclipboard-is-active{text-decoration:none;background-color:hsl(260,9.0909090909%,18.4117647059%)}.btn:active,.btn.selected,.btn.zeroclipboard-is-active{background-color:hsl(260,9.0909090909%,16.4117647059%);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn.selected:hover{background-color:hsl(0,0%,81.2745098039%)}.btn:disabled,.btn:disabled:hover,.btn.disabled,.btn.disabled:hover{color:hsla(0,0%,40%,.5);cursor:default;background-color:rgba(229,229,229,.5);background-image:none;box-shadow:none}.btn-outline{color:#2c84fa;background:rgba(0,0,0,0);box-shadow:inset 0 0 0 2px #e6e1e8}.btn-outline:hover,.btn-outline:active,.btn-outline.zeroclipboard-is-hover,.btn-outline.zeroclipboard-is-active{color:rgb(24.0722222222,120.3833333333,249.5277777778);text-decoration:none;background-color:rgba(0,0,0,0);box-shadow:inset 0 0 0 3px #e6e1e8}.btn-outline:focus{text-decoration:none;outline:none;box-shadow:inset 0 0 0 2px #5c5962,0 0 0 3px rgba(0,0,255,.25)}.btn-outline:focus:hover,.btn-outline.selected:focus{box-shadow:inset 0 0 0 2px #5c5962}.btn-primary{color:#fff;background-color:rgb(36.1802816901,72.3605633803,166.6197183099);background-image:linear-gradient(rgb(42.5492957746, 85.0985915493, 195.9507042254), rgb(36.1802816901, 72.3605633803, 166.6197183099));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-primary:hover,.btn-primary.zeroclipboard-is-hover{color:#fff;background-color:rgb(34.3605633803,68.7211267606,158.2394366197);background-image:linear-gradient(rgb(39.8197183099, 79.6394366197, 183.3802816901), rgb(34.3605633803, 68.7211267606, 158.2394366197))}.btn-primary:active,.btn-primary.selected,.btn-primary.zeroclipboard-is-active{background-color:rgb(33.4507042254,66.9014084507,154.0492957746);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-primary.selected:hover{background-color:rgb(28.9014084507,57.8028169014,133.0985915493)}.btn-purple{color:#fff;background-color:rgb(87.0708860759,56.8227848101,205.9772151899);background-image:linear-gradient(rgb(111.3227848101, 85.4430379747, 213.0569620253), rgb(87.0708860759, 56.8227848101, 205.9772151899));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-purple:hover,.btn-purple.zeroclipboard-is-hover{color:#fff;background-color:rgb(81.0025316456,50.0936708861,202.5063291139);background-image:linear-gradient(rgb(100.9291139241, 73.1772151899, 210.0227848101), rgb(81.0025316456, 50.0936708861, 202.5063291139))}.btn-purple:active,.btn-purple.selected,.btn-purple.zeroclipboard-is-active{background-color:rgb(79.3670886076,49.082278481,198.417721519);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-purple.selected:hover{background-color:rgb(71.1898734177,44.0253164557,177.9746835443)}.btn-blue{color:#fff;background-color:rgb(34.0361111111,126.1916666667,249.7638888889);background-image:linear-gradient(rgb(68.9097222222, 146.5208333333, 250.5902777778), rgb(34.0361111111, 126.1916666667, 249.7638888889));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-blue:hover,.btn-blue.zeroclipboard-is-hover{color:#fff;background-color:rgb(24.0722222222,120.3833333333,249.5277777778);background-image:linear-gradient(rgb(53.9638888889, 137.8083333333, 250.2361111111), rgb(24.0722222222, 120.3833333333, 249.5277777778))}.btn-blue:active,.btn-blue.selected,.btn-blue.zeroclipboard-is-active{background-color:rgb(19.0902777778,117.4791666667,249.4097222222);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-blue.selected:hover{background-color:rgb(5.625,104.625,237.375)}.btn-green{color:#fff;background-color:rgb(16.1242424242,171.6757575758,125.2);background-image:linear-gradient(rgb(19.1893939394, 204.3106060606, 149), rgb(16.1242424242, 171.6757575758, 125.2));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-green:hover,.btn-green.zeroclipboard-is-hover{color:#fff;background-color:rgb(15.2484848485,162.3515151515,118.4);background-image:linear-gradient(rgb(17.8757575758, 190.3242424242, 138.8), rgb(15.2484848485, 162.3515151515, 118.4))}.btn-green:active,.btn-green.selected,.btn-green.zeroclipboard-is-active{background-color:rgb(14.8106060606,157.6893939394,115);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-green.selected:hover{background-color:rgb(12.6212121212,134.3787878788,98)}.btn-reset{background:none;border:none;margin:0;text-align:inherit;font:inherit;border-radius:0;appearance:none}.search{position:relative;z-index:2;flex-grow:1;height:4rem;padding:.5rem;transition:padding linear 200ms}@media(min-width: 50rem){.search{position:relative !important;width:auto !important;height:100% !important;padding:0;transition:none}}.search-input-wrap{position:relative;z-index:1;height:3rem;overflow:hidden;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);transition:height linear 200ms}@media(min-width: 50rem){.search-input-wrap{position:absolute;width:100%;max-width:33.5rem;height:100% !important;border-radius:0;box-shadow:none;transition:width ease 400ms}}.search-input{position:absolute;width:100%;height:100%;padding:.5rem 1rem .5rem 2.5rem;font-size:1rem;color:#e6e1e8;background-color:#302d36;border-top:0;border-right:0;border-bottom:0;border-left:0;border-radius:0}@media(min-width: 50rem){.search-input{padding:.5rem 1rem .5rem 3.5rem;font-size:.875rem;background-color:#27262b;transition:padding-left linear 200ms}}.search-input:focus{outline:0}.search-input:focus+.search-label .search-icon{color:#2c84fa}.search-label{position:absolute;display:flex;height:100%;padding-left:1rem}@media(min-width: 50rem){.search-label{padding-left:2rem;transition:padding-left linear 200ms}}.search-label .search-icon{width:1.2rem;height:1.2rem;align-self:center;color:#959396}.search-results{position:absolute;left:0;display:none;width:100%;max-height:calc(100% - 4rem);overflow-y:auto;background-color:#302d36;border-bottom-right-radius:4px;border-bottom-left-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}@media(min-width: 50rem){.search-results{top:100%;width:33.5rem;max-height:calc(100vh - 200%) !important}}.search-results-list{padding-left:0;margin-bottom:.25rem;list-style:none}.search-results-list{font-size:.875rem !important}@media(min-width: 31.25rem){.search-results-list{font-size:1rem !important}}@media(min-width: 50rem){.search-results-list{font-size:.75rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.search-results-list{font-size:.875rem !important}}.search-results-list-item{padding:0;margin:0}.search-result{display:block;padding:.25rem .75rem}.search-result:hover,.search-result.active{background-color:hsl(252,6.1728395062%,12.8823529412%)}.search-result-title{display:block;padding-top:.5rem;padding-bottom:.5rem}@media(min-width: 31.25rem){.search-result-title{display:inline-block;width:40%;padding-right:.5rem;vertical-align:top}}.search-result-doc{display:flex;align-items:center;word-wrap:break-word}.search-result-doc.search-result-doc-parent{opacity:.5}.search-result-doc.search-result-doc-parent{font-size:.75rem !important}@media(min-width: 31.25rem){.search-result-doc.search-result-doc-parent{font-size:.875rem !important}}@media(min-width: 50rem){.search-result-doc.search-result-doc-parent{font-size:.6875rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.search-result-doc.search-result-doc-parent{font-size:.75rem !important}}.search-result-doc .search-result-icon{width:1rem;height:1rem;margin-right:.5rem;color:#2c84fa;flex-shrink:0}.search-result-doc .search-result-doc-title{overflow:auto}.search-result-section{margin-left:1.5rem;word-wrap:break-word}.search-result-rel-url{display:block;margin-left:1.5rem;overflow:hidden;color:#959396;text-overflow:ellipsis;white-space:nowrap}.search-result-rel-url{font-size:.5625rem !important}@media(min-width: 31.25rem){.search-result-rel-url{font-size:.625rem !important}}.search-result-previews{display:block;padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;margin-left:.5rem;color:#959396;word-wrap:break-word;border-left:1px solid;border-left-color:#44434d}.search-result-previews{font-size:.6875rem !important}@media(min-width: 31.25rem){.search-result-previews{font-size:.75rem !important}}@media(min-width: 31.25rem){.search-result-previews{display:inline-block;width:60%;padding-left:.5rem;margin-left:0;vertical-align:top}}.search-result-preview+.search-result-preview{margin-top:.25rem}.search-result-highlight{font-weight:bold}.search-no-result{padding:.5rem .75rem}.search-no-result{font-size:.75rem !important}@media(min-width: 31.25rem){.search-no-result{font-size:.875rem !important}}.search-button{position:fixed;right:1rem;bottom:1rem;display:flex;width:3.5rem;height:3.5rem;background-color:#302d36;border:1px solid rgba(44,132,250,.3);border-radius:1.75rem;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);align-items:center;justify-content:center}.search-overlay{position:fixed;top:0;left:0;z-index:1;width:0;height:0;background-color:rgba(0,0,0,.3);opacity:0;transition:opacity ease 400ms,width 0s 400ms,height 0s 400ms}.search-active .search{position:fixed;top:0;left:0;width:100%;height:100%;padding:0}.search-active .search-input-wrap{height:4rem;border-radius:0}@media(min-width: 50rem){.search-active .search-input-wrap{width:33.5rem;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}}.search-active .search-input{background-color:#302d36}@media(min-width: 50rem){.search-active .search-input{padding-left:2.3rem}}@media(min-width: 50rem){.search-active .search-label{padding-left:.6rem}}.search-active .search-results{display:block}.search-active .search-overlay{width:100%;height:100%;opacity:1;transition:opacity ease 400ms,width 0s,height 0s}@media(min-width: 50rem){.search-active .main{position:fixed;right:0;left:0}}.search-active .main-header{padding-top:4rem}@media(min-width: 50rem){.search-active .main-header{padding-top:0}}.table-wrapper{display:block;width:100%;max-width:100%;margin-bottom:1.5rem;overflow-x:auto;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}table{display:table;min-width:100%;border-collapse:separate}th,td{min-width:7.5rem;padding:.5rem .75rem;background-color:#302d36;border-bottom:1px solid rgba(68,67,77,.5);border-left:1px solid #44434d}th,td{font-size:.75rem !important}@media(min-width: 31.25rem){th,td{font-size:.875rem !important}}th:first-of-type,td:first-of-type{border-left:0}tbody tr:last-of-type th,tbody tr:last-of-type td{border-bottom:0}tbody tr:last-of-type td{padding-bottom:.75rem}thead th{border-bottom:1px solid #44434d}:not(pre,figure)>code{padding:.2em .15em;font-weight:400;background-color:#31343f;border:1px solid #44434d;border-radius:4px}a:visited code{border-color:#44434d}div.highlighter-rouge,div.listingblock>div.content,figure.highlight{margin-top:0;margin-bottom:.75rem;background-color:#31343f;border-radius:4px;box-shadow:none;-webkit-overflow-scrolling:touch;position:relative;padding:0}div.highlighter-rouge>button,div.listingblock>div.content>button,figure.highlight>button{width:.75rem;opacity:0;position:absolute;top:0;right:0;border:.75rem solid #31343f;background-color:#31343f;color:#e6e1e8;box-sizing:content-box}div.highlighter-rouge>button svg,div.listingblock>div.content>button svg,figure.highlight>button svg{fill:#e6e1e8}div.highlighter-rouge>button:active,div.listingblock>div.content>button:active,figure.highlight>button:active{text-decoration:none;outline:none;opacity:1}div.highlighter-rouge>button:focus,div.listingblock>div.content>button:focus,figure.highlight>button:focus{opacity:1}div.highlighter-rouge:hover>button,div.listingblock>div.content:hover>button,figure.highlight:hover>button{cursor:copy;opacity:1}div.highlighter-rouge div.highlight{overflow-x:auto;padding:.75rem;margin:0;border:0}div.highlighter-rouge pre.highlight,div.highlighter-rouge code{padding:0;margin:0;border:0}div.listingblock{margin-top:0;margin-bottom:.75rem}div.listingblock div.content{overflow-x:auto;padding:.75rem;margin:0;border:0}div.listingblock div.content>pre,div.listingblock code{padding:0;margin:0;border:0}figure.highlight pre,figure.highlight :not(pre)>code{overflow-x:auto;padding:.75rem;margin:0;border:0}.highlight .table-wrapper{padding:.75rem 0;margin:0;border:0;box-shadow:none}.highlight .table-wrapper td,.highlight .table-wrapper pre{min-width:0;padding:0;background-color:#31343f;border:0}.highlight .table-wrapper td,.highlight .table-wrapper pre{font-size:.6875rem !important}@media(min-width: 31.25rem){.highlight .table-wrapper td,.highlight .table-wrapper pre{font-size:.75rem !important}}.highlight .table-wrapper td.gl{width:1em;padding-right:.75rem;padding-left:.75rem}.highlight .table-wrapper pre{margin:0;line-height:2}.code-example,.listingblock>.title{padding:.75rem;margin-bottom:.75rem;overflow:auto;border:1px solid #44434d;border-radius:4px}.code-example+.highlighter-rouge,.code-example+.sectionbody .listingblock,.code-example+.content,.code-example+figure.highlight,.listingblock>.title+.highlighter-rouge,.listingblock>.title+.sectionbody .listingblock,.listingblock>.title+.content,.listingblock>.title+figure.highlight{position:relative;margin-top:-1rem;border-right:1px solid #44434d;border-bottom:1px solid #44434d;border-left:1px solid #44434d;border-top-left-radius:0;border-top-right-radius:0}code.language-mermaid{padding:0;background-color:inherit;border:0}.highlight,pre.highlight{background:#31343f;color:#dee2f7}.highlight pre{background:#31343f}.text-grey-dk-000{color:#959396 !important}.text-grey-dk-100{color:#5c5962 !important}.text-grey-dk-200{color:#44434d !important}.text-grey-dk-250{color:#302d36 !important}.text-grey-dk-300{color:#27262b !important}.text-grey-lt-000{color:#f5f6fa !important}.text-grey-lt-100{color:#eeebee !important}.text-grey-lt-200{color:#ecebed !important}.text-grey-lt-300{color:#e6e1e8 !important}.text-blue-000{color:#2c84fa !important}.text-blue-100{color:#2869e6 !important}.text-blue-200{color:#264caf !important}.text-blue-300{color:#183385 !important}.text-green-000{color:#41d693 !important}.text-green-100{color:#11b584 !important}.text-green-200{color:#009c7b !important}.text-green-300{color:#026e57 !important}.text-purple-000{color:#7253ed !important}.text-purple-100{color:#5e41d0 !important}.text-purple-200{color:#4e26af !important}.text-purple-300{color:#381885 !important}.text-yellow-000{color:#ffeb82 !important}.text-yellow-100{color:#fadf50 !important}.text-yellow-200{color:#f7d12e !important}.text-yellow-300{color:#e7af06 !important}.text-red-000{color:#f77e7e !important}.text-red-100{color:#f96e65 !important}.text-red-200{color:#e94c4c !important}.text-red-300{color:#dd2e2e !important}.bg-grey-dk-000{background-color:#959396 !important}.bg-grey-dk-100{background-color:#5c5962 !important}.bg-grey-dk-200{background-color:#44434d !important}.bg-grey-dk-250{background-color:#302d36 !important}.bg-grey-dk-300{background-color:#27262b !important}.bg-grey-lt-000{background-color:#f5f6fa !important}.bg-grey-lt-100{background-color:#eeebee !important}.bg-grey-lt-200{background-color:#ecebed !important}.bg-grey-lt-300{background-color:#e6e1e8 !important}.bg-blue-000{background-color:#2c84fa !important}.bg-blue-100{background-color:#2869e6 !important}.bg-blue-200{background-color:#264caf !important}.bg-blue-300{background-color:#183385 !important}.bg-green-000{background-color:#41d693 !important}.bg-green-100{background-color:#11b584 !important}.bg-green-200{background-color:#009c7b !important}.bg-green-300{background-color:#026e57 !important}.bg-purple-000{background-color:#7253ed !important}.bg-purple-100{background-color:#5e41d0 !important}.bg-purple-200{background-color:#4e26af !important}.bg-purple-300{background-color:#381885 !important}.bg-yellow-000{background-color:#ffeb82 !important}.bg-yellow-100{background-color:#fadf50 !important}.bg-yellow-200{background-color:#f7d12e !important}.bg-yellow-300{background-color:#e7af06 !important}.bg-red-000{background-color:#f77e7e !important}.bg-red-100{background-color:#f96e65 !important}.bg-red-200{background-color:#e94c4c !important}.bg-red-300{background-color:#dd2e2e !important}.d-block{display:block !important}.d-flex{display:flex !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-none{display:none !important}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}.float-left{float:left !important}.float-right{float:right !important}.flex-justify-start{justify-content:flex-start !important}.flex-justify-end{justify-content:flex-end !important}.flex-justify-between{justify-content:space-between !important}.flex-justify-around{justify-content:space-around !important}.v-align-baseline{vertical-align:baseline !important}.v-align-bottom{vertical-align:bottom !important}.v-align-middle{vertical-align:middle !important}.v-align-text-bottom{vertical-align:text-bottom !important}.v-align-text-top{vertical-align:text-top !important}.v-align-top{vertical-align:top !important}.fs-1{font-size:.5625rem !important}@media(min-width: 31.25rem){.fs-1{font-size:.625rem !important}}.fs-2{font-size:.6875rem !important}@media(min-width: 31.25rem){.fs-2{font-size:.75rem !important}}.fs-3{font-size:.75rem !important}@media(min-width: 31.25rem){.fs-3{font-size:.875rem !important}}.fs-4{font-size:.875rem !important}@media(min-width: 31.25rem){.fs-4{font-size:1rem !important}}.fs-5{font-size:1rem !important}@media(min-width: 31.25rem){.fs-5{font-size:1.125rem !important}}.fs-6{font-size:1.125rem !important}@media(min-width: 31.25rem){.fs-6{font-size:1.5rem !important;line-height:1.25}}.fs-7{font-size:1.5rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-7{font-size:2rem !important}}.fs-8{font-size:2rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-8{font-size:2.25rem !important}}.fs-9{font-size:2.25rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-9{font-size:2.625rem !important}}.fs-10{font-size:2.625rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-10{font-size:3rem !important}}.fw-300{font-weight:300 !important}.fw-400{font-weight:400 !important}.fw-500{font-weight:500 !important}.fw-700{font-weight:700 !important}.lh-0{line-height:0 !important}.lh-default{line-height:1.4}.lh-tight{line-height:1.25}.ls-5{letter-spacing:.05em !important}.ls-10{letter-spacing:.1em !important}.ls-0{letter-spacing:0 !important}.text-uppercase{text-transform:uppercase !important}.list-style-none{padding:0 !important;margin:0 !important;list-style:none !important}.list-style-none li::before{display:none !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-0{margin-right:-0 !important;margin-left:-0 !important}.mx-0-auto{margin-right:auto !important;margin-left:auto !important}.m-1{margin:0.25rem !important}.mt-1{margin-top:0.25rem !important}.mr-1{margin-right:0.25rem !important}.mb-1{margin-bottom:0.25rem !important}.ml-1{margin-left:0.25rem !important}.mx-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-1-auto{margin-right:auto !important;margin-left:auto !important}.m-2{margin:0.5rem !important}.mt-2{margin-top:0.5rem !important}.mr-2{margin-right:0.5rem !important}.mb-2{margin-bottom:0.5rem !important}.ml-2{margin-left:0.5rem !important}.mx-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-2-auto{margin-right:auto !important;margin-left:auto !important}.m-3{margin:0.75rem !important}.mt-3{margin-top:0.75rem !important}.mr-3{margin-right:0.75rem !important}.mb-3{margin-bottom:0.75rem !important}.ml-3{margin-left:0.75rem !important}.mx-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}.mx-3-auto{margin-right:auto !important;margin-left:auto !important}.m-4{margin:1rem !important}.mt-4{margin-top:1rem !important}.mr-4{margin-right:1rem !important}.mb-4{margin-bottom:1rem !important}.ml-4{margin-left:1rem !important}.mx-4{margin-right:1rem !important;margin-left:1rem !important}.my-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-4{margin-right:-1rem !important;margin-left:-1rem !important}.mx-4-auto{margin-right:auto !important;margin-left:auto !important}.m-5{margin:1.5rem !important}.mt-5{margin-top:1.5rem !important}.mr-5{margin-right:1.5rem !important}.mb-5{margin-bottom:1.5rem !important}.ml-5{margin-left:1.5rem !important}.mx-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-5-auto{margin-right:auto !important;margin-left:auto !important}.m-6{margin:2rem !important}.mt-6{margin-top:2rem !important}.mr-6{margin-right:2rem !important}.mb-6{margin-bottom:2rem !important}.ml-6{margin-left:2rem !important}.mx-6{margin-right:2rem !important;margin-left:2rem !important}.my-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-6{margin-right:-2rem !important;margin-left:-2rem !important}.mx-6-auto{margin-right:auto !important;margin-left:auto !important}.m-7{margin:2.5rem !important}.mt-7{margin-top:2.5rem !important}.mr-7{margin-right:2.5rem !important}.mb-7{margin-bottom:2.5rem !important}.ml-7{margin-left:2.5rem !important}.mx-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}.mx-7-auto{margin-right:auto !important;margin-left:auto !important}.m-8{margin:3rem !important}.mt-8{margin-top:3rem !important}.mr-8{margin-right:3rem !important}.mb-8{margin-bottom:3rem !important}.ml-8{margin-left:3rem !important}.mx-8{margin-right:3rem !important;margin-left:3rem !important}.my-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-8{margin-right:-3rem !important;margin-left:-3rem !important}.mx-8-auto{margin-right:auto !important;margin-left:auto !important}.m-9{margin:3.5rem !important}.mt-9{margin-top:3.5rem !important}.mr-9{margin-right:3.5rem !important}.mb-9{margin-bottom:3.5rem !important}.ml-9{margin-left:3.5rem !important}.mx-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}.mx-9-auto{margin-right:auto !important;margin-left:auto !important}.m-10{margin:4rem !important}.mt-10{margin-top:4rem !important}.mr-10{margin-right:4rem !important}.mb-10{margin-bottom:4rem !important}.ml-10{margin-left:4rem !important}.mx-10{margin-right:4rem !important;margin-left:4rem !important}.my-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-10{margin-right:-4rem !important;margin-left:-4rem !important}.mx-10-auto{margin-right:auto !important;margin-left:auto !important}@media(min-width: 20rem){.m-xs-0{margin:0 !important}.mt-xs-0{margin-top:0 !important}.mr-xs-0{margin-right:0 !important}.mb-xs-0{margin-bottom:0 !important}.ml-xs-0{margin-left:0 !important}.mx-xs-0{margin-right:0 !important;margin-left:0 !important}.my-xs-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-xs-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 20rem){.m-xs-1{margin:0.25rem !important}.mt-xs-1{margin-top:0.25rem !important}.mr-xs-1{margin-right:0.25rem !important}.mb-xs-1{margin-bottom:0.25rem !important}.ml-xs-1{margin-left:0.25rem !important}.mx-xs-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-xs-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-xs-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 20rem){.m-xs-2{margin:0.5rem !important}.mt-xs-2{margin-top:0.5rem !important}.mr-xs-2{margin-right:0.5rem !important}.mb-xs-2{margin-bottom:0.5rem !important}.ml-xs-2{margin-left:0.5rem !important}.mx-xs-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-xs-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-xs-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 20rem){.m-xs-3{margin:0.75rem !important}.mt-xs-3{margin-top:0.75rem !important}.mr-xs-3{margin-right:0.75rem !important}.mb-xs-3{margin-bottom:0.75rem !important}.ml-xs-3{margin-left:0.75rem !important}.mx-xs-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-xs-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-xs-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 20rem){.m-xs-4{margin:1rem !important}.mt-xs-4{margin-top:1rem !important}.mr-xs-4{margin-right:1rem !important}.mb-xs-4{margin-bottom:1rem !important}.ml-xs-4{margin-left:1rem !important}.mx-xs-4{margin-right:1rem !important;margin-left:1rem !important}.my-xs-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-xs-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 20rem){.m-xs-5{margin:1.5rem !important}.mt-xs-5{margin-top:1.5rem !important}.mr-xs-5{margin-right:1.5rem !important}.mb-xs-5{margin-bottom:1.5rem !important}.ml-xs-5{margin-left:1.5rem !important}.mx-xs-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-xs-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-xs-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 20rem){.m-xs-6{margin:2rem !important}.mt-xs-6{margin-top:2rem !important}.mr-xs-6{margin-right:2rem !important}.mb-xs-6{margin-bottom:2rem !important}.ml-xs-6{margin-left:2rem !important}.mx-xs-6{margin-right:2rem !important;margin-left:2rem !important}.my-xs-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-xs-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 20rem){.m-xs-7{margin:2.5rem !important}.mt-xs-7{margin-top:2.5rem !important}.mr-xs-7{margin-right:2.5rem !important}.mb-xs-7{margin-bottom:2.5rem !important}.ml-xs-7{margin-left:2.5rem !important}.mx-xs-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-xs-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-xs-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 20rem){.m-xs-8{margin:3rem !important}.mt-xs-8{margin-top:3rem !important}.mr-xs-8{margin-right:3rem !important}.mb-xs-8{margin-bottom:3rem !important}.ml-xs-8{margin-left:3rem !important}.mx-xs-8{margin-right:3rem !important;margin-left:3rem !important}.my-xs-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-xs-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 20rem){.m-xs-9{margin:3.5rem !important}.mt-xs-9{margin-top:3.5rem !important}.mr-xs-9{margin-right:3.5rem !important}.mb-xs-9{margin-bottom:3.5rem !important}.ml-xs-9{margin-left:3.5rem !important}.mx-xs-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-xs-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-xs-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 20rem){.m-xs-10{margin:4rem !important}.mt-xs-10{margin-top:4rem !important}.mr-xs-10{margin-right:4rem !important}.mb-xs-10{margin-bottom:4rem !important}.ml-xs-10{margin-left:4rem !important}.mx-xs-10{margin-right:4rem !important;margin-left:4rem !important}.my-xs-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-xs-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 31.25rem){.m-sm-0{margin:0 !important}.mt-sm-0{margin-top:0 !important}.mr-sm-0{margin-right:0 !important}.mb-sm-0{margin-bottom:0 !important}.ml-sm-0{margin-left:0 !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-sm-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 31.25rem){.m-sm-1{margin:0.25rem !important}.mt-sm-1{margin-top:0.25rem !important}.mr-sm-1{margin-right:0.25rem !important}.mb-sm-1{margin-bottom:0.25rem !important}.ml-sm-1{margin-left:0.25rem !important}.mx-sm-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-sm-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-sm-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 31.25rem){.m-sm-2{margin:0.5rem !important}.mt-sm-2{margin-top:0.5rem !important}.mr-sm-2{margin-right:0.5rem !important}.mb-sm-2{margin-bottom:0.5rem !important}.ml-sm-2{margin-left:0.5rem !important}.mx-sm-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-sm-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-sm-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 31.25rem){.m-sm-3{margin:0.75rem !important}.mt-sm-3{margin-top:0.75rem !important}.mr-sm-3{margin-right:0.75rem !important}.mb-sm-3{margin-bottom:0.75rem !important}.ml-sm-3{margin-left:0.75rem !important}.mx-sm-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-sm-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-sm-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 31.25rem){.m-sm-4{margin:1rem !important}.mt-sm-4{margin-top:1rem !important}.mr-sm-4{margin-right:1rem !important}.mb-sm-4{margin-bottom:1rem !important}.ml-sm-4{margin-left:1rem !important}.mx-sm-4{margin-right:1rem !important;margin-left:1rem !important}.my-sm-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-sm-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 31.25rem){.m-sm-5{margin:1.5rem !important}.mt-sm-5{margin-top:1.5rem !important}.mr-sm-5{margin-right:1.5rem !important}.mb-sm-5{margin-bottom:1.5rem !important}.ml-sm-5{margin-left:1.5rem !important}.mx-sm-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-sm-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-sm-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 31.25rem){.m-sm-6{margin:2rem !important}.mt-sm-6{margin-top:2rem !important}.mr-sm-6{margin-right:2rem !important}.mb-sm-6{margin-bottom:2rem !important}.ml-sm-6{margin-left:2rem !important}.mx-sm-6{margin-right:2rem !important;margin-left:2rem !important}.my-sm-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-sm-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 31.25rem){.m-sm-7{margin:2.5rem !important}.mt-sm-7{margin-top:2.5rem !important}.mr-sm-7{margin-right:2.5rem !important}.mb-sm-7{margin-bottom:2.5rem !important}.ml-sm-7{margin-left:2.5rem !important}.mx-sm-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-sm-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-sm-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 31.25rem){.m-sm-8{margin:3rem !important}.mt-sm-8{margin-top:3rem !important}.mr-sm-8{margin-right:3rem !important}.mb-sm-8{margin-bottom:3rem !important}.ml-sm-8{margin-left:3rem !important}.mx-sm-8{margin-right:3rem !important;margin-left:3rem !important}.my-sm-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-sm-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 31.25rem){.m-sm-9{margin:3.5rem !important}.mt-sm-9{margin-top:3.5rem !important}.mr-sm-9{margin-right:3.5rem !important}.mb-sm-9{margin-bottom:3.5rem !important}.ml-sm-9{margin-left:3.5rem !important}.mx-sm-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-sm-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-sm-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 31.25rem){.m-sm-10{margin:4rem !important}.mt-sm-10{margin-top:4rem !important}.mr-sm-10{margin-right:4rem !important}.mb-sm-10{margin-bottom:4rem !important}.ml-sm-10{margin-left:4rem !important}.mx-sm-10{margin-right:4rem !important;margin-left:4rem !important}.my-sm-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-sm-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 50rem){.m-md-0{margin:0 !important}.mt-md-0{margin-top:0 !important}.mr-md-0{margin-right:0 !important}.mb-md-0{margin-bottom:0 !important}.ml-md-0{margin-left:0 !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-md-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 50rem){.m-md-1{margin:0.25rem !important}.mt-md-1{margin-top:0.25rem !important}.mr-md-1{margin-right:0.25rem !important}.mb-md-1{margin-bottom:0.25rem !important}.ml-md-1{margin-left:0.25rem !important}.mx-md-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-md-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-md-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 50rem){.m-md-2{margin:0.5rem !important}.mt-md-2{margin-top:0.5rem !important}.mr-md-2{margin-right:0.5rem !important}.mb-md-2{margin-bottom:0.5rem !important}.ml-md-2{margin-left:0.5rem !important}.mx-md-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-md-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-md-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 50rem){.m-md-3{margin:0.75rem !important}.mt-md-3{margin-top:0.75rem !important}.mr-md-3{margin-right:0.75rem !important}.mb-md-3{margin-bottom:0.75rem !important}.ml-md-3{margin-left:0.75rem !important}.mx-md-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-md-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-md-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 50rem){.m-md-4{margin:1rem !important}.mt-md-4{margin-top:1rem !important}.mr-md-4{margin-right:1rem !important}.mb-md-4{margin-bottom:1rem !important}.ml-md-4{margin-left:1rem !important}.mx-md-4{margin-right:1rem !important;margin-left:1rem !important}.my-md-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-md-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 50rem){.m-md-5{margin:1.5rem !important}.mt-md-5{margin-top:1.5rem !important}.mr-md-5{margin-right:1.5rem !important}.mb-md-5{margin-bottom:1.5rem !important}.ml-md-5{margin-left:1.5rem !important}.mx-md-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-md-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-md-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 50rem){.m-md-6{margin:2rem !important}.mt-md-6{margin-top:2rem !important}.mr-md-6{margin-right:2rem !important}.mb-md-6{margin-bottom:2rem !important}.ml-md-6{margin-left:2rem !important}.mx-md-6{margin-right:2rem !important;margin-left:2rem !important}.my-md-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-md-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 50rem){.m-md-7{margin:2.5rem !important}.mt-md-7{margin-top:2.5rem !important}.mr-md-7{margin-right:2.5rem !important}.mb-md-7{margin-bottom:2.5rem !important}.ml-md-7{margin-left:2.5rem !important}.mx-md-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-md-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-md-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 50rem){.m-md-8{margin:3rem !important}.mt-md-8{margin-top:3rem !important}.mr-md-8{margin-right:3rem !important}.mb-md-8{margin-bottom:3rem !important}.ml-md-8{margin-left:3rem !important}.mx-md-8{margin-right:3rem !important;margin-left:3rem !important}.my-md-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-md-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 50rem){.m-md-9{margin:3.5rem !important}.mt-md-9{margin-top:3.5rem !important}.mr-md-9{margin-right:3.5rem !important}.mb-md-9{margin-bottom:3.5rem !important}.ml-md-9{margin-left:3.5rem !important}.mx-md-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-md-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-md-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 50rem){.m-md-10{margin:4rem !important}.mt-md-10{margin-top:4rem !important}.mr-md-10{margin-right:4rem !important}.mb-md-10{margin-bottom:4rem !important}.ml-md-10{margin-left:4rem !important}.mx-md-10{margin-right:4rem !important;margin-left:4rem !important}.my-md-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-md-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 66.5rem){.m-lg-0{margin:0 !important}.mt-lg-0{margin-top:0 !important}.mr-lg-0{margin-right:0 !important}.mb-lg-0{margin-bottom:0 !important}.ml-lg-0{margin-left:0 !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-lg-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 66.5rem){.m-lg-1{margin:0.25rem !important}.mt-lg-1{margin-top:0.25rem !important}.mr-lg-1{margin-right:0.25rem !important}.mb-lg-1{margin-bottom:0.25rem !important}.ml-lg-1{margin-left:0.25rem !important}.mx-lg-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-lg-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-lg-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 66.5rem){.m-lg-2{margin:0.5rem !important}.mt-lg-2{margin-top:0.5rem !important}.mr-lg-2{margin-right:0.5rem !important}.mb-lg-2{margin-bottom:0.5rem !important}.ml-lg-2{margin-left:0.5rem !important}.mx-lg-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-lg-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-lg-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 66.5rem){.m-lg-3{margin:0.75rem !important}.mt-lg-3{margin-top:0.75rem !important}.mr-lg-3{margin-right:0.75rem !important}.mb-lg-3{margin-bottom:0.75rem !important}.ml-lg-3{margin-left:0.75rem !important}.mx-lg-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-lg-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-lg-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 66.5rem){.m-lg-4{margin:1rem !important}.mt-lg-4{margin-top:1rem !important}.mr-lg-4{margin-right:1rem !important}.mb-lg-4{margin-bottom:1rem !important}.ml-lg-4{margin-left:1rem !important}.mx-lg-4{margin-right:1rem !important;margin-left:1rem !important}.my-lg-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-lg-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 66.5rem){.m-lg-5{margin:1.5rem !important}.mt-lg-5{margin-top:1.5rem !important}.mr-lg-5{margin-right:1.5rem !important}.mb-lg-5{margin-bottom:1.5rem !important}.ml-lg-5{margin-left:1.5rem !important}.mx-lg-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-lg-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-lg-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 66.5rem){.m-lg-6{margin:2rem !important}.mt-lg-6{margin-top:2rem !important}.mr-lg-6{margin-right:2rem !important}.mb-lg-6{margin-bottom:2rem !important}.ml-lg-6{margin-left:2rem !important}.mx-lg-6{margin-right:2rem !important;margin-left:2rem !important}.my-lg-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-lg-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 66.5rem){.m-lg-7{margin:2.5rem !important}.mt-lg-7{margin-top:2.5rem !important}.mr-lg-7{margin-right:2.5rem !important}.mb-lg-7{margin-bottom:2.5rem !important}.ml-lg-7{margin-left:2.5rem !important}.mx-lg-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-lg-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-lg-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 66.5rem){.m-lg-8{margin:3rem !important}.mt-lg-8{margin-top:3rem !important}.mr-lg-8{margin-right:3rem !important}.mb-lg-8{margin-bottom:3rem !important}.ml-lg-8{margin-left:3rem !important}.mx-lg-8{margin-right:3rem !important;margin-left:3rem !important}.my-lg-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-lg-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 66.5rem){.m-lg-9{margin:3.5rem !important}.mt-lg-9{margin-top:3.5rem !important}.mr-lg-9{margin-right:3.5rem !important}.mb-lg-9{margin-bottom:3.5rem !important}.ml-lg-9{margin-left:3.5rem !important}.mx-lg-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-lg-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-lg-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 66.5rem){.m-lg-10{margin:4rem !important}.mt-lg-10{margin-top:4rem !important}.mr-lg-10{margin-right:4rem !important}.mb-lg-10{margin-bottom:4rem !important}.ml-lg-10{margin-left:4rem !important}.mx-lg-10{margin-right:4rem !important;margin-left:4rem !important}.my-lg-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-lg-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 87.5rem){.m-xl-0{margin:0 !important}.mt-xl-0{margin-top:0 !important}.mr-xl-0{margin-right:0 !important}.mb-xl-0{margin-bottom:0 !important}.ml-xl-0{margin-left:0 !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-xl-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 87.5rem){.m-xl-1{margin:0.25rem !important}.mt-xl-1{margin-top:0.25rem !important}.mr-xl-1{margin-right:0.25rem !important}.mb-xl-1{margin-bottom:0.25rem !important}.ml-xl-1{margin-left:0.25rem !important}.mx-xl-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-xl-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-xl-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 87.5rem){.m-xl-2{margin:0.5rem !important}.mt-xl-2{margin-top:0.5rem !important}.mr-xl-2{margin-right:0.5rem !important}.mb-xl-2{margin-bottom:0.5rem !important}.ml-xl-2{margin-left:0.5rem !important}.mx-xl-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-xl-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-xl-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 87.5rem){.m-xl-3{margin:0.75rem !important}.mt-xl-3{margin-top:0.75rem !important}.mr-xl-3{margin-right:0.75rem !important}.mb-xl-3{margin-bottom:0.75rem !important}.ml-xl-3{margin-left:0.75rem !important}.mx-xl-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-xl-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-xl-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 87.5rem){.m-xl-4{margin:1rem !important}.mt-xl-4{margin-top:1rem !important}.mr-xl-4{margin-right:1rem !important}.mb-xl-4{margin-bottom:1rem !important}.ml-xl-4{margin-left:1rem !important}.mx-xl-4{margin-right:1rem !important;margin-left:1rem !important}.my-xl-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-xl-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 87.5rem){.m-xl-5{margin:1.5rem !important}.mt-xl-5{margin-top:1.5rem !important}.mr-xl-5{margin-right:1.5rem !important}.mb-xl-5{margin-bottom:1.5rem !important}.ml-xl-5{margin-left:1.5rem !important}.mx-xl-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-xl-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-xl-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 87.5rem){.m-xl-6{margin:2rem !important}.mt-xl-6{margin-top:2rem !important}.mr-xl-6{margin-right:2rem !important}.mb-xl-6{margin-bottom:2rem !important}.ml-xl-6{margin-left:2rem !important}.mx-xl-6{margin-right:2rem !important;margin-left:2rem !important}.my-xl-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-xl-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 87.5rem){.m-xl-7{margin:2.5rem !important}.mt-xl-7{margin-top:2.5rem !important}.mr-xl-7{margin-right:2.5rem !important}.mb-xl-7{margin-bottom:2.5rem !important}.ml-xl-7{margin-left:2.5rem !important}.mx-xl-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-xl-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-xl-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 87.5rem){.m-xl-8{margin:3rem !important}.mt-xl-8{margin-top:3rem !important}.mr-xl-8{margin-right:3rem !important}.mb-xl-8{margin-bottom:3rem !important}.ml-xl-8{margin-left:3rem !important}.mx-xl-8{margin-right:3rem !important;margin-left:3rem !important}.my-xl-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-xl-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 87.5rem){.m-xl-9{margin:3.5rem !important}.mt-xl-9{margin-top:3.5rem !important}.mr-xl-9{margin-right:3.5rem !important}.mb-xl-9{margin-bottom:3.5rem !important}.ml-xl-9{margin-left:3.5rem !important}.mx-xl-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-xl-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-xl-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 87.5rem){.m-xl-10{margin:4rem !important}.mt-xl-10{margin-top:4rem !important}.mr-xl-10{margin-right:4rem !important}.mb-xl-10{margin-bottom:4rem !important}.ml-xl-10{margin-left:4rem !important}.mx-xl-10{margin-right:4rem !important;margin-left:4rem !important}.my-xl-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-xl-10{margin-right:-4rem !important;margin-left:-4rem !important}}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-right:0 !important;padding-left:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:0.25rem !important}.pt-1{padding-top:0.25rem !important}.pr-1{padding-right:0.25rem !important}.pb-1{padding-bottom:0.25rem !important}.pl-1{padding-left:0.25rem !important}.px-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-2{padding:0.5rem !important}.pt-2{padding-top:0.5rem !important}.pr-2{padding-right:0.5rem !important}.pb-2{padding-bottom:0.5rem !important}.pl-2{padding-left:0.5rem !important}.px-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-3{padding:0.75rem !important}.pt-3{padding-top:0.75rem !important}.pr-3{padding-right:0.75rem !important}.pb-3{padding-bottom:0.75rem !important}.pl-3{padding-left:0.75rem !important}.px-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-4{padding:1rem !important}.pt-4{padding-top:1rem !important}.pr-4{padding-right:1rem !important}.pb-4{padding-bottom:1rem !important}.pl-4{padding-left:1rem !important}.px-4{padding-right:1rem !important;padding-left:1rem !important}.py-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-5{padding:1.5rem !important}.pt-5{padding-top:1.5rem !important}.pr-5{padding-right:1.5rem !important}.pb-5{padding-bottom:1.5rem !important}.pl-5{padding-left:1.5rem !important}.px-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-6{padding:2rem !important}.pt-6{padding-top:2rem !important}.pr-6{padding-right:2rem !important}.pb-6{padding-bottom:2rem !important}.pl-6{padding-left:2rem !important}.px-6{padding-right:2rem !important;padding-left:2rem !important}.py-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-7{padding:2.5rem !important}.pt-7{padding-top:2.5rem !important}.pr-7{padding-right:2.5rem !important}.pb-7{padding-bottom:2.5rem !important}.pl-7{padding-left:2.5rem !important}.px-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-8{padding:3rem !important}.pt-8{padding-top:3rem !important}.pr-8{padding-right:3rem !important}.pb-8{padding-bottom:3rem !important}.pl-8{padding-left:3rem !important}.px-8{padding-right:3rem !important;padding-left:3rem !important}.py-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-9{padding:3.5rem !important}.pt-9{padding-top:3.5rem !important}.pr-9{padding-right:3.5rem !important}.pb-9{padding-bottom:3.5rem !important}.pl-9{padding-left:3.5rem !important}.px-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-10{padding:4rem !important}.pt-10{padding-top:4rem !important}.pr-10{padding-right:4rem !important}.pb-10{padding-bottom:4rem !important}.pl-10{padding-left:4rem !important}.px-10{padding-right:4rem !important;padding-left:4rem !important}.py-10{padding-top:4rem !important;padding-bottom:4rem !important}@media(min-width: 20rem){.p-xs-0{padding:0 !important}.pt-xs-0{padding-top:0 !important}.pr-xs-0{padding-right:0 !important}.pb-xs-0{padding-bottom:0 !important}.pl-xs-0{padding-left:0 !important}.px-xs-0{padding-right:0 !important;padding-left:0 !important}.py-xs-0{padding-top:0 !important;padding-bottom:0 !important}.p-xs-1{padding:0.25rem !important}.pt-xs-1{padding-top:0.25rem !important}.pr-xs-1{padding-right:0.25rem !important}.pb-xs-1{padding-bottom:0.25rem !important}.pl-xs-1{padding-left:0.25rem !important}.px-xs-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-xs-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-xs-2{padding:0.5rem !important}.pt-xs-2{padding-top:0.5rem !important}.pr-xs-2{padding-right:0.5rem !important}.pb-xs-2{padding-bottom:0.5rem !important}.pl-xs-2{padding-left:0.5rem !important}.px-xs-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-xs-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-xs-3{padding:0.75rem !important}.pt-xs-3{padding-top:0.75rem !important}.pr-xs-3{padding-right:0.75rem !important}.pb-xs-3{padding-bottom:0.75rem !important}.pl-xs-3{padding-left:0.75rem !important}.px-xs-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-xs-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-xs-4{padding:1rem !important}.pt-xs-4{padding-top:1rem !important}.pr-xs-4{padding-right:1rem !important}.pb-xs-4{padding-bottom:1rem !important}.pl-xs-4{padding-left:1rem !important}.px-xs-4{padding-right:1rem !important;padding-left:1rem !important}.py-xs-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-xs-5{padding:1.5rem !important}.pt-xs-5{padding-top:1.5rem !important}.pr-xs-5{padding-right:1.5rem !important}.pb-xs-5{padding-bottom:1.5rem !important}.pl-xs-5{padding-left:1.5rem !important}.px-xs-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-xs-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-xs-6{padding:2rem !important}.pt-xs-6{padding-top:2rem !important}.pr-xs-6{padding-right:2rem !important}.pb-xs-6{padding-bottom:2rem !important}.pl-xs-6{padding-left:2rem !important}.px-xs-6{padding-right:2rem !important;padding-left:2rem !important}.py-xs-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-xs-7{padding:2.5rem !important}.pt-xs-7{padding-top:2.5rem !important}.pr-xs-7{padding-right:2.5rem !important}.pb-xs-7{padding-bottom:2.5rem !important}.pl-xs-7{padding-left:2.5rem !important}.px-xs-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-xs-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-xs-8{padding:3rem !important}.pt-xs-8{padding-top:3rem !important}.pr-xs-8{padding-right:3rem !important}.pb-xs-8{padding-bottom:3rem !important}.pl-xs-8{padding-left:3rem !important}.px-xs-8{padding-right:3rem !important;padding-left:3rem !important}.py-xs-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-xs-9{padding:3.5rem !important}.pt-xs-9{padding-top:3.5rem !important}.pr-xs-9{padding-right:3.5rem !important}.pb-xs-9{padding-bottom:3.5rem !important}.pl-xs-9{padding-left:3.5rem !important}.px-xs-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-xs-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-xs-10{padding:4rem !important}.pt-xs-10{padding-top:4rem !important}.pr-xs-10{padding-right:4rem !important}.pb-xs-10{padding-bottom:4rem !important}.pl-xs-10{padding-left:4rem !important}.px-xs-10{padding-right:4rem !important;padding-left:4rem !important}.py-xs-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 31.25rem){.p-sm-0{padding:0 !important}.pt-sm-0{padding-top:0 !important}.pr-sm-0{padding-right:0 !important}.pb-sm-0{padding-bottom:0 !important}.pl-sm-0{padding-left:0 !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.p-sm-1{padding:0.25rem !important}.pt-sm-1{padding-top:0.25rem !important}.pr-sm-1{padding-right:0.25rem !important}.pb-sm-1{padding-bottom:0.25rem !important}.pl-sm-1{padding-left:0.25rem !important}.px-sm-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-sm-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-sm-2{padding:0.5rem !important}.pt-sm-2{padding-top:0.5rem !important}.pr-sm-2{padding-right:0.5rem !important}.pb-sm-2{padding-bottom:0.5rem !important}.pl-sm-2{padding-left:0.5rem !important}.px-sm-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-sm-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-sm-3{padding:0.75rem !important}.pt-sm-3{padding-top:0.75rem !important}.pr-sm-3{padding-right:0.75rem !important}.pb-sm-3{padding-bottom:0.75rem !important}.pl-sm-3{padding-left:0.75rem !important}.px-sm-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-sm-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-sm-4{padding:1rem !important}.pt-sm-4{padding-top:1rem !important}.pr-sm-4{padding-right:1rem !important}.pb-sm-4{padding-bottom:1rem !important}.pl-sm-4{padding-left:1rem !important}.px-sm-4{padding-right:1rem !important;padding-left:1rem !important}.py-sm-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-sm-5{padding:1.5rem !important}.pt-sm-5{padding-top:1.5rem !important}.pr-sm-5{padding-right:1.5rem !important}.pb-sm-5{padding-bottom:1.5rem !important}.pl-sm-5{padding-left:1.5rem !important}.px-sm-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-sm-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-sm-6{padding:2rem !important}.pt-sm-6{padding-top:2rem !important}.pr-sm-6{padding-right:2rem !important}.pb-sm-6{padding-bottom:2rem !important}.pl-sm-6{padding-left:2rem !important}.px-sm-6{padding-right:2rem !important;padding-left:2rem !important}.py-sm-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-sm-7{padding:2.5rem !important}.pt-sm-7{padding-top:2.5rem !important}.pr-sm-7{padding-right:2.5rem !important}.pb-sm-7{padding-bottom:2.5rem !important}.pl-sm-7{padding-left:2.5rem !important}.px-sm-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-sm-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-sm-8{padding:3rem !important}.pt-sm-8{padding-top:3rem !important}.pr-sm-8{padding-right:3rem !important}.pb-sm-8{padding-bottom:3rem !important}.pl-sm-8{padding-left:3rem !important}.px-sm-8{padding-right:3rem !important;padding-left:3rem !important}.py-sm-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-sm-9{padding:3.5rem !important}.pt-sm-9{padding-top:3.5rem !important}.pr-sm-9{padding-right:3.5rem !important}.pb-sm-9{padding-bottom:3.5rem !important}.pl-sm-9{padding-left:3.5rem !important}.px-sm-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-sm-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-sm-10{padding:4rem !important}.pt-sm-10{padding-top:4rem !important}.pr-sm-10{padding-right:4rem !important}.pb-sm-10{padding-bottom:4rem !important}.pl-sm-10{padding-left:4rem !important}.px-sm-10{padding-right:4rem !important;padding-left:4rem !important}.py-sm-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 50rem){.p-md-0{padding:0 !important}.pt-md-0{padding-top:0 !important}.pr-md-0{padding-right:0 !important}.pb-md-0{padding-bottom:0 !important}.pl-md-0{padding-left:0 !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.p-md-1{padding:0.25rem !important}.pt-md-1{padding-top:0.25rem !important}.pr-md-1{padding-right:0.25rem !important}.pb-md-1{padding-bottom:0.25rem !important}.pl-md-1{padding-left:0.25rem !important}.px-md-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-md-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-md-2{padding:0.5rem !important}.pt-md-2{padding-top:0.5rem !important}.pr-md-2{padding-right:0.5rem !important}.pb-md-2{padding-bottom:0.5rem !important}.pl-md-2{padding-left:0.5rem !important}.px-md-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-md-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-md-3{padding:0.75rem !important}.pt-md-3{padding-top:0.75rem !important}.pr-md-3{padding-right:0.75rem !important}.pb-md-3{padding-bottom:0.75rem !important}.pl-md-3{padding-left:0.75rem !important}.px-md-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-md-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-md-4{padding:1rem !important}.pt-md-4{padding-top:1rem !important}.pr-md-4{padding-right:1rem !important}.pb-md-4{padding-bottom:1rem !important}.pl-md-4{padding-left:1rem !important}.px-md-4{padding-right:1rem !important;padding-left:1rem !important}.py-md-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-md-5{padding:1.5rem !important}.pt-md-5{padding-top:1.5rem !important}.pr-md-5{padding-right:1.5rem !important}.pb-md-5{padding-bottom:1.5rem !important}.pl-md-5{padding-left:1.5rem !important}.px-md-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-md-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-md-6{padding:2rem !important}.pt-md-6{padding-top:2rem !important}.pr-md-6{padding-right:2rem !important}.pb-md-6{padding-bottom:2rem !important}.pl-md-6{padding-left:2rem !important}.px-md-6{padding-right:2rem !important;padding-left:2rem !important}.py-md-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-md-7{padding:2.5rem !important}.pt-md-7{padding-top:2.5rem !important}.pr-md-7{padding-right:2.5rem !important}.pb-md-7{padding-bottom:2.5rem !important}.pl-md-7{padding-left:2.5rem !important}.px-md-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-md-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-md-8{padding:3rem !important}.pt-md-8{padding-top:3rem !important}.pr-md-8{padding-right:3rem !important}.pb-md-8{padding-bottom:3rem !important}.pl-md-8{padding-left:3rem !important}.px-md-8{padding-right:3rem !important;padding-left:3rem !important}.py-md-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-md-9{padding:3.5rem !important}.pt-md-9{padding-top:3.5rem !important}.pr-md-9{padding-right:3.5rem !important}.pb-md-9{padding-bottom:3.5rem !important}.pl-md-9{padding-left:3.5rem !important}.px-md-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-md-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-md-10{padding:4rem !important}.pt-md-10{padding-top:4rem !important}.pr-md-10{padding-right:4rem !important}.pb-md-10{padding-bottom:4rem !important}.pl-md-10{padding-left:4rem !important}.px-md-10{padding-right:4rem !important;padding-left:4rem !important}.py-md-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 66.5rem){.p-lg-0{padding:0 !important}.pt-lg-0{padding-top:0 !important}.pr-lg-0{padding-right:0 !important}.pb-lg-0{padding-bottom:0 !important}.pl-lg-0{padding-left:0 !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.p-lg-1{padding:0.25rem !important}.pt-lg-1{padding-top:0.25rem !important}.pr-lg-1{padding-right:0.25rem !important}.pb-lg-1{padding-bottom:0.25rem !important}.pl-lg-1{padding-left:0.25rem !important}.px-lg-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-lg-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-lg-2{padding:0.5rem !important}.pt-lg-2{padding-top:0.5rem !important}.pr-lg-2{padding-right:0.5rem !important}.pb-lg-2{padding-bottom:0.5rem !important}.pl-lg-2{padding-left:0.5rem !important}.px-lg-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-lg-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-lg-3{padding:0.75rem !important}.pt-lg-3{padding-top:0.75rem !important}.pr-lg-3{padding-right:0.75rem !important}.pb-lg-3{padding-bottom:0.75rem !important}.pl-lg-3{padding-left:0.75rem !important}.px-lg-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-lg-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-lg-4{padding:1rem !important}.pt-lg-4{padding-top:1rem !important}.pr-lg-4{padding-right:1rem !important}.pb-lg-4{padding-bottom:1rem !important}.pl-lg-4{padding-left:1rem !important}.px-lg-4{padding-right:1rem !important;padding-left:1rem !important}.py-lg-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-lg-5{padding:1.5rem !important}.pt-lg-5{padding-top:1.5rem !important}.pr-lg-5{padding-right:1.5rem !important}.pb-lg-5{padding-bottom:1.5rem !important}.pl-lg-5{padding-left:1.5rem !important}.px-lg-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-lg-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-lg-6{padding:2rem !important}.pt-lg-6{padding-top:2rem !important}.pr-lg-6{padding-right:2rem !important}.pb-lg-6{padding-bottom:2rem !important}.pl-lg-6{padding-left:2rem !important}.px-lg-6{padding-right:2rem !important;padding-left:2rem !important}.py-lg-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-lg-7{padding:2.5rem !important}.pt-lg-7{padding-top:2.5rem !important}.pr-lg-7{padding-right:2.5rem !important}.pb-lg-7{padding-bottom:2.5rem !important}.pl-lg-7{padding-left:2.5rem !important}.px-lg-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-lg-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-lg-8{padding:3rem !important}.pt-lg-8{padding-top:3rem !important}.pr-lg-8{padding-right:3rem !important}.pb-lg-8{padding-bottom:3rem !important}.pl-lg-8{padding-left:3rem !important}.px-lg-8{padding-right:3rem !important;padding-left:3rem !important}.py-lg-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-lg-9{padding:3.5rem !important}.pt-lg-9{padding-top:3.5rem !important}.pr-lg-9{padding-right:3.5rem !important}.pb-lg-9{padding-bottom:3.5rem !important}.pl-lg-9{padding-left:3.5rem !important}.px-lg-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-lg-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-lg-10{padding:4rem !important}.pt-lg-10{padding-top:4rem !important}.pr-lg-10{padding-right:4rem !important}.pb-lg-10{padding-bottom:4rem !important}.pl-lg-10{padding-left:4rem !important}.px-lg-10{padding-right:4rem !important;padding-left:4rem !important}.py-lg-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 87.5rem){.p-xl-0{padding:0 !important}.pt-xl-0{padding-top:0 !important}.pr-xl-0{padding-right:0 !important}.pb-xl-0{padding-bottom:0 !important}.pl-xl-0{padding-left:0 !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.p-xl-1{padding:0.25rem !important}.pt-xl-1{padding-top:0.25rem !important}.pr-xl-1{padding-right:0.25rem !important}.pb-xl-1{padding-bottom:0.25rem !important}.pl-xl-1{padding-left:0.25rem !important}.px-xl-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-xl-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-xl-2{padding:0.5rem !important}.pt-xl-2{padding-top:0.5rem !important}.pr-xl-2{padding-right:0.5rem !important}.pb-xl-2{padding-bottom:0.5rem !important}.pl-xl-2{padding-left:0.5rem !important}.px-xl-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-xl-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-xl-3{padding:0.75rem !important}.pt-xl-3{padding-top:0.75rem !important}.pr-xl-3{padding-right:0.75rem !important}.pb-xl-3{padding-bottom:0.75rem !important}.pl-xl-3{padding-left:0.75rem !important}.px-xl-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-xl-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-xl-4{padding:1rem !important}.pt-xl-4{padding-top:1rem !important}.pr-xl-4{padding-right:1rem !important}.pb-xl-4{padding-bottom:1rem !important}.pl-xl-4{padding-left:1rem !important}.px-xl-4{padding-right:1rem !important;padding-left:1rem !important}.py-xl-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-xl-5{padding:1.5rem !important}.pt-xl-5{padding-top:1.5rem !important}.pr-xl-5{padding-right:1.5rem !important}.pb-xl-5{padding-bottom:1.5rem !important}.pl-xl-5{padding-left:1.5rem !important}.px-xl-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-xl-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-xl-6{padding:2rem !important}.pt-xl-6{padding-top:2rem !important}.pr-xl-6{padding-right:2rem !important}.pb-xl-6{padding-bottom:2rem !important}.pl-xl-6{padding-left:2rem !important}.px-xl-6{padding-right:2rem !important;padding-left:2rem !important}.py-xl-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-xl-7{padding:2.5rem !important}.pt-xl-7{padding-top:2.5rem !important}.pr-xl-7{padding-right:2.5rem !important}.pb-xl-7{padding-bottom:2.5rem !important}.pl-xl-7{padding-left:2.5rem !important}.px-xl-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-xl-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-xl-8{padding:3rem !important}.pt-xl-8{padding-top:3rem !important}.pr-xl-8{padding-right:3rem !important}.pb-xl-8{padding-bottom:3rem !important}.pl-xl-8{padding-left:3rem !important}.px-xl-8{padding-right:3rem !important;padding-left:3rem !important}.py-xl-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-xl-9{padding:3.5rem !important}.pt-xl-9{padding-top:3.5rem !important}.pr-xl-9{padding-right:3.5rem !important}.pb-xl-9{padding-bottom:3.5rem !important}.pl-xl-9{padding-left:3.5rem !important}.px-xl-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-xl-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-xl-10{padding:4rem !important}.pt-xl-10{padding-top:4rem !important}.pr-xl-10{padding-right:4rem !important}.pb-xl-10{padding-bottom:4rem !important}.pl-xl-10{padding-left:4rem !important}.px-xl-10{padding-right:4rem !important;padding-left:4rem !important}.py-xl-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media print{.site-footer,.site-button,#edit-this-page,#back-to-top,.site-nav,.main-header{display:none !important}.side-bar{width:100%;height:auto;border-right:0 !important}.site-header{border-bottom:1px solid #44434d}.site-title{font-size:1rem !important;font-weight:700 !important}.text-small{font-size:8pt !important}pre.highlight{border:1px solid #44434d}.main{max-width:none;margin-left:0}}a.skip-to-main{left:-999px;position:absolute;top:auto;width:1px;height:1px;overflow:hidden;z-index:-999}a.skip-to-main:focus,a.skip-to-main:active{color:#2c84fa;background-color:#27262b;left:auto;top:auto;width:30%;height:auto;overflow:auto;margin:10px 35%;padding:5px;border-radius:15px;border:4px solid #264caf;text-align:center;font-size:1.2em;z-index:999}div.opaque{background-color:#27262b}/*# sourceMappingURL=just-the-docs-default.css.map */ \ No newline at end of file diff --git a/jekyll-backup/_site/assets/css/just-the-docs-default.css.map b/jekyll-backup/_site/assets/css/just-the-docs-default.css.map new file mode 100644 index 00000000..e45d37ff --- /dev/null +++ b/jekyll-backup/_site/assets/css/just-the-docs-default.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/vendor/OneLightJekyll/syntax.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/vendor/OneDarkJekyll/syntax.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/vendor/normalize.scss/normalize.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/base.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/color_schemes/dark.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/_variables.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/content.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/navigation.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/labels.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/buttons.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_buttons.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/search.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/tables.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/code.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_colors.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_lists.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_spacing.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/print.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/skiptomain.scss","just-the-docs-default.scss"],"names":[],"mappings":"CAEA,yBAEE,mBACA,cAGF,eACE,mBAGF,gBACE,mBAGF,cACE,cACA,kBAGF,gBACE,WACA,yBAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,kBAGF,eACE,gBAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,gBAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,iCACE,cAGF,8BACE,cC7QF,yBAEE,mBACA,cAGF,eACE,mBAGF,gBACE,mBAGF,cACE,cACA,kBAGF,gBACE,cACA,yBAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,kBAGF,eACE,gBAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,gBAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cCvQF,4EAUA,KACE,iBACA,sBAUF,KACE,SAOF,KACE,cAQF,GACE,cACA,eAWF,GACE,uBACA,SACA,iBAQF,IACE,sBACA,cAUF,EACE,+BAQF,YACE,mBACA,0BACA,iCAOF,SAEE,mBAQF,cAGE,sBACA,cAOF,MACE,cAQF,QAEE,cACA,cACA,kBACA,wBAGF,IACE,eAGF,IACE,WAUF,IACE,kBAWF,sCAKE,oBACA,eACA,iBACA,SAQF,aAGE,iBAQF,cAGE,oBAOF,gDAIE,kBAOF,wHAIE,kBACA,UAOF,4GAIE,8BAOF,SACE,2BAUF,OACE,sBACA,cACA,cACA,eACA,UACA,mBAOF,SACE,wBAOF,SACE,cAQF,6BAEE,sBACA,UAOF,kFAEE,YAQF,cACE,qBACA,oBAOF,yCACE,gBAQF,6BACE,kBACA,aAUF,QACE,cAOF,QACE,kBAUF,SACE,aAOF,SACE,aC1VF,MACE,aCJa,KDOf,EACE,sBAGF,KACE,uBEmBA,KACE,6BClBA,4BHHJ,KEyBI,2BFnBJ,KACE,YIfiB,gHJgBjB,kBACA,YIbiB,IJcjB,MIiBY,QJhBZ,iBIYY,QJXZ,yBAGF,mFAYE,aAGF,4BAOE,aACA,kBACA,gBACA,YI1CyB,KJ2CzB,MIjBY,QJoBd,EACE,eACA,kBAGF,EACE,MIlBS,QJmBT,qBAGF,eACE,0BACA,sBInCY,QJoCZ,0BAEA,qBACE,2CAIJ,KACE,YIvEiB,0CJwEjB,gBACA,YIvEiB,IJ0EnB,WAEE,SAGF,GACE,eAGF,IACE,eACA,YAGF,GACE,WACA,UACA,cACA,iBInEY,QJoEZ,SAIF,WACE,cAGA,qBACA,sBACA,kBACA,8BK7GF,UACE,UACA,aACA,eACA,iBD4BY,QDpBV,yBEZJ,UAOI,wBACA,eACA,MDwFW,QCvFX,YACA,+BACA,iDAZJ,UAgBI,yCACA,UD+EQ,SDpFR,yBEQF,gBAEI,YD2ES,SDrFX,2BEQF,gBAQI,uDAOF,6BACE,aACA,iBDLQ,QDpBV,yBEuBA,6BAKI,aACA,iBDTM,SCYR,sCACE,cFjCJ,yBEgCE,sCAII,cAOV,MACE,YF5CE,yBE2CJ,MAII,kBACA,UDyCY,OCrChB,mBACE,YDaK,KCZL,eDYK,KDvDL,cCuDK,KDtDL,aCsDK,KDlEH,yBEoDJ,mBFrCI,cCqDG,KDpDH,aCoDG,MDpEH,yBEoDJ,mBAOI,YDSG,KCRH,eDQG,MCJP,aACE,UACA,gCFlEE,yBEgEJ,aAKI,aACA,8BACA,ODmBY,SCfhB,oCAGE,WF9EE,2BE2EJ,oCAMI,MDGQ,SCCZ,UACE,aAEA,mBACE,cFzFA,yBEqFJ,UAQI,cACA,YDxBG,KCyBH,eD7BG,KC8BH,gBACA,eAIJ,aACE,aACA,WDbc,QCcd,mBFxGE,yBEqGJ,aAMI,ODjBY,QCkBZ,WDlBY,QCmBZ,iCAIJ,YACE,YACA,aACA,YACA,mBACA,YDrDK,OCsDL,eDtDK,OCuDL,MDnGY,QDVZ,cCuDK,KDtDL,aCsDK,KDlEH,yBEiHJ,YFlGI,cCqDG,KDpDH,aCoDG,MF/BL,YACE,8BCtCA,4BEiHJ,YHvEI,4BACA,YEhDuB,MDKvB,yBEiHJ,YAcI,YD/DG,MCgEH,eDhEG,OCqEL,WACE,WACA,YACA,gDACA,4BACA,gCACA,wBAIJ,aACE,aACA,YACA,QDhFK,KCiFL,mBFnJE,yBEuJF,0BACE,cAIJ,kBACE,qNAQF,mBACE,2JASF,KACE,kBACA,eDzGM,KC0GN,kBFlLE,yBE+KJ,KAMI,gBACA,kBAMJ,aACE,kBACA,SACA,OACA,YD9HK,KC+HL,eD/HK,KCgIL,MDlLY,QDLZ,cCuDK,KDtDL,aCsDK,KDlEH,yBE4LJ,aF7KI,cCqDG,KDpDH,aCoDG,MFvEL,aACE,8BCEA,4BE4LJ,aH1LI,6BCFA,yBE4LJ,aAaI,gBACA,kBAIJ,MACE,MD5IK,OC6IL,OD7IK,OC8IL,MDpLS,QEtCX,cACE,YFEoB,qJEOlB,gBAGF,gBACE,gBACA,uBAGF,kCAEE,mBAIA,4BA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GJ,qBV3EI,2BCtBA,yBDOF,qBACE,6BCRA,kDSiGJ,qBVrFI,8BUgGJ,0BACE,UACA,SAGF,eACE,cACA,sBAEA,2CAEE,iBX1Ha,sCW8HjB,qBACE,cACA,YR7DK,MQ8DL,eR9DK,MDhEH,4BS2HJ,qBAMI,qBACA,UACA,cRnEG,MQoEH,oBAIJ,mBACE,aACA,mBACA,qBAEA,4CACE,WVvIF,4CACE,4BCRA,4BS6IF,4CVjIE,8BCZA,yBDHF,4CACE,+BCEA,kDS6IF,4CV3IE,6BUoJF,uCACE,MRrFG,KQsFH,ORtFG,KQuFH,aRzFG,MQ0FH,MR7HO,QQ8HP,cAGF,4CACE,cAIJ,uBACE,mBACA,qBAGF,uBACE,cACA,mBACA,gBACA,MR5JY,QQ6JZ,uBACA,mBV3LA,uBACE,8BCYA,4BSwKJ,uBVhLI,8BU0LJ,wBACE,cACA,YRpHK,MQqHL,eRrHK,MQsHL,aRpHK,KQqHL,YRvHK,MQwHL,MRxKY,QQyKZ,qBACA,YR9GO,UQ+GP,kBRzKY,QFrBZ,wBACE,8BCEA,4BSkLJ,wBVhLI,6BCFA,4BSkLJ,wBAaI,qBACA,UACA,aRjIG,MQkIH,cACA,oBAIJ,8CACE,WRzIK,OQ4IP,yBACE,iBAGF,kBACE,qBVzMA,kBACE,4BCRA,4BS+MJ,kBVnMI,8BUwMJ,eACE,eACA,MRpJK,KQqJL,ORrJK,KQsJL,aACA,MRlJK,OQmJL,ORnJK,OQoJL,iBRxMY,QQyMZ,qCACA,sBACA,WACE,qDAEF,mBACA,uBAGF,gBACE,eACA,MACA,OACA,UACA,QACA,SACA,gCACA,UACA,WACE,kDAMF,uBACE,eACA,MACA,OACA,WACA,YACA,UAGF,kCACE,ORvLI,KQwLJ,gBThQA,yBS8PF,kCAKI,MRxKiB,QQyKjB,WACE,sDAKN,6BACE,iBRxPU,QDnBV,yBS0QF,6BAII,qBT9QF,yBSkRF,6BAEI,oBAIJ,+BACE,cAGF,+BACE,WACA,YACA,UACA,WACE,sCTjSF,yBSuSA,qBACE,eACA,QACA,QAIJ,4BACE,YRvOI,KDxEJ,yBS8SF,4BAII,eC7TN,eACE,cACA,WACA,eACA,cT0EK,OSzEL,gBACA,cTkFc,ISj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E,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBAQR,YACE,sBAGF,aACE,uBAGF,oBACE,sCAGF,kBACE,oCAGF,sBACE,yCAGF,qBACE,wCAKF,kBACE,mCAGF,gBACE,iCAGF,gBACE,iCAGF,qBACE,sCAGF,kBACE,mCAGF,aACE,8BdlGA,MACE,8BCYA,4BcZJ,MfII,8BAKF,MACE,8BCEA,4BcRJ,MfUI,6BAKF,MACE,4BCRA,4BcJJ,MfgBI,8BAKF,MACE,6BClBA,kCDsBA,2BAKF,MACE,0BC5BA,4BcIJ,Mf4BI,+BAKF,MACE,8BCtCA,4BcQJ,MfkCI,4BACA,YEhDuB,MFqDzB,MACE,4BACA,YEvDuB,KDKvB,4BcYJ,Mf0CI,2BAKF,MACE,0BACA,YElEuB,KDKvB,4BcgBJ,MfiDI,8BAKF,MACE,6BACA,YE7EuB,KDKvB,4BcoBJ,MfwDI,+BAKF,OACE,8BACA,YExFuB,KDKvB,4BcwBJ,Of+DI,2Be3DJ,QACE,2BAGF,QACE,2BAGF,QACE,2BAGF,QACE,2BAGF,MACE,yBAGF,YACE,YbxDiB,Ia2DnB,UACE,Yb1DyB,Ka6D3B,MACE,gCAGF,OACE,+BAGF,MACE,4BAGF,gBACE,oCC/EF,iBACE,qBACA,oBACA,2BAGE,4BACE,wBCLN,SACE,6BACA,4BAQA,KACE,oBAEF,MACE,wBAEF,MACE,0BAEF,MACE,2BAEF,MACE,yBAGF,MACE,0BACA,yBAGF,MACE,wBACA,2BAGF,OACE,2BACA,0BAEF,WACE,6BACA,4BAhCF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAGF,OACE,iCACA,gCAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAGF,OACE,iCACA,gCAEF,WACE,6BACA,4BAhCF,KACE,uBAEF,MACE,2BAEF,MACE,6BAEF,MACE,8BAEF,MACE,4BAGF,MACE,6BACA,4BAGF,MACE,2BACA,8BAGF,OACE,8BACA,6BAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,KACE,uBAEF,MACE,2BAEF,MACE,6BAEF,MACE,8BAEF,MACE,4BAGF,MACE,6BACA,4BAGF,MACE,2BACA,8BAGF,OACE,8BACA,6BAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,KACE,uBAEF,MACE,2BAEF,MACE,6BAEF,MACE,8BAEF,MACE,4BAGF,MACE,6BACA,4BAGF,MACE,2BACA,8BAGF,OACE,8BACA,6BAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,MACE,uBAEF,OACE,2BAEF,OACE,6BAEF,OACE,8BAEF,OACE,4BAGF,OACE,6BACA,4BAGF,OACE,2BACA,8BAGF,QACE,8BACA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CE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,4BgB6CE,SACE,uBAEF,UACE,2BAEF,UACE,6BAEF,UACE,8BAEF,UACE,4BAGF,UACE,6BACA,4BAGF,UACE,2BACA,8BAGF,WACE,8BACA,8BhBzEJ,yBgB6CE,QACE,oBAEF,SACE,wBAEF,SACE,0BAEF,SACE,2BAEF,SACE,yBAGF,SACE,0BACA,yBAGF,SACE,wBACA,2BAGF,UACE,2BACA,2BhBzEJ,yBgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BA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BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,2BgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,2BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,2BgB6CE,SACE,uBAEF,UACE,2BAEF,UACE,6BAEF,UACE,8BAEF,UACE,4BAGF,UACE,6BACA,4BAGF,UACE,2BACA,8BAGF,WACE,8BACA,8BAaN,KACE,qBAEF,MACE,yBAEF,MACE,2BAEF,MACE,4BAEF,MACE,0BAGF,MACE,2BACA,0BAGF,MACE,yBACA,4BAvBF,KACE,2BAEF,MACE,+BAEF,MACE,iCAEF,MACE,kCAEF,MACE,gCAGF,MACE,iCACA,gCAGF,MACE,+BACA,kCAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,2BAEF,MACE,+BAEF,MACE,iCAEF,MACE,kCAEF,MACE,gCAGF,MACE,iCACA,gCAGF,MACE,+BACA,kCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,MACE,wBAEF,OACE,4BAEF,OACE,8BAEF,OACE,+BAEF,OACE,6BAGF,OACE,8BACA,6BAGF,OACE,4BACA,+BhB7GA,yBgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,4BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,yBgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,2BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,2BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gCC3JR,aACE,8EAME,wBAGF,UACE,WACA,YACA,0BAGF,aACE,gCAGF,YACE,0BACA,2BAGF,YACE,yBAGF,cACE,yBAGF,MACE,eACA,eClCJ,eACE,YACA,kBACA,SACA,UACA,WACA,gBACA,aAGF,2CAEE,MjB4BS,QiB3BT,iBjBkBY,QiBjBZ,UACA,SACA,UACA,YACA,cACA,gBACA,YACA,mBACA,yBACA,kBACA,gBACA,YCjBF,WACE,iBlBsBY","sourcesContent":["// Generated with OneLightJekyll applied to Atom's One Light theme\n\n.highlight,\npre.highlight {\n background: #f9f9f9;\n color: #383942;\n}\n\n.highlight pre {\n background: #f9f9f9;\n}\n\n.highlight .hll {\n background: #f9f9f9;\n}\n\n.highlight .c {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .err {\n color: #fff;\n background-color: #e05151;\n}\n\n.highlight .k {\n color: #a625a4;\n}\n\n.highlight .l {\n color: #50a04f;\n}\n\n.highlight .n {\n color: #383942;\n}\n\n.highlight .o {\n color: #383942;\n}\n\n.highlight .p {\n color: #383942;\n}\n\n.highlight .cm {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .cp {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .c1 {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .cs {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .ge {\n font-style: italic;\n}\n\n.highlight .gs {\n font-weight: 700;\n}\n\n.highlight .kc {\n color: #a625a4;\n}\n\n.highlight .kd {\n color: #a625a4;\n}\n\n.highlight .kn {\n color: #a625a4;\n}\n\n.highlight .kp {\n color: #a625a4;\n}\n\n.highlight .kr {\n color: #a625a4;\n}\n\n.highlight .kt {\n color: #a625a4;\n}\n\n.highlight .ld {\n color: #50a04f;\n}\n\n.highlight .m {\n color: #b66a00;\n}\n\n.highlight .s {\n color: #50a04f;\n}\n\n.highlight .na {\n color: #b66a00;\n}\n\n.highlight .nb {\n color: #ca7601;\n}\n\n.highlight .nc {\n color: #ca7601;\n}\n\n.highlight .no {\n color: #ca7601;\n}\n\n.highlight .nd {\n color: #ca7601;\n}\n\n.highlight .ni {\n color: #ca7601;\n}\n\n.highlight .ne {\n color: #ca7601;\n}\n\n.highlight .nf {\n color: #383942;\n}\n\n.highlight .nl {\n color: #ca7601;\n}\n\n.highlight .nn {\n color: #383942;\n}\n\n.highlight .nx {\n color: #383942;\n}\n\n.highlight .py {\n color: #ca7601;\n}\n\n.highlight .nt {\n color: #e35549;\n}\n\n.highlight .nv {\n color: #ca7601;\n}\n\n.highlight .ow {\n font-weight: 700;\n}\n\n.highlight .w {\n color: #f8f8f2;\n}\n\n.highlight .mf {\n color: #b66a00;\n}\n\n.highlight .mh {\n color: #b66a00;\n}\n\n.highlight .mi {\n color: #b66a00;\n}\n\n.highlight .mo {\n color: #b66a00;\n}\n\n.highlight .sb {\n color: #50a04f;\n}\n\n.highlight .sc {\n color: #50a04f;\n}\n\n.highlight .sd {\n color: #50a04f;\n}\n\n.highlight .s2 {\n color: #50a04f;\n}\n\n.highlight .se {\n color: #50a04f;\n}\n\n.highlight .sh {\n color: #50a04f;\n}\n\n.highlight .si {\n color: #50a04f;\n}\n\n.highlight .sx {\n color: #50a04f;\n}\n\n.highlight .sr {\n color: #0083bb;\n}\n\n.highlight .s1 {\n color: #50a04f;\n}\n\n.highlight .ss {\n color: #0083bb;\n}\n\n.highlight .bp {\n color: #ca7601;\n}\n\n.highlight .vc {\n color: #ca7601;\n}\n\n.highlight .vg {\n color: #ca7601;\n}\n\n.highlight .vi {\n color: #e35549;\n}\n\n.highlight .il {\n color: #b66a00;\n}\n\n.highlight .gu {\n color: #75715e;\n}\n\n.highlight .gd {\n color: #e05151;\n}\n\n.highlight .gi {\n color: #43d089;\n}\n\n.highlight .language-json .w + .s2 {\n color: #e35549;\n}\n\n.highlight .language-json .kc {\n color: #0083bb;\n}\n","// Generated with OneDarkJekyll applied to Atom's One Dark Vivid theme\n\n.highlight,\npre.highlight {\n background: #31343f;\n color: #dee2f7;\n}\n\n.highlight pre {\n background: #31343f;\n}\n\n.highlight .hll {\n background: #31343f;\n}\n\n.highlight .c {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .err {\n color: #960050;\n background-color: #1e0010;\n}\n\n.highlight .k {\n color: #e19ef5;\n}\n\n.highlight .l {\n color: #a3eea0;\n}\n\n.highlight .n {\n color: #dee2f7;\n}\n\n.highlight .o {\n color: #dee2f7;\n}\n\n.highlight .p {\n color: #dee2f7;\n}\n\n.highlight .cm {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .cp {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .c1 {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .cs {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .ge {\n font-style: italic;\n}\n\n.highlight .gs {\n font-weight: 700;\n}\n\n.highlight .kc {\n color: #e19ef5;\n}\n\n.highlight .kd {\n color: #e19ef5;\n}\n\n.highlight .kn {\n color: #e19ef5;\n}\n\n.highlight .kp {\n color: #e19ef5;\n}\n\n.highlight .kr {\n color: #e19ef5;\n}\n\n.highlight .kt {\n color: #e19ef5;\n}\n\n.highlight .ld {\n color: #a3eea0;\n}\n\n.highlight .m {\n color: #eddc96;\n}\n\n.highlight .s {\n color: #a3eea0;\n}\n\n.highlight .na {\n color: #eddc96;\n}\n\n.highlight .nb {\n color: #fdce68;\n}\n\n.highlight .nc {\n color: #fdce68;\n}\n\n.highlight .no {\n color: #fdce68;\n}\n\n.highlight .nd {\n color: #fdce68;\n}\n\n.highlight .ni {\n color: #fdce68;\n}\n\n.highlight .ne {\n color: #fdce68;\n}\n\n.highlight .nf {\n color: #dee2f7;\n}\n\n.highlight .nl {\n color: #fdce68;\n}\n\n.highlight .nn {\n color: #dee2f7;\n}\n\n.highlight .nx {\n color: #dee2f7;\n}\n\n.highlight .py {\n color: #fdce68;\n}\n\n.highlight .nt {\n color: #f9867b;\n}\n\n.highlight .nv {\n color: #fdce68;\n}\n\n.highlight .ow {\n font-weight: 700;\n}\n\n.highlight .w {\n color: #f8f8f2;\n}\n\n.highlight .mf {\n color: #eddc96;\n}\n\n.highlight .mh {\n color: #eddc96;\n}\n\n.highlight .mi {\n color: #eddc96;\n}\n\n.highlight .mo {\n color: #eddc96;\n}\n\n.highlight .sb {\n color: #a3eea0;\n}\n\n.highlight .sc {\n color: #a3eea0;\n}\n\n.highlight .sd {\n color: #a3eea0;\n}\n\n.highlight .s2 {\n color: #a3eea0;\n}\n\n.highlight .se {\n color: #a3eea0;\n}\n\n.highlight .sh {\n color: #a3eea0;\n}\n\n.highlight .si {\n color: #a3eea0;\n}\n\n.highlight .sx {\n color: #a3eea0;\n}\n\n.highlight .sr {\n color: #7be2f9;\n}\n\n.highlight .s1 {\n color: #a3eea0;\n}\n\n.highlight .ss {\n color: #7be2f9;\n}\n\n.highlight .bp {\n color: #fdce68;\n}\n\n.highlight .vc {\n color: #fdce68;\n}\n\n.highlight .vg {\n color: #fdce68;\n}\n\n.highlight .vi {\n color: #f9867b;\n}\n\n.highlight .il {\n color: #eddc96;\n}\n\n.highlight .gu {\n color: #75715e;\n}\n\n.highlight .gd {\n color: #f92672;\n}\n\n.highlight .gi {\n color: #a6e22e;\n}\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// Base element style overrides\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\n:root {\n color-scheme: $color-scheme;\n}\n\n* {\n box-sizing: border-box;\n}\n\nhtml {\n scroll-behavior: smooth;\n\n @include fs-4;\n}\n\nbody {\n font-family: $body-font-family;\n font-size: inherit;\n line-height: $body-line-height;\n color: $body-text-color;\n background-color: $body-background-color;\n overflow-wrap: break-word;\n}\n\nol,\nul,\ndl,\npre,\naddress,\nblockquote,\ntable,\ndiv,\nhr,\nform,\nfieldset,\nnoscript .table-wrapper {\n margin-top: 0;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n#toctitle {\n margin-top: 0;\n margin-bottom: 1em;\n font-weight: 500;\n line-height: $body-heading-line-height;\n color: $body-heading-color;\n}\n\np {\n margin-top: 1em;\n margin-bottom: 1em;\n}\n\na {\n color: $link-color;\n text-decoration: none;\n}\n\na:not([class]) {\n text-decoration: underline;\n text-decoration-color: $border-color;\n text-underline-offset: 2px;\n\n &:hover {\n text-decoration-color: rgba($link-color, 0.45);\n }\n}\n\ncode {\n font-family: $mono-font-family;\n font-size: 0.75em;\n line-height: $body-line-height;\n}\n\nfigure,\npre {\n margin: 0;\n}\n\nli {\n margin: 0.25em 0;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\nhr {\n height: 1px;\n padding: 0;\n margin: $sp-6 0;\n background-color: $border-color;\n border: 0;\n}\n\n// adds a GitHub-style sidebar to blockquotes\nblockquote {\n margin: 10px 0;\n\n // resets user-agent stylesheets for blockquotes\n margin-block-start: 0;\n margin-inline-start: 0;\n padding-left: 1rem;\n border-left: 3px solid $border-color;\n}\n","$color-scheme: dark;\n$body-background-color: $grey-dk-300;\n$body-heading-color: $grey-lt-000;\n$body-text-color: $grey-lt-300;\n$link-color: $blue-000;\n$nav-child-link-color: $grey-dk-000;\n$sidebar-color: $grey-dk-300;\n$base-button-color: $grey-dk-250;\n$btn-primary-color: $blue-200;\n$code-background-color: #31343f; // OneDarkJekyll default for syntax-one-dark-vivid\n$code-linenumber-color: #dee2f7; // OneDarkJekyll .nf for syntax-one-dark-vivid\n$feedback-color: darken($sidebar-color, 3%);\n$table-background-color: $grey-dk-250;\n$search-background-color: $grey-dk-250;\n$search-result-preview-color: $grey-dk-000;\n$border-color: $grey-dk-200;\n\n@import \"./vendor/OneDarkJekyll/syntax\"; // this is the one-dark-vivid atom syntax theme\n","@mixin fs-1 {\n & {\n font-size: $font-size-1 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-1-sm !important;\n }\n}\n\n@mixin fs-2 {\n & {\n font-size: $font-size-2 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-3 !important;\n }\n}\n\n@mixin fs-3 {\n & {\n font-size: $font-size-3 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-4 !important;\n }\n}\n\n@mixin fs-4 {\n & {\n font-size: $font-size-4 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-5 !important;\n }\n}\n\n@mixin fs-5 {\n & {\n font-size: $font-size-5 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-6 !important;\n }\n}\n\n@mixin fs-6 {\n & {\n font-size: $font-size-6 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n}\n\n@mixin fs-7 {\n & {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-8 !important;\n }\n}\n\n@mixin fs-8 {\n & {\n font-size: $font-size-8 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-9 !important;\n }\n}\n\n@mixin fs-9 {\n & {\n font-size: $font-size-9 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10 !important;\n }\n}\n\n@mixin fs-10 {\n & {\n font-size: $font-size-10 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10-sm !important;\n }\n}\n","// Media query\n\n// Media query mixin\n// Usage:\n// @include mq(md) {\n// ..medium and up styles\n// }\n@mixin mq($name) {\n // Retrieves the value from the key\n $value: map-get($media-queries, $name);\n\n // If the key exists in the map\n @if $value {\n // Prints a media query based on the value\n @media (min-width: $value) {\n @content;\n }\n } @else {\n @warn \"No value could be retrieved from `#{$media-query}`. Please make sure it is defined in `$media-queries` map.\";\n }\n}\n\n// Responsive container\n\n@mixin container {\n padding-right: $gutter-spacing-sm;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-right: $gutter-spacing;\n padding-left: $gutter-spacing;\n }\n}\n","// Typography\n\n// prettier-ignore\n$body-font-family: system-ui, -apple-system, blinkmacsystemfont, \"Segoe UI\",\n roboto, \"Helvetica Neue\", arial, sans-serif, \"Segoe UI Emoji\" !default;\n$mono-font-family: \"SFMono-Regular\", menlo, consolas, monospace !default;\n$root-font-size: 16px !default; // DEPRECATED: previously base font-size for rems\n$body-line-height: 1.4 !default;\n$content-line-height: 1.6 !default;\n$body-heading-line-height: 1.25 !default;\n\n// Font size\n// `-sm` suffix is the size at the small (and above) media query\n\n$font-size-1: 0.5625rem !default;\n$font-size-1-sm: 0.625rem !default;\n$font-size-2: 0.6875rem !default; // h4 - uppercased!, h6 not uppercased, text-small\n$font-size-3: 0.75rem !default; // h5\n$font-size-4: 0.875rem !default;\n$font-size-5: 1rem !default; // h3\n$font-size-6: 1.125rem !default; // h2\n$font-size-7: 1.5rem !default;\n$font-size-8: 2rem !default; // h1\n$font-size-9: 2.25rem !default;\n$font-size-10: 2.625rem !default;\n$font-size-10-sm: 3rem !default;\n\n// Colors\n\n$white: #fff !default;\n$grey-dk-000: #959396 !default;\n$grey-dk-100: #5c5962 !default;\n$grey-dk-200: #44434d !default;\n$grey-dk-250: #302d36 !default;\n$grey-dk-300: #27262b !default;\n$grey-lt-000: #f5f6fa !default;\n$grey-lt-100: #eeebee !default;\n$grey-lt-200: #ecebed !default;\n$grey-lt-300: #e6e1e8 !default;\n$purple-000: #7253ed !default;\n$purple-100: #5e41d0 !default;\n$purple-200: #4e26af !default;\n$purple-300: #381885 !default;\n$blue-000: #2c84fa !default;\n$blue-100: #2869e6 !default;\n$blue-200: #264caf !default;\n$blue-300: #183385 !default;\n$green-000: #41d693 !default;\n$green-100: #11b584 !default;\n$green-200: #009c7b !default;\n$green-300: #026e57 !default;\n$yellow-000: #ffeb82 !default;\n$yellow-100: #fadf50 !default;\n$yellow-200: #f7d12e !default;\n$yellow-300: #e7af06 !default;\n$red-000: #f77e7e !default;\n$red-100: #f96e65 !default;\n$red-200: #e94c4c !default;\n$red-300: #dd2e2e !default;\n\n// Spacing\n\n$spacing-unit: 1rem; // 1rem == 16px\n\n$spacers: (\n sp-0: 0,\n sp-1: $spacing-unit * 0.25,\n sp-2: $spacing-unit * 0.5,\n sp-3: $spacing-unit * 0.75,\n sp-4: $spacing-unit,\n sp-5: $spacing-unit * 1.5,\n sp-6: $spacing-unit * 2,\n sp-7: $spacing-unit * 2.5,\n sp-8: $spacing-unit * 3,\n sp-9: $spacing-unit * 3.5,\n sp-10: $spacing-unit * 4,\n) !default;\n$sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px\n$sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px\n$sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px\n$sp-4: map-get($spacers, sp-4) !default; // 1 rem == 16px\n$sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px\n$sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px\n$sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px\n$sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px\n$sp-9: map-get($spacers, sp-9) !default; // 3.5 rem == 56px\n$sp-10: map-get($spacers, sp-10) !default; // 4 rem == 64px\n\n// Borders\n\n$border: 1px solid !default;\n$border-radius: 4px !default;\n$border-color: $grey-lt-100 !default;\n\n// Grid system\n\n$gutter-spacing: $sp-6 !default;\n$gutter-spacing-sm: $sp-4 !default;\n$nav-width: 16.5rem !default;\n$nav-width-md: 15.5rem !default;\n$nav-list-item-height: $sp-6 !default;\n$nav-list-item-height-sm: $sp-8 !default;\n$nav-list-expander-right: true;\n$content-width: 50rem !default;\n$header-height: 3.75rem !default;\n$search-results-width: $content-width - $nav-width !default;\n$transition-duration: 400ms;\n\n// Media queries in pixels\n\n$media-queries: (\n xs: 20rem,\n sm: 31.25rem,\n md: $content-width,\n lg: $content-width + $nav-width,\n xl: 87.5rem,\n) !default;\n","// The basic two column layout\n\n.side-bar {\n z-index: 0;\n display: flex;\n flex-wrap: wrap;\n background-color: $sidebar-color;\n\n @include mq(md) {\n flex-flow: column nowrap;\n position: fixed;\n width: $nav-width-md;\n height: 100%;\n border-right: $border $border-color;\n align-items: flex-end;\n }\n\n @include mq(lg) {\n width: calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width});\n min-width: $nav-width;\n }\n\n & + .main {\n @include mq(md) {\n margin-left: $nav-width-md;\n }\n\n @include mq(lg) {\n // stylelint-disable function-name-case\n // disable for Max(), we want to use the CSS max() function\n margin-left: Max(\n #{$nav-width},\n calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width})\n );\n // stylelint-enable function-name-case\n }\n\n .main-header {\n display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n background-color: $body-background-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\n }\n }\n }\n}\n\n.main {\n margin: auto;\n\n @include mq(md) {\n position: relative;\n max-width: $content-width;\n }\n}\n\n.main-content-wrap {\n padding-top: $gutter-spacing-sm;\n padding-bottom: $gutter-spacing-sm;\n\n @include container;\n\n @include mq(md) {\n padding-top: $gutter-spacing;\n padding-bottom: $gutter-spacing;\n }\n}\n\n.main-header {\n z-index: 0;\n border-bottom: $border $border-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n }\n}\n\n.site-nav,\n.site-header,\n.site-footer {\n width: 100%;\n\n @include mq(lg) {\n width: $nav-width;\n }\n}\n\n.site-nav {\n display: none;\n\n &.nav-open {\n display: block;\n }\n\n @include mq(md) {\n display: block;\n padding-top: $sp-8;\n padding-bottom: $gutter-spacing-sm;\n overflow-y: auto;\n flex: 1 1 auto;\n }\n}\n\n.site-header {\n display: flex;\n min-height: $header-height;\n align-items: center;\n\n @include mq(md) {\n height: $header-height;\n max-height: $header-height;\n border-bottom: $border $border-color;\n }\n}\n\n.site-title {\n flex-grow: 1;\n display: flex;\n height: 100%;\n align-items: center;\n padding-top: $sp-3;\n padding-bottom: $sp-3;\n color: $body-heading-color;\n\n @include container;\n\n @include fs-6;\n\n @include mq(md) {\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n }\n}\n\n@if variable-exists(logo) {\n .site-logo {\n width: 100%;\n height: 100%;\n background-image: url($logo);\n background-repeat: no-repeat;\n background-position: left center;\n background-size: contain;\n }\n}\n\n.site-button {\n display: flex;\n height: 100%;\n padding: $gutter-spacing-sm;\n align-items: center;\n}\n\n@include mq(md) {\n .site-header .site-button {\n display: none;\n }\n}\n\n.site-title:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n}\n\n.site-button:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n}\n\n// stylelint-disable selector-max-type\n\nbody {\n position: relative;\n padding-bottom: $sp-10;\n overflow-y: scroll;\n\n @include mq(md) {\n position: static;\n padding-bottom: 0;\n }\n}\n\n// stylelint-enable selector-max-type\n\n.site-footer {\n position: absolute;\n bottom: 0;\n left: 0;\n padding-top: $sp-4;\n padding-bottom: $sp-4;\n color: $grey-dk-000;\n\n @include container;\n\n @include fs-2;\n\n @include mq(md) {\n position: static;\n justify-self: end;\n }\n}\n\n.icon {\n width: $sp-5;\n height: $sp-5;\n color: $link-color;\n}\n","@charset \"UTF-8\";\n\n// Styles for rendered markdown in the .main-content container\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity, selector-max-id\n\n.main-content {\n line-height: $content-line-height;\n\n ol,\n ul,\n dl,\n pre,\n address,\n blockquote,\n .table-wrapper {\n margin-top: 0.5em;\n }\n\n a {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n ul,\n ol {\n padding-left: 1.5em;\n }\n\n li {\n .highlight {\n margin-top: $sp-1;\n }\n }\n\n ol {\n list-style-type: none;\n counter-reset: step-counter;\n\n > li {\n position: relative;\n\n &::before {\n position: absolute;\n top: 0.2em;\n left: -1.6em;\n color: $grey-dk-000;\n content: counter(step-counter);\n counter-increment: step-counter;\n @include fs-3;\n\n @include mq(sm) {\n top: 0.11em;\n }\n }\n\n ol {\n counter-reset: sub-counter;\n\n > li {\n &::before {\n content: counter(sub-counter, lower-alpha);\n counter-increment: sub-counter;\n }\n }\n }\n }\n }\n\n ul {\n list-style: none;\n\n > li {\n &::before {\n position: absolute;\n margin-left: -1.4em;\n color: $grey-dk-000;\n content: \"β€’\";\n }\n }\n }\n\n .task-list-item {\n &::before {\n content: \"\";\n }\n }\n\n .task-list-item-checkbox {\n margin-right: 0.6em;\n margin-left: -1.4em;\n\n // The same margin-left is used above for ul > li::before\n }\n\n hr + * {\n margin-top: 0;\n }\n\n h1:first-of-type {\n margin-top: 0.5em;\n }\n\n dl {\n display: grid;\n grid-template: auto / 10em 1fr;\n }\n\n dt,\n dd {\n margin: 0.25em 0;\n }\n\n dt {\n grid-column: 1;\n font-weight: 500;\n text-align: right;\n\n &::after {\n content: \":\";\n }\n }\n\n dd {\n grid-column: 2;\n margin-bottom: 0;\n margin-left: 1em;\n\n blockquote,\n div,\n dl,\n dt,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n li,\n ol,\n p,\n pre,\n table,\n ul,\n .table-wrapper {\n &:first-child {\n margin-top: 0;\n }\n }\n }\n\n dd,\n ol,\n ul {\n dl:first-child {\n dt:first-child,\n dd:nth-child(2) {\n margin-top: 0;\n }\n }\n }\n\n .anchor-heading {\n position: absolute;\n right: -$sp-4;\n width: $sp-5;\n height: 100%;\n padding-right: $sp-1;\n padding-left: $sp-1;\n overflow: visible;\n\n @include mq(md) {\n right: auto;\n left: -$sp-5;\n }\n\n svg {\n display: inline-block;\n width: 100%;\n height: 100%;\n color: $link-color;\n visibility: hidden;\n }\n }\n\n .anchor-heading:hover,\n .anchor-heading:focus,\n h1:hover > .anchor-heading,\n h2:hover > .anchor-heading,\n h3:hover > .anchor-heading,\n h4:hover > .anchor-heading,\n h5:hover > .anchor-heading,\n h6:hover > .anchor-heading {\n svg {\n visibility: visible;\n }\n }\n\n summary {\n cursor: pointer;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n #toctitle {\n position: relative;\n margin-top: 1.5em;\n margin-bottom: 0.25em;\n\n + table,\n + .table-wrapper,\n + .code-example,\n + .highlighter-rouge,\n + .sectionbody .listingblock {\n margin-top: 1em;\n }\n\n + p:not(.label) {\n margin-top: 0;\n }\n }\n\n > h1:first-child,\n > h2:first-child,\n > h3:first-child,\n > h4:first-child,\n > h5:first-child,\n > h6:first-child,\n > .sect1:first-child > h2,\n > .sect2:first-child > h3,\n > .sect3:first-child > h4,\n > .sect4:first-child > h5,\n > .sect5:first-child > h6 {\n margin-top: $sp-2;\n }\n}\n","// Main nav, breadcrumb, etc...\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity\n\n.nav-list {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n margin: 0;\n\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n\n .nav-list-link {\n display: block;\n min-height: $nav-list-item-height-sm;\n padding-top: $sp-1;\n padding-bottom: $sp-1;\n line-height: #{$nav-list-item-height-sm - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height-sm;\n padding-left: $gutter-spacing-sm;\n } @else {\n padding-right: $gutter-spacing-sm;\n padding-left: $nav-list-item-height-sm;\n }\n\n @include mq(md) {\n min-height: $nav-list-item-height;\n line-height: #{$nav-list-item-height - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height;\n padding-left: $gutter-spacing;\n } @else {\n padding-right: $gutter-spacing;\n padding-left: $nav-list-item-height;\n }\n }\n\n &.external > svg {\n width: $sp-4;\n height: $sp-4;\n vertical-align: text-bottom;\n }\n\n &.active {\n font-weight: 600;\n text-decoration: none;\n }\n\n &:hover,\n &.active {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n }\n }\n\n .nav-list-expander {\n position: absolute;\n @if $nav-list-expander-right {\n right: 0;\n }\n\n width: $nav-list-item-height-sm;\n height: $nav-list-item-height-sm;\n padding: #{$nav-list-item-height-sm * 0.25};\n color: $link-color;\n\n @include mq(md) {\n width: $nav-list-item-height;\n height: $nav-list-item-height;\n padding: #{$nav-list-item-height * 0.25};\n }\n\n &:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n }\n\n @if $nav-list-expander-right {\n svg {\n transform: rotate(90deg);\n }\n }\n }\n\n > .nav-list {\n display: none;\n padding-left: $sp-3;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n\n .nav-list-link {\n color: $nav-child-link-color;\n }\n\n .nav-list-expander {\n color: $nav-child-link-color;\n }\n }\n }\n\n &.active {\n > .nav-list-expander svg {\n @if $nav-list-expander-right {\n transform: rotate(-90deg);\n } @else {\n transform: rotate(90deg);\n }\n }\n\n > .nav-list {\n display: block;\n }\n }\n }\n}\n\n.nav-category {\n padding: $sp-2 $gutter-spacing-sm;\n font-weight: 600;\n text-align: start;\n text-transform: uppercase;\n border-bottom: $border $border-color;\n @include fs-2;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing;\n margin-top: $gutter-spacing-sm;\n text-align: start;\n\n &:first-child {\n margin-top: 0;\n }\n }\n}\n\n.nav-list.nav-category-list {\n > .nav-list-item {\n margin: 0;\n\n > .nav-list {\n padding: 0;\n\n > .nav-list-item {\n > .nav-list-link {\n color: $link-color;\n }\n\n > .nav-list-expander {\n color: $link-color;\n }\n }\n }\n }\n}\n\n// Aux nav\n\n.aux-nav {\n height: 100%;\n overflow-x: auto;\n @include fs-2;\n\n .aux-nav-list {\n display: flex;\n height: 100%;\n padding: 0;\n margin: 0;\n list-style: none;\n }\n\n .aux-nav-list-item {\n display: inline-block;\n height: 100%;\n padding: 0;\n margin: 0;\n }\n\n @include mq(md) {\n padding-right: $gutter-spacing-sm;\n }\n}\n\n// Breadcrumb nav\n\n.breadcrumb-nav {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n}\n\n.breadcrumb-nav-list {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n}\n\n.breadcrumb-nav-list-item {\n display: table-cell;\n @include fs-2;\n\n &::before {\n display: none;\n }\n\n &::after {\n display: inline-block;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $grey-dk-000;\n content: \"/\";\n }\n\n &:last-child {\n &::after {\n content: \"\";\n }\n }\n}\n","// Typography\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\nh1,\n.text-alpha {\n font-weight: 300;\n\n @include fs-8;\n}\n\nh2,\n.text-beta,\n#toctitle {\n @include fs-6;\n}\n\nh3,\n.text-gamma {\n @include fs-5;\n}\n\nh4,\n.text-delta {\n font-weight: 400;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n\n @include fs-2;\n}\n\nh4 code {\n text-transform: none;\n}\n\nh5,\n.text-epsilon {\n @include fs-3;\n}\n\nh6,\n.text-zeta {\n @include fs-2;\n}\n\n.text-small {\n @include fs-2;\n}\n\n.text-mono {\n font-family: $mono-font-family !important;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n","// Labels (not the form kind)\n\n// this :not() prevents a style clash with Mermaid.js's\n// diagram labels, which also use .label\n// for more, see https://github.com/just-the-docs/just-the-docs/issues/1272\n// and the accompanying PR\n.label:not(g),\n.label-blue:not(g) {\n display: inline-block;\n padding: 0.16em 0.56em;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $white;\n text-transform: uppercase;\n vertical-align: middle;\n background-color: $blue-100;\n border-radius: 12px;\n\n @include fs-2;\n}\n\n.label-green:not(g) {\n background-color: $green-200;\n}\n\n.label-purple:not(g) {\n background-color: $purple-100;\n}\n\n.label-red:not(g) {\n background-color: $red-200;\n}\n\n.label-yellow:not(g) {\n color: $grey-dk-200;\n background-color: $yellow-200;\n}\n","// Buttons and things that look like buttons\n// stylelint-disable color-named\n\n.btn {\n display: inline-block;\n box-sizing: border-box;\n padding: 0.3em 1em;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n line-height: 1.5;\n color: $link-color;\n text-decoration: none;\n vertical-align: baseline;\n cursor: pointer;\n background-color: $base-button-color;\n border-width: 0;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n appearance: none;\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: darken($link-color, 2%);\n }\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n text-decoration: none;\n background-color: darken($base-button-color, 1%);\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($base-button-color, 3%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken(#dcdcdc, 5%);\n }\n\n &:disabled,\n &.disabled {\n &,\n &:hover {\n color: rgba(102, 102, 102, 0.5);\n cursor: default;\n background-color: rgba(229, 229, 229, 0.5);\n background-image: none;\n box-shadow: none;\n }\n }\n}\n\n.btn-outline {\n color: $link-color;\n background: transparent;\n box-shadow: inset 0 0 0 2px $grey-lt-300;\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n color: darken($link-color, 4%);\n text-decoration: none;\n background-color: transparent;\n box-shadow: inset 0 0 0 3px $grey-lt-300;\n }\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow:\n inset 0 0 0 2px $grey-dk-100,\n 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: inset 0 0 0 2px $grey-dk-100;\n }\n}\n\n.btn-primary {\n @include btn-color($white, $btn-primary-color);\n}\n\n.btn-purple {\n @include btn-color($white, $purple-100);\n}\n\n.btn-blue {\n @include btn-color($white, $blue-000);\n}\n\n.btn-green {\n @include btn-color($white, $green-100);\n}\n\n.btn-reset {\n background: none;\n border: none;\n margin: 0;\n text-align: inherit;\n font: inherit;\n border-radius: 0;\n appearance: none;\n}\n","// Colored button\n\n@mixin btn-color($fg, $bg) {\n color: $fg;\n background-color: darken($bg, 2%);\n background-image: linear-gradient(lighten($bg, 5%), darken($bg, 2%));\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.25),\n 0 4px 10px rgba(0, 0, 0, 0.12);\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: $fg;\n background-color: darken($bg, 4%);\n background-image: linear-gradient((lighten($bg, 2%), darken($bg, 4%)));\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($bg, 5%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken($bg, 10%);\n }\n}\n","// Search input and autocomplete\n\n.search {\n position: relative;\n z-index: 2;\n flex-grow: 1;\n height: $sp-10;\n padding: $sp-2;\n transition: padding linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: relative !important;\n width: auto !important;\n height: 100% !important;\n padding: 0;\n transition: none;\n }\n}\n\n.search-input-wrap {\n position: relative;\n z-index: 1;\n height: $sp-8;\n overflow: hidden;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n transition: height linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: absolute;\n width: 100%;\n max-width: $search-results-width;\n height: 100% !important;\n border-radius: 0;\n box-shadow: none;\n transition: width ease $transition-duration;\n }\n}\n\n.search-input {\n position: absolute;\n width: 100%;\n height: 100%;\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing-sm + $sp-5};\n font-size: 1rem;\n color: $body-text-color;\n background-color: $search-background-color;\n border-top: 0;\n border-right: 0;\n border-bottom: 0;\n border-left: 0;\n border-radius: 0;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing + $sp-5};\n font-size: 0.875rem;\n background-color: $body-background-color;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n &:focus {\n outline: 0;\n\n + .search-label .search-icon {\n color: $link-color;\n }\n }\n}\n\n.search-label {\n position: absolute;\n display: flex;\n height: 100%;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-left: $gutter-spacing;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n .search-icon {\n width: #{$sp-4 * 1.2};\n height: #{$sp-4 * 1.2};\n align-self: center;\n color: $grey-dk-000;\n }\n}\n\n.search-results {\n position: absolute;\n left: 0;\n display: none;\n width: 100%;\n max-height: calc(100% - #{$sp-10});\n overflow-y: auto;\n background-color: $search-background-color;\n border-bottom-right-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n\n @include mq(md) {\n top: 100%;\n width: $search-results-width;\n max-height: calc(100vh - 200%) !important;\n }\n}\n\n.search-results-list {\n padding-left: 0;\n margin-bottom: $sp-1;\n list-style: none;\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n}\n\n.search-results-list-item {\n padding: 0;\n margin: 0;\n}\n\n.search-result {\n display: block;\n padding: $sp-1 $sp-3;\n\n &:hover,\n &.active {\n background-color: $feedback-color;\n }\n}\n\n.search-result-title {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 40%;\n padding-right: $sp-2;\n vertical-align: top;\n }\n}\n\n.search-result-doc {\n display: flex;\n align-items: center;\n word-wrap: break-word;\n\n &.search-result-doc-parent {\n opacity: 0.5;\n @include fs-3;\n\n @include mq(md) {\n @include fs-2;\n }\n }\n\n .search-result-icon {\n width: $sp-4;\n height: $sp-4;\n margin-right: $sp-2;\n color: $link-color;\n flex-shrink: 0;\n }\n\n .search-result-doc-title {\n overflow: auto;\n }\n}\n\n.search-result-section {\n margin-left: #{$sp-4 + $sp-2};\n word-wrap: break-word;\n}\n\n.search-result-rel-url {\n display: block;\n margin-left: #{$sp-4 + $sp-2};\n overflow: hidden;\n color: $search-result-preview-color;\n text-overflow: ellipsis;\n white-space: nowrap;\n @include fs-1;\n}\n\n.search-result-previews {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n padding-left: $sp-4;\n margin-left: $sp-2;\n color: $search-result-preview-color;\n word-wrap: break-word;\n border-left: $border;\n border-left-color: $border-color;\n @include fs-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 60%;\n padding-left: $sp-2;\n margin-left: 0;\n vertical-align: top;\n }\n}\n\n.search-result-preview + .search-result-preview {\n margin-top: $sp-1;\n}\n\n.search-result-highlight {\n font-weight: bold;\n}\n\n.search-no-result {\n padding: $sp-2 $sp-3;\n @include fs-3;\n}\n\n.search-button {\n position: fixed;\n right: $sp-4;\n bottom: $sp-4;\n display: flex;\n width: $sp-9;\n height: $sp-9;\n background-color: $search-background-color;\n border: 1px solid rgba($link-color, 0.3);\n border-radius: #{$sp-9 * 0.5};\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n align-items: center;\n justify-content: center;\n}\n\n.search-overlay {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n width: 0;\n height: 0;\n background-color: rgba(0, 0, 0, 0.3);\n opacity: 0;\n transition:\n opacity ease $transition-duration,\n width 0s $transition-duration,\n height 0s $transition-duration;\n}\n\n.search-active {\n .search {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .search-input-wrap {\n height: $sp-10;\n border-radius: 0;\n\n @include mq(md) {\n width: $search-results-width;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n }\n }\n\n .search-input {\n background-color: $search-background-color;\n\n @include mq(md) {\n padding-left: 2.3rem;\n }\n }\n\n .search-label {\n @include mq(md) {\n padding-left: 0.6rem;\n }\n }\n\n .search-results {\n display: block;\n }\n\n .search-overlay {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n opacity ease $transition-duration,\n width 0s,\n height 0s;\n }\n\n @include mq(md) {\n .main {\n position: fixed;\n right: 0;\n left: 0;\n }\n }\n\n .main-header {\n padding-top: $sp-10;\n\n @include mq(md) {\n padding-top: 0;\n }\n }\n}\n","// Tables\n// stylelint-disable max-nesting-depth, selector-no-type, selector-max-type\n\n.table-wrapper {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: $sp-5;\n overflow-x: auto;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n}\n\ntable {\n display: table;\n min-width: 100%;\n border-collapse: separate;\n}\n\nth,\ntd {\n min-width: 7.5rem;\n padding: $sp-2 $sp-3;\n background-color: $table-background-color;\n border-bottom: $border rgba($border-color, 0.5);\n border-left: $border $border-color;\n\n @include fs-3;\n\n &:first-of-type {\n border-left: 0;\n }\n}\n\ntbody {\n tr {\n &:last-of-type {\n th,\n td {\n border-bottom: 0;\n }\n\n td {\n padding-bottom: $sp-3;\n }\n }\n }\n}\n\nthead {\n th {\n border-bottom: $border $border-color;\n }\n}\n","// Code and syntax highlighting\n// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type, scss/comment-no-empty\n\n// {% raw %}\n\n// This instruction applies to all queues not within 'pre' or 'figure', avoiding 'code' generated by the highlight.\n:not(pre, figure) {\n & > code {\n padding: 0.2em 0.15em;\n font-weight: 400;\n background-color: $code-background-color;\n border: $border $border-color;\n border-radius: $border-radius;\n }\n}\n\n// Avoid appearance of dark border around visited code links in Safari\na:visited code {\n border-color: $border-color;\n}\n\n// Content structure for highlighted code blocks using fences or Liquid\n//\n// ```[LANG]...```, no kramdown line_numbers:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n//\n// ```[LANG]...```, kramdown line_numbers = true:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.rouge-gutter.gl > pre.lineno\n// | td.rouge-code > pre\n//\n// {% highlight LANG %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n//\n// {% highlight LANG linenos %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.gutter.gl > pre.lineno\n// | td.code > pre\n//\n// ----...---- (AsciiDoc)\n// div.listingblock > div.content > pre.rouge.highlight\n//\n// fix_linenos removes the outermost pre when it encloses table.rouge-table\n//\n// See docs/index-test.md for some tests.\n//\n// No kramdown line_numbers: fences and Liquid highlighting look the same.\n// Kramdown line_numbers = true: fences have a wider gutter than with Liquid?\n\n// ```[LANG]...```\n// or in AsciiDoc:\n//\n// ----\n// ...\n// ----\n\n// the code may appear with 3 different types:\n// container \\ case: default case, code with line number, code with html rendering\n// top level: div.highlighter-rouge, figure.highlight, figure.highlight\n// second level: div.highlight, div.table-wrapper, pre.highlight\n// third level: pre.highlight, td.code, absent\n// last level: code, pre, code (optionality)\n// highlighter level: span, span, span\n// the spacing are only in the second level for case 1, 3 and in the third level for case 2\n// in AsciiDoc, there is a parent container that contains optionally a title and the content.\n\n// select top level container\ndiv.highlighter-rouge,\ndiv.listingblock > div.content,\nfigure.highlight {\n margin-top: 0;\n margin-bottom: $sp-3;\n background-color: $code-background-color;\n border-radius: $border-radius;\n box-shadow: none;\n -webkit-overflow-scrolling: touch;\n position: relative;\n padding: 0;\n\n // copy button (or other button)\n // the button appear only when there is a hover on the code or focus on button\n > button {\n width: $sp-3;\n opacity: 0;\n position: absolute;\n top: 0;\n right: 0;\n border: $sp-3 solid $code-background-color;\n background-color: $code-background-color;\n color: $body-text-color;\n box-sizing: content-box;\n\n svg {\n fill: $body-text-color;\n }\n\n &:active {\n text-decoration: none;\n outline: none;\n opacity: 1;\n }\n\n &:focus {\n opacity: 1;\n }\n }\n\n // the button can be seen by doing a simple hover in the code, there is no need to go over the location of the button\n &:hover {\n > button {\n cursor: copy;\n opacity: 1;\n }\n }\n}\n\n// setting the spacing and scrollbar on the second level for the first case\n// remove all space on the second and third level\n// this is a mixin to accommodate for the slightly different structures generated via Markdown vs AsciiDoc\n@mixin scroll-and-spacing($code-div, $pre-select) {\n #{$code-div} {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n\n #{$pre-select},\n code {\n padding: 0;\n margin: 0;\n border: 0;\n }\n}\n\n// for Markdown\ndiv.highlighter-rouge {\n @include scroll-and-spacing(\"div.highlight\", \"pre.highlight\");\n}\n\n// for AsciiDoc. we also need to fix the margins for its parent container.\ndiv.listingblock {\n margin-top: 0;\n margin-bottom: $sp-3;\n\n @include scroll-and-spacing(\"div.content\", \"div.content > pre\");\n}\n\n// {% highlight LANG %}...{% endhighlight %},\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the second level for the thirt case\n// the css rule are apply only to the last code enviroment\n// setting the scroolbar\nfigure.highlight {\n pre,\n :not(pre) > code {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n}\n\n// ```[LANG]...```, kramdown line_numbers = true,\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the thirt level for the second case\n.highlight .table-wrapper {\n padding: $sp-3 0;\n margin: 0;\n border: 0;\n box-shadow: none;\n\n td,\n pre {\n min-width: 0;\n padding: 0;\n background-color: $code-background-color;\n border: 0;\n\n @include fs-2;\n }\n\n td.gl {\n width: 1em;\n padding-right: $sp-3;\n padding-left: $sp-3;\n }\n\n pre {\n margin: 0;\n line-height: 2;\n }\n}\n\n// Code examples: html render of a code\n.code-example,\n.listingblock > .title {\n padding: $sp-3;\n margin-bottom: $sp-3;\n overflow: auto;\n border: 1px solid $border-color;\n border-radius: $border-radius;\n\n + .highlighter-rouge,\n + .sectionbody .listingblock,\n + .content,\n + figure.highlight {\n position: relative;\n margin-top: -$sp-4;\n border-right: 1px solid $border-color;\n border-bottom: 1px solid $border-color;\n border-left: 1px solid $border-color;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n\n// Mermaid diagram code blocks should be left unstyled.\ncode.language-mermaid {\n padding: 0;\n background-color: inherit;\n border: 0;\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight,\npre.highlight {\n background: $code-background-color; // Code Background\n // For Backwards Compatibility Before $code-linenumber-color was added\n @if variable-exists(code-linenumber-color) {\n color: $code-linenumber-color; // Code Line Numbers\n } @else {\n color: $body-text-color; // Code Line Numbers\n }\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight pre {\n background: $code-background-color; // Code Background\n}\n\n// {% endraw %}\n","// Utility classes for colors\n\n// Text colors\n\n.text-grey-dk-000 {\n color: $grey-dk-000 !important;\n}\n\n.text-grey-dk-100 {\n color: $grey-dk-100 !important;\n}\n\n.text-grey-dk-200 {\n color: $grey-dk-200 !important;\n}\n\n.text-grey-dk-250 {\n color: $grey-dk-250 !important;\n}\n\n.text-grey-dk-300 {\n color: $grey-dk-300 !important;\n}\n\n.text-grey-lt-000 {\n color: $grey-lt-000 !important;\n}\n\n.text-grey-lt-100 {\n color: $grey-lt-100 !important;\n}\n\n.text-grey-lt-200 {\n color: $grey-lt-200 !important;\n}\n\n.text-grey-lt-300 {\n color: $grey-lt-300 !important;\n}\n\n.text-blue-000 {\n color: $blue-000 !important;\n}\n\n.text-blue-100 {\n color: $blue-100 !important;\n}\n\n.text-blue-200 {\n color: $blue-200 !important;\n}\n\n.text-blue-300 {\n color: $blue-300 !important;\n}\n\n.text-green-000 {\n color: $green-000 !important;\n}\n\n.text-green-100 {\n color: $green-100 !important;\n}\n\n.text-green-200 {\n color: $green-200 !important;\n}\n\n.text-green-300 {\n color: $green-300 !important;\n}\n\n.text-purple-000 {\n color: $purple-000 !important;\n}\n\n.text-purple-100 {\n color: $purple-100 !important;\n}\n\n.text-purple-200 {\n color: $purple-200 !important;\n}\n\n.text-purple-300 {\n color: $purple-300 !important;\n}\n\n.text-yellow-000 {\n color: $yellow-000 !important;\n}\n\n.text-yellow-100 {\n color: $yellow-100 !important;\n}\n\n.text-yellow-200 {\n color: $yellow-200 !important;\n}\n\n.text-yellow-300 {\n color: $yellow-300 !important;\n}\n\n.text-red-000 {\n color: $red-000 !important;\n}\n\n.text-red-100 {\n color: $red-100 !important;\n}\n\n.text-red-200 {\n color: $red-200 !important;\n}\n\n.text-red-300 {\n color: $red-300 !important;\n}\n\n// Background colors\n\n.bg-grey-dk-000 {\n background-color: $grey-dk-000 !important;\n}\n\n.bg-grey-dk-100 {\n background-color: $grey-dk-100 !important;\n}\n\n.bg-grey-dk-200 {\n background-color: $grey-dk-200 !important;\n}\n\n.bg-grey-dk-250 {\n background-color: $grey-dk-250 !important;\n}\n\n.bg-grey-dk-300 {\n background-color: $grey-dk-300 !important;\n}\n\n.bg-grey-lt-000 {\n background-color: $grey-lt-000 !important;\n}\n\n.bg-grey-lt-100 {\n background-color: $grey-lt-100 !important;\n}\n\n.bg-grey-lt-200 {\n background-color: $grey-lt-200 !important;\n}\n\n.bg-grey-lt-300 {\n background-color: $grey-lt-300 !important;\n}\n\n.bg-blue-000 {\n background-color: $blue-000 !important;\n}\n\n.bg-blue-100 {\n background-color: $blue-100 !important;\n}\n\n.bg-blue-200 {\n background-color: $blue-200 !important;\n}\n\n.bg-blue-300 {\n background-color: $blue-300 !important;\n}\n\n.bg-green-000 {\n background-color: $green-000 !important;\n}\n\n.bg-green-100 {\n background-color: $green-100 !important;\n}\n\n.bg-green-200 {\n background-color: $green-200 !important;\n}\n\n.bg-green-300 {\n background-color: $green-300 !important;\n}\n\n.bg-purple-000 {\n background-color: $purple-000 !important;\n}\n\n.bg-purple-100 {\n background-color: $purple-100 !important;\n}\n\n.bg-purple-200 {\n background-color: $purple-200 !important;\n}\n\n.bg-purple-300 {\n background-color: $purple-300 !important;\n}\n\n.bg-yellow-000 {\n background-color: $yellow-000 !important;\n}\n\n.bg-yellow-100 {\n background-color: $yellow-100 !important;\n}\n\n.bg-yellow-200 {\n background-color: $yellow-200 !important;\n}\n\n.bg-yellow-300 {\n background-color: $yellow-300 !important;\n}\n\n.bg-red-000 {\n background-color: $red-000 !important;\n}\n\n.bg-red-100 {\n background-color: $red-100 !important;\n}\n\n.bg-red-200 {\n background-color: $red-200 !important;\n}\n\n.bg-red-300 {\n background-color: $red-300 !important;\n}\n","// Utility classes for layout\n\n// Display\n\n.d-block {\n display: block !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .d-sm-block, .d-md-none, .d-lg-inline\n .d-#{$media-query}-block {\n display: block !important;\n }\n .d-#{$media-query}-flex {\n display: flex !important;\n }\n .d-#{$media-query}-inline {\n display: inline !important;\n }\n .d-#{$media-query}-inline-block {\n display: inline-block !important;\n }\n .d-#{$media-query}-none {\n display: none !important;\n }\n }\n }\n}\n\n// Horizontal alignment\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.flex-justify-start {\n justify-content: flex-start !important;\n}\n\n.flex-justify-end {\n justify-content: flex-end !important;\n}\n\n.flex-justify-between {\n justify-content: space-between !important;\n}\n\n.flex-justify-around {\n justify-content: space-around !important;\n}\n\n// Vertical alignment\n\n.v-align-baseline {\n vertical-align: baseline !important;\n}\n\n.v-align-bottom {\n vertical-align: bottom !important;\n}\n\n.v-align-middle {\n vertical-align: middle !important;\n}\n\n.v-align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.v-align-text-top {\n vertical-align: text-top !important;\n}\n\n.v-align-top {\n vertical-align: top !important;\n}\n","// Utility classes for typography\n\n.fs-1 {\n @include fs-1;\n}\n\n.fs-2 {\n @include fs-2;\n}\n\n.fs-3 {\n @include fs-3;\n}\n\n.fs-4 {\n @include fs-4;\n}\n\n.fs-5 {\n @include fs-5;\n}\n\n.fs-6 {\n @include fs-6;\n}\n\n.fs-7 {\n @include fs-7;\n}\n\n.fs-8 {\n @include fs-8;\n}\n\n.fs-9 {\n @include fs-9;\n}\n\n.fs-10 {\n @include fs-10;\n}\n\n.fw-300 {\n font-weight: 300 !important;\n}\n\n.fw-400 {\n font-weight: 400 !important;\n}\n\n.fw-500 {\n font-weight: 500 !important;\n}\n\n.fw-700 {\n font-weight: 700 !important;\n}\n\n.lh-0 {\n line-height: 0 !important;\n}\n\n.lh-default {\n line-height: $body-line-height;\n}\n\n.lh-tight {\n line-height: $body-heading-line-height;\n}\n\n.ls-5 {\n letter-spacing: 0.05em !important;\n}\n\n.ls-10 {\n letter-spacing: 0.1em !important;\n}\n\n.ls-0 {\n letter-spacing: 0 !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n","// Utility classes for lists\n\n// stylelint-disable selector-max-type\n\n.list-style-none {\n padding: 0 !important;\n margin: 0 !important;\n list-style: none !important;\n\n li {\n &::before {\n display: none !important;\n }\n }\n}\n","// Utility classes for margins and padding\n\n// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before\n\n// Margin spacer utilities\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-0, .m-1, .m-2...\n .m-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n .mx-#{$scale}-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-sm-0, .m-md-1, .m-lg-2...\n .m-#{$media-query}-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$media-query}-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$media-query}-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$media-query}-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n }\n }\n}\n\n// Padding spacer utilities\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-0, .p-1, .p-2...\n .p-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @include mq($media-query) {\n @for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-sm-0, .p-md-1, .p-lg-2...\n .p-#{$media-query}-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$media-query}-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$media-query}-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n }\n }\n}\n","// stylelint-disable selector-max-specificity, selector-max-id, selector-max-type, selector-no-qualifying-type\n\n@media print {\n .site-footer,\n .site-button,\n #edit-this-page,\n #back-to-top,\n .site-nav,\n .main-header {\n display: none !important;\n }\n\n .side-bar {\n width: 100%;\n height: auto;\n border-right: 0 !important;\n }\n\n .site-header {\n border-bottom: 1px solid $border-color;\n }\n\n .site-title {\n font-size: 1rem !important;\n font-weight: 700 !important;\n }\n\n .text-small {\n font-size: 8pt !important;\n }\n\n pre.highlight {\n border: 1px solid $border-color;\n }\n\n .main {\n max-width: none;\n margin-left: 0;\n }\n}\n","// Skipnav\n// Skip to main content\n\na.skip-to-main {\n left: -999px;\n position: absolute;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n z-index: -999;\n}\n\na.skip-to-main:focus,\na.skip-to-main:active {\n color: $link-color;\n background-color: $body-background-color;\n left: auto;\n top: auto;\n width: 30%;\n height: auto;\n overflow: auto;\n margin: 10px 35%;\n padding: 5px;\n border-radius: 15px;\n border: 4px solid $btn-primary-color;\n text-align: center;\n font-size: 1.2em;\n z-index: 999;\n}\n","\n\n$logo: \"/assets/images/logo.png\";\n\n@import \"./support/support\";\n@import \"./custom/setup\";\n@import \"./color_schemes/light\";\n\n@import \"./color_schemes/dark\";\n\n@import \"./modules\";\ndiv.opaque {\n background-color: $body-background-color;\n}\n@import \"./custom/custom\";\n\n\n"],"file":"just-the-docs-default.css"} \ No newline at end of file diff --git a/jekyll-backup/_site/assets/css/just-the-docs-head-nav.css b/jekyll-backup/_site/assets/css/just-the-docs-head-nav.css new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/jekyll-backup/_site/assets/css/just-the-docs-head-nav.css @@ -0,0 +1 @@ + diff --git a/jekyll-backup/_site/assets/css/just-the-docs-light.css b/jekyll-backup/_site/assets/css/just-the-docs-light.css new file mode 100644 index 00000000..6e1fe84d --- /dev/null +++ b/jekyll-backup/_site/assets/css/just-the-docs-light.css @@ -0,0 +1 @@ +ο»Ώ.highlight,pre.highlight{background:#f9f9f9;color:#383942}.highlight pre{background:#f9f9f9}.highlight .hll{background:#f9f9f9}.highlight .c{color:#9fa0a6;font-style:italic}.highlight .err{color:#fff;background-color:#e05151}.highlight .k{color:#a625a4}.highlight .l{color:#50a04f}.highlight .n{color:#383942}.highlight .o{color:#383942}.highlight .p{color:#383942}.highlight .cm{color:#9fa0a6;font-style:italic}.highlight .cp{color:#9fa0a6;font-style:italic}.highlight .c1{color:#9fa0a6;font-style:italic}.highlight .cs{color:#9fa0a6;font-style:italic}.highlight .ge{font-style:italic}.highlight .gs{font-weight:700}.highlight .kc{color:#a625a4}.highlight .kd{color:#a625a4}.highlight .kn{color:#a625a4}.highlight .kp{color:#a625a4}.highlight .kr{color:#a625a4}.highlight .kt{color:#a625a4}.highlight .ld{color:#50a04f}.highlight .m{color:#b66a00}.highlight .s{color:#50a04f}.highlight .na{color:#b66a00}.highlight .nb{color:#ca7601}.highlight .nc{color:#ca7601}.highlight .no{color:#ca7601}.highlight .nd{color:#ca7601}.highlight .ni{color:#ca7601}.highlight .ne{color:#ca7601}.highlight .nf{color:#383942}.highlight .nl{color:#ca7601}.highlight .nn{color:#383942}.highlight .nx{color:#383942}.highlight .py{color:#ca7601}.highlight .nt{color:#e35549}.highlight .nv{color:#ca7601}.highlight .ow{font-weight:700}.highlight .w{color:#f8f8f2}.highlight .mf{color:#b66a00}.highlight .mh{color:#b66a00}.highlight .mi{color:#b66a00}.highlight .mo{color:#b66a00}.highlight .sb{color:#50a04f}.highlight .sc{color:#50a04f}.highlight .sd{color:#50a04f}.highlight .s2{color:#50a04f}.highlight .se{color:#50a04f}.highlight .sh{color:#50a04f}.highlight .si{color:#50a04f}.highlight .sx{color:#50a04f}.highlight .sr{color:#0083bb}.highlight .s1{color:#50a04f}.highlight .ss{color:#0083bb}.highlight .bp{color:#ca7601}.highlight .vc{color:#ca7601}.highlight .vg{color:#ca7601}.highlight .vi{color:#e35549}.highlight .il{color:#b66a00}.highlight .gu{color:#75715e}.highlight .gd{color:#e05151}.highlight .gi{color:#43d089}.highlight .language-json .w+.s2{color:#e35549}.highlight .language-json .kc{color:#0083bb}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}html{font-size:.875rem !important}@media(min-width: 31.25rem){html{font-size:1rem !important}}body{font-family:system-ui,-apple-system,blinkmacsystemfont,"Segoe UI",roboto,"Helvetica Neue",arial,sans-serif,"Segoe UI Emoji";font-size:inherit;line-height:1.4;color:#5c5962;background-color:#fff;overflow-wrap:break-word}ol,ul,dl,pre,address,blockquote,table,div,hr,form,fieldset,noscript .table-wrapper{margin-top:0}h1,h2,h3,h4,h5,h6,#toctitle{margin-top:0;margin-bottom:1em;font-weight:500;line-height:1.25;color:#27262b}p{margin-top:1em;margin-bottom:1em}a{color:#7253ed;text-decoration:none}a:not([class]){text-decoration:underline;text-decoration-color:#eeebee;text-underline-offset:2px}a:not([class]):hover{text-decoration-color:rgba(114,83,237,.45)}code{font-family:"SFMono-Regular",menlo,consolas,monospace;font-size:.75em;line-height:1.4}figure,pre{margin:0}li{margin:.25em 0}img{max-width:100%;height:auto}hr{height:1px;padding:0;margin:2rem 0;background-color:#eeebee;border:0}blockquote{margin:10px 0;margin-block-start:0;margin-inline-start:0;padding-left:1rem;border-left:3px solid #eeebee}.side-bar{z-index:0;display:flex;flex-wrap:wrap;background-color:#f5f6fa}@media(min-width: 50rem){.side-bar{flex-flow:column nowrap;position:fixed;width:15.5rem;height:100%;border-right:1px solid #eeebee;align-items:flex-end}}@media(min-width: 66.5rem){.side-bar{width:calc((100% - 66.5rem)/2 + 16.5rem);min-width:16.5rem}}@media(min-width: 50rem){.side-bar+.main{margin-left:15.5rem}}@media(min-width: 66.5rem){.side-bar+.main{margin-left:max(16.5rem,(100% - 66.5rem)/2 + 16.5rem)}}.side-bar+.main .main-header{display:none;background-color:#f5f6fa}@media(min-width: 50rem){.side-bar+.main .main-header{display:flex;background-color:#fff}}.side-bar+.main .main-header.nav-open{display:block}@media(min-width: 50rem){.side-bar+.main .main-header.nav-open{display:flex}}.main{margin:auto}@media(min-width: 50rem){.main{position:relative;max-width:50rem}}.main-content-wrap{padding-top:1rem;padding-bottom:1rem;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.main-content-wrap{padding-right:2rem;padding-left:2rem}}@media(min-width: 50rem){.main-content-wrap{padding-top:2rem;padding-bottom:2rem}}.main-header{z-index:0;border-bottom:1px solid #eeebee}@media(min-width: 50rem){.main-header{display:flex;justify-content:space-between;height:3.75rem}}.site-nav,.site-header,.site-footer{width:100%}@media(min-width: 66.5rem){.site-nav,.site-header,.site-footer{width:16.5rem}}.site-nav{display:none}.site-nav.nav-open{display:block}@media(min-width: 50rem){.site-nav{display:block;padding-top:3rem;padding-bottom:1rem;overflow-y:auto;flex:1 1 auto}}.site-header{display:flex;min-height:3.75rem;align-items:center}@media(min-width: 50rem){.site-header{height:3.75rem;max-height:3.75rem;border-bottom:1px solid #eeebee}}.site-title{flex-grow:1;display:flex;height:100%;align-items:center;padding-top:.75rem;padding-bottom:.75rem;color:#27262b;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.site-title{padding-right:2rem;padding-left:2rem}}.site-title{font-size:1.125rem !important}@media(min-width: 31.25rem){.site-title{font-size:1.5rem !important;line-height:1.25}}@media(min-width: 50rem){.site-title{padding-top:.5rem;padding-bottom:.5rem}}.site-logo{width:100%;height:100%;background-image:url("/assets/images/logo.png");background-repeat:no-repeat;background-position:left center;background-size:contain}.site-button{display:flex;height:100%;padding:1rem;align-items:center}@media(min-width: 50rem){.site-header .site-button{display:none}}.site-title:hover{background-image:linear-gradient(-90deg, rgb(234.8, 236.82, 244.9) 0%, rgba(234.8, 236.82, 244.9, 0.8) 80%, rgba(234.8, 236.82, 244.9, 0) 100%)}.site-button:hover{background-image:linear-gradient(-90deg, rgb(234.8, 236.82, 244.9) 0%, rgba(234.8, 236.82, 244.9, 0.8) 100%)}body{position:relative;padding-bottom:4rem;overflow-y:scroll}@media(min-width: 50rem){body{position:static;padding-bottom:0}}.site-footer{position:absolute;bottom:0;left:0;padding-top:1rem;padding-bottom:1rem;color:#959396;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.site-footer{padding-right:2rem;padding-left:2rem}}.site-footer{font-size:.6875rem !important}@media(min-width: 31.25rem){.site-footer{font-size:.75rem !important}}@media(min-width: 50rem){.site-footer{position:static;justify-self:end}}.icon{width:1.5rem;height:1.5rem;color:#7253ed}.main-content{line-height:1.6}.main-content ol,.main-content ul,.main-content dl,.main-content pre,.main-content address,.main-content blockquote,.main-content .table-wrapper{margin-top:.5em}.main-content a{overflow:hidden;text-overflow:ellipsis}.main-content ul,.main-content ol{padding-left:1.5em}.main-content li .highlight{margin-top:.25rem}.main-content ol{list-style-type:none;counter-reset:step-counter}.main-content ol>li{position:relative}.main-content ol>li::before{position:absolute;top:.2em;left:-1.6em;color:#959396;content:counter(step-counter);counter-increment:step-counter}.main-content ol>li::before{font-size:.75rem !important}@media(min-width: 31.25rem){.main-content ol>li::before{font-size:.875rem !important}}@media(min-width: 31.25rem){.main-content ol>li::before{top:.11em}}.main-content ol>li ol{counter-reset:sub-counter}.main-content ol>li ol>li::before{content:counter(sub-counter, lower-alpha);counter-increment:sub-counter}.main-content ul{list-style:none}.main-content ul>li::before{position:absolute;margin-left:-1.4em;color:#959396;content:"β€’"}.main-content .task-list-item::before{content:""}.main-content .task-list-item-checkbox{margin-right:.6em;margin-left:-1.4em}.main-content hr+*{margin-top:0}.main-content h1:first-of-type{margin-top:.5em}.main-content dl{display:grid;grid-template:auto/10em 1fr}.main-content dt,.main-content dd{margin:.25em 0}.main-content dt{grid-column:1;font-weight:500;text-align:right}.main-content dt::after{content:":"}.main-content dd{grid-column:2;margin-bottom:0;margin-left:1em}.main-content dd blockquote:first-child,.main-content dd div:first-child,.main-content dd dl:first-child,.main-content dd dt:first-child,.main-content dd h1:first-child,.main-content dd h2:first-child,.main-content dd h3:first-child,.main-content dd h4:first-child,.main-content dd h5:first-child,.main-content dd h6:first-child,.main-content dd li:first-child,.main-content dd ol:first-child,.main-content dd p:first-child,.main-content dd pre:first-child,.main-content dd table:first-child,.main-content dd ul:first-child,.main-content dd .table-wrapper:first-child{margin-top:0}.main-content dd dl:first-child dt:first-child,.main-content dd dl:first-child dd:nth-child(2),.main-content ol dl:first-child dt:first-child,.main-content ol dl:first-child dd:nth-child(2),.main-content ul dl:first-child dt:first-child,.main-content ul dl:first-child dd:nth-child(2){margin-top:0}.main-content .anchor-heading{position:absolute;right:-1rem;width:1.5rem;height:100%;padding-right:.25rem;padding-left:.25rem;overflow:visible}@media(min-width: 50rem){.main-content .anchor-heading{right:auto;left:-1.5rem}}.main-content .anchor-heading svg{display:inline-block;width:100%;height:100%;color:#7253ed;visibility:hidden}.main-content .anchor-heading:hover svg,.main-content .anchor-heading:focus svg,.main-content h1:hover>.anchor-heading svg,.main-content h2:hover>.anchor-heading svg,.main-content h3:hover>.anchor-heading svg,.main-content h4:hover>.anchor-heading svg,.main-content h5:hover>.anchor-heading svg,.main-content h6:hover>.anchor-heading svg{visibility:visible}.main-content summary{cursor:pointer}.main-content h1,.main-content h2,.main-content h3,.main-content h4,.main-content h5,.main-content h6,.main-content #toctitle{position:relative;margin-top:1.5em;margin-bottom:.25em}.main-content h1+table,.main-content h1+.table-wrapper,.main-content h1+.code-example,.main-content h1+.highlighter-rouge,.main-content h1+.sectionbody .listingblock,.main-content h2+table,.main-content h2+.table-wrapper,.main-content h2+.code-example,.main-content h2+.highlighter-rouge,.main-content h2+.sectionbody .listingblock,.main-content h3+table,.main-content h3+.table-wrapper,.main-content h3+.code-example,.main-content h3+.highlighter-rouge,.main-content h3+.sectionbody .listingblock,.main-content h4+table,.main-content h4+.table-wrapper,.main-content h4+.code-example,.main-content h4+.highlighter-rouge,.main-content h4+.sectionbody .listingblock,.main-content h5+table,.main-content h5+.table-wrapper,.main-content h5+.code-example,.main-content h5+.highlighter-rouge,.main-content h5+.sectionbody .listingblock,.main-content h6+table,.main-content h6+.table-wrapper,.main-content h6+.code-example,.main-content h6+.highlighter-rouge,.main-content h6+.sectionbody .listingblock,.main-content #toctitle+table,.main-content #toctitle+.table-wrapper,.main-content #toctitle+.code-example,.main-content #toctitle+.highlighter-rouge,.main-content #toctitle+.sectionbody .listingblock{margin-top:1em}.main-content h1+p:not(.label),.main-content h2+p:not(.label),.main-content h3+p:not(.label),.main-content h4+p:not(.label),.main-content h5+p:not(.label),.main-content h6+p:not(.label),.main-content #toctitle+p:not(.label){margin-top:0}.main-content>h1:first-child,.main-content>h2:first-child,.main-content>h3:first-child,.main-content>h4:first-child,.main-content>h5:first-child,.main-content>h6:first-child,.main-content>.sect1:first-child>h2,.main-content>.sect2:first-child>h3,.main-content>.sect3:first-child>h4,.main-content>.sect4:first-child>h5,.main-content>.sect5:first-child>h6{margin-top:.5rem}.nav-list{padding:0;margin-top:0;margin-bottom:0;list-style:none}.nav-list .nav-list-item{position:relative;margin:0}.nav-list .nav-list-item{font-size:.875rem !important}@media(min-width: 31.25rem){.nav-list .nav-list-item{font-size:1rem !important}}@media(min-width: 50rem){.nav-list .nav-list-item{font-size:.75rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.nav-list .nav-list-item{font-size:.875rem !important}}.nav-list .nav-list-item .nav-list-link{display:block;min-height:3rem;padding-top:.25rem;padding-bottom:.25rem;line-height:2.5rem;padding-right:3rem;padding-left:1rem}@media(min-width: 50rem){.nav-list .nav-list-item .nav-list-link{min-height:2rem;line-height:1.5rem;padding-right:2rem;padding-left:2rem}}.nav-list .nav-list-item .nav-list-link.external>svg{width:1rem;height:1rem;vertical-align:text-bottom}.nav-list .nav-list-item .nav-list-link.active{font-weight:600;text-decoration:none}.nav-list .nav-list-item .nav-list-link:hover,.nav-list .nav-list-item .nav-list-link.active{background-image:linear-gradient(-90deg, rgb(234.8, 236.82, 244.9) 0%, rgba(234.8, 236.82, 244.9, 0.8) 80%, rgba(234.8, 236.82, 244.9, 0) 100%)}.nav-list .nav-list-item .nav-list-expander{position:absolute;right:0;width:3rem;height:3rem;padding:0.75rem;color:#7253ed}@media(min-width: 50rem){.nav-list .nav-list-item .nav-list-expander{width:2rem;height:2rem;padding:0.5rem}}.nav-list .nav-list-item .nav-list-expander:hover{background-image:linear-gradient(-90deg, rgb(234.8, 236.82, 244.9) 0%, rgba(234.8, 236.82, 244.9, 0.8) 100%)}.nav-list .nav-list-item .nav-list-expander svg{transform:rotate(90deg)}.nav-list .nav-list-item>.nav-list{display:none;padding-left:.75rem;list-style:none}.nav-list .nav-list-item>.nav-list .nav-list-item{position:relative}.nav-list .nav-list-item>.nav-list .nav-list-item .nav-list-link{color:#5c5962}.nav-list .nav-list-item>.nav-list .nav-list-item .nav-list-expander{color:#5c5962}.nav-list .nav-list-item.active>.nav-list-expander svg{transform:rotate(-90deg)}.nav-list .nav-list-item.active>.nav-list{display:block}.nav-category{padding:.5rem 1rem;font-weight:600;text-align:start;text-transform:uppercase;border-bottom:1px solid #eeebee}.nav-category{font-size:.6875rem !important}@media(min-width: 31.25rem){.nav-category{font-size:.75rem !important}}@media(min-width: 50rem){.nav-category{padding:.5rem 2rem;margin-top:1rem;text-align:start}.nav-category:first-child{margin-top:0}}.nav-list.nav-category-list>.nav-list-item{margin:0}.nav-list.nav-category-list>.nav-list-item>.nav-list{padding:0}.nav-list.nav-category-list>.nav-list-item>.nav-list>.nav-list-item>.nav-list-link{color:#7253ed}.nav-list.nav-category-list>.nav-list-item>.nav-list>.nav-list-item>.nav-list-expander{color:#7253ed}.aux-nav{height:100%;overflow-x:auto}.aux-nav{font-size:.6875rem !important}@media(min-width: 31.25rem){.aux-nav{font-size:.75rem !important}}.aux-nav .aux-nav-list{display:flex;height:100%;padding:0;margin:0;list-style:none}.aux-nav .aux-nav-list-item{display:inline-block;height:100%;padding:0;margin:0}@media(min-width: 50rem){.aux-nav{padding-right:1rem}}@media(min-width: 50rem){.breadcrumb-nav{margin-top:-1rem}}.breadcrumb-nav-list{padding-left:0;margin-bottom:.75rem;list-style:none}.breadcrumb-nav-list-item{display:table-cell}.breadcrumb-nav-list-item{font-size:.6875rem !important}@media(min-width: 31.25rem){.breadcrumb-nav-list-item{font-size:.75rem !important}}.breadcrumb-nav-list-item::before{display:none}.breadcrumb-nav-list-item::after{display:inline-block;margin-right:.5rem;margin-left:.5rem;color:#959396;content:"/"}.breadcrumb-nav-list-item:last-child::after{content:""}h1,.text-alpha{font-weight:300}h1,.text-alpha{font-size:2rem !important;line-height:1.25}@media(min-width: 31.25rem){h1,.text-alpha{font-size:2.25rem !important}}h2,.text-beta,#toctitle{font-size:1.125rem !important}@media(min-width: 31.25rem){h2,.text-beta,#toctitle{font-size:1.5rem !important;line-height:1.25}}h3,.text-gamma{font-size:1rem !important}@media(min-width: 31.25rem){h3,.text-gamma{font-size:1.125rem !important}}h4,.text-delta{font-weight:400;text-transform:uppercase;letter-spacing:.1em}h4,.text-delta{font-size:.6875rem !important}@media(min-width: 31.25rem){h4,.text-delta{font-size:.75rem !important}}h4 code{text-transform:none}h5,.text-epsilon{font-size:.75rem !important}@media(min-width: 31.25rem){h5,.text-epsilon{font-size:.875rem !important}}h6,.text-zeta{font-size:.6875rem !important}@media(min-width: 31.25rem){h6,.text-zeta{font-size:.75rem !important}}.text-small{font-size:.6875rem !important}@media(min-width: 31.25rem){.text-small{font-size:.75rem !important}}.text-mono{font-family:"SFMono-Regular",menlo,consolas,monospace !important}.text-left{text-align:left !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.label:not(g),.label-blue:not(g){display:inline-block;padding:.16em .56em;margin-right:.5rem;margin-left:.5rem;color:#fff;text-transform:uppercase;vertical-align:middle;background-color:#2869e6;border-radius:12px}.label:not(g),.label-blue:not(g){font-size:.6875rem !important}@media(min-width: 31.25rem){.label:not(g),.label-blue:not(g){font-size:.75rem !important}}.label-green:not(g){background-color:#009c7b}.label-purple:not(g){background-color:#5e41d0}.label-red:not(g){background-color:#e94c4c}.label-yellow:not(g){color:#44434d;background-color:#f7d12e}.btn{display:inline-block;box-sizing:border-box;padding:.3em 1em;margin:0;font-family:inherit;font-size:inherit;font-weight:500;line-height:1.5;color:#7253ed;text-decoration:none;vertical-align:baseline;cursor:pointer;background-color:#f7f7f7;border-width:0;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);appearance:none}.btn:focus{text-decoration:none;outline:none;box-shadow:0 0 0 3px rgba(0,0,255,.25)}.btn:focus:hover,.btn.selected:focus{box-shadow:0 0 0 3px rgba(0,0,255,.25)}.btn:hover,.btn.zeroclipboard-is-hover{color:rgb(106.4305263158,73.7663157895,236.0336842105)}.btn:hover,.btn:active,.btn.zeroclipboard-is-hover,.btn.zeroclipboard-is-active{text-decoration:none;background-color:hsl(0,0%,95.862745098%)}.btn:active,.btn.selected,.btn.zeroclipboard-is-active{background-color:hsl(0,0%,93.862745098%);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn.selected:hover{background-color:hsl(0,0%,81.2745098039%)}.btn:disabled,.btn:disabled:hover,.btn.disabled,.btn.disabled:hover{color:hsla(0,0%,40%,.5);cursor:default;background-color:rgba(229,229,229,.5);background-image:none;box-shadow:none}.btn-outline{color:#7253ed;background:rgba(0,0,0,0);box-shadow:inset 0 0 0 2px #e6e1e8}.btn-outline:hover,.btn-outline:active,.btn-outline.zeroclipboard-is-hover,.btn-outline.zeroclipboard-is-active{color:rgb(98.8610526316,64.5326315789,235.0673684211);text-decoration:none;background-color:rgba(0,0,0,0);box-shadow:inset 0 0 0 3px #e6e1e8}.btn-outline:focus{text-decoration:none;outline:none;box-shadow:inset 0 0 0 2px #5c5962,0 0 0 3px rgba(0,0,255,.25)}.btn-outline:focus:hover,.btn-outline.selected:focus{box-shadow:inset 0 0 0 2px #5c5962}.btn-primary{color:#fff;background-color:rgb(87.0708860759,56.8227848101,205.9772151899);background-image:linear-gradient(rgb(111.3227848101, 85.4430379747, 213.0569620253), rgb(87.0708860759, 56.8227848101, 205.9772151899));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-primary:hover,.btn-primary.zeroclipboard-is-hover{color:#fff;background-color:rgb(81.0025316456,50.0936708861,202.5063291139);background-image:linear-gradient(rgb(100.9291139241, 73.1772151899, 210.0227848101), rgb(81.0025316456, 50.0936708861, 202.5063291139))}.btn-primary:active,.btn-primary.selected,.btn-primary.zeroclipboard-is-active{background-color:rgb(79.3670886076,49.082278481,198.417721519);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-primary.selected:hover{background-color:rgb(71.1898734177,44.0253164557,177.9746835443)}.btn-purple{color:#fff;background-color:rgb(87.0708860759,56.8227848101,205.9772151899);background-image:linear-gradient(rgb(111.3227848101, 85.4430379747, 213.0569620253), rgb(87.0708860759, 56.8227848101, 205.9772151899));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-purple:hover,.btn-purple.zeroclipboard-is-hover{color:#fff;background-color:rgb(81.0025316456,50.0936708861,202.5063291139);background-image:linear-gradient(rgb(100.9291139241, 73.1772151899, 210.0227848101), rgb(81.0025316456, 50.0936708861, 202.5063291139))}.btn-purple:active,.btn-purple.selected,.btn-purple.zeroclipboard-is-active{background-color:rgb(79.3670886076,49.082278481,198.417721519);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-purple.selected:hover{background-color:rgb(71.1898734177,44.0253164557,177.9746835443)}.btn-blue{color:#fff;background-color:rgb(34.0361111111,126.1916666667,249.7638888889);background-image:linear-gradient(rgb(68.9097222222, 146.5208333333, 250.5902777778), rgb(34.0361111111, 126.1916666667, 249.7638888889));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-blue:hover,.btn-blue.zeroclipboard-is-hover{color:#fff;background-color:rgb(24.0722222222,120.3833333333,249.5277777778);background-image:linear-gradient(rgb(53.9638888889, 137.8083333333, 250.2361111111), rgb(24.0722222222, 120.3833333333, 249.5277777778))}.btn-blue:active,.btn-blue.selected,.btn-blue.zeroclipboard-is-active{background-color:rgb(19.0902777778,117.4791666667,249.4097222222);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-blue.selected:hover{background-color:rgb(5.625,104.625,237.375)}.btn-green{color:#fff;background-color:rgb(16.1242424242,171.6757575758,125.2);background-image:linear-gradient(rgb(19.1893939394, 204.3106060606, 149), rgb(16.1242424242, 171.6757575758, 125.2));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-green:hover,.btn-green.zeroclipboard-is-hover{color:#fff;background-color:rgb(15.2484848485,162.3515151515,118.4);background-image:linear-gradient(rgb(17.8757575758, 190.3242424242, 138.8), rgb(15.2484848485, 162.3515151515, 118.4))}.btn-green:active,.btn-green.selected,.btn-green.zeroclipboard-is-active{background-color:rgb(14.8106060606,157.6893939394,115);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-green.selected:hover{background-color:rgb(12.6212121212,134.3787878788,98)}.btn-reset{background:none;border:none;margin:0;text-align:inherit;font:inherit;border-radius:0;appearance:none}.search{position:relative;z-index:2;flex-grow:1;height:4rem;padding:.5rem;transition:padding linear 200ms}@media(min-width: 50rem){.search{position:relative !important;width:auto !important;height:100% !important;padding:0;transition:none}}.search-input-wrap{position:relative;z-index:1;height:3rem;overflow:hidden;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);transition:height linear 200ms}@media(min-width: 50rem){.search-input-wrap{position:absolute;width:100%;max-width:33.5rem;height:100% !important;border-radius:0;box-shadow:none;transition:width ease 400ms}}.search-input{position:absolute;width:100%;height:100%;padding:.5rem 1rem .5rem 2.5rem;font-size:1rem;color:#5c5962;background-color:#fff;border-top:0;border-right:0;border-bottom:0;border-left:0;border-radius:0}@media(min-width: 50rem){.search-input{padding:.5rem 1rem .5rem 3.5rem;font-size:.875rem;background-color:#fff;transition:padding-left linear 200ms}}.search-input:focus{outline:0}.search-input:focus+.search-label .search-icon{color:#7253ed}.search-label{position:absolute;display:flex;height:100%;padding-left:1rem}@media(min-width: 50rem){.search-label{padding-left:2rem;transition:padding-left linear 200ms}}.search-label .search-icon{width:1.2rem;height:1.2rem;align-self:center;color:#959396}.search-results{position:absolute;left:0;display:none;width:100%;max-height:calc(100% - 4rem);overflow-y:auto;background-color:#fff;border-bottom-right-radius:4px;border-bottom-left-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}@media(min-width: 50rem){.search-results{top:100%;width:33.5rem;max-height:calc(100vh - 200%) !important}}.search-results-list{padding-left:0;margin-bottom:.25rem;list-style:none}.search-results-list{font-size:.875rem !important}@media(min-width: 31.25rem){.search-results-list{font-size:1rem !important}}@media(min-width: 50rem){.search-results-list{font-size:.75rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.search-results-list{font-size:.875rem !important}}.search-results-list-item{padding:0;margin:0}.search-result{display:block;padding:.25rem .75rem}.search-result:hover,.search-result.active{background-color:rgb(234.8,236.82,244.9)}.search-result-title{display:block;padding-top:.5rem;padding-bottom:.5rem}@media(min-width: 31.25rem){.search-result-title{display:inline-block;width:40%;padding-right:.5rem;vertical-align:top}}.search-result-doc{display:flex;align-items:center;word-wrap:break-word}.search-result-doc.search-result-doc-parent{opacity:.5}.search-result-doc.search-result-doc-parent{font-size:.75rem !important}@media(min-width: 31.25rem){.search-result-doc.search-result-doc-parent{font-size:.875rem !important}}@media(min-width: 50rem){.search-result-doc.search-result-doc-parent{font-size:.6875rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.search-result-doc.search-result-doc-parent{font-size:.75rem !important}}.search-result-doc .search-result-icon{width:1rem;height:1rem;margin-right:.5rem;color:#7253ed;flex-shrink:0}.search-result-doc .search-result-doc-title{overflow:auto}.search-result-section{margin-left:1.5rem;word-wrap:break-word}.search-result-rel-url{display:block;margin-left:1.5rem;overflow:hidden;color:#959396;text-overflow:ellipsis;white-space:nowrap}.search-result-rel-url{font-size:.5625rem !important}@media(min-width: 31.25rem){.search-result-rel-url{font-size:.625rem !important}}.search-result-previews{display:block;padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;margin-left:.5rem;color:#959396;word-wrap:break-word;border-left:1px solid;border-left-color:#eeebee}.search-result-previews{font-size:.6875rem !important}@media(min-width: 31.25rem){.search-result-previews{font-size:.75rem !important}}@media(min-width: 31.25rem){.search-result-previews{display:inline-block;width:60%;padding-left:.5rem;margin-left:0;vertical-align:top}}.search-result-preview+.search-result-preview{margin-top:.25rem}.search-result-highlight{font-weight:bold}.search-no-result{padding:.5rem .75rem}.search-no-result{font-size:.75rem !important}@media(min-width: 31.25rem){.search-no-result{font-size:.875rem !important}}.search-button{position:fixed;right:1rem;bottom:1rem;display:flex;width:3.5rem;height:3.5rem;background-color:#fff;border:1px solid rgba(114,83,237,.3);border-radius:1.75rem;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);align-items:center;justify-content:center}.search-overlay{position:fixed;top:0;left:0;z-index:1;width:0;height:0;background-color:rgba(0,0,0,.3);opacity:0;transition:opacity ease 400ms,width 0s 400ms,height 0s 400ms}.search-active .search{position:fixed;top:0;left:0;width:100%;height:100%;padding:0}.search-active .search-input-wrap{height:4rem;border-radius:0}@media(min-width: 50rem){.search-active .search-input-wrap{width:33.5rem;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}}.search-active .search-input{background-color:#fff}@media(min-width: 50rem){.search-active .search-input{padding-left:2.3rem}}@media(min-width: 50rem){.search-active .search-label{padding-left:.6rem}}.search-active .search-results{display:block}.search-active .search-overlay{width:100%;height:100%;opacity:1;transition:opacity ease 400ms,width 0s,height 0s}@media(min-width: 50rem){.search-active .main{position:fixed;right:0;left:0}}.search-active .main-header{padding-top:4rem}@media(min-width: 50rem){.search-active .main-header{padding-top:0}}.table-wrapper{display:block;width:100%;max-width:100%;margin-bottom:1.5rem;overflow-x:auto;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}table{display:table;min-width:100%;border-collapse:separate}th,td{min-width:7.5rem;padding:.5rem .75rem;background-color:#fff;border-bottom:1px solid rgba(238,235,238,.5);border-left:1px solid #eeebee}th,td{font-size:.75rem !important}@media(min-width: 31.25rem){th,td{font-size:.875rem !important}}th:first-of-type,td:first-of-type{border-left:0}tbody tr:last-of-type th,tbody tr:last-of-type td{border-bottom:0}tbody tr:last-of-type td{padding-bottom:.75rem}thead th{border-bottom:1px solid #eeebee}:not(pre,figure)>code{padding:.2em .15em;font-weight:400;background-color:#f5f6fa;border:1px solid #eeebee;border-radius:4px}a:visited code{border-color:#eeebee}div.highlighter-rouge,div.listingblock>div.content,figure.highlight{margin-top:0;margin-bottom:.75rem;background-color:#f5f6fa;border-radius:4px;box-shadow:none;-webkit-overflow-scrolling:touch;position:relative;padding:0}div.highlighter-rouge>button,div.listingblock>div.content>button,figure.highlight>button{width:.75rem;opacity:0;position:absolute;top:0;right:0;border:.75rem solid #f5f6fa;background-color:#f5f6fa;color:#5c5962;box-sizing:content-box}div.highlighter-rouge>button svg,div.listingblock>div.content>button svg,figure.highlight>button svg{fill:#5c5962}div.highlighter-rouge>button:active,div.listingblock>div.content>button:active,figure.highlight>button:active{text-decoration:none;outline:none;opacity:1}div.highlighter-rouge>button:focus,div.listingblock>div.content>button:focus,figure.highlight>button:focus{opacity:1}div.highlighter-rouge:hover>button,div.listingblock>div.content:hover>button,figure.highlight:hover>button{cursor:copy;opacity:1}div.highlighter-rouge div.highlight{overflow-x:auto;padding:.75rem;margin:0;border:0}div.highlighter-rouge pre.highlight,div.highlighter-rouge code{padding:0;margin:0;border:0}div.listingblock{margin-top:0;margin-bottom:.75rem}div.listingblock div.content{overflow-x:auto;padding:.75rem;margin:0;border:0}div.listingblock div.content>pre,div.listingblock code{padding:0;margin:0;border:0}figure.highlight pre,figure.highlight :not(pre)>code{overflow-x:auto;padding:.75rem;margin:0;border:0}.highlight .table-wrapper{padding:.75rem 0;margin:0;border:0;box-shadow:none}.highlight .table-wrapper td,.highlight .table-wrapper pre{min-width:0;padding:0;background-color:#f5f6fa;border:0}.highlight .table-wrapper td,.highlight .table-wrapper pre{font-size:.6875rem !important}@media(min-width: 31.25rem){.highlight .table-wrapper td,.highlight .table-wrapper pre{font-size:.75rem !important}}.highlight .table-wrapper td.gl{width:1em;padding-right:.75rem;padding-left:.75rem}.highlight .table-wrapper pre{margin:0;line-height:2}.code-example,.listingblock>.title{padding:.75rem;margin-bottom:.75rem;overflow:auto;border:1px solid #eeebee;border-radius:4px}.code-example+.highlighter-rouge,.code-example+.sectionbody .listingblock,.code-example+.content,.code-example+figure.highlight,.listingblock>.title+.highlighter-rouge,.listingblock>.title+.sectionbody .listingblock,.listingblock>.title+.content,.listingblock>.title+figure.highlight{position:relative;margin-top:-1rem;border-right:1px solid #eeebee;border-bottom:1px solid #eeebee;border-left:1px solid #eeebee;border-top-left-radius:0;border-top-right-radius:0}code.language-mermaid{padding:0;background-color:inherit;border:0}.highlight,pre.highlight{background:#f5f6fa;color:#5c5962}.highlight pre{background:#f5f6fa}.text-grey-dk-000{color:#959396 !important}.text-grey-dk-100{color:#5c5962 !important}.text-grey-dk-200{color:#44434d !important}.text-grey-dk-250{color:#302d36 !important}.text-grey-dk-300{color:#27262b !important}.text-grey-lt-000{color:#f5f6fa !important}.text-grey-lt-100{color:#eeebee !important}.text-grey-lt-200{color:#ecebed !important}.text-grey-lt-300{color:#e6e1e8 !important}.text-blue-000{color:#2c84fa !important}.text-blue-100{color:#2869e6 !important}.text-blue-200{color:#264caf !important}.text-blue-300{color:#183385 !important}.text-green-000{color:#41d693 !important}.text-green-100{color:#11b584 !important}.text-green-200{color:#009c7b !important}.text-green-300{color:#026e57 !important}.text-purple-000{color:#7253ed !important}.text-purple-100{color:#5e41d0 !important}.text-purple-200{color:#4e26af !important}.text-purple-300{color:#381885 !important}.text-yellow-000{color:#ffeb82 !important}.text-yellow-100{color:#fadf50 !important}.text-yellow-200{color:#f7d12e !important}.text-yellow-300{color:#e7af06 !important}.text-red-000{color:#f77e7e !important}.text-red-100{color:#f96e65 !important}.text-red-200{color:#e94c4c !important}.text-red-300{color:#dd2e2e !important}.bg-grey-dk-000{background-color:#959396 !important}.bg-grey-dk-100{background-color:#5c5962 !important}.bg-grey-dk-200{background-color:#44434d !important}.bg-grey-dk-250{background-color:#302d36 !important}.bg-grey-dk-300{background-color:#27262b !important}.bg-grey-lt-000{background-color:#f5f6fa !important}.bg-grey-lt-100{background-color:#eeebee !important}.bg-grey-lt-200{background-color:#ecebed !important}.bg-grey-lt-300{background-color:#e6e1e8 !important}.bg-blue-000{background-color:#2c84fa !important}.bg-blue-100{background-color:#2869e6 !important}.bg-blue-200{background-color:#264caf !important}.bg-blue-300{background-color:#183385 !important}.bg-green-000{background-color:#41d693 !important}.bg-green-100{background-color:#11b584 !important}.bg-green-200{background-color:#009c7b !important}.bg-green-300{background-color:#026e57 !important}.bg-purple-000{background-color:#7253ed !important}.bg-purple-100{background-color:#5e41d0 !important}.bg-purple-200{background-color:#4e26af !important}.bg-purple-300{background-color:#381885 !important}.bg-yellow-000{background-color:#ffeb82 !important}.bg-yellow-100{background-color:#fadf50 !important}.bg-yellow-200{background-color:#f7d12e !important}.bg-yellow-300{background-color:#e7af06 !important}.bg-red-000{background-color:#f77e7e !important}.bg-red-100{background-color:#f96e65 !important}.bg-red-200{background-color:#e94c4c !important}.bg-red-300{background-color:#dd2e2e !important}.d-block{display:block !important}.d-flex{display:flex !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-none{display:none !important}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}.float-left{float:left !important}.float-right{float:right !important}.flex-justify-start{justify-content:flex-start !important}.flex-justify-end{justify-content:flex-end !important}.flex-justify-between{justify-content:space-between !important}.flex-justify-around{justify-content:space-around !important}.v-align-baseline{vertical-align:baseline !important}.v-align-bottom{vertical-align:bottom !important}.v-align-middle{vertical-align:middle !important}.v-align-text-bottom{vertical-align:text-bottom !important}.v-align-text-top{vertical-align:text-top !important}.v-align-top{vertical-align:top !important}.fs-1{font-size:.5625rem !important}@media(min-width: 31.25rem){.fs-1{font-size:.625rem !important}}.fs-2{font-size:.6875rem !important}@media(min-width: 31.25rem){.fs-2{font-size:.75rem !important}}.fs-3{font-size:.75rem !important}@media(min-width: 31.25rem){.fs-3{font-size:.875rem !important}}.fs-4{font-size:.875rem !important}@media(min-width: 31.25rem){.fs-4{font-size:1rem !important}}.fs-5{font-size:1rem !important}@media(min-width: 31.25rem){.fs-5{font-size:1.125rem !important}}.fs-6{font-size:1.125rem !important}@media(min-width: 31.25rem){.fs-6{font-size:1.5rem !important;line-height:1.25}}.fs-7{font-size:1.5rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-7{font-size:2rem !important}}.fs-8{font-size:2rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-8{font-size:2.25rem !important}}.fs-9{font-size:2.25rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-9{font-size:2.625rem !important}}.fs-10{font-size:2.625rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-10{font-size:3rem !important}}.fw-300{font-weight:300 !important}.fw-400{font-weight:400 !important}.fw-500{font-weight:500 !important}.fw-700{font-weight:700 !important}.lh-0{line-height:0 !important}.lh-default{line-height:1.4}.lh-tight{line-height:1.25}.ls-5{letter-spacing:.05em !important}.ls-10{letter-spacing:.1em !important}.ls-0{letter-spacing:0 !important}.text-uppercase{text-transform:uppercase !important}.list-style-none{padding:0 !important;margin:0 !important;list-style:none !important}.list-style-none li::before{display:none !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-0{margin-right:-0 !important;margin-left:-0 !important}.mx-0-auto{margin-right:auto !important;margin-left:auto !important}.m-1{margin:0.25rem !important}.mt-1{margin-top:0.25rem !important}.mr-1{margin-right:0.25rem !important}.mb-1{margin-bottom:0.25rem !important}.ml-1{margin-left:0.25rem !important}.mx-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-1-auto{margin-right:auto !important;margin-left:auto !important}.m-2{margin:0.5rem !important}.mt-2{margin-top:0.5rem !important}.mr-2{margin-right:0.5rem !important}.mb-2{margin-bottom:0.5rem !important}.ml-2{margin-left:0.5rem !important}.mx-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-2-auto{margin-right:auto !important;margin-left:auto !important}.m-3{margin:0.75rem !important}.mt-3{margin-top:0.75rem !important}.mr-3{margin-right:0.75rem !important}.mb-3{margin-bottom:0.75rem !important}.ml-3{margin-left:0.75rem !important}.mx-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}.mx-3-auto{margin-right:auto !important;margin-left:auto !important}.m-4{margin:1rem !important}.mt-4{margin-top:1rem !important}.mr-4{margin-right:1rem !important}.mb-4{margin-bottom:1rem !important}.ml-4{margin-left:1rem !important}.mx-4{margin-right:1rem !important;margin-left:1rem !important}.my-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-4{margin-right:-1rem !important;margin-left:-1rem !important}.mx-4-auto{margin-right:auto !important;margin-left:auto !important}.m-5{margin:1.5rem !important}.mt-5{margin-top:1.5rem !important}.mr-5{margin-right:1.5rem !important}.mb-5{margin-bottom:1.5rem !important}.ml-5{margin-left:1.5rem !important}.mx-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-5-auto{margin-right:auto !important;margin-left:auto !important}.m-6{margin:2rem !important}.mt-6{margin-top:2rem !important}.mr-6{margin-right:2rem !important}.mb-6{margin-bottom:2rem !important}.ml-6{margin-left:2rem !important}.mx-6{margin-right:2rem !important;margin-left:2rem !important}.my-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-6{margin-right:-2rem !important;margin-left:-2rem !important}.mx-6-auto{margin-right:auto !important;margin-left:auto !important}.m-7{margin:2.5rem !important}.mt-7{margin-top:2.5rem !important}.mr-7{margin-right:2.5rem !important}.mb-7{margin-bottom:2.5rem !important}.ml-7{margin-left:2.5rem !important}.mx-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}.mx-7-auto{margin-right:auto !important;margin-left:auto !important}.m-8{margin:3rem !important}.mt-8{margin-top:3rem !important}.mr-8{margin-right:3rem !important}.mb-8{margin-bottom:3rem !important}.ml-8{margin-left:3rem !important}.mx-8{margin-right:3rem !important;margin-left:3rem !important}.my-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-8{margin-right:-3rem !important;margin-left:-3rem !important}.mx-8-auto{margin-right:auto !important;margin-left:auto !important}.m-9{margin:3.5rem !important}.mt-9{margin-top:3.5rem !important}.mr-9{margin-right:3.5rem !important}.mb-9{margin-bottom:3.5rem !important}.ml-9{margin-left:3.5rem !important}.mx-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}.mx-9-auto{margin-right:auto !important;margin-left:auto !important}.m-10{margin:4rem !important}.mt-10{margin-top:4rem !important}.mr-10{margin-right:4rem !important}.mb-10{margin-bottom:4rem !important}.ml-10{margin-left:4rem !important}.mx-10{margin-right:4rem !important;margin-left:4rem !important}.my-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-10{margin-right:-4rem !important;margin-left:-4rem !important}.mx-10-auto{margin-right:auto !important;margin-left:auto !important}@media(min-width: 20rem){.m-xs-0{margin:0 !important}.mt-xs-0{margin-top:0 !important}.mr-xs-0{margin-right:0 !important}.mb-xs-0{margin-bottom:0 !important}.ml-xs-0{margin-left:0 !important}.mx-xs-0{margin-right:0 !important;margin-left:0 !important}.my-xs-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-xs-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 20rem){.m-xs-1{margin:0.25rem !important}.mt-xs-1{margin-top:0.25rem !important}.mr-xs-1{margin-right:0.25rem !important}.mb-xs-1{margin-bottom:0.25rem !important}.ml-xs-1{margin-left:0.25rem !important}.mx-xs-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-xs-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-xs-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 20rem){.m-xs-2{margin:0.5rem !important}.mt-xs-2{margin-top:0.5rem !important}.mr-xs-2{margin-right:0.5rem !important}.mb-xs-2{margin-bottom:0.5rem !important}.ml-xs-2{margin-left:0.5rem !important}.mx-xs-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-xs-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-xs-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 20rem){.m-xs-3{margin:0.75rem !important}.mt-xs-3{margin-top:0.75rem !important}.mr-xs-3{margin-right:0.75rem !important}.mb-xs-3{margin-bottom:0.75rem !important}.ml-xs-3{margin-left:0.75rem !important}.mx-xs-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-xs-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-xs-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 20rem){.m-xs-4{margin:1rem !important}.mt-xs-4{margin-top:1rem !important}.mr-xs-4{margin-right:1rem !important}.mb-xs-4{margin-bottom:1rem !important}.ml-xs-4{margin-left:1rem !important}.mx-xs-4{margin-right:1rem !important;margin-left:1rem !important}.my-xs-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-xs-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 20rem){.m-xs-5{margin:1.5rem !important}.mt-xs-5{margin-top:1.5rem !important}.mr-xs-5{margin-right:1.5rem !important}.mb-xs-5{margin-bottom:1.5rem !important}.ml-xs-5{margin-left:1.5rem !important}.mx-xs-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-xs-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-xs-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 20rem){.m-xs-6{margin:2rem !important}.mt-xs-6{margin-top:2rem !important}.mr-xs-6{margin-right:2rem !important}.mb-xs-6{margin-bottom:2rem !important}.ml-xs-6{margin-left:2rem !important}.mx-xs-6{margin-right:2rem !important;margin-left:2rem !important}.my-xs-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-xs-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 20rem){.m-xs-7{margin:2.5rem !important}.mt-xs-7{margin-top:2.5rem !important}.mr-xs-7{margin-right:2.5rem !important}.mb-xs-7{margin-bottom:2.5rem !important}.ml-xs-7{margin-left:2.5rem !important}.mx-xs-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-xs-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-xs-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 20rem){.m-xs-8{margin:3rem !important}.mt-xs-8{margin-top:3rem !important}.mr-xs-8{margin-right:3rem !important}.mb-xs-8{margin-bottom:3rem !important}.ml-xs-8{margin-left:3rem !important}.mx-xs-8{margin-right:3rem !important;margin-left:3rem !important}.my-xs-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-xs-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 20rem){.m-xs-9{margin:3.5rem !important}.mt-xs-9{margin-top:3.5rem !important}.mr-xs-9{margin-right:3.5rem !important}.mb-xs-9{margin-bottom:3.5rem !important}.ml-xs-9{margin-left:3.5rem !important}.mx-xs-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-xs-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-xs-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 20rem){.m-xs-10{margin:4rem !important}.mt-xs-10{margin-top:4rem !important}.mr-xs-10{margin-right:4rem !important}.mb-xs-10{margin-bottom:4rem !important}.ml-xs-10{margin-left:4rem !important}.mx-xs-10{margin-right:4rem !important;margin-left:4rem !important}.my-xs-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-xs-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 31.25rem){.m-sm-0{margin:0 !important}.mt-sm-0{margin-top:0 !important}.mr-sm-0{margin-right:0 !important}.mb-sm-0{margin-bottom:0 !important}.ml-sm-0{margin-left:0 !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-sm-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 31.25rem){.m-sm-1{margin:0.25rem !important}.mt-sm-1{margin-top:0.25rem !important}.mr-sm-1{margin-right:0.25rem !important}.mb-sm-1{margin-bottom:0.25rem !important}.ml-sm-1{margin-left:0.25rem !important}.mx-sm-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-sm-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-sm-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 31.25rem){.m-sm-2{margin:0.5rem !important}.mt-sm-2{margin-top:0.5rem !important}.mr-sm-2{margin-right:0.5rem !important}.mb-sm-2{margin-bottom:0.5rem !important}.ml-sm-2{margin-left:0.5rem !important}.mx-sm-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-sm-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-sm-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 31.25rem){.m-sm-3{margin:0.75rem !important}.mt-sm-3{margin-top:0.75rem !important}.mr-sm-3{margin-right:0.75rem !important}.mb-sm-3{margin-bottom:0.75rem !important}.ml-sm-3{margin-left:0.75rem !important}.mx-sm-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-sm-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-sm-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 31.25rem){.m-sm-4{margin:1rem !important}.mt-sm-4{margin-top:1rem !important}.mr-sm-4{margin-right:1rem !important}.mb-sm-4{margin-bottom:1rem !important}.ml-sm-4{margin-left:1rem !important}.mx-sm-4{margin-right:1rem !important;margin-left:1rem !important}.my-sm-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-sm-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 31.25rem){.m-sm-5{margin:1.5rem !important}.mt-sm-5{margin-top:1.5rem !important}.mr-sm-5{margin-right:1.5rem !important}.mb-sm-5{margin-bottom:1.5rem !important}.ml-sm-5{margin-left:1.5rem !important}.mx-sm-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-sm-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-sm-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 31.25rem){.m-sm-6{margin:2rem !important}.mt-sm-6{margin-top:2rem !important}.mr-sm-6{margin-right:2rem !important}.mb-sm-6{margin-bottom:2rem !important}.ml-sm-6{margin-left:2rem !important}.mx-sm-6{margin-right:2rem !important;margin-left:2rem !important}.my-sm-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-sm-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 31.25rem){.m-sm-7{margin:2.5rem !important}.mt-sm-7{margin-top:2.5rem !important}.mr-sm-7{margin-right:2.5rem !important}.mb-sm-7{margin-bottom:2.5rem !important}.ml-sm-7{margin-left:2.5rem !important}.mx-sm-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-sm-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-sm-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 31.25rem){.m-sm-8{margin:3rem !important}.mt-sm-8{margin-top:3rem !important}.mr-sm-8{margin-right:3rem !important}.mb-sm-8{margin-bottom:3rem !important}.ml-sm-8{margin-left:3rem !important}.mx-sm-8{margin-right:3rem !important;margin-left:3rem !important}.my-sm-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-sm-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 31.25rem){.m-sm-9{margin:3.5rem !important}.mt-sm-9{margin-top:3.5rem !important}.mr-sm-9{margin-right:3.5rem !important}.mb-sm-9{margin-bottom:3.5rem !important}.ml-sm-9{margin-left:3.5rem !important}.mx-sm-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-sm-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-sm-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 31.25rem){.m-sm-10{margin:4rem !important}.mt-sm-10{margin-top:4rem !important}.mr-sm-10{margin-right:4rem !important}.mb-sm-10{margin-bottom:4rem !important}.ml-sm-10{margin-left:4rem !important}.mx-sm-10{margin-right:4rem !important;margin-left:4rem !important}.my-sm-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-sm-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 50rem){.m-md-0{margin:0 !important}.mt-md-0{margin-top:0 !important}.mr-md-0{margin-right:0 !important}.mb-md-0{margin-bottom:0 !important}.ml-md-0{margin-left:0 !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-md-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 50rem){.m-md-1{margin:0.25rem !important}.mt-md-1{margin-top:0.25rem !important}.mr-md-1{margin-right:0.25rem !important}.mb-md-1{margin-bottom:0.25rem !important}.ml-md-1{margin-left:0.25rem !important}.mx-md-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-md-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-md-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 50rem){.m-md-2{margin:0.5rem !important}.mt-md-2{margin-top:0.5rem !important}.mr-md-2{margin-right:0.5rem !important}.mb-md-2{margin-bottom:0.5rem !important}.ml-md-2{margin-left:0.5rem !important}.mx-md-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-md-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-md-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 50rem){.m-md-3{margin:0.75rem !important}.mt-md-3{margin-top:0.75rem !important}.mr-md-3{margin-right:0.75rem !important}.mb-md-3{margin-bottom:0.75rem !important}.ml-md-3{margin-left:0.75rem !important}.mx-md-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-md-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-md-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 50rem){.m-md-4{margin:1rem !important}.mt-md-4{margin-top:1rem !important}.mr-md-4{margin-right:1rem !important}.mb-md-4{margin-bottom:1rem !important}.ml-md-4{margin-left:1rem !important}.mx-md-4{margin-right:1rem !important;margin-left:1rem !important}.my-md-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-md-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 50rem){.m-md-5{margin:1.5rem !important}.mt-md-5{margin-top:1.5rem !important}.mr-md-5{margin-right:1.5rem !important}.mb-md-5{margin-bottom:1.5rem !important}.ml-md-5{margin-left:1.5rem !important}.mx-md-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-md-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-md-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 50rem){.m-md-6{margin:2rem !important}.mt-md-6{margin-top:2rem !important}.mr-md-6{margin-right:2rem !important}.mb-md-6{margin-bottom:2rem !important}.ml-md-6{margin-left:2rem !important}.mx-md-6{margin-right:2rem !important;margin-left:2rem !important}.my-md-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-md-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 50rem){.m-md-7{margin:2.5rem !important}.mt-md-7{margin-top:2.5rem !important}.mr-md-7{margin-right:2.5rem !important}.mb-md-7{margin-bottom:2.5rem !important}.ml-md-7{margin-left:2.5rem !important}.mx-md-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-md-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-md-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 50rem){.m-md-8{margin:3rem !important}.mt-md-8{margin-top:3rem !important}.mr-md-8{margin-right:3rem !important}.mb-md-8{margin-bottom:3rem !important}.ml-md-8{margin-left:3rem !important}.mx-md-8{margin-right:3rem !important;margin-left:3rem !important}.my-md-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-md-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 50rem){.m-md-9{margin:3.5rem !important}.mt-md-9{margin-top:3.5rem !important}.mr-md-9{margin-right:3.5rem !important}.mb-md-9{margin-bottom:3.5rem !important}.ml-md-9{margin-left:3.5rem !important}.mx-md-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-md-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-md-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 50rem){.m-md-10{margin:4rem !important}.mt-md-10{margin-top:4rem !important}.mr-md-10{margin-right:4rem !important}.mb-md-10{margin-bottom:4rem !important}.ml-md-10{margin-left:4rem !important}.mx-md-10{margin-right:4rem !important;margin-left:4rem !important}.my-md-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-md-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 66.5rem){.m-lg-0{margin:0 !important}.mt-lg-0{margin-top:0 !important}.mr-lg-0{margin-right:0 !important}.mb-lg-0{margin-bottom:0 !important}.ml-lg-0{margin-left:0 !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-lg-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 66.5rem){.m-lg-1{margin:0.25rem !important}.mt-lg-1{margin-top:0.25rem !important}.mr-lg-1{margin-right:0.25rem !important}.mb-lg-1{margin-bottom:0.25rem !important}.ml-lg-1{margin-left:0.25rem !important}.mx-lg-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-lg-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-lg-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 66.5rem){.m-lg-2{margin:0.5rem !important}.mt-lg-2{margin-top:0.5rem !important}.mr-lg-2{margin-right:0.5rem !important}.mb-lg-2{margin-bottom:0.5rem !important}.ml-lg-2{margin-left:0.5rem !important}.mx-lg-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-lg-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-lg-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 66.5rem){.m-lg-3{margin:0.75rem !important}.mt-lg-3{margin-top:0.75rem !important}.mr-lg-3{margin-right:0.75rem !important}.mb-lg-3{margin-bottom:0.75rem !important}.ml-lg-3{margin-left:0.75rem !important}.mx-lg-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-lg-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-lg-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 66.5rem){.m-lg-4{margin:1rem !important}.mt-lg-4{margin-top:1rem !important}.mr-lg-4{margin-right:1rem !important}.mb-lg-4{margin-bottom:1rem !important}.ml-lg-4{margin-left:1rem !important}.mx-lg-4{margin-right:1rem !important;margin-left:1rem !important}.my-lg-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-lg-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 66.5rem){.m-lg-5{margin:1.5rem !important}.mt-lg-5{margin-top:1.5rem !important}.mr-lg-5{margin-right:1.5rem !important}.mb-lg-5{margin-bottom:1.5rem !important}.ml-lg-5{margin-left:1.5rem !important}.mx-lg-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-lg-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-lg-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 66.5rem){.m-lg-6{margin:2rem !important}.mt-lg-6{margin-top:2rem !important}.mr-lg-6{margin-right:2rem !important}.mb-lg-6{margin-bottom:2rem !important}.ml-lg-6{margin-left:2rem !important}.mx-lg-6{margin-right:2rem !important;margin-left:2rem !important}.my-lg-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-lg-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 66.5rem){.m-lg-7{margin:2.5rem !important}.mt-lg-7{margin-top:2.5rem !important}.mr-lg-7{margin-right:2.5rem !important}.mb-lg-7{margin-bottom:2.5rem !important}.ml-lg-7{margin-left:2.5rem !important}.mx-lg-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-lg-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-lg-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 66.5rem){.m-lg-8{margin:3rem !important}.mt-lg-8{margin-top:3rem !important}.mr-lg-8{margin-right:3rem !important}.mb-lg-8{margin-bottom:3rem !important}.ml-lg-8{margin-left:3rem !important}.mx-lg-8{margin-right:3rem !important;margin-left:3rem !important}.my-lg-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-lg-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 66.5rem){.m-lg-9{margin:3.5rem !important}.mt-lg-9{margin-top:3.5rem !important}.mr-lg-9{margin-right:3.5rem !important}.mb-lg-9{margin-bottom:3.5rem !important}.ml-lg-9{margin-left:3.5rem !important}.mx-lg-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-lg-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-lg-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 66.5rem){.m-lg-10{margin:4rem !important}.mt-lg-10{margin-top:4rem !important}.mr-lg-10{margin-right:4rem !important}.mb-lg-10{margin-bottom:4rem !important}.ml-lg-10{margin-left:4rem !important}.mx-lg-10{margin-right:4rem !important;margin-left:4rem !important}.my-lg-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-lg-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 87.5rem){.m-xl-0{margin:0 !important}.mt-xl-0{margin-top:0 !important}.mr-xl-0{margin-right:0 !important}.mb-xl-0{margin-bottom:0 !important}.ml-xl-0{margin-left:0 !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-xl-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 87.5rem){.m-xl-1{margin:0.25rem !important}.mt-xl-1{margin-top:0.25rem !important}.mr-xl-1{margin-right:0.25rem !important}.mb-xl-1{margin-bottom:0.25rem !important}.ml-xl-1{margin-left:0.25rem !important}.mx-xl-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-xl-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-xl-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 87.5rem){.m-xl-2{margin:0.5rem !important}.mt-xl-2{margin-top:0.5rem !important}.mr-xl-2{margin-right:0.5rem !important}.mb-xl-2{margin-bottom:0.5rem !important}.ml-xl-2{margin-left:0.5rem !important}.mx-xl-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-xl-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-xl-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 87.5rem){.m-xl-3{margin:0.75rem !important}.mt-xl-3{margin-top:0.75rem !important}.mr-xl-3{margin-right:0.75rem !important}.mb-xl-3{margin-bottom:0.75rem !important}.ml-xl-3{margin-left:0.75rem !important}.mx-xl-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-xl-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-xl-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 87.5rem){.m-xl-4{margin:1rem !important}.mt-xl-4{margin-top:1rem !important}.mr-xl-4{margin-right:1rem !important}.mb-xl-4{margin-bottom:1rem !important}.ml-xl-4{margin-left:1rem !important}.mx-xl-4{margin-right:1rem !important;margin-left:1rem !important}.my-xl-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-xl-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 87.5rem){.m-xl-5{margin:1.5rem !important}.mt-xl-5{margin-top:1.5rem !important}.mr-xl-5{margin-right:1.5rem !important}.mb-xl-5{margin-bottom:1.5rem !important}.ml-xl-5{margin-left:1.5rem !important}.mx-xl-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-xl-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-xl-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 87.5rem){.m-xl-6{margin:2rem !important}.mt-xl-6{margin-top:2rem !important}.mr-xl-6{margin-right:2rem !important}.mb-xl-6{margin-bottom:2rem !important}.ml-xl-6{margin-left:2rem !important}.mx-xl-6{margin-right:2rem !important;margin-left:2rem !important}.my-xl-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-xl-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 87.5rem){.m-xl-7{margin:2.5rem !important}.mt-xl-7{margin-top:2.5rem !important}.mr-xl-7{margin-right:2.5rem !important}.mb-xl-7{margin-bottom:2.5rem !important}.ml-xl-7{margin-left:2.5rem !important}.mx-xl-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-xl-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-xl-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 87.5rem){.m-xl-8{margin:3rem !important}.mt-xl-8{margin-top:3rem !important}.mr-xl-8{margin-right:3rem !important}.mb-xl-8{margin-bottom:3rem !important}.ml-xl-8{margin-left:3rem !important}.mx-xl-8{margin-right:3rem !important;margin-left:3rem !important}.my-xl-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-xl-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 87.5rem){.m-xl-9{margin:3.5rem !important}.mt-xl-9{margin-top:3.5rem !important}.mr-xl-9{margin-right:3.5rem !important}.mb-xl-9{margin-bottom:3.5rem !important}.ml-xl-9{margin-left:3.5rem !important}.mx-xl-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-xl-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-xl-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 87.5rem){.m-xl-10{margin:4rem !important}.mt-xl-10{margin-top:4rem !important}.mr-xl-10{margin-right:4rem !important}.mb-xl-10{margin-bottom:4rem !important}.ml-xl-10{margin-left:4rem !important}.mx-xl-10{margin-right:4rem !important;margin-left:4rem !important}.my-xl-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-xl-10{margin-right:-4rem !important;margin-left:-4rem !important}}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-right:0 !important;padding-left:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:0.25rem !important}.pt-1{padding-top:0.25rem !important}.pr-1{padding-right:0.25rem !important}.pb-1{padding-bottom:0.25rem !important}.pl-1{padding-left:0.25rem !important}.px-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-2{padding:0.5rem !important}.pt-2{padding-top:0.5rem !important}.pr-2{padding-right:0.5rem !important}.pb-2{padding-bottom:0.5rem !important}.pl-2{padding-left:0.5rem !important}.px-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-3{padding:0.75rem !important}.pt-3{padding-top:0.75rem !important}.pr-3{padding-right:0.75rem !important}.pb-3{padding-bottom:0.75rem !important}.pl-3{padding-left:0.75rem !important}.px-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-4{padding:1rem !important}.pt-4{padding-top:1rem !important}.pr-4{padding-right:1rem !important}.pb-4{padding-bottom:1rem !important}.pl-4{padding-left:1rem !important}.px-4{padding-right:1rem !important;padding-left:1rem !important}.py-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-5{padding:1.5rem !important}.pt-5{padding-top:1.5rem !important}.pr-5{padding-right:1.5rem !important}.pb-5{padding-bottom:1.5rem !important}.pl-5{padding-left:1.5rem !important}.px-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-6{padding:2rem !important}.pt-6{padding-top:2rem !important}.pr-6{padding-right:2rem !important}.pb-6{padding-bottom:2rem !important}.pl-6{padding-left:2rem !important}.px-6{padding-right:2rem !important;padding-left:2rem !important}.py-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-7{padding:2.5rem !important}.pt-7{padding-top:2.5rem !important}.pr-7{padding-right:2.5rem !important}.pb-7{padding-bottom:2.5rem !important}.pl-7{padding-left:2.5rem !important}.px-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-8{padding:3rem !important}.pt-8{padding-top:3rem !important}.pr-8{padding-right:3rem !important}.pb-8{padding-bottom:3rem !important}.pl-8{padding-left:3rem !important}.px-8{padding-right:3rem !important;padding-left:3rem !important}.py-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-9{padding:3.5rem !important}.pt-9{padding-top:3.5rem !important}.pr-9{padding-right:3.5rem !important}.pb-9{padding-bottom:3.5rem !important}.pl-9{padding-left:3.5rem !important}.px-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-10{padding:4rem !important}.pt-10{padding-top:4rem !important}.pr-10{padding-right:4rem !important}.pb-10{padding-bottom:4rem !important}.pl-10{padding-left:4rem !important}.px-10{padding-right:4rem !important;padding-left:4rem !important}.py-10{padding-top:4rem !important;padding-bottom:4rem !important}@media(min-width: 20rem){.p-xs-0{padding:0 !important}.pt-xs-0{padding-top:0 !important}.pr-xs-0{padding-right:0 !important}.pb-xs-0{padding-bottom:0 !important}.pl-xs-0{padding-left:0 !important}.px-xs-0{padding-right:0 !important;padding-left:0 !important}.py-xs-0{padding-top:0 !important;padding-bottom:0 !important}.p-xs-1{padding:0.25rem !important}.pt-xs-1{padding-top:0.25rem !important}.pr-xs-1{padding-right:0.25rem !important}.pb-xs-1{padding-bottom:0.25rem !important}.pl-xs-1{padding-left:0.25rem !important}.px-xs-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-xs-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-xs-2{padding:0.5rem !important}.pt-xs-2{padding-top:0.5rem !important}.pr-xs-2{padding-right:0.5rem !important}.pb-xs-2{padding-bottom:0.5rem !important}.pl-xs-2{padding-left:0.5rem !important}.px-xs-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-xs-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-xs-3{padding:0.75rem !important}.pt-xs-3{padding-top:0.75rem !important}.pr-xs-3{padding-right:0.75rem !important}.pb-xs-3{padding-bottom:0.75rem !important}.pl-xs-3{padding-left:0.75rem !important}.px-xs-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-xs-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-xs-4{padding:1rem !important}.pt-xs-4{padding-top:1rem !important}.pr-xs-4{padding-right:1rem !important}.pb-xs-4{padding-bottom:1rem !important}.pl-xs-4{padding-left:1rem !important}.px-xs-4{padding-right:1rem !important;padding-left:1rem !important}.py-xs-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-xs-5{padding:1.5rem !important}.pt-xs-5{padding-top:1.5rem !important}.pr-xs-5{padding-right:1.5rem !important}.pb-xs-5{padding-bottom:1.5rem !important}.pl-xs-5{padding-left:1.5rem !important}.px-xs-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-xs-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-xs-6{padding:2rem !important}.pt-xs-6{padding-top:2rem !important}.pr-xs-6{padding-right:2rem !important}.pb-xs-6{padding-bottom:2rem !important}.pl-xs-6{padding-left:2rem !important}.px-xs-6{padding-right:2rem !important;padding-left:2rem !important}.py-xs-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-xs-7{padding:2.5rem !important}.pt-xs-7{padding-top:2.5rem !important}.pr-xs-7{padding-right:2.5rem !important}.pb-xs-7{padding-bottom:2.5rem !important}.pl-xs-7{padding-left:2.5rem !important}.px-xs-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-xs-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-xs-8{padding:3rem !important}.pt-xs-8{padding-top:3rem !important}.pr-xs-8{padding-right:3rem !important}.pb-xs-8{padding-bottom:3rem !important}.pl-xs-8{padding-left:3rem !important}.px-xs-8{padding-right:3rem !important;padding-left:3rem !important}.py-xs-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-xs-9{padding:3.5rem !important}.pt-xs-9{padding-top:3.5rem !important}.pr-xs-9{padding-right:3.5rem !important}.pb-xs-9{padding-bottom:3.5rem !important}.pl-xs-9{padding-left:3.5rem !important}.px-xs-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-xs-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-xs-10{padding:4rem !important}.pt-xs-10{padding-top:4rem !important}.pr-xs-10{padding-right:4rem !important}.pb-xs-10{padding-bottom:4rem !important}.pl-xs-10{padding-left:4rem !important}.px-xs-10{padding-right:4rem !important;padding-left:4rem !important}.py-xs-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 31.25rem){.p-sm-0{padding:0 !important}.pt-sm-0{padding-top:0 !important}.pr-sm-0{padding-right:0 !important}.pb-sm-0{padding-bottom:0 !important}.pl-sm-0{padding-left:0 !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.p-sm-1{padding:0.25rem !important}.pt-sm-1{padding-top:0.25rem !important}.pr-sm-1{padding-right:0.25rem !important}.pb-sm-1{padding-bottom:0.25rem !important}.pl-sm-1{padding-left:0.25rem !important}.px-sm-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-sm-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-sm-2{padding:0.5rem !important}.pt-sm-2{padding-top:0.5rem !important}.pr-sm-2{padding-right:0.5rem !important}.pb-sm-2{padding-bottom:0.5rem !important}.pl-sm-2{padding-left:0.5rem !important}.px-sm-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-sm-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-sm-3{padding:0.75rem !important}.pt-sm-3{padding-top:0.75rem !important}.pr-sm-3{padding-right:0.75rem !important}.pb-sm-3{padding-bottom:0.75rem !important}.pl-sm-3{padding-left:0.75rem !important}.px-sm-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-sm-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-sm-4{padding:1rem !important}.pt-sm-4{padding-top:1rem !important}.pr-sm-4{padding-right:1rem !important}.pb-sm-4{padding-bottom:1rem !important}.pl-sm-4{padding-left:1rem !important}.px-sm-4{padding-right:1rem !important;padding-left:1rem !important}.py-sm-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-sm-5{padding:1.5rem !important}.pt-sm-5{padding-top:1.5rem !important}.pr-sm-5{padding-right:1.5rem !important}.pb-sm-5{padding-bottom:1.5rem !important}.pl-sm-5{padding-left:1.5rem !important}.px-sm-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-sm-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-sm-6{padding:2rem !important}.pt-sm-6{padding-top:2rem !important}.pr-sm-6{padding-right:2rem !important}.pb-sm-6{padding-bottom:2rem !important}.pl-sm-6{padding-left:2rem !important}.px-sm-6{padding-right:2rem !important;padding-left:2rem !important}.py-sm-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-sm-7{padding:2.5rem !important}.pt-sm-7{padding-top:2.5rem !important}.pr-sm-7{padding-right:2.5rem !important}.pb-sm-7{padding-bottom:2.5rem !important}.pl-sm-7{padding-left:2.5rem !important}.px-sm-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-sm-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-sm-8{padding:3rem !important}.pt-sm-8{padding-top:3rem !important}.pr-sm-8{padding-right:3rem !important}.pb-sm-8{padding-bottom:3rem !important}.pl-sm-8{padding-left:3rem !important}.px-sm-8{padding-right:3rem !important;padding-left:3rem !important}.py-sm-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-sm-9{padding:3.5rem !important}.pt-sm-9{padding-top:3.5rem !important}.pr-sm-9{padding-right:3.5rem !important}.pb-sm-9{padding-bottom:3.5rem !important}.pl-sm-9{padding-left:3.5rem !important}.px-sm-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-sm-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-sm-10{padding:4rem !important}.pt-sm-10{padding-top:4rem !important}.pr-sm-10{padding-right:4rem !important}.pb-sm-10{padding-bottom:4rem !important}.pl-sm-10{padding-left:4rem !important}.px-sm-10{padding-right:4rem !important;padding-left:4rem !important}.py-sm-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 50rem){.p-md-0{padding:0 !important}.pt-md-0{padding-top:0 !important}.pr-md-0{padding-right:0 !important}.pb-md-0{padding-bottom:0 !important}.pl-md-0{padding-left:0 !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.p-md-1{padding:0.25rem !important}.pt-md-1{padding-top:0.25rem !important}.pr-md-1{padding-right:0.25rem !important}.pb-md-1{padding-bottom:0.25rem !important}.pl-md-1{padding-left:0.25rem !important}.px-md-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-md-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-md-2{padding:0.5rem !important}.pt-md-2{padding-top:0.5rem !important}.pr-md-2{padding-right:0.5rem !important}.pb-md-2{padding-bottom:0.5rem !important}.pl-md-2{padding-left:0.5rem !important}.px-md-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-md-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-md-3{padding:0.75rem !important}.pt-md-3{padding-top:0.75rem !important}.pr-md-3{padding-right:0.75rem !important}.pb-md-3{padding-bottom:0.75rem !important}.pl-md-3{padding-left:0.75rem !important}.px-md-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-md-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-md-4{padding:1rem !important}.pt-md-4{padding-top:1rem !important}.pr-md-4{padding-right:1rem !important}.pb-md-4{padding-bottom:1rem !important}.pl-md-4{padding-left:1rem !important}.px-md-4{padding-right:1rem !important;padding-left:1rem !important}.py-md-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-md-5{padding:1.5rem !important}.pt-md-5{padding-top:1.5rem !important}.pr-md-5{padding-right:1.5rem !important}.pb-md-5{padding-bottom:1.5rem !important}.pl-md-5{padding-left:1.5rem !important}.px-md-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-md-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-md-6{padding:2rem !important}.pt-md-6{padding-top:2rem !important}.pr-md-6{padding-right:2rem !important}.pb-md-6{padding-bottom:2rem !important}.pl-md-6{padding-left:2rem !important}.px-md-6{padding-right:2rem !important;padding-left:2rem !important}.py-md-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-md-7{padding:2.5rem !important}.pt-md-7{padding-top:2.5rem !important}.pr-md-7{padding-right:2.5rem !important}.pb-md-7{padding-bottom:2.5rem !important}.pl-md-7{padding-left:2.5rem !important}.px-md-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-md-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-md-8{padding:3rem !important}.pt-md-8{padding-top:3rem !important}.pr-md-8{padding-right:3rem !important}.pb-md-8{padding-bottom:3rem !important}.pl-md-8{padding-left:3rem !important}.px-md-8{padding-right:3rem !important;padding-left:3rem !important}.py-md-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-md-9{padding:3.5rem !important}.pt-md-9{padding-top:3.5rem !important}.pr-md-9{padding-right:3.5rem !important}.pb-md-9{padding-bottom:3.5rem !important}.pl-md-9{padding-left:3.5rem !important}.px-md-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-md-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-md-10{padding:4rem !important}.pt-md-10{padding-top:4rem !important}.pr-md-10{padding-right:4rem !important}.pb-md-10{padding-bottom:4rem !important}.pl-md-10{padding-left:4rem !important}.px-md-10{padding-right:4rem !important;padding-left:4rem !important}.py-md-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 66.5rem){.p-lg-0{padding:0 !important}.pt-lg-0{padding-top:0 !important}.pr-lg-0{padding-right:0 !important}.pb-lg-0{padding-bottom:0 !important}.pl-lg-0{padding-left:0 !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.p-lg-1{padding:0.25rem !important}.pt-lg-1{padding-top:0.25rem !important}.pr-lg-1{padding-right:0.25rem !important}.pb-lg-1{padding-bottom:0.25rem !important}.pl-lg-1{padding-left:0.25rem !important}.px-lg-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-lg-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-lg-2{padding:0.5rem !important}.pt-lg-2{padding-top:0.5rem !important}.pr-lg-2{padding-right:0.5rem !important}.pb-lg-2{padding-bottom:0.5rem !important}.pl-lg-2{padding-left:0.5rem !important}.px-lg-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-lg-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-lg-3{padding:0.75rem !important}.pt-lg-3{padding-top:0.75rem !important}.pr-lg-3{padding-right:0.75rem !important}.pb-lg-3{padding-bottom:0.75rem !important}.pl-lg-3{padding-left:0.75rem !important}.px-lg-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-lg-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-lg-4{padding:1rem !important}.pt-lg-4{padding-top:1rem !important}.pr-lg-4{padding-right:1rem !important}.pb-lg-4{padding-bottom:1rem !important}.pl-lg-4{padding-left:1rem !important}.px-lg-4{padding-right:1rem !important;padding-left:1rem !important}.py-lg-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-lg-5{padding:1.5rem !important}.pt-lg-5{padding-top:1.5rem !important}.pr-lg-5{padding-right:1.5rem !important}.pb-lg-5{padding-bottom:1.5rem !important}.pl-lg-5{padding-left:1.5rem !important}.px-lg-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-lg-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-lg-6{padding:2rem !important}.pt-lg-6{padding-top:2rem !important}.pr-lg-6{padding-right:2rem !important}.pb-lg-6{padding-bottom:2rem !important}.pl-lg-6{padding-left:2rem !important}.px-lg-6{padding-right:2rem !important;padding-left:2rem !important}.py-lg-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-lg-7{padding:2.5rem !important}.pt-lg-7{padding-top:2.5rem !important}.pr-lg-7{padding-right:2.5rem !important}.pb-lg-7{padding-bottom:2.5rem !important}.pl-lg-7{padding-left:2.5rem !important}.px-lg-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-lg-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-lg-8{padding:3rem !important}.pt-lg-8{padding-top:3rem !important}.pr-lg-8{padding-right:3rem !important}.pb-lg-8{padding-bottom:3rem !important}.pl-lg-8{padding-left:3rem !important}.px-lg-8{padding-right:3rem !important;padding-left:3rem !important}.py-lg-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-lg-9{padding:3.5rem !important}.pt-lg-9{padding-top:3.5rem !important}.pr-lg-9{padding-right:3.5rem !important}.pb-lg-9{padding-bottom:3.5rem !important}.pl-lg-9{padding-left:3.5rem !important}.px-lg-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-lg-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-lg-10{padding:4rem !important}.pt-lg-10{padding-top:4rem !important}.pr-lg-10{padding-right:4rem !important}.pb-lg-10{padding-bottom:4rem !important}.pl-lg-10{padding-left:4rem !important}.px-lg-10{padding-right:4rem !important;padding-left:4rem !important}.py-lg-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 87.5rem){.p-xl-0{padding:0 !important}.pt-xl-0{padding-top:0 !important}.pr-xl-0{padding-right:0 !important}.pb-xl-0{padding-bottom:0 !important}.pl-xl-0{padding-left:0 !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.p-xl-1{padding:0.25rem !important}.pt-xl-1{padding-top:0.25rem !important}.pr-xl-1{padding-right:0.25rem !important}.pb-xl-1{padding-bottom:0.25rem !important}.pl-xl-1{padding-left:0.25rem !important}.px-xl-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-xl-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-xl-2{padding:0.5rem !important}.pt-xl-2{padding-top:0.5rem !important}.pr-xl-2{padding-right:0.5rem !important}.pb-xl-2{padding-bottom:0.5rem !important}.pl-xl-2{padding-left:0.5rem !important}.px-xl-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-xl-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-xl-3{padding:0.75rem !important}.pt-xl-3{padding-top:0.75rem !important}.pr-xl-3{padding-right:0.75rem !important}.pb-xl-3{padding-bottom:0.75rem !important}.pl-xl-3{padding-left:0.75rem !important}.px-xl-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-xl-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-xl-4{padding:1rem !important}.pt-xl-4{padding-top:1rem !important}.pr-xl-4{padding-right:1rem !important}.pb-xl-4{padding-bottom:1rem !important}.pl-xl-4{padding-left:1rem !important}.px-xl-4{padding-right:1rem !important;padding-left:1rem !important}.py-xl-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-xl-5{padding:1.5rem !important}.pt-xl-5{padding-top:1.5rem !important}.pr-xl-5{padding-right:1.5rem !important}.pb-xl-5{padding-bottom:1.5rem !important}.pl-xl-5{padding-left:1.5rem !important}.px-xl-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-xl-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-xl-6{padding:2rem !important}.pt-xl-6{padding-top:2rem !important}.pr-xl-6{padding-right:2rem !important}.pb-xl-6{padding-bottom:2rem !important}.pl-xl-6{padding-left:2rem !important}.px-xl-6{padding-right:2rem !important;padding-left:2rem !important}.py-xl-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-xl-7{padding:2.5rem !important}.pt-xl-7{padding-top:2.5rem !important}.pr-xl-7{padding-right:2.5rem !important}.pb-xl-7{padding-bottom:2.5rem !important}.pl-xl-7{padding-left:2.5rem !important}.px-xl-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-xl-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-xl-8{padding:3rem !important}.pt-xl-8{padding-top:3rem !important}.pr-xl-8{padding-right:3rem !important}.pb-xl-8{padding-bottom:3rem !important}.pl-xl-8{padding-left:3rem !important}.px-xl-8{padding-right:3rem !important;padding-left:3rem !important}.py-xl-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-xl-9{padding:3.5rem !important}.pt-xl-9{padding-top:3.5rem !important}.pr-xl-9{padding-right:3.5rem !important}.pb-xl-9{padding-bottom:3.5rem !important}.pl-xl-9{padding-left:3.5rem !important}.px-xl-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-xl-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-xl-10{padding:4rem !important}.pt-xl-10{padding-top:4rem !important}.pr-xl-10{padding-right:4rem !important}.pb-xl-10{padding-bottom:4rem !important}.pl-xl-10{padding-left:4rem !important}.px-xl-10{padding-right:4rem !important;padding-left:4rem !important}.py-xl-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media print{.site-footer,.site-button,#edit-this-page,#back-to-top,.site-nav,.main-header{display:none !important}.side-bar{width:100%;height:auto;border-right:0 !important}.site-header{border-bottom:1px solid #eeebee}.site-title{font-size:1rem !important;font-weight:700 !important}.text-small{font-size:8pt !important}pre.highlight{border:1px solid #eeebee}.main{max-width:none;margin-left:0}}a.skip-to-main{left:-999px;position:absolute;top:auto;width:1px;height:1px;overflow:hidden;z-index:-999}a.skip-to-main:focus,a.skip-to-main:active{color:#7253ed;background-color:#fff;left:auto;top:auto;width:30%;height:auto;overflow:auto;margin:10px 35%;padding:5px;border-radius:15px;border:4px solid #5e41d0;text-align:center;font-size:1.2em;z-index:999}div.opaque{background-color:#fff}/*# sourceMappingURL=just-the-docs-light.css.map */ \ No newline at end of file diff --git a/jekyll-backup/_site/assets/css/just-the-docs-light.css.map b/jekyll-backup/_site/assets/css/just-the-docs-light.css.map new file mode 100644 index 00000000..8db1b7d2 --- /dev/null +++ b/jekyll-backup/_site/assets/css/just-the-docs-light.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/vendor/OneLightJekyll/syntax.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/vendor/normalize.scss/normalize.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/base.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/color_schemes/light.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/_variables.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/content.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/navigation.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/labels.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/buttons.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_buttons.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/search.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/tables.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/code.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_colors.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_lists.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_spacing.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/print.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/skiptomain.scss","just-the-docs-light.scss"],"names":[],"mappings":"CAEA,yBAEE,mBACA,cAGF,eACE,mBAGF,gBACE,mBAGF,cACE,cACA,kBAGF,gBACE,WACA,yBAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,kBAGF,eACE,gBAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,gBAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,iCACE,cAGF,8BACE,cC/QF,4EAUA,KACE,iBACA,sBAUF,KACE,SAOF,KACE,cAQF,GACE,cACA,eAWF,GACE,uBACA,SACA,iBAQF,IACE,sBACA,cAUF,EACE,+BAQF,YACE,mBACA,0BACA,iCAOF,SAEE,mBAQF,cAGE,sBACA,cAOF,MACE,cAQF,QAEE,cACA,cACA,kBACA,wBAGF,IACE,eAGF,IACE,WAUF,IACE,kBAWF,sCAKE,oBACA,eACA,iBACA,SAQF,aAGE,iBAQF,cAGE,oBAOF,gDAIE,kBAOF,wHAIE,kBACA,UAOF,4GAIE,8BAOF,SACE,2BAUF,OACE,sBACA,cACA,cACA,eACA,UACA,mBAOF,SACE,wBAOF,SACE,cAQF,6BAEE,sBACA,UAOF,kFAEE,YAQF,cACE,qBACA,oBAOF,yCACE,gBAQF,6BACE,kBACA,aAUF,QACE,cAOF,QACE,kBAUF,SACE,aAOF,SACE,aC1VF,MACE,aCJa,MDOf,EACE,sBAGF,KACE,uBEmBA,KACE,6BClBA,4BHHJ,KEyBI,2BFnBJ,KACE,YIfiB,gHJgBjB,kBACA,YIbiB,IJcjB,MIUY,QJTZ,iBIOM,KJNN,yBAGF,mFAYE,aAGF,4BAOE,aACA,kBACA,gBACA,YI1CyB,KJ2CzB,MIlBY,QJqBd,EACE,eACA,kBAGF,EACE,MItBW,QJuBX,qBAGF,eACE,0BACA,sBI/BY,QJgCZ,0BAEA,qBACE,2CAIJ,KACE,YIvEiB,0CJwEjB,gBACA,YIvEiB,IJ0EnB,WAEE,SAGF,GACE,eAGF,IACE,eACA,YAGF,GACE,WACA,UACA,cACA,iBI/DY,QJgEZ,SAIF,WACE,cAGA,qBACA,sBACA,kBACA,8BK7GF,UACE,UACA,aACA,eACA,iBD6BY,QDrBV,yBEZJ,UAOI,wBACA,eACA,MDwFW,QCvFX,YACA,+BACA,iDAZJ,UAgBI,yCACA,UD+EQ,SDpFR,yBEQF,gBAEI,YD2ES,SDrFX,2BEQF,gBAQI,uDAOF,6BACE,aACA,iBDJQ,QDrBV,yBEuBA,6BAKI,aACA,iBDdA,MCiBF,sCACE,cFjCJ,yBEgCE,sCAII,cAOV,MACE,YF5CE,yBE2CJ,MAII,kBACA,UDyCY,OCrChB,mBACE,YDaK,KCZL,eDYK,KDvDL,cCuDK,KDtDL,aCsDK,KDlEH,yBEoDJ,mBFrCI,cCqDG,KDpDH,aCoDG,MDpEH,yBEoDJ,mBAOI,YDSG,KCRH,eDQG,MCJP,aACE,UACA,gCFlEE,yBEgEJ,aAKI,aACA,8BACA,ODmBY,SCfhB,oCAGE,WF9EE,2BE2EJ,oCAMI,MDGQ,SCCZ,UACE,aAEA,mBACE,cFzFA,yBEqFJ,UAQI,cACA,YDxBG,KCyBH,eD7BG,KC8BH,gBACA,eAIJ,aACE,aACA,WDbc,QCcd,mBFxGE,yBEqGJ,aAMI,ODjBY,QCkBZ,WDlBY,QCmBZ,iCAIJ,YACE,YACA,aACA,YACA,mBACA,YDrDK,OCsDL,eDtDK,OCuDL,MDpGY,QDTZ,cCuDK,KDtDL,aCsDK,KDlEH,yBEiHJ,YFlGI,cCqDG,KDpDH,aCoDG,MF/BL,YACE,8BCtCA,4BEiHJ,YHvEI,4BACA,YEhDuB,MDKvB,yBEiHJ,YAcI,YD/DG,MCgEH,eDhEG,OCqEL,WACE,WACA,YACA,gDACA,4BACA,gCACA,wBAIJ,aACE,aACA,YACA,QDhFK,KCiFL,mBFnJE,yBEuJF,0BACE,cAIJ,kBACE,gJAQF,mBACE,6GASF,KACE,kBACA,eDzGM,KC0GN,kBFlLE,yBE+KJ,KAMI,gBACA,kBAMJ,aACE,kBACA,SACA,OACA,YD9HK,KC+HL,eD/HK,KCgIL,MDlLY,QDLZ,cCuDK,KDtDL,aCsDK,KDlEH,yBE4LJ,aF7KI,cCqDG,KDpDH,aCoDG,MFvEL,aACE,8BCEA,4BE4LJ,aH1LI,6BCFA,yBE4LJ,aAaI,gBACA,kBAIJ,MACE,MD5IK,OC6IL,OD7IK,OC8IL,MDxLW,QElCb,cACE,YFEoB,qJEOlB,gBAGF,gBACE,gBACA,uBAGF,kCAEE,mBAIA,4BACE,WF+CC,OE3CL,iBACE,qBACA,2BAEA,oBACE,kBAEA,4BACE,kBACA,SACA,YACA,MFfM,QEgBN,8BACA,+BJ1BN,4BACE,4BCRA,4BG2BE,4BJfF,8BCZA,4BG2BE,4BAUI,WAIJ,uBACE,0BAGE,kCACE,0CACA,8BAOV,iBACE,gBAGE,4BACE,kBACA,mBACA,MF7CM,QE8CN,YAMJ,sCACE,WAIJ,uCACE,kBACA,mBAKF,mBACE,aAGF,+BACE,gBAGF,iBACE,aACA,4BAGF,kCAEE,eAGF,iBACE,cACA,gBACA,iBAEA,wBACE,YAIJ,iBACE,cACA,gBACA,gBAmBE,wjBACE,aASF,6RAEE,aAKN,8BACE,kBACA,YACA,MFnFG,OEoFH,YACA,cFzFG,OE0FH,aF1FG,OE2FH,iBH1JA,yBGmJF,8BAUI,WACA,cAGF,kCACE,qBACA,WACA,YACA,MF5IO,QE6IP,kBAYF,kVACE,mBAIJ,sBACE,eAGF,8HAOE,kBACA,iBACA,oBAEA,6qCAKE,eAGF,gOACE,aAIJ,kWAWE,WF9JG,MG3EP,UACE,UACA,aACA,gBACA,gBAEA,yBACE,kBACA,SLoBF,yBACE,6BClBA,4BILF,yBL2BE,2BCtBA,yBDOF,yBACE,6BCRA,kDILF,yBLiBE,8BKPA,wCACE,cACA,WH+DC,KG9DD,YHuDC,OGtDD,eHsDC,OGrDD,mBAEE,cH0DD,KGzDC,aHqDD,KDlEH,yBIKA,wCAeI,WHgDD,KG/CC,mBAEE,cH6CH,KG5CG,aH4CH,MGrCD,qDACE,MHkCD,KGjCC,OHiCD,KGhCC,2BAGF,+CACE,gBACA,qBAGF,6FAEE,gJASJ,4CACE,kBAEE,QAGF,MHWC,KGVD,OHUC,KGTD,gBACA,MHrCO,QDzBT,yBIqDA,4CAYI,MHGD,KGFC,OHED,KGDC,gBAGF,kDACE,6GAQA,gDACE,wBAKN,mCACE,aACA,aHtBC,OGuBD,gBAEA,kDACE,kBAEA,iEACE,MH7EI,QGgFN,qEACE,MHjFI,QGuFR,uDAEI,yBAMJ,0CACE,cAMR,cACE,mBACA,gBACA,iBACA,yBACA,gCL/HA,cACE,8BCEA,4BIuHJ,cLrHI,6BCFA,yBIuHJ,cASI,mBACA,WH/DG,KGgEH,iBAEA,0BACE,cAMJ,2CACE,SAEA,qDACE,UAGE,mFACE,MH1HG,QG6HL,uFACE,MH9HG,QGuIb,SACE,YACA,gBLrKA,SACE,8BCEA,4BIgKJ,SL9JI,6BKmKF,uBACE,aACA,YACA,UACA,SACA,gBAGF,4BACE,qBACA,YACA,UACA,SJjLA,yBIgKJ,SAqBI,cHnHG,MDlEH,yBI2LJ,gBAEI,kBAIJ,qBACE,eACA,cHlIK,OGmIL,gBAGF,0BACE,mBL3MA,0BACE,8BCEA,4BIuMJ,0BLrMI,6BKyMF,kCACE,aAGF,iCACE,qBACA,aHjJG,MGkJH,YHlJG,MGmJH,MHnMU,QGoMV,YAIA,4CACE,WCpON,eAEE,gBNoEA,eACE,0BACA,YElEuB,KDKvB,4BKXJ,eN4EI,8BA5BF,wBACE,8BCtCA,4BKJJ,wBN8CI,4BACA,YEhDuB,MFgCzB,eACE,0BC5BA,4BKEJ,eN8BI,+BMzBJ,eAEE,gBACA,yBACA,oBNdA,eACE,8BCEA,4BKOJ,eNLI,6BMcJ,QACE,oBNVA,iBACE,4BCRA,4BKoBJ,iBNRI,8BAfF,cACE,8BCEA,4BKyBJ,cNvBI,6BALF,YACE,8BCEA,4BK8BJ,YN5BI,6BMgCJ,WACE,iEAGF,WACE,2BAGF,aACE,6BAGF,YACE,4BCvDF,iCAEE,qBACA,oBACA,aLoEK,MKnEL,YLmEK,MKlEL,MLiBM,KKhBN,yBACA,sBACA,iBL6BS,QK5BT,mBPLA,iCACE,8BCEA,4BMRJ,iCPUI,6BOKJ,oBACE,iBL2BU,QKxBZ,qBACE,iBLcW,QKXb,kBACE,iBL2BQ,QKxBV,qBACE,MLFY,QKGZ,iBLkBW,QMlDb,KACE,qBACA,sBACA,iBACA,SACA,oBACA,kBACA,gBACA,gBACA,MN2BW,QM1BX,qBACA,wBACA,eACA,iBTTkB,QSUlB,eACA,cNyEc,IMxEd,WACE,qDAEF,gBAEA,WACE,qBACA,aACA,uCAGF,qCAEE,uCAGF,uCAEE,uDAGF,gFAIE,qBACA,yCAGF,uDAGE,yCACA,sBACA,2CAGF,oBACE,0CAKA,oEAEE,wBACA,eACA,sCACA,sBACA,gBAKN,aACE,MNnCW,QMoCX,yBACA,mCAEA,gHAIE,sDACA,qBACA,+BACA,mCAGF,mBACE,qBACA,aACA,WACE,oDAIJ,qDAEE,mCAIJ,aCnGE,MP0BM,KOzBN,iEACA,wIACA,WACE,qDAGF,uDAEE,MPiBI,KOhBJ,iEACA,wIAGF,+EAGE,+DACA,sBACA,2CAGF,4BACE,iEDgFJ,YCvGE,MP0BM,KOzBN,iEACA,wIACA,WACE,qDAGF,qDAEE,MPiBI,KOhBJ,iEACA,wIAGF,4EAGE,+DACA,sBACA,2CAGF,2BACE,iEDoFJ,UC3GE,MP0BM,KOzBN,kEACA,yIACA,WACE,qDAGF,iDAEE,MPiBI,KOhBJ,kEACA,yIAGF,sEAGE,kEACA,sBACA,2CAGF,yBACE,4CDwFJ,WC/GE,MP0BM,KOzBN,yDACA,qHACA,WACE,qDAGF,mDAEE,MPiBI,KOhBJ,yDACA,uHAGF,yEAGE,uDACA,sBACA,2CAGF,0BACE,sDD4FJ,WACE,gBACA,YACA,SACA,mBACA,aACA,gBACA,gBE3HF,QACE,kBACA,UACA,YACA,ORgFM,KQ/EN,QRuEK,MQtEL,gCTME,yBSZJ,QASI,6BACA,sBACA,uBACA,UACA,iBAIJ,mBACE,kBACA,UACA,OR8DK,KQ7DL,gBACA,cRmEc,IQlEd,WACE,qDAEF,+BTdE,yBSKJ,mBAYI,kBACA,WACA,URwEmB,QQvEnB,uBACA,gBACA,gBACA,6BAIJ,cACE,kBACA,WACA,YACA,gCACA,eACA,MRhBY,QQiBZ,iBRnBM,KQoBN,aACA,eACA,gBACA,cACA,gBTvCE,yBS2BJ,cAeI,gCACA,kBACA,iBR7BI,KQ8BJ,sCAGF,oBACE,UAEA,+CACE,MR3BO,QQgCb,cACE,kBACA,aACA,YACA,aRKK,KDlEH,yBSyDJ,cAOI,aRIG,KQHH,sCAGF,2BACE,aACA,cACA,kBACA,MRxDU,QQ4Dd,gBACE,kBACA,OACA,aACA,WACA,6BACA,gBACA,iBRpEM,KQqEN,2BRPc,IQQd,0BRRc,IQSd,WACE,qDTvFA,yBS4EJ,gBAeI,SACA,MRDmB,QQEnB,0CAIJ,qBACE,eACA,cRpCK,OQqCL,gBVnFA,qBACE,6BClBA,4BSiGJ,qBV3EI,2BCtBA,yBDOF,qBACE,6BCRA,kDSiGJ,qBVrFI,8BUgGJ,0BACE,UACA,SAGF,eACE,cACA,sBAEA,2CAEE,iBX3Ha,wBW+HjB,qBACE,cACA,YR7DK,MQ8DL,eR9DK,MDhEH,4BS2HJ,qBAMI,qBACA,UACA,cRnEG,MQoEH,oBAIJ,mBACE,aACA,mBACA,qBAEA,4CACE,WVvIF,4CACE,4BCRA,4BS6IF,4CVjIE,8BCZA,yBDHF,4CACE,+BCEA,kDS6IF,4CV3IE,6BUoJF,uCACE,MRrFG,KQsFH,ORtFG,KQuFH,aRzFG,MQ0FH,MRjIS,QQkIT,cAGF,4CACE,cAIJ,uBACE,mBACA,qBAGF,uBACE,cACA,mBACA,gBACA,MR5JY,QQ6JZ,uBACA,mBV3LA,uBACE,8BCYA,4BSwKJ,uBVhLI,8BU0LJ,wBACE,cACA,YRpHK,MQqHL,eRrHK,MQsHL,aRpHK,KQqHL,YRvHK,MQwHL,MRxKY,QQyKZ,qBACA,YR9GO,UQ+GP,kBRrKY,QFzBZ,wBACE,8BCEA,4BSkLJ,wBVhLI,6BCFA,4BSkLJ,wBAaI,qBACA,UACA,aRjIG,MQkIH,cACA,oBAIJ,8CACE,WRzIK,OQ4IP,yBACE,iBAGF,kBACE,qBVzMA,kBACE,4BCRA,4BS+MJ,kBVnMI,8BUwMJ,eACE,eACA,MRpJK,KQqJL,ORrJK,KQsJL,aACA,MRlJK,OQmJL,ORnJK,OQoJL,iBR5MM,KQ6MN,qCACA,sBACA,WACE,qDAEF,mBACA,uBAGF,gBACE,eACA,MACA,OACA,UACA,QACA,SACA,gCACA,UACA,WACE,kDAMF,uBACE,eACA,MACA,OACA,WACA,YACA,UAGF,kCACE,ORvLI,KQwLJ,gBThQA,yBS8PF,kCAKI,MRxKiB,QQyKjB,WACE,sDAKN,6BACE,iBR5PI,KDfJ,yBS0QF,6BAII,qBT9QF,yBSkRF,6BAEI,oBAIJ,+BACE,cAGF,+BACE,WACA,YACA,UACA,WACE,sCTjSF,yBSuSA,qBACE,eACA,QACA,QAIJ,4BACE,YRvOI,KDxEJ,yBS8SF,4BAII,eC7TN,eACE,cACA,WACA,eACA,cT0EK,OSzEL,gBACA,cTkFc,ISjFd,WACE,qDAIJ,MACE,cACA,eACA,yBAGF,MAEE,iBACA,qBACA,iBTIM,KSHN,6CACA,8BXNA,MACE,4BCRA,4BUOJ,MXKI,8BWKF,kCACE,cAOE,kDAEE,gBAGF,yBACE,eTkCD,OS3BL,SACE,gCC9CF,sBACE,mBACA,gBACA,iBVyBU,QUxBV,yBACA,cV+EY,IU1EhB,eACE,aVkBY,QUiCd,oEAGE,aACA,cVMK,OULL,iBVvCY,QUwCZ,cVgBc,IUfd,gBACA,iCACA,kBACA,UAIA,yFACE,MVLG,OUMH,UACA,kBACA,MACA,QACA,4BACA,iBVvDU,QUwDV,MV5DU,QU6DV,uBAEA,qGACE,KVhEQ,QUmEV,8GACE,qBACA,aACA,UAGF,2GACE,UAMF,2GACE,YACA,UASJ,oCACE,gBACA,QV7CG,OU8CH,SACA,SAGF,+DAEE,UACA,SACA,SAUJ,iBACE,aACA,cVlEK,OU2CL,6BACE,gBACA,QV7CG,OU8CH,SACA,SAGF,uDAEE,UACA,SACA,SAwBF,qDAEE,gBACA,QVjFG,OUkFH,SACA,SAQJ,0BACE,iBACA,SACA,SACA,gBAEA,2DAEE,YACA,UACA,iBVjJU,QUkJV,SZ1KF,2DACE,8BCEA,4BWkKF,2DZhKE,6BY0KF,gCACE,UACA,cV7GG,OU8GH,aV9GG,OUiHL,8BACE,SACA,cAKJ,mCAEE,QV1HK,OU2HL,cV3HK,OU4HL,cACA,yBACA,cVlHc,IUoHd,4RAIE,kBACA,iBACA,+BACA,gCACA,8BACA,yBACA,0BAKJ,sBACE,UACA,yBACA,SAIF,yBAEE,WVpMY,QUyMV,MV7MU,QUkNd,eACE,WV/MY,QW/Bd,kBACE,yBAGF,kBACE,yBAGF,kBACE,yBAGF,kBACE,yBAGF,kBACE,yBAGF,kBACE,yBAGF,kBACE,yBAGF,kBACE,yBAGF,kBACE,yBAGF,eACE,yBAGF,eACE,yBAGF,eACE,yBAGF,eACE,yBAGF,gBACE,yBAGF,gBACE,yBAGF,gBACE,yBAGF,gBACE,yBAGF,iBACE,yBAGF,iBACE,yBAGF,iBACE,yBAGF,iBACE,yBAGF,iBACE,yBAGF,iBACE,yBAGF,iBACE,yBAGF,iBACE,yBAGF,cACE,yBAGF,cACE,yBAGF,cACE,yBAGF,cACE,yBAKF,gBACE,oCAGF,gBACE,oCAGF,gBACE,oCAGF,gBACE,oCAGF,gBACE,oCAGF,gBACE,oCAGF,gBACE,oCAGF,gBACE,oCAGF,gBACE,oCAGF,aACE,oCAGF,aACE,oCAGF,aACE,oCAGF,aACE,oCAGF,cACE,oCAGF,cACE,oCAGF,cACE,oCAGF,cACE,oCAGF,eACE,oCAGF,eACE,oCAGF,eACE,oCAGF,eACE,oCAGF,eACE,oCAGF,eACE,oCAGF,eACE,oCAGF,eACE,oCAGF,YACE,oCAGF,YACE,oCAGF,YACE,oCAGF,YACE,oCCvOF,SACE,yBAGF,QACE,wBAGF,UACE,0BAGF,gBACE,gCAGF,QACE,wBbPE,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBAQR,YACE,sBAGF,aACE,uBAGF,oBACE,sCAGF,kBACE,oCAGF,sBACE,yCAGF,qBACE,wCAKF,kBACE,mCAGF,gBACE,iCAGF,gBACE,iCAGF,qBACE,sCAGF,kBACE,mCAGF,aACE,8BdlGA,MACE,8BCYA,4BcZJ,MfII,8BAKF,MACE,8BCEA,4BcRJ,MfUI,6BAKF,MACE,4BCRA,4BcJJ,MfgBI,8BAKF,MACE,6BClBA,kCDsBA,2BAKF,MACE,0BC5BA,4BcIJ,Mf4BI,+BAKF,MACE,8BCtCA,4BcQJ,MfkCI,4BACA,YEhDuB,MFqDzB,MACE,4BACA,YEvDuB,KDKvB,4BcYJ,Mf0CI,2BAKF,MACE,0BACA,YElEuB,KDKvB,4BcgBJ,MfiDI,8BAKF,MACE,6BACA,YE7EuB,KDKvB,4BcoBJ,MfwDI,+BAKF,OACE,8BACA,YExFuB,KDKvB,4BcwBJ,Of+DI,2Be3DJ,QACE,2BAGF,QACE,2BAGF,QACE,2BAGF,QACE,2BAGF,MACE,yBAGF,YACE,YbxDiB,Ia2DnB,UACE,Yb1DyB,Ka6D3B,MACE,gCAGF,OACE,+BAGF,MACE,4BAGF,gBACE,oCC/EF,iBACE,qBACA,oBACA,2BAGE,4BACE,wBCLN,SACE,6BACA,4BAQA,KACE,oBAEF,MACE,wBAEF,MACE,0BAEF,MACE,2BAEF,MACE,yBAGF,MACE,0BACA,yBAGF,MACE,wBACA,2BAGF,OACE,2BACA,0BAEF,WACE,6BACA,4BAhCF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAGF,OACE,iCACA,gCAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAGF,OACE,iCACA,gCAEF,WACE,6BACA,4BAhCF,KACE,uBAEF,MACE,2BAEF,MACE,6BAEF,MACE,8BAEF,MACE,4BAGF,MACE,6BACA,4BAGF,MACE,2BACA,8BAGF,OACE,8BACA,6BAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,KACE,uBAEF,MACE,2BAEF,MACE,6BAEF,MACE,8BAEF,MACE,4BAGF,MACE,6BACA,4BAGF,MACE,2BACA,8BAGF,OACE,8BACA,6BAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,KACE,uBAEF,MACE,2BAEF,MACE,6BAEF,MACE,8BAEF,MACE,4BAGF,MACE,6BACA,4BAGF,MACE,2BACA,8BAGF,OACE,8BACA,6BAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,MACE,uBAEF,OACE,2BAEF,OACE,6BAEF,OACE,8BAEF,OACE,4BAGF,OACE,6BACA,4BAGF,OACE,2BACA,8BAGF,QACE,8BACA,6BAEF,YACE,6BACA,4BhBlCA,yBgB6CE,QACE,oBAEF,SACE,wBAEF,SACE,0BAEF,SACE,2BAEF,SACE,yBAGF,SACE,0BACA,yBAGF,SACE,wBACA,2BAGF,UACE,2BACA,2BhBzEJ,yBgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,SACE,uBAEF,UACE,2BAEF,UACE,6BAEF,UACE,8BAEF,UACE,4BAGF,UACE,6BACA,4BAGF,UACE,2BACA,8BAGF,WACE,8BACA,8BhBzEJ,4BgB6CE,QACE,oBAEF,SACE,wBAEF,SACE,0BAEF,SACE,2BAEF,SACE,yBAGF,SACE,0BACA,yBAGF,SACE,wBACA,2BAGF,UACE,2BACA,2BhBzEJ,4BgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,4BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,4BgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,4BgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,4BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,4BgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,4BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,4BgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,4BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,4BgB6CE,SACE,uBAEF,UACE,2BAEF,UACE,6BAEF,UACE,8BAEF,UACE,4BAGF,UACE,6BACA,4BAGF,UACE,2BACA,8BAGF,WACE,8BACA,8BhBzEJ,yBgB6CE,QACE,oBAEF,SACE,wBAEF,SACE,0BAEF,SACE,2BAEF,SACE,yBAGF,SACE,0BACA,yBAGF,SACE,wBACA,2BAGF,UACE,2BACA,2BhBzEJ,yBgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4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E,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,2BgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,2BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,2BgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,2BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,2BgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,2BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,2BgB6CE,SACE,uBAEF,UACE,2BAEF,UACE,6BAEF,UACE,8BAEF,UACE,4BAGF,UACE,6BACA,4BAGF,UACE,2BACA,8BAGF,WACE,8BACA,8BAaN,KACE,qBAEF,MACE,yBAEF,MACE,2BAEF,MACE,4BAEF,MACE,0BAGF,MACE,2BACA,0BAGF,MACE,yBACA,4BAvBF,KACE,2BAEF,MACE,+BAEF,MACE,iCAEF,MACE,kCAEF,MACE,gCAGF,MACE,iCACA,gCAGF,MACE,+BACA,kCAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,2BAEF,MACE,+BAEF,MACE,iCAEF,MACE,kCAEF,MACE,gCAGF,MACE,iCACA,gCAGF,MACE,+BACA,kCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,MACE,wBAEF,OACE,4BAEF,OACE,8BAEF,OACE,+BAEF,OACE,6BAGF,OACE,8BACA,6BAGF,OACE,4BACA,+BhB7GA,yBgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,4BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,yBgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,2BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,2BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gCC3JR,aACE,8EAME,wBAGF,UACE,WACA,YACA,0BAGF,aACE,gCAGF,YACE,0BACA,2BAGF,YACE,yBAGF,cACE,yBAGF,MACE,eACA,eClCJ,eACE,YACA,kBACA,SACA,UACA,WACA,gBACA,aAGF,2CAEE,MjBwBW,QiBvBX,iBjBaM,KiBZN,UACA,SACA,UACA,YACA,cACA,gBACA,YACA,mBACA,yBACA,kBACA,gBACA,YCpBF,WACE,iBlBoBM","sourcesContent":["// Generated with OneLightJekyll applied to Atom's One Light theme\n\n.highlight,\npre.highlight {\n background: #f9f9f9;\n color: #383942;\n}\n\n.highlight pre {\n background: #f9f9f9;\n}\n\n.highlight .hll {\n background: #f9f9f9;\n}\n\n.highlight .c {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .err {\n color: #fff;\n background-color: #e05151;\n}\n\n.highlight .k {\n color: #a625a4;\n}\n\n.highlight .l {\n color: #50a04f;\n}\n\n.highlight .n {\n color: #383942;\n}\n\n.highlight .o {\n color: #383942;\n}\n\n.highlight .p {\n color: #383942;\n}\n\n.highlight .cm {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .cp {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .c1 {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .cs {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .ge {\n font-style: italic;\n}\n\n.highlight .gs {\n font-weight: 700;\n}\n\n.highlight .kc {\n color: #a625a4;\n}\n\n.highlight .kd {\n color: #a625a4;\n}\n\n.highlight .kn {\n color: #a625a4;\n}\n\n.highlight .kp {\n color: #a625a4;\n}\n\n.highlight .kr {\n color: #a625a4;\n}\n\n.highlight .kt {\n color: #a625a4;\n}\n\n.highlight .ld {\n color: #50a04f;\n}\n\n.highlight .m {\n color: #b66a00;\n}\n\n.highlight .s {\n color: #50a04f;\n}\n\n.highlight .na {\n color: #b66a00;\n}\n\n.highlight .nb {\n color: #ca7601;\n}\n\n.highlight .nc {\n color: #ca7601;\n}\n\n.highlight .no {\n color: #ca7601;\n}\n\n.highlight .nd {\n color: #ca7601;\n}\n\n.highlight .ni {\n color: #ca7601;\n}\n\n.highlight .ne {\n color: #ca7601;\n}\n\n.highlight .nf {\n color: #383942;\n}\n\n.highlight .nl {\n color: #ca7601;\n}\n\n.highlight .nn {\n color: #383942;\n}\n\n.highlight .nx {\n color: #383942;\n}\n\n.highlight .py {\n color: #ca7601;\n}\n\n.highlight .nt {\n color: #e35549;\n}\n\n.highlight .nv {\n color: #ca7601;\n}\n\n.highlight .ow {\n font-weight: 700;\n}\n\n.highlight .w {\n color: #f8f8f2;\n}\n\n.highlight .mf {\n color: #b66a00;\n}\n\n.highlight .mh {\n color: #b66a00;\n}\n\n.highlight .mi {\n color: #b66a00;\n}\n\n.highlight .mo {\n color: #b66a00;\n}\n\n.highlight .sb {\n color: #50a04f;\n}\n\n.highlight .sc {\n color: #50a04f;\n}\n\n.highlight .sd {\n color: #50a04f;\n}\n\n.highlight .s2 {\n color: #50a04f;\n}\n\n.highlight .se {\n color: #50a04f;\n}\n\n.highlight .sh {\n color: #50a04f;\n}\n\n.highlight .si {\n color: #50a04f;\n}\n\n.highlight .sx {\n color: #50a04f;\n}\n\n.highlight .sr {\n color: #0083bb;\n}\n\n.highlight .s1 {\n color: #50a04f;\n}\n\n.highlight .ss {\n color: #0083bb;\n}\n\n.highlight .bp {\n color: #ca7601;\n}\n\n.highlight .vc {\n color: #ca7601;\n}\n\n.highlight .vg {\n color: #ca7601;\n}\n\n.highlight .vi {\n color: #e35549;\n}\n\n.highlight .il {\n color: #b66a00;\n}\n\n.highlight .gu {\n color: #75715e;\n}\n\n.highlight .gd {\n color: #e05151;\n}\n\n.highlight .gi {\n color: #43d089;\n}\n\n.highlight .language-json .w + .s2 {\n color: #e35549;\n}\n\n.highlight .language-json .kc {\n color: #0083bb;\n}\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// Base element style overrides\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\n:root {\n color-scheme: $color-scheme;\n}\n\n* {\n box-sizing: border-box;\n}\n\nhtml {\n scroll-behavior: smooth;\n\n @include fs-4;\n}\n\nbody {\n font-family: $body-font-family;\n font-size: inherit;\n line-height: $body-line-height;\n color: $body-text-color;\n background-color: $body-background-color;\n overflow-wrap: break-word;\n}\n\nol,\nul,\ndl,\npre,\naddress,\nblockquote,\ntable,\ndiv,\nhr,\nform,\nfieldset,\nnoscript .table-wrapper {\n margin-top: 0;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n#toctitle {\n margin-top: 0;\n margin-bottom: 1em;\n font-weight: 500;\n line-height: $body-heading-line-height;\n color: $body-heading-color;\n}\n\np {\n margin-top: 1em;\n margin-bottom: 1em;\n}\n\na {\n color: $link-color;\n text-decoration: none;\n}\n\na:not([class]) {\n text-decoration: underline;\n text-decoration-color: $border-color;\n text-underline-offset: 2px;\n\n &:hover {\n text-decoration-color: rgba($link-color, 0.45);\n }\n}\n\ncode {\n font-family: $mono-font-family;\n font-size: 0.75em;\n line-height: $body-line-height;\n}\n\nfigure,\npre {\n margin: 0;\n}\n\nli {\n margin: 0.25em 0;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\nhr {\n height: 1px;\n padding: 0;\n margin: $sp-6 0;\n background-color: $border-color;\n border: 0;\n}\n\n// adds a GitHub-style sidebar to blockquotes\nblockquote {\n margin: 10px 0;\n\n // resets user-agent stylesheets for blockquotes\n margin-block-start: 0;\n margin-inline-start: 0;\n padding-left: 1rem;\n border-left: 3px solid $border-color;\n}\n","$color-scheme: light !default;\n$body-background-color: $white !default;\n$body-heading-color: $grey-dk-300 !default;\n$body-text-color: $grey-dk-100 !default;\n$link-color: $purple-000 !default;\n$nav-child-link-color: $grey-dk-100 !default;\n$sidebar-color: $grey-lt-000 !default;\n$base-button-color: #f7f7f7 !default;\n$btn-primary-color: $purple-100 !default;\n$code-background-color: $grey-lt-000 !default;\n$feedback-color: darken($sidebar-color, 3%) !default;\n$table-background-color: $white !default;\n$search-background-color: $white !default;\n$search-result-preview-color: $grey-dk-000 !default;\n\n@import \"./vendor/OneLightJekyll/syntax\";\n","@mixin fs-1 {\n & {\n font-size: $font-size-1 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-1-sm !important;\n }\n}\n\n@mixin fs-2 {\n & {\n font-size: $font-size-2 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-3 !important;\n }\n}\n\n@mixin fs-3 {\n & {\n font-size: $font-size-3 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-4 !important;\n }\n}\n\n@mixin fs-4 {\n & {\n font-size: $font-size-4 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-5 !important;\n }\n}\n\n@mixin fs-5 {\n & {\n font-size: $font-size-5 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-6 !important;\n }\n}\n\n@mixin fs-6 {\n & {\n font-size: $font-size-6 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n}\n\n@mixin fs-7 {\n & {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-8 !important;\n }\n}\n\n@mixin fs-8 {\n & {\n font-size: $font-size-8 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-9 !important;\n }\n}\n\n@mixin fs-9 {\n & {\n font-size: $font-size-9 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10 !important;\n }\n}\n\n@mixin fs-10 {\n & {\n font-size: $font-size-10 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10-sm !important;\n }\n}\n","// Media query\n\n// Media query mixin\n// Usage:\n// @include mq(md) {\n// ..medium and up styles\n// }\n@mixin mq($name) {\n // Retrieves the value from the key\n $value: map-get($media-queries, $name);\n\n // If the key exists in the map\n @if $value {\n // Prints a media query based on the value\n @media (min-width: $value) {\n @content;\n }\n } @else {\n @warn \"No value could be retrieved from `#{$media-query}`. Please make sure it is defined in `$media-queries` map.\";\n }\n}\n\n// Responsive container\n\n@mixin container {\n padding-right: $gutter-spacing-sm;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-right: $gutter-spacing;\n padding-left: $gutter-spacing;\n }\n}\n","// Typography\n\n// prettier-ignore\n$body-font-family: system-ui, -apple-system, blinkmacsystemfont, \"Segoe UI\",\n roboto, \"Helvetica Neue\", arial, sans-serif, \"Segoe UI Emoji\" !default;\n$mono-font-family: \"SFMono-Regular\", menlo, consolas, monospace !default;\n$root-font-size: 16px !default; // DEPRECATED: previously base font-size for rems\n$body-line-height: 1.4 !default;\n$content-line-height: 1.6 !default;\n$body-heading-line-height: 1.25 !default;\n\n// Font size\n// `-sm` suffix is the size at the small (and above) media query\n\n$font-size-1: 0.5625rem !default;\n$font-size-1-sm: 0.625rem !default;\n$font-size-2: 0.6875rem !default; // h4 - uppercased!, h6 not uppercased, text-small\n$font-size-3: 0.75rem !default; // h5\n$font-size-4: 0.875rem !default;\n$font-size-5: 1rem !default; // h3\n$font-size-6: 1.125rem !default; // h2\n$font-size-7: 1.5rem !default;\n$font-size-8: 2rem !default; // h1\n$font-size-9: 2.25rem !default;\n$font-size-10: 2.625rem !default;\n$font-size-10-sm: 3rem !default;\n\n// Colors\n\n$white: #fff !default;\n$grey-dk-000: #959396 !default;\n$grey-dk-100: #5c5962 !default;\n$grey-dk-200: #44434d !default;\n$grey-dk-250: #302d36 !default;\n$grey-dk-300: #27262b !default;\n$grey-lt-000: #f5f6fa !default;\n$grey-lt-100: #eeebee !default;\n$grey-lt-200: #ecebed !default;\n$grey-lt-300: #e6e1e8 !default;\n$purple-000: #7253ed !default;\n$purple-100: #5e41d0 !default;\n$purple-200: #4e26af !default;\n$purple-300: #381885 !default;\n$blue-000: #2c84fa !default;\n$blue-100: #2869e6 !default;\n$blue-200: #264caf !default;\n$blue-300: #183385 !default;\n$green-000: #41d693 !default;\n$green-100: #11b584 !default;\n$green-200: #009c7b !default;\n$green-300: #026e57 !default;\n$yellow-000: #ffeb82 !default;\n$yellow-100: #fadf50 !default;\n$yellow-200: #f7d12e !default;\n$yellow-300: #e7af06 !default;\n$red-000: #f77e7e !default;\n$red-100: #f96e65 !default;\n$red-200: #e94c4c !default;\n$red-300: #dd2e2e !default;\n\n// Spacing\n\n$spacing-unit: 1rem; // 1rem == 16px\n\n$spacers: (\n sp-0: 0,\n sp-1: $spacing-unit * 0.25,\n sp-2: $spacing-unit * 0.5,\n sp-3: $spacing-unit * 0.75,\n sp-4: $spacing-unit,\n sp-5: $spacing-unit * 1.5,\n sp-6: $spacing-unit * 2,\n sp-7: $spacing-unit * 2.5,\n sp-8: $spacing-unit * 3,\n sp-9: $spacing-unit * 3.5,\n sp-10: $spacing-unit * 4,\n) !default;\n$sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px\n$sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px\n$sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px\n$sp-4: map-get($spacers, sp-4) !default; // 1 rem == 16px\n$sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px\n$sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px\n$sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px\n$sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px\n$sp-9: map-get($spacers, sp-9) !default; // 3.5 rem == 56px\n$sp-10: map-get($spacers, sp-10) !default; // 4 rem == 64px\n\n// Borders\n\n$border: 1px solid !default;\n$border-radius: 4px !default;\n$border-color: $grey-lt-100 !default;\n\n// Grid system\n\n$gutter-spacing: $sp-6 !default;\n$gutter-spacing-sm: $sp-4 !default;\n$nav-width: 16.5rem !default;\n$nav-width-md: 15.5rem !default;\n$nav-list-item-height: $sp-6 !default;\n$nav-list-item-height-sm: $sp-8 !default;\n$nav-list-expander-right: true;\n$content-width: 50rem !default;\n$header-height: 3.75rem !default;\n$search-results-width: $content-width - $nav-width !default;\n$transition-duration: 400ms;\n\n// Media queries in pixels\n\n$media-queries: (\n xs: 20rem,\n sm: 31.25rem,\n md: $content-width,\n lg: $content-width + $nav-width,\n xl: 87.5rem,\n) !default;\n","// The basic two column layout\n\n.side-bar {\n z-index: 0;\n display: flex;\n flex-wrap: wrap;\n background-color: $sidebar-color;\n\n @include mq(md) {\n flex-flow: column nowrap;\n position: fixed;\n width: $nav-width-md;\n height: 100%;\n border-right: $border $border-color;\n align-items: flex-end;\n }\n\n @include mq(lg) {\n width: calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width});\n min-width: $nav-width;\n }\n\n & + .main {\n @include mq(md) {\n margin-left: $nav-width-md;\n }\n\n @include mq(lg) {\n // stylelint-disable function-name-case\n // disable for Max(), we want to use the CSS max() function\n margin-left: Max(\n #{$nav-width},\n calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width})\n );\n // stylelint-enable function-name-case\n }\n\n .main-header {\n display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n background-color: $body-background-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\n }\n }\n }\n}\n\n.main {\n margin: auto;\n\n @include mq(md) {\n position: relative;\n max-width: $content-width;\n }\n}\n\n.main-content-wrap {\n padding-top: $gutter-spacing-sm;\n padding-bottom: $gutter-spacing-sm;\n\n @include container;\n\n @include mq(md) {\n padding-top: $gutter-spacing;\n padding-bottom: $gutter-spacing;\n }\n}\n\n.main-header {\n z-index: 0;\n border-bottom: $border $border-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n }\n}\n\n.site-nav,\n.site-header,\n.site-footer {\n width: 100%;\n\n @include mq(lg) {\n width: $nav-width;\n }\n}\n\n.site-nav {\n display: none;\n\n &.nav-open {\n display: block;\n }\n\n @include mq(md) {\n display: block;\n padding-top: $sp-8;\n padding-bottom: $gutter-spacing-sm;\n overflow-y: auto;\n flex: 1 1 auto;\n }\n}\n\n.site-header {\n display: flex;\n min-height: $header-height;\n align-items: center;\n\n @include mq(md) {\n height: $header-height;\n max-height: $header-height;\n border-bottom: $border $border-color;\n }\n}\n\n.site-title {\n flex-grow: 1;\n display: flex;\n height: 100%;\n align-items: center;\n padding-top: $sp-3;\n padding-bottom: $sp-3;\n color: $body-heading-color;\n\n @include container;\n\n @include fs-6;\n\n @include mq(md) {\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n }\n}\n\n@if variable-exists(logo) {\n .site-logo {\n width: 100%;\n height: 100%;\n background-image: url($logo);\n background-repeat: no-repeat;\n background-position: left center;\n background-size: contain;\n }\n}\n\n.site-button {\n display: flex;\n height: 100%;\n padding: $gutter-spacing-sm;\n align-items: center;\n}\n\n@include mq(md) {\n .site-header .site-button {\n display: none;\n }\n}\n\n.site-title:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n}\n\n.site-button:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n}\n\n// stylelint-disable selector-max-type\n\nbody {\n position: relative;\n padding-bottom: $sp-10;\n overflow-y: scroll;\n\n @include mq(md) {\n position: static;\n padding-bottom: 0;\n }\n}\n\n// stylelint-enable selector-max-type\n\n.site-footer {\n position: absolute;\n bottom: 0;\n left: 0;\n padding-top: $sp-4;\n padding-bottom: $sp-4;\n color: $grey-dk-000;\n\n @include container;\n\n @include fs-2;\n\n @include mq(md) {\n position: static;\n justify-self: end;\n }\n}\n\n.icon {\n width: $sp-5;\n height: $sp-5;\n color: $link-color;\n}\n","@charset \"UTF-8\";\n\n// Styles for rendered markdown in the .main-content container\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity, selector-max-id\n\n.main-content {\n line-height: $content-line-height;\n\n ol,\n ul,\n dl,\n pre,\n address,\n blockquote,\n .table-wrapper {\n margin-top: 0.5em;\n }\n\n a {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n ul,\n ol {\n padding-left: 1.5em;\n }\n\n li {\n .highlight {\n margin-top: $sp-1;\n }\n }\n\n ol {\n list-style-type: none;\n counter-reset: step-counter;\n\n > li {\n position: relative;\n\n &::before {\n position: absolute;\n top: 0.2em;\n left: -1.6em;\n color: $grey-dk-000;\n content: counter(step-counter);\n counter-increment: step-counter;\n @include fs-3;\n\n @include mq(sm) {\n top: 0.11em;\n }\n }\n\n ol {\n counter-reset: sub-counter;\n\n > li {\n &::before {\n content: counter(sub-counter, lower-alpha);\n counter-increment: sub-counter;\n }\n }\n }\n }\n }\n\n ul {\n list-style: none;\n\n > li {\n &::before {\n position: absolute;\n margin-left: -1.4em;\n color: $grey-dk-000;\n content: \"β€’\";\n }\n }\n }\n\n .task-list-item {\n &::before {\n content: \"\";\n }\n }\n\n .task-list-item-checkbox {\n margin-right: 0.6em;\n margin-left: -1.4em;\n\n // The same margin-left is used above for ul > li::before\n }\n\n hr + * {\n margin-top: 0;\n }\n\n h1:first-of-type {\n margin-top: 0.5em;\n }\n\n dl {\n display: grid;\n grid-template: auto / 10em 1fr;\n }\n\n dt,\n dd {\n margin: 0.25em 0;\n }\n\n dt {\n grid-column: 1;\n font-weight: 500;\n text-align: right;\n\n &::after {\n content: \":\";\n }\n }\n\n dd {\n grid-column: 2;\n margin-bottom: 0;\n margin-left: 1em;\n\n blockquote,\n div,\n dl,\n dt,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n li,\n ol,\n p,\n pre,\n table,\n ul,\n .table-wrapper {\n &:first-child {\n margin-top: 0;\n }\n }\n }\n\n dd,\n ol,\n ul {\n dl:first-child {\n dt:first-child,\n dd:nth-child(2) {\n margin-top: 0;\n }\n }\n }\n\n .anchor-heading {\n position: absolute;\n right: -$sp-4;\n width: $sp-5;\n height: 100%;\n padding-right: $sp-1;\n padding-left: $sp-1;\n overflow: visible;\n\n @include mq(md) {\n right: auto;\n left: -$sp-5;\n }\n\n svg {\n display: inline-block;\n width: 100%;\n height: 100%;\n color: $link-color;\n visibility: hidden;\n }\n }\n\n .anchor-heading:hover,\n .anchor-heading:focus,\n h1:hover > .anchor-heading,\n h2:hover > .anchor-heading,\n h3:hover > .anchor-heading,\n h4:hover > .anchor-heading,\n h5:hover > .anchor-heading,\n h6:hover > .anchor-heading {\n svg {\n visibility: visible;\n }\n }\n\n summary {\n cursor: pointer;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n #toctitle {\n position: relative;\n margin-top: 1.5em;\n margin-bottom: 0.25em;\n\n + table,\n + .table-wrapper,\n + .code-example,\n + .highlighter-rouge,\n + .sectionbody .listingblock {\n margin-top: 1em;\n }\n\n + p:not(.label) {\n margin-top: 0;\n }\n }\n\n > h1:first-child,\n > h2:first-child,\n > h3:first-child,\n > h4:first-child,\n > h5:first-child,\n > h6:first-child,\n > .sect1:first-child > h2,\n > .sect2:first-child > h3,\n > .sect3:first-child > h4,\n > .sect4:first-child > h5,\n > .sect5:first-child > h6 {\n margin-top: $sp-2;\n }\n}\n","// Main nav, breadcrumb, etc...\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity\n\n.nav-list {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n margin: 0;\n\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n\n .nav-list-link {\n display: block;\n min-height: $nav-list-item-height-sm;\n padding-top: $sp-1;\n padding-bottom: $sp-1;\n line-height: #{$nav-list-item-height-sm - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height-sm;\n padding-left: $gutter-spacing-sm;\n } @else {\n padding-right: $gutter-spacing-sm;\n padding-left: $nav-list-item-height-sm;\n }\n\n @include mq(md) {\n min-height: $nav-list-item-height;\n line-height: #{$nav-list-item-height - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height;\n padding-left: $gutter-spacing;\n } @else {\n padding-right: $gutter-spacing;\n padding-left: $nav-list-item-height;\n }\n }\n\n &.external > svg {\n width: $sp-4;\n height: $sp-4;\n vertical-align: text-bottom;\n }\n\n &.active {\n font-weight: 600;\n text-decoration: none;\n }\n\n &:hover,\n &.active {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n }\n }\n\n .nav-list-expander {\n position: absolute;\n @if $nav-list-expander-right {\n right: 0;\n }\n\n width: $nav-list-item-height-sm;\n height: $nav-list-item-height-sm;\n padding: #{$nav-list-item-height-sm * 0.25};\n color: $link-color;\n\n @include mq(md) {\n width: $nav-list-item-height;\n height: $nav-list-item-height;\n padding: #{$nav-list-item-height * 0.25};\n }\n\n &:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n }\n\n @if $nav-list-expander-right {\n svg {\n transform: rotate(90deg);\n }\n }\n }\n\n > .nav-list {\n display: none;\n padding-left: $sp-3;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n\n .nav-list-link {\n color: $nav-child-link-color;\n }\n\n .nav-list-expander {\n color: $nav-child-link-color;\n }\n }\n }\n\n &.active {\n > .nav-list-expander svg {\n @if $nav-list-expander-right {\n transform: rotate(-90deg);\n } @else {\n transform: rotate(90deg);\n }\n }\n\n > .nav-list {\n display: block;\n }\n }\n }\n}\n\n.nav-category {\n padding: $sp-2 $gutter-spacing-sm;\n font-weight: 600;\n text-align: start;\n text-transform: uppercase;\n border-bottom: $border $border-color;\n @include fs-2;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing;\n margin-top: $gutter-spacing-sm;\n text-align: start;\n\n &:first-child {\n margin-top: 0;\n }\n }\n}\n\n.nav-list.nav-category-list {\n > .nav-list-item {\n margin: 0;\n\n > .nav-list {\n padding: 0;\n\n > .nav-list-item {\n > .nav-list-link {\n color: $link-color;\n }\n\n > .nav-list-expander {\n color: $link-color;\n }\n }\n }\n }\n}\n\n// Aux nav\n\n.aux-nav {\n height: 100%;\n overflow-x: auto;\n @include fs-2;\n\n .aux-nav-list {\n display: flex;\n height: 100%;\n padding: 0;\n margin: 0;\n list-style: none;\n }\n\n .aux-nav-list-item {\n display: inline-block;\n height: 100%;\n padding: 0;\n margin: 0;\n }\n\n @include mq(md) {\n padding-right: $gutter-spacing-sm;\n }\n}\n\n// Breadcrumb nav\n\n.breadcrumb-nav {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n}\n\n.breadcrumb-nav-list {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n}\n\n.breadcrumb-nav-list-item {\n display: table-cell;\n @include fs-2;\n\n &::before {\n display: none;\n }\n\n &::after {\n display: inline-block;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $grey-dk-000;\n content: \"/\";\n }\n\n &:last-child {\n &::after {\n content: \"\";\n }\n }\n}\n","// Typography\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\nh1,\n.text-alpha {\n font-weight: 300;\n\n @include fs-8;\n}\n\nh2,\n.text-beta,\n#toctitle {\n @include fs-6;\n}\n\nh3,\n.text-gamma {\n @include fs-5;\n}\n\nh4,\n.text-delta {\n font-weight: 400;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n\n @include fs-2;\n}\n\nh4 code {\n text-transform: none;\n}\n\nh5,\n.text-epsilon {\n @include fs-3;\n}\n\nh6,\n.text-zeta {\n @include fs-2;\n}\n\n.text-small {\n @include fs-2;\n}\n\n.text-mono {\n font-family: $mono-font-family !important;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n","// Labels (not the form kind)\n\n// this :not() prevents a style clash with Mermaid.js's\n// diagram labels, which also use .label\n// for more, see https://github.com/just-the-docs/just-the-docs/issues/1272\n// and the accompanying PR\n.label:not(g),\n.label-blue:not(g) {\n display: inline-block;\n padding: 0.16em 0.56em;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $white;\n text-transform: uppercase;\n vertical-align: middle;\n background-color: $blue-100;\n border-radius: 12px;\n\n @include fs-2;\n}\n\n.label-green:not(g) {\n background-color: $green-200;\n}\n\n.label-purple:not(g) {\n background-color: $purple-100;\n}\n\n.label-red:not(g) {\n background-color: $red-200;\n}\n\n.label-yellow:not(g) {\n color: $grey-dk-200;\n background-color: $yellow-200;\n}\n","// Buttons and things that look like buttons\n// stylelint-disable color-named\n\n.btn {\n display: inline-block;\n box-sizing: border-box;\n padding: 0.3em 1em;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n line-height: 1.5;\n color: $link-color;\n text-decoration: none;\n vertical-align: baseline;\n cursor: pointer;\n background-color: $base-button-color;\n border-width: 0;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n appearance: none;\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: darken($link-color, 2%);\n }\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n text-decoration: none;\n background-color: darken($base-button-color, 1%);\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($base-button-color, 3%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken(#dcdcdc, 5%);\n }\n\n &:disabled,\n &.disabled {\n &,\n &:hover {\n color: rgba(102, 102, 102, 0.5);\n cursor: default;\n background-color: rgba(229, 229, 229, 0.5);\n background-image: none;\n box-shadow: none;\n }\n }\n}\n\n.btn-outline {\n color: $link-color;\n background: transparent;\n box-shadow: inset 0 0 0 2px $grey-lt-300;\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n color: darken($link-color, 4%);\n text-decoration: none;\n background-color: transparent;\n box-shadow: inset 0 0 0 3px $grey-lt-300;\n }\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow:\n inset 0 0 0 2px $grey-dk-100,\n 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: inset 0 0 0 2px $grey-dk-100;\n }\n}\n\n.btn-primary {\n @include btn-color($white, $btn-primary-color);\n}\n\n.btn-purple {\n @include btn-color($white, $purple-100);\n}\n\n.btn-blue {\n @include btn-color($white, $blue-000);\n}\n\n.btn-green {\n @include btn-color($white, $green-100);\n}\n\n.btn-reset {\n background: none;\n border: none;\n margin: 0;\n text-align: inherit;\n font: inherit;\n border-radius: 0;\n appearance: none;\n}\n","// Colored button\n\n@mixin btn-color($fg, $bg) {\n color: $fg;\n background-color: darken($bg, 2%);\n background-image: linear-gradient(lighten($bg, 5%), darken($bg, 2%));\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.25),\n 0 4px 10px rgba(0, 0, 0, 0.12);\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: $fg;\n background-color: darken($bg, 4%);\n background-image: linear-gradient((lighten($bg, 2%), darken($bg, 4%)));\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($bg, 5%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken($bg, 10%);\n }\n}\n","// Search input and autocomplete\n\n.search {\n position: relative;\n z-index: 2;\n flex-grow: 1;\n height: $sp-10;\n padding: $sp-2;\n transition: padding linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: relative !important;\n width: auto !important;\n height: 100% !important;\n padding: 0;\n transition: none;\n }\n}\n\n.search-input-wrap {\n position: relative;\n z-index: 1;\n height: $sp-8;\n overflow: hidden;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n transition: height linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: absolute;\n width: 100%;\n max-width: $search-results-width;\n height: 100% !important;\n border-radius: 0;\n box-shadow: none;\n transition: width ease $transition-duration;\n }\n}\n\n.search-input {\n position: absolute;\n width: 100%;\n height: 100%;\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing-sm + $sp-5};\n font-size: 1rem;\n color: $body-text-color;\n background-color: $search-background-color;\n border-top: 0;\n border-right: 0;\n border-bottom: 0;\n border-left: 0;\n border-radius: 0;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing + $sp-5};\n font-size: 0.875rem;\n background-color: $body-background-color;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n &:focus {\n outline: 0;\n\n + .search-label .search-icon {\n color: $link-color;\n }\n }\n}\n\n.search-label {\n position: absolute;\n display: flex;\n height: 100%;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-left: $gutter-spacing;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n .search-icon {\n width: #{$sp-4 * 1.2};\n height: #{$sp-4 * 1.2};\n align-self: center;\n color: $grey-dk-000;\n }\n}\n\n.search-results {\n position: absolute;\n left: 0;\n display: none;\n width: 100%;\n max-height: calc(100% - #{$sp-10});\n overflow-y: auto;\n background-color: $search-background-color;\n border-bottom-right-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n\n @include mq(md) {\n top: 100%;\n width: $search-results-width;\n max-height: calc(100vh - 200%) !important;\n }\n}\n\n.search-results-list {\n padding-left: 0;\n margin-bottom: $sp-1;\n list-style: none;\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n}\n\n.search-results-list-item {\n padding: 0;\n margin: 0;\n}\n\n.search-result {\n display: block;\n padding: $sp-1 $sp-3;\n\n &:hover,\n &.active {\n background-color: $feedback-color;\n }\n}\n\n.search-result-title {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 40%;\n padding-right: $sp-2;\n vertical-align: top;\n }\n}\n\n.search-result-doc {\n display: flex;\n align-items: center;\n word-wrap: break-word;\n\n &.search-result-doc-parent {\n opacity: 0.5;\n @include fs-3;\n\n @include mq(md) {\n @include fs-2;\n }\n }\n\n .search-result-icon {\n width: $sp-4;\n height: $sp-4;\n margin-right: $sp-2;\n color: $link-color;\n flex-shrink: 0;\n }\n\n .search-result-doc-title {\n overflow: auto;\n }\n}\n\n.search-result-section {\n margin-left: #{$sp-4 + $sp-2};\n word-wrap: break-word;\n}\n\n.search-result-rel-url {\n display: block;\n margin-left: #{$sp-4 + $sp-2};\n overflow: hidden;\n color: $search-result-preview-color;\n text-overflow: ellipsis;\n white-space: nowrap;\n @include fs-1;\n}\n\n.search-result-previews {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n padding-left: $sp-4;\n margin-left: $sp-2;\n color: $search-result-preview-color;\n word-wrap: break-word;\n border-left: $border;\n border-left-color: $border-color;\n @include fs-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 60%;\n padding-left: $sp-2;\n margin-left: 0;\n vertical-align: top;\n }\n}\n\n.search-result-preview + .search-result-preview {\n margin-top: $sp-1;\n}\n\n.search-result-highlight {\n font-weight: bold;\n}\n\n.search-no-result {\n padding: $sp-2 $sp-3;\n @include fs-3;\n}\n\n.search-button {\n position: fixed;\n right: $sp-4;\n bottom: $sp-4;\n display: flex;\n width: $sp-9;\n height: $sp-9;\n background-color: $search-background-color;\n border: 1px solid rgba($link-color, 0.3);\n border-radius: #{$sp-9 * 0.5};\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n align-items: center;\n justify-content: center;\n}\n\n.search-overlay {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n width: 0;\n height: 0;\n background-color: rgba(0, 0, 0, 0.3);\n opacity: 0;\n transition:\n opacity ease $transition-duration,\n width 0s $transition-duration,\n height 0s $transition-duration;\n}\n\n.search-active {\n .search {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .search-input-wrap {\n height: $sp-10;\n border-radius: 0;\n\n @include mq(md) {\n width: $search-results-width;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n }\n }\n\n .search-input {\n background-color: $search-background-color;\n\n @include mq(md) {\n padding-left: 2.3rem;\n }\n }\n\n .search-label {\n @include mq(md) {\n padding-left: 0.6rem;\n }\n }\n\n .search-results {\n display: block;\n }\n\n .search-overlay {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n opacity ease $transition-duration,\n width 0s,\n height 0s;\n }\n\n @include mq(md) {\n .main {\n position: fixed;\n right: 0;\n left: 0;\n }\n }\n\n .main-header {\n padding-top: $sp-10;\n\n @include mq(md) {\n padding-top: 0;\n }\n }\n}\n","// Tables\n// stylelint-disable max-nesting-depth, selector-no-type, selector-max-type\n\n.table-wrapper {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: $sp-5;\n overflow-x: auto;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n}\n\ntable {\n display: table;\n min-width: 100%;\n border-collapse: separate;\n}\n\nth,\ntd {\n min-width: 7.5rem;\n padding: $sp-2 $sp-3;\n background-color: $table-background-color;\n border-bottom: $border rgba($border-color, 0.5);\n border-left: $border $border-color;\n\n @include fs-3;\n\n &:first-of-type {\n border-left: 0;\n }\n}\n\ntbody {\n tr {\n &:last-of-type {\n th,\n td {\n border-bottom: 0;\n }\n\n td {\n padding-bottom: $sp-3;\n }\n }\n }\n}\n\nthead {\n th {\n border-bottom: $border $border-color;\n }\n}\n","// Code and syntax highlighting\n// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type, scss/comment-no-empty\n\n// {% raw %}\n\n// This instruction applies to all queues not within 'pre' or 'figure', avoiding 'code' generated by the highlight.\n:not(pre, figure) {\n & > code {\n padding: 0.2em 0.15em;\n font-weight: 400;\n background-color: $code-background-color;\n border: $border $border-color;\n border-radius: $border-radius;\n }\n}\n\n// Avoid appearance of dark border around visited code links in Safari\na:visited code {\n border-color: $border-color;\n}\n\n// Content structure for highlighted code blocks using fences or Liquid\n//\n// ```[LANG]...```, no kramdown line_numbers:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n//\n// ```[LANG]...```, kramdown line_numbers = true:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.rouge-gutter.gl > pre.lineno\n// | td.rouge-code > pre\n//\n// {% highlight LANG %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n//\n// {% highlight LANG linenos %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.gutter.gl > pre.lineno\n// | td.code > pre\n//\n// ----...---- (AsciiDoc)\n// div.listingblock > div.content > pre.rouge.highlight\n//\n// fix_linenos removes the outermost pre when it encloses table.rouge-table\n//\n// See docs/index-test.md for some tests.\n//\n// No kramdown line_numbers: fences and Liquid highlighting look the same.\n// Kramdown line_numbers = true: fences have a wider gutter than with Liquid?\n\n// ```[LANG]...```\n// or in AsciiDoc:\n//\n// ----\n// ...\n// ----\n\n// the code may appear with 3 different types:\n// container \\ case: default case, code with line number, code with html rendering\n// top level: div.highlighter-rouge, figure.highlight, figure.highlight\n// second level: div.highlight, div.table-wrapper, pre.highlight\n// third level: pre.highlight, td.code, absent\n// last level: code, pre, code (optionality)\n// highlighter level: span, span, span\n// the spacing are only in the second level for case 1, 3 and in the third level for case 2\n// in AsciiDoc, there is a parent container that contains optionally a title and the content.\n\n// select top level container\ndiv.highlighter-rouge,\ndiv.listingblock > div.content,\nfigure.highlight {\n margin-top: 0;\n margin-bottom: $sp-3;\n background-color: $code-background-color;\n border-radius: $border-radius;\n box-shadow: none;\n -webkit-overflow-scrolling: touch;\n position: relative;\n padding: 0;\n\n // copy button (or other button)\n // the button appear only when there is a hover on the code or focus on button\n > button {\n width: $sp-3;\n opacity: 0;\n position: absolute;\n top: 0;\n right: 0;\n border: $sp-3 solid $code-background-color;\n background-color: $code-background-color;\n color: $body-text-color;\n box-sizing: content-box;\n\n svg {\n fill: $body-text-color;\n }\n\n &:active {\n text-decoration: none;\n outline: none;\n opacity: 1;\n }\n\n &:focus {\n opacity: 1;\n }\n }\n\n // the button can be seen by doing a simple hover in the code, there is no need to go over the location of the button\n &:hover {\n > button {\n cursor: copy;\n opacity: 1;\n }\n }\n}\n\n// setting the spacing and scrollbar on the second level for the first case\n// remove all space on the second and third level\n// this is a mixin to accommodate for the slightly different structures generated via Markdown vs AsciiDoc\n@mixin scroll-and-spacing($code-div, $pre-select) {\n #{$code-div} {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n\n #{$pre-select},\n code {\n padding: 0;\n margin: 0;\n border: 0;\n }\n}\n\n// for Markdown\ndiv.highlighter-rouge {\n @include scroll-and-spacing(\"div.highlight\", \"pre.highlight\");\n}\n\n// for AsciiDoc. we also need to fix the margins for its parent container.\ndiv.listingblock {\n margin-top: 0;\n margin-bottom: $sp-3;\n\n @include scroll-and-spacing(\"div.content\", \"div.content > pre\");\n}\n\n// {% highlight LANG %}...{% endhighlight %},\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the second level for the thirt case\n// the css rule are apply only to the last code enviroment\n// setting the scroolbar\nfigure.highlight {\n pre,\n :not(pre) > code {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n}\n\n// ```[LANG]...```, kramdown line_numbers = true,\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the thirt level for the second case\n.highlight .table-wrapper {\n padding: $sp-3 0;\n margin: 0;\n border: 0;\n box-shadow: none;\n\n td,\n pre {\n min-width: 0;\n padding: 0;\n background-color: $code-background-color;\n border: 0;\n\n @include fs-2;\n }\n\n td.gl {\n width: 1em;\n padding-right: $sp-3;\n padding-left: $sp-3;\n }\n\n pre {\n margin: 0;\n line-height: 2;\n }\n}\n\n// Code examples: html render of a code\n.code-example,\n.listingblock > .title {\n padding: $sp-3;\n margin-bottom: $sp-3;\n overflow: auto;\n border: 1px solid $border-color;\n border-radius: $border-radius;\n\n + .highlighter-rouge,\n + .sectionbody .listingblock,\n + .content,\n + figure.highlight {\n position: relative;\n margin-top: -$sp-4;\n border-right: 1px solid $border-color;\n border-bottom: 1px solid $border-color;\n border-left: 1px solid $border-color;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n\n// Mermaid diagram code blocks should be left unstyled.\ncode.language-mermaid {\n padding: 0;\n background-color: inherit;\n border: 0;\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight,\npre.highlight {\n background: $code-background-color; // Code Background\n // For Backwards Compatibility Before $code-linenumber-color was added\n @if variable-exists(code-linenumber-color) {\n color: $code-linenumber-color; // Code Line Numbers\n } @else {\n color: $body-text-color; // Code Line Numbers\n }\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight pre {\n background: $code-background-color; // Code Background\n}\n\n// {% endraw %}\n","// Utility classes for colors\n\n// Text colors\n\n.text-grey-dk-000 {\n color: $grey-dk-000 !important;\n}\n\n.text-grey-dk-100 {\n color: $grey-dk-100 !important;\n}\n\n.text-grey-dk-200 {\n color: $grey-dk-200 !important;\n}\n\n.text-grey-dk-250 {\n color: $grey-dk-250 !important;\n}\n\n.text-grey-dk-300 {\n color: $grey-dk-300 !important;\n}\n\n.text-grey-lt-000 {\n color: $grey-lt-000 !important;\n}\n\n.text-grey-lt-100 {\n color: $grey-lt-100 !important;\n}\n\n.text-grey-lt-200 {\n color: $grey-lt-200 !important;\n}\n\n.text-grey-lt-300 {\n color: $grey-lt-300 !important;\n}\n\n.text-blue-000 {\n color: $blue-000 !important;\n}\n\n.text-blue-100 {\n color: $blue-100 !important;\n}\n\n.text-blue-200 {\n color: $blue-200 !important;\n}\n\n.text-blue-300 {\n color: $blue-300 !important;\n}\n\n.text-green-000 {\n color: $green-000 !important;\n}\n\n.text-green-100 {\n color: $green-100 !important;\n}\n\n.text-green-200 {\n color: $green-200 !important;\n}\n\n.text-green-300 {\n color: $green-300 !important;\n}\n\n.text-purple-000 {\n color: $purple-000 !important;\n}\n\n.text-purple-100 {\n color: $purple-100 !important;\n}\n\n.text-purple-200 {\n color: $purple-200 !important;\n}\n\n.text-purple-300 {\n color: $purple-300 !important;\n}\n\n.text-yellow-000 {\n color: $yellow-000 !important;\n}\n\n.text-yellow-100 {\n color: $yellow-100 !important;\n}\n\n.text-yellow-200 {\n color: $yellow-200 !important;\n}\n\n.text-yellow-300 {\n color: $yellow-300 !important;\n}\n\n.text-red-000 {\n color: $red-000 !important;\n}\n\n.text-red-100 {\n color: $red-100 !important;\n}\n\n.text-red-200 {\n color: $red-200 !important;\n}\n\n.text-red-300 {\n color: $red-300 !important;\n}\n\n// Background colors\n\n.bg-grey-dk-000 {\n background-color: $grey-dk-000 !important;\n}\n\n.bg-grey-dk-100 {\n background-color: $grey-dk-100 !important;\n}\n\n.bg-grey-dk-200 {\n background-color: $grey-dk-200 !important;\n}\n\n.bg-grey-dk-250 {\n background-color: $grey-dk-250 !important;\n}\n\n.bg-grey-dk-300 {\n background-color: $grey-dk-300 !important;\n}\n\n.bg-grey-lt-000 {\n background-color: $grey-lt-000 !important;\n}\n\n.bg-grey-lt-100 {\n background-color: $grey-lt-100 !important;\n}\n\n.bg-grey-lt-200 {\n background-color: $grey-lt-200 !important;\n}\n\n.bg-grey-lt-300 {\n background-color: $grey-lt-300 !important;\n}\n\n.bg-blue-000 {\n background-color: $blue-000 !important;\n}\n\n.bg-blue-100 {\n background-color: $blue-100 !important;\n}\n\n.bg-blue-200 {\n background-color: $blue-200 !important;\n}\n\n.bg-blue-300 {\n background-color: $blue-300 !important;\n}\n\n.bg-green-000 {\n background-color: $green-000 !important;\n}\n\n.bg-green-100 {\n background-color: $green-100 !important;\n}\n\n.bg-green-200 {\n background-color: $green-200 !important;\n}\n\n.bg-green-300 {\n background-color: $green-300 !important;\n}\n\n.bg-purple-000 {\n background-color: $purple-000 !important;\n}\n\n.bg-purple-100 {\n background-color: $purple-100 !important;\n}\n\n.bg-purple-200 {\n background-color: $purple-200 !important;\n}\n\n.bg-purple-300 {\n background-color: $purple-300 !important;\n}\n\n.bg-yellow-000 {\n background-color: $yellow-000 !important;\n}\n\n.bg-yellow-100 {\n background-color: $yellow-100 !important;\n}\n\n.bg-yellow-200 {\n background-color: $yellow-200 !important;\n}\n\n.bg-yellow-300 {\n background-color: $yellow-300 !important;\n}\n\n.bg-red-000 {\n background-color: $red-000 !important;\n}\n\n.bg-red-100 {\n background-color: $red-100 !important;\n}\n\n.bg-red-200 {\n background-color: $red-200 !important;\n}\n\n.bg-red-300 {\n background-color: $red-300 !important;\n}\n","// Utility classes for layout\n\n// Display\n\n.d-block {\n display: block !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .d-sm-block, .d-md-none, .d-lg-inline\n .d-#{$media-query}-block {\n display: block !important;\n }\n .d-#{$media-query}-flex {\n display: flex !important;\n }\n .d-#{$media-query}-inline {\n display: inline !important;\n }\n .d-#{$media-query}-inline-block {\n display: inline-block !important;\n }\n .d-#{$media-query}-none {\n display: none !important;\n }\n }\n }\n}\n\n// Horizontal alignment\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.flex-justify-start {\n justify-content: flex-start !important;\n}\n\n.flex-justify-end {\n justify-content: flex-end !important;\n}\n\n.flex-justify-between {\n justify-content: space-between !important;\n}\n\n.flex-justify-around {\n justify-content: space-around !important;\n}\n\n// Vertical alignment\n\n.v-align-baseline {\n vertical-align: baseline !important;\n}\n\n.v-align-bottom {\n vertical-align: bottom !important;\n}\n\n.v-align-middle {\n vertical-align: middle !important;\n}\n\n.v-align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.v-align-text-top {\n vertical-align: text-top !important;\n}\n\n.v-align-top {\n vertical-align: top !important;\n}\n","// Utility classes for typography\n\n.fs-1 {\n @include fs-1;\n}\n\n.fs-2 {\n @include fs-2;\n}\n\n.fs-3 {\n @include fs-3;\n}\n\n.fs-4 {\n @include fs-4;\n}\n\n.fs-5 {\n @include fs-5;\n}\n\n.fs-6 {\n @include fs-6;\n}\n\n.fs-7 {\n @include fs-7;\n}\n\n.fs-8 {\n @include fs-8;\n}\n\n.fs-9 {\n @include fs-9;\n}\n\n.fs-10 {\n @include fs-10;\n}\n\n.fw-300 {\n font-weight: 300 !important;\n}\n\n.fw-400 {\n font-weight: 400 !important;\n}\n\n.fw-500 {\n font-weight: 500 !important;\n}\n\n.fw-700 {\n font-weight: 700 !important;\n}\n\n.lh-0 {\n line-height: 0 !important;\n}\n\n.lh-default {\n line-height: $body-line-height;\n}\n\n.lh-tight {\n line-height: $body-heading-line-height;\n}\n\n.ls-5 {\n letter-spacing: 0.05em !important;\n}\n\n.ls-10 {\n letter-spacing: 0.1em !important;\n}\n\n.ls-0 {\n letter-spacing: 0 !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n","// Utility classes for lists\n\n// stylelint-disable selector-max-type\n\n.list-style-none {\n padding: 0 !important;\n margin: 0 !important;\n list-style: none !important;\n\n li {\n &::before {\n display: none !important;\n }\n }\n}\n","// Utility classes for margins and padding\n\n// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before\n\n// Margin spacer utilities\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-0, .m-1, .m-2...\n .m-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n .mx-#{$scale}-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-sm-0, .m-md-1, .m-lg-2...\n .m-#{$media-query}-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$media-query}-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$media-query}-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$media-query}-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n }\n }\n}\n\n// Padding spacer utilities\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-0, .p-1, .p-2...\n .p-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @include mq($media-query) {\n @for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-sm-0, .p-md-1, .p-lg-2...\n .p-#{$media-query}-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$media-query}-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$media-query}-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n }\n }\n}\n","// stylelint-disable selector-max-specificity, selector-max-id, selector-max-type, selector-no-qualifying-type\n\n@media print {\n .site-footer,\n .site-button,\n #edit-this-page,\n #back-to-top,\n .site-nav,\n .main-header {\n display: none !important;\n }\n\n .side-bar {\n width: 100%;\n height: auto;\n border-right: 0 !important;\n }\n\n .site-header {\n border-bottom: 1px solid $border-color;\n }\n\n .site-title {\n font-size: 1rem !important;\n font-weight: 700 !important;\n }\n\n .text-small {\n font-size: 8pt !important;\n }\n\n pre.highlight {\n border: 1px solid $border-color;\n }\n\n .main {\n max-width: none;\n margin-left: 0;\n }\n}\n","// Skipnav\n// Skip to main content\n\na.skip-to-main {\n left: -999px;\n position: absolute;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n z-index: -999;\n}\n\na.skip-to-main:focus,\na.skip-to-main:active {\n color: $link-color;\n background-color: $body-background-color;\n left: auto;\n top: auto;\n width: 30%;\n height: auto;\n overflow: auto;\n margin: 10px 35%;\n padding: 5px;\n border-radius: 15px;\n border: 4px solid $btn-primary-color;\n text-align: center;\n font-size: 1.2em;\n z-index: 999;\n}\n","\n$logo: \"/assets/images/logo.png\";\n\n@import \"./support/support\";\n@import \"./custom/setup\";\n@import \"./color_schemes/light\";\n\n@import \"./modules\";\ndiv.opaque {\n background-color: $body-background-color;\n}\n@import \"./custom/custom\";\n\n\n"],"file":"just-the-docs-light.css"} \ No newline at end of file diff --git a/jekyll-backup/_site/assets/css/main.css b/jekyll-backup/_site/assets/css/main.css new file mode 100644 index 00000000..fa167b01 --- /dev/null +++ b/jekyll-backup/_site/assets/css/main.css @@ -0,0 +1 @@ +:root{--color-text: inherit;--color-accent: rgba(0, 128, 0, 0.5);--color-accent-bg: rgba(0, 128, 0, 0.15);--color-error: #f00;--color-error-bg: #fff0f0;--font-family-mono: monospace;--font-size-base: 1rem;--line-height-base: 1.5;--spacing-xs: 0.25rem;--spacing-sm: 0.5rem;--button-padding-y: 0.4em;--button-padding-x: 0.75em;--border-radius-sm: 0.25em;--transition-border: border-color 0.2s linear;--transition-shadow: box-shadow 0.2s ease-in-out}details{transition:all .2s ease-in-out}summary{cursor:pointer;outline:none}summary:hover{color:var(--link-color)}#configs input[name=instance],#configs input[name=search]{inline-size:100%}.noscript{padding:var(--spacing-sm);font-weight:600;color:var(--color-error);background:var(--color-error-bg);border:1px solid var(--color-error)}.svg-defs-hidden{display:none}.feed-directory__filters{position:sticky;top:0;height:fit-content;z-index:2;border:1px solid var(--border-color);border-radius:var(--border-radius);margin-bottom:var(--spacing-lg);display:flex;flex-wrap:wrap;gap:var(--spacing-lg);align-items:flex-start}.feed-directory__item{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius);margin-bottom:1px;transition:var(--transition-base);background-color:var(--color-bg)}.feed-directory__item:hover{box-shadow:var(--box-shadow)}.feed-directory__item-info{display:flex;flex-direction:column;flex:1;gap:var(--spacing-xs);margin-inline-end:var(--spacing-sm)}.feed-directory__item-main{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm);min-height:2rem}h3.feed-directory__item-name{font-size:var(--font-size-h4);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0;padding:0;flex:1;min-width:0;line-height:1.4}.feed-directory__item-param-toggle{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);color:var(--color-text-light);background-color:var(--code-block-bg-color);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm);border:1px solid var(--border-color);white-space:nowrap;cursor:pointer;transition:var(--transition-base);flex-shrink:0}.feed-directory__item-param-toggle:hover{background-color:var(--border-color);color:var(--color-text)}.feed-directory__param-icon{width:14px;height:14px;flex-shrink:0}.feed-directory__item-url{font-size:var(--font-size-sm);color:var(--color-text-light);word-break:break-word;margin:0}.feed-directory__item-param-form__buttons{display:flex;justify-content:flex-end}.feed-directory__item-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.feed-directory__item-actions button{background-color:unset;border:1px;text-align:center;padding:0;cursor:pointer}.feed-directory__item-actions__rss-icon,.feed-directory__item-actions__edit-icon,.feed-directory__item-actions__settings-icon{inline-size:1.2rem;block-size:1.2rem}.feed-directory__item-actions__rss-icon:hover,.feed-directory__item-actions__edit-icon:hover,.feed-directory__item-actions__settings-icon:hover{color:var(--link-color)}.feed-directory__fieldset{border:none;padding:0;flex:1 1 45%;min-width:280px;margin-bottom:0}.feed-directory__fieldset legend{padding:0 var(--spacing-xs);margin-bottom:var(--spacing-sm)}.feed-directory__item-param-form{margin-top:var(--spacing-xs);padding:var(--spacing-xs);border-top:1px solid var(--border-color);background-color:var(--code-block-bg-color);border-radius:var(--border-radius-sm);animation:slideDown .2s ease-out}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.feed-directory__item-param-form__group{margin-block-end:var(--spacing-xs);display:flex;align-items:center;gap:var(--spacing-sm)}.feed-directory__item-param-form__label{font-size:.85em;font-weight:var(--font-weight-normal);color:var(--color-text);flex-shrink:0;min-width:80px}.feed-directory__item-param-form__input{inline-size:100%;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--color-text)}.feed-directory__item-param-form__code{font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm);background-color:var(--code-block-bg-color);color:var(--code-block-color);word-break:break-all}/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/jekyll-backup/_site/assets/css/main.css.map b/jekyll-backup/_site/assets/css/main.css.map new file mode 100644 index 00000000..0f7d3dc9 --- /dev/null +++ b/jekyll-backup/_site/assets/css/main.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["sass/base.scss","sass/feed-directory.scss"],"names":[],"mappings":"AAAA,MACE,sBACA,qCACA,yCACA,oBACA,0BACA,8BACA,uBACA,wBACA,sBACA,qBACA,0BACA,2BACA,2BACA,8CACA,iDAGF,QACE,+BAGF,QACE,eACA,aAGF,cACE,wBAGF,0DAEE,iBAGF,UACE,0BACA,gBACA,yBACA,iCACA,oCAGF,iBACE,aC7CF,yBACE,gBACA,MACA,mBACA,UAEA,qCACA,mCACA,gCACA,aACA,eACA,sBACA,uBAGF,sBACE,aACA,8BACA,uBACA,sBAEA,0BACA,qCACA,mCACA,kBAEA,kCACA,iCAGF,4BACE,6BAGF,2BACE,aACA,sBACA,OACA,sBACA,oCAGF,2BACE,aACA,8BACA,mBACA,sBACA,gBAGF,6BACE,8BACA,oCACA,wBACA,SACA,UACA,OACA,YACA,gBAGF,mCACE,aACA,mBACA,sBACA,8BACA,sCACA,8BACA,4CACA,4CACA,sCACA,qCACA,mBACA,eACA,kCACA,cAGF,yCACE,qCACA,wBAGF,4BACE,WACA,YACA,cAGF,0BACE,8BACA,8BACA,sBACA,SAGF,0CACE,aACA,yBAGF,8BACE,aACA,mBACA,sBACA,cAGF,qCACE,uBACA,WACA,kBACA,UACA,eAGF,8HAGE,mBACA,kBAGF,gJAGE,wBAGF,0BACE,YACA,UACA,aACA,gBACA,gBAGF,iCACE,4BACA,gCAGF,iCACE,6BACA,0BACA,yCACA,4CACA,sCACA,iCAGF,qBACE,KACE,UACA,4BAEF,GACE,UACA,yBAIJ,wCACE,mCACA,aACA,mBACA,sBAGF,wCACE,gBACA,sCACA,wBACA,cACA,eAGF,wCACE,iBACA,4CACA,qCACA,sCACA,wBAGF,uCACE,8BACA,4CACA,sCACA,4CACA,8BACA","sourcesContent":[":root {\n --color-text: inherit;\n --color-accent: rgba(0, 128, 0, 0.5);\n --color-accent-bg: rgba(0, 128, 0, 0.15);\n --color-error: #f00;\n --color-error-bg: #fff0f0;\n --font-family-mono: monospace;\n --font-size-base: 1rem;\n --line-height-base: 1.5;\n --spacing-xs: 0.25rem;\n --spacing-sm: 0.5rem;\n --button-padding-y: 0.4em;\n --button-padding-x: 0.75em;\n --border-radius-sm: 0.25em;\n --transition-border: border-color 0.2s linear;\n --transition-shadow: box-shadow 0.2s ease-in-out;\n}\n\ndetails {\n transition: all 0.2s ease-in-out;\n}\n\nsummary {\n cursor: pointer;\n outline: none;\n}\n\nsummary:hover {\n color: var(--link-color);\n}\n\n#configs input[name=\"instance\"],\n#configs input[name=\"search\"] {\n inline-size: 100%;\n}\n\n.noscript {\n padding: var(--spacing-sm);\n font-weight: 600;\n color: var(--color-error);\n background: var(--color-error-bg);\n border: 1px solid var(--color-error);\n}\n\n.svg-defs-hidden {\n display: none;\n}\n",".feed-directory__filters {\n position: sticky;\n top: 0;\n height: fit-content;\n z-index: 2;\n\n border: 1px solid var(--border-color);\n border-radius: var(--border-radius);\n margin-bottom: var(--spacing-lg);\n display: flex;\n flex-wrap: wrap;\n gap: var(--spacing-lg);\n align-items: flex-start;\n}\n\n.feed-directory__item {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: var(--spacing-sm);\n\n padding: var(--spacing-sm);\n border: 1px solid var(--border-color);\n border-radius: var(--border-radius);\n margin-bottom: 1px; /* Minimal gap between items */\n\n transition: var(--transition-base);\n background-color: var(--color-bg);\n}\n\n.feed-directory__item:hover {\n box-shadow: var(--box-shadow);\n}\n\n.feed-directory__item-info {\n display: flex;\n flex-direction: column;\n flex: 1;\n gap: var(--spacing-xs);\n margin-inline-end: var(--spacing-sm);\n}\n\n.feed-directory__item-main {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--spacing-sm);\n min-height: 2rem; /* Compact height for list feel */\n}\n\nh3.feed-directory__item-name {\n font-size: var(--font-size-h4);\n font-weight: var(--font-weight-bold);\n color: var(--color-text);\n margin: 0;\n padding: 0;\n flex: 1;\n min-width: 0; /* Allow text to wrap */\n line-height: 1.4;\n}\n\n.feed-directory__item-param-toggle {\n display: flex;\n align-items: center;\n gap: var(--spacing-xs);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-normal);\n color: var(--color-text-light);\n background-color: var(--code-block-bg-color);\n padding: var(--spacing-xs) var(--spacing-sm);\n border-radius: var(--border-radius-sm);\n border: 1px solid var(--border-color);\n white-space: nowrap;\n cursor: pointer;\n transition: var(--transition-base);\n flex-shrink: 0;\n}\n\n.feed-directory__item-param-toggle:hover {\n background-color: var(--border-color);\n color: var(--color-text);\n}\n\n.feed-directory__param-icon {\n width: 14px;\n height: 14px;\n flex-shrink: 0;\n}\n\n.feed-directory__item-url {\n font-size: var(--font-size-sm);\n color: var(--color-text-light);\n word-break: break-word;\n margin: 0;\n}\n\n.feed-directory__item-param-form__buttons {\n display: flex;\n justify-content: flex-end;\n}\n\n.feed-directory__item-actions {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm);\n flex-shrink: 0;\n}\n\n.feed-directory__item-actions button {\n background-color: unset;\n border: 1px;\n text-align: center;\n padding: 0;\n cursor: pointer;\n}\n\n.feed-directory__item-actions__rss-icon,\n.feed-directory__item-actions__edit-icon,\n.feed-directory__item-actions__settings-icon {\n inline-size: 1.2rem;\n block-size: 1.2rem;\n}\n\n.feed-directory__item-actions__rss-icon:hover,\n.feed-directory__item-actions__edit-icon:hover,\n.feed-directory__item-actions__settings-icon:hover {\n color: var(--link-color);\n}\n\n.feed-directory__fieldset {\n border: none;\n padding: 0;\n flex: 1 1 45%;\n min-width: 280px;\n margin-bottom: 0;\n}\n\n.feed-directory__fieldset legend {\n padding: 0 var(--spacing-xs);\n margin-bottom: var(--spacing-sm);\n}\n\n.feed-directory__item-param-form {\n margin-top: var(--spacing-xs);\n padding: var(--spacing-xs);\n border-top: 1px solid var(--border-color);\n background-color: var(--code-block-bg-color);\n border-radius: var(--border-radius-sm);\n animation: slideDown 0.2s ease-out;\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.feed-directory__item-param-form__group {\n margin-block-end: var(--spacing-xs);\n display: flex;\n align-items: center;\n gap: var(--spacing-sm);\n}\n\n.feed-directory__item-param-form__label {\n font-size: 0.85em;\n font-weight: var(--font-weight-normal);\n color: var(--color-text);\n flex-shrink: 0;\n min-width: 80px;\n}\n\n.feed-directory__item-param-form__input {\n inline-size: 100%;\n padding: var(--spacing-xs) var(--spacing-sm);\n border: 1px solid var(--border-color);\n border-radius: var(--border-radius-sm);\n color: var(--color-text);\n}\n\n.feed-directory__item-param-form__code {\n font-size: var(--font-size-sm);\n padding: var(--spacing-xs) var(--spacing-sm);\n border-radius: var(--border-radius-sm);\n background-color: var(--code-block-bg-color);\n color: var(--code-block-color);\n word-break: break-all;\n}\n"],"file":"main.css"} \ No newline at end of file diff --git a/jekyll-backup/_site/assets/css/sass/base.scss b/jekyll-backup/_site/assets/css/sass/base.scss new file mode 100644 index 00000000..9c95075f --- /dev/null +++ b/jekyll-backup/_site/assets/css/sass/base.scss @@ -0,0 +1,47 @@ +:root { + --color-text: inherit; + --color-accent: rgba(0, 128, 0, 0.5); + --color-accent-bg: rgba(0, 128, 0, 0.15); + --color-error: #f00; + --color-error-bg: #fff0f0; + --font-family-mono: monospace; + --font-size-base: 1rem; + --line-height-base: 1.5; + --spacing-xs: 0.25rem; + --spacing-sm: 0.5rem; + --button-padding-y: 0.4em; + --button-padding-x: 0.75em; + --border-radius-sm: 0.25em; + --transition-border: border-color 0.2s linear; + --transition-shadow: box-shadow 0.2s ease-in-out; +} + +details { + transition: all 0.2s ease-in-out; +} + +summary { + cursor: pointer; + outline: none; +} + +summary:hover { + color: var(--link-color); +} + +#configs input[name="instance"], +#configs input[name="search"] { + inline-size: 100%; +} + +.noscript { + padding: var(--spacing-sm); + font-weight: 600; + color: var(--color-error); + background: var(--color-error-bg); + border: 1px solid var(--color-error); +} + +.svg-defs-hidden { + display: none; +} diff --git a/jekyll-backup/_site/assets/css/sass/feed-directory.scss b/jekyll-backup/_site/assets/css/sass/feed-directory.scss new file mode 100644 index 00000000..855fa400 --- /dev/null +++ b/jekyll-backup/_site/assets/css/sass/feed-directory.scss @@ -0,0 +1,193 @@ +.feed-directory__filters { + position: sticky; + top: 0; + height: fit-content; + z-index: 2; + + border: 1px solid var(--border-color); + border-radius: var(--border-radius); + margin-bottom: var(--spacing-lg); + display: flex; + flex-wrap: wrap; + gap: var(--spacing-lg); + align-items: flex-start; +} + +.feed-directory__item { + display: flex; + justify-content: space-between; + align-items: flex-start; + gap: var(--spacing-sm); + + padding: var(--spacing-sm); + border: 1px solid var(--border-color); + border-radius: var(--border-radius); + margin-bottom: 1px; /* Minimal gap between items */ + + transition: var(--transition-base); + background-color: var(--color-bg); +} + +.feed-directory__item:hover { + box-shadow: var(--box-shadow); +} + +.feed-directory__item-info { + display: flex; + flex-direction: column; + flex: 1; + gap: var(--spacing-xs); + margin-inline-end: var(--spacing-sm); +} + +.feed-directory__item-main { + display: flex; + justify-content: space-between; + align-items: center; + gap: var(--spacing-sm); + min-height: 2rem; /* Compact height for list feel */ +} + +h3.feed-directory__item-name { + font-size: var(--font-size-h4); + font-weight: var(--font-weight-bold); + color: var(--color-text); + margin: 0; + padding: 0; + flex: 1; + min-width: 0; /* Allow text to wrap */ + line-height: 1.4; +} + +.feed-directory__item-param-toggle { + display: flex; + align-items: center; + gap: var(--spacing-xs); + font-size: var(--font-size-xs); + font-weight: var(--font-weight-normal); + color: var(--color-text-light); + background-color: var(--code-block-bg-color); + padding: var(--spacing-xs) var(--spacing-sm); + border-radius: var(--border-radius-sm); + border: 1px solid var(--border-color); + white-space: nowrap; + cursor: pointer; + transition: var(--transition-base); + flex-shrink: 0; +} + +.feed-directory__item-param-toggle:hover { + background-color: var(--border-color); + color: var(--color-text); +} + +.feed-directory__param-icon { + width: 14px; + height: 14px; + flex-shrink: 0; +} + +.feed-directory__item-url { + font-size: var(--font-size-sm); + color: var(--color-text-light); + word-break: break-word; + margin: 0; +} + +.feed-directory__item-param-form__buttons { + display: flex; + justify-content: flex-end; +} + +.feed-directory__item-actions { + display: flex; + align-items: center; + gap: var(--spacing-sm); + flex-shrink: 0; +} + +.feed-directory__item-actions button { + background-color: unset; + border: 1px; + text-align: center; + padding: 0; + cursor: pointer; +} + +.feed-directory__item-actions__rss-icon, +.feed-directory__item-actions__edit-icon, +.feed-directory__item-actions__settings-icon { + inline-size: 1.2rem; + block-size: 1.2rem; +} + +.feed-directory__item-actions__rss-icon:hover, +.feed-directory__item-actions__edit-icon:hover, +.feed-directory__item-actions__settings-icon:hover { + color: var(--link-color); +} + +.feed-directory__fieldset { + border: none; + padding: 0; + flex: 1 1 45%; + min-width: 280px; + margin-bottom: 0; +} + +.feed-directory__fieldset legend { + padding: 0 var(--spacing-xs); + margin-bottom: var(--spacing-sm); +} + +.feed-directory__item-param-form { + margin-top: var(--spacing-xs); + padding: var(--spacing-xs); + border-top: 1px solid var(--border-color); + background-color: var(--code-block-bg-color); + border-radius: var(--border-radius-sm); + animation: slideDown 0.2s ease-out; +} + +@keyframes slideDown { + from { + opacity: 0; + transform: translateY(-10px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.feed-directory__item-param-form__group { + margin-block-end: var(--spacing-xs); + display: flex; + align-items: center; + gap: var(--spacing-sm); +} + +.feed-directory__item-param-form__label { + font-size: 0.85em; + font-weight: var(--font-weight-normal); + color: var(--color-text); + flex-shrink: 0; + min-width: 80px; +} + +.feed-directory__item-param-form__input { + inline-size: 100%; + padding: var(--spacing-xs) var(--spacing-sm); + border: 1px solid var(--border-color); + border-radius: var(--border-radius-sm); + color: var(--color-text); +} + +.feed-directory__item-param-form__code { + font-size: var(--font-size-sm); + padding: var(--spacing-xs) var(--spacing-sm); + border-radius: var(--border-radius-sm); + background-color: var(--code-block-bg-color); + color: var(--code-block-color); + word-break: break-all; +} diff --git a/astro-migration/public/assets/android-chrome-192x192.png b/jekyll-backup/_site/assets/images/android-chrome-192x192.png similarity index 100% rename from astro-migration/public/assets/android-chrome-192x192.png rename to jekyll-backup/_site/assets/images/android-chrome-192x192.png diff --git a/astro-migration/public/assets/android-chrome-512x512.png b/jekyll-backup/_site/assets/images/android-chrome-512x512.png similarity index 100% rename from astro-migration/public/assets/android-chrome-512x512.png rename to jekyll-backup/_site/assets/images/android-chrome-512x512.png diff --git a/astro-migration/public/assets/apple-touch-icon.png b/jekyll-backup/_site/assets/images/apple-touch-icon.png similarity index 100% rename from astro-migration/public/assets/apple-touch-icon.png rename to jekyll-backup/_site/assets/images/apple-touch-icon.png diff --git a/astro-migration/public/assets/browserconfig.xml b/jekyll-backup/_site/assets/images/browserconfig.xml similarity index 100% rename from astro-migration/public/assets/browserconfig.xml rename to jekyll-backup/_site/assets/images/browserconfig.xml diff --git a/astro-migration/public/assets/favicon-16x16.png b/jekyll-backup/_site/assets/images/favicon-16x16.png similarity index 100% rename from astro-migration/public/assets/favicon-16x16.png rename to jekyll-backup/_site/assets/images/favicon-16x16.png diff --git a/astro-migration/public/assets/favicon-32x32.png b/jekyll-backup/_site/assets/images/favicon-32x32.png similarity index 100% rename from astro-migration/public/assets/favicon-32x32.png rename to jekyll-backup/_site/assets/images/favicon-32x32.png diff --git a/astro-migration/public/assets/favicon.ico b/jekyll-backup/_site/assets/images/favicon.ico similarity index 100% rename from astro-migration/public/assets/favicon.ico rename to jekyll-backup/_site/assets/images/favicon.ico diff --git a/astro-migration/public/assets/icon.png b/jekyll-backup/_site/assets/images/icon.png similarity index 100% rename from astro-migration/public/assets/icon.png rename to jekyll-backup/_site/assets/images/icon.png diff --git a/astro-migration/public/assets/logo.png b/jekyll-backup/_site/assets/images/logo.png similarity index 100% rename from astro-migration/public/assets/logo.png rename to jekyll-backup/_site/assets/images/logo.png diff --git a/astro-migration/public/assets/mstile-144x144.png b/jekyll-backup/_site/assets/images/mstile-144x144.png similarity index 100% rename from astro-migration/public/assets/mstile-144x144.png rename to jekyll-backup/_site/assets/images/mstile-144x144.png diff --git a/astro-migration/public/assets/mstile-150x150.png b/jekyll-backup/_site/assets/images/mstile-150x150.png similarity index 100% rename from astro-migration/public/assets/mstile-150x150.png rename to jekyll-backup/_site/assets/images/mstile-150x150.png diff --git a/astro-migration/public/assets/mstile-310x150.png b/jekyll-backup/_site/assets/images/mstile-310x150.png similarity index 100% rename from astro-migration/public/assets/mstile-310x150.png rename to jekyll-backup/_site/assets/images/mstile-310x150.png diff --git a/astro-migration/public/assets/mstile-310x310.png b/jekyll-backup/_site/assets/images/mstile-310x310.png similarity index 100% rename from astro-migration/public/assets/mstile-310x310.png rename to jekyll-backup/_site/assets/images/mstile-310x310.png diff --git a/astro-migration/public/assets/mstile-70x70.png b/jekyll-backup/_site/assets/images/mstile-70x70.png similarity index 100% rename from astro-migration/public/assets/mstile-70x70.png rename to jekyll-backup/_site/assets/images/mstile-70x70.png diff --git a/astro-migration/public/assets/safari-pinned-tab.svg b/jekyll-backup/_site/assets/images/safari-pinned-tab.svg similarity index 100% rename from astro-migration/public/assets/safari-pinned-tab.svg rename to jekyll-backup/_site/assets/images/safari-pinned-tab.svg diff --git a/astro-migration/public/assets/site.webmanifest b/jekyll-backup/_site/assets/images/site.webmanifest similarity index 100% rename from astro-migration/public/assets/site.webmanifest rename to jekyll-backup/_site/assets/images/site.webmanifest diff --git a/jekyll-backup/_site/assets/js/feed-directory/index.js b/jekyll-backup/_site/assets/js/feed-directory/index.js new file mode 100644 index 00000000..6f944786 --- /dev/null +++ b/jekyll-backup/_site/assets/js/feed-directory/index.js @@ -0,0 +1,124 @@ +document.addEventListener("alpine:init", () => { + Alpine.data("feedDirectory", () => ({ + instanceUrl: atob("aHR0cHM6Ly8xLmgyci53b3JrZXJzLmRldi8="), + searchQuery: "", + configs: window.feedDirectoryData, + + fuzzyMatch(text, query) { + const lowerText = text.toLowerCase(); + const lowerQuery = query.toLowerCase(); + let textIndex = 0; + let queryIndex = 0; + + while (queryIndex < lowerQuery.length && textIndex < lowerText.length) { + if (lowerQuery[queryIndex] === lowerText[textIndex]) { + queryIndex++; + } + textIndex++; + } + return queryIndex === lowerQuery.length; + }, + + filterConfig(configName) { + if (!this.searchQuery) { + return true; + } + return this.fuzzyMatch(configName, this.searchQuery); + }, + + getFeedUrl(config, params = {}) { + let url = this.instanceUrl.endsWith("/") + ? this.instanceUrl + : `${this.instanceUrl}/`; + url += `${config.domain}/${config.name}.rss`; + + const queryParams = new URLSearchParams(); + + if (config.url_parameters) { + for (const key of Object.keys(config.url_parameters)) { + if (params[key]) { + queryParams.append(key, params[key]); + } + } + } + + const queryString = queryParams.toString(); + if (queryString) { + url += `?${queryString}`; + } + + return url; + }, + })); + + Alpine.data("feedItemData", (index) => ({ + config: window.feedDirectoryData[index], + params: {}, + pathPreview: "", + showParamsForm: false, + toggleParamsForm() { + this.showParamsForm = !this.showParamsForm; + }, + dynamicParamsInterpolate(string, params) { + return string.replace(/%<(\w+)>s/g, (_, key) => { + if (!(key in params)) { + throw new Error(`Missing value for placeholder: ${key}`); + } + return params[key]; + }); + }, + + initializeDefaultParameters() { + Object.entries(this.config.url_parameters).forEach(([key, fallback]) => { + const inputId = `${this.config.domain}-${this.config.name}-${key}`; + const input = document.getElementById(inputId); + + if (input && this.config.default_parameters[key]) { + // Set the actual value in the input field + input.value = this.config.default_parameters[key]; + // Also set placeholder as fallback + input.placeholder = this.config.default_parameters[key]; + } + }); + + // Now set params with default values (this will trigger the watcher) + this.params = { ...this.config.default_parameters }; + }, + + init() { + if (!this.config) return; + + // Initialize params first + this.params = {}; + + // Set default values in input fields after DOM is ready + if (this.config.default_parameters && !this.config.valid_channel_url) { + this.$nextTick(() => { + this.initializeDefaultParameters(); + }); + } + + if (!this.config.valid_channel_url) { + this.$watch("params", (value) => { + let params = {}; + + Object.entries(this.config.url_parameters).forEach( + ([key, fallback]) => { + const val = value[key]; + params[key] = val || `{${fallback}}`; + }, + ); + + try { + this.pathPreview = this.dynamicParamsInterpolate( + this.config.channel.url, + params, + ); + } catch (error) { + console.error("Error interpolating parameters:", error); + } + }); + } + }, + })); +}); diff --git a/jekyll-backup/_site/assets/js/just-the-docs.js b/jekyll-backup/_site/assets/js/just-the-docs.js new file mode 100644 index 00000000..fa70ae50 --- /dev/null +++ b/jekyll-backup/_site/assets/js/just-the-docs.js @@ -0,0 +1,574 @@ +(function (jtd, undefined) { + +// Event handling + +jtd.addEvent = function(el, type, handler) { + if (el.attachEvent) el.attachEvent('on'+type, handler); else el.addEventListener(type, handler); +} +jtd.removeEvent = function(el, type, handler) { + if (el.detachEvent) el.detachEvent('on'+type, handler); else el.removeEventListener(type, handler); +} +jtd.onReady = function(ready) { + // in case the document is already rendered + if (document.readyState!='loading') ready(); + // modern browsers + else if (document.addEventListener) document.addEventListener('DOMContentLoaded', ready); + // IE <= 8 + else document.attachEvent('onreadystatechange', function(){ + if (document.readyState=='complete') ready(); + }); +} + +// Show/hide mobile menu + +function initNav() { + jtd.addEvent(document, 'click', function(e){ + var target = e.target; + while (target && !(target.classList && target.classList.contains('nav-list-expander'))) { + target = target.parentNode; + } + if (target) { + e.preventDefault(); + target.ariaPressed = target.parentNode.classList.toggle('active'); + } + }); + + const siteNav = document.getElementById('site-nav'); + const mainHeader = document.getElementById('main-header'); + const menuButton = document.getElementById('menu-button'); + + disableHeadStyleSheets(); + + jtd.addEvent(menuButton, 'click', function(e){ + e.preventDefault(); + + if (menuButton.classList.toggle('nav-open')) { + siteNav.classList.add('nav-open'); + mainHeader.classList.add('nav-open'); + menuButton.ariaPressed = true; + } else { + siteNav.classList.remove('nav-open'); + mainHeader.classList.remove('nav-open'); + menuButton.ariaPressed = false; + } + }); +} + +// The element is assumed to include the following stylesheets: +// - a to /assets/css/just-the-docs-head-nav.css, +// with id 'jtd-head-nav-stylesheet' +// - a + + + + + + + + + + + + + + + + +Feed Directory | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + +
    +
    + +
    +

    + + + Welcome to the Feed Directory! + + +

    + +

    + This directory contains a list of pre-built configurations to create RSS + feeds for various websites. +

    +
    + +
    +

    + + + Instance URL + + +

    + +

    + An "Instance URL" is the address of a running + html2rss-web application. You can use a public instance, but we + encourage you to host your own. +

    + + πŸš€ Host Your Own Instance (and share it!) + +

    + Find more public instances on the + + community-run wiki. +

    +
    +
    + + + + + +
    +
    +
    + Instance URL + +
    + +
    + Search + +
    +
    +
    + +
    +
    + + + +
    + + +
    + +
    +
    + +
    +

    + + + + + https://apnews.com/%<section>s + + + + + +

    + + + + +
    + +
    +
    + +
    + + +
    + +
    + +
    +
    +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://avherald.com/ + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + https://www.bbc.co.uk/programmes/%<id>s/episodes/player + + + + + +

    + + + + +
    + +
    +
    + +
    + + +
    + +
    + +
    +
    +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://www.bbc.com/mundo + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + https://blog.mondediplo.net/%<blog>s + + + + + +

    + + + + +
    + +
    +
    + +
    + + +
    + +
    + +
    +
    +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://www.canarianweekly.com/ + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + + + +
    + + +
    + +
    +
    + + + +
    + + +
    + +
    +
    + +
    +

    + + + + + https://www.cnet.com/%<section>s/%<sub>s/ + + + + + +

    + + + + +
    + +
    +
    + +
    + + +
    + +
    + + +
    + +
    + +
    +
    +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://www.computerbase.de + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://cutle.fish/ + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://deraktionaer.de/ + + + + + +

    + + +
    + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://www.dsw-info.de/presse + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://www.espn.com/f1/ + + + + + +

    + + +
    + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + +
    +
    + +
    +

    + + + + + https://github.com/%<username>s/%<repository>s/releases + + + + + +

    + + + + +
    + +
    +
    + +
    + + +
    + +
    + + +
    + +
    + +
    +
    +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://www.iaapa.org/news + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + https://www.imdb.com/user/%<user_id>s/ratings + + + + + +

    + + + + +
    + +
    +
    + +
    + + +
    + +
    + +
    +
    +
    + +
    + + +
    + + + +
    +
    + +
    +

    + + + + + + https://kinocheck.de/filmstarts + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://www.newyorker.com/magazine + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://www.nomanssky.com/news/ + + + + + +

    + + +
    + +
    + + +
    + + + +
    +
    + +
    +

    + + + + + + https://phys.org/weekly-news/ + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://rbb24.de/ + + + + + +

    + + +
    + +
    + + +
    + +
    + + + +
    + +
    + + + +
    + +
    +
    + +
    +

    + + + + + + https://sebastianvettel.de/news/ + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + + + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://solarthermalworld.org/news + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://www.spektrum.de/ + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + https://www.spiegel.de/impressum/autor-%<id>s + + + + + +

    + + + + +
    + +
    +
    + +
    + + +
    + +
    + +
    +
    +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://stackoverflow.com/questions + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://www.steuerzahler.de/news + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://www.stripes.com/ + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + + + +
    + + +
    + +
    +
    + + + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://www.teneriffa-news.com/news + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + +
    +

    + + + + + + https://www.test.de/archiv/ + + + + + +

    + + +
    + +
    + + +
    + +
    +
    + + + +
    + + +
    + +
    +
    + + + +
    + + +
    + + + +
    +
    + +
    +

    + + + + + https://www.webentwickler-jobs.de/in/%<region>s + + + + + +

    + + + + +
    + +
    +
    + +
    + + +
    + +
    + +
    +
    +
    + +
    + + +
    + +
    +
    +
    + +
    +

    + + + Contribute to the Directory + + +

    + +

    + The feed configurations in this directory are community-driven. If you've + created a new feed configuration, we encourage you to share it with the + community. +

    + + Contribute on GitHub + +
    + + + + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/feed.xml b/jekyll-backup/_site/feed.xml new file mode 100644 index 00000000..e480d8f4 --- /dev/null +++ b/jekyll-backup/_site/feed.xml @@ -0,0 +1,4 @@ +Jekyll2025-09-14T18:22:41+02:00http://localhost:4000/feed.xmlhtml2rsshtml2rss brings back RSS. It's an open source project with decentralised +instances. These instances generate RSS feeds for websites which do not offer +them. + \ No newline at end of file diff --git a/jekyll-backup/_site/get-involved/contributing.html b/jekyll-backup/_site/get-involved/contributing.html new file mode 100644 index 00000000..4f1eace5 --- /dev/null +++ b/jekyll-backup/_site/get-involved/contributing.html @@ -0,0 +1,596 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Contributing | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Contributing to html2rss + + +

    + + +

    We’re thrilled that you’re interested in contributing to html2rss! There are many ways to get involved, and we welcome contributions of all kinds.

    +
    +

    + + + Code of Conduct + + +

    + + +

    Before you begin, please read our Code of Conduct. We expect all contributors to adhere to this code to ensure that our community is a welcoming and inclusive space for everyone.

    +
    +

    + + + How to Contribute + + +

    + + +

    Here are some of the ways you can contribute to the html2rss project:

    +

    + + + 1. Create a Feed Config + + +

    + + +

    Are you missing an RSS feed for a website? You can create your own feed config and share it with the community. It’s a great way to get started with html2rss and help other users.

    + +

    The html2rss β€œecosystem” is a community project. We welcome contributions of all kinds. This includes new feed configs, suggesting and implementing features, providing bug fixes, documentation improvements, and any other kind of help.

    + +

    Which way you choose to add a new feed config is up to you. You can do it manually. Please submit a pull request!

    + +

    After you’re done, you can test your feed config by running bundle exec html2rss feed lib/html2rss/configs/<domainname.tld>/<path>.yml.

    +

    + + + Preferred way: manually + + +

    + + +
      +
    1. Fork the html2rss-config git repository and run bundle install (you need to have Ruby >= 3.3 installed).
    2. +
    3. Create a new folder and file following this convention: lib/html2rss/configs/<domainname.tld>/<path>.yml +
    4. +
    5. Create the feed config in the <path>.yml file.
    6. +
    7. Add this spec file in the spec/html2rss/configs/<domainname.tld>/<path>_spec.rb file.
    8. +
    + +
      RSpec.describe '<domainname.tld>/<path>' do
    +    include_examples 'config.yml', described_class
    +  end
    +
    +

    + + + 2. Improve this Website + + +

    + + +

    This website is built with Jekyll and is hosted on GitHub Pages. If you have any ideas for improving the documentation or the design, we’d love to hear from you.

    + +

    Find the source code on GitHub

    +

    + + + 3. Host a Public Instance + + +

    + + +

    The html2rss-web project is a web application that allows you to create and manage your RSS feeds through a user-friendly interface. You can host your own public instance to help other users create feeds.

    + +

    Learn how to host a public instance

    +

    + + + 4. Improve the html2rss Gem + + +

    + + +

    Are you a Ruby developer? You can help us improve the core html2rss gem. Whether you’re fixing a bug, adding a new feature, or improving the documentation, your contributions are welcome.

    + +

    Check out the documentation for the html2rss Gem

    +

    + + + 5. Report Bugs & Discuss Features + + +

    + + +

    If you’ve found a bug, please open an issue on the appropriate GitHub repository. For new feature ideas, we encourage you to start a discussion first.

    + +

    Report Bugs:

    + + + +

    Discuss Features:

    + + +
    + +

    We appreciate your interest in contributing to html2rss!

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/get-involved/discussions.html b/jekyll-backup/_site/get-involved/discussions.html new file mode 100644 index 00000000..b4f7da6d --- /dev/null +++ b/jekyll-backup/_site/get-involved/discussions.html @@ -0,0 +1,478 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Join Community Discussions | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Join Community Discussions + + +

    + + +

    Connect with other users and contributors by joining our community discussions on GitHub. This is a vibrant space for general questions, sharing tips, discussing ideas, and getting feedback from the community.

    + +

    πŸ’¬ Join Discussions on GitHub

    + +

    We encourage you to participate, ask questions, and share your insights!

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/get-involved/index.html b/jekyll-backup/_site/get-involved/index.html new file mode 100644 index 00000000..14669ebe --- /dev/null +++ b/jekyll-backup/_site/get-involved/index.html @@ -0,0 +1,500 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Get Involved | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + +
    +
    + +

    + + + Get Involved + + +

    + + + + +

    Engage with the html2rss project. Contribute and connect with the community.

    + + + + + + +
    +

    Table of contents

    + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/get-involved/issues-and-features.html b/jekyll-backup/_site/get-involved/issues-and-features.html new file mode 100644 index 00000000..90d56891 --- /dev/null +++ b/jekyll-backup/_site/get-involved/issues-and-features.html @@ -0,0 +1,513 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Report Bugs & Discuss Features | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Report Bugs & Discuss Features + + +

    + + +

    We appreciate your help in improving html2rss! Please follow these guidelines when reporting issues or suggesting new features.

    +
    +

    + + + Reporting Bugs + + +

    + + +

    If you’ve found a bug, please open an issue on the appropriate GitHub repository. This helps us track and resolve problems efficiently.

    + +

    ➑️ Open an Issue on GitHub

    + +

    When opening a bug report, please provide as much detail as possible, including:

    + +
      +
    • The html2rss version you are using.
    • +
    • Your operating system.
    • +
    • Your configuration file (if applicable).
    • +
    • The target URL you are trying to scrape.
    • +
    • Any error messages you receive.
    • +
    • Steps to reproduce the issue.
    • +
    +
    +

    + + + Discussing New Features + + +

    + + +

    For new feature ideas or enhancements, we encourage you to start a discussion on GitHub Discussions first. This allows for community input, refinement of the idea, and helps us prioritize development.

    + +

    πŸ’¬ Start a New Discussion on GitHub

    + +

    If the discussion leads to a concrete proposal, a formal feature request issue can then be opened.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/get-involved/sponsoring.html b/jekyll-backup/_site/get-involved/sponsoring.html new file mode 100644 index 00000000..69eaef90 --- /dev/null +++ b/jekyll-backup/_site/get-involved/sponsoring.html @@ -0,0 +1,501 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Sponsoring | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Sponsoring html2rss + + +

    + + +

    html2rss is an open-source project, and its development is made possible by the support of our community. If you find html2rss useful, please consider sponsoring the project.

    +

    + + + Why Sponsor? + + +

    + + +
      +
    • +Ensure the project’s longevity: Your sponsorship helps to ensure that the project remains actively maintained and developed.
    • +
    • +Support new features: Your contribution will help to fund the development of new features and improvements.
    • +
    • +Show your appreciation: Sponsoring is a great way to show your appreciation for the project and the work that goes into it.
    • +
    +

    + + + How to Sponsor + + +

    + + +

    You can sponsor the project through GitHub Sponsors.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/html2rss-configs/index.html b/jekyll-backup/_site/html2rss-configs/index.html new file mode 100644 index 00000000..a0b64a6a --- /dev/null +++ b/jekyll-backup/_site/html2rss-configs/index.html @@ -0,0 +1,717 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +html2rss-configs | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + +
    +
    + +

    + + + Creating Custom RSS Feeds + + +

    + + +

    Want to create RSS feeds for websites that don’t offer them? This guide shows you how to write simple configuration files that tell the html2rss engine exactly what content to extract.

    + +

    Don’t worry if you’re not technical - we’ll explain everything step by step!

    + +

    You can see examples of what others have created in the Feed Directory.

    +
    +

    + + + How It Works + + +

    + + +

    Think of the html2rss engine as a smart assistant that needs instructions. You give it a simple β€œrecipe” (called a config file) that tells it:

    + +
      +
    1. +Which website to look at
    2. +
    3. +What content to find (articles, posts, etc.)
    4. +
    5. +How to organize that content into an RSS feed
    6. +
    + +

    The recipe is written in YAML - a simple format that’s easy to read and write. Both html2rss-web and the html2rss Ruby gem use these same configuration files.

    +

    + + + The channel Block + + +

    + + +

    This tells the html2rss engine basic information about your feed - like giving it a name and telling it which website to look at.

    + +

    Example:

    + +
    channel:
    +  url: https://example.com/blog
    +  title: My Awesome Blog
    +
    + +

    This says: β€œLook at this website and call the feed β€˜My Awesome Blog’”

    +

    + + + The selectors Block + + +

    + + +

    This is where you tell the html2rss engine exactly what to find on the page. You use CSS selectors (like you might use in web design) to point to specific parts of the webpage.

    + +

    Example:

    + +
    selectors:
    +  items:
    +    selector: "article.post"
    +  title:
    +    selector: "h2 a"
    +  link:
    +    selector: "h2 a"
    +
    + +

    This says: β€œFind each article, get the title from the h2 link, and get the link from the same h2 link”

    + +

    Need more details? Check our complete guide to selectors for all the options.

    +
    +

    + + + Tutorial: Your First Feed + + +

    + + +

    Let’s create a simple RSS feed step by step. We’ll use a basic blog as our example.

    +

    + + + Step 1: Look at the Website + + +

    + + +

    First, visit the website you want to create a feed for. Right-click and β€œView Page Source” to see the HTML structure. Look for patterns like this:

    + +
    <div class="posts">
    +  <article class="post">
    +    <h2><a href="/post/1">First Post</a></h2>
    +    <p>This is the summary of the first post.</p>
    +  </article>
    +  <article class="post">
    +    <h2><a href="/post/2">Second Post</a></h2>
    +    <p>This is the summary of the second post.</p>
    +  </article>
    +</div>
    +
    + +

    What we see: Each article is wrapped in <article class="post">, titles are in <h2><a> tags, and descriptions are in <p> tags.

    +

    + + + Step 2: Create Your Config File + + +

    + + +

    Create a new text file and save it as my-blog.yml (or any name you like). Add this basic information:

    + +
    # my-blog.yml
    +channel:
    +  url: https://example.com/blog
    +  title: My Awesome Blog
    +  description: The latest news from my awesome blog.
    +
    + +

    This tells html2rss: β€œLook at this website and call the feed β€˜My Awesome Blog’”

    +

    + + + Step 3: Tell html2rss What to Find + + +

    + + +

    Now add the selectors that tell html2rss exactly what content to extract:

    + +
    # my-blog.yml
    +selectors:
    +  items:
    +    selector: "article.post"
    +  title:
    +    selector: "h2 a"
    +  link:
    +    selector: "h2 a"
    +  description:
    +    selector: "p"
    +
    + +

    What this means:

    + +
      +
    • +items: "article.post" = β€œFind each article with class β€˜post’”
    • +
    • +title: "h2 a" = β€œGet the title from the h2 link”
    • +
    • +link: "h2 a" = β€œGet the link from the same h2 link”
    • +
    • +description: "p" = β€œGet the description from the paragraph”
    • +
    +
    +

    + + + Advanced Techniques + + +

    + +

    + + + Dynamic Feeds with Parameters + + +

    + + +

    Use the parameters block to create flexible configs. This is useful for feeds based on search terms, categories, or regions.

    + +
    # news-search.yml
    +parameters:
    +  query:
    +    type: string
    +    default: "technology"
    +
    +channel:
    +  url: "https://news.example.com/search?q={query}"
    +  title: "News results for '{query}'"
    +
    +selectors:
    +  items:
    +    selector: ".article"
    +  title:
    +    selector: "h2 a"
    +  url:
    +    selector: "h2 a"
    +    extractor: "href"
    +
    +
    +

    + + + Contributing Your Config + + +

    + + +

    Have you created a config that others might find useful? We strongly encourage you to contribute it to the project! By sharing your config, you make it available to all users of the public html2rss-web service and the Feed Directory.

    + +

    To contribute, please create a pull request to the html2rss-configs repository.

    +
    +

    + + + Usage and Integration + + +

    + +

    + + + With html2rss-web + + +

    + + +

    Once your pull request is reviewed and merged, your config will become available on the public html2rss-web instance. You can then access it at the path /<domainname.tld/path>.rss.

    +

    + + + Programmatic Usage in Ruby + + +

    + + +

    You can also use html2rss-configs programmatically in your Ruby applications.

    + +

    Add this to your Gemfile:

    + +
    gem 'html2rss-configs', git: 'https://github.com/html2rss/html2rss-configs.git'
    +
    + +

    And use it in your code:

    + +
    require 'html2rss/configs'
    +
    +config = Html2rss::Configs.find_by_name('domainname.tld/whatever')
    +rss = Html2rss.feed(config)
    +
    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/index.html b/jekyll-backup/_site/index.html new file mode 100644 index 00000000..bc899871 --- /dev/null +++ b/jekyll-backup/_site/index.html @@ -0,0 +1,517 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Home | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + +
    +
    + +

    + + + Turn Any Website Into an RSS Feed + + +

    + + +

    Ever wished you could follow your favorite websites like a social media feed? The html2rss project makes it possible by creating RSS feeds for any website - even ones that don’t offer them.

    + +

    πŸš€ Get Started with html2rss-web

    +
    +

    + + + What is RSS? + + +

    + + +

    RSS (Really Simple Syndication) lets you follow websites in your favorite feed reader. Instead of checking multiple websites daily, you get all updates in one place - like a personalized news feed.

    +

    + + + The html2rss Project + + +

    + + +

    The html2rss project provides two main ways to create RSS feeds:

    + +
      +
    • +html2rss-web - A user-friendly web application (recommended for most users)
    • +
    • +html2rss - A Ruby gem for developers and advanced users
    • +
    + +

    Both use the same powerful engine to extract content from websites and convert it into RSS feeds.

    +
    +

    + + + Choose Your Path + + +

    + + +
      +
    • +html2rss-web: Start here! Easy-to-use web application. No technical knowledge required.
    • +
    • +Feed Directory: Browse ready-made feeds for popular websites
    • +
    • +html2rss (Ruby Gem): For developers who want to create custom configurations
    • +
    +
    + +

    Ready to get started? Check out our html2rss-web getting started guide or browse existing feeds to see what’s possible.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/robots.txt b/jekyll-backup/_site/robots.txt new file mode 100644 index 00000000..d2970640 --- /dev/null +++ b/jekyll-backup/_site/robots.txt @@ -0,0 +1 @@ +Sitemap: http://localhost:4000/sitemap.xml diff --git a/jekyll-backup/_site/ruby-gem/how-to/advanced-content-extraction.html b/jekyll-backup/_site/ruby-gem/how-to/advanced-content-extraction.html new file mode 100644 index 00000000..fde7488e --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/how-to/advanced-content-extraction.html @@ -0,0 +1,498 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Advanced Content Extraction | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Advanced Content Extraction with Selectors + + +

    + + +

    While basic selectors are straightforward, you can achieve very precise content extraction by combining selectors with different extractors and post-processors.

    +

    + + + Extractors + + +

    + + +

    Learn how to extract specific attributes (like src for images) or static values. See Extractors.

    +

    + + + Post Processors + + +

    + + +

    Manipulate extracted text, sanitize HTML, convert Markdown, or apply custom logic. See Post Processors.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/how-to/custom-http-requests.html b/jekyll-backup/_site/ruby-gem/how-to/custom-http-requests.html new file mode 100644 index 00000000..e0ae41e0 --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/how-to/custom-http-requests.html @@ -0,0 +1,488 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Custom HTTP Requests | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Customizing HTTP Requests + + +

    + + +

    You might need to send custom HTTP headers (e.g., User-Agent, Authorization) to access certain content or interact with APIs.

    +

    + + + Solution + + +

    + + +

    Configure custom HTTP headers in your feed configuration.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/how-to/dynamic-parameters.html b/jekyll-backup/_site/ruby-gem/how-to/dynamic-parameters.html new file mode 100644 index 00000000..501f16bc --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/how-to/dynamic-parameters.html @@ -0,0 +1,514 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Dynamic Parameters | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Dynamic Parameters in URLs and Headers + + +

    + + +

    For websites with similar structures but varying content based on a parameter in the URL or headers, you can use dynamic parameters.

    +

    + + + Solution + + +

    + + +

    You can add dynamic parameters to the channel and headers values. This is useful for creating feeds from structurally similar pages with different URLs.

    + +
    channel:
    +  url: "http://domainname.tld/whatever/%<id>s.html"
    +headers:
    +  X-Something: "%<foo>s"
    +
    + +

    You can then pass the values for these parameters when you run html2rss:

    + +
    html2rss feed the_feed_config.yml --params id:42 foo:bar
    +
    +
    +

    + + + Explanation + + +

    + + +
      +
    • The %<param>s syntax in the URL and headers is a placeholder for dynamic parameters.
    • +
    • You provide the actual values for these parameters at runtime using the --params option.
    • +
    • This allows you to reuse the same feed configuration for multiple similar pages or APIs.
    • +
    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/how-to/handling-dynamic-content.html b/jekyll-backup/_site/ruby-gem/how-to/handling-dynamic-content.html new file mode 100644 index 00000000..6003ea51 --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/how-to/handling-dynamic-content.html @@ -0,0 +1,488 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Handling Dynamic Content | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Handling Dynamic Content and JavaScript + + +

    + + +

    Some websites load their content dynamically using JavaScript. The default html2rss strategy might not see this content.

    +

    + + + Solution + + +

    + + +

    Use the browserless strategy to render JavaScript-heavy websites with a headless browser.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/how-to/index.html b/jekyll-backup/_site/ruby-gem/how-to/index.html new file mode 100644 index 00000000..fcf1579b --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/how-to/index.html @@ -0,0 +1,507 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +How-To Guides | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + How-To Guides + + +

    + + +

    This section provides practical examples and solutions for common tasks when using the html2rss gem.

    + + + + +
    +

    Table of contents

    + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/how-to/managing-feed-configs.html b/jekyll-backup/_site/ruby-gem/how-to/managing-feed-configs.html new file mode 100644 index 00000000..c6fb1a40 --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/how-to/managing-feed-configs.html @@ -0,0 +1,551 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Managing Feed Configs | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Managing Feed Configurations with YAML + + +

    + + +

    For easier management, especially when using the CLI or html2rss-web, you can store your feed configurations in a YAML file.

    +

    + + + Global and Feed-Specific Configurations + + +

    + + +

    You can define global settings that apply to all feeds, and then define individual feed configurations under the feeds key.

    + +
    # Global settings
    +headers:
    +  "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1"
    +  "Accept": "text/html"
    +
    +# Feed-specific settings
    +feeds:
    +  my-first-feed:
    +    channel:
    +      url: "https://example.com/blog"
    +    selectors:
    +      # ...
    +  my-second-feed:
    +    channel:
    +      url: "https://example.com/news"
    +    selectors:
    +      # ...
    +
    +

    + + + Building Feeds from a YAML File + + +

    + +

    + + + Ruby + + +

    + + +
    require 'html2rss'
    +
    +# Build a specific feed from the YAML file
    +my_feed_config = Html2rss.config_from_yaml_file('feeds.yml', 'my-first-feed')
    +rss = Html2rss.feed(my_feed_config)
    +puts rss
    +
    +# If the YAML file contains only one feed, you can omit the feed name
    +single_feed_config = Html2rss.config_from_yaml_file('single.yml')
    +rss = Html2rss.feed(single_feed_config)
    +puts rss
    +
    +

    + + + Command Line + + +

    + + +
    # Build a specific feed
    +html2rss feed feeds.yml my-first-feed
    +
    +# Build a feed from a single-feed YAML file
    +html2rss feed single.yml
    +
    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/how-to/scraping-json.html b/jekyll-backup/_site/ruby-gem/how-to/scraping-json.html new file mode 100644 index 00000000..3b2d7898 --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/how-to/scraping-json.html @@ -0,0 +1,595 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Scraping JSON Responses | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Scraping JSON Responses + + +

    + + +

    When a website returns a JSON response (i.e., with a Content-Type of application/json), html2rss converts the JSON to XML, allowing you to use CSS selectors for data extraction.

    + +
    +

    [!NOTE] +The JSON response must be an Array or a Hash for the conversion to work.

    +
    +

    + + + JSON to XML Conversion Examples + + +

    + +

    + + + JSON Object + + +

    + + +

    A JSON object like this:

    + +
    {
    +  "data": [{ "title": "Headline", "url": "https://example.com" }]
    +}
    +
    + +

    is converted to this XML structure:

    + +
    <object>
    +  <data>
    +    <array>
    +      <object>
    +        <title>Headline</title>
    +        <url>https://example.com</url>
    +      </object>
    +    </array>
    +  </data>
    +</object>
    +
    + +

    You would use array > object as your items selector.

    +

    + + + JSON Array + + +

    + + +

    A JSON array like this:

    + +
    [{ "title": "Headline", "url": "https://example.com" }]
    +
    + +

    is converted to this XML structure:

    + +
    <array>
    +  <object>
    +    <title>Headline</title>
    +    <url>https://example.com</url>
    +  </object>
    +</array>
    +
    + +

    You would use array > object as your items selector.

    +

    + + + Configuration Examples + + +

    + +

    + + + Ruby + + +

    + + +
    Html2rss.feed(
    +  headers: {
    +    Accept: 'application/json'
    +  },
    +  channel: {
    +    url: 'http://domainname.tld/whatever.json'
    +  },
    +  selectors: {
    +    title: { selector: 'foo' }
    +  }
    +)
    +
    +

    + + + YAML + + +

    + + +
    headers:
    +  Accept: application/json
    +channel:
    +  url: "http://domainname.tld/whatever.json"
    +selectors:
    +  items:
    +    selector: "array > object"
    +  title:
    +    selector: "foo"
    +
    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/how-to/styling-rss-feed.html b/jekyll-backup/_site/ruby-gem/how-to/styling-rss-feed.html new file mode 100644 index 00000000..809ed3cd --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/how-to/styling-rss-feed.html @@ -0,0 +1,488 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Styling Your RSS Feed | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Styling Your RSS Feed + + +

    + + +

    You can make your RSS feed look good in a web browser by attaching stylesheets.

    +

    + + + Solution + + +

    + + +

    Add stylesheets to your feed configuration.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/index.html b/jekyll-backup/_site/ruby-gem/index.html new file mode 100644 index 00000000..1dedb6db --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/index.html @@ -0,0 +1,512 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Ruby Gem | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + +
    +
    + +

    + + + The html2rss Ruby Gem + + +

    + + +

    This section provides comprehensive documentation for the html2rss Ruby gem.

    +

    + + + Getting Started + + +

    + + +

    If you are new to html2rss, we recommend starting with the tutorials.

    +

    + + + Documentation Sections + + +

    + + +
      +
    • +Tutorials: Step-by-step guides to help you get started with html2rss.
    • +
    • +How-To Guides: Practical examples and solutions for common tasks.
    • +
    • +Reference: Detailed information on configuration options.
    • +
    + + + + +
    +

    Table of contents

    + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/installation.html b/jekyll-backup/_site/ruby-gem/installation.html new file mode 100644 index 00000000..f65910d3 --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/installation.html @@ -0,0 +1,496 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Installation | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Installation + + +

    + + +

    This guide will walk you through the process of installing html2rss on your system. html2rss can be installed in several ways, depending on your preferred method and environment.

    +
    +

    + + + Prerequisites + + +

    + + +
      +
    • +Ruby: html2rss is built with Ruby. Ensure you have Ruby installed (version 3.2 or higher required). You can check your Ruby version by running ruby -v in your terminal. If you don’t have Ruby, visit ruby-lang.org for installation instructions.
    • +
    • +Bundler (Recommended): Bundler is a Ruby gem that manages your application’s dependencies. It’s highly recommended for a smooth installation. Install it with gem install bundler.
    • +
    +
    + + + +

    The simplest way to get html2rss for command-line usage is to install it as a Ruby gem.

    + +
    gem install html2rss
    +
    + +

    After installation, you should be able to run html2rss --version to confirm it’s working.

    +
    +

    + + + Method 2: Using a Gemfile (For Ruby Projects) + + +

    + + +

    If you’re integrating html2rss into an existing Ruby project, add it to your Gemfile:

    + +
    # Gemfile
    +gem 'html2rss'
    +
    + +

    Then, run bundle install in your project directory.

    +
    +

    + + + Method 3: GitHub Codespaces (For Cloud Development) + + +

    + + +

    For a quick start without local setup, you can develop html2rss directly in your browser using GitHub Codespaces:

    + +

    Open in GitHub Codespaces

    + +

    The Codespace comes pre-configured with Ruby 3.4, all dependencies, and VS Code extensions ready to go!

    +
    +

    + + + Verifying Installation + + +

    + + +

    To ensure html2rss is installed correctly, open your terminal and run:

    + +
    html2rss --version
    +
    + +

    You should see the installed version number. If you encounter any issues, please refer to the Troubleshooting Guide.

    +
    +

    + + + Next Steps + + +

    + + +

    Now that html2rss is installed, let’s create your first RSS feed!

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/reference/auto-source.html b/jekyll-backup/_site/ruby-gem/reference/auto-source.html new file mode 100644 index 00000000..c25dcadd --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/reference/auto-source.html @@ -0,0 +1,552 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Auto Source | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Auto Source + + +

    + + +

    The auto_source scraper automatically finds items on a page, so you don’t have to specify CSS selectors.

    + +

    To enable it, add auto_source: {} to your configuration:

    + +
    channel:
    +  url: https://example.com
    +auto_source: {}
    +
    +

    + + + How It Works + + +

    + + +

    auto_source uses the following strategies to find content:

    + +
      +
    1. +schema: Parses <script type="json/ld"> tags containing structured data (e.g., Schema.org).
    2. +
    3. +semantic_html: Searches for semantic HTML5 tags like <article>, <main>, and <section>.
    4. +
    5. +html: Analyzes the HTML structure to find frequently occurring selectors that are likely to contain the main content.
    6. +
    +

    + + + Fine-Tuning + + +

    + + +

    You can customize auto_source to improve its accuracy.

    +

    + + + Scraper Options + + +

    + + +

    Enable or disable specific scrapers and adjust their settings:

    + +
    auto_source:
    +  scraper:
    +    schema:
    +      enabled: false # default: true
    +    semantic_html:
    +      enabled: false # default: true
    +    html:
    +      enabled: true
    +      minimum_selector_frequency: 3 # default: 2
    +      use_top_selectors: 3 # default: 5
    +
    +

    + + + Cleanup Options + + +

    + + +

    Remove unwanted items from the results:

    + +
    auto_source:
    +  cleanup:
    +    keep_different_domain: false # default: true
    +    min_words_title: 4 # default: 3
    +
    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/reference/channel.html b/jekyll-backup/_site/ruby-gem/reference/channel.html new file mode 100644 index 00000000..e0d7f62b --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/reference/channel.html @@ -0,0 +1,543 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Channel | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Channel + + +

    + + +

    The channel configuration block defines the metadata for your RSS feed.

    + +
    channel:
    +  url: https://example.com
    +  title: "My Custom Feed"
    +  description: "A feed of the latest news from Example.com"
    +  author: "jane.doe@example.com (Jane Doe)"
    +  ttl: 60
    +  language: "en-us"
    +  time_zone: "Europe/Berlin"
    +
    +

    + + + Options + + +

    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AttributeRequiredDescription
    urlRequiredThe URL of the website to scrape.
    titleOptionalThe title of the RSS feed. Defaults to the website’s title.
    descriptionOptionalA description for the RSS feed. Defaults to the website’s meta description.
    authorOptionalThe author of the feed, in the format email (Name).
    ttlOptionalThe β€œtime to live” for the feed in minutes. Defaults to the max-age from the response headers, or 360.
    languageOptionalThe language of the feed. Defaults to the lang attribute of the <html> tag.
    time_zoneOptionalThe time zone for parsing dates. See the list of tz database time zones.
    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/reference/cli-reference.html b/jekyll-backup/_site/ruby-gem/reference/cli-reference.html new file mode 100644 index 00000000..b6f4803f --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/reference/cli-reference.html @@ -0,0 +1,557 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CLI Reference | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + CLI Reference + + +

    + + +

    This section provides a reference for the html2rss command-line interface (CLI).

    + +

    For detailed documentation on the Ruby API, please refer to the official YARD documentation.

    + +

    πŸ“š View the Ruby API Docs on rubydoc.info

    +
    +

    + + + Command-Line Interface (CLI) + + +

    + + +

    The html2rss executable provides the primary way to interact with the tool from your terminal.

    +

    + + + html2rss auto <URL> + + +

    + + +

    Automatically generates an RSS feed from the provided URL.

    + +
      +
    • +<URL> (Required): The URL of the website to generate a feed from.
    • +
    + +

    Example:

    + +
    html2rss auto https://unmatchedstyle.com/
    +
    +

    + + + html2rss feed <CONFIG_FILE> + + +

    + + +

    Generates an RSS feed based on the provided YAML configuration file.

    + +
      +
    • +<CONFIG_FILE> (Required): Path to your YAML configuration file.
    • +
    + +

    Examples:

    + +
    # Generate and print to console
    +html2rss feed my_feed.yml
    +
    +# Generate and save to an XML file
    +html2rss feed my_feed.yml > my_feed.xml
    +
    +

    + + + html2rss help + + +

    + + +

    Displays the help message with available commands and options.

    +

    + + + html2rss --version + + +

    + + +

    Displays the currently installed version of html2rss.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/reference/headers.html b/jekyll-backup/_site/ruby-gem/reference/headers.html new file mode 100644 index 00000000..8833b72b --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/reference/headers.html @@ -0,0 +1,504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Headers | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Headers + + +

    + + +

    The headers key allows you to set custom HTTP headers for your requests. This is useful for accessing APIs or other protected content.

    +

    + + + Configuration + + +

    + + +

    You can add any number of headers to your configuration:

    + +
    headers:
    +  User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
    +  Authorization: "Bearer YOUR_TOKEN"
    +  Accept: "application/json"
    +
    +

    + + + Dynamic Parameters + + +

    + + +

    You can also use dynamic parameters in your headers to pass values at runtime. See Dynamic Parameters for more information.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/reference/index.html b/jekyll-backup/_site/ruby-gem/reference/index.html new file mode 100644 index 00000000..52fa3029 --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/reference/index.html @@ -0,0 +1,507 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Reference | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Reference + + +

    + + +

    This section provides detailed information on the various configuration options available in html2rss.

    + + + + +
    +

    Table of contents

    + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/reference/selectors.html b/jekyll-backup/_site/ruby-gem/reference/selectors.html new file mode 100644 index 00000000..246f4a4a --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/reference/selectors.html @@ -0,0 +1,753 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Selectors | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Selectors + + +

    + + +

    The selectors scraper gives you fine-grained control over content extraction using CSS selectors.

    + +
    +

    A valid RSS item requires at least a title or a description.

    +
    +

    + + + Basic Configuration + + +

    + + +

    At a minimum, you need an items selector to define the list of articles and a title selector for the article titles.

    + +
    channel:
    +  url: "https://example.com"
    +selectors:
    +  items:
    +    selector: ".article"
    +  title:
    +    selector: "h1"
    +
    +

    + + + Automatic Item Enhancement + + +

    + + +

    To simplify configuration, html2rss can automatically extract the title, url, and image from each item. This feature is enabled by default.

    + +
    selectors:
    +  items:
    +    selector: ".article"
    +    enhance: true # default: true
    +
    +

    + + + RSS 2.0 Selectors + + +

    + + +

    While you can define any named selector, only the following are used in the final RSS feed:

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    RSS 2.0 Tag +html2rss NameΒ 
    titletitleΒ 
    descriptiondescriptionΒ 
    linkurlΒ 
    authorauthorΒ 
    categorycategoriesΒ 
    guidguidΒ 
    enclosureenclosureΒ 
    pubDatepublished_atΒ 
    commentscomments⚠️ Not currently implemented +
    +

    + + + Selector Options + + +

    + + +

    Each selector can be configured with the following options:

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescription
    selectorThe CSS selector for the target element.
    extractorThe extractor to use for this selector.
    attributeThe attribute name (required for attribute extractor).
    staticThe static value (required for static extractor).
    post_processA list of post-processors to apply to the value.
    +

    + + + Extractors + + +

    + + +

    Extractors define how to get the value from a selected element.

    + +
      +
    • +text: The inner text of the element (default).
    • +
    • +html: The outer HTML of the element.
    • +
    • +href: The value of the href attribute.
    • +
    • +attribute: The value of a specified attribute.
    • +
    • +static: A static value.
    • +
    +

    + + + Post-Processors + + +

    + + +

    Post-processors manipulate the extracted value.

    + +
      +
    • +gsub: Performs a global substitution on a string.
    • +
    • +html_to_markdown: Converts HTML to Markdown.
    • +
    • +markdown_to_html: Converts Markdown to HTML.
    • +
    • +parse_time: Parses a string into a Time object.
    • +
    • +parse_uri: Parses a string into a URI object.
    • +
    • +sanitize_html: Sanitizes HTML to prevent security vulnerabilities.
    • +
    • +substring: Extracts a substring from a string.
    • +
    • +template: Creates a new string from a template and other selector values.
    • +
    + +
    +

    Always use the sanitize_html post-processor for any HTML content to prevent security risks.

    +
    +

    + + + Advanced Usage + + +

    + +

    + + + Categories + + +

    + + +

    To add categories to an item, provide a list of selector names to the categories selector.

    + +
    selectors:
    +  genre:
    +    selector: ".genre"
    +  branch:
    +    selector: ".branch"
    +  categories:
    +    - genre
    +    - branch
    +
    +

    + + + Custom GUID + + +

    + + +

    To create a custom GUID for an item, provide a list of selector names to the guid selector.

    + +
    selectors:
    +  title:
    +    selector: "h1"
    +  url:
    +    selector: "a"
    +    extractor: "href"
    +  guid:
    +    - url
    +
    +

    + + + Enclosures + + +

    + + +

    To add an enclosure (e.g., an image, audio, or video file) to an item, use the enclosure selector to specify the URL of the file.

    + +
    selectors:
    +  items:
    +    selector: ".post"
    +  title:
    +    selector: "h2"
    +  enclosure:
    +    selector: "audio"
    +    extractor: "attribute"
    +    attribute: "src"
    +    content_type: "audio/mp3"
    +
    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/reference/strategy.html b/jekyll-backup/_site/ruby-gem/reference/strategy.html new file mode 100644 index 00000000..852cffe7 --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/reference/strategy.html @@ -0,0 +1,544 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Strategy | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Strategy + + +

    + + +

    The strategy key defines how html2rss fetches a website’s content.

    + +
      +
    • +faraday (default): Makes a direct HTTP request. It is fast but does not execute JavaScript.
    • +
    • +browserless: Renders the website in a headless Chrome browser, which is necessary for JavaScript-heavy sites.
    • +
    +

    + + + browserless + + +

    + + +

    To use the browserless strategy, you need a running instance of Browserless.io.

    +

    + + + Docker + + +

    + + +

    You can run a local Browserless.io instance using Docker:

    + +
    docker run \
    +  --rm \
    +  -p 3000:3000 \
    +  -e "CONCURRENT=10" \
    +  -e "TOKEN=6R0W53R135510" \
    +  ghcr.io/browserless/chromium
    +
    +

    + + + Configuration + + +

    + + +

    Set the strategy to browserless in your feed configuration:

    + +
    strategy: browserless
    +
    +

    + + + Command-Line Usage + + +

    + + +

    You can also specify the strategy on the command line:

    + +
    # Set environment variables for your Browserless.io instance
    +BROWSERLESS_IO_WEBSOCKET_URL="ws://127.0.0.1:3000"
    +BROWSERLESS_IO_API_TOKEN="6R0W53R135510"
    +
    +# Use the browserless strategy
    +html2rss feed --strategy=browserless my_config.yml
    +
    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/reference/stylesheets.html b/jekyll-backup/_site/ruby-gem/reference/stylesheets.html new file mode 100644 index 00000000..fe641dbb --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/reference/stylesheets.html @@ -0,0 +1,510 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Stylesheets | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Stylesheets + + +

    + + +

    The stylesheets key allows you to add CSS or XSLT stylesheets to your RSS feed, improving its appearance in web browsers.

    +

    + + + Configuration + + +

    + + +

    You can add multiple stylesheets to your configuration:

    + +
    stylesheets:
    +  - href: "/path/to/style.xsl"
    +    media: "all"
    +    type: "text/xsl"
    +  - href: "https://example.com/rss.css"
    +    media: "all"
    +    type: "text/css"
    +
    +

    + + + Further Reading + + +

    + + + + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/tutorials/index.html b/jekyll-backup/_site/ruby-gem/tutorials/index.html new file mode 100644 index 00000000..24029385 --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/tutorials/index.html @@ -0,0 +1,487 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Tutorials | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Tutorials + + +

    + + +

    This section provides step-by-step tutorials to help you get started with the html2rss Ruby gem.

    + + + + +
    +

    Table of contents

    + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/tutorials/simple-blog-list.html b/jekyll-backup/_site/ruby-gem/tutorials/simple-blog-list.html new file mode 100644 index 00000000..46d9f028 --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/tutorials/simple-blog-list.html @@ -0,0 +1,558 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Scraping a Simple Blog List | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Tutorial: Scraping a Simple Blog List + + +

    + + +

    This example demonstrates how to create a feed from a typical blog that has a list of articles on its homepage.

    +
    +

    + + + The Goal + + +

    + + +

    We want to create an RSS feed that contains the title, link, and summary of each article on the blog.

    +
    +

    + + + The HTML + + +

    + + +

    Here’s a simplified view of the HTML structure we’re targeting. The key is to find a container element that wraps each blog post (in this case, .post-item) and then find the selectors for the title, link, and summary within that container.

    + +
    <div class="posts">
    +  <div class="post-item">
    +    <h2 class="post-title"><a href="/blog/post-1">First Post Title</a></h2>
    +    <p class="post-summary">Summary of the first post...</p>
    +  </div>
    +  <div class="post-item">
    +    <h2 class="post-title"><a href="/blog/post-2">Second Post Title</a></h2>
    +    <p class="post-summary">Summary of the second post...</p>
    +  </div>
    +</div>
    +
    +
    +

    + + + The Configuration + + +

    + + +

    This configuration uses the selectors scraper to precisely extract the content we want.

    + +
    channel:
    +  url: https://example.com/blog
    +selectors:
    +  items:
    +    selector: ".post-item"
    +  title:
    +    selector: ".post-title a"
    +  url:
    +    selector: ".post-title a"
    +    extractor: "href"
    +  description:
    +    selector: ".post-summary"
    +
    +

    + + + Configuration Breakdown + + +

    + + +
      +
    • +items.selector: ".post-item": This is the most important selector. It tells html2rss that every element with the class post-item is a single item in the RSS feed.
    • +
    • +title.selector: ".post-title a": Within each .post-item, this finds the <a> tag inside the element with the class post-title.
    • +
    • +url.selector: ".post-title a": This finds the same <a> tag.
    • +
    • +url.extractor: "href": This extracts the URL from the href attribute of the <a> tag.
    • +
    • +description.selector: ".post-summary": This finds the element with the class post-summary.
    • +
    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/ruby-gem/tutorials/your-first-feed.html b/jekyll-backup/_site/ruby-gem/tutorials/your-first-feed.html new file mode 100644 index 00000000..dbf5eac4 --- /dev/null +++ b/jekyll-backup/_site/ruby-gem/tutorials/your-first-feed.html @@ -0,0 +1,550 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Your First Feed | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Your First Feed: A Step-by-Step Guide + + +

    + + +

    Welcome to html2rss! This guide will walk you through creating your first RSS feed. We’ll start with the easiest method and gradually introduce more powerful options.

    +
    +

    + + + Step 1: The β€œNo-Config” Method (auto) + + +

    + + +

    The easiest way to create a feed is with the auto command. It requires no configuration file and intelligently scrapes the page to find content.

    + +

    Open your terminal and run this command:

    + +
    html2rss auto https://unmatchedstyle.com/
    +
    + +

    html2rss will analyze the website and generate an RSS feed for you, printing it directly to the console. This is a great way to see if html2rss can automatically handle your target website.

    + +

    Is the result not quite right? Let’s move to the next step.

    +
    +

    + + + Step 2: The β€œFull Control” Method (selectors) + + +

    + + +

    When you need to extract content with precision, the selectors scraper is the tool for the job. This method gives you complete control over what content is included in your feed by using CSS selectors.

    + +

    Let’s create a feed for Stack Overflow’s β€œHot Network Questions”.

    + +
      +
    1. +Create a file named stackoverflow.yml.
    2. +
    3. +

      Add the following content:

      + +
      +
      channel:
      +  url: https://stackoverflow.com/questions
      +selectors:
      +  items:
      +    selector: "#hot-network-questions > ul > li"
      +  title:
      +    selector: "a"
      +  url:
      +    selector: "a"
      +    extractor: "href"
      +
      +
    4. +
    5. +

      Run the feed command:

      + +
      +
      html2rss feed stackoverflow.yml
      +
      +
    6. +
    + +

    This configuration tells html2rss:

    + +
      +
    • The main container for all items is <ul id="hot-network-questions">.
    • +
    • Each item is inside a <li> tag.
    • +
    • The title of each item is the text of the <a> tag.
    • +
    • The url of each item is the href attribute of the <a> tag.
    • +
    + +

    This is just the beginning! From here, you can dive deep into the full range of configuration options to create the perfect feed.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/sitemap.xml b/jekyll-backup/_site/sitemap.xml new file mode 100644 index 00000000..d223adec --- /dev/null +++ b/jekyll-backup/_site/sitemap.xml @@ -0,0 +1,147 @@ + + + +http://localhost:4000/about + + +http://localhost:4000/ruby-gem/how-to/advanced-content-extraction + + +http://localhost:4000/ruby-gem/reference/auto-source + + +http://localhost:4000/web-application/how-to/automatic-updates + + +http://localhost:4000/web-application/tutorials/building-feeds + + +http://localhost:4000/ruby-gem/reference/channel + + +http://localhost:4000/ruby-gem/reference/cli-reference + + +http://localhost:4000/configs/ + + +http://localhost:4000/get-involved/contributing + + +http://localhost:4000/ruby-gem/how-to/custom-http-requests + + +http://localhost:4000/web-application/how-to/deployment + + +http://localhost:4000/get-involved/discussions + + +http://localhost:4000/ruby-gem/how-to/dynamic-parameters + + +http://localhost:4000/web-application/reference/env-variables + + +http://localhost:4000/web-application/getting-started + + +http://localhost:4000/ruby-gem/how-to/handling-dynamic-content + + +http://localhost:4000/ruby-gem/reference/headers + + +http://localhost:4000/feed-directory/ + + +http://localhost:4000/html2rss-configs/ + + +http://localhost:4000/get-involved/ + + +http://localhost:4000/ + + +http://localhost:4000/ruby-gem/how-to/ + + +http://localhost:4000/ruby-gem/tutorials/ + + +http://localhost:4000/web-application/how-to/ + + +http://localhost:4000/web-application/ + + +http://localhost:4000/ruby-gem/reference/ + + +http://localhost:4000/ruby-gem/ + + +http://localhost:4000/web-application/reference/ + + +http://localhost:4000/web-application/tutorials/ + + +http://localhost:4000/ruby-gem/installation + + +http://localhost:4000/web-application/installation + + +http://localhost:4000/get-involved/issues-and-features + + +http://localhost:4000/ruby-gem/how-to/managing-feed-configs + + +http://localhost:4000/web-application/reference/monitoring + + +http://localhost:4000/ruby-gem/how-to/scraping-json + + +http://localhost:4000/ruby-gem/reference/selectors + + +http://localhost:4000/web-application/how-to/setup-for-development + + +http://localhost:4000/ruby-gem/tutorials/simple-blog-list + + +http://localhost:4000/get-involved/sponsoring + + +http://localhost:4000/ruby-gem/reference/strategy + + +http://localhost:4000/ruby-gem/reference/stylesheets + + +http://localhost:4000/ruby-gem/how-to/styling-rss-feed + + +http://localhost:4000/support/troubleshooting + + +http://localhost:4000/web-application/how-to/use-automatic-feed-generation + + +http://localhost:4000/web-application/how-to/use-in-production + + +http://localhost:4000/web-application/how-to/use-included-configs + + +http://localhost:4000/web-application/reference/versioning-and-releases + + +http://localhost:4000/ruby-gem/tutorials/your-first-feed + + diff --git a/jekyll-backup/_site/support/troubleshooting.html b/jekyll-backup/_site/support/troubleshooting.html new file mode 100644 index 00000000..08264ca7 --- /dev/null +++ b/jekyll-backup/_site/support/troubleshooting.html @@ -0,0 +1,586 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Troubleshooting | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + +
    +
    + +

    + + + Troubleshooting + + +

    + + +

    This guide provides solutions to common issues encountered when using html2rss.

    +

    + + + Essential Tools + + +

    + + +

    Your browser’s developer tools are essential for troubleshooting. Use them to inspect the HTML structure of a webpage and find the correct CSS selectors.

    + +
      +
    • +To open: Right-click an element on a webpage and select β€œInspect” or β€œInspect Element.”
    • +
    +

    + + + Common Issues + + +

    + +

    + + + Empty Feeds + + +

    + + +

    If your feed is empty, check the following:

    + +
      +
    • +URL: Ensure the url in your configuration is correct and accessible.
    • +
    • +items.selector: Verify that the items.selector matches the elements on the page.
    • +
    • +Website Changes: Websites change their HTML structure frequently. Your selectors may be outdated.
    • +
    +

    + + + Missing Item Parts + + +

    + + +

    If parts of your items (e.g., title, link) are missing, check the following:

    + +
      +
    • +Selector: Ensure the selector for the missing part is correct and relative to the items.selector.
    • +
    • +Extractor: Verify that you are using the correct extractor (e.g., text, href, attribute).
    • +
    • +Dynamic Content: html2rss does not execute JavaScript. If the content is loaded dynamically, html2rss may not be able to see it.
    • +
    +

    + + + Date/Time Parsing Errors + + +

    + + +

    If you are having issues with date/time parsing, check the following:

    + +
      +
    • +time_format: Ensure the time_format in your configuration matches the date string on the website.
    • +
    • +time_zone: Specify the correct time_zone if the website uses a specific time zone.
    • +
    +

    + + + html2rss Command Not Found + + +

    + + +

    If you are getting a β€œcommand not found” error, try the following:

    + +
      +
    • +Re-install: Re-install html2rss to ensure it is installed correctly: gem install html2rss.
    • +
    • +Check PATH: Ensure that the directory where Ruby gems are installed is in your system’s PATH.
    • +
    +

    + + + Tips & Tricks + + +

    + + +
      +
    • +Mobile Redirects: Check that the channel URL does not redirect to a mobile page with a different markup structure.
    • +
    • +curl and pup: For static sites, use curl and pup to quickly find selectors: curl URL | pup.
    • +
    • +CSS Selectors: For a comprehensive overview of CSS selectors, see the W3C documentation.
    • +
    +

    + + + Still Stuck? + + +

    + + +

    If you are still having issues, please open an issue on GitHub.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/web-README.md b/jekyll-backup/_site/web-README.md new file mode 100644 index 00000000..3cf33d72 --- /dev/null +++ b/jekyll-backup/_site/web-README.md @@ -0,0 +1,251 @@ +![html2rss logo](https://github.com/html2rss/html2rss/raw/master/support/logo.png) + +# html2rss-web + +This web application scrapes websites to build and deliver RSS 2.0 feeds. + +**Features:** + +- Provides stable URLs for feeds generated by automatic sourcing. +- [Create your custom feeds](#how-to-build-your-rss-feeds)! +- Comes with plenty of [included configs](https://github.com/html2rss/html2rss-configs) out of the box. +- Handles request caching. +- Sets caching-related HTTP headers. + +The functionality of scraping websites and building the RSS feeds is provided by the Ruby gem [`html2rss`](https://github.com/html2rss/html2rss). + +## Get started + +This application should be used with Docker. It is designed to require as little maintenance as possible. See [Versioning and Releases](#versioning-and-releases) and [consider automatic updates](#docker-automatically-keep-the-html2rss-web-image-up-to-date). + +### With Docker + +```sh +docker run -p 3000:3000 gilcreator/html2rss-web +``` + +Then open in your browser and click the example feed link. + +This is the quickest way to get started. However, it's also the option with the least flexibility: it doesn't allow you to use custom feed configs and doesn't update automatically. + +If you want more flexibility and automatic updates sound good to you, read on to get started _with docker compose_… + +### With `docker compose` + +Create a `docker-compose.yml` file and paste the following into it: + +```yaml +services: + html2rss-web: + image: gilcreator/html2rss-web + ports: + - "3000:3000" + volumes: + - type: bind + source: ./feeds.yml + target: /app/config/feeds.yml + read_only: true + environment: + RACK_ENV: production + HEALTH_CHECK_USERNAME: health + HEALTH_CHECK_PASSWORD: please-set-YOUR-OWN-veeeeeery-l0ng-aNd-h4rd-to-gue55-Passw0rd! + # AUTO_SOURCE_ENABLED: 'true' + # AUTO_SOURCE_USERNAME: foobar + # AUTO_SOURCE_PASSWORD: A-Unique-And-Long-Password-For-Your-Own-Instance + ## to allow just requests originating from the local host + # AUTO_SOURCE_ALLOWED_ORIGINS: 127.0.0.1:3000 + ## to allow multiple origins, seperate those via comma: + # AUTO_SOURCE_ALLOWED_ORIGINS: example.com,h2r.host.tld + BROWSERLESS_IO_WEBSOCKET_URL: ws://browserless:3001 + BROWSERLESS_IO_API_TOKEN: 6R0W53R135510 + + watchtower: + image: containrrr/watchtower + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - "~/.docker/config.json:/config.json" + command: --cleanup --interval 7200 + + browserless: + image: "ghcr.io/browserless/chromium" + ports: + - "3001:3001" + environment: + PORT: 3001 + CONCURRENT: 10 + TOKEN: 6R0W53R135510 +``` + +Start it up with: `docker compose up`. + +If you have not created your `feeds.yml` yet, download [this `feeds.yml` as a blueprint](https://raw.githubusercontent.com/html2rss/html2rss-web/master/config/feeds.yml) into the directory containing the `docker-compose.yml`. + +## Docker: Automatically keep the html2rss-web image up-to-date + +The [watchtower](https://containrrr.dev/watchtower/) service automatically pulls running Docker images and checks for updates. If an update is available, it will automatically start the updated image with the same configuration as the running one. Please read its manual. + +The `docker-compose.yml` above contains a service description for watchtower. + +## How to use automatic feed generation + +> [!NOTE] +> This feature is disabled by default. + +To enable the `auto_source` feature, comment in the env variables in the `docker-compose.yml` file from above and change the values accordingly: + +```yaml +environment: + ## … snip ✁ + AUTO_SOURCE_ENABLED: "true" + AUTO_SOURCE_USERNAME: foobar + AUTO_SOURCE_PASSWORD: A-Unique-And-Long-Password-For-Your-Own-Instance + ## to allow just requests originating from the local host + AUTO_SOURCE_ALLOWED_ORIGINS: 127.0.0.1:3000 + ## to allow multiple origins, seperate those via comma: + # AUTO_SOURCE_ALLOWED_ORIGINS: example.com,h2r.host.tld + ## … snap βœƒ +``` + +Restart the container and open . +When asked, enter your username and password. + +Then enter the URL of a website and click on the _Generate_ button. + +## How to use the included configs + +html2rss-web comes with many feed configs out of the box. [See the file list of all configs.](https://github.com/html2rss/html2rss-configs/tree/master/lib/html2rss/configs) + +To use a config from there, build the URL like this: + +| | | +| ------------------------ | ----------------------------- | +| `lib/html2rss/configs/` | `domainname.tld/whatever.yml` | +| Would become this URL: | | +| `http://localhost:3000/` | `domainname.tld/whatever.rss` | +| | `^^^^^^^^^^^^^^^^^^^^^^^^^^^` | + +## How to build your RSS feeds + +To build your own RSS feed, you need to create a _feed config_.\ +That _feed config_ goes into the file `feeds.yml`.\ +Check out the [`example` feed config](https://github.com/html2rss/html2rss-web/blob/master/config/feeds.yml#L9). + +Please refer to [html2rss' README for a description of _the feed config and its options_](https://github.com/html2rss/html2rss#the-feed-config-and-its-options). html2rss-web is just a small web application that builds on html2rss. + +## Versioning and releases + +This web application is distributed in a [rolling release](https://en.wikipedia.org/wiki/Rolling_release) fashion from the `master` branch. + +For the latest commit passing GitHub CI/CD on the master branch, an updated Docker image will be pushed to [Docker Hub: `gilcreator/html2rss-web`](https://hub.docker.com/r/gilcreator/html2rss-web). +The [SBOM](https://en.wikipedia.org/wiki/Software_supply_chain) is embedded in the Docker image. + +GitHub's @dependabot is enabled for dependency updates and they are automatically merged to the `master` branch when the CI gives the green light. + +If you use Docker, you should update to the latest image automatically by [setting up _watchtower_ as described](#get-started). + +## Use in production + +This app is published on Docker Hub and therefore easy to use with Docker.\ +The above `docker-compose.yml` is a good starting point. + +If you're going to host a public instance, _please, please, please_: + +- Put the application behind a reverse proxy. +- Allow outside connections only via HTTPS. +- Have an auto-update strategy (e.g., watchtower). +- Monitor your `/health_check.txt` endpoint. +- [Let the world know and add your instance to the wiki](https://github.com/html2rss/html2rss-web/wiki/Instances) -- thank you! + +### Supported ENV variables + +| Name | Description | +| ------------------------------ | ---------------------------------- | +| `BASE_URL` | default: '' | +| `LOG_LEVEL` | default: 'warn' | +| `HEALTH_CHECK_USERNAME` | default: auto-generated on start | +| `HEALTH_CHECK_PASSWORD` | default: auto-generated on start | +| | | +| `AUTO_SOURCE_ENABLED` | default: false | +| `AUTO_SOURCE_USERNAME` | no default. | +| `AUTO_SOURCE_PASSWORD` | no default. | +| `AUTO_SOURCE_ALLOWED_ORIGINS` | no default. | +| | | +| `PORT` | default: 3000 | +| `RACK_ENV` | default: 'development' | +| `RACK_TIMEOUT_SERVICE_TIMEOUT` | default: 15 | +| `WEB_CONCURRENCY` | default: 2 | +| `WEB_MAX_THREADS` | default: 5 | +| | | +| `SENTRY_DSN` | no default. | + +### Runtime monitoring via `GET /health_check.txt` + +It is recommended to set up monitoring of the `/health_check.txt` endpoint. With that, you can find out when one of _your own_ configs breaks. The endpoint uses HTTP Basic authentication. + +First, set the username and password via these environment variables: `HEALTH_CHECK_USERNAME` and `HEALTH_CHECK_PASSWORD`. If these are not set, html2rss-web will generate a new random username and password on _each_ start. + +An authenticated `GET /health_check.txt` request will respond with: + +- If the feeds are generatable: `success`. +- Otherwise: the names of the broken configs. + +To get notified when one of your configs breaks, set up monitoring of this endpoint. + +[UptimeRobot's free plan](https://uptimerobot.com/) is sufficient for basic monitoring (every 5 minutes).\ +Create a monitor of type _Keyword_ with this information and make it aware of your username and password: + +![A screenshot showing the Keyword Monitor: a name, the instance's URL to /health_check.txt, and an interval.](docs/uptimerobot_monitor.jpg) + +### Application Performance Monitoring using Sentry + +When you specify `SENTRY_DSN` in your environment variables, the application will be setup to use Sentry. + +## Setup for development + +Check out the git repository and… + +### Using Docker + +This approach allows you to experiment without installing Ruby on your machine. +All you need to do is install and run Docker. + +```sh +# Build image from Dockerfile and name/tag it as html2rss-web: +docker build -t html2rss-web -f Dockerfile . + +# Run the image and name it html2rss-web-dev: +docker run \ + --detach \ + --mount type=bind,source=$(pwd)/config,target=/app/config \ + --name html2rss-web-dev \ + html2rss-web + +# Open an interactive TTY with the shell `sh`: +docker exec -ti html2rss-web-dev sh + +# Stop and clean up the container +docker stop html2rss-web-dev +docker rm html2rss-web-dev + +# Remove the image +docker rmi html2rss-web +``` + +### Using installed Ruby + +If you're comfortable with installing Ruby directly on your machine, follow these instructions: + +1. Install Ruby `>= 3.2` +2. `gem install bundler foreman` +3. `bundle` +4. `foreman start` + +_html2rss-web_ now listens on port **3000** for requests. + +## Contribute + +Contributions are welcome! + +Open a pull request with your changes,\ +open an issue, or\ +[join discussions on html2rss](https://github.com/orgs/html2rss/discussions). diff --git a/jekyll-backup/_site/web-application/getting-started.html b/jekyll-backup/_site/web-application/getting-started.html new file mode 100644 index 00000000..b95080aa --- /dev/null +++ b/jekyll-backup/_site/web-application/getting-started.html @@ -0,0 +1,545 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Getting Started | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Getting Started with html2rss-web + + +

    + + +

    Welcome! This guide will help you create RSS feeds from any website using the html2rss-web application.

    +

    + + + What is html2rss-web? + + +

    + + +

    html2rss-web is a user-friendly web application that turns any website into an RSS feed. It’s part of the html2rss project, which also includes a Ruby gem for developers. Think of html2rss-web as a translator that converts website content into a format your feed reader can understand.

    +

    + + + Why Use RSS Feeds? + + +

    + + +

    Instead of visiting 20 different websites every day, you can:

    + +
      +
    • +Get all updates in one place - your feed reader
    • +
    • +Never miss new content - automatic notifications
    • +
    • +Save time - no more manual checking
    • +
    • +Stay organized - categorize and filter content
    • +
    +

    + + + Quick Start Options + + +

    + +

    + + + Option 1: Browse Ready-Made Feeds (Easiest) + + +

    + + +
      +
    1. +Feed Directory - See what’s already available
    2. +
    3. +Copy the RSS URL and add it to your feed reader
    4. +
    +

    + + + Option 2: Install Your Own Instance + + +

    + + +
      +
    1. +Installation Guide - Set up your own copy
    2. +
    3. +Create Custom Feeds - Make feeds for any website
    4. +
    + +

    New to RSS? We recommend starting with the Feed Directory to see examples, then installing html2rss-web to create your own feeds.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/web-application/how-to/automatic-updates.html b/jekyll-backup/_site/web-application/how-to/automatic-updates.html new file mode 100644 index 00000000..1bea857b --- /dev/null +++ b/jekyll-backup/_site/web-application/how-to/automatic-updates.html @@ -0,0 +1,480 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Automatic Updates | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Automatic Updates with Watchtower + + +

    + + +

    The watchtower service automatically pulls running Docker images and checks for updates. If an update is available, it will automatically start the updated image with the same configuration as the running one. Please read its manual.

    + +

    The docker-compose.yml in the Installation Guide contains a service description for watchtower.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/web-application/how-to/deployment.html b/jekyll-backup/_site/web-application/how-to/deployment.html new file mode 100644 index 00000000..eb852b42 --- /dev/null +++ b/jekyll-backup/_site/web-application/how-to/deployment.html @@ -0,0 +1,490 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Deployment | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Deployment + + +

    + + +

    This app is published on Docker Hub and therefore easy to use with Docker. +The docker-compose.yml in the Installation Guide is a good starting point.

    + +

    If you’re going to host a public instance, please, please, please:

    + +
      +
    • Put the application behind a reverse proxy.
    • +
    • Allow outside connections only via HTTPS.
    • +
    • Have an auto-update strategy (e.g., watchtower).
    • +
    • Monitor your /health_check.txt endpoint.
    • +
    • +Let the world know and add your instance to the wiki – thank you!
    • +
    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/web-application/how-to/index.html b/jekyll-backup/_site/web-application/how-to/index.html new file mode 100644 index 00000000..53443b77 --- /dev/null +++ b/jekyll-backup/_site/web-application/how-to/index.html @@ -0,0 +1,503 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +How-To Guides | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + How-To Guides + + +

    + + +

    This section provides guides on how to perform specific tasks with html2rss-web.

    + + + + +
    +

    Table of contents

    + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/web-application/how-to/setup-for-development.html b/jekyll-backup/_site/web-application/how-to/setup-for-development.html new file mode 100644 index 00000000..f8273eea --- /dev/null +++ b/jekyll-backup/_site/web-application/how-to/setup-for-development.html @@ -0,0 +1,530 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Setup for development | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Setup for development + + +

    + + +

    Check out the git repository and…

    +

    + + + Using Docker + + +

    + + +

    This approach allows you to experiment without installing Ruby on your machine. +All you need to do is install and run Docker.

    + +
    # Build image from Dockerfile and name/tag it as html2rss-web:
    +docker build -t html2rss-web -f Dockerfile .
    +
    +# Run the image and name it html2rss-web-dev:
    +docker run \
    +  --detach \
    +  --mount type=bind,source=$(pwd)/config,target=/app/config \
    +  --name html2rss-web-dev \
    +  html2rss-web
    +
    +# Open an interactive TTY with the shell `sh`:
    +docker exec -ti html2rss-web-dev sh
    +
    +# Stop and clean up the container
    +docker stop html2rss-web-dev
    +docker rm html2rss-web-dev
    +
    +# Remove the image
    +docker rmi html2rss-web
    +
    +

    + + + Using installed Ruby + + +

    + + +

    If you’re comfortable with installing Ruby directly on your machine, follow these instructions:

    + +
      +
    1. Install Ruby >= 3.2 +
    2. +
    3. gem install bundler foreman
    4. +
    5. bundle
    6. +
    7. foreman start
    8. +
    + +

    html2rss-web now listens on port 3000 for requests.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/web-application/how-to/use-automatic-feed-generation.html b/jekyll-backup/_site/web-application/how-to/use-automatic-feed-generation.html new file mode 100644 index 00000000..ded87b13 --- /dev/null +++ b/jekyll-backup/_site/web-application/how-to/use-automatic-feed-generation.html @@ -0,0 +1,532 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Use automatic feed generation | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Automatic Feed Generation + + +

    + + +

    This feature lets you create RSS feeds automatically - just enter a website URL and html2rss-web figures out the rest!

    + +
    +

    Note: This feature is disabled by default for security reasons.

    +
    +

    + + + How to Enable It + + +

    + + +
      +
    1. +Edit your docker-compose.yml file and uncomment these lines:
    2. +
    + +
    environment:
    +  AUTO_SOURCE_ENABLED: "true"
    +  AUTO_SOURCE_USERNAME: your-username
    +  AUTO_SOURCE_PASSWORD: your-secure-password
    +  AUTO_SOURCE_ALLOWED_ORIGINS: 127.0.0.1:3000
    +
    + +
      +
    1. Restart html2rss-web:
    2. +
    + +
    docker compose down
    +docker compose up -d
    +
    +

    + + + How to Use It + + +

    + + +
      +
    1. +Open the auto-source page: Go to http://localhost:3000/auto_source/ +
    2. +
    3. +Enter your credentials (the username and password you set above)
    4. +
    5. +Enter a website URL and click β€œGenerate”
    6. +
    7. +Get your RSS feed! html2rss-web will create a feed automatically
    8. +
    + +

    That’s it! No configuration files needed - html2rss-web does all the work for you.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/web-application/how-to/use-in-production.html b/jekyll-backup/_site/web-application/how-to/use-in-production.html new file mode 100644 index 00000000..d7006d8c --- /dev/null +++ b/jekyll-backup/_site/web-application/how-to/use-in-production.html @@ -0,0 +1,490 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Use in production | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Use in production + + +

    + + +

    This app is published on Docker Hub and therefore easy to use with Docker. +The above docker-compose.yml is a good starting point.

    + +

    If you’re going to host a public instance, please, please, please:

    + +
      +
    • Put the application behind a reverse proxy.
    • +
    • Allow outside connections only via HTTPS.
    • +
    • Have an auto-update strategy (e.g., watchtower).
    • +
    • Monitor your /health_check.txt endpoint.
    • +
    • +Let the world know and add your instance to the wiki – thank you!
    • +
    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/web-application/how-to/use-included-configs.html b/jekyll-backup/_site/web-application/how-to/use-included-configs.html new file mode 100644 index 00000000..7c708598 --- /dev/null +++ b/jekyll-backup/_site/web-application/how-to/use-included-configs.html @@ -0,0 +1,509 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Use the included configs | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Using Pre-Made Feeds + + +

    + + +

    html2rss-web comes with hundreds of ready-made feeds for popular websites! No configuration needed - just use the URLs.

    +

    + + + How to Use Them + + +

    + + +
      +
    1. +Find a feed in the Feed Directory +
    2. +
    3. +Copy the URL (it looks like domainname.tld/whatever.rss)
    4. +
    5. +Add it to your feed reader - paste the URL and you’re done!
    6. +
    +

    + + + Example + + +

    + + +

    If you see a config file named example.com/news.yml, you can access it at: +http://localhost:3000/example.com/news.rss

    + +

    Just replace localhost:3000 with your html2rss-web address.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/web-application/index.html b/jekyll-backup/_site/web-application/index.html new file mode 100644 index 00000000..5fb9907b --- /dev/null +++ b/jekyll-backup/_site/web-application/index.html @@ -0,0 +1,520 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Web Application | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + +
    +
    + +

    + + + html2rss-web + + +

    + + +

    This web application scrapes websites to build and deliver RSS 2.0 feeds. It is a powerful tool for creating custom RSS feeds.

    +

    + + + Get Started + + +

    + + +

    Our Getting Started guide covers essential first steps, from understanding the application to installing your own instance.

    +

    + + + Key Features + + +

    + + +
      +
    • +Stable URLs: Provides stable URLs for automatically sourced feeds.
    • +
    • +Custom Feeds: Create custom feeds.
    • +
    • +Feed Directory: Includes many feeds out of the box.
    • +
    • +Caching: Handles request caching and sets HTTP headers.
    • +
    + +

    The functionality of scraping websites and building the RSS feeds is provided by the Ruby gem html2rss.

    + + + + +
    +

    Table of contents

    + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/web-application/installation.html b/jekyll-backup/_site/web-application/installation.html new file mode 100644 index 00000000..b55860b1 --- /dev/null +++ b/jekyll-backup/_site/web-application/installation.html @@ -0,0 +1,633 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Installation | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Installation + + +

    + + +

    This guide will help you set up your own copy of html2rss-web on your computer. Don’t worry - we’ll walk you through every step!

    +

    + + + What You’ll Need + + +

    + + +
      +
    • +Docker - A tool that makes installation simple (like an app store for server software)
    • +
    • +About 10 minutes - The whole process is quick and automated
    • +
    + +

    Don’t have Docker? Install it first - it’s free and works on Windows, Mac, and Linux.

    +

    + + + Step 1: Create a Folder + + +

    + + +

    Create a new folder on your computer to store html2rss-web files:

    + +

    On Windows: Right-click β†’ New Folder β†’ Name it β€œhtml2rss-web” +On Mac/Linux: Open Terminal and run:

    + +
    mkdir html2rss-web
    +cd html2rss-web
    +
    +

    + + + Step 2: Create the Configuration File + + +

    + + +

    Create a file called docker-compose.yml in your new folder. This file tells Docker how to set up html2rss-web with all the features you need.

    + +

    How to create the file:

    + +
      +
    • +On Windows: Right-click in the folder β†’ New β†’ Text Document β†’ Rename it to docker-compose.yml (make sure to change the extension)
    • +
    • +On Mac/Linux: Use any text editor to create the file
    • +
    + +
    services:
    +  html2rss-web:
    +    image: gilcreator/html2rss-web
    +    restart: unless-stopped
    +    ports:
    +      - "127.0.0.1:3000:3000"
    +    volumes:
    +      - type: bind
    +        source: ./feeds.yml
    +        target: /app/config/feeds.yml
    +        read_only: true
    +    environment:
    +      RACK_ENV: production
    +      HEALTH_CHECK_USERNAME: health
    +      HEALTH_CHECK_PASSWORD: please-set-YOUR-OWN-veeeeeery-l0ng-aNd-h4rd-to-gue55-Passw0rd!
    +      BROWSERLESS_IO_WEBSOCKET_URL: ws://browserless:3001
    +      BROWSERLESS_IO_API_TOKEN: 6R0W53R135510
    +
    +  watchtower:
    +    image: containrrr/watchtower
    +    restart: unless-stopped
    +    volumes:
    +      - /var/run/docker.sock:/var/run/docker.sock
    +      - "~/.docker/config.json:/config.json"
    +    command: --cleanup --interval 7200
    +
    +  browserless:
    +    image: "ghcr.io/browserless/chromium"
    +    restart: unless-stopped
    +    ports:
    +      - "127.0.0.1:3001:3001"
    +    environment:
    +      PORT: 3001
    +      CONCURRENT: 10
    +      TOKEN: 6R0W53R135510
    +
    +

    + + + Step 3: Download the Feed List + + +

    + + +

    html2rss-web needs a list of feeds to work with. Download our pre-made list:

    + +

    On Windows: Right-click this link β†’ Save As β†’ Name it β€œfeeds.yml” β†’ Save in your html2rss-web folder

    + +

    On Mac/Linux: Open Terminal in your html2rss-web folder and run:

    + +
    curl https://raw.githubusercontent.com/html2rss/html2rss-web/master/config/feeds.yml -o feeds.yml
    +
    +

    + + + Step 4: Start html2rss-web + + +

    + + +

    Now start html2rss-web:

    + +

    On Windows: Open Command Prompt in your html2rss-web folder and run:

    + +
    docker compose up -d
    +
    + +

    On Mac/Linux: In Terminal, run:

    + +
    docker compose up -d
    +
    + +

    That’s it! πŸŽ‰ html2rss-web is now running.

    + +

    To verify it’s working:

    + +
      +
    1. Open your web browser
    2. +
    3. Go to http://localhost:3000 +
    4. +
    5. You should see the html2rss-web interface with a list of available feeds
    6. +
    + +

    If you see the interface, congratulations! You’ve successfully set up html2rss-web.

    +

    + + + Next Steps + + +

    + + +
      +
    • +Try it out! Visit http://localhost:3000 to see html2rss-web in action
    • +
    • +Browse existing feeds - Check out what’s already available
    • +
    • +Create your first feed - Follow our How-To Guides to make custom feeds
    • +
    • +Need help? Check our troubleshooting guide if something doesn’t work
    • +
    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/web-application/reference/env-variables.html b/jekyll-backup/_site/web-application/reference/env-variables.html new file mode 100644 index 00000000..1e777b23 --- /dev/null +++ b/jekyll-backup/_site/web-application/reference/env-variables.html @@ -0,0 +1,563 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ENV variables | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Configuration Reference + + +

    + +

    + + + Supported ENV variables + + +

    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescription
    BASE_URLdefault: β€˜http://localhost:3000’
    LOG_LEVELdefault: β€˜warn’
    HEALTH_CHECK_USERNAMEdefault: auto-generated on start
    HEALTH_CHECK_PASSWORDdefault: auto-generated on start
    Β Β 
    AUTO_SOURCE_ENABLEDdefault: false
    AUTO_SOURCE_USERNAMEno default.
    AUTO_SOURCE_PASSWORDno default.
    AUTO_SOURCE_ALLOWED_ORIGINSno default.
    Β Β 
    PORTdefault: 3000
    RACK_ENVdefault: β€˜development’
    RACK_TIMEOUT_SERVICE_TIMEOUTdefault: 15
    WEB_CONCURRENCYdefault: 2
    WEB_MAX_THREADSdefault: 5
    Β Β 
    SENTRY_DSNno default.
    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/web-application/reference/index.html b/jekyll-backup/_site/web-application/reference/index.html new file mode 100644 index 00000000..1ff55222 --- /dev/null +++ b/jekyll-backup/_site/web-application/reference/index.html @@ -0,0 +1,491 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Reference | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Reference + + +

    + + +

    This section contains detailed reference material.

    + + + + +
    +

    Table of contents

    + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/web-application/reference/monitoring.html b/jekyll-backup/_site/web-application/reference/monitoring.html new file mode 100644 index 00000000..88aa4e7c --- /dev/null +++ b/jekyll-backup/_site/web-application/reference/monitoring.html @@ -0,0 +1,443 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Monitoring | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Monitoring + + +

    + +

    + + + Runtime monitoring via GET /health_check.txt + + +

    + + +

    It is recommended to set up monitoring of the /health_check.txt endpoint. With that, you can find out when one of your own configs breaks. The endpoint uses HTTP Basic authentication.

    + +

    First, set the username and password via these environment variables: HEALTH_CHECK_USERNAME and HEALTH_CHECK_PASSWORD. If these are not set, html2rss-web will generate a new random username and password on each start.

    + +

    An authenticated GET /health_check.txt request will respond with:

    + +
      +
    • If the feeds are generatable: success.
    • +
    • Otherwise: the names of the broken configs.
    • +
    + +

    To get notified when one of your configs breaks, set up monitoring of this endpoint.

    + +

    UptimeRobot’s free plan is sufficient for basic monitoring (every 5 minutes). +Create a monitor of type Keyword with this information and make it aware of your username and password:

    + +

    A screenshot showing the Keyword Monitor: a name, the instance's URL to /health_check.txt, and an interval.

    +

    + + + Application Performance Monitoring using Sentry + + +

    + + +

    When you specify SENTRY_DSN in your environment variables, the application will be setup to use Sentry.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/web-application/reference/versioning-and-releases.html b/jekyll-backup/_site/web-application/reference/versioning-and-releases.html new file mode 100644 index 00000000..3df3a3a1 --- /dev/null +++ b/jekyll-backup/_site/web-application/reference/versioning-and-releases.html @@ -0,0 +1,485 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Versioning and releases | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Versioning and releases + + +

    + + +

    This web application is distributed in a rolling release fashion from the master branch.

    + +

    For the latest commit passing GitHub CI/CD on the master branch, an updated Docker image will be pushed to Docker Hub: gilcreator/html2rss-web. +The SBOM is embedded in the Docker image.

    + +

    GitHub’s @dependabot is enabled for dependency updates and they are automatically merged to the master branch when the CI gives the green light.

    + +

    If you use Docker, you should update to the latest image automatically by setting up watchtower as described.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/web-application/tutorials/building-feeds.html b/jekyll-backup/_site/web-application/tutorials/building-feeds.html new file mode 100644 index 00000000..8d2fd492 --- /dev/null +++ b/jekyll-backup/_site/web-application/tutorials/building-feeds.html @@ -0,0 +1,482 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Building your RSS feeds | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + How to build your RSS feeds + + +

    + + +

    To build your own RSS feed, you need to create a feed config. +That feed config goes into the file feeds.yml. +Check out the example feed config.

    + +

    Please refer to html2rss’ README for a description of the feed config and its options. html2rss-web is just a small web application that builds on html2rss.

    + + + + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/jekyll-backup/_site/web-application/tutorials/index.html b/jekyll-backup/_site/web-application/tutorials/index.html new file mode 100644 index 00000000..6d7d6828 --- /dev/null +++ b/jekyll-backup/_site/web-application/tutorials/index.html @@ -0,0 +1,480 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Tutorials | html2rss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + +
    + + + + + + Skip to main content + + + Link + + + + + + + Menu + + + + + + + Expand + + + + + + + + (external link) + + + + + + Document + + + + + + + Search + + + + + + + + + + Copy + + + + + + + Copied + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + +
    + +
    + + + +
    +
    + +

    + + + Tutorials + + +

    + + + + +
    +

    Table of contents

    + + + +
    + + +
    + + + +
    +
    + + + +
    + + +
    + + + + + diff --git a/astro-migration/package-lock.json b/package-lock.json similarity index 97% rename from astro-migration/package-lock.json rename to package-lock.json index 33921f86..b5a111f2 100644 --- a/astro-migration/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "astro-migration", + "name": "html2rss-website", "version": "0.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "astro-migration", + "name": "html2rss-website", "version": "0.0.1", "dependencies": { "@astrojs/starlight": "^0.35.3", @@ -583,6 +583,8 @@ }, "node_modules/ansi-align/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "license": "MIT", "engines": { "node": ">=8" @@ -590,6 +592,8 @@ }, "node_modules/ansi-align/node_modules/emoji-regex": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "license": "MIT" }, "node_modules/ansi-align/node_modules/string-width": { @@ -606,6 +610,8 @@ }, "node_modules/ansi-align/node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -661,6 +667,8 @@ }, "node_modules/argparse": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "license": "Python-2.0" }, "node_modules/aria-query": { @@ -1016,6 +1024,8 @@ }, "node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -1026,6 +1036,8 @@ }, "node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, "node_modules/color-string": { @@ -1100,6 +1112,8 @@ }, "node_modules/cssesc": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "license": "MIT", "bin": { "cssesc": "bin/cssesc" @@ -2337,6 +2351,8 @@ }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "license": "MIT", "engines": { "node": ">=8" @@ -2750,6 +2766,8 @@ }, "node_modules/mdn-data": { "version": "2.12.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", + "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", "license": "CC0-1.0" }, "node_modules/micromark": { @@ -3425,10 +3443,14 @@ }, "node_modules/ms": { "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "funding": [ { "type": "github", @@ -3489,6 +3511,8 @@ }, "node_modules/normalize-path": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -3717,6 +3741,8 @@ }, "node_modules/picocolors": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, "node_modules/picomatch": { @@ -3731,6 +3757,8 @@ }, "node_modules/postcss": { "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "funding": [ { "type": "opencollective", @@ -4950,6 +4978,8 @@ }, "node_modules/source-map-js": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -5377,6 +5407,8 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "license": "MIT" }, "node_modules/vfile": { diff --git a/package.json b/package.json index dee10170..6b813b19 100644 --- a/package.json +++ b/package.json @@ -1,21 +1,23 @@ { - "license": "UNLICENSED", - "private": true, + "name": "html2rss-website", + "type": "module", + "version": "0.0.1", "scripts": { - "lint": "yarn lint:stylelint && yarn lint:prettier", - "lint:stylelint": "stylelint assets/**/*.scss", - "lint:prettier": "prettier --check .", - "lintfix": "yarn lintfix:stylelint && yarn lintfix:prettier", - "lintfix:stylelint": "stylelint --fix assets/**/*.scss", - "lintfix:prettier": "prettier --write ." + "dev": "astro dev", + "start": "astro dev", + "build": "astro build", + "preview": "astro preview", + "astro": "astro", + "update-data": "ruby bin/data-update", + "build:full": "npm run update-data && npm run build" }, - "devDependencies": { - "prettier": "3.6.2", - "stylelint": "16.24.0", - "stylelint-config-recess-order": "7.3.0", - "stylelint-order": "7.0.0", - "stylelint-config-recommended-scss": "16.0.1", - "stylelint-scss": "6.12.1" + "dependencies": { + "@astrojs/starlight": "^0.35.3", + "alpinejs": "^3.15.0", + "astro": "^5.6.1", + "sharp": "^0.34.2" }, - "packageManager": "yarn@1.22.22" + "devDependencies": { + "@types/alpinejs": "^3.13.11" + } } diff --git a/astro-migration/public/404.html b/public/404.html similarity index 100% rename from astro-migration/public/404.html rename to public/404.html diff --git a/astro-migration/public/_redirects b/public/_redirects similarity index 100% rename from astro-migration/public/_redirects rename to public/_redirects diff --git a/public/assets/android-chrome-192x192.png b/public/assets/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..75aee0e93fb997f749492876c31df0e355a26546 GIT binary patch literal 1686 zcmYjRe>hb68vmY|(HyMyq?Q?pvs`N=)1cZ>bk9ibDA|*gS)!Btm`9t=)|N5EQC+5} zrt3$8(zLd1Dv7RTw3Q>abj@zuCJ7<6WmV{6NTb>D+<)%pdEOt-`}sVd_j%qw-lKTv zS2k7-RsaB-U~y2Gxze)%GtD`kab`IH(0V*1e66LWrC6rq@Ptw^kYYeV08%?BzzIUt zLgIjy0R-hqgg_vc2qaP-2j*d7AqwNlDqH{yC8Urb2bBPUVIB%s$pB9*5zEx55QAYv zsvSg7RE7hb(sU{SCV*80P)LASrjjUWj8wExKqUpZLPOy|LjscqNUH`3O&g(Z8&v@z z5AIX~u>h7}po#<%6>UYE2>a| zkb?@eGN2>?E(A0MFdod|2?V&5P`AJc!ozTc!yzz0(o>j}LduZ(kxFS*KMcdB3t%s8u&wbs4S)qZI7k#OgWfb| znJ*0}^~@#vON`m}e;|h5T(17k74DxZC_Y)tZPMuy^p=dR{=R*tpRd13s7c;av9Bk2 zI_-wFDZ=5IDeAr5ILWe)91J;JnfmaTHb^%a5TF)r%HG%VvioMH7v+22f%dP1GM|sU z&Fer9ZBQqXIb#NL<{M)^Nkhg7n*i!CQ!rEgN7#?6w=*lk4+hYq8FT1TE(z?v-ej%l z(H+u6Uu;;i0GV`J5XNq9ux@hi1)f$|FFV2N;d!(>=)Z=4S(m*^?^8dt3yS4>H|a(U zUM$Mgd4a#B+2YuvoXr+DgZ!VhbaSmCQ0TQj(qjtzqF=GB!oqm-$pL%fhOf+y;j(kT z-@KZ{l+u+$w{1yQVv*lVW1Jf>?yeh~91&H>x7L*K)y=y_O@Y*#uZDRw2ZIw0VHP)E zoTy)J4OQQ9Y4`s=FPN54#A5A(&&9`ec zFq$L&Rx4*8fpVYZBBLeEu@At~Cd=P)5ka8k&rVR?MdAJXfu;=Mg8Gllq=N9QBmZU3 z3*3-#c4I0>`H^W=uficAl2ecX!-to@p(m z&Nb}xR+cL-7x2|s;KJBf8QjNTXj|PrKv4xRVpAyT%eK<^HF&KPzR%-Q<XWw%a$F`zZyk7AG66DAeKM&B$-TdxaWz>t%CW4FG&y+SvikXn5ZJ&h%Rhf2 zfFa}FO6jpJ@UL>NTJzKH!OxIy`}3NNwc&F(akPB9yU(_E1M1sSwT6E{0)_$h`mRc-@1{AKFr2#}<$eP)}zkK zKhvgasJ;2FBB>`)7Lx21O$qypP8Ts2^WB#CcTUd*mmi0*6z)C${Fg2Dpbu$}J2*LU zVE@GdSC^m|ZTClamTbObYG(I3daxrm;vcsnSAAjE@E&#GZgd8_ipP2$=NxwpQ1?iA zzG&sv1D8)mq`c<;TKl`9eCBSJ9kuXy&!U9nO40U?j$AorsA-9$|I;hkpOzlq?)LD` ztt)4#lnM)MIP~4NJ$__YJHv%7^1(ii-ZAFBEBt&KPJR9M>J^Bbj7t7)h5GCIRdTSb z#Dw6I^s(&khs)h|9@l|qXUSGp;5kFzYY5Lsn$uk5RIhI>T%=gUUXR5+@#|arwCjc) z^64R#;@|v<>z=!Qw4kphoEwRXM`{4~h!D$*{yaK*#Sac(M|N@FHBnze$?OtaH0etI zxOeiwl>IRsns7a1;P|%mAyMC*JO||3d6weYt2pI+Uzp2srN=koODYr3@98~ircSY7 zW2_>w=ajV3y8Nzla+hi|W8i^(?q=9@tE>Fp^#PZwfA2obgl7L5YI?j5-}3(ePIVqO Sd~xZiSvq)aXi#M!ap*5zBiL#H literal 0 HcmV?d00001 diff --git a/public/assets/android-chrome-512x512.png b/public/assets/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..14de528b6b8878d081a881850cc3cb35c26df9bc GIT binary patch literal 4091 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 literal 0 HcmV?d00001 diff --git a/public/assets/apple-touch-icon.png b/public/assets/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7620245c425ac8b9df0e618c9ffe4b706a0f1331 GIT binary patch literal 1749 zcmYLJeLRzE7=AOI)`xS1%2zCPA|KmiN`BImu~8XG*6+wf&P!pjSnEurWM@tE!IE># z#)(qCmKLh@<*PaE%{f^TQzu5$DlsWL@3ubP-~C?i{ap8TU(fwMe>`mRR)3>;mh%7r zFd`9sL*TDS`yvrA&NH2Wan^qF=1>BhfHj(A$+(6Oz(JQxXexm3@fV;e(}k|8)#Sk% zHBB;36RQ|)8m$r*z{m$+QlIFpzG1Rtf~IXzF(j%lq<#y1V+8<8G+IHMh9QP!UjmfD zqzX3IB2VWp)@a+mj>iyd1vHq{G4L)Kk}o+dgMAnhwYCKBqVLk-H-9+MH-2OEVt5H# z!TA>fAJ8xLVm+@f=^J$ueji&;!U*dA_uEoCM!D9COe)w0A9@-+Wa~BnDd#KN)Jh3W zF0PPNFpwyfv9Us#gO^h?sNqBhlp=#@p2N$)%G-#>6-e_uS~${JhDFkh$$WDj(i}-v zDUl2ZEEQFwKq8Iv)MSYVD958}!qr5TtPN$Z7UPXQ9F!G&nTo*!@OZJyzKx0 zhQ%abpHRlE(c78uJU|BjbLEms18u5%cov5gr)=1FJZ7rKx*N)C6GRDt7Jbvh=Z8t| z@yT^J+Gld_YS`O0g&Ij4df5i&x_X;5(YTWId_szP?g`JtX^i0dsRF`#HsXd|*Ufu| zmV!sIuRWylz=r#fUy5ucXHdRUG*OI>S9_=bl;d?WK5TDB z)(Sh^w)&?;#1sR#ny&`rrEX?Cw|*lj~gi!t($D!$sGRsMy1h z{8)T;V{xJ1(Dh4TvIvE4e*6+zbCY^)bq^t8Lz}QRZ(zQ~eBmT1I?VF(%*wsRE_YDn zWg!dvF!?Q>xQh{SxOGQk2iKareuh%YYBNg>k|?2B2cZ7n`-3b;qITi4?%Z(1I!0Qd ztL#7i5ckZMv8B5?k?PhWus-2AFyP1(3=#K6<~&w;`|vM#QYquRGI0g2&P72D%!^JX zE}WZzJFD-3wIA1aR1IYBftEdLM6(A!c?H}F?7gToo4f0Q;QG<~&9Z&L<8R7d_80oq z8@)I_=F$`uF^<>}m$1oZ>9}H{+u_M!H$Stbp-fgY&NJ{xc@z{`_|!W5GWJk4p89%D z7t7?Ar(JKGUSe5DpLBlGCVyPAwE20hGc(I@h7tj3Vv7EayCjIrR{)KIxA|6%t&e@D ziHegWC;Y;BG4bQCbN|B!3NQ7BitLzN!(*&xP}}~y1L7&@Rl12s=?3P-tKBtI(5-yx zf_GqW#`%s||NdprdMay28httild><7F2cJ!C>_0B^oC$!bS<@j?ti!; z7yd3!t#b4cErl$&LNB-0M_7eA+>-U1m-9~S`Jz9)OKNMsr=?`u9wh<5K@!c|JwwckGt zCdaIRYG$8X$ID(upy0^4AN&wj)kO5M0!%6i=XEgl%I4d^hmQ66or?ueyOHhcM*9F0 z?yBlc$aMf_AHHU{WF=U}tP`KGV*-nRP-S&MIvnVy|R&d + + + + + #111111 + + + diff --git a/public/assets/favicon-16x16.png b/public/assets/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..3186b4186e944d321255e8ed201e337d4bbfdfb8 GIT binary patch literal 310 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 aGT!6g9+~P`H=>ttOLxGKlrYZ!jP+mQ{Q{%_ literal 0 HcmV?d00001 diff --git a/public/assets/icon.png b/public/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1f5ade57f6037d91079ec681893265b0e773ea89 GIT binary patch literal 4052 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 Hf0XcFgo5ms literal 0 HcmV?d00001 diff --git a/public/assets/mstile-150x150.png b/public/assets/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..08ccc4d64452cdc363cbb5934445e82c2273ada5 GIT binary patch literal 1427 zcmeAS@N?(olHy`uVBq!ia0y~yVB`Z~4rZW;e?I4QASWikC&U%VEjaK46a8O-5U)7! z0j}Wx0+4vofo~86K=S_*1`r8RzvDlgjgXoFlLc7>G76#wN-hB!_yK4vkP9>xX3>X= z9sj{>kot-f{~-#{^a8m>2YzI1fLaPsQ?cVm#s!dG5Ep_V&I7xx0;vALe~_DDQb3gj zJAk%)C^+#S=zxY5{~Le`;Cj&*K#j|w{)MP1IPe7|G65u5a^M>%WR`-$1ZeEdZEHh7 z;ad{q7tF9?!;1?A4iXbGcFYi{_z=J`;fKJD6(1BF6a*|15-$AM!BJrGK%nDB#R-WQ z9s)ByG@LNt_@NOYVDR8Tguw<6jSn0@GCCGWa4b+LXz2LBaX>-ffk!}tfq(?Z4Gs9A4vhut&bT-+Fff;Sx;TbZFupn12y_U;;RU~gjJv(9bXzX>`E3{WzW*J*_vG8J znQHP1lj}1j|7Z!fx$gc|kWk`uu<@Prg9q=|9zWi0am3&8T(iGxdOFMNb!;*nv8?QF zd;dK9?k&_iU9o;*P(i^-hAmN61q(JS7bh4o`KP|HwExoD+0@+KxOovX`!aD=zQ7mW z3?GEuUkAwYnVqq`bv(}J#ev4nT71cO-@V)_H>KSrc(M??c(d8MQj-S-+Lkg5AG@Ul zw;N^d*{OX}=1h6hjd_=+J8voSU0ipPImC0y-3gX8i?F6gWFt9ORmcnT3P&k$K-lHeOBN2U`5};kE})E3xd;RqQBfx^!TZC`GjtR>+H{` ze)?GcIrCAu{!&+mO{3VIbq}*Mx%tIbHb}ZZR{v!YVZ&pnj<6-|8SrM5T^WvRczOzKkOTP6{ zZT&3eaOHJ6g@2@ld>sVtM%{lOkSB9<$4%83#m@SBH<})Aal2zVqtJn6V{Hn1A5Y=U zDVE1KN?)v9ZGU|Gk%{tWEFTE}n}1J+`O&6iFFrk$d!Z%IGbYuzt$L=hO>pu2muDxQ z7P_8&;5txF?OxlLXDj$$ZqIs_U_bx2D8nlDLQ(eXqVMf5&Q$&y+gUD=y!7io*}rqb z3kwwIEjY?$J(;V|)!gfM-<9~+we`!YJny9OxpXc$v+>Q1jc@LixE*Ai&vw7ig#Ukp z>dH5E9Za4_uL(N3giEZ6$Z>y^p!#ga7kjsO4v literal 0 HcmV?d00001 diff --git a/public/assets/mstile-310x150.png b/public/assets/mstile-310x150.png new file mode 100644 index 0000000000000000000000000000000000000000..81721191a4e0e688536ddf98aa26bd8776e444f8 GIT binary patch literal 1533 zcmeAS@N?(olHy`uVBq!ia0y~yVA5k?VC3Uq28ztQkmCmA#02<+xB|Ha2Yz6p|0@vU z6$d`R75rZS5-&RN4M+mjfY1^!2~oe}KSU5J3zV9HBn#G305%Px5y%D_2sLK~1H@Rc zT^}lT{0A~BPJj%AYXKPxb-<5|4N$wF+F|BY?D&y!0YeI`s{rV{B@7h@eqmfewim z9s)B?-1yLN!hqw4zypnlhyw;1A2XLl_zs{9P%&k_p5l z1*F~Ao2BgDWWZCeYi?|OdB)6{wmw_VoSAv=zx+nu)DA7nZ#qwlvnJ%dUwFZGTl~QV zY|M%}`JB5n&rAKAKYtN(djWf5V9m7&+?DqkPAymOm*4NN^pnX-zV}G@H1CF#$A4lv z0Ia=6> zpUTPH$>UFVOc`s=mJb}soaX~k}??UP~}_NLo>a}`|i+2NnZdDVuAsX@&t zx9K&uIJaL-2HCO4=IVTI7>8j^t>x%VS*|bA-r_Wbr-pnz1JHO)T5{C&>YcAz= zZ=AAh|2+o}J$2~V5VuiU)Gx5^tm^mJRH@|4Q|I2x{BOMu9 zT+anNnRUfOC!R{xt2nF1eVO4;aFw2ij^NS<4oUWlpDxn+l<=tCZ1$eR2cCA#?-H*v#jm?&WN1z-~S!Eu+aTHYwGEh;`L2ZU+3w0*yVpXkoLRA zVy@q#br*J>dU~%v_;-O)px$AHU2VIy$>mp)df1B>}GJ{ewEnn fRjj0BJwj?3U$q)*t(U5_04elz^>bP0l+XkKQa!K< literal 0 HcmV?d00001 diff --git a/public/assets/mstile-310x310.png b/public/assets/mstile-310x310.png new file mode 100644 index 0000000000000000000000000000000000000000..e5d0965319fea532b72a778a831b609a6161bdd1 GIT binary patch literal 2716 zcmcgtXH*mU7LUuaa$J$3NDvWMU78qrRj^TC5Rk5nfC>u&SumkQLX~GB6j6wQNC|2% zAVn0Ap(U=75+rmCy-0w7XatN%N!|b+-+p)>-lv`OpE>v5|F7ITGiN5j-quol+n#MO z7);#S%FF=<`w6jriitp#(saxm47MfS-p0usN`vW3Kb9X|_#^&%Abh+I6H;N&f&w(1 z|0CXnL4eJzAFv^p3O1#NwIfqEmuV(IG&XowEMnuMG9zh5`qH(0#QdT`Zx0Eq!nZI-t& z^cbQ-9Bdt7yi|KXNkg~M+xw~QOVj%$tCp%xu%BUheq{P6mU=?P%8h=z$tyOaDP!6` zmOO=$=Wbc0l7gNcQjE&V4<4IZ>E|Ev!VqU!cV!>FiRQhdAc(Bz870IPR zwip?{WJtGfYPS;OO;<_6sqE=kF+ZvsT%|bg^$8eE3~6n4(h0j|Zb$@oh+9J+Q-00n zvn!7jx6*Ey?4HS9=&A|R4Abt)CMZ5`je>&x0QW9|wdD`v^fPe4)zOk~~lk_0V1RKa5@Y*@$ zU^84uLcWe;(+zYCWM$iExPvZPE6Wj1Pb<` z`U;@#qEj2iuzpu-{a&k9mL=nbjz~DGf{6Tfa>pN?kK@5~B@HJQ1)h!XVLb``(}J(xSHfE8T9yP1fWFW=dET+RNw!j)8KJuZN zRqcA~;K%&V#n*UnwV<^8$N{B9;w0i{y(Y@VubJfyi*sAc#s!7Z`REOj%FcyMXE zyAKfIg2&eq%6(NljMIm)#)Gzqt%>iJgG57{C}W*D`KapBHP`b#Wp$Rs&cOomZcsNe zGQZ&dpdgM`akm9nxC!^ahul7*ZqSZ;7C&k)4~ED*RTtH3ri^tkuWs*Z8&AH`?On?O zOf_6)CHzy7SN<@L+VwOtodlqahy@Ru1!N15A&awXP{TQ<#f`aOxEiDnzxv-r4v%#Q zh9`m_)Oy`^%sgmu^RHxILad-yM5zIYg@Qg#FWShZs7JP2pNJ8;l04>uHZnP1)T0RH zpUZm{-J5*ASqb29e^Se-^Rs?M6@y(xFZW{Z$j*kEHwKrzJh$2eey|Rxlb4CAp)|>D z*QfE(a{H_TqTmF8%T;@>biI0VeyZC8QMZCmwy|hzuX*vX7{x*B6))tL^`_kIoCs_a z9M;HrcOj6hZ2Xq${>qC3%(p!3?D%v+XU5ZdfdSloxvN{3m{~rIH6ZHCd0THfe43W@ zuPE7gXb4T8EEH!iS42v-Ch=W$rRbMdA9Ww~@_Q}QDFzym$8bleL5TONzElE$Pmu6H zMH$V1y405hh6H(gJ_VB~NvDr^#9a(vBoHbd#SBP=PV%V7^RqMt3=^;Vc4$@~r(Q+m z<|lEtq9&vdmQH!hkdV>nZ-@GuIn2wrME{(YoK^CG3*sud9a)SqBB4txa9|dx9hr>* zO>@zImS-XZE8@#op!(yiH+}}hdGyVi>;0U0!3idODSr)!uuPQwrBpPug=5Y9cA-2M zxmP9psKX1O!I8Bnd;AblLMcf@ua#rZ1Qno+eYRG&U%p$FDB;MW<*Z%=8N0W3_h=FG z;?gm?(O!s{PnBU#uL1t!tTI0h;#;3aC0o(ZW}k3oRSe%jSAF}-3}p12pBmK~(U#w( zws85@r?*KGYx*9>A(QVF?;&kSVFCAB#uo_U=wzGSVRt05ftA0~P3u03pusN>=I`fp z|3=JvQ>P;ll$BJJ7jw><`zQ@HC9S;N@_>3a9zfsJnDa2CVfoP!9PaB%OhSwx8C9dO z&|~)XE)(24{V}@KAK{~Ps}V6`Hw#3?I3J!peoH}~GPE}9saU2xWRx2&OTZ+oJu;^N zHyd2FGli%7*^8&r@BfmB2N|sQHwawYvlel3Oa9^BqsAl5Rq3F>+#(XPR>!?)x?VD*p#*ZAkI)9w zOGf0Z2z9yHiD6D}afhZ;IRYk_E@I>AJ!Fzz-&Tsav-Xi+<0(;mgd#Q; zq6lc!tr?LBjyPpOF!o{GSEsdRpU&y8DNNV6i7D8|sR;O|QD zl}sQeCP=%^(>V{$*ch^MD!Bht8O1D&}&%SFZGpxFojuTDK%WTix+z|3wdQePD^&Apb#@Cxr9y zJD=wpSSKFg3(60u>bv`k^~bq5YsR?rz`JXGSQebWzN`D5=(*tO)~ct(3IZP0He6!8 ztyjDvck{Q<2R8!06ck?FsZp!l;Kp$9_uVtsnVAlJv{xx^W*Hu>942`wCAJ|zOnASgIF;8r zsaYIk=B|X36BrWY{|hLT8|`IqV6hh$s@d~=(RGQy1~c7zEE-GZ<#o+D%H<%`!tu&e zvgQes!h(B`N=kK%g&!Q+cz^Q3T`%|FuduvW@cqSEE{B7$jV?XEgBmWcwwmfR;jP5m z;JedTSD6YOxyr&6!MH@BdVz>W-_-dm4n-D=7~Ea&mRK>aVfeIRLlDP-JRaeH7rq_6 ze^B~))w~D>?S^IL8B>^^oU8Nrt@%1^SBjxy--ZyzYxXy?i+Tl;qZl(X0$Ar4vHJer zvH5m@+q`apgKy_+KRBqw>M?=AcJpa-;TMZ~H4nroA8<4m?O9{5l%e(G@pjiQv$q@( zEq^QU!Byi#GS>kUrX%rl*$@2tBw23nQFU%{*|WQA7Lr-??x9 z0NuVxj`14vH6|&;*X^4^d?JsZ+cR6#fhF9BFLT%b#~)Tc@SYd)R;twUtVmczt@X#v zOj{)TT5Ee$4lI2BuAi6Xfzkn^qM!~V|C?`&8_MJyY`7J~>P)&_WSDj+Z}Z>WxJ994 zPBfEtL*1L@q6Z6EA29Z94_Uv3>5K|Plk|&Ybx}fP@)zy; z8iqyZJb#%#@YiS%Wq4e*g!7MN$RkO|E1wU%5@cHB=kay94A&Y4r41YfoqBfcnoaxM zcQV?sM%UFT9Qw!hv@D15#pcc}avLJ=I0^Xekx^oJb#z6&nGBPSK-vDevK|62ctUPm zZwR|+Y{2oT|LVWrlMhumu#~WL=aHx{iC-gf8dLtcx<6DI2!uI}|-Gv!Gk zmjSz}hQbNPBNcm@84KR$+-K&wvdq(Ph2uM)jW>J6nkNYS%e~JBDhMPven$5ve%I^I g;$_Cn^iYuso`cev6JFmCHU$ZIy85}Sb4q9e0A>T-Bme*a literal 0 HcmV?d00001 diff --git a/public/assets/safari-pinned-tab.svg b/public/assets/safari-pinned-tab.svg new file mode 100644 index 00000000..d90a7357 --- /dev/null +++ b/public/assets/safari-pinned-tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/assets/site.webmanifest b/public/assets/site.webmanifest new file mode 100644 index 00000000..0c8e62dd --- /dev/null +++ b/public/assets/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/assets/images/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/assets/images/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#111111", + "background_color": "#111111", + "display": "standalone" +} diff --git a/astro-migration/public/favicon.svg b/public/favicon.svg similarity index 100% rename from astro-migration/public/favicon.svg rename to public/favicon.svg diff --git a/astro-migration/src/assets/houston.webp b/src/assets/houston.webp similarity index 100% rename from astro-migration/src/assets/houston.webp rename to src/assets/houston.webp diff --git a/src/assets/logo.png b/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2be23113f88b8380acebdcf6ff3810f3b55c014a GIT binary patch literal 7414 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 KQL0n0iTN)_&su;0 literal 0 HcmV?d00001 diff --git a/astro-migration/src/components/FeedDirectory.astro b/src/components/FeedDirectory.astro similarity index 100% rename from astro-migration/src/components/FeedDirectory.astro rename to src/components/FeedDirectory.astro diff --git a/astro-migration/src/content.config.ts b/src/content.config.ts similarity index 100% rename from astro-migration/src/content.config.ts rename to src/content.config.ts diff --git a/astro-migration/src/content/docs/about.mdx b/src/content/docs/about.mdx similarity index 100% rename from astro-migration/src/content/docs/about.mdx rename to src/content/docs/about.mdx diff --git a/astro-migration/src/content/docs/configs.mdx b/src/content/docs/configs.mdx similarity index 100% rename from astro-migration/src/content/docs/configs.mdx rename to src/content/docs/configs.mdx diff --git a/astro-migration/src/content/docs/feed-directory/index.mdx b/src/content/docs/feed-directory/index.mdx similarity index 100% rename from astro-migration/src/content/docs/feed-directory/index.mdx rename to src/content/docs/feed-directory/index.mdx diff --git a/astro-migration/src/content/docs/get-involved/contributing.mdx b/src/content/docs/get-involved/contributing.mdx similarity index 100% rename from astro-migration/src/content/docs/get-involved/contributing.mdx rename to src/content/docs/get-involved/contributing.mdx diff --git a/astro-migration/src/content/docs/get-involved/discussions.mdx b/src/content/docs/get-involved/discussions.mdx similarity index 100% rename from astro-migration/src/content/docs/get-involved/discussions.mdx rename to src/content/docs/get-involved/discussions.mdx diff --git a/astro-migration/src/content/docs/get-involved/index.mdx b/src/content/docs/get-involved/index.mdx similarity index 100% rename from astro-migration/src/content/docs/get-involved/index.mdx rename to src/content/docs/get-involved/index.mdx diff --git a/astro-migration/src/content/docs/get-involved/issues-and-features.mdx b/src/content/docs/get-involved/issues-and-features.mdx similarity index 100% rename from astro-migration/src/content/docs/get-involved/issues-and-features.mdx rename to src/content/docs/get-involved/issues-and-features.mdx diff --git a/astro-migration/src/content/docs/get-involved/sponsoring.mdx b/src/content/docs/get-involved/sponsoring.mdx similarity index 100% rename from astro-migration/src/content/docs/get-involved/sponsoring.mdx rename to src/content/docs/get-involved/sponsoring.mdx diff --git a/astro-migration/src/content/docs/guides/example.md b/src/content/docs/guides/example.md similarity index 100% rename from astro-migration/src/content/docs/guides/example.md rename to src/content/docs/guides/example.md diff --git a/astro-migration/src/content/docs/html2rss-configs.mdx b/src/content/docs/html2rss-configs.mdx similarity index 100% rename from astro-migration/src/content/docs/html2rss-configs.mdx rename to src/content/docs/html2rss-configs.mdx diff --git a/astro-migration/src/content/docs/index.mdx b/src/content/docs/index.mdx similarity index 100% rename from astro-migration/src/content/docs/index.mdx rename to src/content/docs/index.mdx diff --git a/astro-migration/src/content/docs/reference/example.md b/src/content/docs/reference/example.md similarity index 100% rename from astro-migration/src/content/docs/reference/example.md rename to src/content/docs/reference/example.md diff --git a/astro-migration/src/content/docs/ruby-gem/how-to/advanced-content-extraction.mdx b/src/content/docs/ruby-gem/how-to/advanced-content-extraction.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/how-to/advanced-content-extraction.mdx rename to src/content/docs/ruby-gem/how-to/advanced-content-extraction.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/how-to/custom-http-requests.mdx b/src/content/docs/ruby-gem/how-to/custom-http-requests.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/how-to/custom-http-requests.mdx rename to src/content/docs/ruby-gem/how-to/custom-http-requests.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/how-to/dynamic-parameters.mdx b/src/content/docs/ruby-gem/how-to/dynamic-parameters.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/how-to/dynamic-parameters.mdx rename to src/content/docs/ruby-gem/how-to/dynamic-parameters.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/how-to/handling-dynamic-content.mdx b/src/content/docs/ruby-gem/how-to/handling-dynamic-content.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/how-to/handling-dynamic-content.mdx rename to src/content/docs/ruby-gem/how-to/handling-dynamic-content.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/how-to/index.mdx b/src/content/docs/ruby-gem/how-to/index.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/how-to/index.mdx rename to src/content/docs/ruby-gem/how-to/index.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/how-to/managing-feed-configs.mdx b/src/content/docs/ruby-gem/how-to/managing-feed-configs.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/how-to/managing-feed-configs.mdx rename to src/content/docs/ruby-gem/how-to/managing-feed-configs.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/how-to/scraping-json.mdx b/src/content/docs/ruby-gem/how-to/scraping-json.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/how-to/scraping-json.mdx rename to src/content/docs/ruby-gem/how-to/scraping-json.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/how-to/styling-rss-feed.mdx b/src/content/docs/ruby-gem/how-to/styling-rss-feed.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/how-to/styling-rss-feed.mdx rename to src/content/docs/ruby-gem/how-to/styling-rss-feed.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/index.mdx b/src/content/docs/ruby-gem/index.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/index.mdx rename to src/content/docs/ruby-gem/index.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/installation.mdx b/src/content/docs/ruby-gem/installation.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/installation.mdx rename to src/content/docs/ruby-gem/installation.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/reference/auto-source.mdx b/src/content/docs/ruby-gem/reference/auto-source.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/reference/auto-source.mdx rename to src/content/docs/ruby-gem/reference/auto-source.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/reference/channel.mdx b/src/content/docs/ruby-gem/reference/channel.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/reference/channel.mdx rename to src/content/docs/ruby-gem/reference/channel.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/reference/cli-reference.mdx b/src/content/docs/ruby-gem/reference/cli-reference.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/reference/cli-reference.mdx rename to src/content/docs/ruby-gem/reference/cli-reference.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/reference/headers.mdx b/src/content/docs/ruby-gem/reference/headers.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/reference/headers.mdx rename to src/content/docs/ruby-gem/reference/headers.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/reference/index.mdx b/src/content/docs/ruby-gem/reference/index.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/reference/index.mdx rename to src/content/docs/ruby-gem/reference/index.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/reference/selectors.mdx b/src/content/docs/ruby-gem/reference/selectors.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/reference/selectors.mdx rename to src/content/docs/ruby-gem/reference/selectors.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/reference/strategy.mdx b/src/content/docs/ruby-gem/reference/strategy.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/reference/strategy.mdx rename to src/content/docs/ruby-gem/reference/strategy.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/reference/stylesheets.mdx b/src/content/docs/ruby-gem/reference/stylesheets.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/reference/stylesheets.mdx rename to src/content/docs/ruby-gem/reference/stylesheets.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/tutorials/index.mdx b/src/content/docs/ruby-gem/tutorials/index.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/tutorials/index.mdx rename to src/content/docs/ruby-gem/tutorials/index.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/tutorials/simple-blog-list.mdx b/src/content/docs/ruby-gem/tutorials/simple-blog-list.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/tutorials/simple-blog-list.mdx rename to src/content/docs/ruby-gem/tutorials/simple-blog-list.mdx diff --git a/astro-migration/src/content/docs/ruby-gem/tutorials/your-first-feed.mdx b/src/content/docs/ruby-gem/tutorials/your-first-feed.mdx similarity index 100% rename from astro-migration/src/content/docs/ruby-gem/tutorials/your-first-feed.mdx rename to src/content/docs/ruby-gem/tutorials/your-first-feed.mdx diff --git a/astro-migration/src/content/docs/support/troubleshooting.mdx b/src/content/docs/support/troubleshooting.mdx similarity index 100% rename from astro-migration/src/content/docs/support/troubleshooting.mdx rename to src/content/docs/support/troubleshooting.mdx diff --git a/astro-migration/src/content/docs/web-application/getting-started.mdx b/src/content/docs/web-application/getting-started.mdx similarity index 100% rename from astro-migration/src/content/docs/web-application/getting-started.mdx rename to src/content/docs/web-application/getting-started.mdx diff --git a/astro-migration/src/content/docs/web-application/how-to/automatic-updates.mdx b/src/content/docs/web-application/how-to/automatic-updates.mdx similarity index 100% rename from astro-migration/src/content/docs/web-application/how-to/automatic-updates.mdx rename to src/content/docs/web-application/how-to/automatic-updates.mdx diff --git a/astro-migration/src/content/docs/web-application/how-to/deployment.mdx b/src/content/docs/web-application/how-to/deployment.mdx similarity index 100% rename from astro-migration/src/content/docs/web-application/how-to/deployment.mdx rename to src/content/docs/web-application/how-to/deployment.mdx diff --git a/astro-migration/src/content/docs/web-application/how-to/index.mdx b/src/content/docs/web-application/how-to/index.mdx similarity index 100% rename from astro-migration/src/content/docs/web-application/how-to/index.mdx rename to src/content/docs/web-application/how-to/index.mdx diff --git a/astro-migration/src/content/docs/web-application/how-to/setup-for-development.mdx b/src/content/docs/web-application/how-to/setup-for-development.mdx similarity index 100% rename from astro-migration/src/content/docs/web-application/how-to/setup-for-development.mdx rename to src/content/docs/web-application/how-to/setup-for-development.mdx diff --git a/astro-migration/src/content/docs/web-application/how-to/use-automatic-feed-generation.mdx b/src/content/docs/web-application/how-to/use-automatic-feed-generation.mdx similarity index 100% rename from astro-migration/src/content/docs/web-application/how-to/use-automatic-feed-generation.mdx rename to src/content/docs/web-application/how-to/use-automatic-feed-generation.mdx diff --git a/astro-migration/src/content/docs/web-application/how-to/use-in-production.mdx b/src/content/docs/web-application/how-to/use-in-production.mdx similarity index 100% rename from astro-migration/src/content/docs/web-application/how-to/use-in-production.mdx rename to src/content/docs/web-application/how-to/use-in-production.mdx diff --git a/astro-migration/src/content/docs/web-application/how-to/use-included-configs.mdx b/src/content/docs/web-application/how-to/use-included-configs.mdx similarity index 100% rename from astro-migration/src/content/docs/web-application/how-to/use-included-configs.mdx rename to src/content/docs/web-application/how-to/use-included-configs.mdx diff --git a/astro-migration/src/content/docs/web-application/index.mdx b/src/content/docs/web-application/index.mdx similarity index 100% rename from astro-migration/src/content/docs/web-application/index.mdx rename to src/content/docs/web-application/index.mdx diff --git a/astro-migration/src/content/docs/web-application/installation.mdx b/src/content/docs/web-application/installation.mdx similarity index 100% rename from astro-migration/src/content/docs/web-application/installation.mdx rename to src/content/docs/web-application/installation.mdx diff --git a/astro-migration/src/content/docs/web-application/reference/env-variables.mdx b/src/content/docs/web-application/reference/env-variables.mdx similarity index 100% rename from astro-migration/src/content/docs/web-application/reference/env-variables.mdx rename to src/content/docs/web-application/reference/env-variables.mdx diff --git a/astro-migration/src/content/docs/web-application/reference/index.mdx b/src/content/docs/web-application/reference/index.mdx similarity index 100% rename from astro-migration/src/content/docs/web-application/reference/index.mdx rename to src/content/docs/web-application/reference/index.mdx diff --git a/astro-migration/src/content/docs/web-application/reference/monitoring.mdx b/src/content/docs/web-application/reference/monitoring.mdx similarity index 100% rename from astro-migration/src/content/docs/web-application/reference/monitoring.mdx rename to src/content/docs/web-application/reference/monitoring.mdx diff --git a/astro-migration/src/content/docs/web-application/reference/versioning-and-releases.mdx b/src/content/docs/web-application/reference/versioning-and-releases.mdx similarity index 100% rename from astro-migration/src/content/docs/web-application/reference/versioning-and-releases.mdx rename to src/content/docs/web-application/reference/versioning-and-releases.mdx diff --git a/astro-migration/src/content/docs/web-application/tutorials/building-feeds.mdx b/src/content/docs/web-application/tutorials/building-feeds.mdx similarity index 100% rename from astro-migration/src/content/docs/web-application/tutorials/building-feeds.mdx rename to src/content/docs/web-application/tutorials/building-feeds.mdx diff --git a/astro-migration/src/content/docs/web-application/tutorials/index.mdx b/src/content/docs/web-application/tutorials/index.mdx similarity index 100% rename from astro-migration/src/content/docs/web-application/tutorials/index.mdx rename to src/content/docs/web-application/tutorials/index.mdx diff --git a/astro-migration/src/data/configs.json b/src/data/configs.json similarity index 100% rename from astro-migration/src/data/configs.json rename to src/data/configs.json diff --git a/astro-migration/src/data/loadConfigs.ts b/src/data/loadConfigs.ts similarity index 100% rename from astro-migration/src/data/loadConfigs.ts rename to src/data/loadConfigs.ts diff --git a/astro-migration/src/middleware.ts b/src/middleware.ts similarity index 100% rename from astro-migration/src/middleware.ts rename to src/middleware.ts diff --git a/astro-migration/src/types/global.d.ts b/src/types/global.d.ts similarity index 100% rename from astro-migration/src/types/global.d.ts rename to src/types/global.d.ts diff --git a/astro-migration/tsconfig.json b/tsconfig.json similarity index 100% rename from astro-migration/tsconfig.json rename to tsconfig.json diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index c7521124..00000000 --- a/yarn.lock +++ /dev/null @@ -1,845 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz" - integrity sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw== - dependencies: - "@babel/highlight" "^7.10.1" - -"@babel/helper-validator-identifier@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz" - integrity sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw== - -"@babel/highlight@^7.10.1": - version "7.10.1" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz" - integrity sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg== - dependencies: - "@babel/helper-validator-identifier" "^7.10.1" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@csstools/css-parser-algorithms@^3.0.5": - version "3.0.5" - resolved "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz" - integrity sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ== - -"@csstools/css-tokenizer@^3.0.4": - version "3.0.4" - resolved "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz" - integrity sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw== - -"@csstools/media-query-list-parser@^4.0.3": - version "4.0.3" - resolved "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz" - integrity sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ== - -"@csstools/selector-specificity@^5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz" - integrity sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw== - -"@dual-bundle/import-meta-resolve@^4.1.0": - version "4.1.0" - resolved "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz" - integrity sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg== - -"@keyv/serialize@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.0.tgz" - integrity sha512-RlDgexML7Z63Q8BSaqhXdCYNBy/JQnqYIwxofUrNLGCblOMHp+xux2Q8nLMLlPpgHQPoU0Do8Z6btCpRBEqZ8g== - -"@nodelib/fs.scandir@2.1.3": - version "2.1.3" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz" - integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== - dependencies: - "@nodelib/fs.stat" "2.0.3" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": - version "2.0.3" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz" - integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.4" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz" - integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== - dependencies: - "@nodelib/fs.scandir" "2.1.3" - fastq "^1.6.0" - -ajv@^8.0.1: - version "8.3.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.3.0.tgz" - integrity sha512-RYE7B5An83d7eWnDR8kbdaIFqmKCNsP16ay1hDbJEU+sa0e3H9SebskCt0Uufem6cfAVu7Col6ubcn/W+Sm8/Q== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -balanced-match@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz" - integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== - -braces@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -cacheable@^1.10.4: - version "1.10.4" - resolved "https://registry.yarnpkg.com/cacheable/-/cacheable-1.10.4.tgz#874c7ac005e9127e1daa3b09dbb4fd01743a4e91" - integrity sha512-Gd7ccIUkZ9TE2odLQVS+PDjIvQCdJKUlLdJRVvZu0aipj07Qfx+XIej7hhDrKGGoIxV5m5fT/kOJNJPQhQneRg== - dependencies: - hookified "^1.11.0" - keyv "^5.5.0" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -chalk@^2.0.0: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colord@^2.9.3: - version "2.9.3" - resolved "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz" - integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== - -cosmiconfig@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz" - integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== - dependencies: - env-paths "^2.2.1" - import-fresh "^3.3.0" - js-yaml "^4.1.0" - parse-json "^5.2.0" - -css-functions-list@^3.2.3: - version "3.2.3" - resolved "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz" - integrity sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA== - -css-tree@^3.0.1, css-tree@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz" - integrity sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w== - dependencies: - mdn-data "2.12.2" - source-map-js "^1.0.1" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -debug@^4.4.1: - version "4.4.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz" - integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== - dependencies: - ms "^2.1.3" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -env-paths@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.2.9, fast-glob@^3.3.3: - version "3.3.3" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz" - integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.8" - -fastest-levenshtein@^1.0.16: - version "1.0.16" - resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz" - integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== - -fastq@^1.6.0: - version "1.8.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz" - integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== - dependencies: - reusify "^1.0.4" - -file-entry-cache@^10.1.4: - version "10.1.4" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-10.1.4.tgz#1e81441517dc33ba5fe14421d96dc5fe7e37e820" - integrity sha512-5XRUFc0WTtUbjfGzEwXc42tiGxQHBmtbUG1h9L2apu4SulCGN3Hqm//9D6FAolf8MYNL7f/YlJl9vy08pj5JuA== - dependencies: - flat-cache "^6.1.13" - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -flat-cache@^6.1.13: - version "6.1.13" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-6.1.13.tgz#7428e97be2aa918f371e880ebbf7f61ff48f33fa" - integrity sha512-gmtS2PaUjSPa4zjObEIn4WWliKyZzYljgxODBfxugpK6q6HU9ClXzgCJ+nlcPKY9Bt090ypTOLIFWkV0jbKFjw== - dependencies: - cacheable "^1.10.4" - flatted "^3.3.3" - hookified "^1.11.0" - -flatted@^3.3.3: - version "3.3.3" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz" - integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== - -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -globjoin@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz" - integrity sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -hookified@^1.11.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/hookified/-/hookified-1.12.0.tgz#eb4097ed1459211eef47fe85a8b3382c5f633996" - integrity sha512-hMr1Y9TCLshScrBbV2QxJ9BROddxZ12MX9KsCtuGGy/3SmmN5H1PllKerrVlSotur9dlE8hmUKAOSa3WDzsZmQ== - -html-tags@^3.3.1: - version "3.3.1" - resolved "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz" - integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== - -ignore@^5.2.0: - version "5.3.2" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz" - integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== - -ignore@^7.0.5: - version "7.0.5" - resolved "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz" - integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== - -import-fresh@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -ini@^1.3.5: - version "1.3.8" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-object@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -keyv@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-5.5.0.tgz#0ad5037484a7e01b033df7018033b5cc9ca7884f" - integrity sha512-QG7qR2tijh1ftOvClut4YKKg1iW6cx3GZsKoGyJPxHkGWK9oJhG9P3j5deP0QQOGDowBMVQFaP+Vm4NpGYvmIQ== - dependencies: - "@keyv/serialize" "^1.1.0" - -kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -known-css-properties@^0.36.0: - version "0.36.0" - resolved "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.36.0.tgz" - integrity sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA== - -known-css-properties@^0.37.0: - version "0.37.0" - resolved "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz" - integrity sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ== - -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" - integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= - -mathml-tag-names@^2.1.3: - version "2.1.3" - resolved "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz" - integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== - -mdn-data@2.12.2: - version "2.12.2" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz" - integrity sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA== - -mdn-data@^2.21.0: - version "2.21.0" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.21.0.tgz" - integrity sha512-+ZKPQezM5vYJIkCxaC+4DTnRrVZR1CgsKLu5zsQERQx6Tea8Y+wMx5A24rq8A8NepCeatIQufVAekKNgiBMsGQ== - -meow@^13.2.0: - version "13.2.0" - resolved "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz" - integrity sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" - integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== - dependencies: - braces "^3.0.3" - picomatch "^2.3.1" - -ms@^2.1.3: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nanoid@^3.3.11: - version "3.3.11" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz" - integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -postcss-media-query-parser@^0.2.3: - version "0.2.3" - resolved "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz" - integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ= - -postcss-resolve-nested-selector@^0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz" - integrity sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw== - -postcss-safe-parser@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz" - integrity sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A== - -postcss-scss@^4.0.9: - version "4.0.9" - resolved "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz" - integrity sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A== - -postcss-selector-parser@^7.1.0: - version "7.1.0" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz" - integrity sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-sorting@^9.1.0: - version "9.1.0" - resolved "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-9.1.0.tgz" - integrity sha512-Mn8KJ45HNNG6JBpBizXcyf6LqY/qyqetGcou/nprDnFwBFBLGj0j/sNKV2lj2KMOVOwdXu14aEzqJv8CIV6e8g== - -postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss@^8.5.3, postcss@^8.5.6: - version "8.5.6" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz" - integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== - dependencies: - nanoid "^3.3.11" - picocolors "^1.1.1" - source-map-js "^1.2.1" - -prettier@3.6.2: - version "3.6.2" - resolved "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz" - integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -run-parallel@^1.1.9: - version "1.1.9" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz" - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== - -signal-exit@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz" - integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -source-map-js@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-js@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" - integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== - -string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -stylelint-config-recess-order@7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/stylelint-config-recess-order/-/stylelint-config-recess-order-7.3.0.tgz#0f29306e4ab667cc80a6e6490f9b010a3a14b16a" - integrity sha512-1LZhQi/D6OljSLRKejMEzbZA8h0AKkJH7p2y+eValc9ltWRGVznjnZsNLVCOwYpKk7GlYMLNVYTc9WpA0W3TYQ== - -stylelint-config-recommended-scss@16.0.1: - version "16.0.1" - resolved "https://registry.yarnpkg.com/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-16.0.1.tgz#10ac6dab288832695a4f96f4cdc77a68aa7eca9f" - integrity sha512-wfpU6kmTUwPEHMACYdpt5wLM/aS44+sqE8yk82LkOkA7yVpAuTZDwd3m9762d0mRnNCn0JMUx4XfDVDmbb8hTA== - dependencies: - postcss-scss "^4.0.9" - stylelint-config-recommended "^17.0.0" - stylelint-scss "^6.12.1" - -stylelint-config-recommended@^17.0.0: - version "17.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-17.0.0.tgz#4f77c70609b2d7093cc60bb48adfabdde434aa5d" - integrity sha512-WaMSdEiPfZTSFVoYmJbxorJfA610O0tlYuU2aEwY33UQhSPgFbClrVJYWvy3jGJx+XW37O+LyNLiZOEXhKhJmA== - -stylelint-order@7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/stylelint-order/-/stylelint-order-7.0.0.tgz" - integrity sha512-rSWxx0KscYfxU02wEskKXES9lkRzuuONMMNkZ7SUc6uiF3tDKm7e+sE0Ax/SBlG4TUf1sp1R6f3/SlsPGmzthg== - dependencies: - postcss "^8.5.3" - postcss-sorting "^9.1.0" - -stylelint-scss@6.12.1, stylelint-scss@^6.12.1: - version "6.12.1" - resolved "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.12.1.tgz" - integrity sha512-UJUfBFIvXfly8WKIgmqfmkGKPilKB4L5j38JfsDd+OCg2GBdU0vGUV08Uw82tsRZzd4TbsUURVVNGeOhJVF7pA== - dependencies: - css-tree "^3.0.1" - is-plain-object "^5.0.0" - known-css-properties "^0.36.0" - mdn-data "^2.21.0" - postcss-media-query-parser "^0.2.3" - postcss-resolve-nested-selector "^0.1.6" - postcss-selector-parser "^7.1.0" - postcss-value-parser "^4.2.0" - -stylelint@16.24.0: - version "16.24.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-16.24.0.tgz#a436920636732b496a55665997f2804d1d63b5b6" - integrity sha512-7ksgz3zJaSbTUGr/ujMXvLVKdDhLbGl3R/3arNudH7z88+XZZGNLMTepsY28WlnvEFcuOmUe7fg40Q3lfhOfSQ== - dependencies: - "@csstools/css-parser-algorithms" "^3.0.5" - "@csstools/css-tokenizer" "^3.0.4" - "@csstools/media-query-list-parser" "^4.0.3" - "@csstools/selector-specificity" "^5.0.0" - "@dual-bundle/import-meta-resolve" "^4.1.0" - balanced-match "^2.0.0" - colord "^2.9.3" - cosmiconfig "^9.0.0" - css-functions-list "^3.2.3" - css-tree "^3.1.0" - debug "^4.4.1" - fast-glob "^3.3.3" - fastest-levenshtein "^1.0.16" - file-entry-cache "^10.1.4" - global-modules "^2.0.0" - globby "^11.1.0" - globjoin "^0.1.4" - html-tags "^3.3.1" - ignore "^7.0.5" - imurmurhash "^0.1.4" - is-plain-object "^5.0.0" - known-css-properties "^0.37.0" - mathml-tag-names "^2.1.3" - meow "^13.2.0" - micromatch "^4.0.8" - normalize-path "^3.0.0" - picocolors "^1.1.1" - postcss "^8.5.6" - postcss-resolve-nested-selector "^0.1.6" - postcss-safe-parser "^7.0.1" - postcss-selector-parser "^7.1.0" - postcss-value-parser "^4.2.0" - resolve-from "^5.0.0" - string-width "^4.2.3" - supports-hyperlinks "^3.2.0" - svg-tags "^1.0.0" - table "^6.9.0" - write-file-atomic "^5.0.1" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz" - integrity sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -svg-tags@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz" - integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= - -table@^6.9.0: - version "6.9.0" - resolved "https://registry.npmjs.org/table/-/table-6.9.0.tgz" - integrity sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -which@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -write-file-atomic@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz" - integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^4.0.1" From d501af1ddbb35d0e5b8aed5083387e2e67eabfd0 Mon Sep 17 00:00:00 2001 From: Gil Desmarais Date: Tue, 16 Sep 2025 22:30:01 +0200 Subject: [PATCH 07/33] add missing docs --- ruby-gem/how-to/advanced-features.md | 122 +++++++++++++++++++++ ruby-gem/how-to/backward-compatibility.md | 54 +++++++++ ruby-gem/reference/auto-source.md | 11 ++ ruby-gem/reference/selectors.md | 15 +++ support/troubleshooting.md | 20 ++++ web-application/reference/env-variables.md | 5 +- 6 files changed, 226 insertions(+), 1 deletion(-) create mode 100644 ruby-gem/how-to/advanced-features.md create mode 100644 ruby-gem/how-to/backward-compatibility.md diff --git a/ruby-gem/how-to/advanced-features.md b/ruby-gem/how-to/advanced-features.md new file mode 100644 index 00000000..cbc6cb0f --- /dev/null +++ b/ruby-gem/how-to/advanced-features.md @@ -0,0 +1,122 @@ +--- +layout: default +title: Advanced Features +nav_order: 9 +parent: How-To Guides +grand_parent: Ruby Gem +--- + +# Advanced Features + +This guide covers advanced features and performance optimizations for html2rss. + +## Parallel Processing + +html2rss uses parallel processing to improve performance when scraping multiple items. This happens automatically and doesn't require any configuration. + +### How It Works + +- **Auto-source scraping:** Multiple scrapers run in parallel to analyze the page +- **Item processing:** Each scraped item is processed in parallel +- **Performance benefit:** Significantly faster when dealing with many items + +### Performance Tips + +1. **Use appropriate selectors:** More specific selectors reduce processing time +2. **Limit items when possible:** Use CSS selectors that target only the content you need +3. **Cache responses:** The web application caches responses automatically +4. **Choose the right strategy:** Use `faraday` for static content, `browserless` only when JavaScript is required + +## Memory Optimization + +html2rss is designed to be memory-efficient: + +- **Frozen objects:** Parsed content is frozen to prevent accidental modifications +- **Efficient data structures:** Uses `Set` instead of `Array` for lookups +- **Minimal allocations:** Prefers bang methods to avoid unnecessary memory allocations + +## Large Feed Handling + +For websites with many items: + +```yaml +# Use specific selectors to limit items +selectors: + items: + selector: ".article:not(.advertisement)" # Exclude ads + title: + selector: "h2" # More specific than generic selectors +``` + +## Error Recovery + +html2rss includes built-in error handling: + +- **Graceful degradation:** If one scraper fails, others continue +- **Detailed logging:** Set `LOG_LEVEL=debug` for detailed information +- **Validation:** Configuration is validated before processing + +## Custom Headers for Performance + +Optimize requests with appropriate headers: + +```yaml +headers: + Accept: "text/html,application/xhtml+xml" # Avoid JSON if not needed + Accept-Encoding: "gzip, deflate" # Enable compression + User-Agent: "html2rss/1.0" # Identify your requests +``` + +## Monitoring and Debugging + +### Enable Debug Logging + +```bash +LOG_LEVEL=debug html2rss feed config.yml +``` + +### Web Application Health Checks + +Use the health check endpoint to monitor feed generation: + +```bash +curl -u username:password http://localhost:3000/health_check.txt +``` + +## Article Validation + +html2rss includes built-in validation for articles to ensure feed quality: + +### Validation Rules + +Articles are considered valid if they have: +- A non-empty URL +- Either a title OR description (or both) +- A unique ID + +### Invalid Articles + +Invalid articles are automatically filtered out to prevent empty or broken feed items. + +### Custom Validation + +You can add custom validation by using post-processors: + +```yaml +selectors: + title: + selector: "h2" + post_process: + - name: "gsub" + pattern: "^\\s*$" + replacement: "Untitled" +``` + +## Best Practices + +1. **Test configurations:** Always test your configurations before deploying +2. **Monitor performance:** Use health checks to detect issues early +3. **Keep selectors simple:** Complex selectors are harder to maintain +4. **Use auto-source when possible:** It's often more reliable than manual selectors +5. **Handle errors gracefully:** Implement proper error handling in your applications +6. **Validate your data:** Ensure your selectors return valid content diff --git a/ruby-gem/how-to/backward-compatibility.md b/ruby-gem/how-to/backward-compatibility.md new file mode 100644 index 00000000..a4a49e71 --- /dev/null +++ b/ruby-gem/how-to/backward-compatibility.md @@ -0,0 +1,54 @@ +--- +layout: default +title: Backward Compatibility +nav_order: 11 +parent: How-To Guides +grand_parent: Ruby Gem +--- + +# Backward Compatibility + +html2rss maintains backward compatibility with older configuration formats and attribute names. + +## Renamed Attributes + +Some attribute names have been renamed for clarity, but the old names still work: + +| Current Name | Legacy Names | Description | +| --------------- | ------------------- | ------------------------------ | +| `published_at` | `updated`, `pubDate` | Publication date of the item | + +### Example + +Both of these configurations work identically: + +```yaml +# Current format (recommended) +selectors: + published_at: + selector: ".date" + +# Legacy format (still supported) +selectors: + updated: + selector: ".date" +``` + +## Migration Guide + +If you're upgrading from an older version of html2rss: + +1. **Update attribute names**: Replace `updated` with `published_at` in your configurations +2. **Test your feeds**: Verify that all feeds still work correctly after the update + +## Deprecated Features + +The following features are deprecated but still supported: + +- **Legacy attribute names**: While still supported, use the current names for new configurations + +## Getting Help + +If you encounter issues with backward compatibility: + +- **Report issues**: Open an issue if you find compatibility problems diff --git a/ruby-gem/reference/auto-source.md b/ruby-gem/reference/auto-source.md index ffac4f36..428d5a69 100644 --- a/ruby-gem/reference/auto-source.md +++ b/ruby-gem/reference/auto-source.md @@ -18,6 +18,14 @@ channel: auto_source: {} ``` +## Default Configuration + +When you use `auto_source: {}`, html2rss uses these default settings: + +- **All scrapers enabled:** `schema`, `semantic_html`, `html`, and `rss_feed_detector` +- **HTML scraper settings:** `minimum_selector_frequency: 2`, `use_top_selectors: 5` +- **Cleanup settings:** `keep_different_domain: true`, `min_words_title: 3` + ## How It Works `auto_source` uses the following strategies to find content: @@ -25,6 +33,7 @@ auto_source: {} 1. **`schema`:** Parses ` - -
    -
    -
    - Instance URL - -
    - -
    - Search - -
    -
    -
    - {% for config in site.data.configs %} -
    -
    - {% if config.channel.url %} -
    -

    - {% if config.valid_channel_url %} - - {{ config.channel.url | escape }} - - {% else %} - {{ config.channel.url | escape }} - - {% endif %} -

    - {% unless config.valid_channel_url %} - - {% endunless %} -
    - {% endif %} {% unless config.valid_channel_url %} -
    -
    - {% for param in config.url_parameters %} -
    - - -
    - {% endfor %} -
    - -
    -
    -
    - {% endunless %} -
    - -
    - {% if config.valid_channel_url %} - - - - - - {% else %} - - - - - - {% endif %} - - - - - -
    -
    - {% endfor %} -
    -
    - -
    - -
    -

    Contribute to the Directory

    -

    - The feed configurations in this directory are community-driven. If you've - created a new feed configuration, we encourage you to share it with the - community. -

    - - Contribute on GitHub - -
    - - - diff --git a/package.json b/package.json index 6b813b19..0afae719 100644 --- a/package.json +++ b/package.json @@ -13,11 +13,8 @@ }, "dependencies": { "@astrojs/starlight": "^0.35.3", - "alpinejs": "^3.15.0", "astro": "^5.6.1", "sharp": "^0.34.2" }, - "devDependencies": { - "@types/alpinejs": "^3.13.11" - } + "devDependencies": {} } diff --git a/src/components/FeedDirectory.astro b/src/components/FeedDirectory.astro index 9770295c..03d16fe7 100644 --- a/src/components/FeedDirectory.astro +++ b/src/components/FeedDirectory.astro @@ -1,535 +1,646 @@ --- import { configs } from '../data/loadConfigs'; +import { Card, CardGrid, Icon, LinkButton } from '@astrojs/starlight/components'; + +// Helper functions for URL generation +function getFeedUrl(config: any, instanceUrl: string, params: Record = {}) { + let url = instanceUrl.endsWith("/") ? instanceUrl : `${instanceUrl}/`; + url += `${config.domain}/${config.name}.rss`; + + const queryParams = new URLSearchParams(); + if (config.url_parameters) { + for (const key of Object.keys(config.url_parameters)) { + if (params[key]) { + queryParams.append(key, params[key]); + } + } + } + + const queryString = queryParams.toString(); + if (queryString) { + url += `?${queryString}`; + } + + return url; +} + +// Generate static feed URLs for each config (progressive enhancement) +const defaultInstanceUrl = atob("aHR0cHM6Ly8xLmgyci53b3JrZXJzLmRldi8="); +const staticFeedUrls = configs.map(config => ({ + ...config, + staticFeedUrl: getFeedUrl(config, defaultInstanceUrl) +})); ---
    - - -
    -
    -
    - Instance URL - -
    - -
    - Search - -
    + +
    +
    + +
    -
    - {configs.map((config, index) => ( -
    +
    + + +
    +
    + +
    + {staticFeedUrls.map((config, index) => ( +
    +
    -
    -

    - {config.channel?.url ? ( - config.valid_channel_url ? ( - - {config.channel.url} - - ) : ( - {config.channel.url} - ) - ) : ( - {config.domain}/{config.name} - )} -

    - {!config.valid_channel_url && Object.keys(config.url_parameters || {}).length > 0 && ( - - )} +
    + {config.domain} + / + {config.name}
    - {!config.valid_channel_url && ( -
    -
    - {Object.entries(config.url_parameters || {}).map(([key, fallback]) => ( -
    - - -
    - ))} -
    - -
    -
    + {config.channel?.url && ( + )}
    - ))} -
    + + {!config.valid_channel_url && Object.keys(config.url_parameters || {}).length > 0 && ( + + )} +
    + ))}
    - - + - -
    - - - - - - - - - - - - - -
    - diff --git a/src/types/global.d.ts b/src/types/global.d.ts index 28eda8ce..6245b996 100644 --- a/src/types/global.d.ts +++ b/src/types/global.d.ts @@ -1,7 +1,6 @@ declare global { interface Window { feedDirectoryData: any[]; - Alpine: any; } } From 55e773666219ce2d22e65349abc6afbb0d04d4ef Mon Sep 17 00:00:00 2001 From: Gil Desmarais Date: Tue, 16 Sep 2025 23:21:45 +0200 Subject: [PATCH 09/33] feed-directory kiss --- src/components/FeedDirectory.astro | 446 +++++++++++++---------------- 1 file changed, 202 insertions(+), 244 deletions(-) diff --git a/src/components/FeedDirectory.astro b/src/components/FeedDirectory.astro index 03d16fe7..c1237946 100644 --- a/src/components/FeedDirectory.astro +++ b/src/components/FeedDirectory.astro @@ -1,30 +1,23 @@ --- import { configs } from '../data/loadConfigs'; -import { Card, CardGrid, Icon, LinkButton } from '@astrojs/starlight/components'; +import { Icon, LinkButton } from '@astrojs/starlight/components'; -// Helper functions for URL generation +// Simple helper functions function getFeedUrl(config: any, instanceUrl: string, params: Record = {}) { - let url = instanceUrl.endsWith("/") ? instanceUrl : `${instanceUrl}/`; - url += `${config.domain}/${config.name}.rss`; + const baseUrl = instanceUrl.endsWith("/") ? instanceUrl : `${instanceUrl}/`; + let url = `${baseUrl}${config.domain}/${config.name}.rss`; const queryParams = new URLSearchParams(); - if (config.url_parameters) { - for (const key of Object.keys(config.url_parameters)) { - if (params[key]) { - queryParams.append(key, params[key]); - } - } - } + Object.keys(config.url_parameters || {}).forEach(key => { + if (params[key]) queryParams.append(key, params[key]); + }); const queryString = queryParams.toString(); - if (queryString) { - url += `?${queryString}`; - } - + if (queryString) url += `?${queryString}`; return url; } -// Generate static feed URLs for each config (progressive enhancement) +// Generate static feed URLs const defaultInstanceUrl = atob("aHR0cHM6Ly8xLmgyci53b3JrZXJzLmRldi8="); const staticFeedUrls = configs.map(config => ({ ...config, @@ -35,35 +28,31 @@ const staticFeedUrls = configs.map(config => ({
    -
    - - -
    - -
    - - -
    + + + + +
    @@ -161,7 +150,12 @@ const staticFeedUrls = configs.map(config => ({
    ))}
    -
    @@ -175,150 +169,119 @@ const staticFeedUrls = configs.map(config => ({ @@ -340,34 +303,10 @@ const staticFeedUrls = configs.map(config => ({ border-radius: 0.75rem; } - .feed-directory__filter-group { - display: flex; - flex-direction: column; - gap: 0.5rem; - } - .feed-directory__label { - font-weight: 600; - font-size: 0.875rem; - color: hsl(var(--sl-color-gray-6)); - margin: 0; - } .feed-directory__input { width: 100%; - padding: 0.75rem; - border: 1px solid hsl(var(--sl-color-gray-4)); - border-radius: 0.5rem; - background: hsl(var(--sl-color-bg)); - color: hsl(var(--sl-color-text)); - font-size: 0.875rem; - transition: border-color 0.2s ease; - } - - .feed-directory__input:focus { - outline: none; - border-color: hsl(var(--sl-color-accent)); - box-shadow: 0 0 0 3px hsl(var(--sl-color-accent) / 0.1); } /* List Layout */ @@ -447,47 +386,57 @@ const staticFeedUrls = configs.map(config => ({ border-color: hsl(var(--sl-color-accent)); } - @keyframes slideDown { - from { - opacity: 0; - transform: translateY(-10px); - } - to { - opacity: 1; - transform: translateY(0); - } - } .feed-directory__params-form { - display: flex ; - flex-direction: column ; - gap: 1.5rem ; - margin-top: 1rem ; + display: flex; + flex-direction: column; + gap: 1.5rem; + margin-top: 1rem; } .feed-directory__param-group { - display: flex ; - flex-direction: column ; - gap: 0.75rem ; + display: flex; + flex-direction: column; + gap: 0.75rem; } .feed-directory__param-label { - font-size: 0.9rem ; - font-weight: 700 ; - color: hsl(var(--sl-color-text)) ; - margin-bottom: 0.5rem ; - display: block ; - text-transform: uppercase ; - letter-spacing: 0.025em ; + font-size: 0.9rem; + font-weight: 700; + color: hsl(var(--sl-color-text)); + margin-bottom: 0.5rem; + display: block; + text-transform: uppercase; + letter-spacing: 0.025em; + } + + .feed-directory__param-input { + width: 100%; } .feed-directory__params-actions { - display: flex ; - justify-content: flex-end ; - align-items: center ; - padding-top: 1rem ; - border-top: 2px solid hsl(var(--sl-color-gray-4)) ; - margin-top: 1rem ; + display: flex; + justify-content: flex-end; + align-items: center; + padding-top: 1rem; + border-top: 2px solid hsl(var(--sl-color-gray-4)); + margin-top: 1rem; + } + + .feed-directory__close-btn { + padding: 0.5rem 1rem; + background: hsl(var(--sl-color-gray-1)); + border: 1px solid hsl(var(--sl-color-gray-4)); + border-radius: 0.25rem; + color: hsl(var(--sl-color-text)); + font-weight: 500; + cursor: pointer; + transition: all 0.2s ease; + } + + .feed-directory__close-btn:hover { + background: hsl(var(--sl-color-gray-2)); + border-color: hsl(var(--sl-color-accent)); } /* Mobile-First Design */ @@ -532,16 +481,20 @@ const staticFeedUrls = configs.map(config => ({ gap: 0.5rem; width: 100%; justify-content: flex-start; + align-items: center; } .feed-directory__action-btn { flex: none; justify-content: center; + align-items: center; padding: 0.5rem; font-size: 0.75rem; font-weight: 600; width: 36px; height: 36px; + border-radius: 50%; + display: flex; } .feed-directory__action-btn span { @@ -564,11 +517,14 @@ const staticFeedUrls = configs.map(config => ({ .feed-directory__configure-btn { flex: none; justify-content: center; + align-items: center; padding: 0.5rem; font-size: 0.75rem; font-weight: 600; width: 36px; height: 36px; + border-radius: 50%; + display: flex; } .feed-directory__configure-btn span { @@ -616,10 +572,11 @@ const staticFeedUrls = configs.map(config => ({ } .feed-directory__action-btn { - width: 60px; - height: 24px; - padding: 0.25rem 0.5rem; + width: auto; + height: 32px; + padding: 0.25rem 0.75rem; font-size: 0.75rem; + border-radius: 0.25rem; } .feed-directory__action-btn span { @@ -627,10 +584,11 @@ const staticFeedUrls = configs.map(config => ({ } .feed-directory__configure-btn { - width: 60px; - height: 24px; - padding: 0.25rem 0.5rem; + width: auto; + height: 32px; + padding: 0.25rem 0.75rem; font-size: 0.75rem; + border-radius: 0.25rem; } .feed-directory__configure-btn span { @@ -639,8 +597,8 @@ const staticFeedUrls = configs.map(config => ({ .feed-directory__action-spacer { display: block; - width: 60px; - height: 24px; + width: auto; + height: 32px; } } From 341198368bfcce2833236ff6fdfd9828f896877e Mon Sep 17 00:00:00 2001 From: Gil Desmarais Date: Tue, 16 Sep 2025 23:45:24 +0200 Subject: [PATCH 10/33] feed directory iterate --- src/components/FeedDirectory.astro | 203 +++++++++++----------- src/content/docs/feed-directory/index.mdx | 5 + 2 files changed, 110 insertions(+), 98 deletions(-) diff --git a/src/components/FeedDirectory.astro b/src/components/FeedDirectory.astro index c1237946..0419f74a 100644 --- a/src/components/FeedDirectory.astro +++ b/src/components/FeedDirectory.astro @@ -3,7 +3,7 @@ import { configs } from '../data/loadConfigs'; import { Icon, LinkButton } from '@astrojs/starlight/components'; // Simple helper functions -function getFeedUrl(config: any, instanceUrl: string, params: Record = {}) { +function getFeedUrl(config: { domain: string; name: string; url_parameters?: Record }, instanceUrl: string, params: Record = {}) { const baseUrl = instanceUrl.endsWith("/") ? instanceUrl : `${instanceUrl}/`; let url = `${baseUrl}${config.domain}/${config.name}.rss`; @@ -17,26 +17,24 @@ function getFeedUrl(config: any, instanceUrl: string, params: Record ({ ...config, - staticFeedUrl: getFeedUrl(config, defaultInstanceUrl) + staticFeedUrl: "#" // Placeholder that will be updated by JavaScript })); ---
    -
    - @@ -293,18 +313,16 @@ const staticFeedUrls = configs.map(config => ({ /* Filters Section */ .feed-directory__filters { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 1.5rem; - margin-bottom: 2rem; - padding: 1.5rem; + display: flex; + flex-direction: column; + gap: 1rem; + margin-bottom: 1.5rem; + padding: 1rem; background: hsl(var(--sl-color-gray-2)); border: 1px solid hsl(var(--sl-color-gray-4)); - border-radius: 0.75rem; + border-radius: 0.5rem; } - - .feed-directory__input { width: 100%; } @@ -439,17 +457,6 @@ const staticFeedUrls = configs.map(config => ({ border-color: hsl(var(--sl-color-accent)); } - /* Mobile-First Design */ - .feed-directory__filters { - display: flex; - flex-direction: column; - gap: 1rem; - margin-bottom: 1.5rem; - padding: 1rem; - background: hsl(var(--sl-color-gray-2)); - border: 1px solid hsl(var(--sl-color-gray-4)); - border-radius: 0.5rem; - } .feed-directory__item { display: flex; diff --git a/src/content/docs/feed-directory/index.mdx b/src/content/docs/feed-directory/index.mdx index 44300d9a..709bccca 100644 --- a/src/content/docs/feed-directory/index.mdx +++ b/src/content/docs/feed-directory/index.mdx @@ -1,6 +1,11 @@ --- title: 'Feed Directory' description: 'Browse pre-built configurations to create RSS feeds for various websites.' +head: + - tag: meta + attrs: + name: robots + content: noindex --- # Welcome to the Feed Directory! From 69a17efaf7178a881be2b36e02f2a2dbe82bdd23 Mon Sep 17 00:00:00 2001 From: Gil Desmarais Date: Tue, 16 Sep 2025 23:50:45 +0200 Subject: [PATCH 11/33] feed directory strip out client side js --- src/components/FeedDirectory.astro | 137 +---------------------- src/components/feed-directory.js | 170 +++++++++++++++++++++++++++++ 2 files changed, 171 insertions(+), 136 deletions(-) create mode 100644 src/components/feed-directory.js diff --git a/src/components/FeedDirectory.astro b/src/components/FeedDirectory.astro index 0419f74a..5ce6ab3e 100644 --- a/src/components/FeedDirectory.astro +++ b/src/components/FeedDirectory.astro @@ -168,142 +168,7 @@ const staticFeedUrls = configs.map(config => ({
    - + - - - - - - - - - - - - - - - - -html2rss | html2rss brings back RSS. It’s an open source project with decentralised instances. These instances generate RSS feeds for websites which do not offer them. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - -
    -
    - -

    - - - 404 - Page Not Found - - -

    - - -

    Sorry, the page you're looking for doesn't exist.

    - -

    Here are some helpful links to get you back on track:

    - - - -

    - If you think this is an error, please - report it on GitHub. -

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/README.md b/jekyll-backup/_site/README.md deleted file mode 100644 index 1c0cb323..00000000 --- a/jekyll-backup/_site/README.md +++ /dev/null @@ -1,22 +0,0 @@ - -This repository hosts the documentation and website for `html2rss`, a tool for creating RSS feeds from any website. - -## 🌐 Community & Resources - -| Resource | Description | Link | -| ------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------ | -| **πŸ“š Documentation & Feed Directory** | Complete guides, tutorials, and browse 100+ pre-built feeds | [html2rss.github.io](https://html2rss.github.io) | -| **πŸ’¬ Community Discussions** | Get help, share ideas, and connect with other users | [GitHub Discussions](https://github.com/orgs/html2rss/discussions) | -| **πŸ“‹ Project Board** | Track development progress and upcoming features | [View Project Board](https://github.com/orgs/html2rss/projects) | -| **πŸ’– Support Development** | Help fund ongoing development and maintenance | [Sponsor on GitHub](https://github.com/sponsors/gildesmarais) | - -**Quick Start Options:** - -- **New to RSS?** β†’ Start with the [web application](https://html2rss.github.io/web-application) -- **Ruby Developer?** β†’ Check out the [Ruby gem documentation](https://html2rss.github.io/ruby-gem) -- **Need a specific feed?** β†’ Browse the [feed directory](https://html2rss.github.io/feed-directory) -- **Want to contribute?** β†’ See our [contributing guide](https://html2rss.github.io/get-involved/contributing) - -## Contributing - -Contributions are welcome! See our [Get Involved page](https://html2rss.github.io/get-involved) for details on discussions, reporting issues, and contributing. diff --git a/jekyll-backup/_site/about.html b/jekyll-backup/_site/about.html deleted file mode 100644 index ad2a29bd..00000000 --- a/jekyll-backup/_site/about.html +++ /dev/null @@ -1,505 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -About html2rss | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - -
    -
    - -

    - - - About html2rss - - -

    - - -

    html2rss is an open-source project dedicated to empowering you to take control of your web content. In an age where traditional RSS feeds are often missing, html2rss provides a robust and flexible solution to convert almost any HTML content into a structured RSS format.

    - -

    Started in 2018, the project has evolved into a comprehensive suite of tools designed to help you create and consume RSS feeds effortlessly.

    -
    -

    - - - Our Vision and Principles - - -

    - - -

    Our mission is to provide a simple, powerful, and accessible tool that enables individuals and developers to create custom RSS feeds from any web page. We believe in the power of open standards and the freedom to access information on your own terms.

    - -

    Our project is guided by these core principles:

    - -
      -
    • -User Empowerment: Giving you the tools to customize your web experience.
    • -
    • -Simplicity & Power: Offering an easy-to-use interface with powerful underlying capabilities.
    • -
    • -Open Source: Fostering a collaborative environment where the community can contribute and improve the project.
    • -
    • -Reliability: Striving for a stable and dependable tool that consistently delivers.
    • -
    - -

    For insights into our ongoing development, project roadmap, and how you can get involved, please visit our Get Involved page.

    -
    -

    - - - The Team - - -

    - - -

    html2rss is maintained by a dedicated group of volunteers and contributors from around the world. We are passionate about open source and committed to continuously improving the project.

    - -

    Want to join us? Check out our Contributing Guide!

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/assets/css/just-the-docs-dark.css b/jekyll-backup/_site/assets/css/just-the-docs-dark.css deleted file mode 100644 index 182446f2..00000000 --- a/jekyll-backup/_site/assets/css/just-the-docs-dark.css +++ /dev/null @@ -1 +0,0 @@ -ο»Ώ.highlight,pre.highlight{background:#f9f9f9;color:#383942}.highlight pre{background:#f9f9f9}.highlight .hll{background:#f9f9f9}.highlight .c{color:#9fa0a6;font-style:italic}.highlight .err{color:#fff;background-color:#e05151}.highlight .k{color:#a625a4}.highlight .l{color:#50a04f}.highlight .n{color:#383942}.highlight .o{color:#383942}.highlight .p{color:#383942}.highlight .cm{color:#9fa0a6;font-style:italic}.highlight .cp{color:#9fa0a6;font-style:italic}.highlight .c1{color:#9fa0a6;font-style:italic}.highlight .cs{color:#9fa0a6;font-style:italic}.highlight .ge{font-style:italic}.highlight .gs{font-weight:700}.highlight .kc{color:#a625a4}.highlight .kd{color:#a625a4}.highlight .kn{color:#a625a4}.highlight .kp{color:#a625a4}.highlight .kr{color:#a625a4}.highlight .kt{color:#a625a4}.highlight .ld{color:#50a04f}.highlight .m{color:#b66a00}.highlight .s{color:#50a04f}.highlight .na{color:#b66a00}.highlight .nb{color:#ca7601}.highlight .nc{color:#ca7601}.highlight .no{color:#ca7601}.highlight .nd{color:#ca7601}.highlight .ni{color:#ca7601}.highlight .ne{color:#ca7601}.highlight .nf{color:#383942}.highlight .nl{color:#ca7601}.highlight .nn{color:#383942}.highlight .nx{color:#383942}.highlight .py{color:#ca7601}.highlight .nt{color:#e35549}.highlight .nv{color:#ca7601}.highlight .ow{font-weight:700}.highlight .w{color:#f8f8f2}.highlight .mf{color:#b66a00}.highlight .mh{color:#b66a00}.highlight .mi{color:#b66a00}.highlight .mo{color:#b66a00}.highlight .sb{color:#50a04f}.highlight .sc{color:#50a04f}.highlight .sd{color:#50a04f}.highlight .s2{color:#50a04f}.highlight .se{color:#50a04f}.highlight .sh{color:#50a04f}.highlight .si{color:#50a04f}.highlight .sx{color:#50a04f}.highlight .sr{color:#0083bb}.highlight .s1{color:#50a04f}.highlight .ss{color:#0083bb}.highlight .bp{color:#ca7601}.highlight .vc{color:#ca7601}.highlight .vg{color:#ca7601}.highlight .vi{color:#e35549}.highlight .il{color:#b66a00}.highlight .gu{color:#75715e}.highlight .gd{color:#e05151}.highlight .gi{color:#43d089}.highlight .language-json .w+.s2{color:#e35549}.highlight .language-json .kc{color:#0083bb}.highlight,pre.highlight{background:#31343f;color:#dee2f7}.highlight pre{background:#31343f}.highlight .hll{background:#31343f}.highlight .c{color:#63677e;font-style:italic}.highlight .err{color:#960050;background-color:#1e0010}.highlight .k{color:#e19ef5}.highlight .l{color:#a3eea0}.highlight .n{color:#dee2f7}.highlight .o{color:#dee2f7}.highlight .p{color:#dee2f7}.highlight .cm{color:#63677e;font-style:italic}.highlight .cp{color:#63677e;font-style:italic}.highlight .c1{color:#63677e;font-style:italic}.highlight .cs{color:#63677e;font-style:italic}.highlight .ge{font-style:italic}.highlight .gs{font-weight:700}.highlight .kc{color:#e19ef5}.highlight .kd{color:#e19ef5}.highlight .kn{color:#e19ef5}.highlight .kp{color:#e19ef5}.highlight .kr{color:#e19ef5}.highlight .kt{color:#e19ef5}.highlight .ld{color:#a3eea0}.highlight .m{color:#eddc96}.highlight .s{color:#a3eea0}.highlight .na{color:#eddc96}.highlight .nb{color:#fdce68}.highlight .nc{color:#fdce68}.highlight .no{color:#fdce68}.highlight .nd{color:#fdce68}.highlight .ni{color:#fdce68}.highlight .ne{color:#fdce68}.highlight .nf{color:#dee2f7}.highlight .nl{color:#fdce68}.highlight .nn{color:#dee2f7}.highlight .nx{color:#dee2f7}.highlight .py{color:#fdce68}.highlight .nt{color:#f9867b}.highlight .nv{color:#fdce68}.highlight .ow{font-weight:700}.highlight .w{color:#f8f8f2}.highlight .mf{color:#eddc96}.highlight .mh{color:#eddc96}.highlight .mi{color:#eddc96}.highlight .mo{color:#eddc96}.highlight .sb{color:#a3eea0}.highlight .sc{color:#a3eea0}.highlight .sd{color:#a3eea0}.highlight .s2{color:#a3eea0}.highlight .se{color:#a3eea0}.highlight .sh{color:#a3eea0}.highlight .si{color:#a3eea0}.highlight .sx{color:#a3eea0}.highlight .sr{color:#7be2f9}.highlight .s1{color:#a3eea0}.highlight .ss{color:#7be2f9}.highlight .bp{color:#fdce68}.highlight .vc{color:#fdce68}.highlight .vg{color:#fdce68}.highlight .vi{color:#f9867b}.highlight .il{color:#eddc96}.highlight .gu{color:#75715e}.highlight .gd{color:#f92672}.highlight .gi{color:#a6e22e}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}html{font-size:.875rem !important}@media(min-width: 31.25rem){html{font-size:1rem !important}}body{font-family:system-ui,-apple-system,blinkmacsystemfont,"Segoe UI",roboto,"Helvetica Neue",arial,sans-serif,"Segoe UI Emoji";font-size:inherit;line-height:1.4;color:#e6e1e8;background-color:#27262b;overflow-wrap:break-word}ol,ul,dl,pre,address,blockquote,table,div,hr,form,fieldset,noscript .table-wrapper{margin-top:0}h1,h2,h3,h4,h5,h6,#toctitle{margin-top:0;margin-bottom:1em;font-weight:500;line-height:1.25;color:#f5f6fa}p{margin-top:1em;margin-bottom:1em}a{color:#2c84fa;text-decoration:none}a:not([class]){text-decoration:underline;text-decoration-color:#44434d;text-underline-offset:2px}a:not([class]):hover{text-decoration-color:rgba(44,132,250,.45)}code{font-family:"SFMono-Regular",menlo,consolas,monospace;font-size:.75em;line-height:1.4}figure,pre{margin:0}li{margin:.25em 0}img{max-width:100%;height:auto}hr{height:1px;padding:0;margin:2rem 0;background-color:#44434d;border:0}blockquote{margin:10px 0;margin-block-start:0;margin-inline-start:0;padding-left:1rem;border-left:3px solid #44434d}.side-bar{z-index:0;display:flex;flex-wrap:wrap;background-color:#27262b}@media(min-width: 50rem){.side-bar{flex-flow:column nowrap;position:fixed;width:15.5rem;height:100%;border-right:1px solid #44434d;align-items:flex-end}}@media(min-width: 66.5rem){.side-bar{width:calc((100% - 66.5rem)/2 + 16.5rem);min-width:16.5rem}}@media(min-width: 50rem){.side-bar+.main{margin-left:15.5rem}}@media(min-width: 66.5rem){.side-bar+.main{margin-left:max(16.5rem,(100% - 66.5rem)/2 + 16.5rem)}}.side-bar+.main .main-header{display:none;background-color:#27262b}@media(min-width: 50rem){.side-bar+.main .main-header{display:flex;background-color:#27262b}}.side-bar+.main .main-header.nav-open{display:block}@media(min-width: 50rem){.side-bar+.main .main-header.nav-open{display:flex}}.main{margin:auto}@media(min-width: 50rem){.main{position:relative;max-width:50rem}}.main-content-wrap{padding-top:1rem;padding-bottom:1rem;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.main-content-wrap{padding-right:2rem;padding-left:2rem}}@media(min-width: 50rem){.main-content-wrap{padding-top:2rem;padding-bottom:2rem}}.main-header{z-index:0;border-bottom:1px solid #44434d}@media(min-width: 50rem){.main-header{display:flex;justify-content:space-between;height:3.75rem}}.site-nav,.site-header,.site-footer{width:100%}@media(min-width: 66.5rem){.site-nav,.site-header,.site-footer{width:16.5rem}}.site-nav{display:none}.site-nav.nav-open{display:block}@media(min-width: 50rem){.site-nav{display:block;padding-top:3rem;padding-bottom:1rem;overflow-y:auto;flex:1 1 auto}}.site-header{display:flex;min-height:3.75rem;align-items:center}@media(min-width: 50rem){.site-header{height:3.75rem;max-height:3.75rem;border-bottom:1px solid #44434d}}.site-title{flex-grow:1;display:flex;height:100%;align-items:center;padding-top:.75rem;padding-bottom:.75rem;color:#f5f6fa;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.site-title{padding-right:2rem;padding-left:2rem}}.site-title{font-size:1.125rem !important}@media(min-width: 31.25rem){.site-title{font-size:1.5rem !important;line-height:1.25}}@media(min-width: 50rem){.site-title{padding-top:.5rem;padding-bottom:.5rem}}.site-logo{width:100%;height:100%;background-image:url("/assets/images/logo.png");background-repeat:no-repeat;background-position:left center;background-size:contain}.site-button{display:flex;height:100%;padding:1rem;align-items:center}@media(min-width: 50rem){.site-header .site-button{display:none}}.site-title:hover{background-image:linear-gradient(-90deg, rgb(31.6333333333, 30.8222222222, 34.8777777778) 0%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0.8) 80%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0) 100%)}.site-button:hover{background-image:linear-gradient(-90deg, rgb(31.6333333333, 30.8222222222, 34.8777777778) 0%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0.8) 100%)}body{position:relative;padding-bottom:4rem;overflow-y:scroll}@media(min-width: 50rem){body{position:static;padding-bottom:0}}.site-footer{position:absolute;bottom:0;left:0;padding-top:1rem;padding-bottom:1rem;color:#959396;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.site-footer{padding-right:2rem;padding-left:2rem}}.site-footer{font-size:.6875rem !important}@media(min-width: 31.25rem){.site-footer{font-size:.75rem !important}}@media(min-width: 50rem){.site-footer{position:static;justify-self:end}}.icon{width:1.5rem;height:1.5rem;color:#2c84fa}.main-content{line-height:1.6}.main-content ol,.main-content ul,.main-content dl,.main-content pre,.main-content address,.main-content blockquote,.main-content .table-wrapper{margin-top:.5em}.main-content a{overflow:hidden;text-overflow:ellipsis}.main-content ul,.main-content ol{padding-left:1.5em}.main-content li .highlight{margin-top:.25rem}.main-content ol{list-style-type:none;counter-reset:step-counter}.main-content ol>li{position:relative}.main-content ol>li::before{position:absolute;top:.2em;left:-1.6em;color:#959396;content:counter(step-counter);counter-increment:step-counter}.main-content ol>li::before{font-size:.75rem !important}@media(min-width: 31.25rem){.main-content ol>li::before{font-size:.875rem !important}}@media(min-width: 31.25rem){.main-content ol>li::before{top:.11em}}.main-content ol>li ol{counter-reset:sub-counter}.main-content ol>li ol>li::before{content:counter(sub-counter, lower-alpha);counter-increment:sub-counter}.main-content ul{list-style:none}.main-content ul>li::before{position:absolute;margin-left:-1.4em;color:#959396;content:"β€’"}.main-content .task-list-item::before{content:""}.main-content .task-list-item-checkbox{margin-right:.6em;margin-left:-1.4em}.main-content hr+*{margin-top:0}.main-content h1:first-of-type{margin-top:.5em}.main-content dl{display:grid;grid-template:auto/10em 1fr}.main-content dt,.main-content dd{margin:.25em 0}.main-content dt{grid-column:1;font-weight:500;text-align:right}.main-content dt::after{content:":"}.main-content dd{grid-column:2;margin-bottom:0;margin-left:1em}.main-content dd blockquote:first-child,.main-content dd div:first-child,.main-content dd dl:first-child,.main-content dd dt:first-child,.main-content dd h1:first-child,.main-content dd h2:first-child,.main-content dd h3:first-child,.main-content dd h4:first-child,.main-content dd h5:first-child,.main-content dd h6:first-child,.main-content dd li:first-child,.main-content dd ol:first-child,.main-content dd p:first-child,.main-content dd pre:first-child,.main-content dd table:first-child,.main-content dd ul:first-child,.main-content dd .table-wrapper:first-child{margin-top:0}.main-content dd dl:first-child dt:first-child,.main-content dd dl:first-child dd:nth-child(2),.main-content ol dl:first-child dt:first-child,.main-content ol dl:first-child dd:nth-child(2),.main-content ul dl:first-child dt:first-child,.main-content ul dl:first-child dd:nth-child(2){margin-top:0}.main-content .anchor-heading{position:absolute;right:-1rem;width:1.5rem;height:100%;padding-right:.25rem;padding-left:.25rem;overflow:visible}@media(min-width: 50rem){.main-content .anchor-heading{right:auto;left:-1.5rem}}.main-content .anchor-heading svg{display:inline-block;width:100%;height:100%;color:#2c84fa;visibility:hidden}.main-content .anchor-heading:hover svg,.main-content .anchor-heading:focus svg,.main-content h1:hover>.anchor-heading svg,.main-content h2:hover>.anchor-heading svg,.main-content h3:hover>.anchor-heading svg,.main-content h4:hover>.anchor-heading svg,.main-content h5:hover>.anchor-heading svg,.main-content h6:hover>.anchor-heading svg{visibility:visible}.main-content summary{cursor:pointer}.main-content h1,.main-content h2,.main-content h3,.main-content h4,.main-content h5,.main-content h6,.main-content #toctitle{position:relative;margin-top:1.5em;margin-bottom:.25em}.main-content h1+table,.main-content h1+.table-wrapper,.main-content h1+.code-example,.main-content h1+.highlighter-rouge,.main-content h1+.sectionbody .listingblock,.main-content h2+table,.main-content h2+.table-wrapper,.main-content h2+.code-example,.main-content h2+.highlighter-rouge,.main-content h2+.sectionbody .listingblock,.main-content h3+table,.main-content h3+.table-wrapper,.main-content h3+.code-example,.main-content h3+.highlighter-rouge,.main-content h3+.sectionbody .listingblock,.main-content h4+table,.main-content h4+.table-wrapper,.main-content h4+.code-example,.main-content h4+.highlighter-rouge,.main-content h4+.sectionbody .listingblock,.main-content h5+table,.main-content h5+.table-wrapper,.main-content h5+.code-example,.main-content h5+.highlighter-rouge,.main-content h5+.sectionbody .listingblock,.main-content h6+table,.main-content h6+.table-wrapper,.main-content h6+.code-example,.main-content h6+.highlighter-rouge,.main-content h6+.sectionbody .listingblock,.main-content #toctitle+table,.main-content #toctitle+.table-wrapper,.main-content #toctitle+.code-example,.main-content #toctitle+.highlighter-rouge,.main-content #toctitle+.sectionbody .listingblock{margin-top:1em}.main-content h1+p:not(.label),.main-content h2+p:not(.label),.main-content h3+p:not(.label),.main-content h4+p:not(.label),.main-content h5+p:not(.label),.main-content h6+p:not(.label),.main-content #toctitle+p:not(.label){margin-top:0}.main-content>h1:first-child,.main-content>h2:first-child,.main-content>h3:first-child,.main-content>h4:first-child,.main-content>h5:first-child,.main-content>h6:first-child,.main-content>.sect1:first-child>h2,.main-content>.sect2:first-child>h3,.main-content>.sect3:first-child>h4,.main-content>.sect4:first-child>h5,.main-content>.sect5:first-child>h6{margin-top:.5rem}.nav-list{padding:0;margin-top:0;margin-bottom:0;list-style:none}.nav-list .nav-list-item{position:relative;margin:0}.nav-list .nav-list-item{font-size:.875rem !important}@media(min-width: 31.25rem){.nav-list .nav-list-item{font-size:1rem !important}}@media(min-width: 50rem){.nav-list .nav-list-item{font-size:.75rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.nav-list .nav-list-item{font-size:.875rem !important}}.nav-list .nav-list-item .nav-list-link{display:block;min-height:3rem;padding-top:.25rem;padding-bottom:.25rem;line-height:2.5rem;padding-right:3rem;padding-left:1rem}@media(min-width: 50rem){.nav-list .nav-list-item .nav-list-link{min-height:2rem;line-height:1.5rem;padding-right:2rem;padding-left:2rem}}.nav-list .nav-list-item .nav-list-link.external>svg{width:1rem;height:1rem;vertical-align:text-bottom}.nav-list .nav-list-item .nav-list-link.active{font-weight:600;text-decoration:none}.nav-list .nav-list-item .nav-list-link:hover,.nav-list .nav-list-item .nav-list-link.active{background-image:linear-gradient(-90deg, rgb(31.6333333333, 30.8222222222, 34.8777777778) 0%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0.8) 80%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0) 100%)}.nav-list .nav-list-item .nav-list-expander{position:absolute;right:0;width:3rem;height:3rem;padding:0.75rem;color:#2c84fa}@media(min-width: 50rem){.nav-list .nav-list-item .nav-list-expander{width:2rem;height:2rem;padding:0.5rem}}.nav-list .nav-list-item .nav-list-expander:hover{background-image:linear-gradient(-90deg, rgb(31.6333333333, 30.8222222222, 34.8777777778) 0%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0.8) 100%)}.nav-list .nav-list-item .nav-list-expander svg{transform:rotate(90deg)}.nav-list .nav-list-item>.nav-list{display:none;padding-left:.75rem;list-style:none}.nav-list .nav-list-item>.nav-list .nav-list-item{position:relative}.nav-list .nav-list-item>.nav-list .nav-list-item .nav-list-link{color:#959396}.nav-list .nav-list-item>.nav-list .nav-list-item .nav-list-expander{color:#959396}.nav-list .nav-list-item.active>.nav-list-expander svg{transform:rotate(-90deg)}.nav-list .nav-list-item.active>.nav-list{display:block}.nav-category{padding:.5rem 1rem;font-weight:600;text-align:start;text-transform:uppercase;border-bottom:1px solid #44434d}.nav-category{font-size:.6875rem !important}@media(min-width: 31.25rem){.nav-category{font-size:.75rem !important}}@media(min-width: 50rem){.nav-category{padding:.5rem 2rem;margin-top:1rem;text-align:start}.nav-category:first-child{margin-top:0}}.nav-list.nav-category-list>.nav-list-item{margin:0}.nav-list.nav-category-list>.nav-list-item>.nav-list{padding:0}.nav-list.nav-category-list>.nav-list-item>.nav-list>.nav-list-item>.nav-list-link{color:#2c84fa}.nav-list.nav-category-list>.nav-list-item>.nav-list>.nav-list-item>.nav-list-expander{color:#2c84fa}.aux-nav{height:100%;overflow-x:auto}.aux-nav{font-size:.6875rem !important}@media(min-width: 31.25rem){.aux-nav{font-size:.75rem !important}}.aux-nav .aux-nav-list{display:flex;height:100%;padding:0;margin:0;list-style:none}.aux-nav .aux-nav-list-item{display:inline-block;height:100%;padding:0;margin:0}@media(min-width: 50rem){.aux-nav{padding-right:1rem}}@media(min-width: 50rem){.breadcrumb-nav{margin-top:-1rem}}.breadcrumb-nav-list{padding-left:0;margin-bottom:.75rem;list-style:none}.breadcrumb-nav-list-item{display:table-cell}.breadcrumb-nav-list-item{font-size:.6875rem !important}@media(min-width: 31.25rem){.breadcrumb-nav-list-item{font-size:.75rem !important}}.breadcrumb-nav-list-item::before{display:none}.breadcrumb-nav-list-item::after{display:inline-block;margin-right:.5rem;margin-left:.5rem;color:#959396;content:"/"}.breadcrumb-nav-list-item:last-child::after{content:""}h1,.text-alpha{font-weight:300}h1,.text-alpha{font-size:2rem !important;line-height:1.25}@media(min-width: 31.25rem){h1,.text-alpha{font-size:2.25rem !important}}h2,.text-beta,#toctitle{font-size:1.125rem !important}@media(min-width: 31.25rem){h2,.text-beta,#toctitle{font-size:1.5rem !important;line-height:1.25}}h3,.text-gamma{font-size:1rem !important}@media(min-width: 31.25rem){h3,.text-gamma{font-size:1.125rem !important}}h4,.text-delta{font-weight:400;text-transform:uppercase;letter-spacing:.1em}h4,.text-delta{font-size:.6875rem !important}@media(min-width: 31.25rem){h4,.text-delta{font-size:.75rem !important}}h4 code{text-transform:none}h5,.text-epsilon{font-size:.75rem !important}@media(min-width: 31.25rem){h5,.text-epsilon{font-size:.875rem !important}}h6,.text-zeta{font-size:.6875rem !important}@media(min-width: 31.25rem){h6,.text-zeta{font-size:.75rem !important}}.text-small{font-size:.6875rem !important}@media(min-width: 31.25rem){.text-small{font-size:.75rem !important}}.text-mono{font-family:"SFMono-Regular",menlo,consolas,monospace !important}.text-left{text-align:left !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.label:not(g),.label-blue:not(g){display:inline-block;padding:.16em .56em;margin-right:.5rem;margin-left:.5rem;color:#fff;text-transform:uppercase;vertical-align:middle;background-color:#2869e6;border-radius:12px}.label:not(g),.label-blue:not(g){font-size:.6875rem !important}@media(min-width: 31.25rem){.label:not(g),.label-blue:not(g){font-size:.75rem !important}}.label-green:not(g){background-color:#009c7b}.label-purple:not(g){background-color:#5e41d0}.label-red:not(g){background-color:#e94c4c}.label-yellow:not(g){color:#44434d;background-color:#f7d12e}.btn{display:inline-block;box-sizing:border-box;padding:.3em 1em;margin:0;font-family:inherit;font-size:inherit;font-weight:500;line-height:1.5;color:#2c84fa;text-decoration:none;vertical-align:baseline;cursor:pointer;background-color:#302d36;border-width:0;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);appearance:none}.btn:focus{text-decoration:none;outline:none;box-shadow:0 0 0 3px rgba(0,0,255,.25)}.btn:focus:hover,.btn.selected:focus{box-shadow:0 0 0 3px rgba(0,0,255,.25)}.btn:hover,.btn.zeroclipboard-is-hover{color:rgb(34.0361111111,126.1916666667,249.7638888889)}.btn:hover,.btn:active,.btn.zeroclipboard-is-hover,.btn.zeroclipboard-is-active{text-decoration:none;background-color:hsl(260,9.0909090909%,18.4117647059%)}.btn:active,.btn.selected,.btn.zeroclipboard-is-active{background-color:hsl(260,9.0909090909%,16.4117647059%);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn.selected:hover{background-color:hsl(0,0%,81.2745098039%)}.btn:disabled,.btn:disabled:hover,.btn.disabled,.btn.disabled:hover{color:hsla(0,0%,40%,.5);cursor:default;background-color:rgba(229,229,229,.5);background-image:none;box-shadow:none}.btn-outline{color:#2c84fa;background:rgba(0,0,0,0);box-shadow:inset 0 0 0 2px #e6e1e8}.btn-outline:hover,.btn-outline:active,.btn-outline.zeroclipboard-is-hover,.btn-outline.zeroclipboard-is-active{color:rgb(24.0722222222,120.3833333333,249.5277777778);text-decoration:none;background-color:rgba(0,0,0,0);box-shadow:inset 0 0 0 3px #e6e1e8}.btn-outline:focus{text-decoration:none;outline:none;box-shadow:inset 0 0 0 2px #5c5962,0 0 0 3px rgba(0,0,255,.25)}.btn-outline:focus:hover,.btn-outline.selected:focus{box-shadow:inset 0 0 0 2px #5c5962}.btn-primary{color:#fff;background-color:rgb(36.1802816901,72.3605633803,166.6197183099);background-image:linear-gradient(rgb(42.5492957746, 85.0985915493, 195.9507042254), rgb(36.1802816901, 72.3605633803, 166.6197183099));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-primary:hover,.btn-primary.zeroclipboard-is-hover{color:#fff;background-color:rgb(34.3605633803,68.7211267606,158.2394366197);background-image:linear-gradient(rgb(39.8197183099, 79.6394366197, 183.3802816901), rgb(34.3605633803, 68.7211267606, 158.2394366197))}.btn-primary:active,.btn-primary.selected,.btn-primary.zeroclipboard-is-active{background-color:rgb(33.4507042254,66.9014084507,154.0492957746);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-primary.selected:hover{background-color:rgb(28.9014084507,57.8028169014,133.0985915493)}.btn-purple{color:#fff;background-color:rgb(87.0708860759,56.8227848101,205.9772151899);background-image:linear-gradient(rgb(111.3227848101, 85.4430379747, 213.0569620253), rgb(87.0708860759, 56.8227848101, 205.9772151899));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-purple:hover,.btn-purple.zeroclipboard-is-hover{color:#fff;background-color:rgb(81.0025316456,50.0936708861,202.5063291139);background-image:linear-gradient(rgb(100.9291139241, 73.1772151899, 210.0227848101), rgb(81.0025316456, 50.0936708861, 202.5063291139))}.btn-purple:active,.btn-purple.selected,.btn-purple.zeroclipboard-is-active{background-color:rgb(79.3670886076,49.082278481,198.417721519);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-purple.selected:hover{background-color:rgb(71.1898734177,44.0253164557,177.9746835443)}.btn-blue{color:#fff;background-color:rgb(34.0361111111,126.1916666667,249.7638888889);background-image:linear-gradient(rgb(68.9097222222, 146.5208333333, 250.5902777778), rgb(34.0361111111, 126.1916666667, 249.7638888889));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-blue:hover,.btn-blue.zeroclipboard-is-hover{color:#fff;background-color:rgb(24.0722222222,120.3833333333,249.5277777778);background-image:linear-gradient(rgb(53.9638888889, 137.8083333333, 250.2361111111), rgb(24.0722222222, 120.3833333333, 249.5277777778))}.btn-blue:active,.btn-blue.selected,.btn-blue.zeroclipboard-is-active{background-color:rgb(19.0902777778,117.4791666667,249.4097222222);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-blue.selected:hover{background-color:rgb(5.625,104.625,237.375)}.btn-green{color:#fff;background-color:rgb(16.1242424242,171.6757575758,125.2);background-image:linear-gradient(rgb(19.1893939394, 204.3106060606, 149), rgb(16.1242424242, 171.6757575758, 125.2));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-green:hover,.btn-green.zeroclipboard-is-hover{color:#fff;background-color:rgb(15.2484848485,162.3515151515,118.4);background-image:linear-gradient(rgb(17.8757575758, 190.3242424242, 138.8), rgb(15.2484848485, 162.3515151515, 118.4))}.btn-green:active,.btn-green.selected,.btn-green.zeroclipboard-is-active{background-color:rgb(14.8106060606,157.6893939394,115);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-green.selected:hover{background-color:rgb(12.6212121212,134.3787878788,98)}.btn-reset{background:none;border:none;margin:0;text-align:inherit;font:inherit;border-radius:0;appearance:none}.search{position:relative;z-index:2;flex-grow:1;height:4rem;padding:.5rem;transition:padding linear 200ms}@media(min-width: 50rem){.search{position:relative !important;width:auto !important;height:100% !important;padding:0;transition:none}}.search-input-wrap{position:relative;z-index:1;height:3rem;overflow:hidden;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);transition:height linear 200ms}@media(min-width: 50rem){.search-input-wrap{position:absolute;width:100%;max-width:33.5rem;height:100% !important;border-radius:0;box-shadow:none;transition:width ease 400ms}}.search-input{position:absolute;width:100%;height:100%;padding:.5rem 1rem .5rem 2.5rem;font-size:1rem;color:#e6e1e8;background-color:#302d36;border-top:0;border-right:0;border-bottom:0;border-left:0;border-radius:0}@media(min-width: 50rem){.search-input{padding:.5rem 1rem .5rem 3.5rem;font-size:.875rem;background-color:#27262b;transition:padding-left linear 200ms}}.search-input:focus{outline:0}.search-input:focus+.search-label .search-icon{color:#2c84fa}.search-label{position:absolute;display:flex;height:100%;padding-left:1rem}@media(min-width: 50rem){.search-label{padding-left:2rem;transition:padding-left linear 200ms}}.search-label .search-icon{width:1.2rem;height:1.2rem;align-self:center;color:#959396}.search-results{position:absolute;left:0;display:none;width:100%;max-height:calc(100% - 4rem);overflow-y:auto;background-color:#302d36;border-bottom-right-radius:4px;border-bottom-left-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}@media(min-width: 50rem){.search-results{top:100%;width:33.5rem;max-height:calc(100vh - 200%) !important}}.search-results-list{padding-left:0;margin-bottom:.25rem;list-style:none}.search-results-list{font-size:.875rem !important}@media(min-width: 31.25rem){.search-results-list{font-size:1rem !important}}@media(min-width: 50rem){.search-results-list{font-size:.75rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.search-results-list{font-size:.875rem !important}}.search-results-list-item{padding:0;margin:0}.search-result{display:block;padding:.25rem .75rem}.search-result:hover,.search-result.active{background-color:hsl(252,6.1728395062%,12.8823529412%)}.search-result-title{display:block;padding-top:.5rem;padding-bottom:.5rem}@media(min-width: 31.25rem){.search-result-title{display:inline-block;width:40%;padding-right:.5rem;vertical-align:top}}.search-result-doc{display:flex;align-items:center;word-wrap:break-word}.search-result-doc.search-result-doc-parent{opacity:.5}.search-result-doc.search-result-doc-parent{font-size:.75rem !important}@media(min-width: 31.25rem){.search-result-doc.search-result-doc-parent{font-size:.875rem !important}}@media(min-width: 50rem){.search-result-doc.search-result-doc-parent{font-size:.6875rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.search-result-doc.search-result-doc-parent{font-size:.75rem !important}}.search-result-doc .search-result-icon{width:1rem;height:1rem;margin-right:.5rem;color:#2c84fa;flex-shrink:0}.search-result-doc .search-result-doc-title{overflow:auto}.search-result-section{margin-left:1.5rem;word-wrap:break-word}.search-result-rel-url{display:block;margin-left:1.5rem;overflow:hidden;color:#959396;text-overflow:ellipsis;white-space:nowrap}.search-result-rel-url{font-size:.5625rem !important}@media(min-width: 31.25rem){.search-result-rel-url{font-size:.625rem !important}}.search-result-previews{display:block;padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;margin-left:.5rem;color:#959396;word-wrap:break-word;border-left:1px solid;border-left-color:#44434d}.search-result-previews{font-size:.6875rem !important}@media(min-width: 31.25rem){.search-result-previews{font-size:.75rem !important}}@media(min-width: 31.25rem){.search-result-previews{display:inline-block;width:60%;padding-left:.5rem;margin-left:0;vertical-align:top}}.search-result-preview+.search-result-preview{margin-top:.25rem}.search-result-highlight{font-weight:bold}.search-no-result{padding:.5rem .75rem}.search-no-result{font-size:.75rem !important}@media(min-width: 31.25rem){.search-no-result{font-size:.875rem !important}}.search-button{position:fixed;right:1rem;bottom:1rem;display:flex;width:3.5rem;height:3.5rem;background-color:#302d36;border:1px solid rgba(44,132,250,.3);border-radius:1.75rem;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);align-items:center;justify-content:center}.search-overlay{position:fixed;top:0;left:0;z-index:1;width:0;height:0;background-color:rgba(0,0,0,.3);opacity:0;transition:opacity ease 400ms,width 0s 400ms,height 0s 400ms}.search-active .search{position:fixed;top:0;left:0;width:100%;height:100%;padding:0}.search-active .search-input-wrap{height:4rem;border-radius:0}@media(min-width: 50rem){.search-active .search-input-wrap{width:33.5rem;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}}.search-active .search-input{background-color:#302d36}@media(min-width: 50rem){.search-active .search-input{padding-left:2.3rem}}@media(min-width: 50rem){.search-active .search-label{padding-left:.6rem}}.search-active .search-results{display:block}.search-active .search-overlay{width:100%;height:100%;opacity:1;transition:opacity ease 400ms,width 0s,height 0s}@media(min-width: 50rem){.search-active .main{position:fixed;right:0;left:0}}.search-active .main-header{padding-top:4rem}@media(min-width: 50rem){.search-active .main-header{padding-top:0}}.table-wrapper{display:block;width:100%;max-width:100%;margin-bottom:1.5rem;overflow-x:auto;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}table{display:table;min-width:100%;border-collapse:separate}th,td{min-width:7.5rem;padding:.5rem .75rem;background-color:#302d36;border-bottom:1px solid rgba(68,67,77,.5);border-left:1px solid #44434d}th,td{font-size:.75rem !important}@media(min-width: 31.25rem){th,td{font-size:.875rem !important}}th:first-of-type,td:first-of-type{border-left:0}tbody tr:last-of-type th,tbody tr:last-of-type td{border-bottom:0}tbody tr:last-of-type td{padding-bottom:.75rem}thead th{border-bottom:1px solid #44434d}:not(pre,figure)>code{padding:.2em .15em;font-weight:400;background-color:#31343f;border:1px solid #44434d;border-radius:4px}a:visited code{border-color:#44434d}div.highlighter-rouge,div.listingblock>div.content,figure.highlight{margin-top:0;margin-bottom:.75rem;background-color:#31343f;border-radius:4px;box-shadow:none;-webkit-overflow-scrolling:touch;position:relative;padding:0}div.highlighter-rouge>button,div.listingblock>div.content>button,figure.highlight>button{width:.75rem;opacity:0;position:absolute;top:0;right:0;border:.75rem solid #31343f;background-color:#31343f;color:#e6e1e8;box-sizing:content-box}div.highlighter-rouge>button svg,div.listingblock>div.content>button svg,figure.highlight>button svg{fill:#e6e1e8}div.highlighter-rouge>button:active,div.listingblock>div.content>button:active,figure.highlight>button:active{text-decoration:none;outline:none;opacity:1}div.highlighter-rouge>button:focus,div.listingblock>div.content>button:focus,figure.highlight>button:focus{opacity:1}div.highlighter-rouge:hover>button,div.listingblock>div.content:hover>button,figure.highlight:hover>button{cursor:copy;opacity:1}div.highlighter-rouge div.highlight{overflow-x:auto;padding:.75rem;margin:0;border:0}div.highlighter-rouge pre.highlight,div.highlighter-rouge code{padding:0;margin:0;border:0}div.listingblock{margin-top:0;margin-bottom:.75rem}div.listingblock div.content{overflow-x:auto;padding:.75rem;margin:0;border:0}div.listingblock div.content>pre,div.listingblock code{padding:0;margin:0;border:0}figure.highlight pre,figure.highlight :not(pre)>code{overflow-x:auto;padding:.75rem;margin:0;border:0}.highlight .table-wrapper{padding:.75rem 0;margin:0;border:0;box-shadow:none}.highlight .table-wrapper td,.highlight .table-wrapper pre{min-width:0;padding:0;background-color:#31343f;border:0}.highlight .table-wrapper td,.highlight .table-wrapper pre{font-size:.6875rem !important}@media(min-width: 31.25rem){.highlight .table-wrapper td,.highlight .table-wrapper pre{font-size:.75rem !important}}.highlight .table-wrapper td.gl{width:1em;padding-right:.75rem;padding-left:.75rem}.highlight .table-wrapper pre{margin:0;line-height:2}.code-example,.listingblock>.title{padding:.75rem;margin-bottom:.75rem;overflow:auto;border:1px solid #44434d;border-radius:4px}.code-example+.highlighter-rouge,.code-example+.sectionbody .listingblock,.code-example+.content,.code-example+figure.highlight,.listingblock>.title+.highlighter-rouge,.listingblock>.title+.sectionbody .listingblock,.listingblock>.title+.content,.listingblock>.title+figure.highlight{position:relative;margin-top:-1rem;border-right:1px solid #44434d;border-bottom:1px solid #44434d;border-left:1px solid #44434d;border-top-left-radius:0;border-top-right-radius:0}code.language-mermaid{padding:0;background-color:inherit;border:0}.highlight,pre.highlight{background:#31343f;color:#dee2f7}.highlight pre{background:#31343f}.text-grey-dk-000{color:#959396 !important}.text-grey-dk-100{color:#5c5962 !important}.text-grey-dk-200{color:#44434d !important}.text-grey-dk-250{color:#302d36 !important}.text-grey-dk-300{color:#27262b !important}.text-grey-lt-000{color:#f5f6fa !important}.text-grey-lt-100{color:#eeebee !important}.text-grey-lt-200{color:#ecebed !important}.text-grey-lt-300{color:#e6e1e8 !important}.text-blue-000{color:#2c84fa !important}.text-blue-100{color:#2869e6 !important}.text-blue-200{color:#264caf !important}.text-blue-300{color:#183385 !important}.text-green-000{color:#41d693 !important}.text-green-100{color:#11b584 !important}.text-green-200{color:#009c7b !important}.text-green-300{color:#026e57 !important}.text-purple-000{color:#7253ed !important}.text-purple-100{color:#5e41d0 !important}.text-purple-200{color:#4e26af !important}.text-purple-300{color:#381885 !important}.text-yellow-000{color:#ffeb82 !important}.text-yellow-100{color:#fadf50 !important}.text-yellow-200{color:#f7d12e !important}.text-yellow-300{color:#e7af06 !important}.text-red-000{color:#f77e7e !important}.text-red-100{color:#f96e65 !important}.text-red-200{color:#e94c4c !important}.text-red-300{color:#dd2e2e !important}.bg-grey-dk-000{background-color:#959396 !important}.bg-grey-dk-100{background-color:#5c5962 !important}.bg-grey-dk-200{background-color:#44434d !important}.bg-grey-dk-250{background-color:#302d36 !important}.bg-grey-dk-300{background-color:#27262b !important}.bg-grey-lt-000{background-color:#f5f6fa !important}.bg-grey-lt-100{background-color:#eeebee !important}.bg-grey-lt-200{background-color:#ecebed !important}.bg-grey-lt-300{background-color:#e6e1e8 !important}.bg-blue-000{background-color:#2c84fa !important}.bg-blue-100{background-color:#2869e6 !important}.bg-blue-200{background-color:#264caf !important}.bg-blue-300{background-color:#183385 !important}.bg-green-000{background-color:#41d693 !important}.bg-green-100{background-color:#11b584 !important}.bg-green-200{background-color:#009c7b !important}.bg-green-300{background-color:#026e57 !important}.bg-purple-000{background-color:#7253ed !important}.bg-purple-100{background-color:#5e41d0 !important}.bg-purple-200{background-color:#4e26af !important}.bg-purple-300{background-color:#381885 !important}.bg-yellow-000{background-color:#ffeb82 !important}.bg-yellow-100{background-color:#fadf50 !important}.bg-yellow-200{background-color:#f7d12e !important}.bg-yellow-300{background-color:#e7af06 !important}.bg-red-000{background-color:#f77e7e !important}.bg-red-100{background-color:#f96e65 !important}.bg-red-200{background-color:#e94c4c !important}.bg-red-300{background-color:#dd2e2e !important}.d-block{display:block !important}.d-flex{display:flex !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-none{display:none !important}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}.float-left{float:left !important}.float-right{float:right !important}.flex-justify-start{justify-content:flex-start !important}.flex-justify-end{justify-content:flex-end !important}.flex-justify-between{justify-content:space-between !important}.flex-justify-around{justify-content:space-around !important}.v-align-baseline{vertical-align:baseline !important}.v-align-bottom{vertical-align:bottom !important}.v-align-middle{vertical-align:middle !important}.v-align-text-bottom{vertical-align:text-bottom !important}.v-align-text-top{vertical-align:text-top !important}.v-align-top{vertical-align:top !important}.fs-1{font-size:.5625rem !important}@media(min-width: 31.25rem){.fs-1{font-size:.625rem !important}}.fs-2{font-size:.6875rem !important}@media(min-width: 31.25rem){.fs-2{font-size:.75rem !important}}.fs-3{font-size:.75rem !important}@media(min-width: 31.25rem){.fs-3{font-size:.875rem !important}}.fs-4{font-size:.875rem !important}@media(min-width: 31.25rem){.fs-4{font-size:1rem !important}}.fs-5{font-size:1rem !important}@media(min-width: 31.25rem){.fs-5{font-size:1.125rem !important}}.fs-6{font-size:1.125rem !important}@media(min-width: 31.25rem){.fs-6{font-size:1.5rem !important;line-height:1.25}}.fs-7{font-size:1.5rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-7{font-size:2rem !important}}.fs-8{font-size:2rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-8{font-size:2.25rem !important}}.fs-9{font-size:2.25rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-9{font-size:2.625rem !important}}.fs-10{font-size:2.625rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-10{font-size:3rem !important}}.fw-300{font-weight:300 !important}.fw-400{font-weight:400 !important}.fw-500{font-weight:500 !important}.fw-700{font-weight:700 !important}.lh-0{line-height:0 !important}.lh-default{line-height:1.4}.lh-tight{line-height:1.25}.ls-5{letter-spacing:.05em !important}.ls-10{letter-spacing:.1em !important}.ls-0{letter-spacing:0 !important}.text-uppercase{text-transform:uppercase !important}.list-style-none{padding:0 !important;margin:0 !important;list-style:none !important}.list-style-none li::before{display:none !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-0{margin-right:-0 !important;margin-left:-0 !important}.mx-0-auto{margin-right:auto !important;margin-left:auto !important}.m-1{margin:0.25rem !important}.mt-1{margin-top:0.25rem !important}.mr-1{margin-right:0.25rem !important}.mb-1{margin-bottom:0.25rem !important}.ml-1{margin-left:0.25rem !important}.mx-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-1-auto{margin-right:auto !important;margin-left:auto !important}.m-2{margin:0.5rem !important}.mt-2{margin-top:0.5rem !important}.mr-2{margin-right:0.5rem !important}.mb-2{margin-bottom:0.5rem !important}.ml-2{margin-left:0.5rem !important}.mx-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-2-auto{margin-right:auto !important;margin-left:auto !important}.m-3{margin:0.75rem !important}.mt-3{margin-top:0.75rem !important}.mr-3{margin-right:0.75rem !important}.mb-3{margin-bottom:0.75rem !important}.ml-3{margin-left:0.75rem !important}.mx-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}.mx-3-auto{margin-right:auto !important;margin-left:auto !important}.m-4{margin:1rem !important}.mt-4{margin-top:1rem !important}.mr-4{margin-right:1rem !important}.mb-4{margin-bottom:1rem !important}.ml-4{margin-left:1rem !important}.mx-4{margin-right:1rem !important;margin-left:1rem !important}.my-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-4{margin-right:-1rem !important;margin-left:-1rem !important}.mx-4-auto{margin-right:auto !important;margin-left:auto !important}.m-5{margin:1.5rem !important}.mt-5{margin-top:1.5rem !important}.mr-5{margin-right:1.5rem !important}.mb-5{margin-bottom:1.5rem !important}.ml-5{margin-left:1.5rem !important}.mx-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-5-auto{margin-right:auto !important;margin-left:auto !important}.m-6{margin:2rem !important}.mt-6{margin-top:2rem !important}.mr-6{margin-right:2rem !important}.mb-6{margin-bottom:2rem !important}.ml-6{margin-left:2rem !important}.mx-6{margin-right:2rem !important;margin-left:2rem !important}.my-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-6{margin-right:-2rem !important;margin-left:-2rem !important}.mx-6-auto{margin-right:auto !important;margin-left:auto !important}.m-7{margin:2.5rem !important}.mt-7{margin-top:2.5rem !important}.mr-7{margin-right:2.5rem !important}.mb-7{margin-bottom:2.5rem !important}.ml-7{margin-left:2.5rem !important}.mx-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}.mx-7-auto{margin-right:auto !important;margin-left:auto !important}.m-8{margin:3rem !important}.mt-8{margin-top:3rem !important}.mr-8{margin-right:3rem !important}.mb-8{margin-bottom:3rem !important}.ml-8{margin-left:3rem !important}.mx-8{margin-right:3rem !important;margin-left:3rem !important}.my-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-8{margin-right:-3rem !important;margin-left:-3rem !important}.mx-8-auto{margin-right:auto !important;margin-left:auto !important}.m-9{margin:3.5rem !important}.mt-9{margin-top:3.5rem !important}.mr-9{margin-right:3.5rem !important}.mb-9{margin-bottom:3.5rem !important}.ml-9{margin-left:3.5rem !important}.mx-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}.mx-9-auto{margin-right:auto !important;margin-left:auto !important}.m-10{margin:4rem !important}.mt-10{margin-top:4rem !important}.mr-10{margin-right:4rem !important}.mb-10{margin-bottom:4rem !important}.ml-10{margin-left:4rem !important}.mx-10{margin-right:4rem !important;margin-left:4rem !important}.my-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-10{margin-right:-4rem !important;margin-left:-4rem !important}.mx-10-auto{margin-right:auto !important;margin-left:auto !important}@media(min-width: 20rem){.m-xs-0{margin:0 !important}.mt-xs-0{margin-top:0 !important}.mr-xs-0{margin-right:0 !important}.mb-xs-0{margin-bottom:0 !important}.ml-xs-0{margin-left:0 !important}.mx-xs-0{margin-right:0 !important;margin-left:0 !important}.my-xs-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-xs-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 20rem){.m-xs-1{margin:0.25rem !important}.mt-xs-1{margin-top:0.25rem !important}.mr-xs-1{margin-right:0.25rem !important}.mb-xs-1{margin-bottom:0.25rem !important}.ml-xs-1{margin-left:0.25rem !important}.mx-xs-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-xs-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-xs-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 20rem){.m-xs-2{margin:0.5rem !important}.mt-xs-2{margin-top:0.5rem !important}.mr-xs-2{margin-right:0.5rem !important}.mb-xs-2{margin-bottom:0.5rem !important}.ml-xs-2{margin-left:0.5rem !important}.mx-xs-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-xs-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-xs-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 20rem){.m-xs-3{margin:0.75rem !important}.mt-xs-3{margin-top:0.75rem !important}.mr-xs-3{margin-right:0.75rem !important}.mb-xs-3{margin-bottom:0.75rem !important}.ml-xs-3{margin-left:0.75rem !important}.mx-xs-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-xs-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-xs-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 20rem){.m-xs-4{margin:1rem !important}.mt-xs-4{margin-top:1rem !important}.mr-xs-4{margin-right:1rem !important}.mb-xs-4{margin-bottom:1rem !important}.ml-xs-4{margin-left:1rem !important}.mx-xs-4{margin-right:1rem !important;margin-left:1rem !important}.my-xs-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-xs-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 20rem){.m-xs-5{margin:1.5rem !important}.mt-xs-5{margin-top:1.5rem !important}.mr-xs-5{margin-right:1.5rem !important}.mb-xs-5{margin-bottom:1.5rem !important}.ml-xs-5{margin-left:1.5rem !important}.mx-xs-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-xs-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-xs-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 20rem){.m-xs-6{margin:2rem !important}.mt-xs-6{margin-top:2rem !important}.mr-xs-6{margin-right:2rem !important}.mb-xs-6{margin-bottom:2rem !important}.ml-xs-6{margin-left:2rem !important}.mx-xs-6{margin-right:2rem !important;margin-left:2rem !important}.my-xs-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-xs-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 20rem){.m-xs-7{margin:2.5rem !important}.mt-xs-7{margin-top:2.5rem !important}.mr-xs-7{margin-right:2.5rem !important}.mb-xs-7{margin-bottom:2.5rem !important}.ml-xs-7{margin-left:2.5rem !important}.mx-xs-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-xs-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-xs-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 20rem){.m-xs-8{margin:3rem !important}.mt-xs-8{margin-top:3rem !important}.mr-xs-8{margin-right:3rem !important}.mb-xs-8{margin-bottom:3rem !important}.ml-xs-8{margin-left:3rem !important}.mx-xs-8{margin-right:3rem !important;margin-left:3rem !important}.my-xs-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-xs-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 20rem){.m-xs-9{margin:3.5rem !important}.mt-xs-9{margin-top:3.5rem !important}.mr-xs-9{margin-right:3.5rem !important}.mb-xs-9{margin-bottom:3.5rem !important}.ml-xs-9{margin-left:3.5rem !important}.mx-xs-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-xs-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-xs-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 20rem){.m-xs-10{margin:4rem !important}.mt-xs-10{margin-top:4rem !important}.mr-xs-10{margin-right:4rem !important}.mb-xs-10{margin-bottom:4rem !important}.ml-xs-10{margin-left:4rem !important}.mx-xs-10{margin-right:4rem !important;margin-left:4rem !important}.my-xs-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-xs-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 31.25rem){.m-sm-0{margin:0 !important}.mt-sm-0{margin-top:0 !important}.mr-sm-0{margin-right:0 !important}.mb-sm-0{margin-bottom:0 !important}.ml-sm-0{margin-left:0 !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-sm-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 31.25rem){.m-sm-1{margin:0.25rem !important}.mt-sm-1{margin-top:0.25rem !important}.mr-sm-1{margin-right:0.25rem !important}.mb-sm-1{margin-bottom:0.25rem !important}.ml-sm-1{margin-left:0.25rem !important}.mx-sm-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-sm-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-sm-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 31.25rem){.m-sm-2{margin:0.5rem !important}.mt-sm-2{margin-top:0.5rem !important}.mr-sm-2{margin-right:0.5rem !important}.mb-sm-2{margin-bottom:0.5rem !important}.ml-sm-2{margin-left:0.5rem !important}.mx-sm-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-sm-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-sm-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 31.25rem){.m-sm-3{margin:0.75rem !important}.mt-sm-3{margin-top:0.75rem !important}.mr-sm-3{margin-right:0.75rem !important}.mb-sm-3{margin-bottom:0.75rem !important}.ml-sm-3{margin-left:0.75rem !important}.mx-sm-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-sm-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-sm-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 31.25rem){.m-sm-4{margin:1rem !important}.mt-sm-4{margin-top:1rem !important}.mr-sm-4{margin-right:1rem !important}.mb-sm-4{margin-bottom:1rem !important}.ml-sm-4{margin-left:1rem !important}.mx-sm-4{margin-right:1rem !important;margin-left:1rem !important}.my-sm-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-sm-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 31.25rem){.m-sm-5{margin:1.5rem !important}.mt-sm-5{margin-top:1.5rem !important}.mr-sm-5{margin-right:1.5rem !important}.mb-sm-5{margin-bottom:1.5rem !important}.ml-sm-5{margin-left:1.5rem !important}.mx-sm-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-sm-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-sm-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 31.25rem){.m-sm-6{margin:2rem !important}.mt-sm-6{margin-top:2rem !important}.mr-sm-6{margin-right:2rem !important}.mb-sm-6{margin-bottom:2rem !important}.ml-sm-6{margin-left:2rem !important}.mx-sm-6{margin-right:2rem !important;margin-left:2rem !important}.my-sm-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-sm-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 31.25rem){.m-sm-7{margin:2.5rem !important}.mt-sm-7{margin-top:2.5rem !important}.mr-sm-7{margin-right:2.5rem !important}.mb-sm-7{margin-bottom:2.5rem !important}.ml-sm-7{margin-left:2.5rem !important}.mx-sm-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-sm-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-sm-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 31.25rem){.m-sm-8{margin:3rem !important}.mt-sm-8{margin-top:3rem !important}.mr-sm-8{margin-right:3rem !important}.mb-sm-8{margin-bottom:3rem !important}.ml-sm-8{margin-left:3rem !important}.mx-sm-8{margin-right:3rem !important;margin-left:3rem !important}.my-sm-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-sm-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 31.25rem){.m-sm-9{margin:3.5rem !important}.mt-sm-9{margin-top:3.5rem !important}.mr-sm-9{margin-right:3.5rem !important}.mb-sm-9{margin-bottom:3.5rem !important}.ml-sm-9{margin-left:3.5rem !important}.mx-sm-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-sm-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-sm-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 31.25rem){.m-sm-10{margin:4rem !important}.mt-sm-10{margin-top:4rem !important}.mr-sm-10{margin-right:4rem !important}.mb-sm-10{margin-bottom:4rem !important}.ml-sm-10{margin-left:4rem !important}.mx-sm-10{margin-right:4rem !important;margin-left:4rem !important}.my-sm-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-sm-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 50rem){.m-md-0{margin:0 !important}.mt-md-0{margin-top:0 !important}.mr-md-0{margin-right:0 !important}.mb-md-0{margin-bottom:0 !important}.ml-md-0{margin-left:0 !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-md-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 50rem){.m-md-1{margin:0.25rem !important}.mt-md-1{margin-top:0.25rem !important}.mr-md-1{margin-right:0.25rem !important}.mb-md-1{margin-bottom:0.25rem !important}.ml-md-1{margin-left:0.25rem !important}.mx-md-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-md-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-md-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 50rem){.m-md-2{margin:0.5rem !important}.mt-md-2{margin-top:0.5rem !important}.mr-md-2{margin-right:0.5rem !important}.mb-md-2{margin-bottom:0.5rem !important}.ml-md-2{margin-left:0.5rem !important}.mx-md-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-md-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-md-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 50rem){.m-md-3{margin:0.75rem !important}.mt-md-3{margin-top:0.75rem !important}.mr-md-3{margin-right:0.75rem !important}.mb-md-3{margin-bottom:0.75rem !important}.ml-md-3{margin-left:0.75rem !important}.mx-md-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-md-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-md-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 50rem){.m-md-4{margin:1rem !important}.mt-md-4{margin-top:1rem !important}.mr-md-4{margin-right:1rem !important}.mb-md-4{margin-bottom:1rem !important}.ml-md-4{margin-left:1rem !important}.mx-md-4{margin-right:1rem !important;margin-left:1rem !important}.my-md-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-md-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 50rem){.m-md-5{margin:1.5rem !important}.mt-md-5{margin-top:1.5rem !important}.mr-md-5{margin-right:1.5rem !important}.mb-md-5{margin-bottom:1.5rem !important}.ml-md-5{margin-left:1.5rem !important}.mx-md-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-md-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-md-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 50rem){.m-md-6{margin:2rem !important}.mt-md-6{margin-top:2rem !important}.mr-md-6{margin-right:2rem !important}.mb-md-6{margin-bottom:2rem !important}.ml-md-6{margin-left:2rem !important}.mx-md-6{margin-right:2rem !important;margin-left:2rem !important}.my-md-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-md-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 50rem){.m-md-7{margin:2.5rem !important}.mt-md-7{margin-top:2.5rem !important}.mr-md-7{margin-right:2.5rem !important}.mb-md-7{margin-bottom:2.5rem !important}.ml-md-7{margin-left:2.5rem !important}.mx-md-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-md-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-md-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 50rem){.m-md-8{margin:3rem !important}.mt-md-8{margin-top:3rem !important}.mr-md-8{margin-right:3rem !important}.mb-md-8{margin-bottom:3rem !important}.ml-md-8{margin-left:3rem !important}.mx-md-8{margin-right:3rem !important;margin-left:3rem !important}.my-md-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-md-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 50rem){.m-md-9{margin:3.5rem !important}.mt-md-9{margin-top:3.5rem !important}.mr-md-9{margin-right:3.5rem !important}.mb-md-9{margin-bottom:3.5rem !important}.ml-md-9{margin-left:3.5rem !important}.mx-md-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-md-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-md-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 50rem){.m-md-10{margin:4rem !important}.mt-md-10{margin-top:4rem !important}.mr-md-10{margin-right:4rem !important}.mb-md-10{margin-bottom:4rem !important}.ml-md-10{margin-left:4rem !important}.mx-md-10{margin-right:4rem !important;margin-left:4rem !important}.my-md-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-md-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 66.5rem){.m-lg-0{margin:0 !important}.mt-lg-0{margin-top:0 !important}.mr-lg-0{margin-right:0 !important}.mb-lg-0{margin-bottom:0 !important}.ml-lg-0{margin-left:0 !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-lg-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 66.5rem){.m-lg-1{margin:0.25rem !important}.mt-lg-1{margin-top:0.25rem !important}.mr-lg-1{margin-right:0.25rem !important}.mb-lg-1{margin-bottom:0.25rem !important}.ml-lg-1{margin-left:0.25rem !important}.mx-lg-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-lg-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-lg-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 66.5rem){.m-lg-2{margin:0.5rem !important}.mt-lg-2{margin-top:0.5rem !important}.mr-lg-2{margin-right:0.5rem !important}.mb-lg-2{margin-bottom:0.5rem !important}.ml-lg-2{margin-left:0.5rem !important}.mx-lg-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-lg-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-lg-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 66.5rem){.m-lg-3{margin:0.75rem !important}.mt-lg-3{margin-top:0.75rem !important}.mr-lg-3{margin-right:0.75rem !important}.mb-lg-3{margin-bottom:0.75rem !important}.ml-lg-3{margin-left:0.75rem !important}.mx-lg-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-lg-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-lg-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 66.5rem){.m-lg-4{margin:1rem !important}.mt-lg-4{margin-top:1rem !important}.mr-lg-4{margin-right:1rem !important}.mb-lg-4{margin-bottom:1rem !important}.ml-lg-4{margin-left:1rem !important}.mx-lg-4{margin-right:1rem !important;margin-left:1rem !important}.my-lg-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-lg-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 66.5rem){.m-lg-5{margin:1.5rem !important}.mt-lg-5{margin-top:1.5rem !important}.mr-lg-5{margin-right:1.5rem !important}.mb-lg-5{margin-bottom:1.5rem !important}.ml-lg-5{margin-left:1.5rem !important}.mx-lg-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-lg-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-lg-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 66.5rem){.m-lg-6{margin:2rem !important}.mt-lg-6{margin-top:2rem !important}.mr-lg-6{margin-right:2rem !important}.mb-lg-6{margin-bottom:2rem !important}.ml-lg-6{margin-left:2rem !important}.mx-lg-6{margin-right:2rem !important;margin-left:2rem !important}.my-lg-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-lg-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 66.5rem){.m-lg-7{margin:2.5rem !important}.mt-lg-7{margin-top:2.5rem !important}.mr-lg-7{margin-right:2.5rem !important}.mb-lg-7{margin-bottom:2.5rem !important}.ml-lg-7{margin-left:2.5rem !important}.mx-lg-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-lg-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-lg-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 66.5rem){.m-lg-8{margin:3rem !important}.mt-lg-8{margin-top:3rem !important}.mr-lg-8{margin-right:3rem !important}.mb-lg-8{margin-bottom:3rem !important}.ml-lg-8{margin-left:3rem !important}.mx-lg-8{margin-right:3rem !important;margin-left:3rem !important}.my-lg-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-lg-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 66.5rem){.m-lg-9{margin:3.5rem !important}.mt-lg-9{margin-top:3.5rem !important}.mr-lg-9{margin-right:3.5rem !important}.mb-lg-9{margin-bottom:3.5rem !important}.ml-lg-9{margin-left:3.5rem !important}.mx-lg-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-lg-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-lg-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 66.5rem){.m-lg-10{margin:4rem !important}.mt-lg-10{margin-top:4rem !important}.mr-lg-10{margin-right:4rem !important}.mb-lg-10{margin-bottom:4rem !important}.ml-lg-10{margin-left:4rem !important}.mx-lg-10{margin-right:4rem !important;margin-left:4rem !important}.my-lg-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-lg-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 87.5rem){.m-xl-0{margin:0 !important}.mt-xl-0{margin-top:0 !important}.mr-xl-0{margin-right:0 !important}.mb-xl-0{margin-bottom:0 !important}.ml-xl-0{margin-left:0 !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-xl-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 87.5rem){.m-xl-1{margin:0.25rem !important}.mt-xl-1{margin-top:0.25rem !important}.mr-xl-1{margin-right:0.25rem !important}.mb-xl-1{margin-bottom:0.25rem !important}.ml-xl-1{margin-left:0.25rem !important}.mx-xl-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-xl-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-xl-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 87.5rem){.m-xl-2{margin:0.5rem !important}.mt-xl-2{margin-top:0.5rem !important}.mr-xl-2{margin-right:0.5rem !important}.mb-xl-2{margin-bottom:0.5rem !important}.ml-xl-2{margin-left:0.5rem !important}.mx-xl-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-xl-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-xl-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 87.5rem){.m-xl-3{margin:0.75rem !important}.mt-xl-3{margin-top:0.75rem !important}.mr-xl-3{margin-right:0.75rem !important}.mb-xl-3{margin-bottom:0.75rem !important}.ml-xl-3{margin-left:0.75rem !important}.mx-xl-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-xl-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-xl-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 87.5rem){.m-xl-4{margin:1rem !important}.mt-xl-4{margin-top:1rem !important}.mr-xl-4{margin-right:1rem !important}.mb-xl-4{margin-bottom:1rem !important}.ml-xl-4{margin-left:1rem !important}.mx-xl-4{margin-right:1rem !important;margin-left:1rem !important}.my-xl-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-xl-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 87.5rem){.m-xl-5{margin:1.5rem !important}.mt-xl-5{margin-top:1.5rem !important}.mr-xl-5{margin-right:1.5rem !important}.mb-xl-5{margin-bottom:1.5rem !important}.ml-xl-5{margin-left:1.5rem !important}.mx-xl-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-xl-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-xl-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 87.5rem){.m-xl-6{margin:2rem !important}.mt-xl-6{margin-top:2rem !important}.mr-xl-6{margin-right:2rem !important}.mb-xl-6{margin-bottom:2rem !important}.ml-xl-6{margin-left:2rem !important}.mx-xl-6{margin-right:2rem !important;margin-left:2rem !important}.my-xl-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-xl-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 87.5rem){.m-xl-7{margin:2.5rem !important}.mt-xl-7{margin-top:2.5rem !important}.mr-xl-7{margin-right:2.5rem !important}.mb-xl-7{margin-bottom:2.5rem !important}.ml-xl-7{margin-left:2.5rem !important}.mx-xl-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-xl-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-xl-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 87.5rem){.m-xl-8{margin:3rem !important}.mt-xl-8{margin-top:3rem !important}.mr-xl-8{margin-right:3rem !important}.mb-xl-8{margin-bottom:3rem !important}.ml-xl-8{margin-left:3rem !important}.mx-xl-8{margin-right:3rem !important;margin-left:3rem !important}.my-xl-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-xl-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 87.5rem){.m-xl-9{margin:3.5rem !important}.mt-xl-9{margin-top:3.5rem !important}.mr-xl-9{margin-right:3.5rem !important}.mb-xl-9{margin-bottom:3.5rem !important}.ml-xl-9{margin-left:3.5rem !important}.mx-xl-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-xl-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-xl-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 87.5rem){.m-xl-10{margin:4rem !important}.mt-xl-10{margin-top:4rem !important}.mr-xl-10{margin-right:4rem !important}.mb-xl-10{margin-bottom:4rem !important}.ml-xl-10{margin-left:4rem !important}.mx-xl-10{margin-right:4rem !important;margin-left:4rem !important}.my-xl-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-xl-10{margin-right:-4rem !important;margin-left:-4rem !important}}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-right:0 !important;padding-left:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:0.25rem !important}.pt-1{padding-top:0.25rem !important}.pr-1{padding-right:0.25rem !important}.pb-1{padding-bottom:0.25rem !important}.pl-1{padding-left:0.25rem !important}.px-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-2{padding:0.5rem !important}.pt-2{padding-top:0.5rem !important}.pr-2{padding-right:0.5rem !important}.pb-2{padding-bottom:0.5rem !important}.pl-2{padding-left:0.5rem !important}.px-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-3{padding:0.75rem !important}.pt-3{padding-top:0.75rem !important}.pr-3{padding-right:0.75rem !important}.pb-3{padding-bottom:0.75rem !important}.pl-3{padding-left:0.75rem !important}.px-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-4{padding:1rem !important}.pt-4{padding-top:1rem !important}.pr-4{padding-right:1rem !important}.pb-4{padding-bottom:1rem !important}.pl-4{padding-left:1rem !important}.px-4{padding-right:1rem !important;padding-left:1rem !important}.py-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-5{padding:1.5rem !important}.pt-5{padding-top:1.5rem !important}.pr-5{padding-right:1.5rem !important}.pb-5{padding-bottom:1.5rem !important}.pl-5{padding-left:1.5rem !important}.px-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-6{padding:2rem !important}.pt-6{padding-top:2rem !important}.pr-6{padding-right:2rem !important}.pb-6{padding-bottom:2rem !important}.pl-6{padding-left:2rem !important}.px-6{padding-right:2rem !important;padding-left:2rem !important}.py-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-7{padding:2.5rem !important}.pt-7{padding-top:2.5rem !important}.pr-7{padding-right:2.5rem !important}.pb-7{padding-bottom:2.5rem !important}.pl-7{padding-left:2.5rem !important}.px-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-8{padding:3rem !important}.pt-8{padding-top:3rem !important}.pr-8{padding-right:3rem !important}.pb-8{padding-bottom:3rem !important}.pl-8{padding-left:3rem !important}.px-8{padding-right:3rem !important;padding-left:3rem !important}.py-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-9{padding:3.5rem !important}.pt-9{padding-top:3.5rem !important}.pr-9{padding-right:3.5rem !important}.pb-9{padding-bottom:3.5rem !important}.pl-9{padding-left:3.5rem !important}.px-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-10{padding:4rem !important}.pt-10{padding-top:4rem !important}.pr-10{padding-right:4rem !important}.pb-10{padding-bottom:4rem !important}.pl-10{padding-left:4rem !important}.px-10{padding-right:4rem !important;padding-left:4rem !important}.py-10{padding-top:4rem !important;padding-bottom:4rem !important}@media(min-width: 20rem){.p-xs-0{padding:0 !important}.pt-xs-0{padding-top:0 !important}.pr-xs-0{padding-right:0 !important}.pb-xs-0{padding-bottom:0 !important}.pl-xs-0{padding-left:0 !important}.px-xs-0{padding-right:0 !important;padding-left:0 !important}.py-xs-0{padding-top:0 !important;padding-bottom:0 !important}.p-xs-1{padding:0.25rem !important}.pt-xs-1{padding-top:0.25rem !important}.pr-xs-1{padding-right:0.25rem !important}.pb-xs-1{padding-bottom:0.25rem !important}.pl-xs-1{padding-left:0.25rem !important}.px-xs-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-xs-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-xs-2{padding:0.5rem !important}.pt-xs-2{padding-top:0.5rem !important}.pr-xs-2{padding-right:0.5rem !important}.pb-xs-2{padding-bottom:0.5rem !important}.pl-xs-2{padding-left:0.5rem !important}.px-xs-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-xs-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-xs-3{padding:0.75rem !important}.pt-xs-3{padding-top:0.75rem !important}.pr-xs-3{padding-right:0.75rem !important}.pb-xs-3{padding-bottom:0.75rem !important}.pl-xs-3{padding-left:0.75rem !important}.px-xs-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-xs-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-xs-4{padding:1rem !important}.pt-xs-4{padding-top:1rem !important}.pr-xs-4{padding-right:1rem !important}.pb-xs-4{padding-bottom:1rem !important}.pl-xs-4{padding-left:1rem !important}.px-xs-4{padding-right:1rem !important;padding-left:1rem !important}.py-xs-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-xs-5{padding:1.5rem !important}.pt-xs-5{padding-top:1.5rem !important}.pr-xs-5{padding-right:1.5rem !important}.pb-xs-5{padding-bottom:1.5rem !important}.pl-xs-5{padding-left:1.5rem !important}.px-xs-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-xs-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-xs-6{padding:2rem !important}.pt-xs-6{padding-top:2rem !important}.pr-xs-6{padding-right:2rem !important}.pb-xs-6{padding-bottom:2rem !important}.pl-xs-6{padding-left:2rem !important}.px-xs-6{padding-right:2rem !important;padding-left:2rem !important}.py-xs-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-xs-7{padding:2.5rem !important}.pt-xs-7{padding-top:2.5rem !important}.pr-xs-7{padding-right:2.5rem !important}.pb-xs-7{padding-bottom:2.5rem !important}.pl-xs-7{padding-left:2.5rem !important}.px-xs-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-xs-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-xs-8{padding:3rem !important}.pt-xs-8{padding-top:3rem !important}.pr-xs-8{padding-right:3rem !important}.pb-xs-8{padding-bottom:3rem !important}.pl-xs-8{padding-left:3rem !important}.px-xs-8{padding-right:3rem !important;padding-left:3rem !important}.py-xs-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-xs-9{padding:3.5rem !important}.pt-xs-9{padding-top:3.5rem !important}.pr-xs-9{padding-right:3.5rem !important}.pb-xs-9{padding-bottom:3.5rem !important}.pl-xs-9{padding-left:3.5rem !important}.px-xs-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-xs-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-xs-10{padding:4rem !important}.pt-xs-10{padding-top:4rem !important}.pr-xs-10{padding-right:4rem !important}.pb-xs-10{padding-bottom:4rem !important}.pl-xs-10{padding-left:4rem !important}.px-xs-10{padding-right:4rem !important;padding-left:4rem !important}.py-xs-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 31.25rem){.p-sm-0{padding:0 !important}.pt-sm-0{padding-top:0 !important}.pr-sm-0{padding-right:0 !important}.pb-sm-0{padding-bottom:0 !important}.pl-sm-0{padding-left:0 !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.p-sm-1{padding:0.25rem !important}.pt-sm-1{padding-top:0.25rem !important}.pr-sm-1{padding-right:0.25rem !important}.pb-sm-1{padding-bottom:0.25rem !important}.pl-sm-1{padding-left:0.25rem !important}.px-sm-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-sm-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-sm-2{padding:0.5rem !important}.pt-sm-2{padding-top:0.5rem !important}.pr-sm-2{padding-right:0.5rem !important}.pb-sm-2{padding-bottom:0.5rem !important}.pl-sm-2{padding-left:0.5rem !important}.px-sm-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-sm-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-sm-3{padding:0.75rem !important}.pt-sm-3{padding-top:0.75rem !important}.pr-sm-3{padding-right:0.75rem !important}.pb-sm-3{padding-bottom:0.75rem !important}.pl-sm-3{padding-left:0.75rem !important}.px-sm-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-sm-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-sm-4{padding:1rem !important}.pt-sm-4{padding-top:1rem !important}.pr-sm-4{padding-right:1rem !important}.pb-sm-4{padding-bottom:1rem !important}.pl-sm-4{padding-left:1rem !important}.px-sm-4{padding-right:1rem !important;padding-left:1rem !important}.py-sm-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-sm-5{padding:1.5rem !important}.pt-sm-5{padding-top:1.5rem !important}.pr-sm-5{padding-right:1.5rem !important}.pb-sm-5{padding-bottom:1.5rem !important}.pl-sm-5{padding-left:1.5rem !important}.px-sm-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-sm-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-sm-6{padding:2rem !important}.pt-sm-6{padding-top:2rem !important}.pr-sm-6{padding-right:2rem !important}.pb-sm-6{padding-bottom:2rem !important}.pl-sm-6{padding-left:2rem !important}.px-sm-6{padding-right:2rem !important;padding-left:2rem !important}.py-sm-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-sm-7{padding:2.5rem !important}.pt-sm-7{padding-top:2.5rem !important}.pr-sm-7{padding-right:2.5rem !important}.pb-sm-7{padding-bottom:2.5rem !important}.pl-sm-7{padding-left:2.5rem !important}.px-sm-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-sm-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-sm-8{padding:3rem !important}.pt-sm-8{padding-top:3rem !important}.pr-sm-8{padding-right:3rem !important}.pb-sm-8{padding-bottom:3rem !important}.pl-sm-8{padding-left:3rem !important}.px-sm-8{padding-right:3rem !important;padding-left:3rem !important}.py-sm-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-sm-9{padding:3.5rem !important}.pt-sm-9{padding-top:3.5rem !important}.pr-sm-9{padding-right:3.5rem !important}.pb-sm-9{padding-bottom:3.5rem !important}.pl-sm-9{padding-left:3.5rem !important}.px-sm-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-sm-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-sm-10{padding:4rem !important}.pt-sm-10{padding-top:4rem !important}.pr-sm-10{padding-right:4rem !important}.pb-sm-10{padding-bottom:4rem !important}.pl-sm-10{padding-left:4rem !important}.px-sm-10{padding-right:4rem !important;padding-left:4rem !important}.py-sm-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 50rem){.p-md-0{padding:0 !important}.pt-md-0{padding-top:0 !important}.pr-md-0{padding-right:0 !important}.pb-md-0{padding-bottom:0 !important}.pl-md-0{padding-left:0 !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.p-md-1{padding:0.25rem !important}.pt-md-1{padding-top:0.25rem !important}.pr-md-1{padding-right:0.25rem !important}.pb-md-1{padding-bottom:0.25rem !important}.pl-md-1{padding-left:0.25rem !important}.px-md-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-md-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-md-2{padding:0.5rem !important}.pt-md-2{padding-top:0.5rem !important}.pr-md-2{padding-right:0.5rem !important}.pb-md-2{padding-bottom:0.5rem !important}.pl-md-2{padding-left:0.5rem !important}.px-md-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-md-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-md-3{padding:0.75rem !important}.pt-md-3{padding-top:0.75rem !important}.pr-md-3{padding-right:0.75rem !important}.pb-md-3{padding-bottom:0.75rem !important}.pl-md-3{padding-left:0.75rem !important}.px-md-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-md-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-md-4{padding:1rem !important}.pt-md-4{padding-top:1rem !important}.pr-md-4{padding-right:1rem !important}.pb-md-4{padding-bottom:1rem !important}.pl-md-4{padding-left:1rem !important}.px-md-4{padding-right:1rem !important;padding-left:1rem !important}.py-md-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-md-5{padding:1.5rem !important}.pt-md-5{padding-top:1.5rem !important}.pr-md-5{padding-right:1.5rem !important}.pb-md-5{padding-bottom:1.5rem !important}.pl-md-5{padding-left:1.5rem !important}.px-md-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-md-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-md-6{padding:2rem !important}.pt-md-6{padding-top:2rem !important}.pr-md-6{padding-right:2rem !important}.pb-md-6{padding-bottom:2rem !important}.pl-md-6{padding-left:2rem !important}.px-md-6{padding-right:2rem !important;padding-left:2rem !important}.py-md-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-md-7{padding:2.5rem !important}.pt-md-7{padding-top:2.5rem !important}.pr-md-7{padding-right:2.5rem !important}.pb-md-7{padding-bottom:2.5rem !important}.pl-md-7{padding-left:2.5rem !important}.px-md-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-md-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-md-8{padding:3rem !important}.pt-md-8{padding-top:3rem !important}.pr-md-8{padding-right:3rem !important}.pb-md-8{padding-bottom:3rem !important}.pl-md-8{padding-left:3rem !important}.px-md-8{padding-right:3rem !important;padding-left:3rem !important}.py-md-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-md-9{padding:3.5rem !important}.pt-md-9{padding-top:3.5rem !important}.pr-md-9{padding-right:3.5rem !important}.pb-md-9{padding-bottom:3.5rem !important}.pl-md-9{padding-left:3.5rem !important}.px-md-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-md-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-md-10{padding:4rem !important}.pt-md-10{padding-top:4rem !important}.pr-md-10{padding-right:4rem !important}.pb-md-10{padding-bottom:4rem !important}.pl-md-10{padding-left:4rem !important}.px-md-10{padding-right:4rem !important;padding-left:4rem !important}.py-md-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 66.5rem){.p-lg-0{padding:0 !important}.pt-lg-0{padding-top:0 !important}.pr-lg-0{padding-right:0 !important}.pb-lg-0{padding-bottom:0 !important}.pl-lg-0{padding-left:0 !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.p-lg-1{padding:0.25rem !important}.pt-lg-1{padding-top:0.25rem !important}.pr-lg-1{padding-right:0.25rem !important}.pb-lg-1{padding-bottom:0.25rem !important}.pl-lg-1{padding-left:0.25rem !important}.px-lg-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-lg-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-lg-2{padding:0.5rem !important}.pt-lg-2{padding-top:0.5rem !important}.pr-lg-2{padding-right:0.5rem !important}.pb-lg-2{padding-bottom:0.5rem !important}.pl-lg-2{padding-left:0.5rem !important}.px-lg-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-lg-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-lg-3{padding:0.75rem !important}.pt-lg-3{padding-top:0.75rem !important}.pr-lg-3{padding-right:0.75rem !important}.pb-lg-3{padding-bottom:0.75rem !important}.pl-lg-3{padding-left:0.75rem !important}.px-lg-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-lg-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-lg-4{padding:1rem !important}.pt-lg-4{padding-top:1rem !important}.pr-lg-4{padding-right:1rem !important}.pb-lg-4{padding-bottom:1rem !important}.pl-lg-4{padding-left:1rem !important}.px-lg-4{padding-right:1rem !important;padding-left:1rem !important}.py-lg-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-lg-5{padding:1.5rem !important}.pt-lg-5{padding-top:1.5rem !important}.pr-lg-5{padding-right:1.5rem !important}.pb-lg-5{padding-bottom:1.5rem !important}.pl-lg-5{padding-left:1.5rem !important}.px-lg-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-lg-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-lg-6{padding:2rem !important}.pt-lg-6{padding-top:2rem !important}.pr-lg-6{padding-right:2rem !important}.pb-lg-6{padding-bottom:2rem !important}.pl-lg-6{padding-left:2rem !important}.px-lg-6{padding-right:2rem !important;padding-left:2rem !important}.py-lg-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-lg-7{padding:2.5rem !important}.pt-lg-7{padding-top:2.5rem !important}.pr-lg-7{padding-right:2.5rem !important}.pb-lg-7{padding-bottom:2.5rem !important}.pl-lg-7{padding-left:2.5rem !important}.px-lg-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-lg-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-lg-8{padding:3rem !important}.pt-lg-8{padding-top:3rem !important}.pr-lg-8{padding-right:3rem !important}.pb-lg-8{padding-bottom:3rem !important}.pl-lg-8{padding-left:3rem !important}.px-lg-8{padding-right:3rem !important;padding-left:3rem !important}.py-lg-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-lg-9{padding:3.5rem !important}.pt-lg-9{padding-top:3.5rem !important}.pr-lg-9{padding-right:3.5rem !important}.pb-lg-9{padding-bottom:3.5rem !important}.pl-lg-9{padding-left:3.5rem !important}.px-lg-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-lg-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-lg-10{padding:4rem !important}.pt-lg-10{padding-top:4rem !important}.pr-lg-10{padding-right:4rem !important}.pb-lg-10{padding-bottom:4rem !important}.pl-lg-10{padding-left:4rem !important}.px-lg-10{padding-right:4rem !important;padding-left:4rem !important}.py-lg-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 87.5rem){.p-xl-0{padding:0 !important}.pt-xl-0{padding-top:0 !important}.pr-xl-0{padding-right:0 !important}.pb-xl-0{padding-bottom:0 !important}.pl-xl-0{padding-left:0 !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.p-xl-1{padding:0.25rem !important}.pt-xl-1{padding-top:0.25rem !important}.pr-xl-1{padding-right:0.25rem !important}.pb-xl-1{padding-bottom:0.25rem !important}.pl-xl-1{padding-left:0.25rem !important}.px-xl-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-xl-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-xl-2{padding:0.5rem !important}.pt-xl-2{padding-top:0.5rem !important}.pr-xl-2{padding-right:0.5rem !important}.pb-xl-2{padding-bottom:0.5rem !important}.pl-xl-2{padding-left:0.5rem !important}.px-xl-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-xl-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-xl-3{padding:0.75rem !important}.pt-xl-3{padding-top:0.75rem !important}.pr-xl-3{padding-right:0.75rem !important}.pb-xl-3{padding-bottom:0.75rem !important}.pl-xl-3{padding-left:0.75rem !important}.px-xl-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-xl-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-xl-4{padding:1rem !important}.pt-xl-4{padding-top:1rem !important}.pr-xl-4{padding-right:1rem !important}.pb-xl-4{padding-bottom:1rem !important}.pl-xl-4{padding-left:1rem !important}.px-xl-4{padding-right:1rem !important;padding-left:1rem !important}.py-xl-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-xl-5{padding:1.5rem !important}.pt-xl-5{padding-top:1.5rem !important}.pr-xl-5{padding-right:1.5rem !important}.pb-xl-5{padding-bottom:1.5rem !important}.pl-xl-5{padding-left:1.5rem !important}.px-xl-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-xl-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-xl-6{padding:2rem !important}.pt-xl-6{padding-top:2rem !important}.pr-xl-6{padding-right:2rem !important}.pb-xl-6{padding-bottom:2rem !important}.pl-xl-6{padding-left:2rem !important}.px-xl-6{padding-right:2rem !important;padding-left:2rem !important}.py-xl-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-xl-7{padding:2.5rem !important}.pt-xl-7{padding-top:2.5rem !important}.pr-xl-7{padding-right:2.5rem !important}.pb-xl-7{padding-bottom:2.5rem !important}.pl-xl-7{padding-left:2.5rem !important}.px-xl-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-xl-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-xl-8{padding:3rem !important}.pt-xl-8{padding-top:3rem !important}.pr-xl-8{padding-right:3rem !important}.pb-xl-8{padding-bottom:3rem !important}.pl-xl-8{padding-left:3rem !important}.px-xl-8{padding-right:3rem !important;padding-left:3rem !important}.py-xl-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-xl-9{padding:3.5rem !important}.pt-xl-9{padding-top:3.5rem !important}.pr-xl-9{padding-right:3.5rem !important}.pb-xl-9{padding-bottom:3.5rem !important}.pl-xl-9{padding-left:3.5rem !important}.px-xl-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-xl-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-xl-10{padding:4rem !important}.pt-xl-10{padding-top:4rem !important}.pr-xl-10{padding-right:4rem !important}.pb-xl-10{padding-bottom:4rem !important}.pl-xl-10{padding-left:4rem !important}.px-xl-10{padding-right:4rem !important;padding-left:4rem !important}.py-xl-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media print{.site-footer,.site-button,#edit-this-page,#back-to-top,.site-nav,.main-header{display:none !important}.side-bar{width:100%;height:auto;border-right:0 !important}.site-header{border-bottom:1px solid #44434d}.site-title{font-size:1rem !important;font-weight:700 !important}.text-small{font-size:8pt !important}pre.highlight{border:1px solid #44434d}.main{max-width:none;margin-left:0}}a.skip-to-main{left:-999px;position:absolute;top:auto;width:1px;height:1px;overflow:hidden;z-index:-999}a.skip-to-main:focus,a.skip-to-main:active{color:#2c84fa;background-color:#27262b;left:auto;top:auto;width:30%;height:auto;overflow:auto;margin:10px 35%;padding:5px;border-radius:15px;border:4px solid #264caf;text-align:center;font-size:1.2em;z-index:999}div.opaque{background-color:#27262b}/*# sourceMappingURL=just-the-docs-dark.css.map */ \ No newline at end of file diff --git a/jekyll-backup/_site/assets/css/just-the-docs-dark.css.map b/jekyll-backup/_site/assets/css/just-the-docs-dark.css.map deleted file mode 100644 index e9e4f0bb..00000000 --- a/jekyll-backup/_site/assets/css/just-the-docs-dark.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/vendor/OneLightJekyll/syntax.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/vendor/OneDarkJekyll/syntax.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/vendor/normalize.scss/normalize.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/base.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/color_schemes/dark.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/_variables.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/content.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/navigation.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/labels.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/buttons.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_buttons.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/search.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/tables.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/code.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_colors.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_lists.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_spacing.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/print.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/skiptomain.scss","just-the-docs-dark.scss"],"names":[],"mappings":"CAEA,yBAEE,mBACA,cAGF,eACE,mBAGF,gBACE,mBAGF,cACE,cACA,kBAGF,gBACE,WACA,yBAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,kBAGF,eACE,gBAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,gBAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,iCACE,cAGF,8BACE,cC7QF,yBAEE,mBACA,cAGF,eACE,mBAGF,gBACE,mBAGF,cACE,cACA,kBAGF,gBACE,cACA,yBAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,kBAGF,eACE,gBAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,gBAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cCvQF,4EAUA,KACE,iBACA,sBAUF,KACE,SAOF,KACE,cAQF,GACE,cACA,eAWF,GACE,uBACA,SACA,iBAQF,IACE,sBACA,cAUF,EACE,+BAQF,YACE,mBACA,0BACA,iCAOF,SAEE,mBAQF,cAGE,sBACA,cAOF,MACE,cAQF,QAEE,cACA,cACA,kBACA,wBAGF,IACE,eAGF,IACE,WAUF,IACE,kBAWF,sCAKE,oBACA,eACA,iBACA,SAQF,aAGE,iBAQF,cAGE,oBAOF,gDAIE,kBAOF,wHAIE,kBACA,UAOF,4GAIE,8BAOF,SACE,2BAUF,OACE,sBACA,cACA,cACA,eACA,UACA,mBAOF,SACE,wBAOF,SACE,cAQF,6BAEE,sBACA,UAOF,kFAEE,YAQF,cACE,qBACA,oBAOF,yCACE,gBAQF,6BACE,kBACA,aAUF,QACE,cAOF,QACE,kBAUF,SACE,aAOF,SACE,aC1VF,MACE,aCJa,KDOf,EACE,sBAGF,KACE,uBEmBA,KACE,6BClBA,4BHHJ,KEyBI,2BFnBJ,KACE,YIfiB,gHJgBjB,kBACA,YIbiB,IJcjB,MIiBY,QJhBZ,iBIYY,QJXZ,yBAGF,mFAYE,aAGF,4BAOE,aACA,kBACA,gBACA,YI1CyB,KJ2CzB,MIjBY,QJoBd,EACE,eACA,kBAGF,EACE,MIlBS,QJmBT,qBAGF,eACE,0BACA,sBInCY,QJoCZ,0BAEA,qBACE,2CAIJ,KACE,YIvEiB,0CJwEjB,gBACA,YIvEiB,IJ0EnB,WAEE,SAGF,GACE,eAGF,IACE,eACA,YAGF,GACE,WACA,UACA,cACA,iBInEY,QJoEZ,SAIF,WACE,cAGA,qBACA,sBACA,kBACA,8BK7GF,UACE,UACA,aACA,eACA,iBD4BY,QDpBV,yBEZJ,UAOI,wBACA,eACA,MDwFW,QCvFX,YACA,+BACA,iDAZJ,UAgBI,yCACA,UD+EQ,SDpFR,yBEQF,gBAEI,YD2ES,SDrFX,2BEQF,gBAQI,uDAOF,6BACE,aACA,iBDLQ,QDpBV,yBEuBA,6BAKI,aACA,iBDTM,SCYR,sCACE,cFjCJ,yBEgCE,sCAII,cAOV,MACE,YF5CE,yBE2CJ,MAII,kBACA,UDyCY,OCrChB,mBACE,YDaK,KCZL,eDYK,KDvDL,cCuDK,KDtDL,aCsDK,KDlEH,yBEoDJ,mBFrCI,cCqDG,KDpDH,aCoDG,MDpEH,yBEoDJ,mBAOI,YDSG,KCRH,eDQG,MCJP,aACE,UACA,gCFlEE,yBEgEJ,aAKI,aACA,8BACA,ODmBY,SCfhB,oCAGE,WF9EE,2BE2EJ,oCAMI,MDGQ,SCCZ,UACE,aAEA,mBACE,cFzFA,yBEqFJ,UAQI,cACA,YDxBG,KCyBH,eD7BG,KC8BH,gBACA,eAIJ,aACE,aACA,WDbc,QCcd,mBFxGE,yBEqGJ,aAMI,ODjBY,QCkBZ,WDlBY,QCmBZ,iCAIJ,YACE,YACA,aACA,YACA,mBACA,YDrDK,OCsDL,eDtDK,OCuDL,MDnGY,QDVZ,cCuDK,KDtDL,aCsDK,KDlEH,yBEiHJ,YFlGI,cCqDG,KDpDH,aCoDG,MF/BL,YACE,8BCtCA,4BEiHJ,YHvEI,4BACA,YEhDuB,MDKvB,yBEiHJ,YAcI,YD/DG,MCgEH,eDhEG,OCqEL,WACE,WACA,YACA,gDACA,4BACA,gCACA,wBAIJ,aACE,aACA,YACA,QDhFK,KCiFL,mBFnJE,yBEuJF,0BACE,cAIJ,kBACE,qNAQF,mBACE,2JASF,KACE,kBACA,eDzGM,KC0GN,kBFlLE,yBE+KJ,KAMI,gBACA,kBAMJ,aACE,kBACA,SACA,OACA,YD9HK,KC+HL,eD/HK,KCgIL,MDlLY,QDLZ,cCuDK,KDtDL,aCsDK,KDlEH,yBE4LJ,aF7KI,cCqDG,KDpDH,aCoDG,MFvEL,aACE,8BCEA,4BE4LJ,aH1LI,6BCFA,yBE4LJ,aAaI,gBACA,kBAIJ,MACE,MD5IK,OC6IL,OD7IK,OC8IL,MDpLS,QEtCX,cACE,YFEoB,qJEOlB,gBAGF,gBACE,gBACA,uBAGF,kCAEE,mBAIA,4BA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GJ,qBV3EI,2BCtBA,yBDOF,qBACE,6BCRA,kDSiGJ,qBVrFI,8BUgGJ,0BACE,UACA,SAGF,eACE,cACA,sBAEA,2CAEE,iBX1Ha,sCW8HjB,qBACE,cACA,YR7DK,MQ8DL,eR9DK,MDhEH,4BS2HJ,qBAMI,qBACA,UACA,cRnEG,MQoEH,oBAIJ,mBACE,aACA,mBACA,qBAEA,4CACE,WVvIF,4CACE,4BCRA,4BS6IF,4CVjIE,8BCZA,yBDHF,4CACE,+BCEA,kDS6IF,4CV3IE,6BUoJF,uCACE,MRrFG,KQsFH,ORtFG,KQuFH,aRzFG,MQ0FH,MR7HO,QQ8HP,cAGF,4CACE,cAIJ,uBACE,mBACA,qBAGF,uBACE,cACA,mBACA,gBACA,MR5JY,QQ6JZ,uBACA,mBV3LA,uBACE,8BCYA,4BSwKJ,uBVhLI,8BU0LJ,wBACE,cACA,YRpHK,MQqHL,eRrHK,MQsHL,aRpHK,KQqHL,YRvHK,MQwHL,MRxKY,QQyKZ,qBACA,YR9GO,UQ+GP,kBRzKY,QFrBZ,wBACE,8BCEA,4BSkLJ,wBVhLI,6BCFA,4BSkLJ,wBAaI,qBACA,UACA,aRjIG,MQkIH,cACA,oBAIJ,8CACE,WRzIK,OQ4IP,yBACE,iBAGF,kBACE,qBVzMA,kBACE,4BCRA,4BS+MJ,kBVnMI,8BUwMJ,eACE,eACA,MRpJK,KQqJL,ORrJK,KQsJL,aACA,MRlJK,OQmJL,ORnJK,OQoJL,iBRxMY,QQyMZ,qCACA,sBACA,WACE,qDAEF,mBACA,uBAGF,gBACE,eACA,MACA,OACA,UACA,QACA,SACA,gCACA,UACA,WACE,kDAMF,uBACE,eACA,MACA,OACA,WACA,YACA,UAGF,kCACE,ORvLI,KQwLJ,gBThQA,yBS8PF,kCAKI,MRxKiB,QQyKjB,WACE,sDAKN,6BACE,iBRxPU,QDnBV,yBS0QF,6BAII,qBT9QF,yBSkRF,6BAEI,oBAIJ,+BACE,cAGF,+BACE,WACA,YACA,UACA,WACE,sCTjSF,yBSuSA,qBACE,eACA,QACA,QAIJ,4BACE,YRvOI,KDxEJ,yBS8SF,4BAII,eC7TN,eACE,cACA,WACA,eACA,cT0EK,OSzEL,gBACA,cTkFc,ISj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E,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBAQR,YACE,sBAGF,aACE,uBAGF,oBACE,sCAGF,kBACE,oCAGF,sBACE,yCAGF,qBACE,wCAKF,kBACE,mCAGF,gBACE,iCAGF,gBACE,iCAGF,qBACE,sCAGF,kBACE,mCAGF,aACE,8BdlGA,MACE,8BCYA,4BcZJ,MfII,8BAKF,MACE,8BCEA,4BcRJ,MfUI,6BAKF,MACE,4BCRA,4BcJJ,MfgBI,8BAKF,MACE,6BClBA,kCDsBA,2BAKF,MACE,0BC5BA,4BcIJ,Mf4BI,+BAKF,MACE,8BCtCA,4BcQJ,MfkCI,4BACA,YEhDuB,MFqDzB,MACE,4BACA,YEvDuB,KDKvB,4BcYJ,Mf0CI,2BAKF,MACE,0BACA,YElEuB,KDKvB,4BcgBJ,MfiDI,8BAKF,MACE,6BACA,YE7EuB,KDKvB,4BcoBJ,MfwDI,+BAKF,OACE,8BACA,YExFuB,KDKvB,4BcwBJ,Of+DI,2Be3DJ,QACE,2BAGF,QACE,2BAGF,QACE,2BAGF,QACE,2BAGF,MACE,yBAGF,YACE,YbxDiB,Ia2DnB,UACE,Yb1DyB,Ka6D3B,MACE,gCAGF,OACE,+BAGF,MACE,4BAGF,gBACE,oCC/EF,iBACE,qBACA,oBACA,2BAGE,4BACE,wBCLN,SACE,6BACA,4BAQA,KACE,oBAEF,MACE,wBAEF,MACE,0BAEF,MACE,2BAEF,MACE,yBAGF,MACE,0BACA,yBAGF,MACE,wBACA,2BAGF,OACE,2BACA,0BAEF,WACE,6BACA,4BAhCF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAGF,OACE,iCACA,gCAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAGF,OACE,iCACA,gCAEF,WACE,6BACA,4BAhCF,KACE,uBAEF,MACE,2BAEF,MACE,6BAEF,MACE,8BAEF,MACE,4BAGF,MACE,6BACA,4BAGF,MACE,2BACA,8BAGF,OACE,8BACA,6BAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,KACE,uBAEF,MACE,2BAEF,MACE,6BAEF,MACE,8BAEF,MACE,4BAGF,MACE,6BACA,4BAGF,MACE,2BACA,8BAGF,OACE,8BACA,6BAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,KACE,uBAEF,MACE,2BAEF,MACE,6BAEF,MACE,8BAEF,MACE,4BAGF,MACE,6BACA,4BAGF,MACE,2BACA,8BAGF,OACE,8BACA,6BAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,MACE,uBAEF,OACE,2BAEF,OACE,6BAEF,OACE,8BAEF,OACE,4BAGF,OACE,6BACA,4BAGF,OACE,2BACA,8BAGF,QACE,8BACA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CE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,4BgB6CE,SACE,uBAEF,UACE,2BAEF,UACE,6BAEF,UACE,8BAEF,UACE,4BAGF,UACE,6BACA,4BAGF,UACE,2BACA,8BAGF,WACE,8BACA,8BhBzEJ,yBgB6CE,QACE,oBAEF,SACE,wBAEF,SACE,0BAEF,SACE,2BAEF,SACE,yBAGF,SACE,0BACA,yBAGF,SACE,wBACA,2BAGF,UACE,2BACA,2BhBzEJ,yBgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BA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BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,2BgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,2BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,2BgB6CE,SACE,uBAEF,UACE,2BAEF,UACE,6BAEF,UACE,8BAEF,UACE,4BAGF,UACE,6BACA,4BAGF,UACE,2BACA,8BAGF,WACE,8BACA,8BAaN,KACE,qBAEF,MACE,yBAEF,MACE,2BAEF,MACE,4BAEF,MACE,0BAGF,MACE,2BACA,0BAGF,MACE,yBACA,4BAvBF,KACE,2BAEF,MACE,+BAEF,MACE,iCAEF,MACE,kCAEF,MACE,gCAGF,MACE,iCACA,gCAGF,MACE,+BACA,kCAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,2BAEF,MACE,+BAEF,MACE,iCAEF,MACE,kCAEF,MACE,gCAGF,MACE,iCACA,gCAGF,MACE,+BACA,kCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,MACE,wBAEF,OACE,4BAEF,OACE,8BAEF,OACE,+BAEF,OACE,6BAGF,OACE,8BACA,6BAGF,OACE,4BACA,+BhB7GA,yBgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,4BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,yBgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,2BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,2BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gCC3JR,aACE,8EAME,wBAGF,UACE,WACA,YACA,0BAGF,aACE,gCAGF,YACE,0BACA,2BAGF,YACE,yBAGF,cACE,yBAGF,MACE,eACA,eClCJ,eACE,YACA,kBACA,SACA,UACA,WACA,gBACA,aAGF,2CAEE,MjB4BS,QiB3BT,iBjBkBY,QiBjBZ,UACA,SACA,UACA,YACA,cACA,gBACA,YACA,mBACA,yBACA,kBACA,gBACA,YClBF,WACE,iBlBuBY","sourcesContent":["// Generated with OneLightJekyll applied to Atom's One Light theme\n\n.highlight,\npre.highlight {\n background: #f9f9f9;\n color: #383942;\n}\n\n.highlight pre {\n background: #f9f9f9;\n}\n\n.highlight .hll {\n background: #f9f9f9;\n}\n\n.highlight .c {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .err {\n color: #fff;\n background-color: #e05151;\n}\n\n.highlight .k {\n color: #a625a4;\n}\n\n.highlight .l {\n color: #50a04f;\n}\n\n.highlight .n {\n color: #383942;\n}\n\n.highlight .o {\n color: #383942;\n}\n\n.highlight .p {\n color: #383942;\n}\n\n.highlight .cm {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .cp {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .c1 {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .cs {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .ge {\n font-style: italic;\n}\n\n.highlight .gs {\n font-weight: 700;\n}\n\n.highlight .kc {\n color: #a625a4;\n}\n\n.highlight .kd {\n color: #a625a4;\n}\n\n.highlight .kn {\n color: #a625a4;\n}\n\n.highlight .kp {\n color: #a625a4;\n}\n\n.highlight .kr {\n color: #a625a4;\n}\n\n.highlight .kt {\n color: #a625a4;\n}\n\n.highlight .ld {\n color: #50a04f;\n}\n\n.highlight .m {\n color: #b66a00;\n}\n\n.highlight .s {\n color: #50a04f;\n}\n\n.highlight .na {\n color: #b66a00;\n}\n\n.highlight .nb {\n color: #ca7601;\n}\n\n.highlight .nc {\n color: #ca7601;\n}\n\n.highlight .no {\n color: #ca7601;\n}\n\n.highlight .nd {\n color: #ca7601;\n}\n\n.highlight .ni {\n color: #ca7601;\n}\n\n.highlight .ne {\n color: #ca7601;\n}\n\n.highlight .nf {\n color: #383942;\n}\n\n.highlight .nl {\n color: #ca7601;\n}\n\n.highlight .nn {\n color: #383942;\n}\n\n.highlight .nx {\n color: #383942;\n}\n\n.highlight .py {\n color: #ca7601;\n}\n\n.highlight .nt {\n color: #e35549;\n}\n\n.highlight .nv {\n color: #ca7601;\n}\n\n.highlight .ow {\n font-weight: 700;\n}\n\n.highlight .w {\n color: #f8f8f2;\n}\n\n.highlight .mf {\n color: #b66a00;\n}\n\n.highlight .mh {\n color: #b66a00;\n}\n\n.highlight .mi {\n color: #b66a00;\n}\n\n.highlight .mo {\n color: #b66a00;\n}\n\n.highlight .sb {\n color: #50a04f;\n}\n\n.highlight .sc {\n color: #50a04f;\n}\n\n.highlight .sd {\n color: #50a04f;\n}\n\n.highlight .s2 {\n color: #50a04f;\n}\n\n.highlight .se {\n color: #50a04f;\n}\n\n.highlight .sh {\n color: #50a04f;\n}\n\n.highlight .si {\n color: #50a04f;\n}\n\n.highlight .sx {\n color: #50a04f;\n}\n\n.highlight .sr {\n color: #0083bb;\n}\n\n.highlight .s1 {\n color: #50a04f;\n}\n\n.highlight .ss {\n color: #0083bb;\n}\n\n.highlight .bp {\n color: #ca7601;\n}\n\n.highlight .vc {\n color: #ca7601;\n}\n\n.highlight .vg {\n color: #ca7601;\n}\n\n.highlight .vi {\n color: #e35549;\n}\n\n.highlight .il {\n color: #b66a00;\n}\n\n.highlight .gu {\n color: #75715e;\n}\n\n.highlight .gd {\n color: #e05151;\n}\n\n.highlight .gi {\n color: #43d089;\n}\n\n.highlight .language-json .w + .s2 {\n color: #e35549;\n}\n\n.highlight .language-json .kc {\n color: #0083bb;\n}\n","// Generated with OneDarkJekyll applied to Atom's One Dark Vivid theme\n\n.highlight,\npre.highlight {\n background: #31343f;\n color: #dee2f7;\n}\n\n.highlight pre {\n background: #31343f;\n}\n\n.highlight .hll {\n background: #31343f;\n}\n\n.highlight .c {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .err {\n color: #960050;\n background-color: #1e0010;\n}\n\n.highlight .k {\n color: #e19ef5;\n}\n\n.highlight .l {\n color: #a3eea0;\n}\n\n.highlight .n {\n color: #dee2f7;\n}\n\n.highlight .o {\n color: #dee2f7;\n}\n\n.highlight .p {\n color: #dee2f7;\n}\n\n.highlight .cm {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .cp {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .c1 {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .cs {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .ge {\n font-style: italic;\n}\n\n.highlight .gs {\n font-weight: 700;\n}\n\n.highlight .kc {\n color: #e19ef5;\n}\n\n.highlight .kd {\n color: #e19ef5;\n}\n\n.highlight .kn {\n color: #e19ef5;\n}\n\n.highlight .kp {\n color: #e19ef5;\n}\n\n.highlight .kr {\n color: #e19ef5;\n}\n\n.highlight .kt {\n color: #e19ef5;\n}\n\n.highlight .ld {\n color: #a3eea0;\n}\n\n.highlight .m {\n color: #eddc96;\n}\n\n.highlight .s {\n color: #a3eea0;\n}\n\n.highlight .na {\n color: #eddc96;\n}\n\n.highlight .nb {\n color: #fdce68;\n}\n\n.highlight .nc {\n color: #fdce68;\n}\n\n.highlight .no {\n color: #fdce68;\n}\n\n.highlight .nd {\n color: #fdce68;\n}\n\n.highlight .ni {\n color: #fdce68;\n}\n\n.highlight .ne {\n color: #fdce68;\n}\n\n.highlight .nf {\n color: #dee2f7;\n}\n\n.highlight .nl {\n color: #fdce68;\n}\n\n.highlight .nn {\n color: #dee2f7;\n}\n\n.highlight .nx {\n color: #dee2f7;\n}\n\n.highlight .py {\n color: #fdce68;\n}\n\n.highlight .nt {\n color: #f9867b;\n}\n\n.highlight .nv {\n color: #fdce68;\n}\n\n.highlight .ow {\n font-weight: 700;\n}\n\n.highlight .w {\n color: #f8f8f2;\n}\n\n.highlight .mf {\n color: #eddc96;\n}\n\n.highlight .mh {\n color: #eddc96;\n}\n\n.highlight .mi {\n color: #eddc96;\n}\n\n.highlight .mo {\n color: #eddc96;\n}\n\n.highlight .sb {\n color: #a3eea0;\n}\n\n.highlight .sc {\n color: #a3eea0;\n}\n\n.highlight .sd {\n color: #a3eea0;\n}\n\n.highlight .s2 {\n color: #a3eea0;\n}\n\n.highlight .se {\n color: #a3eea0;\n}\n\n.highlight .sh {\n color: #a3eea0;\n}\n\n.highlight .si {\n color: #a3eea0;\n}\n\n.highlight .sx {\n color: #a3eea0;\n}\n\n.highlight .sr {\n color: #7be2f9;\n}\n\n.highlight .s1 {\n color: #a3eea0;\n}\n\n.highlight .ss {\n color: #7be2f9;\n}\n\n.highlight .bp {\n color: #fdce68;\n}\n\n.highlight .vc {\n color: #fdce68;\n}\n\n.highlight .vg {\n color: #fdce68;\n}\n\n.highlight .vi {\n color: #f9867b;\n}\n\n.highlight .il {\n color: #eddc96;\n}\n\n.highlight .gu {\n color: #75715e;\n}\n\n.highlight .gd {\n color: #f92672;\n}\n\n.highlight .gi {\n color: #a6e22e;\n}\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// Base element style overrides\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\n:root {\n color-scheme: $color-scheme;\n}\n\n* {\n box-sizing: border-box;\n}\n\nhtml {\n scroll-behavior: smooth;\n\n @include fs-4;\n}\n\nbody {\n font-family: $body-font-family;\n font-size: inherit;\n line-height: $body-line-height;\n color: $body-text-color;\n background-color: $body-background-color;\n overflow-wrap: break-word;\n}\n\nol,\nul,\ndl,\npre,\naddress,\nblockquote,\ntable,\ndiv,\nhr,\nform,\nfieldset,\nnoscript .table-wrapper {\n margin-top: 0;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n#toctitle {\n margin-top: 0;\n margin-bottom: 1em;\n font-weight: 500;\n line-height: $body-heading-line-height;\n color: $body-heading-color;\n}\n\np {\n margin-top: 1em;\n margin-bottom: 1em;\n}\n\na {\n color: $link-color;\n text-decoration: none;\n}\n\na:not([class]) {\n text-decoration: underline;\n text-decoration-color: $border-color;\n text-underline-offset: 2px;\n\n &:hover {\n text-decoration-color: rgba($link-color, 0.45);\n }\n}\n\ncode {\n font-family: $mono-font-family;\n font-size: 0.75em;\n line-height: $body-line-height;\n}\n\nfigure,\npre {\n margin: 0;\n}\n\nli {\n margin: 0.25em 0;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\nhr {\n height: 1px;\n padding: 0;\n margin: $sp-6 0;\n background-color: $border-color;\n border: 0;\n}\n\n// adds a GitHub-style sidebar to blockquotes\nblockquote {\n margin: 10px 0;\n\n // resets user-agent stylesheets for blockquotes\n margin-block-start: 0;\n margin-inline-start: 0;\n padding-left: 1rem;\n border-left: 3px solid $border-color;\n}\n","$color-scheme: dark;\n$body-background-color: $grey-dk-300;\n$body-heading-color: $grey-lt-000;\n$body-text-color: $grey-lt-300;\n$link-color: $blue-000;\n$nav-child-link-color: $grey-dk-000;\n$sidebar-color: $grey-dk-300;\n$base-button-color: $grey-dk-250;\n$btn-primary-color: $blue-200;\n$code-background-color: #31343f; // OneDarkJekyll default for syntax-one-dark-vivid\n$code-linenumber-color: #dee2f7; // OneDarkJekyll .nf for syntax-one-dark-vivid\n$feedback-color: darken($sidebar-color, 3%);\n$table-background-color: $grey-dk-250;\n$search-background-color: $grey-dk-250;\n$search-result-preview-color: $grey-dk-000;\n$border-color: $grey-dk-200;\n\n@import \"./vendor/OneDarkJekyll/syntax\"; // this is the one-dark-vivid atom syntax theme\n","@mixin fs-1 {\n & {\n font-size: $font-size-1 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-1-sm !important;\n }\n}\n\n@mixin fs-2 {\n & {\n font-size: $font-size-2 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-3 !important;\n }\n}\n\n@mixin fs-3 {\n & {\n font-size: $font-size-3 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-4 !important;\n }\n}\n\n@mixin fs-4 {\n & {\n font-size: $font-size-4 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-5 !important;\n }\n}\n\n@mixin fs-5 {\n & {\n font-size: $font-size-5 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-6 !important;\n }\n}\n\n@mixin fs-6 {\n & {\n font-size: $font-size-6 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n}\n\n@mixin fs-7 {\n & {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-8 !important;\n }\n}\n\n@mixin fs-8 {\n & {\n font-size: $font-size-8 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-9 !important;\n }\n}\n\n@mixin fs-9 {\n & {\n font-size: $font-size-9 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10 !important;\n }\n}\n\n@mixin fs-10 {\n & {\n font-size: $font-size-10 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10-sm !important;\n }\n}\n","// Media query\n\n// Media query mixin\n// Usage:\n// @include mq(md) {\n// ..medium and up styles\n// }\n@mixin mq($name) {\n // Retrieves the value from the key\n $value: map-get($media-queries, $name);\n\n // If the key exists in the map\n @if $value {\n // Prints a media query based on the value\n @media (min-width: $value) {\n @content;\n }\n } @else {\n @warn \"No value could be retrieved from `#{$media-query}`. Please make sure it is defined in `$media-queries` map.\";\n }\n}\n\n// Responsive container\n\n@mixin container {\n padding-right: $gutter-spacing-sm;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-right: $gutter-spacing;\n padding-left: $gutter-spacing;\n }\n}\n","// Typography\n\n// prettier-ignore\n$body-font-family: system-ui, -apple-system, blinkmacsystemfont, \"Segoe UI\",\n roboto, \"Helvetica Neue\", arial, sans-serif, \"Segoe UI Emoji\" !default;\n$mono-font-family: \"SFMono-Regular\", menlo, consolas, monospace !default;\n$root-font-size: 16px !default; // DEPRECATED: previously base font-size for rems\n$body-line-height: 1.4 !default;\n$content-line-height: 1.6 !default;\n$body-heading-line-height: 1.25 !default;\n\n// Font size\n// `-sm` suffix is the size at the small (and above) media query\n\n$font-size-1: 0.5625rem !default;\n$font-size-1-sm: 0.625rem !default;\n$font-size-2: 0.6875rem !default; // h4 - uppercased!, h6 not uppercased, text-small\n$font-size-3: 0.75rem !default; // h5\n$font-size-4: 0.875rem !default;\n$font-size-5: 1rem !default; // h3\n$font-size-6: 1.125rem !default; // h2\n$font-size-7: 1.5rem !default;\n$font-size-8: 2rem !default; // h1\n$font-size-9: 2.25rem !default;\n$font-size-10: 2.625rem !default;\n$font-size-10-sm: 3rem !default;\n\n// Colors\n\n$white: #fff !default;\n$grey-dk-000: #959396 !default;\n$grey-dk-100: #5c5962 !default;\n$grey-dk-200: #44434d !default;\n$grey-dk-250: #302d36 !default;\n$grey-dk-300: #27262b !default;\n$grey-lt-000: #f5f6fa !default;\n$grey-lt-100: #eeebee !default;\n$grey-lt-200: #ecebed !default;\n$grey-lt-300: #e6e1e8 !default;\n$purple-000: #7253ed !default;\n$purple-100: #5e41d0 !default;\n$purple-200: #4e26af !default;\n$purple-300: #381885 !default;\n$blue-000: #2c84fa !default;\n$blue-100: #2869e6 !default;\n$blue-200: #264caf !default;\n$blue-300: #183385 !default;\n$green-000: #41d693 !default;\n$green-100: #11b584 !default;\n$green-200: #009c7b !default;\n$green-300: #026e57 !default;\n$yellow-000: #ffeb82 !default;\n$yellow-100: #fadf50 !default;\n$yellow-200: #f7d12e !default;\n$yellow-300: #e7af06 !default;\n$red-000: #f77e7e !default;\n$red-100: #f96e65 !default;\n$red-200: #e94c4c !default;\n$red-300: #dd2e2e !default;\n\n// Spacing\n\n$spacing-unit: 1rem; // 1rem == 16px\n\n$spacers: (\n sp-0: 0,\n sp-1: $spacing-unit * 0.25,\n sp-2: $spacing-unit * 0.5,\n sp-3: $spacing-unit * 0.75,\n sp-4: $spacing-unit,\n sp-5: $spacing-unit * 1.5,\n sp-6: $spacing-unit * 2,\n sp-7: $spacing-unit * 2.5,\n sp-8: $spacing-unit * 3,\n sp-9: $spacing-unit * 3.5,\n sp-10: $spacing-unit * 4,\n) !default;\n$sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px\n$sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px\n$sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px\n$sp-4: map-get($spacers, sp-4) !default; // 1 rem == 16px\n$sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px\n$sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px\n$sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px\n$sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px\n$sp-9: map-get($spacers, sp-9) !default; // 3.5 rem == 56px\n$sp-10: map-get($spacers, sp-10) !default; // 4 rem == 64px\n\n// Borders\n\n$border: 1px solid !default;\n$border-radius: 4px !default;\n$border-color: $grey-lt-100 !default;\n\n// Grid system\n\n$gutter-spacing: $sp-6 !default;\n$gutter-spacing-sm: $sp-4 !default;\n$nav-width: 16.5rem !default;\n$nav-width-md: 15.5rem !default;\n$nav-list-item-height: $sp-6 !default;\n$nav-list-item-height-sm: $sp-8 !default;\n$nav-list-expander-right: true;\n$content-width: 50rem !default;\n$header-height: 3.75rem !default;\n$search-results-width: $content-width - $nav-width !default;\n$transition-duration: 400ms;\n\n// Media queries in pixels\n\n$media-queries: (\n xs: 20rem,\n sm: 31.25rem,\n md: $content-width,\n lg: $content-width + $nav-width,\n xl: 87.5rem,\n) !default;\n","// The basic two column layout\n\n.side-bar {\n z-index: 0;\n display: flex;\n flex-wrap: wrap;\n background-color: $sidebar-color;\n\n @include mq(md) {\n flex-flow: column nowrap;\n position: fixed;\n width: $nav-width-md;\n height: 100%;\n border-right: $border $border-color;\n align-items: flex-end;\n }\n\n @include mq(lg) {\n width: calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width});\n min-width: $nav-width;\n }\n\n & + .main {\n @include mq(md) {\n margin-left: $nav-width-md;\n }\n\n @include mq(lg) {\n // stylelint-disable function-name-case\n // disable for Max(), we want to use the CSS max() function\n margin-left: Max(\n #{$nav-width},\n calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width})\n );\n // stylelint-enable function-name-case\n }\n\n .main-header {\n display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n background-color: $body-background-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\n }\n }\n }\n}\n\n.main {\n margin: auto;\n\n @include mq(md) {\n position: relative;\n max-width: $content-width;\n }\n}\n\n.main-content-wrap {\n padding-top: $gutter-spacing-sm;\n padding-bottom: $gutter-spacing-sm;\n\n @include container;\n\n @include mq(md) {\n padding-top: $gutter-spacing;\n padding-bottom: $gutter-spacing;\n }\n}\n\n.main-header {\n z-index: 0;\n border-bottom: $border $border-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n }\n}\n\n.site-nav,\n.site-header,\n.site-footer {\n width: 100%;\n\n @include mq(lg) {\n width: $nav-width;\n }\n}\n\n.site-nav {\n display: none;\n\n &.nav-open {\n display: block;\n }\n\n @include mq(md) {\n display: block;\n padding-top: $sp-8;\n padding-bottom: $gutter-spacing-sm;\n overflow-y: auto;\n flex: 1 1 auto;\n }\n}\n\n.site-header {\n display: flex;\n min-height: $header-height;\n align-items: center;\n\n @include mq(md) {\n height: $header-height;\n max-height: $header-height;\n border-bottom: $border $border-color;\n }\n}\n\n.site-title {\n flex-grow: 1;\n display: flex;\n height: 100%;\n align-items: center;\n padding-top: $sp-3;\n padding-bottom: $sp-3;\n color: $body-heading-color;\n\n @include container;\n\n @include fs-6;\n\n @include mq(md) {\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n }\n}\n\n@if variable-exists(logo) {\n .site-logo {\n width: 100%;\n height: 100%;\n background-image: url($logo);\n background-repeat: no-repeat;\n background-position: left center;\n background-size: contain;\n }\n}\n\n.site-button {\n display: flex;\n height: 100%;\n padding: $gutter-spacing-sm;\n align-items: center;\n}\n\n@include mq(md) {\n .site-header .site-button {\n display: none;\n }\n}\n\n.site-title:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n}\n\n.site-button:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n}\n\n// stylelint-disable selector-max-type\n\nbody {\n position: relative;\n padding-bottom: $sp-10;\n overflow-y: scroll;\n\n @include mq(md) {\n position: static;\n padding-bottom: 0;\n }\n}\n\n// stylelint-enable selector-max-type\n\n.site-footer {\n position: absolute;\n bottom: 0;\n left: 0;\n padding-top: $sp-4;\n padding-bottom: $sp-4;\n color: $grey-dk-000;\n\n @include container;\n\n @include fs-2;\n\n @include mq(md) {\n position: static;\n justify-self: end;\n }\n}\n\n.icon {\n width: $sp-5;\n height: $sp-5;\n color: $link-color;\n}\n","@charset \"UTF-8\";\n\n// Styles for rendered markdown in the .main-content container\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity, selector-max-id\n\n.main-content {\n line-height: $content-line-height;\n\n ol,\n ul,\n dl,\n pre,\n address,\n blockquote,\n .table-wrapper {\n margin-top: 0.5em;\n }\n\n a {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n ul,\n ol {\n padding-left: 1.5em;\n }\n\n li {\n .highlight {\n margin-top: $sp-1;\n }\n }\n\n ol {\n list-style-type: none;\n counter-reset: step-counter;\n\n > li {\n position: relative;\n\n &::before {\n position: absolute;\n top: 0.2em;\n left: -1.6em;\n color: $grey-dk-000;\n content: counter(step-counter);\n counter-increment: step-counter;\n @include fs-3;\n\n @include mq(sm) {\n top: 0.11em;\n }\n }\n\n ol {\n counter-reset: sub-counter;\n\n > li {\n &::before {\n content: counter(sub-counter, lower-alpha);\n counter-increment: sub-counter;\n }\n }\n }\n }\n }\n\n ul {\n list-style: none;\n\n > li {\n &::before {\n position: absolute;\n margin-left: -1.4em;\n color: $grey-dk-000;\n content: \"β€’\";\n }\n }\n }\n\n .task-list-item {\n &::before {\n content: \"\";\n }\n }\n\n .task-list-item-checkbox {\n margin-right: 0.6em;\n margin-left: -1.4em;\n\n // The same margin-left is used above for ul > li::before\n }\n\n hr + * {\n margin-top: 0;\n }\n\n h1:first-of-type {\n margin-top: 0.5em;\n }\n\n dl {\n display: grid;\n grid-template: auto / 10em 1fr;\n }\n\n dt,\n dd {\n margin: 0.25em 0;\n }\n\n dt {\n grid-column: 1;\n font-weight: 500;\n text-align: right;\n\n &::after {\n content: \":\";\n }\n }\n\n dd {\n grid-column: 2;\n margin-bottom: 0;\n margin-left: 1em;\n\n blockquote,\n div,\n dl,\n dt,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n li,\n ol,\n p,\n pre,\n table,\n ul,\n .table-wrapper {\n &:first-child {\n margin-top: 0;\n }\n }\n }\n\n dd,\n ol,\n ul {\n dl:first-child {\n dt:first-child,\n dd:nth-child(2) {\n margin-top: 0;\n }\n }\n }\n\n .anchor-heading {\n position: absolute;\n right: -$sp-4;\n width: $sp-5;\n height: 100%;\n padding-right: $sp-1;\n padding-left: $sp-1;\n overflow: visible;\n\n @include mq(md) {\n right: auto;\n left: -$sp-5;\n }\n\n svg {\n display: inline-block;\n width: 100%;\n height: 100%;\n color: $link-color;\n visibility: hidden;\n }\n }\n\n .anchor-heading:hover,\n .anchor-heading:focus,\n h1:hover > .anchor-heading,\n h2:hover > .anchor-heading,\n h3:hover > .anchor-heading,\n h4:hover > .anchor-heading,\n h5:hover > .anchor-heading,\n h6:hover > .anchor-heading {\n svg {\n visibility: visible;\n }\n }\n\n summary {\n cursor: pointer;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n #toctitle {\n position: relative;\n margin-top: 1.5em;\n margin-bottom: 0.25em;\n\n + table,\n + .table-wrapper,\n + .code-example,\n + .highlighter-rouge,\n + .sectionbody .listingblock {\n margin-top: 1em;\n }\n\n + p:not(.label) {\n margin-top: 0;\n }\n }\n\n > h1:first-child,\n > h2:first-child,\n > h3:first-child,\n > h4:first-child,\n > h5:first-child,\n > h6:first-child,\n > .sect1:first-child > h2,\n > .sect2:first-child > h3,\n > .sect3:first-child > h4,\n > .sect4:first-child > h5,\n > .sect5:first-child > h6 {\n margin-top: $sp-2;\n }\n}\n","// Main nav, breadcrumb, etc...\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity\n\n.nav-list {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n margin: 0;\n\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n\n .nav-list-link {\n display: block;\n min-height: $nav-list-item-height-sm;\n padding-top: $sp-1;\n padding-bottom: $sp-1;\n line-height: #{$nav-list-item-height-sm - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height-sm;\n padding-left: $gutter-spacing-sm;\n } @else {\n padding-right: $gutter-spacing-sm;\n padding-left: $nav-list-item-height-sm;\n }\n\n @include mq(md) {\n min-height: $nav-list-item-height;\n line-height: #{$nav-list-item-height - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height;\n padding-left: $gutter-spacing;\n } @else {\n padding-right: $gutter-spacing;\n padding-left: $nav-list-item-height;\n }\n }\n\n &.external > svg {\n width: $sp-4;\n height: $sp-4;\n vertical-align: text-bottom;\n }\n\n &.active {\n font-weight: 600;\n text-decoration: none;\n }\n\n &:hover,\n &.active {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n }\n }\n\n .nav-list-expander {\n position: absolute;\n @if $nav-list-expander-right {\n right: 0;\n }\n\n width: $nav-list-item-height-sm;\n height: $nav-list-item-height-sm;\n padding: #{$nav-list-item-height-sm * 0.25};\n color: $link-color;\n\n @include mq(md) {\n width: $nav-list-item-height;\n height: $nav-list-item-height;\n padding: #{$nav-list-item-height * 0.25};\n }\n\n &:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n }\n\n @if $nav-list-expander-right {\n svg {\n transform: rotate(90deg);\n }\n }\n }\n\n > .nav-list {\n display: none;\n padding-left: $sp-3;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n\n .nav-list-link {\n color: $nav-child-link-color;\n }\n\n .nav-list-expander {\n color: $nav-child-link-color;\n }\n }\n }\n\n &.active {\n > .nav-list-expander svg {\n @if $nav-list-expander-right {\n transform: rotate(-90deg);\n } @else {\n transform: rotate(90deg);\n }\n }\n\n > .nav-list {\n display: block;\n }\n }\n }\n}\n\n.nav-category {\n padding: $sp-2 $gutter-spacing-sm;\n font-weight: 600;\n text-align: start;\n text-transform: uppercase;\n border-bottom: $border $border-color;\n @include fs-2;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing;\n margin-top: $gutter-spacing-sm;\n text-align: start;\n\n &:first-child {\n margin-top: 0;\n }\n }\n}\n\n.nav-list.nav-category-list {\n > .nav-list-item {\n margin: 0;\n\n > .nav-list {\n padding: 0;\n\n > .nav-list-item {\n > .nav-list-link {\n color: $link-color;\n }\n\n > .nav-list-expander {\n color: $link-color;\n }\n }\n }\n }\n}\n\n// Aux nav\n\n.aux-nav {\n height: 100%;\n overflow-x: auto;\n @include fs-2;\n\n .aux-nav-list {\n display: flex;\n height: 100%;\n padding: 0;\n margin: 0;\n list-style: none;\n }\n\n .aux-nav-list-item {\n display: inline-block;\n height: 100%;\n padding: 0;\n margin: 0;\n }\n\n @include mq(md) {\n padding-right: $gutter-spacing-sm;\n }\n}\n\n// Breadcrumb nav\n\n.breadcrumb-nav {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n}\n\n.breadcrumb-nav-list {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n}\n\n.breadcrumb-nav-list-item {\n display: table-cell;\n @include fs-2;\n\n &::before {\n display: none;\n }\n\n &::after {\n display: inline-block;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $grey-dk-000;\n content: \"/\";\n }\n\n &:last-child {\n &::after {\n content: \"\";\n }\n }\n}\n","// Typography\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\nh1,\n.text-alpha {\n font-weight: 300;\n\n @include fs-8;\n}\n\nh2,\n.text-beta,\n#toctitle {\n @include fs-6;\n}\n\nh3,\n.text-gamma {\n @include fs-5;\n}\n\nh4,\n.text-delta {\n font-weight: 400;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n\n @include fs-2;\n}\n\nh4 code {\n text-transform: none;\n}\n\nh5,\n.text-epsilon {\n @include fs-3;\n}\n\nh6,\n.text-zeta {\n @include fs-2;\n}\n\n.text-small {\n @include fs-2;\n}\n\n.text-mono {\n font-family: $mono-font-family !important;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n","// Labels (not the form kind)\n\n// this :not() prevents a style clash with Mermaid.js's\n// diagram labels, which also use .label\n// for more, see https://github.com/just-the-docs/just-the-docs/issues/1272\n// and the accompanying PR\n.label:not(g),\n.label-blue:not(g) {\n display: inline-block;\n padding: 0.16em 0.56em;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $white;\n text-transform: uppercase;\n vertical-align: middle;\n background-color: $blue-100;\n border-radius: 12px;\n\n @include fs-2;\n}\n\n.label-green:not(g) {\n background-color: $green-200;\n}\n\n.label-purple:not(g) {\n background-color: $purple-100;\n}\n\n.label-red:not(g) {\n background-color: $red-200;\n}\n\n.label-yellow:not(g) {\n color: $grey-dk-200;\n background-color: $yellow-200;\n}\n","// Buttons and things that look like buttons\n// stylelint-disable color-named\n\n.btn {\n display: inline-block;\n box-sizing: border-box;\n padding: 0.3em 1em;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n line-height: 1.5;\n color: $link-color;\n text-decoration: none;\n vertical-align: baseline;\n cursor: pointer;\n background-color: $base-button-color;\n border-width: 0;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n appearance: none;\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: darken($link-color, 2%);\n }\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n text-decoration: none;\n background-color: darken($base-button-color, 1%);\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($base-button-color, 3%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken(#dcdcdc, 5%);\n }\n\n &:disabled,\n &.disabled {\n &,\n &:hover {\n color: rgba(102, 102, 102, 0.5);\n cursor: default;\n background-color: rgba(229, 229, 229, 0.5);\n background-image: none;\n box-shadow: none;\n }\n }\n}\n\n.btn-outline {\n color: $link-color;\n background: transparent;\n box-shadow: inset 0 0 0 2px $grey-lt-300;\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n color: darken($link-color, 4%);\n text-decoration: none;\n background-color: transparent;\n box-shadow: inset 0 0 0 3px $grey-lt-300;\n }\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow:\n inset 0 0 0 2px $grey-dk-100,\n 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: inset 0 0 0 2px $grey-dk-100;\n }\n}\n\n.btn-primary {\n @include btn-color($white, $btn-primary-color);\n}\n\n.btn-purple {\n @include btn-color($white, $purple-100);\n}\n\n.btn-blue {\n @include btn-color($white, $blue-000);\n}\n\n.btn-green {\n @include btn-color($white, $green-100);\n}\n\n.btn-reset {\n background: none;\n border: none;\n margin: 0;\n text-align: inherit;\n font: inherit;\n border-radius: 0;\n appearance: none;\n}\n","// Colored button\n\n@mixin btn-color($fg, $bg) {\n color: $fg;\n background-color: darken($bg, 2%);\n background-image: linear-gradient(lighten($bg, 5%), darken($bg, 2%));\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.25),\n 0 4px 10px rgba(0, 0, 0, 0.12);\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: $fg;\n background-color: darken($bg, 4%);\n background-image: linear-gradient((lighten($bg, 2%), darken($bg, 4%)));\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($bg, 5%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken($bg, 10%);\n }\n}\n","// Search input and autocomplete\n\n.search {\n position: relative;\n z-index: 2;\n flex-grow: 1;\n height: $sp-10;\n padding: $sp-2;\n transition: padding linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: relative !important;\n width: auto !important;\n height: 100% !important;\n padding: 0;\n transition: none;\n }\n}\n\n.search-input-wrap {\n position: relative;\n z-index: 1;\n height: $sp-8;\n overflow: hidden;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n transition: height linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: absolute;\n width: 100%;\n max-width: $search-results-width;\n height: 100% !important;\n border-radius: 0;\n box-shadow: none;\n transition: width ease $transition-duration;\n }\n}\n\n.search-input {\n position: absolute;\n width: 100%;\n height: 100%;\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing-sm + $sp-5};\n font-size: 1rem;\n color: $body-text-color;\n background-color: $search-background-color;\n border-top: 0;\n border-right: 0;\n border-bottom: 0;\n border-left: 0;\n border-radius: 0;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing + $sp-5};\n font-size: 0.875rem;\n background-color: $body-background-color;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n &:focus {\n outline: 0;\n\n + .search-label .search-icon {\n color: $link-color;\n }\n }\n}\n\n.search-label {\n position: absolute;\n display: flex;\n height: 100%;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-left: $gutter-spacing;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n .search-icon {\n width: #{$sp-4 * 1.2};\n height: #{$sp-4 * 1.2};\n align-self: center;\n color: $grey-dk-000;\n }\n}\n\n.search-results {\n position: absolute;\n left: 0;\n display: none;\n width: 100%;\n max-height: calc(100% - #{$sp-10});\n overflow-y: auto;\n background-color: $search-background-color;\n border-bottom-right-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n\n @include mq(md) {\n top: 100%;\n width: $search-results-width;\n max-height: calc(100vh - 200%) !important;\n }\n}\n\n.search-results-list {\n padding-left: 0;\n margin-bottom: $sp-1;\n list-style: none;\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n}\n\n.search-results-list-item {\n padding: 0;\n margin: 0;\n}\n\n.search-result {\n display: block;\n padding: $sp-1 $sp-3;\n\n &:hover,\n &.active {\n background-color: $feedback-color;\n }\n}\n\n.search-result-title {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 40%;\n padding-right: $sp-2;\n vertical-align: top;\n }\n}\n\n.search-result-doc {\n display: flex;\n align-items: center;\n word-wrap: break-word;\n\n &.search-result-doc-parent {\n opacity: 0.5;\n @include fs-3;\n\n @include mq(md) {\n @include fs-2;\n }\n }\n\n .search-result-icon {\n width: $sp-4;\n height: $sp-4;\n margin-right: $sp-2;\n color: $link-color;\n flex-shrink: 0;\n }\n\n .search-result-doc-title {\n overflow: auto;\n }\n}\n\n.search-result-section {\n margin-left: #{$sp-4 + $sp-2};\n word-wrap: break-word;\n}\n\n.search-result-rel-url {\n display: block;\n margin-left: #{$sp-4 + $sp-2};\n overflow: hidden;\n color: $search-result-preview-color;\n text-overflow: ellipsis;\n white-space: nowrap;\n @include fs-1;\n}\n\n.search-result-previews {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n padding-left: $sp-4;\n margin-left: $sp-2;\n color: $search-result-preview-color;\n word-wrap: break-word;\n border-left: $border;\n border-left-color: $border-color;\n @include fs-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 60%;\n padding-left: $sp-2;\n margin-left: 0;\n vertical-align: top;\n }\n}\n\n.search-result-preview + .search-result-preview {\n margin-top: $sp-1;\n}\n\n.search-result-highlight {\n font-weight: bold;\n}\n\n.search-no-result {\n padding: $sp-2 $sp-3;\n @include fs-3;\n}\n\n.search-button {\n position: fixed;\n right: $sp-4;\n bottom: $sp-4;\n display: flex;\n width: $sp-9;\n height: $sp-9;\n background-color: $search-background-color;\n border: 1px solid rgba($link-color, 0.3);\n border-radius: #{$sp-9 * 0.5};\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n align-items: center;\n justify-content: center;\n}\n\n.search-overlay {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n width: 0;\n height: 0;\n background-color: rgba(0, 0, 0, 0.3);\n opacity: 0;\n transition:\n opacity ease $transition-duration,\n width 0s $transition-duration,\n height 0s $transition-duration;\n}\n\n.search-active {\n .search {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .search-input-wrap {\n height: $sp-10;\n border-radius: 0;\n\n @include mq(md) {\n width: $search-results-width;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n }\n }\n\n .search-input {\n background-color: $search-background-color;\n\n @include mq(md) {\n padding-left: 2.3rem;\n }\n }\n\n .search-label {\n @include mq(md) {\n padding-left: 0.6rem;\n }\n }\n\n .search-results {\n display: block;\n }\n\n .search-overlay {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n opacity ease $transition-duration,\n width 0s,\n height 0s;\n }\n\n @include mq(md) {\n .main {\n position: fixed;\n right: 0;\n left: 0;\n }\n }\n\n .main-header {\n padding-top: $sp-10;\n\n @include mq(md) {\n padding-top: 0;\n }\n }\n}\n","// Tables\n// stylelint-disable max-nesting-depth, selector-no-type, selector-max-type\n\n.table-wrapper {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: $sp-5;\n overflow-x: auto;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n}\n\ntable {\n display: table;\n min-width: 100%;\n border-collapse: separate;\n}\n\nth,\ntd {\n min-width: 7.5rem;\n padding: $sp-2 $sp-3;\n background-color: $table-background-color;\n border-bottom: $border rgba($border-color, 0.5);\n border-left: $border $border-color;\n\n @include fs-3;\n\n &:first-of-type {\n border-left: 0;\n }\n}\n\ntbody {\n tr {\n &:last-of-type {\n th,\n td {\n border-bottom: 0;\n }\n\n td {\n padding-bottom: $sp-3;\n }\n }\n }\n}\n\nthead {\n th {\n border-bottom: $border $border-color;\n }\n}\n","// Code and syntax highlighting\n// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type, scss/comment-no-empty\n\n// {% raw %}\n\n// This instruction applies to all queues not within 'pre' or 'figure', avoiding 'code' generated by the highlight.\n:not(pre, figure) {\n & > code {\n padding: 0.2em 0.15em;\n font-weight: 400;\n background-color: $code-background-color;\n border: $border $border-color;\n border-radius: $border-radius;\n }\n}\n\n// Avoid appearance of dark border around visited code links in Safari\na:visited code {\n border-color: $border-color;\n}\n\n// Content structure for highlighted code blocks using fences or Liquid\n//\n// ```[LANG]...```, no kramdown line_numbers:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n//\n// ```[LANG]...```, kramdown line_numbers = true:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.rouge-gutter.gl > pre.lineno\n// | td.rouge-code > pre\n//\n// {% highlight LANG %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n//\n// {% highlight LANG linenos %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.gutter.gl > pre.lineno\n// | td.code > pre\n//\n// ----...---- (AsciiDoc)\n// div.listingblock > div.content > pre.rouge.highlight\n//\n// fix_linenos removes the outermost pre when it encloses table.rouge-table\n//\n// See docs/index-test.md for some tests.\n//\n// No kramdown line_numbers: fences and Liquid highlighting look the same.\n// Kramdown line_numbers = true: fences have a wider gutter than with Liquid?\n\n// ```[LANG]...```\n// or in AsciiDoc:\n//\n// ----\n// ...\n// ----\n\n// the code may appear with 3 different types:\n// container \\ case: default case, code with line number, code with html rendering\n// top level: div.highlighter-rouge, figure.highlight, figure.highlight\n// second level: div.highlight, div.table-wrapper, pre.highlight\n// third level: pre.highlight, td.code, absent\n// last level: code, pre, code (optionality)\n// highlighter level: span, span, span\n// the spacing are only in the second level for case 1, 3 and in the third level for case 2\n// in AsciiDoc, there is a parent container that contains optionally a title and the content.\n\n// select top level container\ndiv.highlighter-rouge,\ndiv.listingblock > div.content,\nfigure.highlight {\n margin-top: 0;\n margin-bottom: $sp-3;\n background-color: $code-background-color;\n border-radius: $border-radius;\n box-shadow: none;\n -webkit-overflow-scrolling: touch;\n position: relative;\n padding: 0;\n\n // copy button (or other button)\n // the button appear only when there is a hover on the code or focus on button\n > button {\n width: $sp-3;\n opacity: 0;\n position: absolute;\n top: 0;\n right: 0;\n border: $sp-3 solid $code-background-color;\n background-color: $code-background-color;\n color: $body-text-color;\n box-sizing: content-box;\n\n svg {\n fill: $body-text-color;\n }\n\n &:active {\n text-decoration: none;\n outline: none;\n opacity: 1;\n }\n\n &:focus {\n opacity: 1;\n }\n }\n\n // the button can be seen by doing a simple hover in the code, there is no need to go over the location of the button\n &:hover {\n > button {\n cursor: copy;\n opacity: 1;\n }\n }\n}\n\n// setting the spacing and scrollbar on the second level for the first case\n// remove all space on the second and third level\n// this is a mixin to accommodate for the slightly different structures generated via Markdown vs AsciiDoc\n@mixin scroll-and-spacing($code-div, $pre-select) {\n #{$code-div} {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n\n #{$pre-select},\n code {\n padding: 0;\n margin: 0;\n border: 0;\n }\n}\n\n// for Markdown\ndiv.highlighter-rouge {\n @include scroll-and-spacing(\"div.highlight\", \"pre.highlight\");\n}\n\n// for AsciiDoc. we also need to fix the margins for its parent container.\ndiv.listingblock {\n margin-top: 0;\n margin-bottom: $sp-3;\n\n @include scroll-and-spacing(\"div.content\", \"div.content > pre\");\n}\n\n// {% highlight LANG %}...{% endhighlight %},\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the second level for the thirt case\n// the css rule are apply only to the last code enviroment\n// setting the scroolbar\nfigure.highlight {\n pre,\n :not(pre) > code {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n}\n\n// ```[LANG]...```, kramdown line_numbers = true,\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the thirt level for the second case\n.highlight .table-wrapper {\n padding: $sp-3 0;\n margin: 0;\n border: 0;\n box-shadow: none;\n\n td,\n pre {\n min-width: 0;\n padding: 0;\n background-color: $code-background-color;\n border: 0;\n\n @include fs-2;\n }\n\n td.gl {\n width: 1em;\n padding-right: $sp-3;\n padding-left: $sp-3;\n }\n\n pre {\n margin: 0;\n line-height: 2;\n }\n}\n\n// Code examples: html render of a code\n.code-example,\n.listingblock > .title {\n padding: $sp-3;\n margin-bottom: $sp-3;\n overflow: auto;\n border: 1px solid $border-color;\n border-radius: $border-radius;\n\n + .highlighter-rouge,\n + .sectionbody .listingblock,\n + .content,\n + figure.highlight {\n position: relative;\n margin-top: -$sp-4;\n border-right: 1px solid $border-color;\n border-bottom: 1px solid $border-color;\n border-left: 1px solid $border-color;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n\n// Mermaid diagram code blocks should be left unstyled.\ncode.language-mermaid {\n padding: 0;\n background-color: inherit;\n border: 0;\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight,\npre.highlight {\n background: $code-background-color; // Code Background\n // For Backwards Compatibility Before $code-linenumber-color was added\n @if variable-exists(code-linenumber-color) {\n color: $code-linenumber-color; // Code Line Numbers\n } @else {\n color: $body-text-color; // Code Line Numbers\n }\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight pre {\n background: $code-background-color; // Code Background\n}\n\n// {% endraw %}\n","// Utility classes for colors\n\n// Text colors\n\n.text-grey-dk-000 {\n color: $grey-dk-000 !important;\n}\n\n.text-grey-dk-100 {\n color: $grey-dk-100 !important;\n}\n\n.text-grey-dk-200 {\n color: $grey-dk-200 !important;\n}\n\n.text-grey-dk-250 {\n color: $grey-dk-250 !important;\n}\n\n.text-grey-dk-300 {\n color: $grey-dk-300 !important;\n}\n\n.text-grey-lt-000 {\n color: $grey-lt-000 !important;\n}\n\n.text-grey-lt-100 {\n color: $grey-lt-100 !important;\n}\n\n.text-grey-lt-200 {\n color: $grey-lt-200 !important;\n}\n\n.text-grey-lt-300 {\n color: $grey-lt-300 !important;\n}\n\n.text-blue-000 {\n color: $blue-000 !important;\n}\n\n.text-blue-100 {\n color: $blue-100 !important;\n}\n\n.text-blue-200 {\n color: $blue-200 !important;\n}\n\n.text-blue-300 {\n color: $blue-300 !important;\n}\n\n.text-green-000 {\n color: $green-000 !important;\n}\n\n.text-green-100 {\n color: $green-100 !important;\n}\n\n.text-green-200 {\n color: $green-200 !important;\n}\n\n.text-green-300 {\n color: $green-300 !important;\n}\n\n.text-purple-000 {\n color: $purple-000 !important;\n}\n\n.text-purple-100 {\n color: $purple-100 !important;\n}\n\n.text-purple-200 {\n color: $purple-200 !important;\n}\n\n.text-purple-300 {\n color: $purple-300 !important;\n}\n\n.text-yellow-000 {\n color: $yellow-000 !important;\n}\n\n.text-yellow-100 {\n color: $yellow-100 !important;\n}\n\n.text-yellow-200 {\n color: $yellow-200 !important;\n}\n\n.text-yellow-300 {\n color: $yellow-300 !important;\n}\n\n.text-red-000 {\n color: $red-000 !important;\n}\n\n.text-red-100 {\n color: $red-100 !important;\n}\n\n.text-red-200 {\n color: $red-200 !important;\n}\n\n.text-red-300 {\n color: $red-300 !important;\n}\n\n// Background colors\n\n.bg-grey-dk-000 {\n background-color: $grey-dk-000 !important;\n}\n\n.bg-grey-dk-100 {\n background-color: $grey-dk-100 !important;\n}\n\n.bg-grey-dk-200 {\n background-color: $grey-dk-200 !important;\n}\n\n.bg-grey-dk-250 {\n background-color: $grey-dk-250 !important;\n}\n\n.bg-grey-dk-300 {\n background-color: $grey-dk-300 !important;\n}\n\n.bg-grey-lt-000 {\n background-color: $grey-lt-000 !important;\n}\n\n.bg-grey-lt-100 {\n background-color: $grey-lt-100 !important;\n}\n\n.bg-grey-lt-200 {\n background-color: $grey-lt-200 !important;\n}\n\n.bg-grey-lt-300 {\n background-color: $grey-lt-300 !important;\n}\n\n.bg-blue-000 {\n background-color: $blue-000 !important;\n}\n\n.bg-blue-100 {\n background-color: $blue-100 !important;\n}\n\n.bg-blue-200 {\n background-color: $blue-200 !important;\n}\n\n.bg-blue-300 {\n background-color: $blue-300 !important;\n}\n\n.bg-green-000 {\n background-color: $green-000 !important;\n}\n\n.bg-green-100 {\n background-color: $green-100 !important;\n}\n\n.bg-green-200 {\n background-color: $green-200 !important;\n}\n\n.bg-green-300 {\n background-color: $green-300 !important;\n}\n\n.bg-purple-000 {\n background-color: $purple-000 !important;\n}\n\n.bg-purple-100 {\n background-color: $purple-100 !important;\n}\n\n.bg-purple-200 {\n background-color: $purple-200 !important;\n}\n\n.bg-purple-300 {\n background-color: $purple-300 !important;\n}\n\n.bg-yellow-000 {\n background-color: $yellow-000 !important;\n}\n\n.bg-yellow-100 {\n background-color: $yellow-100 !important;\n}\n\n.bg-yellow-200 {\n background-color: $yellow-200 !important;\n}\n\n.bg-yellow-300 {\n background-color: $yellow-300 !important;\n}\n\n.bg-red-000 {\n background-color: $red-000 !important;\n}\n\n.bg-red-100 {\n background-color: $red-100 !important;\n}\n\n.bg-red-200 {\n background-color: $red-200 !important;\n}\n\n.bg-red-300 {\n background-color: $red-300 !important;\n}\n","// Utility classes for layout\n\n// Display\n\n.d-block {\n display: block !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .d-sm-block, .d-md-none, .d-lg-inline\n .d-#{$media-query}-block {\n display: block !important;\n }\n .d-#{$media-query}-flex {\n display: flex !important;\n }\n .d-#{$media-query}-inline {\n display: inline !important;\n }\n .d-#{$media-query}-inline-block {\n display: inline-block !important;\n }\n .d-#{$media-query}-none {\n display: none !important;\n }\n }\n }\n}\n\n// Horizontal alignment\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.flex-justify-start {\n justify-content: flex-start !important;\n}\n\n.flex-justify-end {\n justify-content: flex-end !important;\n}\n\n.flex-justify-between {\n justify-content: space-between !important;\n}\n\n.flex-justify-around {\n justify-content: space-around !important;\n}\n\n// Vertical alignment\n\n.v-align-baseline {\n vertical-align: baseline !important;\n}\n\n.v-align-bottom {\n vertical-align: bottom !important;\n}\n\n.v-align-middle {\n vertical-align: middle !important;\n}\n\n.v-align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.v-align-text-top {\n vertical-align: text-top !important;\n}\n\n.v-align-top {\n vertical-align: top !important;\n}\n","// Utility classes for typography\n\n.fs-1 {\n @include fs-1;\n}\n\n.fs-2 {\n @include fs-2;\n}\n\n.fs-3 {\n @include fs-3;\n}\n\n.fs-4 {\n @include fs-4;\n}\n\n.fs-5 {\n @include fs-5;\n}\n\n.fs-6 {\n @include fs-6;\n}\n\n.fs-7 {\n @include fs-7;\n}\n\n.fs-8 {\n @include fs-8;\n}\n\n.fs-9 {\n @include fs-9;\n}\n\n.fs-10 {\n @include fs-10;\n}\n\n.fw-300 {\n font-weight: 300 !important;\n}\n\n.fw-400 {\n font-weight: 400 !important;\n}\n\n.fw-500 {\n font-weight: 500 !important;\n}\n\n.fw-700 {\n font-weight: 700 !important;\n}\n\n.lh-0 {\n line-height: 0 !important;\n}\n\n.lh-default {\n line-height: $body-line-height;\n}\n\n.lh-tight {\n line-height: $body-heading-line-height;\n}\n\n.ls-5 {\n letter-spacing: 0.05em !important;\n}\n\n.ls-10 {\n letter-spacing: 0.1em !important;\n}\n\n.ls-0 {\n letter-spacing: 0 !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n","// Utility classes for lists\n\n// stylelint-disable selector-max-type\n\n.list-style-none {\n padding: 0 !important;\n margin: 0 !important;\n list-style: none !important;\n\n li {\n &::before {\n display: none !important;\n }\n }\n}\n","// Utility classes for margins and padding\n\n// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before\n\n// Margin spacer utilities\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-0, .m-1, .m-2...\n .m-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n .mx-#{$scale}-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-sm-0, .m-md-1, .m-lg-2...\n .m-#{$media-query}-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$media-query}-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$media-query}-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$media-query}-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n }\n }\n}\n\n// Padding spacer utilities\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-0, .p-1, .p-2...\n .p-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @include mq($media-query) {\n @for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-sm-0, .p-md-1, .p-lg-2...\n .p-#{$media-query}-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$media-query}-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$media-query}-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n }\n }\n}\n","// stylelint-disable selector-max-specificity, selector-max-id, selector-max-type, selector-no-qualifying-type\n\n@media print {\n .site-footer,\n .site-button,\n #edit-this-page,\n #back-to-top,\n .site-nav,\n .main-header {\n display: none !important;\n }\n\n .side-bar {\n width: 100%;\n height: auto;\n border-right: 0 !important;\n }\n\n .site-header {\n border-bottom: 1px solid $border-color;\n }\n\n .site-title {\n font-size: 1rem !important;\n font-weight: 700 !important;\n }\n\n .text-small {\n font-size: 8pt !important;\n }\n\n pre.highlight {\n border: 1px solid $border-color;\n }\n\n .main {\n max-width: none;\n margin-left: 0;\n }\n}\n","// Skipnav\n// Skip to main content\n\na.skip-to-main {\n left: -999px;\n position: absolute;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n z-index: -999;\n}\n\na.skip-to-main:focus,\na.skip-to-main:active {\n color: $link-color;\n background-color: $body-background-color;\n left: auto;\n top: auto;\n width: 30%;\n height: auto;\n overflow: auto;\n margin: 10px 35%;\n padding: 5px;\n border-radius: 15px;\n border: 4px solid $btn-primary-color;\n text-align: center;\n font-size: 1.2em;\n z-index: 999;\n}\n","\n$logo: \"/assets/images/logo.png\";\n\n@import \"./support/support\";\n@import \"./custom/setup\";\n@import \"./color_schemes/light\";\n\n@import \"./color_schemes/dark\";\n\n@import \"./modules\";\ndiv.opaque {\n background-color: $body-background-color;\n}\n@import \"./custom/custom\";\n\n\n"],"file":"just-the-docs-dark.css"} \ No newline at end of file diff --git a/jekyll-backup/_site/assets/css/just-the-docs-default.css b/jekyll-backup/_site/assets/css/just-the-docs-default.css deleted file mode 100644 index f085134e..00000000 --- a/jekyll-backup/_site/assets/css/just-the-docs-default.css +++ /dev/null @@ -1 +0,0 @@ -ο»Ώ.highlight,pre.highlight{background:#f9f9f9;color:#383942}.highlight pre{background:#f9f9f9}.highlight .hll{background:#f9f9f9}.highlight .c{color:#9fa0a6;font-style:italic}.highlight .err{color:#fff;background-color:#e05151}.highlight .k{color:#a625a4}.highlight .l{color:#50a04f}.highlight .n{color:#383942}.highlight .o{color:#383942}.highlight .p{color:#383942}.highlight .cm{color:#9fa0a6;font-style:italic}.highlight .cp{color:#9fa0a6;font-style:italic}.highlight .c1{color:#9fa0a6;font-style:italic}.highlight .cs{color:#9fa0a6;font-style:italic}.highlight .ge{font-style:italic}.highlight .gs{font-weight:700}.highlight .kc{color:#a625a4}.highlight .kd{color:#a625a4}.highlight .kn{color:#a625a4}.highlight .kp{color:#a625a4}.highlight .kr{color:#a625a4}.highlight .kt{color:#a625a4}.highlight .ld{color:#50a04f}.highlight .m{color:#b66a00}.highlight .s{color:#50a04f}.highlight .na{color:#b66a00}.highlight .nb{color:#ca7601}.highlight .nc{color:#ca7601}.highlight .no{color:#ca7601}.highlight .nd{color:#ca7601}.highlight .ni{color:#ca7601}.highlight .ne{color:#ca7601}.highlight .nf{color:#383942}.highlight .nl{color:#ca7601}.highlight .nn{color:#383942}.highlight .nx{color:#383942}.highlight .py{color:#ca7601}.highlight .nt{color:#e35549}.highlight .nv{color:#ca7601}.highlight .ow{font-weight:700}.highlight .w{color:#f8f8f2}.highlight .mf{color:#b66a00}.highlight .mh{color:#b66a00}.highlight .mi{color:#b66a00}.highlight .mo{color:#b66a00}.highlight .sb{color:#50a04f}.highlight .sc{color:#50a04f}.highlight .sd{color:#50a04f}.highlight .s2{color:#50a04f}.highlight .se{color:#50a04f}.highlight .sh{color:#50a04f}.highlight .si{color:#50a04f}.highlight .sx{color:#50a04f}.highlight .sr{color:#0083bb}.highlight .s1{color:#50a04f}.highlight .ss{color:#0083bb}.highlight .bp{color:#ca7601}.highlight .vc{color:#ca7601}.highlight .vg{color:#ca7601}.highlight .vi{color:#e35549}.highlight .il{color:#b66a00}.highlight .gu{color:#75715e}.highlight .gd{color:#e05151}.highlight .gi{color:#43d089}.highlight .language-json .w+.s2{color:#e35549}.highlight .language-json .kc{color:#0083bb}.highlight,pre.highlight{background:#31343f;color:#dee2f7}.highlight pre{background:#31343f}.highlight .hll{background:#31343f}.highlight .c{color:#63677e;font-style:italic}.highlight .err{color:#960050;background-color:#1e0010}.highlight .k{color:#e19ef5}.highlight .l{color:#a3eea0}.highlight .n{color:#dee2f7}.highlight .o{color:#dee2f7}.highlight .p{color:#dee2f7}.highlight .cm{color:#63677e;font-style:italic}.highlight .cp{color:#63677e;font-style:italic}.highlight .c1{color:#63677e;font-style:italic}.highlight .cs{color:#63677e;font-style:italic}.highlight .ge{font-style:italic}.highlight .gs{font-weight:700}.highlight .kc{color:#e19ef5}.highlight .kd{color:#e19ef5}.highlight .kn{color:#e19ef5}.highlight .kp{color:#e19ef5}.highlight .kr{color:#e19ef5}.highlight .kt{color:#e19ef5}.highlight .ld{color:#a3eea0}.highlight .m{color:#eddc96}.highlight .s{color:#a3eea0}.highlight .na{color:#eddc96}.highlight .nb{color:#fdce68}.highlight .nc{color:#fdce68}.highlight .no{color:#fdce68}.highlight .nd{color:#fdce68}.highlight .ni{color:#fdce68}.highlight .ne{color:#fdce68}.highlight .nf{color:#dee2f7}.highlight .nl{color:#fdce68}.highlight .nn{color:#dee2f7}.highlight .nx{color:#dee2f7}.highlight .py{color:#fdce68}.highlight .nt{color:#f9867b}.highlight .nv{color:#fdce68}.highlight .ow{font-weight:700}.highlight .w{color:#f8f8f2}.highlight .mf{color:#eddc96}.highlight .mh{color:#eddc96}.highlight .mi{color:#eddc96}.highlight .mo{color:#eddc96}.highlight .sb{color:#a3eea0}.highlight .sc{color:#a3eea0}.highlight .sd{color:#a3eea0}.highlight .s2{color:#a3eea0}.highlight .se{color:#a3eea0}.highlight .sh{color:#a3eea0}.highlight .si{color:#a3eea0}.highlight .sx{color:#a3eea0}.highlight .sr{color:#7be2f9}.highlight .s1{color:#a3eea0}.highlight .ss{color:#7be2f9}.highlight .bp{color:#fdce68}.highlight .vc{color:#fdce68}.highlight .vg{color:#fdce68}.highlight .vi{color:#f9867b}.highlight .il{color:#eddc96}.highlight .gu{color:#75715e}.highlight .gd{color:#f92672}.highlight .gi{color:#a6e22e}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}html{font-size:.875rem !important}@media(min-width: 31.25rem){html{font-size:1rem !important}}body{font-family:system-ui,-apple-system,blinkmacsystemfont,"Segoe UI",roboto,"Helvetica Neue",arial,sans-serif,"Segoe UI Emoji";font-size:inherit;line-height:1.4;color:#e6e1e8;background-color:#27262b;overflow-wrap:break-word}ol,ul,dl,pre,address,blockquote,table,div,hr,form,fieldset,noscript .table-wrapper{margin-top:0}h1,h2,h3,h4,h5,h6,#toctitle{margin-top:0;margin-bottom:1em;font-weight:500;line-height:1.25;color:#f5f6fa}p{margin-top:1em;margin-bottom:1em}a{color:#2c84fa;text-decoration:none}a:not([class]){text-decoration:underline;text-decoration-color:#44434d;text-underline-offset:2px}a:not([class]):hover{text-decoration-color:rgba(44,132,250,.45)}code{font-family:"SFMono-Regular",menlo,consolas,monospace;font-size:.75em;line-height:1.4}figure,pre{margin:0}li{margin:.25em 0}img{max-width:100%;height:auto}hr{height:1px;padding:0;margin:2rem 0;background-color:#44434d;border:0}blockquote{margin:10px 0;margin-block-start:0;margin-inline-start:0;padding-left:1rem;border-left:3px solid #44434d}.side-bar{z-index:0;display:flex;flex-wrap:wrap;background-color:#27262b}@media(min-width: 50rem){.side-bar{flex-flow:column nowrap;position:fixed;width:15.5rem;height:100%;border-right:1px solid #44434d;align-items:flex-end}}@media(min-width: 66.5rem){.side-bar{width:calc((100% - 66.5rem)/2 + 16.5rem);min-width:16.5rem}}@media(min-width: 50rem){.side-bar+.main{margin-left:15.5rem}}@media(min-width: 66.5rem){.side-bar+.main{margin-left:max(16.5rem,(100% - 66.5rem)/2 + 16.5rem)}}.side-bar+.main .main-header{display:none;background-color:#27262b}@media(min-width: 50rem){.side-bar+.main .main-header{display:flex;background-color:#27262b}}.side-bar+.main .main-header.nav-open{display:block}@media(min-width: 50rem){.side-bar+.main .main-header.nav-open{display:flex}}.main{margin:auto}@media(min-width: 50rem){.main{position:relative;max-width:50rem}}.main-content-wrap{padding-top:1rem;padding-bottom:1rem;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.main-content-wrap{padding-right:2rem;padding-left:2rem}}@media(min-width: 50rem){.main-content-wrap{padding-top:2rem;padding-bottom:2rem}}.main-header{z-index:0;border-bottom:1px solid #44434d}@media(min-width: 50rem){.main-header{display:flex;justify-content:space-between;height:3.75rem}}.site-nav,.site-header,.site-footer{width:100%}@media(min-width: 66.5rem){.site-nav,.site-header,.site-footer{width:16.5rem}}.site-nav{display:none}.site-nav.nav-open{display:block}@media(min-width: 50rem){.site-nav{display:block;padding-top:3rem;padding-bottom:1rem;overflow-y:auto;flex:1 1 auto}}.site-header{display:flex;min-height:3.75rem;align-items:center}@media(min-width: 50rem){.site-header{height:3.75rem;max-height:3.75rem;border-bottom:1px solid #44434d}}.site-title{flex-grow:1;display:flex;height:100%;align-items:center;padding-top:.75rem;padding-bottom:.75rem;color:#f5f6fa;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.site-title{padding-right:2rem;padding-left:2rem}}.site-title{font-size:1.125rem !important}@media(min-width: 31.25rem){.site-title{font-size:1.5rem !important;line-height:1.25}}@media(min-width: 50rem){.site-title{padding-top:.5rem;padding-bottom:.5rem}}.site-logo{width:100%;height:100%;background-image:url("/assets/images/logo.png");background-repeat:no-repeat;background-position:left center;background-size:contain}.site-button{display:flex;height:100%;padding:1rem;align-items:center}@media(min-width: 50rem){.site-header .site-button{display:none}}.site-title:hover{background-image:linear-gradient(-90deg, rgb(31.6333333333, 30.8222222222, 34.8777777778) 0%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0.8) 80%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0) 100%)}.site-button:hover{background-image:linear-gradient(-90deg, rgb(31.6333333333, 30.8222222222, 34.8777777778) 0%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0.8) 100%)}body{position:relative;padding-bottom:4rem;overflow-y:scroll}@media(min-width: 50rem){body{position:static;padding-bottom:0}}.site-footer{position:absolute;bottom:0;left:0;padding-top:1rem;padding-bottom:1rem;color:#959396;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.site-footer{padding-right:2rem;padding-left:2rem}}.site-footer{font-size:.6875rem !important}@media(min-width: 31.25rem){.site-footer{font-size:.75rem !important}}@media(min-width: 50rem){.site-footer{position:static;justify-self:end}}.icon{width:1.5rem;height:1.5rem;color:#2c84fa}.main-content{line-height:1.6}.main-content ol,.main-content ul,.main-content dl,.main-content pre,.main-content address,.main-content blockquote,.main-content .table-wrapper{margin-top:.5em}.main-content a{overflow:hidden;text-overflow:ellipsis}.main-content ul,.main-content ol{padding-left:1.5em}.main-content li .highlight{margin-top:.25rem}.main-content ol{list-style-type:none;counter-reset:step-counter}.main-content ol>li{position:relative}.main-content ol>li::before{position:absolute;top:.2em;left:-1.6em;color:#959396;content:counter(step-counter);counter-increment:step-counter}.main-content ol>li::before{font-size:.75rem !important}@media(min-width: 31.25rem){.main-content ol>li::before{font-size:.875rem !important}}@media(min-width: 31.25rem){.main-content ol>li::before{top:.11em}}.main-content ol>li ol{counter-reset:sub-counter}.main-content ol>li ol>li::before{content:counter(sub-counter, lower-alpha);counter-increment:sub-counter}.main-content ul{list-style:none}.main-content ul>li::before{position:absolute;margin-left:-1.4em;color:#959396;content:"β€’"}.main-content .task-list-item::before{content:""}.main-content .task-list-item-checkbox{margin-right:.6em;margin-left:-1.4em}.main-content hr+*{margin-top:0}.main-content h1:first-of-type{margin-top:.5em}.main-content dl{display:grid;grid-template:auto/10em 1fr}.main-content dt,.main-content dd{margin:.25em 0}.main-content dt{grid-column:1;font-weight:500;text-align:right}.main-content dt::after{content:":"}.main-content dd{grid-column:2;margin-bottom:0;margin-left:1em}.main-content dd blockquote:first-child,.main-content dd div:first-child,.main-content dd dl:first-child,.main-content dd dt:first-child,.main-content dd h1:first-child,.main-content dd h2:first-child,.main-content dd h3:first-child,.main-content dd h4:first-child,.main-content dd h5:first-child,.main-content dd h6:first-child,.main-content dd li:first-child,.main-content dd ol:first-child,.main-content dd p:first-child,.main-content dd pre:first-child,.main-content dd table:first-child,.main-content dd ul:first-child,.main-content dd .table-wrapper:first-child{margin-top:0}.main-content dd dl:first-child dt:first-child,.main-content dd dl:first-child dd:nth-child(2),.main-content ol dl:first-child dt:first-child,.main-content ol dl:first-child dd:nth-child(2),.main-content ul dl:first-child dt:first-child,.main-content ul dl:first-child dd:nth-child(2){margin-top:0}.main-content .anchor-heading{position:absolute;right:-1rem;width:1.5rem;height:100%;padding-right:.25rem;padding-left:.25rem;overflow:visible}@media(min-width: 50rem){.main-content .anchor-heading{right:auto;left:-1.5rem}}.main-content .anchor-heading svg{display:inline-block;width:100%;height:100%;color:#2c84fa;visibility:hidden}.main-content .anchor-heading:hover svg,.main-content .anchor-heading:focus svg,.main-content h1:hover>.anchor-heading svg,.main-content h2:hover>.anchor-heading svg,.main-content h3:hover>.anchor-heading svg,.main-content h4:hover>.anchor-heading svg,.main-content h5:hover>.anchor-heading svg,.main-content h6:hover>.anchor-heading svg{visibility:visible}.main-content summary{cursor:pointer}.main-content h1,.main-content h2,.main-content h3,.main-content h4,.main-content h5,.main-content h6,.main-content #toctitle{position:relative;margin-top:1.5em;margin-bottom:.25em}.main-content h1+table,.main-content h1+.table-wrapper,.main-content h1+.code-example,.main-content h1+.highlighter-rouge,.main-content h1+.sectionbody .listingblock,.main-content h2+table,.main-content h2+.table-wrapper,.main-content h2+.code-example,.main-content h2+.highlighter-rouge,.main-content h2+.sectionbody .listingblock,.main-content h3+table,.main-content h3+.table-wrapper,.main-content h3+.code-example,.main-content h3+.highlighter-rouge,.main-content h3+.sectionbody .listingblock,.main-content h4+table,.main-content h4+.table-wrapper,.main-content h4+.code-example,.main-content h4+.highlighter-rouge,.main-content h4+.sectionbody .listingblock,.main-content h5+table,.main-content h5+.table-wrapper,.main-content h5+.code-example,.main-content h5+.highlighter-rouge,.main-content h5+.sectionbody .listingblock,.main-content h6+table,.main-content h6+.table-wrapper,.main-content h6+.code-example,.main-content h6+.highlighter-rouge,.main-content h6+.sectionbody .listingblock,.main-content #toctitle+table,.main-content #toctitle+.table-wrapper,.main-content #toctitle+.code-example,.main-content #toctitle+.highlighter-rouge,.main-content #toctitle+.sectionbody .listingblock{margin-top:1em}.main-content h1+p:not(.label),.main-content h2+p:not(.label),.main-content h3+p:not(.label),.main-content h4+p:not(.label),.main-content h5+p:not(.label),.main-content h6+p:not(.label),.main-content #toctitle+p:not(.label){margin-top:0}.main-content>h1:first-child,.main-content>h2:first-child,.main-content>h3:first-child,.main-content>h4:first-child,.main-content>h5:first-child,.main-content>h6:first-child,.main-content>.sect1:first-child>h2,.main-content>.sect2:first-child>h3,.main-content>.sect3:first-child>h4,.main-content>.sect4:first-child>h5,.main-content>.sect5:first-child>h6{margin-top:.5rem}.nav-list{padding:0;margin-top:0;margin-bottom:0;list-style:none}.nav-list .nav-list-item{position:relative;margin:0}.nav-list .nav-list-item{font-size:.875rem !important}@media(min-width: 31.25rem){.nav-list .nav-list-item{font-size:1rem !important}}@media(min-width: 50rem){.nav-list .nav-list-item{font-size:.75rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.nav-list .nav-list-item{font-size:.875rem !important}}.nav-list .nav-list-item .nav-list-link{display:block;min-height:3rem;padding-top:.25rem;padding-bottom:.25rem;line-height:2.5rem;padding-right:3rem;padding-left:1rem}@media(min-width: 50rem){.nav-list .nav-list-item .nav-list-link{min-height:2rem;line-height:1.5rem;padding-right:2rem;padding-left:2rem}}.nav-list .nav-list-item .nav-list-link.external>svg{width:1rem;height:1rem;vertical-align:text-bottom}.nav-list .nav-list-item .nav-list-link.active{font-weight:600;text-decoration:none}.nav-list .nav-list-item .nav-list-link:hover,.nav-list .nav-list-item .nav-list-link.active{background-image:linear-gradient(-90deg, rgb(31.6333333333, 30.8222222222, 34.8777777778) 0%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0.8) 80%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0) 100%)}.nav-list .nav-list-item .nav-list-expander{position:absolute;right:0;width:3rem;height:3rem;padding:0.75rem;color:#2c84fa}@media(min-width: 50rem){.nav-list .nav-list-item .nav-list-expander{width:2rem;height:2rem;padding:0.5rem}}.nav-list .nav-list-item .nav-list-expander:hover{background-image:linear-gradient(-90deg, rgb(31.6333333333, 30.8222222222, 34.8777777778) 0%, rgba(31.6333333333, 30.8222222222, 34.8777777778, 0.8) 100%)}.nav-list .nav-list-item .nav-list-expander svg{transform:rotate(90deg)}.nav-list .nav-list-item>.nav-list{display:none;padding-left:.75rem;list-style:none}.nav-list .nav-list-item>.nav-list .nav-list-item{position:relative}.nav-list .nav-list-item>.nav-list .nav-list-item .nav-list-link{color:#959396}.nav-list .nav-list-item>.nav-list .nav-list-item .nav-list-expander{color:#959396}.nav-list .nav-list-item.active>.nav-list-expander svg{transform:rotate(-90deg)}.nav-list .nav-list-item.active>.nav-list{display:block}.nav-category{padding:.5rem 1rem;font-weight:600;text-align:start;text-transform:uppercase;border-bottom:1px solid #44434d}.nav-category{font-size:.6875rem !important}@media(min-width: 31.25rem){.nav-category{font-size:.75rem !important}}@media(min-width: 50rem){.nav-category{padding:.5rem 2rem;margin-top:1rem;text-align:start}.nav-category:first-child{margin-top:0}}.nav-list.nav-category-list>.nav-list-item{margin:0}.nav-list.nav-category-list>.nav-list-item>.nav-list{padding:0}.nav-list.nav-category-list>.nav-list-item>.nav-list>.nav-list-item>.nav-list-link{color:#2c84fa}.nav-list.nav-category-list>.nav-list-item>.nav-list>.nav-list-item>.nav-list-expander{color:#2c84fa}.aux-nav{height:100%;overflow-x:auto}.aux-nav{font-size:.6875rem !important}@media(min-width: 31.25rem){.aux-nav{font-size:.75rem !important}}.aux-nav .aux-nav-list{display:flex;height:100%;padding:0;margin:0;list-style:none}.aux-nav .aux-nav-list-item{display:inline-block;height:100%;padding:0;margin:0}@media(min-width: 50rem){.aux-nav{padding-right:1rem}}@media(min-width: 50rem){.breadcrumb-nav{margin-top:-1rem}}.breadcrumb-nav-list{padding-left:0;margin-bottom:.75rem;list-style:none}.breadcrumb-nav-list-item{display:table-cell}.breadcrumb-nav-list-item{font-size:.6875rem !important}@media(min-width: 31.25rem){.breadcrumb-nav-list-item{font-size:.75rem !important}}.breadcrumb-nav-list-item::before{display:none}.breadcrumb-nav-list-item::after{display:inline-block;margin-right:.5rem;margin-left:.5rem;color:#959396;content:"/"}.breadcrumb-nav-list-item:last-child::after{content:""}h1,.text-alpha{font-weight:300}h1,.text-alpha{font-size:2rem !important;line-height:1.25}@media(min-width: 31.25rem){h1,.text-alpha{font-size:2.25rem !important}}h2,.text-beta,#toctitle{font-size:1.125rem !important}@media(min-width: 31.25rem){h2,.text-beta,#toctitle{font-size:1.5rem !important;line-height:1.25}}h3,.text-gamma{font-size:1rem !important}@media(min-width: 31.25rem){h3,.text-gamma{font-size:1.125rem !important}}h4,.text-delta{font-weight:400;text-transform:uppercase;letter-spacing:.1em}h4,.text-delta{font-size:.6875rem !important}@media(min-width: 31.25rem){h4,.text-delta{font-size:.75rem !important}}h4 code{text-transform:none}h5,.text-epsilon{font-size:.75rem !important}@media(min-width: 31.25rem){h5,.text-epsilon{font-size:.875rem !important}}h6,.text-zeta{font-size:.6875rem !important}@media(min-width: 31.25rem){h6,.text-zeta{font-size:.75rem !important}}.text-small{font-size:.6875rem !important}@media(min-width: 31.25rem){.text-small{font-size:.75rem !important}}.text-mono{font-family:"SFMono-Regular",menlo,consolas,monospace !important}.text-left{text-align:left !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.label:not(g),.label-blue:not(g){display:inline-block;padding:.16em .56em;margin-right:.5rem;margin-left:.5rem;color:#fff;text-transform:uppercase;vertical-align:middle;background-color:#2869e6;border-radius:12px}.label:not(g),.label-blue:not(g){font-size:.6875rem !important}@media(min-width: 31.25rem){.label:not(g),.label-blue:not(g){font-size:.75rem !important}}.label-green:not(g){background-color:#009c7b}.label-purple:not(g){background-color:#5e41d0}.label-red:not(g){background-color:#e94c4c}.label-yellow:not(g){color:#44434d;background-color:#f7d12e}.btn{display:inline-block;box-sizing:border-box;padding:.3em 1em;margin:0;font-family:inherit;font-size:inherit;font-weight:500;line-height:1.5;color:#2c84fa;text-decoration:none;vertical-align:baseline;cursor:pointer;background-color:#302d36;border-width:0;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);appearance:none}.btn:focus{text-decoration:none;outline:none;box-shadow:0 0 0 3px rgba(0,0,255,.25)}.btn:focus:hover,.btn.selected:focus{box-shadow:0 0 0 3px rgba(0,0,255,.25)}.btn:hover,.btn.zeroclipboard-is-hover{color:rgb(34.0361111111,126.1916666667,249.7638888889)}.btn:hover,.btn:active,.btn.zeroclipboard-is-hover,.btn.zeroclipboard-is-active{text-decoration:none;background-color:hsl(260,9.0909090909%,18.4117647059%)}.btn:active,.btn.selected,.btn.zeroclipboard-is-active{background-color:hsl(260,9.0909090909%,16.4117647059%);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn.selected:hover{background-color:hsl(0,0%,81.2745098039%)}.btn:disabled,.btn:disabled:hover,.btn.disabled,.btn.disabled:hover{color:hsla(0,0%,40%,.5);cursor:default;background-color:rgba(229,229,229,.5);background-image:none;box-shadow:none}.btn-outline{color:#2c84fa;background:rgba(0,0,0,0);box-shadow:inset 0 0 0 2px #e6e1e8}.btn-outline:hover,.btn-outline:active,.btn-outline.zeroclipboard-is-hover,.btn-outline.zeroclipboard-is-active{color:rgb(24.0722222222,120.3833333333,249.5277777778);text-decoration:none;background-color:rgba(0,0,0,0);box-shadow:inset 0 0 0 3px #e6e1e8}.btn-outline:focus{text-decoration:none;outline:none;box-shadow:inset 0 0 0 2px #5c5962,0 0 0 3px rgba(0,0,255,.25)}.btn-outline:focus:hover,.btn-outline.selected:focus{box-shadow:inset 0 0 0 2px #5c5962}.btn-primary{color:#fff;background-color:rgb(36.1802816901,72.3605633803,166.6197183099);background-image:linear-gradient(rgb(42.5492957746, 85.0985915493, 195.9507042254), rgb(36.1802816901, 72.3605633803, 166.6197183099));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-primary:hover,.btn-primary.zeroclipboard-is-hover{color:#fff;background-color:rgb(34.3605633803,68.7211267606,158.2394366197);background-image:linear-gradient(rgb(39.8197183099, 79.6394366197, 183.3802816901), rgb(34.3605633803, 68.7211267606, 158.2394366197))}.btn-primary:active,.btn-primary.selected,.btn-primary.zeroclipboard-is-active{background-color:rgb(33.4507042254,66.9014084507,154.0492957746);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-primary.selected:hover{background-color:rgb(28.9014084507,57.8028169014,133.0985915493)}.btn-purple{color:#fff;background-color:rgb(87.0708860759,56.8227848101,205.9772151899);background-image:linear-gradient(rgb(111.3227848101, 85.4430379747, 213.0569620253), rgb(87.0708860759, 56.8227848101, 205.9772151899));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-purple:hover,.btn-purple.zeroclipboard-is-hover{color:#fff;background-color:rgb(81.0025316456,50.0936708861,202.5063291139);background-image:linear-gradient(rgb(100.9291139241, 73.1772151899, 210.0227848101), rgb(81.0025316456, 50.0936708861, 202.5063291139))}.btn-purple:active,.btn-purple.selected,.btn-purple.zeroclipboard-is-active{background-color:rgb(79.3670886076,49.082278481,198.417721519);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-purple.selected:hover{background-color:rgb(71.1898734177,44.0253164557,177.9746835443)}.btn-blue{color:#fff;background-color:rgb(34.0361111111,126.1916666667,249.7638888889);background-image:linear-gradient(rgb(68.9097222222, 146.5208333333, 250.5902777778), rgb(34.0361111111, 126.1916666667, 249.7638888889));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-blue:hover,.btn-blue.zeroclipboard-is-hover{color:#fff;background-color:rgb(24.0722222222,120.3833333333,249.5277777778);background-image:linear-gradient(rgb(53.9638888889, 137.8083333333, 250.2361111111), rgb(24.0722222222, 120.3833333333, 249.5277777778))}.btn-blue:active,.btn-blue.selected,.btn-blue.zeroclipboard-is-active{background-color:rgb(19.0902777778,117.4791666667,249.4097222222);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-blue.selected:hover{background-color:rgb(5.625,104.625,237.375)}.btn-green{color:#fff;background-color:rgb(16.1242424242,171.6757575758,125.2);background-image:linear-gradient(rgb(19.1893939394, 204.3106060606, 149), rgb(16.1242424242, 171.6757575758, 125.2));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-green:hover,.btn-green.zeroclipboard-is-hover{color:#fff;background-color:rgb(15.2484848485,162.3515151515,118.4);background-image:linear-gradient(rgb(17.8757575758, 190.3242424242, 138.8), rgb(15.2484848485, 162.3515151515, 118.4))}.btn-green:active,.btn-green.selected,.btn-green.zeroclipboard-is-active{background-color:rgb(14.8106060606,157.6893939394,115);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-green.selected:hover{background-color:rgb(12.6212121212,134.3787878788,98)}.btn-reset{background:none;border:none;margin:0;text-align:inherit;font:inherit;border-radius:0;appearance:none}.search{position:relative;z-index:2;flex-grow:1;height:4rem;padding:.5rem;transition:padding linear 200ms}@media(min-width: 50rem){.search{position:relative !important;width:auto !important;height:100% !important;padding:0;transition:none}}.search-input-wrap{position:relative;z-index:1;height:3rem;overflow:hidden;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);transition:height linear 200ms}@media(min-width: 50rem){.search-input-wrap{position:absolute;width:100%;max-width:33.5rem;height:100% !important;border-radius:0;box-shadow:none;transition:width ease 400ms}}.search-input{position:absolute;width:100%;height:100%;padding:.5rem 1rem .5rem 2.5rem;font-size:1rem;color:#e6e1e8;background-color:#302d36;border-top:0;border-right:0;border-bottom:0;border-left:0;border-radius:0}@media(min-width: 50rem){.search-input{padding:.5rem 1rem .5rem 3.5rem;font-size:.875rem;background-color:#27262b;transition:padding-left linear 200ms}}.search-input:focus{outline:0}.search-input:focus+.search-label .search-icon{color:#2c84fa}.search-label{position:absolute;display:flex;height:100%;padding-left:1rem}@media(min-width: 50rem){.search-label{padding-left:2rem;transition:padding-left linear 200ms}}.search-label .search-icon{width:1.2rem;height:1.2rem;align-self:center;color:#959396}.search-results{position:absolute;left:0;display:none;width:100%;max-height:calc(100% - 4rem);overflow-y:auto;background-color:#302d36;border-bottom-right-radius:4px;border-bottom-left-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}@media(min-width: 50rem){.search-results{top:100%;width:33.5rem;max-height:calc(100vh - 200%) !important}}.search-results-list{padding-left:0;margin-bottom:.25rem;list-style:none}.search-results-list{font-size:.875rem !important}@media(min-width: 31.25rem){.search-results-list{font-size:1rem !important}}@media(min-width: 50rem){.search-results-list{font-size:.75rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.search-results-list{font-size:.875rem !important}}.search-results-list-item{padding:0;margin:0}.search-result{display:block;padding:.25rem .75rem}.search-result:hover,.search-result.active{background-color:hsl(252,6.1728395062%,12.8823529412%)}.search-result-title{display:block;padding-top:.5rem;padding-bottom:.5rem}@media(min-width: 31.25rem){.search-result-title{display:inline-block;width:40%;padding-right:.5rem;vertical-align:top}}.search-result-doc{display:flex;align-items:center;word-wrap:break-word}.search-result-doc.search-result-doc-parent{opacity:.5}.search-result-doc.search-result-doc-parent{font-size:.75rem !important}@media(min-width: 31.25rem){.search-result-doc.search-result-doc-parent{font-size:.875rem !important}}@media(min-width: 50rem){.search-result-doc.search-result-doc-parent{font-size:.6875rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.search-result-doc.search-result-doc-parent{font-size:.75rem !important}}.search-result-doc .search-result-icon{width:1rem;height:1rem;margin-right:.5rem;color:#2c84fa;flex-shrink:0}.search-result-doc .search-result-doc-title{overflow:auto}.search-result-section{margin-left:1.5rem;word-wrap:break-word}.search-result-rel-url{display:block;margin-left:1.5rem;overflow:hidden;color:#959396;text-overflow:ellipsis;white-space:nowrap}.search-result-rel-url{font-size:.5625rem !important}@media(min-width: 31.25rem){.search-result-rel-url{font-size:.625rem !important}}.search-result-previews{display:block;padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;margin-left:.5rem;color:#959396;word-wrap:break-word;border-left:1px solid;border-left-color:#44434d}.search-result-previews{font-size:.6875rem !important}@media(min-width: 31.25rem){.search-result-previews{font-size:.75rem !important}}@media(min-width: 31.25rem){.search-result-previews{display:inline-block;width:60%;padding-left:.5rem;margin-left:0;vertical-align:top}}.search-result-preview+.search-result-preview{margin-top:.25rem}.search-result-highlight{font-weight:bold}.search-no-result{padding:.5rem .75rem}.search-no-result{font-size:.75rem !important}@media(min-width: 31.25rem){.search-no-result{font-size:.875rem !important}}.search-button{position:fixed;right:1rem;bottom:1rem;display:flex;width:3.5rem;height:3.5rem;background-color:#302d36;border:1px solid rgba(44,132,250,.3);border-radius:1.75rem;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);align-items:center;justify-content:center}.search-overlay{position:fixed;top:0;left:0;z-index:1;width:0;height:0;background-color:rgba(0,0,0,.3);opacity:0;transition:opacity ease 400ms,width 0s 400ms,height 0s 400ms}.search-active .search{position:fixed;top:0;left:0;width:100%;height:100%;padding:0}.search-active .search-input-wrap{height:4rem;border-radius:0}@media(min-width: 50rem){.search-active .search-input-wrap{width:33.5rem;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}}.search-active .search-input{background-color:#302d36}@media(min-width: 50rem){.search-active .search-input{padding-left:2.3rem}}@media(min-width: 50rem){.search-active .search-label{padding-left:.6rem}}.search-active .search-results{display:block}.search-active .search-overlay{width:100%;height:100%;opacity:1;transition:opacity ease 400ms,width 0s,height 0s}@media(min-width: 50rem){.search-active .main{position:fixed;right:0;left:0}}.search-active .main-header{padding-top:4rem}@media(min-width: 50rem){.search-active .main-header{padding-top:0}}.table-wrapper{display:block;width:100%;max-width:100%;margin-bottom:1.5rem;overflow-x:auto;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}table{display:table;min-width:100%;border-collapse:separate}th,td{min-width:7.5rem;padding:.5rem .75rem;background-color:#302d36;border-bottom:1px solid rgba(68,67,77,.5);border-left:1px solid #44434d}th,td{font-size:.75rem !important}@media(min-width: 31.25rem){th,td{font-size:.875rem !important}}th:first-of-type,td:first-of-type{border-left:0}tbody tr:last-of-type th,tbody tr:last-of-type td{border-bottom:0}tbody tr:last-of-type td{padding-bottom:.75rem}thead th{border-bottom:1px solid #44434d}:not(pre,figure)>code{padding:.2em .15em;font-weight:400;background-color:#31343f;border:1px solid #44434d;border-radius:4px}a:visited code{border-color:#44434d}div.highlighter-rouge,div.listingblock>div.content,figure.highlight{margin-top:0;margin-bottom:.75rem;background-color:#31343f;border-radius:4px;box-shadow:none;-webkit-overflow-scrolling:touch;position:relative;padding:0}div.highlighter-rouge>button,div.listingblock>div.content>button,figure.highlight>button{width:.75rem;opacity:0;position:absolute;top:0;right:0;border:.75rem solid #31343f;background-color:#31343f;color:#e6e1e8;box-sizing:content-box}div.highlighter-rouge>button svg,div.listingblock>div.content>button svg,figure.highlight>button svg{fill:#e6e1e8}div.highlighter-rouge>button:active,div.listingblock>div.content>button:active,figure.highlight>button:active{text-decoration:none;outline:none;opacity:1}div.highlighter-rouge>button:focus,div.listingblock>div.content>button:focus,figure.highlight>button:focus{opacity:1}div.highlighter-rouge:hover>button,div.listingblock>div.content:hover>button,figure.highlight:hover>button{cursor:copy;opacity:1}div.highlighter-rouge div.highlight{overflow-x:auto;padding:.75rem;margin:0;border:0}div.highlighter-rouge pre.highlight,div.highlighter-rouge code{padding:0;margin:0;border:0}div.listingblock{margin-top:0;margin-bottom:.75rem}div.listingblock div.content{overflow-x:auto;padding:.75rem;margin:0;border:0}div.listingblock div.content>pre,div.listingblock code{padding:0;margin:0;border:0}figure.highlight pre,figure.highlight :not(pre)>code{overflow-x:auto;padding:.75rem;margin:0;border:0}.highlight .table-wrapper{padding:.75rem 0;margin:0;border:0;box-shadow:none}.highlight .table-wrapper td,.highlight .table-wrapper pre{min-width:0;padding:0;background-color:#31343f;border:0}.highlight .table-wrapper td,.highlight .table-wrapper pre{font-size:.6875rem !important}@media(min-width: 31.25rem){.highlight .table-wrapper td,.highlight .table-wrapper pre{font-size:.75rem !important}}.highlight .table-wrapper td.gl{width:1em;padding-right:.75rem;padding-left:.75rem}.highlight .table-wrapper pre{margin:0;line-height:2}.code-example,.listingblock>.title{padding:.75rem;margin-bottom:.75rem;overflow:auto;border:1px solid #44434d;border-radius:4px}.code-example+.highlighter-rouge,.code-example+.sectionbody .listingblock,.code-example+.content,.code-example+figure.highlight,.listingblock>.title+.highlighter-rouge,.listingblock>.title+.sectionbody .listingblock,.listingblock>.title+.content,.listingblock>.title+figure.highlight{position:relative;margin-top:-1rem;border-right:1px solid #44434d;border-bottom:1px solid #44434d;border-left:1px solid #44434d;border-top-left-radius:0;border-top-right-radius:0}code.language-mermaid{padding:0;background-color:inherit;border:0}.highlight,pre.highlight{background:#31343f;color:#dee2f7}.highlight pre{background:#31343f}.text-grey-dk-000{color:#959396 !important}.text-grey-dk-100{color:#5c5962 !important}.text-grey-dk-200{color:#44434d !important}.text-grey-dk-250{color:#302d36 !important}.text-grey-dk-300{color:#27262b !important}.text-grey-lt-000{color:#f5f6fa !important}.text-grey-lt-100{color:#eeebee !important}.text-grey-lt-200{color:#ecebed !important}.text-grey-lt-300{color:#e6e1e8 !important}.text-blue-000{color:#2c84fa !important}.text-blue-100{color:#2869e6 !important}.text-blue-200{color:#264caf !important}.text-blue-300{color:#183385 !important}.text-green-000{color:#41d693 !important}.text-green-100{color:#11b584 !important}.text-green-200{color:#009c7b !important}.text-green-300{color:#026e57 !important}.text-purple-000{color:#7253ed !important}.text-purple-100{color:#5e41d0 !important}.text-purple-200{color:#4e26af !important}.text-purple-300{color:#381885 !important}.text-yellow-000{color:#ffeb82 !important}.text-yellow-100{color:#fadf50 !important}.text-yellow-200{color:#f7d12e !important}.text-yellow-300{color:#e7af06 !important}.text-red-000{color:#f77e7e !important}.text-red-100{color:#f96e65 !important}.text-red-200{color:#e94c4c !important}.text-red-300{color:#dd2e2e !important}.bg-grey-dk-000{background-color:#959396 !important}.bg-grey-dk-100{background-color:#5c5962 !important}.bg-grey-dk-200{background-color:#44434d !important}.bg-grey-dk-250{background-color:#302d36 !important}.bg-grey-dk-300{background-color:#27262b !important}.bg-grey-lt-000{background-color:#f5f6fa !important}.bg-grey-lt-100{background-color:#eeebee !important}.bg-grey-lt-200{background-color:#ecebed !important}.bg-grey-lt-300{background-color:#e6e1e8 !important}.bg-blue-000{background-color:#2c84fa !important}.bg-blue-100{background-color:#2869e6 !important}.bg-blue-200{background-color:#264caf !important}.bg-blue-300{background-color:#183385 !important}.bg-green-000{background-color:#41d693 !important}.bg-green-100{background-color:#11b584 !important}.bg-green-200{background-color:#009c7b !important}.bg-green-300{background-color:#026e57 !important}.bg-purple-000{background-color:#7253ed !important}.bg-purple-100{background-color:#5e41d0 !important}.bg-purple-200{background-color:#4e26af !important}.bg-purple-300{background-color:#381885 !important}.bg-yellow-000{background-color:#ffeb82 !important}.bg-yellow-100{background-color:#fadf50 !important}.bg-yellow-200{background-color:#f7d12e !important}.bg-yellow-300{background-color:#e7af06 !important}.bg-red-000{background-color:#f77e7e !important}.bg-red-100{background-color:#f96e65 !important}.bg-red-200{background-color:#e94c4c !important}.bg-red-300{background-color:#dd2e2e !important}.d-block{display:block !important}.d-flex{display:flex !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-none{display:none !important}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}.float-left{float:left !important}.float-right{float:right !important}.flex-justify-start{justify-content:flex-start !important}.flex-justify-end{justify-content:flex-end !important}.flex-justify-between{justify-content:space-between !important}.flex-justify-around{justify-content:space-around !important}.v-align-baseline{vertical-align:baseline !important}.v-align-bottom{vertical-align:bottom !important}.v-align-middle{vertical-align:middle !important}.v-align-text-bottom{vertical-align:text-bottom !important}.v-align-text-top{vertical-align:text-top !important}.v-align-top{vertical-align:top !important}.fs-1{font-size:.5625rem !important}@media(min-width: 31.25rem){.fs-1{font-size:.625rem !important}}.fs-2{font-size:.6875rem !important}@media(min-width: 31.25rem){.fs-2{font-size:.75rem !important}}.fs-3{font-size:.75rem !important}@media(min-width: 31.25rem){.fs-3{font-size:.875rem !important}}.fs-4{font-size:.875rem !important}@media(min-width: 31.25rem){.fs-4{font-size:1rem !important}}.fs-5{font-size:1rem !important}@media(min-width: 31.25rem){.fs-5{font-size:1.125rem !important}}.fs-6{font-size:1.125rem !important}@media(min-width: 31.25rem){.fs-6{font-size:1.5rem !important;line-height:1.25}}.fs-7{font-size:1.5rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-7{font-size:2rem !important}}.fs-8{font-size:2rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-8{font-size:2.25rem !important}}.fs-9{font-size:2.25rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-9{font-size:2.625rem !important}}.fs-10{font-size:2.625rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-10{font-size:3rem !important}}.fw-300{font-weight:300 !important}.fw-400{font-weight:400 !important}.fw-500{font-weight:500 !important}.fw-700{font-weight:700 !important}.lh-0{line-height:0 !important}.lh-default{line-height:1.4}.lh-tight{line-height:1.25}.ls-5{letter-spacing:.05em !important}.ls-10{letter-spacing:.1em !important}.ls-0{letter-spacing:0 !important}.text-uppercase{text-transform:uppercase !important}.list-style-none{padding:0 !important;margin:0 !important;list-style:none !important}.list-style-none li::before{display:none !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-0{margin-right:-0 !important;margin-left:-0 !important}.mx-0-auto{margin-right:auto !important;margin-left:auto !important}.m-1{margin:0.25rem !important}.mt-1{margin-top:0.25rem !important}.mr-1{margin-right:0.25rem !important}.mb-1{margin-bottom:0.25rem !important}.ml-1{margin-left:0.25rem !important}.mx-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-1-auto{margin-right:auto !important;margin-left:auto !important}.m-2{margin:0.5rem !important}.mt-2{margin-top:0.5rem !important}.mr-2{margin-right:0.5rem !important}.mb-2{margin-bottom:0.5rem !important}.ml-2{margin-left:0.5rem !important}.mx-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-2-auto{margin-right:auto !important;margin-left:auto !important}.m-3{margin:0.75rem !important}.mt-3{margin-top:0.75rem !important}.mr-3{margin-right:0.75rem !important}.mb-3{margin-bottom:0.75rem !important}.ml-3{margin-left:0.75rem !important}.mx-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}.mx-3-auto{margin-right:auto !important;margin-left:auto !important}.m-4{margin:1rem !important}.mt-4{margin-top:1rem !important}.mr-4{margin-right:1rem !important}.mb-4{margin-bottom:1rem !important}.ml-4{margin-left:1rem !important}.mx-4{margin-right:1rem !important;margin-left:1rem !important}.my-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-4{margin-right:-1rem !important;margin-left:-1rem !important}.mx-4-auto{margin-right:auto !important;margin-left:auto !important}.m-5{margin:1.5rem !important}.mt-5{margin-top:1.5rem !important}.mr-5{margin-right:1.5rem !important}.mb-5{margin-bottom:1.5rem !important}.ml-5{margin-left:1.5rem !important}.mx-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-5-auto{margin-right:auto !important;margin-left:auto !important}.m-6{margin:2rem !important}.mt-6{margin-top:2rem !important}.mr-6{margin-right:2rem !important}.mb-6{margin-bottom:2rem !important}.ml-6{margin-left:2rem !important}.mx-6{margin-right:2rem !important;margin-left:2rem !important}.my-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-6{margin-right:-2rem !important;margin-left:-2rem !important}.mx-6-auto{margin-right:auto !important;margin-left:auto !important}.m-7{margin:2.5rem !important}.mt-7{margin-top:2.5rem !important}.mr-7{margin-right:2.5rem !important}.mb-7{margin-bottom:2.5rem !important}.ml-7{margin-left:2.5rem !important}.mx-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}.mx-7-auto{margin-right:auto !important;margin-left:auto !important}.m-8{margin:3rem !important}.mt-8{margin-top:3rem !important}.mr-8{margin-right:3rem !important}.mb-8{margin-bottom:3rem !important}.ml-8{margin-left:3rem !important}.mx-8{margin-right:3rem !important;margin-left:3rem !important}.my-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-8{margin-right:-3rem !important;margin-left:-3rem !important}.mx-8-auto{margin-right:auto !important;margin-left:auto !important}.m-9{margin:3.5rem !important}.mt-9{margin-top:3.5rem !important}.mr-9{margin-right:3.5rem !important}.mb-9{margin-bottom:3.5rem !important}.ml-9{margin-left:3.5rem !important}.mx-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}.mx-9-auto{margin-right:auto !important;margin-left:auto !important}.m-10{margin:4rem !important}.mt-10{margin-top:4rem !important}.mr-10{margin-right:4rem !important}.mb-10{margin-bottom:4rem !important}.ml-10{margin-left:4rem !important}.mx-10{margin-right:4rem !important;margin-left:4rem !important}.my-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-10{margin-right:-4rem !important;margin-left:-4rem !important}.mx-10-auto{margin-right:auto !important;margin-left:auto !important}@media(min-width: 20rem){.m-xs-0{margin:0 !important}.mt-xs-0{margin-top:0 !important}.mr-xs-0{margin-right:0 !important}.mb-xs-0{margin-bottom:0 !important}.ml-xs-0{margin-left:0 !important}.mx-xs-0{margin-right:0 !important;margin-left:0 !important}.my-xs-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-xs-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 20rem){.m-xs-1{margin:0.25rem !important}.mt-xs-1{margin-top:0.25rem !important}.mr-xs-1{margin-right:0.25rem !important}.mb-xs-1{margin-bottom:0.25rem !important}.ml-xs-1{margin-left:0.25rem !important}.mx-xs-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-xs-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-xs-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 20rem){.m-xs-2{margin:0.5rem !important}.mt-xs-2{margin-top:0.5rem !important}.mr-xs-2{margin-right:0.5rem !important}.mb-xs-2{margin-bottom:0.5rem !important}.ml-xs-2{margin-left:0.5rem !important}.mx-xs-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-xs-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-xs-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 20rem){.m-xs-3{margin:0.75rem !important}.mt-xs-3{margin-top:0.75rem !important}.mr-xs-3{margin-right:0.75rem !important}.mb-xs-3{margin-bottom:0.75rem !important}.ml-xs-3{margin-left:0.75rem !important}.mx-xs-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-xs-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-xs-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 20rem){.m-xs-4{margin:1rem !important}.mt-xs-4{margin-top:1rem !important}.mr-xs-4{margin-right:1rem !important}.mb-xs-4{margin-bottom:1rem !important}.ml-xs-4{margin-left:1rem !important}.mx-xs-4{margin-right:1rem !important;margin-left:1rem !important}.my-xs-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-xs-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 20rem){.m-xs-5{margin:1.5rem !important}.mt-xs-5{margin-top:1.5rem !important}.mr-xs-5{margin-right:1.5rem !important}.mb-xs-5{margin-bottom:1.5rem !important}.ml-xs-5{margin-left:1.5rem !important}.mx-xs-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-xs-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-xs-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 20rem){.m-xs-6{margin:2rem !important}.mt-xs-6{margin-top:2rem !important}.mr-xs-6{margin-right:2rem !important}.mb-xs-6{margin-bottom:2rem !important}.ml-xs-6{margin-left:2rem !important}.mx-xs-6{margin-right:2rem !important;margin-left:2rem !important}.my-xs-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-xs-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 20rem){.m-xs-7{margin:2.5rem !important}.mt-xs-7{margin-top:2.5rem !important}.mr-xs-7{margin-right:2.5rem !important}.mb-xs-7{margin-bottom:2.5rem !important}.ml-xs-7{margin-left:2.5rem !important}.mx-xs-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-xs-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-xs-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 20rem){.m-xs-8{margin:3rem !important}.mt-xs-8{margin-top:3rem !important}.mr-xs-8{margin-right:3rem !important}.mb-xs-8{margin-bottom:3rem !important}.ml-xs-8{margin-left:3rem !important}.mx-xs-8{margin-right:3rem !important;margin-left:3rem !important}.my-xs-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-xs-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 20rem){.m-xs-9{margin:3.5rem !important}.mt-xs-9{margin-top:3.5rem !important}.mr-xs-9{margin-right:3.5rem !important}.mb-xs-9{margin-bottom:3.5rem !important}.ml-xs-9{margin-left:3.5rem !important}.mx-xs-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-xs-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-xs-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 20rem){.m-xs-10{margin:4rem !important}.mt-xs-10{margin-top:4rem !important}.mr-xs-10{margin-right:4rem !important}.mb-xs-10{margin-bottom:4rem !important}.ml-xs-10{margin-left:4rem !important}.mx-xs-10{margin-right:4rem !important;margin-left:4rem !important}.my-xs-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-xs-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 31.25rem){.m-sm-0{margin:0 !important}.mt-sm-0{margin-top:0 !important}.mr-sm-0{margin-right:0 !important}.mb-sm-0{margin-bottom:0 !important}.ml-sm-0{margin-left:0 !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-sm-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 31.25rem){.m-sm-1{margin:0.25rem !important}.mt-sm-1{margin-top:0.25rem !important}.mr-sm-1{margin-right:0.25rem !important}.mb-sm-1{margin-bottom:0.25rem !important}.ml-sm-1{margin-left:0.25rem !important}.mx-sm-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-sm-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-sm-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 31.25rem){.m-sm-2{margin:0.5rem !important}.mt-sm-2{margin-top:0.5rem !important}.mr-sm-2{margin-right:0.5rem !important}.mb-sm-2{margin-bottom:0.5rem !important}.ml-sm-2{margin-left:0.5rem !important}.mx-sm-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-sm-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-sm-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 31.25rem){.m-sm-3{margin:0.75rem !important}.mt-sm-3{margin-top:0.75rem !important}.mr-sm-3{margin-right:0.75rem !important}.mb-sm-3{margin-bottom:0.75rem !important}.ml-sm-3{margin-left:0.75rem !important}.mx-sm-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-sm-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-sm-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 31.25rem){.m-sm-4{margin:1rem !important}.mt-sm-4{margin-top:1rem !important}.mr-sm-4{margin-right:1rem !important}.mb-sm-4{margin-bottom:1rem !important}.ml-sm-4{margin-left:1rem !important}.mx-sm-4{margin-right:1rem !important;margin-left:1rem !important}.my-sm-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-sm-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 31.25rem){.m-sm-5{margin:1.5rem !important}.mt-sm-5{margin-top:1.5rem !important}.mr-sm-5{margin-right:1.5rem !important}.mb-sm-5{margin-bottom:1.5rem !important}.ml-sm-5{margin-left:1.5rem !important}.mx-sm-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-sm-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-sm-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 31.25rem){.m-sm-6{margin:2rem !important}.mt-sm-6{margin-top:2rem !important}.mr-sm-6{margin-right:2rem !important}.mb-sm-6{margin-bottom:2rem !important}.ml-sm-6{margin-left:2rem !important}.mx-sm-6{margin-right:2rem !important;margin-left:2rem !important}.my-sm-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-sm-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 31.25rem){.m-sm-7{margin:2.5rem !important}.mt-sm-7{margin-top:2.5rem !important}.mr-sm-7{margin-right:2.5rem !important}.mb-sm-7{margin-bottom:2.5rem !important}.ml-sm-7{margin-left:2.5rem !important}.mx-sm-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-sm-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-sm-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 31.25rem){.m-sm-8{margin:3rem !important}.mt-sm-8{margin-top:3rem !important}.mr-sm-8{margin-right:3rem !important}.mb-sm-8{margin-bottom:3rem !important}.ml-sm-8{margin-left:3rem !important}.mx-sm-8{margin-right:3rem !important;margin-left:3rem !important}.my-sm-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-sm-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 31.25rem){.m-sm-9{margin:3.5rem !important}.mt-sm-9{margin-top:3.5rem !important}.mr-sm-9{margin-right:3.5rem !important}.mb-sm-9{margin-bottom:3.5rem !important}.ml-sm-9{margin-left:3.5rem !important}.mx-sm-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-sm-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-sm-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 31.25rem){.m-sm-10{margin:4rem !important}.mt-sm-10{margin-top:4rem !important}.mr-sm-10{margin-right:4rem !important}.mb-sm-10{margin-bottom:4rem !important}.ml-sm-10{margin-left:4rem !important}.mx-sm-10{margin-right:4rem !important;margin-left:4rem !important}.my-sm-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-sm-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 50rem){.m-md-0{margin:0 !important}.mt-md-0{margin-top:0 !important}.mr-md-0{margin-right:0 !important}.mb-md-0{margin-bottom:0 !important}.ml-md-0{margin-left:0 !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-md-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 50rem){.m-md-1{margin:0.25rem !important}.mt-md-1{margin-top:0.25rem !important}.mr-md-1{margin-right:0.25rem !important}.mb-md-1{margin-bottom:0.25rem !important}.ml-md-1{margin-left:0.25rem !important}.mx-md-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-md-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-md-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 50rem){.m-md-2{margin:0.5rem !important}.mt-md-2{margin-top:0.5rem !important}.mr-md-2{margin-right:0.5rem !important}.mb-md-2{margin-bottom:0.5rem !important}.ml-md-2{margin-left:0.5rem !important}.mx-md-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-md-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-md-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 50rem){.m-md-3{margin:0.75rem !important}.mt-md-3{margin-top:0.75rem !important}.mr-md-3{margin-right:0.75rem !important}.mb-md-3{margin-bottom:0.75rem !important}.ml-md-3{margin-left:0.75rem !important}.mx-md-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-md-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-md-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 50rem){.m-md-4{margin:1rem !important}.mt-md-4{margin-top:1rem !important}.mr-md-4{margin-right:1rem !important}.mb-md-4{margin-bottom:1rem !important}.ml-md-4{margin-left:1rem !important}.mx-md-4{margin-right:1rem !important;margin-left:1rem !important}.my-md-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-md-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 50rem){.m-md-5{margin:1.5rem !important}.mt-md-5{margin-top:1.5rem !important}.mr-md-5{margin-right:1.5rem !important}.mb-md-5{margin-bottom:1.5rem !important}.ml-md-5{margin-left:1.5rem !important}.mx-md-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-md-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-md-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 50rem){.m-md-6{margin:2rem !important}.mt-md-6{margin-top:2rem !important}.mr-md-6{margin-right:2rem !important}.mb-md-6{margin-bottom:2rem !important}.ml-md-6{margin-left:2rem !important}.mx-md-6{margin-right:2rem !important;margin-left:2rem !important}.my-md-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-md-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 50rem){.m-md-7{margin:2.5rem !important}.mt-md-7{margin-top:2.5rem !important}.mr-md-7{margin-right:2.5rem !important}.mb-md-7{margin-bottom:2.5rem !important}.ml-md-7{margin-left:2.5rem !important}.mx-md-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-md-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-md-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 50rem){.m-md-8{margin:3rem !important}.mt-md-8{margin-top:3rem !important}.mr-md-8{margin-right:3rem !important}.mb-md-8{margin-bottom:3rem !important}.ml-md-8{margin-left:3rem !important}.mx-md-8{margin-right:3rem !important;margin-left:3rem !important}.my-md-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-md-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 50rem){.m-md-9{margin:3.5rem !important}.mt-md-9{margin-top:3.5rem !important}.mr-md-9{margin-right:3.5rem !important}.mb-md-9{margin-bottom:3.5rem !important}.ml-md-9{margin-left:3.5rem !important}.mx-md-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-md-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-md-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 50rem){.m-md-10{margin:4rem !important}.mt-md-10{margin-top:4rem !important}.mr-md-10{margin-right:4rem !important}.mb-md-10{margin-bottom:4rem !important}.ml-md-10{margin-left:4rem !important}.mx-md-10{margin-right:4rem !important;margin-left:4rem !important}.my-md-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-md-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 66.5rem){.m-lg-0{margin:0 !important}.mt-lg-0{margin-top:0 !important}.mr-lg-0{margin-right:0 !important}.mb-lg-0{margin-bottom:0 !important}.ml-lg-0{margin-left:0 !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-lg-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 66.5rem){.m-lg-1{margin:0.25rem !important}.mt-lg-1{margin-top:0.25rem !important}.mr-lg-1{margin-right:0.25rem !important}.mb-lg-1{margin-bottom:0.25rem !important}.ml-lg-1{margin-left:0.25rem !important}.mx-lg-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-lg-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-lg-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 66.5rem){.m-lg-2{margin:0.5rem !important}.mt-lg-2{margin-top:0.5rem !important}.mr-lg-2{margin-right:0.5rem !important}.mb-lg-2{margin-bottom:0.5rem !important}.ml-lg-2{margin-left:0.5rem !important}.mx-lg-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-lg-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-lg-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 66.5rem){.m-lg-3{margin:0.75rem !important}.mt-lg-3{margin-top:0.75rem !important}.mr-lg-3{margin-right:0.75rem !important}.mb-lg-3{margin-bottom:0.75rem !important}.ml-lg-3{margin-left:0.75rem !important}.mx-lg-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-lg-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-lg-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 66.5rem){.m-lg-4{margin:1rem !important}.mt-lg-4{margin-top:1rem !important}.mr-lg-4{margin-right:1rem !important}.mb-lg-4{margin-bottom:1rem !important}.ml-lg-4{margin-left:1rem !important}.mx-lg-4{margin-right:1rem !important;margin-left:1rem !important}.my-lg-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-lg-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 66.5rem){.m-lg-5{margin:1.5rem !important}.mt-lg-5{margin-top:1.5rem !important}.mr-lg-5{margin-right:1.5rem !important}.mb-lg-5{margin-bottom:1.5rem !important}.ml-lg-5{margin-left:1.5rem !important}.mx-lg-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-lg-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-lg-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 66.5rem){.m-lg-6{margin:2rem !important}.mt-lg-6{margin-top:2rem !important}.mr-lg-6{margin-right:2rem !important}.mb-lg-6{margin-bottom:2rem !important}.ml-lg-6{margin-left:2rem !important}.mx-lg-6{margin-right:2rem !important;margin-left:2rem !important}.my-lg-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-lg-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 66.5rem){.m-lg-7{margin:2.5rem !important}.mt-lg-7{margin-top:2.5rem !important}.mr-lg-7{margin-right:2.5rem !important}.mb-lg-7{margin-bottom:2.5rem !important}.ml-lg-7{margin-left:2.5rem !important}.mx-lg-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-lg-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-lg-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 66.5rem){.m-lg-8{margin:3rem !important}.mt-lg-8{margin-top:3rem !important}.mr-lg-8{margin-right:3rem !important}.mb-lg-8{margin-bottom:3rem !important}.ml-lg-8{margin-left:3rem !important}.mx-lg-8{margin-right:3rem !important;margin-left:3rem !important}.my-lg-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-lg-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 66.5rem){.m-lg-9{margin:3.5rem !important}.mt-lg-9{margin-top:3.5rem !important}.mr-lg-9{margin-right:3.5rem !important}.mb-lg-9{margin-bottom:3.5rem !important}.ml-lg-9{margin-left:3.5rem !important}.mx-lg-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-lg-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-lg-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 66.5rem){.m-lg-10{margin:4rem !important}.mt-lg-10{margin-top:4rem !important}.mr-lg-10{margin-right:4rem !important}.mb-lg-10{margin-bottom:4rem !important}.ml-lg-10{margin-left:4rem !important}.mx-lg-10{margin-right:4rem !important;margin-left:4rem !important}.my-lg-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-lg-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 87.5rem){.m-xl-0{margin:0 !important}.mt-xl-0{margin-top:0 !important}.mr-xl-0{margin-right:0 !important}.mb-xl-0{margin-bottom:0 !important}.ml-xl-0{margin-left:0 !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-xl-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 87.5rem){.m-xl-1{margin:0.25rem !important}.mt-xl-1{margin-top:0.25rem !important}.mr-xl-1{margin-right:0.25rem !important}.mb-xl-1{margin-bottom:0.25rem !important}.ml-xl-1{margin-left:0.25rem !important}.mx-xl-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-xl-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-xl-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 87.5rem){.m-xl-2{margin:0.5rem !important}.mt-xl-2{margin-top:0.5rem !important}.mr-xl-2{margin-right:0.5rem !important}.mb-xl-2{margin-bottom:0.5rem !important}.ml-xl-2{margin-left:0.5rem !important}.mx-xl-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-xl-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-xl-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 87.5rem){.m-xl-3{margin:0.75rem !important}.mt-xl-3{margin-top:0.75rem !important}.mr-xl-3{margin-right:0.75rem !important}.mb-xl-3{margin-bottom:0.75rem !important}.ml-xl-3{margin-left:0.75rem !important}.mx-xl-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-xl-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-xl-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 87.5rem){.m-xl-4{margin:1rem !important}.mt-xl-4{margin-top:1rem !important}.mr-xl-4{margin-right:1rem !important}.mb-xl-4{margin-bottom:1rem !important}.ml-xl-4{margin-left:1rem !important}.mx-xl-4{margin-right:1rem !important;margin-left:1rem !important}.my-xl-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-xl-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 87.5rem){.m-xl-5{margin:1.5rem !important}.mt-xl-5{margin-top:1.5rem !important}.mr-xl-5{margin-right:1.5rem !important}.mb-xl-5{margin-bottom:1.5rem !important}.ml-xl-5{margin-left:1.5rem !important}.mx-xl-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-xl-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-xl-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 87.5rem){.m-xl-6{margin:2rem !important}.mt-xl-6{margin-top:2rem !important}.mr-xl-6{margin-right:2rem !important}.mb-xl-6{margin-bottom:2rem !important}.ml-xl-6{margin-left:2rem !important}.mx-xl-6{margin-right:2rem !important;margin-left:2rem !important}.my-xl-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-xl-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 87.5rem){.m-xl-7{margin:2.5rem !important}.mt-xl-7{margin-top:2.5rem !important}.mr-xl-7{margin-right:2.5rem !important}.mb-xl-7{margin-bottom:2.5rem !important}.ml-xl-7{margin-left:2.5rem !important}.mx-xl-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-xl-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-xl-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 87.5rem){.m-xl-8{margin:3rem !important}.mt-xl-8{margin-top:3rem !important}.mr-xl-8{margin-right:3rem !important}.mb-xl-8{margin-bottom:3rem !important}.ml-xl-8{margin-left:3rem !important}.mx-xl-8{margin-right:3rem !important;margin-left:3rem !important}.my-xl-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-xl-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 87.5rem){.m-xl-9{margin:3.5rem !important}.mt-xl-9{margin-top:3.5rem !important}.mr-xl-9{margin-right:3.5rem !important}.mb-xl-9{margin-bottom:3.5rem !important}.ml-xl-9{margin-left:3.5rem !important}.mx-xl-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-xl-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-xl-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 87.5rem){.m-xl-10{margin:4rem !important}.mt-xl-10{margin-top:4rem !important}.mr-xl-10{margin-right:4rem !important}.mb-xl-10{margin-bottom:4rem !important}.ml-xl-10{margin-left:4rem !important}.mx-xl-10{margin-right:4rem !important;margin-left:4rem !important}.my-xl-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-xl-10{margin-right:-4rem !important;margin-left:-4rem !important}}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-right:0 !important;padding-left:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:0.25rem !important}.pt-1{padding-top:0.25rem !important}.pr-1{padding-right:0.25rem !important}.pb-1{padding-bottom:0.25rem !important}.pl-1{padding-left:0.25rem !important}.px-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-2{padding:0.5rem !important}.pt-2{padding-top:0.5rem !important}.pr-2{padding-right:0.5rem !important}.pb-2{padding-bottom:0.5rem !important}.pl-2{padding-left:0.5rem !important}.px-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-3{padding:0.75rem !important}.pt-3{padding-top:0.75rem !important}.pr-3{padding-right:0.75rem !important}.pb-3{padding-bottom:0.75rem !important}.pl-3{padding-left:0.75rem !important}.px-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-4{padding:1rem !important}.pt-4{padding-top:1rem !important}.pr-4{padding-right:1rem !important}.pb-4{padding-bottom:1rem !important}.pl-4{padding-left:1rem !important}.px-4{padding-right:1rem !important;padding-left:1rem !important}.py-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-5{padding:1.5rem !important}.pt-5{padding-top:1.5rem !important}.pr-5{padding-right:1.5rem !important}.pb-5{padding-bottom:1.5rem !important}.pl-5{padding-left:1.5rem !important}.px-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-6{padding:2rem !important}.pt-6{padding-top:2rem !important}.pr-6{padding-right:2rem !important}.pb-6{padding-bottom:2rem !important}.pl-6{padding-left:2rem !important}.px-6{padding-right:2rem !important;padding-left:2rem !important}.py-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-7{padding:2.5rem !important}.pt-7{padding-top:2.5rem !important}.pr-7{padding-right:2.5rem !important}.pb-7{padding-bottom:2.5rem !important}.pl-7{padding-left:2.5rem !important}.px-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-8{padding:3rem !important}.pt-8{padding-top:3rem !important}.pr-8{padding-right:3rem !important}.pb-8{padding-bottom:3rem !important}.pl-8{padding-left:3rem !important}.px-8{padding-right:3rem !important;padding-left:3rem !important}.py-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-9{padding:3.5rem !important}.pt-9{padding-top:3.5rem !important}.pr-9{padding-right:3.5rem !important}.pb-9{padding-bottom:3.5rem !important}.pl-9{padding-left:3.5rem !important}.px-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-10{padding:4rem !important}.pt-10{padding-top:4rem !important}.pr-10{padding-right:4rem !important}.pb-10{padding-bottom:4rem !important}.pl-10{padding-left:4rem !important}.px-10{padding-right:4rem !important;padding-left:4rem !important}.py-10{padding-top:4rem !important;padding-bottom:4rem !important}@media(min-width: 20rem){.p-xs-0{padding:0 !important}.pt-xs-0{padding-top:0 !important}.pr-xs-0{padding-right:0 !important}.pb-xs-0{padding-bottom:0 !important}.pl-xs-0{padding-left:0 !important}.px-xs-0{padding-right:0 !important;padding-left:0 !important}.py-xs-0{padding-top:0 !important;padding-bottom:0 !important}.p-xs-1{padding:0.25rem !important}.pt-xs-1{padding-top:0.25rem !important}.pr-xs-1{padding-right:0.25rem !important}.pb-xs-1{padding-bottom:0.25rem !important}.pl-xs-1{padding-left:0.25rem !important}.px-xs-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-xs-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-xs-2{padding:0.5rem !important}.pt-xs-2{padding-top:0.5rem !important}.pr-xs-2{padding-right:0.5rem !important}.pb-xs-2{padding-bottom:0.5rem !important}.pl-xs-2{padding-left:0.5rem !important}.px-xs-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-xs-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-xs-3{padding:0.75rem !important}.pt-xs-3{padding-top:0.75rem !important}.pr-xs-3{padding-right:0.75rem !important}.pb-xs-3{padding-bottom:0.75rem !important}.pl-xs-3{padding-left:0.75rem !important}.px-xs-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-xs-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-xs-4{padding:1rem !important}.pt-xs-4{padding-top:1rem !important}.pr-xs-4{padding-right:1rem !important}.pb-xs-4{padding-bottom:1rem !important}.pl-xs-4{padding-left:1rem !important}.px-xs-4{padding-right:1rem !important;padding-left:1rem !important}.py-xs-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-xs-5{padding:1.5rem !important}.pt-xs-5{padding-top:1.5rem !important}.pr-xs-5{padding-right:1.5rem !important}.pb-xs-5{padding-bottom:1.5rem !important}.pl-xs-5{padding-left:1.5rem !important}.px-xs-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-xs-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-xs-6{padding:2rem !important}.pt-xs-6{padding-top:2rem !important}.pr-xs-6{padding-right:2rem !important}.pb-xs-6{padding-bottom:2rem !important}.pl-xs-6{padding-left:2rem !important}.px-xs-6{padding-right:2rem !important;padding-left:2rem !important}.py-xs-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-xs-7{padding:2.5rem !important}.pt-xs-7{padding-top:2.5rem !important}.pr-xs-7{padding-right:2.5rem !important}.pb-xs-7{padding-bottom:2.5rem !important}.pl-xs-7{padding-left:2.5rem !important}.px-xs-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-xs-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-xs-8{padding:3rem !important}.pt-xs-8{padding-top:3rem !important}.pr-xs-8{padding-right:3rem !important}.pb-xs-8{padding-bottom:3rem !important}.pl-xs-8{padding-left:3rem !important}.px-xs-8{padding-right:3rem !important;padding-left:3rem !important}.py-xs-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-xs-9{padding:3.5rem !important}.pt-xs-9{padding-top:3.5rem !important}.pr-xs-9{padding-right:3.5rem !important}.pb-xs-9{padding-bottom:3.5rem !important}.pl-xs-9{padding-left:3.5rem !important}.px-xs-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-xs-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-xs-10{padding:4rem !important}.pt-xs-10{padding-top:4rem !important}.pr-xs-10{padding-right:4rem !important}.pb-xs-10{padding-bottom:4rem !important}.pl-xs-10{padding-left:4rem !important}.px-xs-10{padding-right:4rem !important;padding-left:4rem !important}.py-xs-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 31.25rem){.p-sm-0{padding:0 !important}.pt-sm-0{padding-top:0 !important}.pr-sm-0{padding-right:0 !important}.pb-sm-0{padding-bottom:0 !important}.pl-sm-0{padding-left:0 !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.p-sm-1{padding:0.25rem !important}.pt-sm-1{padding-top:0.25rem !important}.pr-sm-1{padding-right:0.25rem !important}.pb-sm-1{padding-bottom:0.25rem !important}.pl-sm-1{padding-left:0.25rem !important}.px-sm-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-sm-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-sm-2{padding:0.5rem !important}.pt-sm-2{padding-top:0.5rem !important}.pr-sm-2{padding-right:0.5rem !important}.pb-sm-2{padding-bottom:0.5rem !important}.pl-sm-2{padding-left:0.5rem !important}.px-sm-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-sm-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-sm-3{padding:0.75rem !important}.pt-sm-3{padding-top:0.75rem !important}.pr-sm-3{padding-right:0.75rem !important}.pb-sm-3{padding-bottom:0.75rem !important}.pl-sm-3{padding-left:0.75rem !important}.px-sm-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-sm-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-sm-4{padding:1rem !important}.pt-sm-4{padding-top:1rem !important}.pr-sm-4{padding-right:1rem !important}.pb-sm-4{padding-bottom:1rem !important}.pl-sm-4{padding-left:1rem !important}.px-sm-4{padding-right:1rem !important;padding-left:1rem !important}.py-sm-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-sm-5{padding:1.5rem !important}.pt-sm-5{padding-top:1.5rem !important}.pr-sm-5{padding-right:1.5rem !important}.pb-sm-5{padding-bottom:1.5rem !important}.pl-sm-5{padding-left:1.5rem !important}.px-sm-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-sm-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-sm-6{padding:2rem !important}.pt-sm-6{padding-top:2rem !important}.pr-sm-6{padding-right:2rem !important}.pb-sm-6{padding-bottom:2rem !important}.pl-sm-6{padding-left:2rem !important}.px-sm-6{padding-right:2rem !important;padding-left:2rem !important}.py-sm-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-sm-7{padding:2.5rem !important}.pt-sm-7{padding-top:2.5rem !important}.pr-sm-7{padding-right:2.5rem !important}.pb-sm-7{padding-bottom:2.5rem !important}.pl-sm-7{padding-left:2.5rem !important}.px-sm-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-sm-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-sm-8{padding:3rem !important}.pt-sm-8{padding-top:3rem !important}.pr-sm-8{padding-right:3rem !important}.pb-sm-8{padding-bottom:3rem !important}.pl-sm-8{padding-left:3rem !important}.px-sm-8{padding-right:3rem !important;padding-left:3rem !important}.py-sm-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-sm-9{padding:3.5rem !important}.pt-sm-9{padding-top:3.5rem !important}.pr-sm-9{padding-right:3.5rem !important}.pb-sm-9{padding-bottom:3.5rem !important}.pl-sm-9{padding-left:3.5rem !important}.px-sm-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-sm-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-sm-10{padding:4rem !important}.pt-sm-10{padding-top:4rem !important}.pr-sm-10{padding-right:4rem !important}.pb-sm-10{padding-bottom:4rem !important}.pl-sm-10{padding-left:4rem !important}.px-sm-10{padding-right:4rem !important;padding-left:4rem !important}.py-sm-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 50rem){.p-md-0{padding:0 !important}.pt-md-0{padding-top:0 !important}.pr-md-0{padding-right:0 !important}.pb-md-0{padding-bottom:0 !important}.pl-md-0{padding-left:0 !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.p-md-1{padding:0.25rem !important}.pt-md-1{padding-top:0.25rem !important}.pr-md-1{padding-right:0.25rem !important}.pb-md-1{padding-bottom:0.25rem !important}.pl-md-1{padding-left:0.25rem !important}.px-md-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-md-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-md-2{padding:0.5rem !important}.pt-md-2{padding-top:0.5rem !important}.pr-md-2{padding-right:0.5rem !important}.pb-md-2{padding-bottom:0.5rem !important}.pl-md-2{padding-left:0.5rem !important}.px-md-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-md-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-md-3{padding:0.75rem !important}.pt-md-3{padding-top:0.75rem !important}.pr-md-3{padding-right:0.75rem !important}.pb-md-3{padding-bottom:0.75rem !important}.pl-md-3{padding-left:0.75rem !important}.px-md-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-md-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-md-4{padding:1rem !important}.pt-md-4{padding-top:1rem !important}.pr-md-4{padding-right:1rem !important}.pb-md-4{padding-bottom:1rem !important}.pl-md-4{padding-left:1rem !important}.px-md-4{padding-right:1rem !important;padding-left:1rem !important}.py-md-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-md-5{padding:1.5rem !important}.pt-md-5{padding-top:1.5rem !important}.pr-md-5{padding-right:1.5rem !important}.pb-md-5{padding-bottom:1.5rem !important}.pl-md-5{padding-left:1.5rem !important}.px-md-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-md-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-md-6{padding:2rem !important}.pt-md-6{padding-top:2rem !important}.pr-md-6{padding-right:2rem !important}.pb-md-6{padding-bottom:2rem !important}.pl-md-6{padding-left:2rem !important}.px-md-6{padding-right:2rem !important;padding-left:2rem !important}.py-md-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-md-7{padding:2.5rem !important}.pt-md-7{padding-top:2.5rem !important}.pr-md-7{padding-right:2.5rem !important}.pb-md-7{padding-bottom:2.5rem !important}.pl-md-7{padding-left:2.5rem !important}.px-md-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-md-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-md-8{padding:3rem !important}.pt-md-8{padding-top:3rem !important}.pr-md-8{padding-right:3rem !important}.pb-md-8{padding-bottom:3rem !important}.pl-md-8{padding-left:3rem !important}.px-md-8{padding-right:3rem !important;padding-left:3rem !important}.py-md-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-md-9{padding:3.5rem !important}.pt-md-9{padding-top:3.5rem !important}.pr-md-9{padding-right:3.5rem !important}.pb-md-9{padding-bottom:3.5rem !important}.pl-md-9{padding-left:3.5rem !important}.px-md-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-md-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-md-10{padding:4rem !important}.pt-md-10{padding-top:4rem !important}.pr-md-10{padding-right:4rem !important}.pb-md-10{padding-bottom:4rem !important}.pl-md-10{padding-left:4rem !important}.px-md-10{padding-right:4rem !important;padding-left:4rem !important}.py-md-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 66.5rem){.p-lg-0{padding:0 !important}.pt-lg-0{padding-top:0 !important}.pr-lg-0{padding-right:0 !important}.pb-lg-0{padding-bottom:0 !important}.pl-lg-0{padding-left:0 !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.p-lg-1{padding:0.25rem !important}.pt-lg-1{padding-top:0.25rem !important}.pr-lg-1{padding-right:0.25rem !important}.pb-lg-1{padding-bottom:0.25rem !important}.pl-lg-1{padding-left:0.25rem !important}.px-lg-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-lg-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-lg-2{padding:0.5rem !important}.pt-lg-2{padding-top:0.5rem !important}.pr-lg-2{padding-right:0.5rem !important}.pb-lg-2{padding-bottom:0.5rem !important}.pl-lg-2{padding-left:0.5rem !important}.px-lg-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-lg-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-lg-3{padding:0.75rem !important}.pt-lg-3{padding-top:0.75rem !important}.pr-lg-3{padding-right:0.75rem !important}.pb-lg-3{padding-bottom:0.75rem !important}.pl-lg-3{padding-left:0.75rem !important}.px-lg-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-lg-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-lg-4{padding:1rem !important}.pt-lg-4{padding-top:1rem !important}.pr-lg-4{padding-right:1rem !important}.pb-lg-4{padding-bottom:1rem !important}.pl-lg-4{padding-left:1rem !important}.px-lg-4{padding-right:1rem !important;padding-left:1rem !important}.py-lg-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-lg-5{padding:1.5rem !important}.pt-lg-5{padding-top:1.5rem !important}.pr-lg-5{padding-right:1.5rem !important}.pb-lg-5{padding-bottom:1.5rem !important}.pl-lg-5{padding-left:1.5rem !important}.px-lg-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-lg-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-lg-6{padding:2rem !important}.pt-lg-6{padding-top:2rem !important}.pr-lg-6{padding-right:2rem !important}.pb-lg-6{padding-bottom:2rem !important}.pl-lg-6{padding-left:2rem !important}.px-lg-6{padding-right:2rem !important;padding-left:2rem !important}.py-lg-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-lg-7{padding:2.5rem !important}.pt-lg-7{padding-top:2.5rem !important}.pr-lg-7{padding-right:2.5rem !important}.pb-lg-7{padding-bottom:2.5rem !important}.pl-lg-7{padding-left:2.5rem !important}.px-lg-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-lg-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-lg-8{padding:3rem !important}.pt-lg-8{padding-top:3rem !important}.pr-lg-8{padding-right:3rem !important}.pb-lg-8{padding-bottom:3rem !important}.pl-lg-8{padding-left:3rem !important}.px-lg-8{padding-right:3rem !important;padding-left:3rem !important}.py-lg-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-lg-9{padding:3.5rem !important}.pt-lg-9{padding-top:3.5rem !important}.pr-lg-9{padding-right:3.5rem !important}.pb-lg-9{padding-bottom:3.5rem !important}.pl-lg-9{padding-left:3.5rem !important}.px-lg-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-lg-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-lg-10{padding:4rem !important}.pt-lg-10{padding-top:4rem !important}.pr-lg-10{padding-right:4rem !important}.pb-lg-10{padding-bottom:4rem !important}.pl-lg-10{padding-left:4rem !important}.px-lg-10{padding-right:4rem !important;padding-left:4rem !important}.py-lg-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 87.5rem){.p-xl-0{padding:0 !important}.pt-xl-0{padding-top:0 !important}.pr-xl-0{padding-right:0 !important}.pb-xl-0{padding-bottom:0 !important}.pl-xl-0{padding-left:0 !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.p-xl-1{padding:0.25rem !important}.pt-xl-1{padding-top:0.25rem !important}.pr-xl-1{padding-right:0.25rem !important}.pb-xl-1{padding-bottom:0.25rem !important}.pl-xl-1{padding-left:0.25rem !important}.px-xl-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-xl-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-xl-2{padding:0.5rem !important}.pt-xl-2{padding-top:0.5rem !important}.pr-xl-2{padding-right:0.5rem !important}.pb-xl-2{padding-bottom:0.5rem !important}.pl-xl-2{padding-left:0.5rem !important}.px-xl-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-xl-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-xl-3{padding:0.75rem !important}.pt-xl-3{padding-top:0.75rem !important}.pr-xl-3{padding-right:0.75rem !important}.pb-xl-3{padding-bottom:0.75rem !important}.pl-xl-3{padding-left:0.75rem !important}.px-xl-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-xl-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-xl-4{padding:1rem !important}.pt-xl-4{padding-top:1rem !important}.pr-xl-4{padding-right:1rem !important}.pb-xl-4{padding-bottom:1rem !important}.pl-xl-4{padding-left:1rem !important}.px-xl-4{padding-right:1rem !important;padding-left:1rem !important}.py-xl-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-xl-5{padding:1.5rem !important}.pt-xl-5{padding-top:1.5rem !important}.pr-xl-5{padding-right:1.5rem !important}.pb-xl-5{padding-bottom:1.5rem !important}.pl-xl-5{padding-left:1.5rem !important}.px-xl-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-xl-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-xl-6{padding:2rem !important}.pt-xl-6{padding-top:2rem !important}.pr-xl-6{padding-right:2rem !important}.pb-xl-6{padding-bottom:2rem !important}.pl-xl-6{padding-left:2rem !important}.px-xl-6{padding-right:2rem !important;padding-left:2rem !important}.py-xl-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-xl-7{padding:2.5rem !important}.pt-xl-7{padding-top:2.5rem !important}.pr-xl-7{padding-right:2.5rem !important}.pb-xl-7{padding-bottom:2.5rem !important}.pl-xl-7{padding-left:2.5rem !important}.px-xl-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-xl-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-xl-8{padding:3rem !important}.pt-xl-8{padding-top:3rem !important}.pr-xl-8{padding-right:3rem !important}.pb-xl-8{padding-bottom:3rem !important}.pl-xl-8{padding-left:3rem !important}.px-xl-8{padding-right:3rem !important;padding-left:3rem !important}.py-xl-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-xl-9{padding:3.5rem !important}.pt-xl-9{padding-top:3.5rem !important}.pr-xl-9{padding-right:3.5rem !important}.pb-xl-9{padding-bottom:3.5rem !important}.pl-xl-9{padding-left:3.5rem !important}.px-xl-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-xl-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-xl-10{padding:4rem !important}.pt-xl-10{padding-top:4rem !important}.pr-xl-10{padding-right:4rem !important}.pb-xl-10{padding-bottom:4rem !important}.pl-xl-10{padding-left:4rem !important}.px-xl-10{padding-right:4rem !important;padding-left:4rem !important}.py-xl-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media print{.site-footer,.site-button,#edit-this-page,#back-to-top,.site-nav,.main-header{display:none !important}.side-bar{width:100%;height:auto;border-right:0 !important}.site-header{border-bottom:1px solid #44434d}.site-title{font-size:1rem !important;font-weight:700 !important}.text-small{font-size:8pt !important}pre.highlight{border:1px solid #44434d}.main{max-width:none;margin-left:0}}a.skip-to-main{left:-999px;position:absolute;top:auto;width:1px;height:1px;overflow:hidden;z-index:-999}a.skip-to-main:focus,a.skip-to-main:active{color:#2c84fa;background-color:#27262b;left:auto;top:auto;width:30%;height:auto;overflow:auto;margin:10px 35%;padding:5px;border-radius:15px;border:4px solid #264caf;text-align:center;font-size:1.2em;z-index:999}div.opaque{background-color:#27262b}/*# sourceMappingURL=just-the-docs-default.css.map */ \ No newline at end of file diff --git a/jekyll-backup/_site/assets/css/just-the-docs-default.css.map b/jekyll-backup/_site/assets/css/just-the-docs-default.css.map deleted file mode 100644 index e45d37ff..00000000 --- a/jekyll-backup/_site/assets/css/just-the-docs-default.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/vendor/OneLightJekyll/syntax.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/vendor/OneDarkJekyll/syntax.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/vendor/normalize.scss/normalize.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/base.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/color_schemes/dark.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/_variables.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/content.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/navigation.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/labels.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/buttons.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_buttons.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/search.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/tables.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/code.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_colors.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_lists.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_spacing.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/print.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/skiptomain.scss","just-the-docs-default.scss"],"names":[],"mappings":"CAEA,yBAEE,mBACA,cAGF,eACE,mBAGF,gBACE,mBAGF,cACE,cACA,kBAGF,gBACE,WACA,yBAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,kBAGF,eACE,gBAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,gBAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,iCACE,cAGF,8BACE,cC7QF,yBAEE,mBACA,cAGF,eACE,mBAGF,gBACE,mBAGF,cACE,cACA,kBAGF,gBACE,cACA,yBAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,kBAGF,eACE,gBAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,gBAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cCvQF,4EAUA,KACE,iBACA,sBAUF,KACE,SAOF,KACE,cAQF,GACE,cACA,eAWF,GACE,uBACA,SACA,iBAQF,IACE,sBACA,cAUF,EACE,+BAQF,YACE,mBACA,0BACA,iCAOF,SAEE,mBAQF,cAGE,sBACA,cAOF,MACE,cAQF,QAEE,cACA,cACA,kBACA,wBAGF,IACE,eAGF,IACE,WAUF,IACE,kBAWF,sCAKE,oBACA,eACA,iBACA,SAQF,aAGE,iBAQF,cAGE,oBAOF,gDAIE,kBAOF,wHAIE,kBACA,UAOF,4GAIE,8BAOF,SACE,2BAUF,OACE,sBACA,cACA,cACA,eACA,UACA,mBAOF,SACE,wBAOF,SACE,cAQF,6BAEE,sBACA,UAOF,kFAEE,YAQF,cACE,qBACA,oBAOF,yCACE,gBAQF,6BACE,kBACA,aAUF,QACE,cAOF,QACE,kBAUF,SACE,aAOF,SACE,aC1VF,MACE,aCJa,KDOf,EACE,sBAGF,KACE,uBEmBA,KACE,6BClBA,4BHHJ,KEyBI,2BFnBJ,KACE,YIfiB,gHJgBjB,kBACA,YIbiB,IJcjB,MIiBY,QJhBZ,iBIYY,QJXZ,yBAGF,mFAYE,aAGF,4BAOE,aACA,kBACA,gBACA,YI1CyB,KJ2CzB,MIjBY,QJoBd,EACE,eACA,kBAGF,EACE,MIlBS,QJmBT,qBAGF,eACE,0BACA,sBInCY,QJoCZ,0BAEA,qBACE,2CAIJ,KACE,YIvEiB,0CJwEjB,gBACA,YIvEiB,IJ0EnB,WAEE,SAGF,GACE,eAGF,IACE,eACA,YAGF,GACE,WACA,UACA,cACA,iBInEY,QJoEZ,SAIF,WACE,cAGA,qBACA,sBACA,kBACA,8BK7GF,UACE,UACA,aACA,eACA,iBD4BY,QDpBV,yBEZJ,UAOI,wBACA,eACA,MDwFW,QCvFX,YACA,+BACA,iDAZJ,UAgBI,yCACA,UD+EQ,SDpFR,yBEQF,gBAEI,YD2ES,SDrFX,2BEQF,gBAQI,uDAOF,6BACE,aACA,iBDLQ,QDpBV,yBEuBA,6BAKI,aACA,iBDTM,SCYR,sCACE,cFjCJ,yBEgCE,sCAII,cAOV,MACE,YF5CE,yBE2CJ,MAII,kBACA,UDyCY,OCrChB,mBACE,YDaK,KCZL,eDYK,KDvDL,cCuDK,KDtDL,aCsDK,KDlEH,yBEoDJ,mBFrCI,cCqDG,KDpDH,aCoDG,MDpEH,yBEoDJ,mBAOI,YDSG,KCRH,eDQG,MCJP,aACE,UACA,gCFlEE,yBEgEJ,aAKI,aACA,8BACA,ODmBY,SCfhB,oCAGE,WF9EE,2BE2EJ,oCAMI,MDGQ,SCCZ,UACE,aAEA,mBACE,cFzFA,yBEqFJ,UAQI,cACA,YDxBG,KCyBH,eD7BG,KC8BH,gBACA,eAIJ,aACE,aACA,WDbc,QCcd,mBFxGE,yBEqGJ,aAMI,ODjBY,QCkBZ,WDlBY,QCmBZ,iCAIJ,YACE,YACA,aACA,YACA,mBACA,YDrDK,OCsDL,eDtDK,OCuDL,MDnGY,QDVZ,cCuDK,KDtDL,aCsDK,KDlEH,yBEiHJ,YFlGI,cCqDG,KDpDH,aCoDG,MF/BL,YACE,8BCtCA,4BEiHJ,YHvEI,4BACA,YEhDuB,MDKvB,yBEiHJ,YAcI,YD/DG,MCgEH,eDhEG,OCqEL,WACE,WACA,YACA,gDACA,4BACA,gCACA,wBAIJ,aACE,aACA,YACA,QDhFK,KCiFL,mBFnJE,yBEuJF,0BACE,cAIJ,kBACE,qNAQF,mBACE,2JASF,KACE,kBACA,eDzGM,KC0GN,kBFlLE,yBE+KJ,KAMI,gBACA,kBAMJ,aACE,kBACA,SACA,OACA,YD9HK,KC+HL,eD/HK,KCgIL,MDlLY,QDLZ,cCuDK,KDtDL,aCsDK,KDlEH,yBE4LJ,aF7KI,cCqDG,KDpDH,aCoDG,MFvEL,aACE,8BCEA,4BE4LJ,aH1LI,6BCFA,yBE4LJ,aAaI,gBACA,kBAIJ,MACE,MD5IK,OC6IL,OD7IK,OC8IL,MDpLS,QEtCX,cACE,YFEoB,qJEOlB,gBAGF,gBACE,gBACA,uBAGF,kCAEE,mBAIA,4BA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GJ,qBV3EI,2BCtBA,yBDOF,qBACE,6BCRA,kDSiGJ,qBVrFI,8BUgGJ,0BACE,UACA,SAGF,eACE,cACA,sBAEA,2CAEE,iBX1Ha,sCW8HjB,qBACE,cACA,YR7DK,MQ8DL,eR9DK,MDhEH,4BS2HJ,qBAMI,qBACA,UACA,cRnEG,MQoEH,oBAIJ,mBACE,aACA,mBACA,qBAEA,4CACE,WVvIF,4CACE,4BCRA,4BS6IF,4CVjIE,8BCZA,yBDHF,4CACE,+BCEA,kDS6IF,4CV3IE,6BUoJF,uCACE,MRrFG,KQsFH,ORtFG,KQuFH,aRzFG,MQ0FH,MR7HO,QQ8HP,cAGF,4CACE,cAIJ,uBACE,mBACA,qBAGF,uBACE,cACA,mBACA,gBACA,MR5JY,QQ6JZ,uBACA,mBV3LA,uBACE,8BCYA,4BSwKJ,uBVhLI,8BU0LJ,wBACE,cACA,YRpHK,MQqHL,eRrHK,MQsHL,aRpHK,KQqHL,YRvHK,MQwHL,MRxKY,QQyKZ,qBACA,YR9GO,UQ+GP,kBRzKY,QFrBZ,wBACE,8BCEA,4BSkLJ,wBVhLI,6BCFA,4BSkLJ,wBAaI,qBACA,UACA,aRjIG,MQkIH,cACA,oBAIJ,8CACE,WRzIK,OQ4IP,yBACE,iBAGF,kBACE,qBVzMA,kBACE,4BCRA,4BS+MJ,kBVnMI,8BUwMJ,eACE,eACA,MRpJK,KQqJL,ORrJK,KQsJL,aACA,MRlJK,OQmJL,ORnJK,OQoJL,iBRxMY,QQyMZ,qCACA,sBACA,WACE,qDAEF,mBACA,uBAGF,gBACE,eACA,MACA,OACA,UACA,QACA,SACA,gCACA,UACA,WACE,kDAMF,uBACE,eACA,MACA,OACA,WACA,YACA,UAGF,kCACE,ORvLI,KQwLJ,gBThQA,yBS8PF,kCAKI,MRxKiB,QQyKjB,WACE,sDAKN,6BACE,iBRxPU,QDnBV,yBS0QF,6BAII,qBT9QF,yBSkRF,6BAEI,oBAIJ,+BACE,cAGF,+BACE,WACA,YACA,UACA,WACE,sCTjSF,yBSuSA,qBACE,eACA,QACA,QAIJ,4BACE,YRvOI,KDxEJ,yBS8SF,4BAII,eC7TN,eACE,cACA,WACA,eACA,cT0EK,OSzEL,gBACA,cTkFc,ISj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E,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBAQR,YACE,sBAGF,aACE,uBAGF,oBACE,sCAGF,kBACE,oCAGF,sBACE,yCAGF,qBACE,wCAKF,kBACE,mCAGF,gBACE,iCAGF,gBACE,iCAGF,qBACE,sCAGF,kBACE,mCAGF,aACE,8BdlGA,MACE,8BCYA,4BcZJ,MfII,8BAKF,MACE,8BCEA,4BcRJ,MfUI,6BAKF,MACE,4BCRA,4BcJJ,MfgBI,8BAKF,MACE,6BClBA,kCDsBA,2BAKF,MACE,0BC5BA,4BcIJ,Mf4BI,+BAKF,MACE,8BCtCA,4BcQJ,MfkCI,4BACA,YEhDuB,MFqDzB,MACE,4BACA,YEvDuB,KDKvB,4BcYJ,Mf0CI,2BAKF,MACE,0BACA,YElEuB,KDKvB,4BcgBJ,MfiDI,8BAKF,MACE,6BACA,YE7EuB,KDKvB,4BcoBJ,MfwDI,+BAKF,OACE,8BACA,YExFuB,KDKvB,4BcwBJ,Of+DI,2Be3DJ,QACE,2BAGF,QACE,2BAGF,QACE,2BAGF,QACE,2BAGF,MACE,yBAGF,YACE,YbxDiB,Ia2DnB,UACE,Yb1DyB,Ka6D3B,MACE,gCAGF,OACE,+BAGF,MACE,4BAGF,gBACE,oCC/EF,iBACE,qBACA,oBACA,2BAGE,4BACE,wBCLN,SACE,6BACA,4BAQA,KACE,oBAEF,MACE,wBAEF,MACE,0BAEF,MACE,2BAEF,MACE,yBAGF,MACE,0BACA,yBAGF,MACE,wBACA,2BAGF,OACE,2BACA,0BAEF,WACE,6BACA,4BAhCF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAGF,OACE,iCACA,gCAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAGF,OACE,iCACA,gCAEF,WACE,6BACA,4BAhCF,KACE,uBAEF,MACE,2BAEF,MACE,6BAEF,MACE,8BAEF,MACE,4BAGF,MACE,6BACA,4BAGF,MACE,2BACA,8BAGF,OACE,8BACA,6BAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,KACE,uBAEF,MACE,2BAEF,MACE,6BAEF,MACE,8BAEF,MACE,4BAGF,MACE,6BACA,4BAGF,MACE,2BACA,8BAGF,OACE,8BACA,6BAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,KACE,uBAEF,MACE,2BAEF,MACE,6BAEF,MACE,8BAEF,MACE,4BAGF,MACE,6BACA,4BAGF,MACE,2BACA,8BAGF,OACE,8BACA,6BAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,MACE,uBAEF,OACE,2BAEF,OACE,6BAEF,OACE,8BAEF,OACE,4BAGF,OACE,6BACA,4BAGF,OACE,2BACA,8BAGF,QACE,8BACA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CE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,4BgB6CE,SACE,uBAEF,UACE,2BAEF,UACE,6BAEF,UACE,8BAEF,UACE,4BAGF,UACE,6BACA,4BAGF,UACE,2BACA,8BAGF,WACE,8BACA,8BhBzEJ,yBgB6CE,QACE,oBAEF,SACE,wBAEF,SACE,0BAEF,SACE,2BAEF,SACE,yBAGF,SACE,0BACA,yBAGF,SACE,wBACA,2BAGF,UACE,2BACA,2BhBzEJ,yBgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BA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BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,2BgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,2BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,2BgB6CE,SACE,uBAEF,UACE,2BAEF,UACE,6BAEF,UACE,8BAEF,UACE,4BAGF,UACE,6BACA,4BAGF,UACE,2BACA,8BAGF,WACE,8BACA,8BAaN,KACE,qBAEF,MACE,yBAEF,MACE,2BAEF,MACE,4BAEF,MACE,0BAGF,MACE,2BACA,0BAGF,MACE,yBACA,4BAvBF,KACE,2BAEF,MACE,+BAEF,MACE,iCAEF,MACE,kCAEF,MACE,gCAGF,MACE,iCACA,gCAGF,MACE,+BACA,kCAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,2BAEF,MACE,+BAEF,MACE,iCAEF,MACE,kCAEF,MACE,gCAGF,MACE,iCACA,gCAGF,MACE,+BACA,kCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,MACE,wBAEF,OACE,4BAEF,OACE,8BAEF,OACE,+BAEF,OACE,6BAGF,OACE,8BACA,6BAGF,OACE,4BACA,+BhB7GA,yBgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,4BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,yBgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,2BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,2BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gCC3JR,aACE,8EAME,wBAGF,UACE,WACA,YACA,0BAGF,aACE,gCAGF,YACE,0BACA,2BAGF,YACE,yBAGF,cACE,yBAGF,MACE,eACA,eClCJ,eACE,YACA,kBACA,SACA,UACA,WACA,gBACA,aAGF,2CAEE,MjB4BS,QiB3BT,iBjBkBY,QiBjBZ,UACA,SACA,UACA,YACA,cACA,gBACA,YACA,mBACA,yBACA,kBACA,gBACA,YCjBF,WACE,iBlBsBY","sourcesContent":["// Generated with OneLightJekyll applied to Atom's One Light theme\n\n.highlight,\npre.highlight {\n background: #f9f9f9;\n color: #383942;\n}\n\n.highlight pre {\n background: #f9f9f9;\n}\n\n.highlight .hll {\n background: #f9f9f9;\n}\n\n.highlight .c {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .err {\n color: #fff;\n background-color: #e05151;\n}\n\n.highlight .k {\n color: #a625a4;\n}\n\n.highlight .l {\n color: #50a04f;\n}\n\n.highlight .n {\n color: #383942;\n}\n\n.highlight .o {\n color: #383942;\n}\n\n.highlight .p {\n color: #383942;\n}\n\n.highlight .cm {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .cp {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .c1 {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .cs {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .ge {\n font-style: italic;\n}\n\n.highlight .gs {\n font-weight: 700;\n}\n\n.highlight .kc {\n color: #a625a4;\n}\n\n.highlight .kd {\n color: #a625a4;\n}\n\n.highlight .kn {\n color: #a625a4;\n}\n\n.highlight .kp {\n color: #a625a4;\n}\n\n.highlight .kr {\n color: #a625a4;\n}\n\n.highlight .kt {\n color: #a625a4;\n}\n\n.highlight .ld {\n color: #50a04f;\n}\n\n.highlight .m {\n color: #b66a00;\n}\n\n.highlight .s {\n color: #50a04f;\n}\n\n.highlight .na {\n color: #b66a00;\n}\n\n.highlight .nb {\n color: #ca7601;\n}\n\n.highlight .nc {\n color: #ca7601;\n}\n\n.highlight .no {\n color: #ca7601;\n}\n\n.highlight .nd {\n color: #ca7601;\n}\n\n.highlight .ni {\n color: #ca7601;\n}\n\n.highlight .ne {\n color: #ca7601;\n}\n\n.highlight .nf {\n color: #383942;\n}\n\n.highlight .nl {\n color: #ca7601;\n}\n\n.highlight .nn {\n color: #383942;\n}\n\n.highlight .nx {\n color: #383942;\n}\n\n.highlight .py {\n color: #ca7601;\n}\n\n.highlight .nt {\n color: #e35549;\n}\n\n.highlight .nv {\n color: #ca7601;\n}\n\n.highlight .ow {\n font-weight: 700;\n}\n\n.highlight .w {\n color: #f8f8f2;\n}\n\n.highlight .mf {\n color: #b66a00;\n}\n\n.highlight .mh {\n color: #b66a00;\n}\n\n.highlight .mi {\n color: #b66a00;\n}\n\n.highlight .mo {\n color: #b66a00;\n}\n\n.highlight .sb {\n color: #50a04f;\n}\n\n.highlight .sc {\n color: #50a04f;\n}\n\n.highlight .sd {\n color: #50a04f;\n}\n\n.highlight .s2 {\n color: #50a04f;\n}\n\n.highlight .se {\n color: #50a04f;\n}\n\n.highlight .sh {\n color: #50a04f;\n}\n\n.highlight .si {\n color: #50a04f;\n}\n\n.highlight .sx {\n color: #50a04f;\n}\n\n.highlight .sr {\n color: #0083bb;\n}\n\n.highlight .s1 {\n color: #50a04f;\n}\n\n.highlight .ss {\n color: #0083bb;\n}\n\n.highlight .bp {\n color: #ca7601;\n}\n\n.highlight .vc {\n color: #ca7601;\n}\n\n.highlight .vg {\n color: #ca7601;\n}\n\n.highlight .vi {\n color: #e35549;\n}\n\n.highlight .il {\n color: #b66a00;\n}\n\n.highlight .gu {\n color: #75715e;\n}\n\n.highlight .gd {\n color: #e05151;\n}\n\n.highlight .gi {\n color: #43d089;\n}\n\n.highlight .language-json .w + .s2 {\n color: #e35549;\n}\n\n.highlight .language-json .kc {\n color: #0083bb;\n}\n","// Generated with OneDarkJekyll applied to Atom's One Dark Vivid theme\n\n.highlight,\npre.highlight {\n background: #31343f;\n color: #dee2f7;\n}\n\n.highlight pre {\n background: #31343f;\n}\n\n.highlight .hll {\n background: #31343f;\n}\n\n.highlight .c {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .err {\n color: #960050;\n background-color: #1e0010;\n}\n\n.highlight .k {\n color: #e19ef5;\n}\n\n.highlight .l {\n color: #a3eea0;\n}\n\n.highlight .n {\n color: #dee2f7;\n}\n\n.highlight .o {\n color: #dee2f7;\n}\n\n.highlight .p {\n color: #dee2f7;\n}\n\n.highlight .cm {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .cp {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .c1 {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .cs {\n color: #63677e;\n font-style: italic;\n}\n\n.highlight .ge {\n font-style: italic;\n}\n\n.highlight .gs {\n font-weight: 700;\n}\n\n.highlight .kc {\n color: #e19ef5;\n}\n\n.highlight .kd {\n color: #e19ef5;\n}\n\n.highlight .kn {\n color: #e19ef5;\n}\n\n.highlight .kp {\n color: #e19ef5;\n}\n\n.highlight .kr {\n color: #e19ef5;\n}\n\n.highlight .kt {\n color: #e19ef5;\n}\n\n.highlight .ld {\n color: #a3eea0;\n}\n\n.highlight .m {\n color: #eddc96;\n}\n\n.highlight .s {\n color: #a3eea0;\n}\n\n.highlight .na {\n color: #eddc96;\n}\n\n.highlight .nb {\n color: #fdce68;\n}\n\n.highlight .nc {\n color: #fdce68;\n}\n\n.highlight .no {\n color: #fdce68;\n}\n\n.highlight .nd {\n color: #fdce68;\n}\n\n.highlight .ni {\n color: #fdce68;\n}\n\n.highlight .ne {\n color: #fdce68;\n}\n\n.highlight .nf {\n color: #dee2f7;\n}\n\n.highlight .nl {\n color: #fdce68;\n}\n\n.highlight .nn {\n color: #dee2f7;\n}\n\n.highlight .nx {\n color: #dee2f7;\n}\n\n.highlight .py {\n color: #fdce68;\n}\n\n.highlight .nt {\n color: #f9867b;\n}\n\n.highlight .nv {\n color: #fdce68;\n}\n\n.highlight .ow {\n font-weight: 700;\n}\n\n.highlight .w {\n color: #f8f8f2;\n}\n\n.highlight .mf {\n color: #eddc96;\n}\n\n.highlight .mh {\n color: #eddc96;\n}\n\n.highlight .mi {\n color: #eddc96;\n}\n\n.highlight .mo {\n color: #eddc96;\n}\n\n.highlight .sb {\n color: #a3eea0;\n}\n\n.highlight .sc {\n color: #a3eea0;\n}\n\n.highlight .sd {\n color: #a3eea0;\n}\n\n.highlight .s2 {\n color: #a3eea0;\n}\n\n.highlight .se {\n color: #a3eea0;\n}\n\n.highlight .sh {\n color: #a3eea0;\n}\n\n.highlight .si {\n color: #a3eea0;\n}\n\n.highlight .sx {\n color: #a3eea0;\n}\n\n.highlight .sr {\n color: #7be2f9;\n}\n\n.highlight .s1 {\n color: #a3eea0;\n}\n\n.highlight .ss {\n color: #7be2f9;\n}\n\n.highlight .bp {\n color: #fdce68;\n}\n\n.highlight .vc {\n color: #fdce68;\n}\n\n.highlight .vg {\n color: #fdce68;\n}\n\n.highlight .vi {\n color: #f9867b;\n}\n\n.highlight .il {\n color: #eddc96;\n}\n\n.highlight .gu {\n color: #75715e;\n}\n\n.highlight .gd {\n color: #f92672;\n}\n\n.highlight .gi {\n color: #a6e22e;\n}\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// Base element style overrides\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\n:root {\n color-scheme: $color-scheme;\n}\n\n* {\n box-sizing: border-box;\n}\n\nhtml {\n scroll-behavior: smooth;\n\n @include fs-4;\n}\n\nbody {\n font-family: $body-font-family;\n font-size: inherit;\n line-height: $body-line-height;\n color: $body-text-color;\n background-color: $body-background-color;\n overflow-wrap: break-word;\n}\n\nol,\nul,\ndl,\npre,\naddress,\nblockquote,\ntable,\ndiv,\nhr,\nform,\nfieldset,\nnoscript .table-wrapper {\n margin-top: 0;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n#toctitle {\n margin-top: 0;\n margin-bottom: 1em;\n font-weight: 500;\n line-height: $body-heading-line-height;\n color: $body-heading-color;\n}\n\np {\n margin-top: 1em;\n margin-bottom: 1em;\n}\n\na {\n color: $link-color;\n text-decoration: none;\n}\n\na:not([class]) {\n text-decoration: underline;\n text-decoration-color: $border-color;\n text-underline-offset: 2px;\n\n &:hover {\n text-decoration-color: rgba($link-color, 0.45);\n }\n}\n\ncode {\n font-family: $mono-font-family;\n font-size: 0.75em;\n line-height: $body-line-height;\n}\n\nfigure,\npre {\n margin: 0;\n}\n\nli {\n margin: 0.25em 0;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\nhr {\n height: 1px;\n padding: 0;\n margin: $sp-6 0;\n background-color: $border-color;\n border: 0;\n}\n\n// adds a GitHub-style sidebar to blockquotes\nblockquote {\n margin: 10px 0;\n\n // resets user-agent stylesheets for blockquotes\n margin-block-start: 0;\n margin-inline-start: 0;\n padding-left: 1rem;\n border-left: 3px solid $border-color;\n}\n","$color-scheme: dark;\n$body-background-color: $grey-dk-300;\n$body-heading-color: $grey-lt-000;\n$body-text-color: $grey-lt-300;\n$link-color: $blue-000;\n$nav-child-link-color: $grey-dk-000;\n$sidebar-color: $grey-dk-300;\n$base-button-color: $grey-dk-250;\n$btn-primary-color: $blue-200;\n$code-background-color: #31343f; // OneDarkJekyll default for syntax-one-dark-vivid\n$code-linenumber-color: #dee2f7; // OneDarkJekyll .nf for syntax-one-dark-vivid\n$feedback-color: darken($sidebar-color, 3%);\n$table-background-color: $grey-dk-250;\n$search-background-color: $grey-dk-250;\n$search-result-preview-color: $grey-dk-000;\n$border-color: $grey-dk-200;\n\n@import \"./vendor/OneDarkJekyll/syntax\"; // this is the one-dark-vivid atom syntax theme\n","@mixin fs-1 {\n & {\n font-size: $font-size-1 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-1-sm !important;\n }\n}\n\n@mixin fs-2 {\n & {\n font-size: $font-size-2 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-3 !important;\n }\n}\n\n@mixin fs-3 {\n & {\n font-size: $font-size-3 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-4 !important;\n }\n}\n\n@mixin fs-4 {\n & {\n font-size: $font-size-4 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-5 !important;\n }\n}\n\n@mixin fs-5 {\n & {\n font-size: $font-size-5 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-6 !important;\n }\n}\n\n@mixin fs-6 {\n & {\n font-size: $font-size-6 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n}\n\n@mixin fs-7 {\n & {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-8 !important;\n }\n}\n\n@mixin fs-8 {\n & {\n font-size: $font-size-8 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-9 !important;\n }\n}\n\n@mixin fs-9 {\n & {\n font-size: $font-size-9 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10 !important;\n }\n}\n\n@mixin fs-10 {\n & {\n font-size: $font-size-10 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10-sm !important;\n }\n}\n","// Media query\n\n// Media query mixin\n// Usage:\n// @include mq(md) {\n// ..medium and up styles\n// }\n@mixin mq($name) {\n // Retrieves the value from the key\n $value: map-get($media-queries, $name);\n\n // If the key exists in the map\n @if $value {\n // Prints a media query based on the value\n @media (min-width: $value) {\n @content;\n }\n } @else {\n @warn \"No value could be retrieved from `#{$media-query}`. Please make sure it is defined in `$media-queries` map.\";\n }\n}\n\n// Responsive container\n\n@mixin container {\n padding-right: $gutter-spacing-sm;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-right: $gutter-spacing;\n padding-left: $gutter-spacing;\n }\n}\n","// Typography\n\n// prettier-ignore\n$body-font-family: system-ui, -apple-system, blinkmacsystemfont, \"Segoe UI\",\n roboto, \"Helvetica Neue\", arial, sans-serif, \"Segoe UI Emoji\" !default;\n$mono-font-family: \"SFMono-Regular\", menlo, consolas, monospace !default;\n$root-font-size: 16px !default; // DEPRECATED: previously base font-size for rems\n$body-line-height: 1.4 !default;\n$content-line-height: 1.6 !default;\n$body-heading-line-height: 1.25 !default;\n\n// Font size\n// `-sm` suffix is the size at the small (and above) media query\n\n$font-size-1: 0.5625rem !default;\n$font-size-1-sm: 0.625rem !default;\n$font-size-2: 0.6875rem !default; // h4 - uppercased!, h6 not uppercased, text-small\n$font-size-3: 0.75rem !default; // h5\n$font-size-4: 0.875rem !default;\n$font-size-5: 1rem !default; // h3\n$font-size-6: 1.125rem !default; // h2\n$font-size-7: 1.5rem !default;\n$font-size-8: 2rem !default; // h1\n$font-size-9: 2.25rem !default;\n$font-size-10: 2.625rem !default;\n$font-size-10-sm: 3rem !default;\n\n// Colors\n\n$white: #fff !default;\n$grey-dk-000: #959396 !default;\n$grey-dk-100: #5c5962 !default;\n$grey-dk-200: #44434d !default;\n$grey-dk-250: #302d36 !default;\n$grey-dk-300: #27262b !default;\n$grey-lt-000: #f5f6fa !default;\n$grey-lt-100: #eeebee !default;\n$grey-lt-200: #ecebed !default;\n$grey-lt-300: #e6e1e8 !default;\n$purple-000: #7253ed !default;\n$purple-100: #5e41d0 !default;\n$purple-200: #4e26af !default;\n$purple-300: #381885 !default;\n$blue-000: #2c84fa !default;\n$blue-100: #2869e6 !default;\n$blue-200: #264caf !default;\n$blue-300: #183385 !default;\n$green-000: #41d693 !default;\n$green-100: #11b584 !default;\n$green-200: #009c7b !default;\n$green-300: #026e57 !default;\n$yellow-000: #ffeb82 !default;\n$yellow-100: #fadf50 !default;\n$yellow-200: #f7d12e !default;\n$yellow-300: #e7af06 !default;\n$red-000: #f77e7e !default;\n$red-100: #f96e65 !default;\n$red-200: #e94c4c !default;\n$red-300: #dd2e2e !default;\n\n// Spacing\n\n$spacing-unit: 1rem; // 1rem == 16px\n\n$spacers: (\n sp-0: 0,\n sp-1: $spacing-unit * 0.25,\n sp-2: $spacing-unit * 0.5,\n sp-3: $spacing-unit * 0.75,\n sp-4: $spacing-unit,\n sp-5: $spacing-unit * 1.5,\n sp-6: $spacing-unit * 2,\n sp-7: $spacing-unit * 2.5,\n sp-8: $spacing-unit * 3,\n sp-9: $spacing-unit * 3.5,\n sp-10: $spacing-unit * 4,\n) !default;\n$sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px\n$sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px\n$sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px\n$sp-4: map-get($spacers, sp-4) !default; // 1 rem == 16px\n$sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px\n$sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px\n$sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px\n$sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px\n$sp-9: map-get($spacers, sp-9) !default; // 3.5 rem == 56px\n$sp-10: map-get($spacers, sp-10) !default; // 4 rem == 64px\n\n// Borders\n\n$border: 1px solid !default;\n$border-radius: 4px !default;\n$border-color: $grey-lt-100 !default;\n\n// Grid system\n\n$gutter-spacing: $sp-6 !default;\n$gutter-spacing-sm: $sp-4 !default;\n$nav-width: 16.5rem !default;\n$nav-width-md: 15.5rem !default;\n$nav-list-item-height: $sp-6 !default;\n$nav-list-item-height-sm: $sp-8 !default;\n$nav-list-expander-right: true;\n$content-width: 50rem !default;\n$header-height: 3.75rem !default;\n$search-results-width: $content-width - $nav-width !default;\n$transition-duration: 400ms;\n\n// Media queries in pixels\n\n$media-queries: (\n xs: 20rem,\n sm: 31.25rem,\n md: $content-width,\n lg: $content-width + $nav-width,\n xl: 87.5rem,\n) !default;\n","// The basic two column layout\n\n.side-bar {\n z-index: 0;\n display: flex;\n flex-wrap: wrap;\n background-color: $sidebar-color;\n\n @include mq(md) {\n flex-flow: column nowrap;\n position: fixed;\n width: $nav-width-md;\n height: 100%;\n border-right: $border $border-color;\n align-items: flex-end;\n }\n\n @include mq(lg) {\n width: calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width});\n min-width: $nav-width;\n }\n\n & + .main {\n @include mq(md) {\n margin-left: $nav-width-md;\n }\n\n @include mq(lg) {\n // stylelint-disable function-name-case\n // disable for Max(), we want to use the CSS max() function\n margin-left: Max(\n #{$nav-width},\n calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width})\n );\n // stylelint-enable function-name-case\n }\n\n .main-header {\n display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n background-color: $body-background-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\n }\n }\n }\n}\n\n.main {\n margin: auto;\n\n @include mq(md) {\n position: relative;\n max-width: $content-width;\n }\n}\n\n.main-content-wrap {\n padding-top: $gutter-spacing-sm;\n padding-bottom: $gutter-spacing-sm;\n\n @include container;\n\n @include mq(md) {\n padding-top: $gutter-spacing;\n padding-bottom: $gutter-spacing;\n }\n}\n\n.main-header {\n z-index: 0;\n border-bottom: $border $border-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n }\n}\n\n.site-nav,\n.site-header,\n.site-footer {\n width: 100%;\n\n @include mq(lg) {\n width: $nav-width;\n }\n}\n\n.site-nav {\n display: none;\n\n &.nav-open {\n display: block;\n }\n\n @include mq(md) {\n display: block;\n padding-top: $sp-8;\n padding-bottom: $gutter-spacing-sm;\n overflow-y: auto;\n flex: 1 1 auto;\n }\n}\n\n.site-header {\n display: flex;\n min-height: $header-height;\n align-items: center;\n\n @include mq(md) {\n height: $header-height;\n max-height: $header-height;\n border-bottom: $border $border-color;\n }\n}\n\n.site-title {\n flex-grow: 1;\n display: flex;\n height: 100%;\n align-items: center;\n padding-top: $sp-3;\n padding-bottom: $sp-3;\n color: $body-heading-color;\n\n @include container;\n\n @include fs-6;\n\n @include mq(md) {\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n }\n}\n\n@if variable-exists(logo) {\n .site-logo {\n width: 100%;\n height: 100%;\n background-image: url($logo);\n background-repeat: no-repeat;\n background-position: left center;\n background-size: contain;\n }\n}\n\n.site-button {\n display: flex;\n height: 100%;\n padding: $gutter-spacing-sm;\n align-items: center;\n}\n\n@include mq(md) {\n .site-header .site-button {\n display: none;\n }\n}\n\n.site-title:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n}\n\n.site-button:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n}\n\n// stylelint-disable selector-max-type\n\nbody {\n position: relative;\n padding-bottom: $sp-10;\n overflow-y: scroll;\n\n @include mq(md) {\n position: static;\n padding-bottom: 0;\n }\n}\n\n// stylelint-enable selector-max-type\n\n.site-footer {\n position: absolute;\n bottom: 0;\n left: 0;\n padding-top: $sp-4;\n padding-bottom: $sp-4;\n color: $grey-dk-000;\n\n @include container;\n\n @include fs-2;\n\n @include mq(md) {\n position: static;\n justify-self: end;\n }\n}\n\n.icon {\n width: $sp-5;\n height: $sp-5;\n color: $link-color;\n}\n","@charset \"UTF-8\";\n\n// Styles for rendered markdown in the .main-content container\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity, selector-max-id\n\n.main-content {\n line-height: $content-line-height;\n\n ol,\n ul,\n dl,\n pre,\n address,\n blockquote,\n .table-wrapper {\n margin-top: 0.5em;\n }\n\n a {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n ul,\n ol {\n padding-left: 1.5em;\n }\n\n li {\n .highlight {\n margin-top: $sp-1;\n }\n }\n\n ol {\n list-style-type: none;\n counter-reset: step-counter;\n\n > li {\n position: relative;\n\n &::before {\n position: absolute;\n top: 0.2em;\n left: -1.6em;\n color: $grey-dk-000;\n content: counter(step-counter);\n counter-increment: step-counter;\n @include fs-3;\n\n @include mq(sm) {\n top: 0.11em;\n }\n }\n\n ol {\n counter-reset: sub-counter;\n\n > li {\n &::before {\n content: counter(sub-counter, lower-alpha);\n counter-increment: sub-counter;\n }\n }\n }\n }\n }\n\n ul {\n list-style: none;\n\n > li {\n &::before {\n position: absolute;\n margin-left: -1.4em;\n color: $grey-dk-000;\n content: \"β€’\";\n }\n }\n }\n\n .task-list-item {\n &::before {\n content: \"\";\n }\n }\n\n .task-list-item-checkbox {\n margin-right: 0.6em;\n margin-left: -1.4em;\n\n // The same margin-left is used above for ul > li::before\n }\n\n hr + * {\n margin-top: 0;\n }\n\n h1:first-of-type {\n margin-top: 0.5em;\n }\n\n dl {\n display: grid;\n grid-template: auto / 10em 1fr;\n }\n\n dt,\n dd {\n margin: 0.25em 0;\n }\n\n dt {\n grid-column: 1;\n font-weight: 500;\n text-align: right;\n\n &::after {\n content: \":\";\n }\n }\n\n dd {\n grid-column: 2;\n margin-bottom: 0;\n margin-left: 1em;\n\n blockquote,\n div,\n dl,\n dt,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n li,\n ol,\n p,\n pre,\n table,\n ul,\n .table-wrapper {\n &:first-child {\n margin-top: 0;\n }\n }\n }\n\n dd,\n ol,\n ul {\n dl:first-child {\n dt:first-child,\n dd:nth-child(2) {\n margin-top: 0;\n }\n }\n }\n\n .anchor-heading {\n position: absolute;\n right: -$sp-4;\n width: $sp-5;\n height: 100%;\n padding-right: $sp-1;\n padding-left: $sp-1;\n overflow: visible;\n\n @include mq(md) {\n right: auto;\n left: -$sp-5;\n }\n\n svg {\n display: inline-block;\n width: 100%;\n height: 100%;\n color: $link-color;\n visibility: hidden;\n }\n }\n\n .anchor-heading:hover,\n .anchor-heading:focus,\n h1:hover > .anchor-heading,\n h2:hover > .anchor-heading,\n h3:hover > .anchor-heading,\n h4:hover > .anchor-heading,\n h5:hover > .anchor-heading,\n h6:hover > .anchor-heading {\n svg {\n visibility: visible;\n }\n }\n\n summary {\n cursor: pointer;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n #toctitle {\n position: relative;\n margin-top: 1.5em;\n margin-bottom: 0.25em;\n\n + table,\n + .table-wrapper,\n + .code-example,\n + .highlighter-rouge,\n + .sectionbody .listingblock {\n margin-top: 1em;\n }\n\n + p:not(.label) {\n margin-top: 0;\n }\n }\n\n > h1:first-child,\n > h2:first-child,\n > h3:first-child,\n > h4:first-child,\n > h5:first-child,\n > h6:first-child,\n > .sect1:first-child > h2,\n > .sect2:first-child > h3,\n > .sect3:first-child > h4,\n > .sect4:first-child > h5,\n > .sect5:first-child > h6 {\n margin-top: $sp-2;\n }\n}\n","// Main nav, breadcrumb, etc...\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity\n\n.nav-list {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n margin: 0;\n\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n\n .nav-list-link {\n display: block;\n min-height: $nav-list-item-height-sm;\n padding-top: $sp-1;\n padding-bottom: $sp-1;\n line-height: #{$nav-list-item-height-sm - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height-sm;\n padding-left: $gutter-spacing-sm;\n } @else {\n padding-right: $gutter-spacing-sm;\n padding-left: $nav-list-item-height-sm;\n }\n\n @include mq(md) {\n min-height: $nav-list-item-height;\n line-height: #{$nav-list-item-height - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height;\n padding-left: $gutter-spacing;\n } @else {\n padding-right: $gutter-spacing;\n padding-left: $nav-list-item-height;\n }\n }\n\n &.external > svg {\n width: $sp-4;\n height: $sp-4;\n vertical-align: text-bottom;\n }\n\n &.active {\n font-weight: 600;\n text-decoration: none;\n }\n\n &:hover,\n &.active {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n }\n }\n\n .nav-list-expander {\n position: absolute;\n @if $nav-list-expander-right {\n right: 0;\n }\n\n width: $nav-list-item-height-sm;\n height: $nav-list-item-height-sm;\n padding: #{$nav-list-item-height-sm * 0.25};\n color: $link-color;\n\n @include mq(md) {\n width: $nav-list-item-height;\n height: $nav-list-item-height;\n padding: #{$nav-list-item-height * 0.25};\n }\n\n &:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n }\n\n @if $nav-list-expander-right {\n svg {\n transform: rotate(90deg);\n }\n }\n }\n\n > .nav-list {\n display: none;\n padding-left: $sp-3;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n\n .nav-list-link {\n color: $nav-child-link-color;\n }\n\n .nav-list-expander {\n color: $nav-child-link-color;\n }\n }\n }\n\n &.active {\n > .nav-list-expander svg {\n @if $nav-list-expander-right {\n transform: rotate(-90deg);\n } @else {\n transform: rotate(90deg);\n }\n }\n\n > .nav-list {\n display: block;\n }\n }\n }\n}\n\n.nav-category {\n padding: $sp-2 $gutter-spacing-sm;\n font-weight: 600;\n text-align: start;\n text-transform: uppercase;\n border-bottom: $border $border-color;\n @include fs-2;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing;\n margin-top: $gutter-spacing-sm;\n text-align: start;\n\n &:first-child {\n margin-top: 0;\n }\n }\n}\n\n.nav-list.nav-category-list {\n > .nav-list-item {\n margin: 0;\n\n > .nav-list {\n padding: 0;\n\n > .nav-list-item {\n > .nav-list-link {\n color: $link-color;\n }\n\n > .nav-list-expander {\n color: $link-color;\n }\n }\n }\n }\n}\n\n// Aux nav\n\n.aux-nav {\n height: 100%;\n overflow-x: auto;\n @include fs-2;\n\n .aux-nav-list {\n display: flex;\n height: 100%;\n padding: 0;\n margin: 0;\n list-style: none;\n }\n\n .aux-nav-list-item {\n display: inline-block;\n height: 100%;\n padding: 0;\n margin: 0;\n }\n\n @include mq(md) {\n padding-right: $gutter-spacing-sm;\n }\n}\n\n// Breadcrumb nav\n\n.breadcrumb-nav {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n}\n\n.breadcrumb-nav-list {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n}\n\n.breadcrumb-nav-list-item {\n display: table-cell;\n @include fs-2;\n\n &::before {\n display: none;\n }\n\n &::after {\n display: inline-block;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $grey-dk-000;\n content: \"/\";\n }\n\n &:last-child {\n &::after {\n content: \"\";\n }\n }\n}\n","// Typography\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\nh1,\n.text-alpha {\n font-weight: 300;\n\n @include fs-8;\n}\n\nh2,\n.text-beta,\n#toctitle {\n @include fs-6;\n}\n\nh3,\n.text-gamma {\n @include fs-5;\n}\n\nh4,\n.text-delta {\n font-weight: 400;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n\n @include fs-2;\n}\n\nh4 code {\n text-transform: none;\n}\n\nh5,\n.text-epsilon {\n @include fs-3;\n}\n\nh6,\n.text-zeta {\n @include fs-2;\n}\n\n.text-small {\n @include fs-2;\n}\n\n.text-mono {\n font-family: $mono-font-family !important;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n","// Labels (not the form kind)\n\n// this :not() prevents a style clash with Mermaid.js's\n// diagram labels, which also use .label\n// for more, see https://github.com/just-the-docs/just-the-docs/issues/1272\n// and the accompanying PR\n.label:not(g),\n.label-blue:not(g) {\n display: inline-block;\n padding: 0.16em 0.56em;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $white;\n text-transform: uppercase;\n vertical-align: middle;\n background-color: $blue-100;\n border-radius: 12px;\n\n @include fs-2;\n}\n\n.label-green:not(g) {\n background-color: $green-200;\n}\n\n.label-purple:not(g) {\n background-color: $purple-100;\n}\n\n.label-red:not(g) {\n background-color: $red-200;\n}\n\n.label-yellow:not(g) {\n color: $grey-dk-200;\n background-color: $yellow-200;\n}\n","// Buttons and things that look like buttons\n// stylelint-disable color-named\n\n.btn {\n display: inline-block;\n box-sizing: border-box;\n padding: 0.3em 1em;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n line-height: 1.5;\n color: $link-color;\n text-decoration: none;\n vertical-align: baseline;\n cursor: pointer;\n background-color: $base-button-color;\n border-width: 0;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n appearance: none;\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: darken($link-color, 2%);\n }\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n text-decoration: none;\n background-color: darken($base-button-color, 1%);\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($base-button-color, 3%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken(#dcdcdc, 5%);\n }\n\n &:disabled,\n &.disabled {\n &,\n &:hover {\n color: rgba(102, 102, 102, 0.5);\n cursor: default;\n background-color: rgba(229, 229, 229, 0.5);\n background-image: none;\n box-shadow: none;\n }\n }\n}\n\n.btn-outline {\n color: $link-color;\n background: transparent;\n box-shadow: inset 0 0 0 2px $grey-lt-300;\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n color: darken($link-color, 4%);\n text-decoration: none;\n background-color: transparent;\n box-shadow: inset 0 0 0 3px $grey-lt-300;\n }\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow:\n inset 0 0 0 2px $grey-dk-100,\n 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: inset 0 0 0 2px $grey-dk-100;\n }\n}\n\n.btn-primary {\n @include btn-color($white, $btn-primary-color);\n}\n\n.btn-purple {\n @include btn-color($white, $purple-100);\n}\n\n.btn-blue {\n @include btn-color($white, $blue-000);\n}\n\n.btn-green {\n @include btn-color($white, $green-100);\n}\n\n.btn-reset {\n background: none;\n border: none;\n margin: 0;\n text-align: inherit;\n font: inherit;\n border-radius: 0;\n appearance: none;\n}\n","// Colored button\n\n@mixin btn-color($fg, $bg) {\n color: $fg;\n background-color: darken($bg, 2%);\n background-image: linear-gradient(lighten($bg, 5%), darken($bg, 2%));\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.25),\n 0 4px 10px rgba(0, 0, 0, 0.12);\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: $fg;\n background-color: darken($bg, 4%);\n background-image: linear-gradient((lighten($bg, 2%), darken($bg, 4%)));\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($bg, 5%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken($bg, 10%);\n }\n}\n","// Search input and autocomplete\n\n.search {\n position: relative;\n z-index: 2;\n flex-grow: 1;\n height: $sp-10;\n padding: $sp-2;\n transition: padding linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: relative !important;\n width: auto !important;\n height: 100% !important;\n padding: 0;\n transition: none;\n }\n}\n\n.search-input-wrap {\n position: relative;\n z-index: 1;\n height: $sp-8;\n overflow: hidden;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n transition: height linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: absolute;\n width: 100%;\n max-width: $search-results-width;\n height: 100% !important;\n border-radius: 0;\n box-shadow: none;\n transition: width ease $transition-duration;\n }\n}\n\n.search-input {\n position: absolute;\n width: 100%;\n height: 100%;\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing-sm + $sp-5};\n font-size: 1rem;\n color: $body-text-color;\n background-color: $search-background-color;\n border-top: 0;\n border-right: 0;\n border-bottom: 0;\n border-left: 0;\n border-radius: 0;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing + $sp-5};\n font-size: 0.875rem;\n background-color: $body-background-color;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n &:focus {\n outline: 0;\n\n + .search-label .search-icon {\n color: $link-color;\n }\n }\n}\n\n.search-label {\n position: absolute;\n display: flex;\n height: 100%;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-left: $gutter-spacing;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n .search-icon {\n width: #{$sp-4 * 1.2};\n height: #{$sp-4 * 1.2};\n align-self: center;\n color: $grey-dk-000;\n }\n}\n\n.search-results {\n position: absolute;\n left: 0;\n display: none;\n width: 100%;\n max-height: calc(100% - #{$sp-10});\n overflow-y: auto;\n background-color: $search-background-color;\n border-bottom-right-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n\n @include mq(md) {\n top: 100%;\n width: $search-results-width;\n max-height: calc(100vh - 200%) !important;\n }\n}\n\n.search-results-list {\n padding-left: 0;\n margin-bottom: $sp-1;\n list-style: none;\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n}\n\n.search-results-list-item {\n padding: 0;\n margin: 0;\n}\n\n.search-result {\n display: block;\n padding: $sp-1 $sp-3;\n\n &:hover,\n &.active {\n background-color: $feedback-color;\n }\n}\n\n.search-result-title {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 40%;\n padding-right: $sp-2;\n vertical-align: top;\n }\n}\n\n.search-result-doc {\n display: flex;\n align-items: center;\n word-wrap: break-word;\n\n &.search-result-doc-parent {\n opacity: 0.5;\n @include fs-3;\n\n @include mq(md) {\n @include fs-2;\n }\n }\n\n .search-result-icon {\n width: $sp-4;\n height: $sp-4;\n margin-right: $sp-2;\n color: $link-color;\n flex-shrink: 0;\n }\n\n .search-result-doc-title {\n overflow: auto;\n }\n}\n\n.search-result-section {\n margin-left: #{$sp-4 + $sp-2};\n word-wrap: break-word;\n}\n\n.search-result-rel-url {\n display: block;\n margin-left: #{$sp-4 + $sp-2};\n overflow: hidden;\n color: $search-result-preview-color;\n text-overflow: ellipsis;\n white-space: nowrap;\n @include fs-1;\n}\n\n.search-result-previews {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n padding-left: $sp-4;\n margin-left: $sp-2;\n color: $search-result-preview-color;\n word-wrap: break-word;\n border-left: $border;\n border-left-color: $border-color;\n @include fs-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 60%;\n padding-left: $sp-2;\n margin-left: 0;\n vertical-align: top;\n }\n}\n\n.search-result-preview + .search-result-preview {\n margin-top: $sp-1;\n}\n\n.search-result-highlight {\n font-weight: bold;\n}\n\n.search-no-result {\n padding: $sp-2 $sp-3;\n @include fs-3;\n}\n\n.search-button {\n position: fixed;\n right: $sp-4;\n bottom: $sp-4;\n display: flex;\n width: $sp-9;\n height: $sp-9;\n background-color: $search-background-color;\n border: 1px solid rgba($link-color, 0.3);\n border-radius: #{$sp-9 * 0.5};\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n align-items: center;\n justify-content: center;\n}\n\n.search-overlay {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n width: 0;\n height: 0;\n background-color: rgba(0, 0, 0, 0.3);\n opacity: 0;\n transition:\n opacity ease $transition-duration,\n width 0s $transition-duration,\n height 0s $transition-duration;\n}\n\n.search-active {\n .search {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .search-input-wrap {\n height: $sp-10;\n border-radius: 0;\n\n @include mq(md) {\n width: $search-results-width;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n }\n }\n\n .search-input {\n background-color: $search-background-color;\n\n @include mq(md) {\n padding-left: 2.3rem;\n }\n }\n\n .search-label {\n @include mq(md) {\n padding-left: 0.6rem;\n }\n }\n\n .search-results {\n display: block;\n }\n\n .search-overlay {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n opacity ease $transition-duration,\n width 0s,\n height 0s;\n }\n\n @include mq(md) {\n .main {\n position: fixed;\n right: 0;\n left: 0;\n }\n }\n\n .main-header {\n padding-top: $sp-10;\n\n @include mq(md) {\n padding-top: 0;\n }\n }\n}\n","// Tables\n// stylelint-disable max-nesting-depth, selector-no-type, selector-max-type\n\n.table-wrapper {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: $sp-5;\n overflow-x: auto;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n}\n\ntable {\n display: table;\n min-width: 100%;\n border-collapse: separate;\n}\n\nth,\ntd {\n min-width: 7.5rem;\n padding: $sp-2 $sp-3;\n background-color: $table-background-color;\n border-bottom: $border rgba($border-color, 0.5);\n border-left: $border $border-color;\n\n @include fs-3;\n\n &:first-of-type {\n border-left: 0;\n }\n}\n\ntbody {\n tr {\n &:last-of-type {\n th,\n td {\n border-bottom: 0;\n }\n\n td {\n padding-bottom: $sp-3;\n }\n }\n }\n}\n\nthead {\n th {\n border-bottom: $border $border-color;\n }\n}\n","// Code and syntax highlighting\n// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type, scss/comment-no-empty\n\n// {% raw %}\n\n// This instruction applies to all queues not within 'pre' or 'figure', avoiding 'code' generated by the highlight.\n:not(pre, figure) {\n & > code {\n padding: 0.2em 0.15em;\n font-weight: 400;\n background-color: $code-background-color;\n border: $border $border-color;\n border-radius: $border-radius;\n }\n}\n\n// Avoid appearance of dark border around visited code links in Safari\na:visited code {\n border-color: $border-color;\n}\n\n// Content structure for highlighted code blocks using fences or Liquid\n//\n// ```[LANG]...```, no kramdown line_numbers:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n//\n// ```[LANG]...```, kramdown line_numbers = true:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.rouge-gutter.gl > pre.lineno\n// | td.rouge-code > pre\n//\n// {% highlight LANG %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n//\n// {% highlight LANG linenos %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.gutter.gl > pre.lineno\n// | td.code > pre\n//\n// ----...---- (AsciiDoc)\n// div.listingblock > div.content > pre.rouge.highlight\n//\n// fix_linenos removes the outermost pre when it encloses table.rouge-table\n//\n// See docs/index-test.md for some tests.\n//\n// No kramdown line_numbers: fences and Liquid highlighting look the same.\n// Kramdown line_numbers = true: fences have a wider gutter than with Liquid?\n\n// ```[LANG]...```\n// or in AsciiDoc:\n//\n// ----\n// ...\n// ----\n\n// the code may appear with 3 different types:\n// container \\ case: default case, code with line number, code with html rendering\n// top level: div.highlighter-rouge, figure.highlight, figure.highlight\n// second level: div.highlight, div.table-wrapper, pre.highlight\n// third level: pre.highlight, td.code, absent\n// last level: code, pre, code (optionality)\n// highlighter level: span, span, span\n// the spacing are only in the second level for case 1, 3 and in the third level for case 2\n// in AsciiDoc, there is a parent container that contains optionally a title and the content.\n\n// select top level container\ndiv.highlighter-rouge,\ndiv.listingblock > div.content,\nfigure.highlight {\n margin-top: 0;\n margin-bottom: $sp-3;\n background-color: $code-background-color;\n border-radius: $border-radius;\n box-shadow: none;\n -webkit-overflow-scrolling: touch;\n position: relative;\n padding: 0;\n\n // copy button (or other button)\n // the button appear only when there is a hover on the code or focus on button\n > button {\n width: $sp-3;\n opacity: 0;\n position: absolute;\n top: 0;\n right: 0;\n border: $sp-3 solid $code-background-color;\n background-color: $code-background-color;\n color: $body-text-color;\n box-sizing: content-box;\n\n svg {\n fill: $body-text-color;\n }\n\n &:active {\n text-decoration: none;\n outline: none;\n opacity: 1;\n }\n\n &:focus {\n opacity: 1;\n }\n }\n\n // the button can be seen by doing a simple hover in the code, there is no need to go over the location of the button\n &:hover {\n > button {\n cursor: copy;\n opacity: 1;\n }\n }\n}\n\n// setting the spacing and scrollbar on the second level for the first case\n// remove all space on the second and third level\n// this is a mixin to accommodate for the slightly different structures generated via Markdown vs AsciiDoc\n@mixin scroll-and-spacing($code-div, $pre-select) {\n #{$code-div} {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n\n #{$pre-select},\n code {\n padding: 0;\n margin: 0;\n border: 0;\n }\n}\n\n// for Markdown\ndiv.highlighter-rouge {\n @include scroll-and-spacing(\"div.highlight\", \"pre.highlight\");\n}\n\n// for AsciiDoc. we also need to fix the margins for its parent container.\ndiv.listingblock {\n margin-top: 0;\n margin-bottom: $sp-3;\n\n @include scroll-and-spacing(\"div.content\", \"div.content > pre\");\n}\n\n// {% highlight LANG %}...{% endhighlight %},\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the second level for the thirt case\n// the css rule are apply only to the last code enviroment\n// setting the scroolbar\nfigure.highlight {\n pre,\n :not(pre) > code {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n}\n\n// ```[LANG]...```, kramdown line_numbers = true,\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the thirt level for the second case\n.highlight .table-wrapper {\n padding: $sp-3 0;\n margin: 0;\n border: 0;\n box-shadow: none;\n\n td,\n pre {\n min-width: 0;\n padding: 0;\n background-color: $code-background-color;\n border: 0;\n\n @include fs-2;\n }\n\n td.gl {\n width: 1em;\n padding-right: $sp-3;\n padding-left: $sp-3;\n }\n\n pre {\n margin: 0;\n line-height: 2;\n }\n}\n\n// Code examples: html render of a code\n.code-example,\n.listingblock > .title {\n padding: $sp-3;\n margin-bottom: $sp-3;\n overflow: auto;\n border: 1px solid $border-color;\n border-radius: $border-radius;\n\n + .highlighter-rouge,\n + .sectionbody .listingblock,\n + .content,\n + figure.highlight {\n position: relative;\n margin-top: -$sp-4;\n border-right: 1px solid $border-color;\n border-bottom: 1px solid $border-color;\n border-left: 1px solid $border-color;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n\n// Mermaid diagram code blocks should be left unstyled.\ncode.language-mermaid {\n padding: 0;\n background-color: inherit;\n border: 0;\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight,\npre.highlight {\n background: $code-background-color; // Code Background\n // For Backwards Compatibility Before $code-linenumber-color was added\n @if variable-exists(code-linenumber-color) {\n color: $code-linenumber-color; // Code Line Numbers\n } @else {\n color: $body-text-color; // Code Line Numbers\n }\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight pre {\n background: $code-background-color; // Code Background\n}\n\n// {% endraw %}\n","// Utility classes for colors\n\n// Text colors\n\n.text-grey-dk-000 {\n color: $grey-dk-000 !important;\n}\n\n.text-grey-dk-100 {\n color: $grey-dk-100 !important;\n}\n\n.text-grey-dk-200 {\n color: $grey-dk-200 !important;\n}\n\n.text-grey-dk-250 {\n color: $grey-dk-250 !important;\n}\n\n.text-grey-dk-300 {\n color: $grey-dk-300 !important;\n}\n\n.text-grey-lt-000 {\n color: $grey-lt-000 !important;\n}\n\n.text-grey-lt-100 {\n color: $grey-lt-100 !important;\n}\n\n.text-grey-lt-200 {\n color: $grey-lt-200 !important;\n}\n\n.text-grey-lt-300 {\n color: $grey-lt-300 !important;\n}\n\n.text-blue-000 {\n color: $blue-000 !important;\n}\n\n.text-blue-100 {\n color: $blue-100 !important;\n}\n\n.text-blue-200 {\n color: $blue-200 !important;\n}\n\n.text-blue-300 {\n color: $blue-300 !important;\n}\n\n.text-green-000 {\n color: $green-000 !important;\n}\n\n.text-green-100 {\n color: $green-100 !important;\n}\n\n.text-green-200 {\n color: $green-200 !important;\n}\n\n.text-green-300 {\n color: $green-300 !important;\n}\n\n.text-purple-000 {\n color: $purple-000 !important;\n}\n\n.text-purple-100 {\n color: $purple-100 !important;\n}\n\n.text-purple-200 {\n color: $purple-200 !important;\n}\n\n.text-purple-300 {\n color: $purple-300 !important;\n}\n\n.text-yellow-000 {\n color: $yellow-000 !important;\n}\n\n.text-yellow-100 {\n color: $yellow-100 !important;\n}\n\n.text-yellow-200 {\n color: $yellow-200 !important;\n}\n\n.text-yellow-300 {\n color: $yellow-300 !important;\n}\n\n.text-red-000 {\n color: $red-000 !important;\n}\n\n.text-red-100 {\n color: $red-100 !important;\n}\n\n.text-red-200 {\n color: $red-200 !important;\n}\n\n.text-red-300 {\n color: $red-300 !important;\n}\n\n// Background colors\n\n.bg-grey-dk-000 {\n background-color: $grey-dk-000 !important;\n}\n\n.bg-grey-dk-100 {\n background-color: $grey-dk-100 !important;\n}\n\n.bg-grey-dk-200 {\n background-color: $grey-dk-200 !important;\n}\n\n.bg-grey-dk-250 {\n background-color: $grey-dk-250 !important;\n}\n\n.bg-grey-dk-300 {\n background-color: $grey-dk-300 !important;\n}\n\n.bg-grey-lt-000 {\n background-color: $grey-lt-000 !important;\n}\n\n.bg-grey-lt-100 {\n background-color: $grey-lt-100 !important;\n}\n\n.bg-grey-lt-200 {\n background-color: $grey-lt-200 !important;\n}\n\n.bg-grey-lt-300 {\n background-color: $grey-lt-300 !important;\n}\n\n.bg-blue-000 {\n background-color: $blue-000 !important;\n}\n\n.bg-blue-100 {\n background-color: $blue-100 !important;\n}\n\n.bg-blue-200 {\n background-color: $blue-200 !important;\n}\n\n.bg-blue-300 {\n background-color: $blue-300 !important;\n}\n\n.bg-green-000 {\n background-color: $green-000 !important;\n}\n\n.bg-green-100 {\n background-color: $green-100 !important;\n}\n\n.bg-green-200 {\n background-color: $green-200 !important;\n}\n\n.bg-green-300 {\n background-color: $green-300 !important;\n}\n\n.bg-purple-000 {\n background-color: $purple-000 !important;\n}\n\n.bg-purple-100 {\n background-color: $purple-100 !important;\n}\n\n.bg-purple-200 {\n background-color: $purple-200 !important;\n}\n\n.bg-purple-300 {\n background-color: $purple-300 !important;\n}\n\n.bg-yellow-000 {\n background-color: $yellow-000 !important;\n}\n\n.bg-yellow-100 {\n background-color: $yellow-100 !important;\n}\n\n.bg-yellow-200 {\n background-color: $yellow-200 !important;\n}\n\n.bg-yellow-300 {\n background-color: $yellow-300 !important;\n}\n\n.bg-red-000 {\n background-color: $red-000 !important;\n}\n\n.bg-red-100 {\n background-color: $red-100 !important;\n}\n\n.bg-red-200 {\n background-color: $red-200 !important;\n}\n\n.bg-red-300 {\n background-color: $red-300 !important;\n}\n","// Utility classes for layout\n\n// Display\n\n.d-block {\n display: block !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .d-sm-block, .d-md-none, .d-lg-inline\n .d-#{$media-query}-block {\n display: block !important;\n }\n .d-#{$media-query}-flex {\n display: flex !important;\n }\n .d-#{$media-query}-inline {\n display: inline !important;\n }\n .d-#{$media-query}-inline-block {\n display: inline-block !important;\n }\n .d-#{$media-query}-none {\n display: none !important;\n }\n }\n }\n}\n\n// Horizontal alignment\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.flex-justify-start {\n justify-content: flex-start !important;\n}\n\n.flex-justify-end {\n justify-content: flex-end !important;\n}\n\n.flex-justify-between {\n justify-content: space-between !important;\n}\n\n.flex-justify-around {\n justify-content: space-around !important;\n}\n\n// Vertical alignment\n\n.v-align-baseline {\n vertical-align: baseline !important;\n}\n\n.v-align-bottom {\n vertical-align: bottom !important;\n}\n\n.v-align-middle {\n vertical-align: middle !important;\n}\n\n.v-align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.v-align-text-top {\n vertical-align: text-top !important;\n}\n\n.v-align-top {\n vertical-align: top !important;\n}\n","// Utility classes for typography\n\n.fs-1 {\n @include fs-1;\n}\n\n.fs-2 {\n @include fs-2;\n}\n\n.fs-3 {\n @include fs-3;\n}\n\n.fs-4 {\n @include fs-4;\n}\n\n.fs-5 {\n @include fs-5;\n}\n\n.fs-6 {\n @include fs-6;\n}\n\n.fs-7 {\n @include fs-7;\n}\n\n.fs-8 {\n @include fs-8;\n}\n\n.fs-9 {\n @include fs-9;\n}\n\n.fs-10 {\n @include fs-10;\n}\n\n.fw-300 {\n font-weight: 300 !important;\n}\n\n.fw-400 {\n font-weight: 400 !important;\n}\n\n.fw-500 {\n font-weight: 500 !important;\n}\n\n.fw-700 {\n font-weight: 700 !important;\n}\n\n.lh-0 {\n line-height: 0 !important;\n}\n\n.lh-default {\n line-height: $body-line-height;\n}\n\n.lh-tight {\n line-height: $body-heading-line-height;\n}\n\n.ls-5 {\n letter-spacing: 0.05em !important;\n}\n\n.ls-10 {\n letter-spacing: 0.1em !important;\n}\n\n.ls-0 {\n letter-spacing: 0 !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n","// Utility classes for lists\n\n// stylelint-disable selector-max-type\n\n.list-style-none {\n padding: 0 !important;\n margin: 0 !important;\n list-style: none !important;\n\n li {\n &::before {\n display: none !important;\n }\n }\n}\n","// Utility classes for margins and padding\n\n// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before\n\n// Margin spacer utilities\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-0, .m-1, .m-2...\n .m-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n .mx-#{$scale}-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-sm-0, .m-md-1, .m-lg-2...\n .m-#{$media-query}-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$media-query}-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$media-query}-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$media-query}-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n }\n }\n}\n\n// Padding spacer utilities\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-0, .p-1, .p-2...\n .p-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @include mq($media-query) {\n @for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-sm-0, .p-md-1, .p-lg-2...\n .p-#{$media-query}-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$media-query}-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$media-query}-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n }\n }\n}\n","// stylelint-disable selector-max-specificity, selector-max-id, selector-max-type, selector-no-qualifying-type\n\n@media print {\n .site-footer,\n .site-button,\n #edit-this-page,\n #back-to-top,\n .site-nav,\n .main-header {\n display: none !important;\n }\n\n .side-bar {\n width: 100%;\n height: auto;\n border-right: 0 !important;\n }\n\n .site-header {\n border-bottom: 1px solid $border-color;\n }\n\n .site-title {\n font-size: 1rem !important;\n font-weight: 700 !important;\n }\n\n .text-small {\n font-size: 8pt !important;\n }\n\n pre.highlight {\n border: 1px solid $border-color;\n }\n\n .main {\n max-width: none;\n margin-left: 0;\n }\n}\n","// Skipnav\n// Skip to main content\n\na.skip-to-main {\n left: -999px;\n position: absolute;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n z-index: -999;\n}\n\na.skip-to-main:focus,\na.skip-to-main:active {\n color: $link-color;\n background-color: $body-background-color;\n left: auto;\n top: auto;\n width: 30%;\n height: auto;\n overflow: auto;\n margin: 10px 35%;\n padding: 5px;\n border-radius: 15px;\n border: 4px solid $btn-primary-color;\n text-align: center;\n font-size: 1.2em;\n z-index: 999;\n}\n","\n\n$logo: \"/assets/images/logo.png\";\n\n@import \"./support/support\";\n@import \"./custom/setup\";\n@import \"./color_schemes/light\";\n\n@import \"./color_schemes/dark\";\n\n@import \"./modules\";\ndiv.opaque {\n background-color: $body-background-color;\n}\n@import \"./custom/custom\";\n\n\n"],"file":"just-the-docs-default.css"} \ No newline at end of file diff --git a/jekyll-backup/_site/assets/css/just-the-docs-head-nav.css b/jekyll-backup/_site/assets/css/just-the-docs-head-nav.css deleted file mode 100644 index 8b137891..00000000 --- a/jekyll-backup/_site/assets/css/just-the-docs-head-nav.css +++ /dev/null @@ -1 +0,0 @@ - diff --git a/jekyll-backup/_site/assets/css/just-the-docs-light.css b/jekyll-backup/_site/assets/css/just-the-docs-light.css deleted file mode 100644 index 6e1fe84d..00000000 --- a/jekyll-backup/_site/assets/css/just-the-docs-light.css +++ /dev/null @@ -1 +0,0 @@ -ο»Ώ.highlight,pre.highlight{background:#f9f9f9;color:#383942}.highlight pre{background:#f9f9f9}.highlight .hll{background:#f9f9f9}.highlight .c{color:#9fa0a6;font-style:italic}.highlight .err{color:#fff;background-color:#e05151}.highlight .k{color:#a625a4}.highlight .l{color:#50a04f}.highlight .n{color:#383942}.highlight .o{color:#383942}.highlight .p{color:#383942}.highlight .cm{color:#9fa0a6;font-style:italic}.highlight .cp{color:#9fa0a6;font-style:italic}.highlight .c1{color:#9fa0a6;font-style:italic}.highlight .cs{color:#9fa0a6;font-style:italic}.highlight .ge{font-style:italic}.highlight .gs{font-weight:700}.highlight .kc{color:#a625a4}.highlight .kd{color:#a625a4}.highlight .kn{color:#a625a4}.highlight .kp{color:#a625a4}.highlight .kr{color:#a625a4}.highlight .kt{color:#a625a4}.highlight .ld{color:#50a04f}.highlight .m{color:#b66a00}.highlight .s{color:#50a04f}.highlight .na{color:#b66a00}.highlight .nb{color:#ca7601}.highlight .nc{color:#ca7601}.highlight .no{color:#ca7601}.highlight .nd{color:#ca7601}.highlight .ni{color:#ca7601}.highlight .ne{color:#ca7601}.highlight .nf{color:#383942}.highlight .nl{color:#ca7601}.highlight .nn{color:#383942}.highlight .nx{color:#383942}.highlight .py{color:#ca7601}.highlight .nt{color:#e35549}.highlight .nv{color:#ca7601}.highlight .ow{font-weight:700}.highlight .w{color:#f8f8f2}.highlight .mf{color:#b66a00}.highlight .mh{color:#b66a00}.highlight .mi{color:#b66a00}.highlight .mo{color:#b66a00}.highlight .sb{color:#50a04f}.highlight .sc{color:#50a04f}.highlight .sd{color:#50a04f}.highlight .s2{color:#50a04f}.highlight .se{color:#50a04f}.highlight .sh{color:#50a04f}.highlight .si{color:#50a04f}.highlight .sx{color:#50a04f}.highlight .sr{color:#0083bb}.highlight .s1{color:#50a04f}.highlight .ss{color:#0083bb}.highlight .bp{color:#ca7601}.highlight .vc{color:#ca7601}.highlight .vg{color:#ca7601}.highlight .vi{color:#e35549}.highlight .il{color:#b66a00}.highlight .gu{color:#75715e}.highlight .gd{color:#e05151}.highlight .gi{color:#43d089}.highlight .language-json .w+.s2{color:#e35549}.highlight .language-json .kc{color:#0083bb}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}html{font-size:.875rem !important}@media(min-width: 31.25rem){html{font-size:1rem !important}}body{font-family:system-ui,-apple-system,blinkmacsystemfont,"Segoe UI",roboto,"Helvetica Neue",arial,sans-serif,"Segoe UI Emoji";font-size:inherit;line-height:1.4;color:#5c5962;background-color:#fff;overflow-wrap:break-word}ol,ul,dl,pre,address,blockquote,table,div,hr,form,fieldset,noscript .table-wrapper{margin-top:0}h1,h2,h3,h4,h5,h6,#toctitle{margin-top:0;margin-bottom:1em;font-weight:500;line-height:1.25;color:#27262b}p{margin-top:1em;margin-bottom:1em}a{color:#7253ed;text-decoration:none}a:not([class]){text-decoration:underline;text-decoration-color:#eeebee;text-underline-offset:2px}a:not([class]):hover{text-decoration-color:rgba(114,83,237,.45)}code{font-family:"SFMono-Regular",menlo,consolas,monospace;font-size:.75em;line-height:1.4}figure,pre{margin:0}li{margin:.25em 0}img{max-width:100%;height:auto}hr{height:1px;padding:0;margin:2rem 0;background-color:#eeebee;border:0}blockquote{margin:10px 0;margin-block-start:0;margin-inline-start:0;padding-left:1rem;border-left:3px solid #eeebee}.side-bar{z-index:0;display:flex;flex-wrap:wrap;background-color:#f5f6fa}@media(min-width: 50rem){.side-bar{flex-flow:column nowrap;position:fixed;width:15.5rem;height:100%;border-right:1px solid #eeebee;align-items:flex-end}}@media(min-width: 66.5rem){.side-bar{width:calc((100% - 66.5rem)/2 + 16.5rem);min-width:16.5rem}}@media(min-width: 50rem){.side-bar+.main{margin-left:15.5rem}}@media(min-width: 66.5rem){.side-bar+.main{margin-left:max(16.5rem,(100% - 66.5rem)/2 + 16.5rem)}}.side-bar+.main .main-header{display:none;background-color:#f5f6fa}@media(min-width: 50rem){.side-bar+.main .main-header{display:flex;background-color:#fff}}.side-bar+.main .main-header.nav-open{display:block}@media(min-width: 50rem){.side-bar+.main .main-header.nav-open{display:flex}}.main{margin:auto}@media(min-width: 50rem){.main{position:relative;max-width:50rem}}.main-content-wrap{padding-top:1rem;padding-bottom:1rem;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.main-content-wrap{padding-right:2rem;padding-left:2rem}}@media(min-width: 50rem){.main-content-wrap{padding-top:2rem;padding-bottom:2rem}}.main-header{z-index:0;border-bottom:1px solid #eeebee}@media(min-width: 50rem){.main-header{display:flex;justify-content:space-between;height:3.75rem}}.site-nav,.site-header,.site-footer{width:100%}@media(min-width: 66.5rem){.site-nav,.site-header,.site-footer{width:16.5rem}}.site-nav{display:none}.site-nav.nav-open{display:block}@media(min-width: 50rem){.site-nav{display:block;padding-top:3rem;padding-bottom:1rem;overflow-y:auto;flex:1 1 auto}}.site-header{display:flex;min-height:3.75rem;align-items:center}@media(min-width: 50rem){.site-header{height:3.75rem;max-height:3.75rem;border-bottom:1px solid #eeebee}}.site-title{flex-grow:1;display:flex;height:100%;align-items:center;padding-top:.75rem;padding-bottom:.75rem;color:#27262b;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.site-title{padding-right:2rem;padding-left:2rem}}.site-title{font-size:1.125rem !important}@media(min-width: 31.25rem){.site-title{font-size:1.5rem !important;line-height:1.25}}@media(min-width: 50rem){.site-title{padding-top:.5rem;padding-bottom:.5rem}}.site-logo{width:100%;height:100%;background-image:url("/assets/images/logo.png");background-repeat:no-repeat;background-position:left center;background-size:contain}.site-button{display:flex;height:100%;padding:1rem;align-items:center}@media(min-width: 50rem){.site-header .site-button{display:none}}.site-title:hover{background-image:linear-gradient(-90deg, rgb(234.8, 236.82, 244.9) 0%, rgba(234.8, 236.82, 244.9, 0.8) 80%, rgba(234.8, 236.82, 244.9, 0) 100%)}.site-button:hover{background-image:linear-gradient(-90deg, rgb(234.8, 236.82, 244.9) 0%, rgba(234.8, 236.82, 244.9, 0.8) 100%)}body{position:relative;padding-bottom:4rem;overflow-y:scroll}@media(min-width: 50rem){body{position:static;padding-bottom:0}}.site-footer{position:absolute;bottom:0;left:0;padding-top:1rem;padding-bottom:1rem;color:#959396;padding-right:1rem;padding-left:1rem}@media(min-width: 50rem){.site-footer{padding-right:2rem;padding-left:2rem}}.site-footer{font-size:.6875rem !important}@media(min-width: 31.25rem){.site-footer{font-size:.75rem !important}}@media(min-width: 50rem){.site-footer{position:static;justify-self:end}}.icon{width:1.5rem;height:1.5rem;color:#7253ed}.main-content{line-height:1.6}.main-content ol,.main-content ul,.main-content dl,.main-content pre,.main-content address,.main-content blockquote,.main-content .table-wrapper{margin-top:.5em}.main-content a{overflow:hidden;text-overflow:ellipsis}.main-content ul,.main-content ol{padding-left:1.5em}.main-content li .highlight{margin-top:.25rem}.main-content ol{list-style-type:none;counter-reset:step-counter}.main-content ol>li{position:relative}.main-content ol>li::before{position:absolute;top:.2em;left:-1.6em;color:#959396;content:counter(step-counter);counter-increment:step-counter}.main-content ol>li::before{font-size:.75rem !important}@media(min-width: 31.25rem){.main-content ol>li::before{font-size:.875rem !important}}@media(min-width: 31.25rem){.main-content ol>li::before{top:.11em}}.main-content ol>li ol{counter-reset:sub-counter}.main-content ol>li ol>li::before{content:counter(sub-counter, lower-alpha);counter-increment:sub-counter}.main-content ul{list-style:none}.main-content ul>li::before{position:absolute;margin-left:-1.4em;color:#959396;content:"β€’"}.main-content .task-list-item::before{content:""}.main-content .task-list-item-checkbox{margin-right:.6em;margin-left:-1.4em}.main-content hr+*{margin-top:0}.main-content h1:first-of-type{margin-top:.5em}.main-content dl{display:grid;grid-template:auto/10em 1fr}.main-content dt,.main-content dd{margin:.25em 0}.main-content dt{grid-column:1;font-weight:500;text-align:right}.main-content dt::after{content:":"}.main-content dd{grid-column:2;margin-bottom:0;margin-left:1em}.main-content dd blockquote:first-child,.main-content dd div:first-child,.main-content dd dl:first-child,.main-content dd dt:first-child,.main-content dd h1:first-child,.main-content dd h2:first-child,.main-content dd h3:first-child,.main-content dd h4:first-child,.main-content dd h5:first-child,.main-content dd h6:first-child,.main-content dd li:first-child,.main-content dd ol:first-child,.main-content dd p:first-child,.main-content dd pre:first-child,.main-content dd table:first-child,.main-content dd ul:first-child,.main-content dd .table-wrapper:first-child{margin-top:0}.main-content dd dl:first-child dt:first-child,.main-content dd dl:first-child dd:nth-child(2),.main-content ol dl:first-child dt:first-child,.main-content ol dl:first-child dd:nth-child(2),.main-content ul dl:first-child dt:first-child,.main-content ul dl:first-child dd:nth-child(2){margin-top:0}.main-content .anchor-heading{position:absolute;right:-1rem;width:1.5rem;height:100%;padding-right:.25rem;padding-left:.25rem;overflow:visible}@media(min-width: 50rem){.main-content .anchor-heading{right:auto;left:-1.5rem}}.main-content .anchor-heading svg{display:inline-block;width:100%;height:100%;color:#7253ed;visibility:hidden}.main-content .anchor-heading:hover svg,.main-content .anchor-heading:focus svg,.main-content h1:hover>.anchor-heading svg,.main-content h2:hover>.anchor-heading svg,.main-content h3:hover>.anchor-heading svg,.main-content h4:hover>.anchor-heading svg,.main-content h5:hover>.anchor-heading svg,.main-content h6:hover>.anchor-heading svg{visibility:visible}.main-content summary{cursor:pointer}.main-content h1,.main-content h2,.main-content h3,.main-content h4,.main-content h5,.main-content h6,.main-content #toctitle{position:relative;margin-top:1.5em;margin-bottom:.25em}.main-content h1+table,.main-content h1+.table-wrapper,.main-content h1+.code-example,.main-content h1+.highlighter-rouge,.main-content h1+.sectionbody .listingblock,.main-content h2+table,.main-content h2+.table-wrapper,.main-content h2+.code-example,.main-content h2+.highlighter-rouge,.main-content h2+.sectionbody .listingblock,.main-content h3+table,.main-content h3+.table-wrapper,.main-content h3+.code-example,.main-content h3+.highlighter-rouge,.main-content h3+.sectionbody .listingblock,.main-content h4+table,.main-content h4+.table-wrapper,.main-content h4+.code-example,.main-content h4+.highlighter-rouge,.main-content h4+.sectionbody .listingblock,.main-content h5+table,.main-content h5+.table-wrapper,.main-content h5+.code-example,.main-content h5+.highlighter-rouge,.main-content h5+.sectionbody .listingblock,.main-content h6+table,.main-content h6+.table-wrapper,.main-content h6+.code-example,.main-content h6+.highlighter-rouge,.main-content h6+.sectionbody .listingblock,.main-content #toctitle+table,.main-content #toctitle+.table-wrapper,.main-content #toctitle+.code-example,.main-content #toctitle+.highlighter-rouge,.main-content #toctitle+.sectionbody .listingblock{margin-top:1em}.main-content h1+p:not(.label),.main-content h2+p:not(.label),.main-content h3+p:not(.label),.main-content h4+p:not(.label),.main-content h5+p:not(.label),.main-content h6+p:not(.label),.main-content #toctitle+p:not(.label){margin-top:0}.main-content>h1:first-child,.main-content>h2:first-child,.main-content>h3:first-child,.main-content>h4:first-child,.main-content>h5:first-child,.main-content>h6:first-child,.main-content>.sect1:first-child>h2,.main-content>.sect2:first-child>h3,.main-content>.sect3:first-child>h4,.main-content>.sect4:first-child>h5,.main-content>.sect5:first-child>h6{margin-top:.5rem}.nav-list{padding:0;margin-top:0;margin-bottom:0;list-style:none}.nav-list .nav-list-item{position:relative;margin:0}.nav-list .nav-list-item{font-size:.875rem !important}@media(min-width: 31.25rem){.nav-list .nav-list-item{font-size:1rem !important}}@media(min-width: 50rem){.nav-list .nav-list-item{font-size:.75rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.nav-list .nav-list-item{font-size:.875rem !important}}.nav-list .nav-list-item .nav-list-link{display:block;min-height:3rem;padding-top:.25rem;padding-bottom:.25rem;line-height:2.5rem;padding-right:3rem;padding-left:1rem}@media(min-width: 50rem){.nav-list .nav-list-item .nav-list-link{min-height:2rem;line-height:1.5rem;padding-right:2rem;padding-left:2rem}}.nav-list .nav-list-item .nav-list-link.external>svg{width:1rem;height:1rem;vertical-align:text-bottom}.nav-list .nav-list-item .nav-list-link.active{font-weight:600;text-decoration:none}.nav-list .nav-list-item .nav-list-link:hover,.nav-list .nav-list-item .nav-list-link.active{background-image:linear-gradient(-90deg, rgb(234.8, 236.82, 244.9) 0%, rgba(234.8, 236.82, 244.9, 0.8) 80%, rgba(234.8, 236.82, 244.9, 0) 100%)}.nav-list .nav-list-item .nav-list-expander{position:absolute;right:0;width:3rem;height:3rem;padding:0.75rem;color:#7253ed}@media(min-width: 50rem){.nav-list .nav-list-item .nav-list-expander{width:2rem;height:2rem;padding:0.5rem}}.nav-list .nav-list-item .nav-list-expander:hover{background-image:linear-gradient(-90deg, rgb(234.8, 236.82, 244.9) 0%, rgba(234.8, 236.82, 244.9, 0.8) 100%)}.nav-list .nav-list-item .nav-list-expander svg{transform:rotate(90deg)}.nav-list .nav-list-item>.nav-list{display:none;padding-left:.75rem;list-style:none}.nav-list .nav-list-item>.nav-list .nav-list-item{position:relative}.nav-list .nav-list-item>.nav-list .nav-list-item .nav-list-link{color:#5c5962}.nav-list .nav-list-item>.nav-list .nav-list-item .nav-list-expander{color:#5c5962}.nav-list .nav-list-item.active>.nav-list-expander svg{transform:rotate(-90deg)}.nav-list .nav-list-item.active>.nav-list{display:block}.nav-category{padding:.5rem 1rem;font-weight:600;text-align:start;text-transform:uppercase;border-bottom:1px solid #eeebee}.nav-category{font-size:.6875rem !important}@media(min-width: 31.25rem){.nav-category{font-size:.75rem !important}}@media(min-width: 50rem){.nav-category{padding:.5rem 2rem;margin-top:1rem;text-align:start}.nav-category:first-child{margin-top:0}}.nav-list.nav-category-list>.nav-list-item{margin:0}.nav-list.nav-category-list>.nav-list-item>.nav-list{padding:0}.nav-list.nav-category-list>.nav-list-item>.nav-list>.nav-list-item>.nav-list-link{color:#7253ed}.nav-list.nav-category-list>.nav-list-item>.nav-list>.nav-list-item>.nav-list-expander{color:#7253ed}.aux-nav{height:100%;overflow-x:auto}.aux-nav{font-size:.6875rem !important}@media(min-width: 31.25rem){.aux-nav{font-size:.75rem !important}}.aux-nav .aux-nav-list{display:flex;height:100%;padding:0;margin:0;list-style:none}.aux-nav .aux-nav-list-item{display:inline-block;height:100%;padding:0;margin:0}@media(min-width: 50rem){.aux-nav{padding-right:1rem}}@media(min-width: 50rem){.breadcrumb-nav{margin-top:-1rem}}.breadcrumb-nav-list{padding-left:0;margin-bottom:.75rem;list-style:none}.breadcrumb-nav-list-item{display:table-cell}.breadcrumb-nav-list-item{font-size:.6875rem !important}@media(min-width: 31.25rem){.breadcrumb-nav-list-item{font-size:.75rem !important}}.breadcrumb-nav-list-item::before{display:none}.breadcrumb-nav-list-item::after{display:inline-block;margin-right:.5rem;margin-left:.5rem;color:#959396;content:"/"}.breadcrumb-nav-list-item:last-child::after{content:""}h1,.text-alpha{font-weight:300}h1,.text-alpha{font-size:2rem !important;line-height:1.25}@media(min-width: 31.25rem){h1,.text-alpha{font-size:2.25rem !important}}h2,.text-beta,#toctitle{font-size:1.125rem !important}@media(min-width: 31.25rem){h2,.text-beta,#toctitle{font-size:1.5rem !important;line-height:1.25}}h3,.text-gamma{font-size:1rem !important}@media(min-width: 31.25rem){h3,.text-gamma{font-size:1.125rem !important}}h4,.text-delta{font-weight:400;text-transform:uppercase;letter-spacing:.1em}h4,.text-delta{font-size:.6875rem !important}@media(min-width: 31.25rem){h4,.text-delta{font-size:.75rem !important}}h4 code{text-transform:none}h5,.text-epsilon{font-size:.75rem !important}@media(min-width: 31.25rem){h5,.text-epsilon{font-size:.875rem !important}}h6,.text-zeta{font-size:.6875rem !important}@media(min-width: 31.25rem){h6,.text-zeta{font-size:.75rem !important}}.text-small{font-size:.6875rem !important}@media(min-width: 31.25rem){.text-small{font-size:.75rem !important}}.text-mono{font-family:"SFMono-Regular",menlo,consolas,monospace !important}.text-left{text-align:left !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.label:not(g),.label-blue:not(g){display:inline-block;padding:.16em .56em;margin-right:.5rem;margin-left:.5rem;color:#fff;text-transform:uppercase;vertical-align:middle;background-color:#2869e6;border-radius:12px}.label:not(g),.label-blue:not(g){font-size:.6875rem !important}@media(min-width: 31.25rem){.label:not(g),.label-blue:not(g){font-size:.75rem !important}}.label-green:not(g){background-color:#009c7b}.label-purple:not(g){background-color:#5e41d0}.label-red:not(g){background-color:#e94c4c}.label-yellow:not(g){color:#44434d;background-color:#f7d12e}.btn{display:inline-block;box-sizing:border-box;padding:.3em 1em;margin:0;font-family:inherit;font-size:inherit;font-weight:500;line-height:1.5;color:#7253ed;text-decoration:none;vertical-align:baseline;cursor:pointer;background-color:#f7f7f7;border-width:0;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);appearance:none}.btn:focus{text-decoration:none;outline:none;box-shadow:0 0 0 3px rgba(0,0,255,.25)}.btn:focus:hover,.btn.selected:focus{box-shadow:0 0 0 3px rgba(0,0,255,.25)}.btn:hover,.btn.zeroclipboard-is-hover{color:rgb(106.4305263158,73.7663157895,236.0336842105)}.btn:hover,.btn:active,.btn.zeroclipboard-is-hover,.btn.zeroclipboard-is-active{text-decoration:none;background-color:hsl(0,0%,95.862745098%)}.btn:active,.btn.selected,.btn.zeroclipboard-is-active{background-color:hsl(0,0%,93.862745098%);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn.selected:hover{background-color:hsl(0,0%,81.2745098039%)}.btn:disabled,.btn:disabled:hover,.btn.disabled,.btn.disabled:hover{color:hsla(0,0%,40%,.5);cursor:default;background-color:rgba(229,229,229,.5);background-image:none;box-shadow:none}.btn-outline{color:#7253ed;background:rgba(0,0,0,0);box-shadow:inset 0 0 0 2px #e6e1e8}.btn-outline:hover,.btn-outline:active,.btn-outline.zeroclipboard-is-hover,.btn-outline.zeroclipboard-is-active{color:rgb(98.8610526316,64.5326315789,235.0673684211);text-decoration:none;background-color:rgba(0,0,0,0);box-shadow:inset 0 0 0 3px #e6e1e8}.btn-outline:focus{text-decoration:none;outline:none;box-shadow:inset 0 0 0 2px #5c5962,0 0 0 3px rgba(0,0,255,.25)}.btn-outline:focus:hover,.btn-outline.selected:focus{box-shadow:inset 0 0 0 2px #5c5962}.btn-primary{color:#fff;background-color:rgb(87.0708860759,56.8227848101,205.9772151899);background-image:linear-gradient(rgb(111.3227848101, 85.4430379747, 213.0569620253), rgb(87.0708860759, 56.8227848101, 205.9772151899));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-primary:hover,.btn-primary.zeroclipboard-is-hover{color:#fff;background-color:rgb(81.0025316456,50.0936708861,202.5063291139);background-image:linear-gradient(rgb(100.9291139241, 73.1772151899, 210.0227848101), rgb(81.0025316456, 50.0936708861, 202.5063291139))}.btn-primary:active,.btn-primary.selected,.btn-primary.zeroclipboard-is-active{background-color:rgb(79.3670886076,49.082278481,198.417721519);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-primary.selected:hover{background-color:rgb(71.1898734177,44.0253164557,177.9746835443)}.btn-purple{color:#fff;background-color:rgb(87.0708860759,56.8227848101,205.9772151899);background-image:linear-gradient(rgb(111.3227848101, 85.4430379747, 213.0569620253), rgb(87.0708860759, 56.8227848101, 205.9772151899));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-purple:hover,.btn-purple.zeroclipboard-is-hover{color:#fff;background-color:rgb(81.0025316456,50.0936708861,202.5063291139);background-image:linear-gradient(rgb(100.9291139241, 73.1772151899, 210.0227848101), rgb(81.0025316456, 50.0936708861, 202.5063291139))}.btn-purple:active,.btn-purple.selected,.btn-purple.zeroclipboard-is-active{background-color:rgb(79.3670886076,49.082278481,198.417721519);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-purple.selected:hover{background-color:rgb(71.1898734177,44.0253164557,177.9746835443)}.btn-blue{color:#fff;background-color:rgb(34.0361111111,126.1916666667,249.7638888889);background-image:linear-gradient(rgb(68.9097222222, 146.5208333333, 250.5902777778), rgb(34.0361111111, 126.1916666667, 249.7638888889));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-blue:hover,.btn-blue.zeroclipboard-is-hover{color:#fff;background-color:rgb(24.0722222222,120.3833333333,249.5277777778);background-image:linear-gradient(rgb(53.9638888889, 137.8083333333, 250.2361111111), rgb(24.0722222222, 120.3833333333, 249.5277777778))}.btn-blue:active,.btn-blue.selected,.btn-blue.zeroclipboard-is-active{background-color:rgb(19.0902777778,117.4791666667,249.4097222222);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-blue.selected:hover{background-color:rgb(5.625,104.625,237.375)}.btn-green{color:#fff;background-color:rgb(16.1242424242,171.6757575758,125.2);background-image:linear-gradient(rgb(19.1893939394, 204.3106060606, 149), rgb(16.1242424242, 171.6757575758, 125.2));box-shadow:0 1px 3px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.12)}.btn-green:hover,.btn-green.zeroclipboard-is-hover{color:#fff;background-color:rgb(15.2484848485,162.3515151515,118.4);background-image:linear-gradient(rgb(17.8757575758, 190.3242424242, 138.8), rgb(15.2484848485, 162.3515151515, 118.4))}.btn-green:active,.btn-green.selected,.btn-green.zeroclipboard-is-active{background-color:rgb(14.8106060606,157.6893939394,115);background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}.btn-green.selected:hover{background-color:rgb(12.6212121212,134.3787878788,98)}.btn-reset{background:none;border:none;margin:0;text-align:inherit;font:inherit;border-radius:0;appearance:none}.search{position:relative;z-index:2;flex-grow:1;height:4rem;padding:.5rem;transition:padding linear 200ms}@media(min-width: 50rem){.search{position:relative !important;width:auto !important;height:100% !important;padding:0;transition:none}}.search-input-wrap{position:relative;z-index:1;height:3rem;overflow:hidden;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);transition:height linear 200ms}@media(min-width: 50rem){.search-input-wrap{position:absolute;width:100%;max-width:33.5rem;height:100% !important;border-radius:0;box-shadow:none;transition:width ease 400ms}}.search-input{position:absolute;width:100%;height:100%;padding:.5rem 1rem .5rem 2.5rem;font-size:1rem;color:#5c5962;background-color:#fff;border-top:0;border-right:0;border-bottom:0;border-left:0;border-radius:0}@media(min-width: 50rem){.search-input{padding:.5rem 1rem .5rem 3.5rem;font-size:.875rem;background-color:#fff;transition:padding-left linear 200ms}}.search-input:focus{outline:0}.search-input:focus+.search-label .search-icon{color:#7253ed}.search-label{position:absolute;display:flex;height:100%;padding-left:1rem}@media(min-width: 50rem){.search-label{padding-left:2rem;transition:padding-left linear 200ms}}.search-label .search-icon{width:1.2rem;height:1.2rem;align-self:center;color:#959396}.search-results{position:absolute;left:0;display:none;width:100%;max-height:calc(100% - 4rem);overflow-y:auto;background-color:#fff;border-bottom-right-radius:4px;border-bottom-left-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}@media(min-width: 50rem){.search-results{top:100%;width:33.5rem;max-height:calc(100vh - 200%) !important}}.search-results-list{padding-left:0;margin-bottom:.25rem;list-style:none}.search-results-list{font-size:.875rem !important}@media(min-width: 31.25rem){.search-results-list{font-size:1rem !important}}@media(min-width: 50rem){.search-results-list{font-size:.75rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.search-results-list{font-size:.875rem !important}}.search-results-list-item{padding:0;margin:0}.search-result{display:block;padding:.25rem .75rem}.search-result:hover,.search-result.active{background-color:rgb(234.8,236.82,244.9)}.search-result-title{display:block;padding-top:.5rem;padding-bottom:.5rem}@media(min-width: 31.25rem){.search-result-title{display:inline-block;width:40%;padding-right:.5rem;vertical-align:top}}.search-result-doc{display:flex;align-items:center;word-wrap:break-word}.search-result-doc.search-result-doc-parent{opacity:.5}.search-result-doc.search-result-doc-parent{font-size:.75rem !important}@media(min-width: 31.25rem){.search-result-doc.search-result-doc-parent{font-size:.875rem !important}}@media(min-width: 50rem){.search-result-doc.search-result-doc-parent{font-size:.6875rem !important}}@media(min-width: 50rem)and (min-width: 31.25rem){.search-result-doc.search-result-doc-parent{font-size:.75rem !important}}.search-result-doc .search-result-icon{width:1rem;height:1rem;margin-right:.5rem;color:#7253ed;flex-shrink:0}.search-result-doc .search-result-doc-title{overflow:auto}.search-result-section{margin-left:1.5rem;word-wrap:break-word}.search-result-rel-url{display:block;margin-left:1.5rem;overflow:hidden;color:#959396;text-overflow:ellipsis;white-space:nowrap}.search-result-rel-url{font-size:.5625rem !important}@media(min-width: 31.25rem){.search-result-rel-url{font-size:.625rem !important}}.search-result-previews{display:block;padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;margin-left:.5rem;color:#959396;word-wrap:break-word;border-left:1px solid;border-left-color:#eeebee}.search-result-previews{font-size:.6875rem !important}@media(min-width: 31.25rem){.search-result-previews{font-size:.75rem !important}}@media(min-width: 31.25rem){.search-result-previews{display:inline-block;width:60%;padding-left:.5rem;margin-left:0;vertical-align:top}}.search-result-preview+.search-result-preview{margin-top:.25rem}.search-result-highlight{font-weight:bold}.search-no-result{padding:.5rem .75rem}.search-no-result{font-size:.75rem !important}@media(min-width: 31.25rem){.search-no-result{font-size:.875rem !important}}.search-button{position:fixed;right:1rem;bottom:1rem;display:flex;width:3.5rem;height:3.5rem;background-color:#fff;border:1px solid rgba(114,83,237,.3);border-radius:1.75rem;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08);align-items:center;justify-content:center}.search-overlay{position:fixed;top:0;left:0;z-index:1;width:0;height:0;background-color:rgba(0,0,0,.3);opacity:0;transition:opacity ease 400ms,width 0s 400ms,height 0s 400ms}.search-active .search{position:fixed;top:0;left:0;width:100%;height:100%;padding:0}.search-active .search-input-wrap{height:4rem;border-radius:0}@media(min-width: 50rem){.search-active .search-input-wrap{width:33.5rem;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}}.search-active .search-input{background-color:#fff}@media(min-width: 50rem){.search-active .search-input{padding-left:2.3rem}}@media(min-width: 50rem){.search-active .search-label{padding-left:.6rem}}.search-active .search-results{display:block}.search-active .search-overlay{width:100%;height:100%;opacity:1;transition:opacity ease 400ms,width 0s,height 0s}@media(min-width: 50rem){.search-active .main{position:fixed;right:0;left:0}}.search-active .main-header{padding-top:4rem}@media(min-width: 50rem){.search-active .main-header{padding-top:0}}.table-wrapper{display:block;width:100%;max-width:100%;margin-bottom:1.5rem;overflow-x:auto;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 10px rgba(0,0,0,.08)}table{display:table;min-width:100%;border-collapse:separate}th,td{min-width:7.5rem;padding:.5rem .75rem;background-color:#fff;border-bottom:1px solid rgba(238,235,238,.5);border-left:1px solid #eeebee}th,td{font-size:.75rem !important}@media(min-width: 31.25rem){th,td{font-size:.875rem !important}}th:first-of-type,td:first-of-type{border-left:0}tbody tr:last-of-type th,tbody tr:last-of-type td{border-bottom:0}tbody tr:last-of-type td{padding-bottom:.75rem}thead th{border-bottom:1px solid #eeebee}:not(pre,figure)>code{padding:.2em .15em;font-weight:400;background-color:#f5f6fa;border:1px solid #eeebee;border-radius:4px}a:visited code{border-color:#eeebee}div.highlighter-rouge,div.listingblock>div.content,figure.highlight{margin-top:0;margin-bottom:.75rem;background-color:#f5f6fa;border-radius:4px;box-shadow:none;-webkit-overflow-scrolling:touch;position:relative;padding:0}div.highlighter-rouge>button,div.listingblock>div.content>button,figure.highlight>button{width:.75rem;opacity:0;position:absolute;top:0;right:0;border:.75rem solid #f5f6fa;background-color:#f5f6fa;color:#5c5962;box-sizing:content-box}div.highlighter-rouge>button svg,div.listingblock>div.content>button svg,figure.highlight>button svg{fill:#5c5962}div.highlighter-rouge>button:active,div.listingblock>div.content>button:active,figure.highlight>button:active{text-decoration:none;outline:none;opacity:1}div.highlighter-rouge>button:focus,div.listingblock>div.content>button:focus,figure.highlight>button:focus{opacity:1}div.highlighter-rouge:hover>button,div.listingblock>div.content:hover>button,figure.highlight:hover>button{cursor:copy;opacity:1}div.highlighter-rouge div.highlight{overflow-x:auto;padding:.75rem;margin:0;border:0}div.highlighter-rouge pre.highlight,div.highlighter-rouge code{padding:0;margin:0;border:0}div.listingblock{margin-top:0;margin-bottom:.75rem}div.listingblock div.content{overflow-x:auto;padding:.75rem;margin:0;border:0}div.listingblock div.content>pre,div.listingblock code{padding:0;margin:0;border:0}figure.highlight pre,figure.highlight :not(pre)>code{overflow-x:auto;padding:.75rem;margin:0;border:0}.highlight .table-wrapper{padding:.75rem 0;margin:0;border:0;box-shadow:none}.highlight .table-wrapper td,.highlight .table-wrapper pre{min-width:0;padding:0;background-color:#f5f6fa;border:0}.highlight .table-wrapper td,.highlight .table-wrapper pre{font-size:.6875rem !important}@media(min-width: 31.25rem){.highlight .table-wrapper td,.highlight .table-wrapper pre{font-size:.75rem !important}}.highlight .table-wrapper td.gl{width:1em;padding-right:.75rem;padding-left:.75rem}.highlight .table-wrapper pre{margin:0;line-height:2}.code-example,.listingblock>.title{padding:.75rem;margin-bottom:.75rem;overflow:auto;border:1px solid #eeebee;border-radius:4px}.code-example+.highlighter-rouge,.code-example+.sectionbody .listingblock,.code-example+.content,.code-example+figure.highlight,.listingblock>.title+.highlighter-rouge,.listingblock>.title+.sectionbody .listingblock,.listingblock>.title+.content,.listingblock>.title+figure.highlight{position:relative;margin-top:-1rem;border-right:1px solid #eeebee;border-bottom:1px solid #eeebee;border-left:1px solid #eeebee;border-top-left-radius:0;border-top-right-radius:0}code.language-mermaid{padding:0;background-color:inherit;border:0}.highlight,pre.highlight{background:#f5f6fa;color:#5c5962}.highlight pre{background:#f5f6fa}.text-grey-dk-000{color:#959396 !important}.text-grey-dk-100{color:#5c5962 !important}.text-grey-dk-200{color:#44434d !important}.text-grey-dk-250{color:#302d36 !important}.text-grey-dk-300{color:#27262b !important}.text-grey-lt-000{color:#f5f6fa !important}.text-grey-lt-100{color:#eeebee !important}.text-grey-lt-200{color:#ecebed !important}.text-grey-lt-300{color:#e6e1e8 !important}.text-blue-000{color:#2c84fa !important}.text-blue-100{color:#2869e6 !important}.text-blue-200{color:#264caf !important}.text-blue-300{color:#183385 !important}.text-green-000{color:#41d693 !important}.text-green-100{color:#11b584 !important}.text-green-200{color:#009c7b !important}.text-green-300{color:#026e57 !important}.text-purple-000{color:#7253ed !important}.text-purple-100{color:#5e41d0 !important}.text-purple-200{color:#4e26af !important}.text-purple-300{color:#381885 !important}.text-yellow-000{color:#ffeb82 !important}.text-yellow-100{color:#fadf50 !important}.text-yellow-200{color:#f7d12e !important}.text-yellow-300{color:#e7af06 !important}.text-red-000{color:#f77e7e !important}.text-red-100{color:#f96e65 !important}.text-red-200{color:#e94c4c !important}.text-red-300{color:#dd2e2e !important}.bg-grey-dk-000{background-color:#959396 !important}.bg-grey-dk-100{background-color:#5c5962 !important}.bg-grey-dk-200{background-color:#44434d !important}.bg-grey-dk-250{background-color:#302d36 !important}.bg-grey-dk-300{background-color:#27262b !important}.bg-grey-lt-000{background-color:#f5f6fa !important}.bg-grey-lt-100{background-color:#eeebee !important}.bg-grey-lt-200{background-color:#ecebed !important}.bg-grey-lt-300{background-color:#e6e1e8 !important}.bg-blue-000{background-color:#2c84fa !important}.bg-blue-100{background-color:#2869e6 !important}.bg-blue-200{background-color:#264caf !important}.bg-blue-300{background-color:#183385 !important}.bg-green-000{background-color:#41d693 !important}.bg-green-100{background-color:#11b584 !important}.bg-green-200{background-color:#009c7b !important}.bg-green-300{background-color:#026e57 !important}.bg-purple-000{background-color:#7253ed !important}.bg-purple-100{background-color:#5e41d0 !important}.bg-purple-200{background-color:#4e26af !important}.bg-purple-300{background-color:#381885 !important}.bg-yellow-000{background-color:#ffeb82 !important}.bg-yellow-100{background-color:#fadf50 !important}.bg-yellow-200{background-color:#f7d12e !important}.bg-yellow-300{background-color:#e7af06 !important}.bg-red-000{background-color:#f77e7e !important}.bg-red-100{background-color:#f96e65 !important}.bg-red-200{background-color:#e94c4c !important}.bg-red-300{background-color:#dd2e2e !important}.d-block{display:block !important}.d-flex{display:flex !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-none{display:none !important}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 20rem){.d-xs-block{display:block !important}.d-xs-flex{display:flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 31.25rem){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 50rem){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 66.5rem){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}@media(min-width: 87.5rem){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-none{display:none !important}}.float-left{float:left !important}.float-right{float:right !important}.flex-justify-start{justify-content:flex-start !important}.flex-justify-end{justify-content:flex-end !important}.flex-justify-between{justify-content:space-between !important}.flex-justify-around{justify-content:space-around !important}.v-align-baseline{vertical-align:baseline !important}.v-align-bottom{vertical-align:bottom !important}.v-align-middle{vertical-align:middle !important}.v-align-text-bottom{vertical-align:text-bottom !important}.v-align-text-top{vertical-align:text-top !important}.v-align-top{vertical-align:top !important}.fs-1{font-size:.5625rem !important}@media(min-width: 31.25rem){.fs-1{font-size:.625rem !important}}.fs-2{font-size:.6875rem !important}@media(min-width: 31.25rem){.fs-2{font-size:.75rem !important}}.fs-3{font-size:.75rem !important}@media(min-width: 31.25rem){.fs-3{font-size:.875rem !important}}.fs-4{font-size:.875rem !important}@media(min-width: 31.25rem){.fs-4{font-size:1rem !important}}.fs-5{font-size:1rem !important}@media(min-width: 31.25rem){.fs-5{font-size:1.125rem !important}}.fs-6{font-size:1.125rem !important}@media(min-width: 31.25rem){.fs-6{font-size:1.5rem !important;line-height:1.25}}.fs-7{font-size:1.5rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-7{font-size:2rem !important}}.fs-8{font-size:2rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-8{font-size:2.25rem !important}}.fs-9{font-size:2.25rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-9{font-size:2.625rem !important}}.fs-10{font-size:2.625rem !important;line-height:1.25}@media(min-width: 31.25rem){.fs-10{font-size:3rem !important}}.fw-300{font-weight:300 !important}.fw-400{font-weight:400 !important}.fw-500{font-weight:500 !important}.fw-700{font-weight:700 !important}.lh-0{line-height:0 !important}.lh-default{line-height:1.4}.lh-tight{line-height:1.25}.ls-5{letter-spacing:.05em !important}.ls-10{letter-spacing:.1em !important}.ls-0{letter-spacing:0 !important}.text-uppercase{text-transform:uppercase !important}.list-style-none{padding:0 !important;margin:0 !important;list-style:none !important}.list-style-none li::before{display:none !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-0{margin-right:-0 !important;margin-left:-0 !important}.mx-0-auto{margin-right:auto !important;margin-left:auto !important}.m-1{margin:0.25rem !important}.mt-1{margin-top:0.25rem !important}.mr-1{margin-right:0.25rem !important}.mb-1{margin-bottom:0.25rem !important}.ml-1{margin-left:0.25rem !important}.mx-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-1-auto{margin-right:auto !important;margin-left:auto !important}.m-2{margin:0.5rem !important}.mt-2{margin-top:0.5rem !important}.mr-2{margin-right:0.5rem !important}.mb-2{margin-bottom:0.5rem !important}.ml-2{margin-left:0.5rem !important}.mx-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-2-auto{margin-right:auto !important;margin-left:auto !important}.m-3{margin:0.75rem !important}.mt-3{margin-top:0.75rem !important}.mr-3{margin-right:0.75rem !important}.mb-3{margin-bottom:0.75rem !important}.ml-3{margin-left:0.75rem !important}.mx-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}.mx-3-auto{margin-right:auto !important;margin-left:auto !important}.m-4{margin:1rem !important}.mt-4{margin-top:1rem !important}.mr-4{margin-right:1rem !important}.mb-4{margin-bottom:1rem !important}.ml-4{margin-left:1rem !important}.mx-4{margin-right:1rem !important;margin-left:1rem !important}.my-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-4{margin-right:-1rem !important;margin-left:-1rem !important}.mx-4-auto{margin-right:auto !important;margin-left:auto !important}.m-5{margin:1.5rem !important}.mt-5{margin-top:1.5rem !important}.mr-5{margin-right:1.5rem !important}.mb-5{margin-bottom:1.5rem !important}.ml-5{margin-left:1.5rem !important}.mx-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-5-auto{margin-right:auto !important;margin-left:auto !important}.m-6{margin:2rem !important}.mt-6{margin-top:2rem !important}.mr-6{margin-right:2rem !important}.mb-6{margin-bottom:2rem !important}.ml-6{margin-left:2rem !important}.mx-6{margin-right:2rem !important;margin-left:2rem !important}.my-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-6{margin-right:-2rem !important;margin-left:-2rem !important}.mx-6-auto{margin-right:auto !important;margin-left:auto !important}.m-7{margin:2.5rem !important}.mt-7{margin-top:2.5rem !important}.mr-7{margin-right:2.5rem !important}.mb-7{margin-bottom:2.5rem !important}.ml-7{margin-left:2.5rem !important}.mx-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}.mx-7-auto{margin-right:auto !important;margin-left:auto !important}.m-8{margin:3rem !important}.mt-8{margin-top:3rem !important}.mr-8{margin-right:3rem !important}.mb-8{margin-bottom:3rem !important}.ml-8{margin-left:3rem !important}.mx-8{margin-right:3rem !important;margin-left:3rem !important}.my-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-8{margin-right:-3rem !important;margin-left:-3rem !important}.mx-8-auto{margin-right:auto !important;margin-left:auto !important}.m-9{margin:3.5rem !important}.mt-9{margin-top:3.5rem !important}.mr-9{margin-right:3.5rem !important}.mb-9{margin-bottom:3.5rem !important}.ml-9{margin-left:3.5rem !important}.mx-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}.mx-9-auto{margin-right:auto !important;margin-left:auto !important}.m-10{margin:4rem !important}.mt-10{margin-top:4rem !important}.mr-10{margin-right:4rem !important}.mb-10{margin-bottom:4rem !important}.ml-10{margin-left:4rem !important}.mx-10{margin-right:4rem !important;margin-left:4rem !important}.my-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-10{margin-right:-4rem !important;margin-left:-4rem !important}.mx-10-auto{margin-right:auto !important;margin-left:auto !important}@media(min-width: 20rem){.m-xs-0{margin:0 !important}.mt-xs-0{margin-top:0 !important}.mr-xs-0{margin-right:0 !important}.mb-xs-0{margin-bottom:0 !important}.ml-xs-0{margin-left:0 !important}.mx-xs-0{margin-right:0 !important;margin-left:0 !important}.my-xs-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-xs-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 20rem){.m-xs-1{margin:0.25rem !important}.mt-xs-1{margin-top:0.25rem !important}.mr-xs-1{margin-right:0.25rem !important}.mb-xs-1{margin-bottom:0.25rem !important}.ml-xs-1{margin-left:0.25rem !important}.mx-xs-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-xs-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-xs-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 20rem){.m-xs-2{margin:0.5rem !important}.mt-xs-2{margin-top:0.5rem !important}.mr-xs-2{margin-right:0.5rem !important}.mb-xs-2{margin-bottom:0.5rem !important}.ml-xs-2{margin-left:0.5rem !important}.mx-xs-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-xs-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-xs-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 20rem){.m-xs-3{margin:0.75rem !important}.mt-xs-3{margin-top:0.75rem !important}.mr-xs-3{margin-right:0.75rem !important}.mb-xs-3{margin-bottom:0.75rem !important}.ml-xs-3{margin-left:0.75rem !important}.mx-xs-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-xs-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-xs-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 20rem){.m-xs-4{margin:1rem !important}.mt-xs-4{margin-top:1rem !important}.mr-xs-4{margin-right:1rem !important}.mb-xs-4{margin-bottom:1rem !important}.ml-xs-4{margin-left:1rem !important}.mx-xs-4{margin-right:1rem !important;margin-left:1rem !important}.my-xs-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-xs-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 20rem){.m-xs-5{margin:1.5rem !important}.mt-xs-5{margin-top:1.5rem !important}.mr-xs-5{margin-right:1.5rem !important}.mb-xs-5{margin-bottom:1.5rem !important}.ml-xs-5{margin-left:1.5rem !important}.mx-xs-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-xs-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-xs-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 20rem){.m-xs-6{margin:2rem !important}.mt-xs-6{margin-top:2rem !important}.mr-xs-6{margin-right:2rem !important}.mb-xs-6{margin-bottom:2rem !important}.ml-xs-6{margin-left:2rem !important}.mx-xs-6{margin-right:2rem !important;margin-left:2rem !important}.my-xs-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-xs-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 20rem){.m-xs-7{margin:2.5rem !important}.mt-xs-7{margin-top:2.5rem !important}.mr-xs-7{margin-right:2.5rem !important}.mb-xs-7{margin-bottom:2.5rem !important}.ml-xs-7{margin-left:2.5rem !important}.mx-xs-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-xs-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-xs-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 20rem){.m-xs-8{margin:3rem !important}.mt-xs-8{margin-top:3rem !important}.mr-xs-8{margin-right:3rem !important}.mb-xs-8{margin-bottom:3rem !important}.ml-xs-8{margin-left:3rem !important}.mx-xs-8{margin-right:3rem !important;margin-left:3rem !important}.my-xs-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-xs-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 20rem){.m-xs-9{margin:3.5rem !important}.mt-xs-9{margin-top:3.5rem !important}.mr-xs-9{margin-right:3.5rem !important}.mb-xs-9{margin-bottom:3.5rem !important}.ml-xs-9{margin-left:3.5rem !important}.mx-xs-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-xs-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-xs-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 20rem){.m-xs-10{margin:4rem !important}.mt-xs-10{margin-top:4rem !important}.mr-xs-10{margin-right:4rem !important}.mb-xs-10{margin-bottom:4rem !important}.ml-xs-10{margin-left:4rem !important}.mx-xs-10{margin-right:4rem !important;margin-left:4rem !important}.my-xs-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-xs-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 31.25rem){.m-sm-0{margin:0 !important}.mt-sm-0{margin-top:0 !important}.mr-sm-0{margin-right:0 !important}.mb-sm-0{margin-bottom:0 !important}.ml-sm-0{margin-left:0 !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-sm-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 31.25rem){.m-sm-1{margin:0.25rem !important}.mt-sm-1{margin-top:0.25rem !important}.mr-sm-1{margin-right:0.25rem !important}.mb-sm-1{margin-bottom:0.25rem !important}.ml-sm-1{margin-left:0.25rem !important}.mx-sm-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-sm-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-sm-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 31.25rem){.m-sm-2{margin:0.5rem !important}.mt-sm-2{margin-top:0.5rem !important}.mr-sm-2{margin-right:0.5rem !important}.mb-sm-2{margin-bottom:0.5rem !important}.ml-sm-2{margin-left:0.5rem !important}.mx-sm-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-sm-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-sm-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 31.25rem){.m-sm-3{margin:0.75rem !important}.mt-sm-3{margin-top:0.75rem !important}.mr-sm-3{margin-right:0.75rem !important}.mb-sm-3{margin-bottom:0.75rem !important}.ml-sm-3{margin-left:0.75rem !important}.mx-sm-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-sm-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-sm-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 31.25rem){.m-sm-4{margin:1rem !important}.mt-sm-4{margin-top:1rem !important}.mr-sm-4{margin-right:1rem !important}.mb-sm-4{margin-bottom:1rem !important}.ml-sm-4{margin-left:1rem !important}.mx-sm-4{margin-right:1rem !important;margin-left:1rem !important}.my-sm-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-sm-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 31.25rem){.m-sm-5{margin:1.5rem !important}.mt-sm-5{margin-top:1.5rem !important}.mr-sm-5{margin-right:1.5rem !important}.mb-sm-5{margin-bottom:1.5rem !important}.ml-sm-5{margin-left:1.5rem !important}.mx-sm-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-sm-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-sm-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 31.25rem){.m-sm-6{margin:2rem !important}.mt-sm-6{margin-top:2rem !important}.mr-sm-6{margin-right:2rem !important}.mb-sm-6{margin-bottom:2rem !important}.ml-sm-6{margin-left:2rem !important}.mx-sm-6{margin-right:2rem !important;margin-left:2rem !important}.my-sm-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-sm-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 31.25rem){.m-sm-7{margin:2.5rem !important}.mt-sm-7{margin-top:2.5rem !important}.mr-sm-7{margin-right:2.5rem !important}.mb-sm-7{margin-bottom:2.5rem !important}.ml-sm-7{margin-left:2.5rem !important}.mx-sm-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-sm-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-sm-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 31.25rem){.m-sm-8{margin:3rem !important}.mt-sm-8{margin-top:3rem !important}.mr-sm-8{margin-right:3rem !important}.mb-sm-8{margin-bottom:3rem !important}.ml-sm-8{margin-left:3rem !important}.mx-sm-8{margin-right:3rem !important;margin-left:3rem !important}.my-sm-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-sm-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 31.25rem){.m-sm-9{margin:3.5rem !important}.mt-sm-9{margin-top:3.5rem !important}.mr-sm-9{margin-right:3.5rem !important}.mb-sm-9{margin-bottom:3.5rem !important}.ml-sm-9{margin-left:3.5rem !important}.mx-sm-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-sm-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-sm-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 31.25rem){.m-sm-10{margin:4rem !important}.mt-sm-10{margin-top:4rem !important}.mr-sm-10{margin-right:4rem !important}.mb-sm-10{margin-bottom:4rem !important}.ml-sm-10{margin-left:4rem !important}.mx-sm-10{margin-right:4rem !important;margin-left:4rem !important}.my-sm-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-sm-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 50rem){.m-md-0{margin:0 !important}.mt-md-0{margin-top:0 !important}.mr-md-0{margin-right:0 !important}.mb-md-0{margin-bottom:0 !important}.ml-md-0{margin-left:0 !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-md-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 50rem){.m-md-1{margin:0.25rem !important}.mt-md-1{margin-top:0.25rem !important}.mr-md-1{margin-right:0.25rem !important}.mb-md-1{margin-bottom:0.25rem !important}.ml-md-1{margin-left:0.25rem !important}.mx-md-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-md-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-md-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 50rem){.m-md-2{margin:0.5rem !important}.mt-md-2{margin-top:0.5rem !important}.mr-md-2{margin-right:0.5rem !important}.mb-md-2{margin-bottom:0.5rem !important}.ml-md-2{margin-left:0.5rem !important}.mx-md-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-md-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-md-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 50rem){.m-md-3{margin:0.75rem !important}.mt-md-3{margin-top:0.75rem !important}.mr-md-3{margin-right:0.75rem !important}.mb-md-3{margin-bottom:0.75rem !important}.ml-md-3{margin-left:0.75rem !important}.mx-md-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-md-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-md-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 50rem){.m-md-4{margin:1rem !important}.mt-md-4{margin-top:1rem !important}.mr-md-4{margin-right:1rem !important}.mb-md-4{margin-bottom:1rem !important}.ml-md-4{margin-left:1rem !important}.mx-md-4{margin-right:1rem !important;margin-left:1rem !important}.my-md-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-md-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 50rem){.m-md-5{margin:1.5rem !important}.mt-md-5{margin-top:1.5rem !important}.mr-md-5{margin-right:1.5rem !important}.mb-md-5{margin-bottom:1.5rem !important}.ml-md-5{margin-left:1.5rem !important}.mx-md-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-md-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-md-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 50rem){.m-md-6{margin:2rem !important}.mt-md-6{margin-top:2rem !important}.mr-md-6{margin-right:2rem !important}.mb-md-6{margin-bottom:2rem !important}.ml-md-6{margin-left:2rem !important}.mx-md-6{margin-right:2rem !important;margin-left:2rem !important}.my-md-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-md-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 50rem){.m-md-7{margin:2.5rem !important}.mt-md-7{margin-top:2.5rem !important}.mr-md-7{margin-right:2.5rem !important}.mb-md-7{margin-bottom:2.5rem !important}.ml-md-7{margin-left:2.5rem !important}.mx-md-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-md-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-md-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 50rem){.m-md-8{margin:3rem !important}.mt-md-8{margin-top:3rem !important}.mr-md-8{margin-right:3rem !important}.mb-md-8{margin-bottom:3rem !important}.ml-md-8{margin-left:3rem !important}.mx-md-8{margin-right:3rem !important;margin-left:3rem !important}.my-md-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-md-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 50rem){.m-md-9{margin:3.5rem !important}.mt-md-9{margin-top:3.5rem !important}.mr-md-9{margin-right:3.5rem !important}.mb-md-9{margin-bottom:3.5rem !important}.ml-md-9{margin-left:3.5rem !important}.mx-md-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-md-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-md-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 50rem){.m-md-10{margin:4rem !important}.mt-md-10{margin-top:4rem !important}.mr-md-10{margin-right:4rem !important}.mb-md-10{margin-bottom:4rem !important}.ml-md-10{margin-left:4rem !important}.mx-md-10{margin-right:4rem !important;margin-left:4rem !important}.my-md-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-md-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 66.5rem){.m-lg-0{margin:0 !important}.mt-lg-0{margin-top:0 !important}.mr-lg-0{margin-right:0 !important}.mb-lg-0{margin-bottom:0 !important}.ml-lg-0{margin-left:0 !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-lg-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 66.5rem){.m-lg-1{margin:0.25rem !important}.mt-lg-1{margin-top:0.25rem !important}.mr-lg-1{margin-right:0.25rem !important}.mb-lg-1{margin-bottom:0.25rem !important}.ml-lg-1{margin-left:0.25rem !important}.mx-lg-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-lg-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-lg-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 66.5rem){.m-lg-2{margin:0.5rem !important}.mt-lg-2{margin-top:0.5rem !important}.mr-lg-2{margin-right:0.5rem !important}.mb-lg-2{margin-bottom:0.5rem !important}.ml-lg-2{margin-left:0.5rem !important}.mx-lg-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-lg-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-lg-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 66.5rem){.m-lg-3{margin:0.75rem !important}.mt-lg-3{margin-top:0.75rem !important}.mr-lg-3{margin-right:0.75rem !important}.mb-lg-3{margin-bottom:0.75rem !important}.ml-lg-3{margin-left:0.75rem !important}.mx-lg-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-lg-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-lg-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 66.5rem){.m-lg-4{margin:1rem !important}.mt-lg-4{margin-top:1rem !important}.mr-lg-4{margin-right:1rem !important}.mb-lg-4{margin-bottom:1rem !important}.ml-lg-4{margin-left:1rem !important}.mx-lg-4{margin-right:1rem !important;margin-left:1rem !important}.my-lg-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-lg-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 66.5rem){.m-lg-5{margin:1.5rem !important}.mt-lg-5{margin-top:1.5rem !important}.mr-lg-5{margin-right:1.5rem !important}.mb-lg-5{margin-bottom:1.5rem !important}.ml-lg-5{margin-left:1.5rem !important}.mx-lg-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-lg-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-lg-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 66.5rem){.m-lg-6{margin:2rem !important}.mt-lg-6{margin-top:2rem !important}.mr-lg-6{margin-right:2rem !important}.mb-lg-6{margin-bottom:2rem !important}.ml-lg-6{margin-left:2rem !important}.mx-lg-6{margin-right:2rem !important;margin-left:2rem !important}.my-lg-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-lg-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 66.5rem){.m-lg-7{margin:2.5rem !important}.mt-lg-7{margin-top:2.5rem !important}.mr-lg-7{margin-right:2.5rem !important}.mb-lg-7{margin-bottom:2.5rem !important}.ml-lg-7{margin-left:2.5rem !important}.mx-lg-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-lg-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-lg-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 66.5rem){.m-lg-8{margin:3rem !important}.mt-lg-8{margin-top:3rem !important}.mr-lg-8{margin-right:3rem !important}.mb-lg-8{margin-bottom:3rem !important}.ml-lg-8{margin-left:3rem !important}.mx-lg-8{margin-right:3rem !important;margin-left:3rem !important}.my-lg-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-lg-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 66.5rem){.m-lg-9{margin:3.5rem !important}.mt-lg-9{margin-top:3.5rem !important}.mr-lg-9{margin-right:3.5rem !important}.mb-lg-9{margin-bottom:3.5rem !important}.ml-lg-9{margin-left:3.5rem !important}.mx-lg-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-lg-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-lg-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 66.5rem){.m-lg-10{margin:4rem !important}.mt-lg-10{margin-top:4rem !important}.mr-lg-10{margin-right:4rem !important}.mb-lg-10{margin-bottom:4rem !important}.ml-lg-10{margin-left:4rem !important}.mx-lg-10{margin-right:4rem !important;margin-left:4rem !important}.my-lg-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-lg-10{margin-right:-4rem !important;margin-left:-4rem !important}}@media(min-width: 87.5rem){.m-xl-0{margin:0 !important}.mt-xl-0{margin-top:0 !important}.mr-xl-0{margin-right:0 !important}.mb-xl-0{margin-bottom:0 !important}.ml-xl-0{margin-left:0 !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.mxn-xl-0{margin-right:-0 !important;margin-left:-0 !important}}@media(min-width: 87.5rem){.m-xl-1{margin:0.25rem !important}.mt-xl-1{margin-top:0.25rem !important}.mr-xl-1{margin-right:0.25rem !important}.mb-xl-1{margin-bottom:0.25rem !important}.ml-xl-1{margin-left:0.25rem !important}.mx-xl-1{margin-right:0.25rem !important;margin-left:0.25rem !important}.my-xl-1{margin-top:0.25rem !important;margin-bottom:0.25rem !important}.mxn-xl-1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}}@media(min-width: 87.5rem){.m-xl-2{margin:0.5rem !important}.mt-xl-2{margin-top:0.5rem !important}.mr-xl-2{margin-right:0.5rem !important}.mb-xl-2{margin-bottom:0.5rem !important}.ml-xl-2{margin-left:0.5rem !important}.mx-xl-2{margin-right:0.5rem !important;margin-left:0.5rem !important}.my-xl-2{margin-top:0.5rem !important;margin-bottom:0.5rem !important}.mxn-xl-2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}}@media(min-width: 87.5rem){.m-xl-3{margin:0.75rem !important}.mt-xl-3{margin-top:0.75rem !important}.mr-xl-3{margin-right:0.75rem !important}.mb-xl-3{margin-bottom:0.75rem !important}.ml-xl-3{margin-left:0.75rem !important}.mx-xl-3{margin-right:0.75rem !important;margin-left:0.75rem !important}.my-xl-3{margin-top:0.75rem !important;margin-bottom:0.75rem !important}.mxn-xl-3{margin-right:-0.75rem !important;margin-left:-0.75rem !important}}@media(min-width: 87.5rem){.m-xl-4{margin:1rem !important}.mt-xl-4{margin-top:1rem !important}.mr-xl-4{margin-right:1rem !important}.mb-xl-4{margin-bottom:1rem !important}.ml-xl-4{margin-left:1rem !important}.mx-xl-4{margin-right:1rem !important;margin-left:1rem !important}.my-xl-4{margin-top:1rem !important;margin-bottom:1rem !important}.mxn-xl-4{margin-right:-1rem !important;margin-left:-1rem !important}}@media(min-width: 87.5rem){.m-xl-5{margin:1.5rem !important}.mt-xl-5{margin-top:1.5rem !important}.mr-xl-5{margin-right:1.5rem !important}.mb-xl-5{margin-bottom:1.5rem !important}.ml-xl-5{margin-left:1.5rem !important}.mx-xl-5{margin-right:1.5rem !important;margin-left:1.5rem !important}.my-xl-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.mxn-xl-5{margin-right:-1.5rem !important;margin-left:-1.5rem !important}}@media(min-width: 87.5rem){.m-xl-6{margin:2rem !important}.mt-xl-6{margin-top:2rem !important}.mr-xl-6{margin-right:2rem !important}.mb-xl-6{margin-bottom:2rem !important}.ml-xl-6{margin-left:2rem !important}.mx-xl-6{margin-right:2rem !important;margin-left:2rem !important}.my-xl-6{margin-top:2rem !important;margin-bottom:2rem !important}.mxn-xl-6{margin-right:-2rem !important;margin-left:-2rem !important}}@media(min-width: 87.5rem){.m-xl-7{margin:2.5rem !important}.mt-xl-7{margin-top:2.5rem !important}.mr-xl-7{margin-right:2.5rem !important}.mb-xl-7{margin-bottom:2.5rem !important}.ml-xl-7{margin-left:2.5rem !important}.mx-xl-7{margin-right:2.5rem !important;margin-left:2.5rem !important}.my-xl-7{margin-top:2.5rem !important;margin-bottom:2.5rem !important}.mxn-xl-7{margin-right:-2.5rem !important;margin-left:-2.5rem !important}}@media(min-width: 87.5rem){.m-xl-8{margin:3rem !important}.mt-xl-8{margin-top:3rem !important}.mr-xl-8{margin-right:3rem !important}.mb-xl-8{margin-bottom:3rem !important}.ml-xl-8{margin-left:3rem !important}.mx-xl-8{margin-right:3rem !important;margin-left:3rem !important}.my-xl-8{margin-top:3rem !important;margin-bottom:3rem !important}.mxn-xl-8{margin-right:-3rem !important;margin-left:-3rem !important}}@media(min-width: 87.5rem){.m-xl-9{margin:3.5rem !important}.mt-xl-9{margin-top:3.5rem !important}.mr-xl-9{margin-right:3.5rem !important}.mb-xl-9{margin-bottom:3.5rem !important}.ml-xl-9{margin-left:3.5rem !important}.mx-xl-9{margin-right:3.5rem !important;margin-left:3.5rem !important}.my-xl-9{margin-top:3.5rem !important;margin-bottom:3.5rem !important}.mxn-xl-9{margin-right:-3.5rem !important;margin-left:-3.5rem !important}}@media(min-width: 87.5rem){.m-xl-10{margin:4rem !important}.mt-xl-10{margin-top:4rem !important}.mr-xl-10{margin-right:4rem !important}.mb-xl-10{margin-bottom:4rem !important}.ml-xl-10{margin-left:4rem !important}.mx-xl-10{margin-right:4rem !important;margin-left:4rem !important}.my-xl-10{margin-top:4rem !important;margin-bottom:4rem !important}.mxn-xl-10{margin-right:-4rem !important;margin-left:-4rem !important}}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-right:0 !important;padding-left:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:0.25rem !important}.pt-1{padding-top:0.25rem !important}.pr-1{padding-right:0.25rem !important}.pb-1{padding-bottom:0.25rem !important}.pl-1{padding-left:0.25rem !important}.px-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-2{padding:0.5rem !important}.pt-2{padding-top:0.5rem !important}.pr-2{padding-right:0.5rem !important}.pb-2{padding-bottom:0.5rem !important}.pl-2{padding-left:0.5rem !important}.px-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-3{padding:0.75rem !important}.pt-3{padding-top:0.75rem !important}.pr-3{padding-right:0.75rem !important}.pb-3{padding-bottom:0.75rem !important}.pl-3{padding-left:0.75rem !important}.px-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-4{padding:1rem !important}.pt-4{padding-top:1rem !important}.pr-4{padding-right:1rem !important}.pb-4{padding-bottom:1rem !important}.pl-4{padding-left:1rem !important}.px-4{padding-right:1rem !important;padding-left:1rem !important}.py-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-5{padding:1.5rem !important}.pt-5{padding-top:1.5rem !important}.pr-5{padding-right:1.5rem !important}.pb-5{padding-bottom:1.5rem !important}.pl-5{padding-left:1.5rem !important}.px-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-6{padding:2rem !important}.pt-6{padding-top:2rem !important}.pr-6{padding-right:2rem !important}.pb-6{padding-bottom:2rem !important}.pl-6{padding-left:2rem !important}.px-6{padding-right:2rem !important;padding-left:2rem !important}.py-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-7{padding:2.5rem !important}.pt-7{padding-top:2.5rem !important}.pr-7{padding-right:2.5rem !important}.pb-7{padding-bottom:2.5rem !important}.pl-7{padding-left:2.5rem !important}.px-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-8{padding:3rem !important}.pt-8{padding-top:3rem !important}.pr-8{padding-right:3rem !important}.pb-8{padding-bottom:3rem !important}.pl-8{padding-left:3rem !important}.px-8{padding-right:3rem !important;padding-left:3rem !important}.py-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-9{padding:3.5rem !important}.pt-9{padding-top:3.5rem !important}.pr-9{padding-right:3.5rem !important}.pb-9{padding-bottom:3.5rem !important}.pl-9{padding-left:3.5rem !important}.px-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-10{padding:4rem !important}.pt-10{padding-top:4rem !important}.pr-10{padding-right:4rem !important}.pb-10{padding-bottom:4rem !important}.pl-10{padding-left:4rem !important}.px-10{padding-right:4rem !important;padding-left:4rem !important}.py-10{padding-top:4rem !important;padding-bottom:4rem !important}@media(min-width: 20rem){.p-xs-0{padding:0 !important}.pt-xs-0{padding-top:0 !important}.pr-xs-0{padding-right:0 !important}.pb-xs-0{padding-bottom:0 !important}.pl-xs-0{padding-left:0 !important}.px-xs-0{padding-right:0 !important;padding-left:0 !important}.py-xs-0{padding-top:0 !important;padding-bottom:0 !important}.p-xs-1{padding:0.25rem !important}.pt-xs-1{padding-top:0.25rem !important}.pr-xs-1{padding-right:0.25rem !important}.pb-xs-1{padding-bottom:0.25rem !important}.pl-xs-1{padding-left:0.25rem !important}.px-xs-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-xs-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-xs-2{padding:0.5rem !important}.pt-xs-2{padding-top:0.5rem !important}.pr-xs-2{padding-right:0.5rem !important}.pb-xs-2{padding-bottom:0.5rem !important}.pl-xs-2{padding-left:0.5rem !important}.px-xs-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-xs-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-xs-3{padding:0.75rem !important}.pt-xs-3{padding-top:0.75rem !important}.pr-xs-3{padding-right:0.75rem !important}.pb-xs-3{padding-bottom:0.75rem !important}.pl-xs-3{padding-left:0.75rem !important}.px-xs-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-xs-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-xs-4{padding:1rem !important}.pt-xs-4{padding-top:1rem !important}.pr-xs-4{padding-right:1rem !important}.pb-xs-4{padding-bottom:1rem !important}.pl-xs-4{padding-left:1rem !important}.px-xs-4{padding-right:1rem !important;padding-left:1rem !important}.py-xs-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-xs-5{padding:1.5rem !important}.pt-xs-5{padding-top:1.5rem !important}.pr-xs-5{padding-right:1.5rem !important}.pb-xs-5{padding-bottom:1.5rem !important}.pl-xs-5{padding-left:1.5rem !important}.px-xs-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-xs-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-xs-6{padding:2rem !important}.pt-xs-6{padding-top:2rem !important}.pr-xs-6{padding-right:2rem !important}.pb-xs-6{padding-bottom:2rem !important}.pl-xs-6{padding-left:2rem !important}.px-xs-6{padding-right:2rem !important;padding-left:2rem !important}.py-xs-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-xs-7{padding:2.5rem !important}.pt-xs-7{padding-top:2.5rem !important}.pr-xs-7{padding-right:2.5rem !important}.pb-xs-7{padding-bottom:2.5rem !important}.pl-xs-7{padding-left:2.5rem !important}.px-xs-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-xs-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-xs-8{padding:3rem !important}.pt-xs-8{padding-top:3rem !important}.pr-xs-8{padding-right:3rem !important}.pb-xs-8{padding-bottom:3rem !important}.pl-xs-8{padding-left:3rem !important}.px-xs-8{padding-right:3rem !important;padding-left:3rem !important}.py-xs-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-xs-9{padding:3.5rem !important}.pt-xs-9{padding-top:3.5rem !important}.pr-xs-9{padding-right:3.5rem !important}.pb-xs-9{padding-bottom:3.5rem !important}.pl-xs-9{padding-left:3.5rem !important}.px-xs-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-xs-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-xs-10{padding:4rem !important}.pt-xs-10{padding-top:4rem !important}.pr-xs-10{padding-right:4rem !important}.pb-xs-10{padding-bottom:4rem !important}.pl-xs-10{padding-left:4rem !important}.px-xs-10{padding-right:4rem !important;padding-left:4rem !important}.py-xs-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 31.25rem){.p-sm-0{padding:0 !important}.pt-sm-0{padding-top:0 !important}.pr-sm-0{padding-right:0 !important}.pb-sm-0{padding-bottom:0 !important}.pl-sm-0{padding-left:0 !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.p-sm-1{padding:0.25rem !important}.pt-sm-1{padding-top:0.25rem !important}.pr-sm-1{padding-right:0.25rem !important}.pb-sm-1{padding-bottom:0.25rem !important}.pl-sm-1{padding-left:0.25rem !important}.px-sm-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-sm-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-sm-2{padding:0.5rem !important}.pt-sm-2{padding-top:0.5rem !important}.pr-sm-2{padding-right:0.5rem !important}.pb-sm-2{padding-bottom:0.5rem !important}.pl-sm-2{padding-left:0.5rem !important}.px-sm-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-sm-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-sm-3{padding:0.75rem !important}.pt-sm-3{padding-top:0.75rem !important}.pr-sm-3{padding-right:0.75rem !important}.pb-sm-3{padding-bottom:0.75rem !important}.pl-sm-3{padding-left:0.75rem !important}.px-sm-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-sm-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-sm-4{padding:1rem !important}.pt-sm-4{padding-top:1rem !important}.pr-sm-4{padding-right:1rem !important}.pb-sm-4{padding-bottom:1rem !important}.pl-sm-4{padding-left:1rem !important}.px-sm-4{padding-right:1rem !important;padding-left:1rem !important}.py-sm-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-sm-5{padding:1.5rem !important}.pt-sm-5{padding-top:1.5rem !important}.pr-sm-5{padding-right:1.5rem !important}.pb-sm-5{padding-bottom:1.5rem !important}.pl-sm-5{padding-left:1.5rem !important}.px-sm-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-sm-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-sm-6{padding:2rem !important}.pt-sm-6{padding-top:2rem !important}.pr-sm-6{padding-right:2rem !important}.pb-sm-6{padding-bottom:2rem !important}.pl-sm-6{padding-left:2rem !important}.px-sm-6{padding-right:2rem !important;padding-left:2rem !important}.py-sm-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-sm-7{padding:2.5rem !important}.pt-sm-7{padding-top:2.5rem !important}.pr-sm-7{padding-right:2.5rem !important}.pb-sm-7{padding-bottom:2.5rem !important}.pl-sm-7{padding-left:2.5rem !important}.px-sm-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-sm-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-sm-8{padding:3rem !important}.pt-sm-8{padding-top:3rem !important}.pr-sm-8{padding-right:3rem !important}.pb-sm-8{padding-bottom:3rem !important}.pl-sm-8{padding-left:3rem !important}.px-sm-8{padding-right:3rem !important;padding-left:3rem !important}.py-sm-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-sm-9{padding:3.5rem !important}.pt-sm-9{padding-top:3.5rem !important}.pr-sm-9{padding-right:3.5rem !important}.pb-sm-9{padding-bottom:3.5rem !important}.pl-sm-9{padding-left:3.5rem !important}.px-sm-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-sm-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-sm-10{padding:4rem !important}.pt-sm-10{padding-top:4rem !important}.pr-sm-10{padding-right:4rem !important}.pb-sm-10{padding-bottom:4rem !important}.pl-sm-10{padding-left:4rem !important}.px-sm-10{padding-right:4rem !important;padding-left:4rem !important}.py-sm-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 50rem){.p-md-0{padding:0 !important}.pt-md-0{padding-top:0 !important}.pr-md-0{padding-right:0 !important}.pb-md-0{padding-bottom:0 !important}.pl-md-0{padding-left:0 !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.p-md-1{padding:0.25rem !important}.pt-md-1{padding-top:0.25rem !important}.pr-md-1{padding-right:0.25rem !important}.pb-md-1{padding-bottom:0.25rem !important}.pl-md-1{padding-left:0.25rem !important}.px-md-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-md-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-md-2{padding:0.5rem !important}.pt-md-2{padding-top:0.5rem !important}.pr-md-2{padding-right:0.5rem !important}.pb-md-2{padding-bottom:0.5rem !important}.pl-md-2{padding-left:0.5rem !important}.px-md-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-md-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-md-3{padding:0.75rem !important}.pt-md-3{padding-top:0.75rem !important}.pr-md-3{padding-right:0.75rem !important}.pb-md-3{padding-bottom:0.75rem !important}.pl-md-3{padding-left:0.75rem !important}.px-md-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-md-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-md-4{padding:1rem !important}.pt-md-4{padding-top:1rem !important}.pr-md-4{padding-right:1rem !important}.pb-md-4{padding-bottom:1rem !important}.pl-md-4{padding-left:1rem !important}.px-md-4{padding-right:1rem !important;padding-left:1rem !important}.py-md-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-md-5{padding:1.5rem !important}.pt-md-5{padding-top:1.5rem !important}.pr-md-5{padding-right:1.5rem !important}.pb-md-5{padding-bottom:1.5rem !important}.pl-md-5{padding-left:1.5rem !important}.px-md-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-md-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-md-6{padding:2rem !important}.pt-md-6{padding-top:2rem !important}.pr-md-6{padding-right:2rem !important}.pb-md-6{padding-bottom:2rem !important}.pl-md-6{padding-left:2rem !important}.px-md-6{padding-right:2rem !important;padding-left:2rem !important}.py-md-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-md-7{padding:2.5rem !important}.pt-md-7{padding-top:2.5rem !important}.pr-md-7{padding-right:2.5rem !important}.pb-md-7{padding-bottom:2.5rem !important}.pl-md-7{padding-left:2.5rem !important}.px-md-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-md-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-md-8{padding:3rem !important}.pt-md-8{padding-top:3rem !important}.pr-md-8{padding-right:3rem !important}.pb-md-8{padding-bottom:3rem !important}.pl-md-8{padding-left:3rem !important}.px-md-8{padding-right:3rem !important;padding-left:3rem !important}.py-md-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-md-9{padding:3.5rem !important}.pt-md-9{padding-top:3.5rem !important}.pr-md-9{padding-right:3.5rem !important}.pb-md-9{padding-bottom:3.5rem !important}.pl-md-9{padding-left:3.5rem !important}.px-md-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-md-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-md-10{padding:4rem !important}.pt-md-10{padding-top:4rem !important}.pr-md-10{padding-right:4rem !important}.pb-md-10{padding-bottom:4rem !important}.pl-md-10{padding-left:4rem !important}.px-md-10{padding-right:4rem !important;padding-left:4rem !important}.py-md-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 66.5rem){.p-lg-0{padding:0 !important}.pt-lg-0{padding-top:0 !important}.pr-lg-0{padding-right:0 !important}.pb-lg-0{padding-bottom:0 !important}.pl-lg-0{padding-left:0 !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.p-lg-1{padding:0.25rem !important}.pt-lg-1{padding-top:0.25rem !important}.pr-lg-1{padding-right:0.25rem !important}.pb-lg-1{padding-bottom:0.25rem !important}.pl-lg-1{padding-left:0.25rem !important}.px-lg-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-lg-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-lg-2{padding:0.5rem !important}.pt-lg-2{padding-top:0.5rem !important}.pr-lg-2{padding-right:0.5rem !important}.pb-lg-2{padding-bottom:0.5rem !important}.pl-lg-2{padding-left:0.5rem !important}.px-lg-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-lg-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-lg-3{padding:0.75rem !important}.pt-lg-3{padding-top:0.75rem !important}.pr-lg-3{padding-right:0.75rem !important}.pb-lg-3{padding-bottom:0.75rem !important}.pl-lg-3{padding-left:0.75rem !important}.px-lg-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-lg-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-lg-4{padding:1rem !important}.pt-lg-4{padding-top:1rem !important}.pr-lg-4{padding-right:1rem !important}.pb-lg-4{padding-bottom:1rem !important}.pl-lg-4{padding-left:1rem !important}.px-lg-4{padding-right:1rem !important;padding-left:1rem !important}.py-lg-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-lg-5{padding:1.5rem !important}.pt-lg-5{padding-top:1.5rem !important}.pr-lg-5{padding-right:1.5rem !important}.pb-lg-5{padding-bottom:1.5rem !important}.pl-lg-5{padding-left:1.5rem !important}.px-lg-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-lg-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-lg-6{padding:2rem !important}.pt-lg-6{padding-top:2rem !important}.pr-lg-6{padding-right:2rem !important}.pb-lg-6{padding-bottom:2rem !important}.pl-lg-6{padding-left:2rem !important}.px-lg-6{padding-right:2rem !important;padding-left:2rem !important}.py-lg-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-lg-7{padding:2.5rem !important}.pt-lg-7{padding-top:2.5rem !important}.pr-lg-7{padding-right:2.5rem !important}.pb-lg-7{padding-bottom:2.5rem !important}.pl-lg-7{padding-left:2.5rem !important}.px-lg-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-lg-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-lg-8{padding:3rem !important}.pt-lg-8{padding-top:3rem !important}.pr-lg-8{padding-right:3rem !important}.pb-lg-8{padding-bottom:3rem !important}.pl-lg-8{padding-left:3rem !important}.px-lg-8{padding-right:3rem !important;padding-left:3rem !important}.py-lg-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-lg-9{padding:3.5rem !important}.pt-lg-9{padding-top:3.5rem !important}.pr-lg-9{padding-right:3.5rem !important}.pb-lg-9{padding-bottom:3.5rem !important}.pl-lg-9{padding-left:3.5rem !important}.px-lg-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-lg-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-lg-10{padding:4rem !important}.pt-lg-10{padding-top:4rem !important}.pr-lg-10{padding-right:4rem !important}.pb-lg-10{padding-bottom:4rem !important}.pl-lg-10{padding-left:4rem !important}.px-lg-10{padding-right:4rem !important;padding-left:4rem !important}.py-lg-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media(min-width: 87.5rem){.p-xl-0{padding:0 !important}.pt-xl-0{padding-top:0 !important}.pr-xl-0{padding-right:0 !important}.pb-xl-0{padding-bottom:0 !important}.pl-xl-0{padding-left:0 !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.p-xl-1{padding:0.25rem !important}.pt-xl-1{padding-top:0.25rem !important}.pr-xl-1{padding-right:0.25rem !important}.pb-xl-1{padding-bottom:0.25rem !important}.pl-xl-1{padding-left:0.25rem !important}.px-xl-1{padding-right:0.25rem !important;padding-left:0.25rem !important}.py-xl-1{padding-top:0.25rem !important;padding-bottom:0.25rem !important}.p-xl-2{padding:0.5rem !important}.pt-xl-2{padding-top:0.5rem !important}.pr-xl-2{padding-right:0.5rem !important}.pb-xl-2{padding-bottom:0.5rem !important}.pl-xl-2{padding-left:0.5rem !important}.px-xl-2{padding-right:0.5rem !important;padding-left:0.5rem !important}.py-xl-2{padding-top:0.5rem !important;padding-bottom:0.5rem !important}.p-xl-3{padding:0.75rem !important}.pt-xl-3{padding-top:0.75rem !important}.pr-xl-3{padding-right:0.75rem !important}.pb-xl-3{padding-bottom:0.75rem !important}.pl-xl-3{padding-left:0.75rem !important}.px-xl-3{padding-right:0.75rem !important;padding-left:0.75rem !important}.py-xl-3{padding-top:0.75rem !important;padding-bottom:0.75rem !important}.p-xl-4{padding:1rem !important}.pt-xl-4{padding-top:1rem !important}.pr-xl-4{padding-right:1rem !important}.pb-xl-4{padding-bottom:1rem !important}.pl-xl-4{padding-left:1rem !important}.px-xl-4{padding-right:1rem !important;padding-left:1rem !important}.py-xl-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-xl-5{padding:1.5rem !important}.pt-xl-5{padding-top:1.5rem !important}.pr-xl-5{padding-right:1.5rem !important}.pb-xl-5{padding-bottom:1.5rem !important}.pl-xl-5{padding-left:1.5rem !important}.px-xl-5{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-xl-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-xl-6{padding:2rem !important}.pt-xl-6{padding-top:2rem !important}.pr-xl-6{padding-right:2rem !important}.pb-xl-6{padding-bottom:2rem !important}.pl-xl-6{padding-left:2rem !important}.px-xl-6{padding-right:2rem !important;padding-left:2rem !important}.py-xl-6{padding-top:2rem !important;padding-bottom:2rem !important}.p-xl-7{padding:2.5rem !important}.pt-xl-7{padding-top:2.5rem !important}.pr-xl-7{padding-right:2.5rem !important}.pb-xl-7{padding-bottom:2.5rem !important}.pl-xl-7{padding-left:2.5rem !important}.px-xl-7{padding-right:2.5rem !important;padding-left:2.5rem !important}.py-xl-7{padding-top:2.5rem !important;padding-bottom:2.5rem !important}.p-xl-8{padding:3rem !important}.pt-xl-8{padding-top:3rem !important}.pr-xl-8{padding-right:3rem !important}.pb-xl-8{padding-bottom:3rem !important}.pl-xl-8{padding-left:3rem !important}.px-xl-8{padding-right:3rem !important;padding-left:3rem !important}.py-xl-8{padding-top:3rem !important;padding-bottom:3rem !important}.p-xl-9{padding:3.5rem !important}.pt-xl-9{padding-top:3.5rem !important}.pr-xl-9{padding-right:3.5rem !important}.pb-xl-9{padding-bottom:3.5rem !important}.pl-xl-9{padding-left:3.5rem !important}.px-xl-9{padding-right:3.5rem !important;padding-left:3.5rem !important}.py-xl-9{padding-top:3.5rem !important;padding-bottom:3.5rem !important}.p-xl-10{padding:4rem !important}.pt-xl-10{padding-top:4rem !important}.pr-xl-10{padding-right:4rem !important}.pb-xl-10{padding-bottom:4rem !important}.pl-xl-10{padding-left:4rem !important}.px-xl-10{padding-right:4rem !important;padding-left:4rem !important}.py-xl-10{padding-top:4rem !important;padding-bottom:4rem !important}}@media print{.site-footer,.site-button,#edit-this-page,#back-to-top,.site-nav,.main-header{display:none !important}.side-bar{width:100%;height:auto;border-right:0 !important}.site-header{border-bottom:1px solid #eeebee}.site-title{font-size:1rem !important;font-weight:700 !important}.text-small{font-size:8pt !important}pre.highlight{border:1px solid #eeebee}.main{max-width:none;margin-left:0}}a.skip-to-main{left:-999px;position:absolute;top:auto;width:1px;height:1px;overflow:hidden;z-index:-999}a.skip-to-main:focus,a.skip-to-main:active{color:#7253ed;background-color:#fff;left:auto;top:auto;width:30%;height:auto;overflow:auto;margin:10px 35%;padding:5px;border-radius:15px;border:4px solid #5e41d0;text-align:center;font-size:1.2em;z-index:999}div.opaque{background-color:#fff}/*# sourceMappingURL=just-the-docs-light.css.map */ \ No newline at end of file diff --git a/jekyll-backup/_site/assets/css/just-the-docs-light.css.map b/jekyll-backup/_site/assets/css/just-the-docs-light.css.map deleted file mode 100644 index 8db1b7d2..00000000 --- a/jekyll-backup/_site/assets/css/just-the-docs-light.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/vendor/OneLightJekyll/syntax.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/vendor/normalize.scss/normalize.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/base.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/color_schemes/light.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/_variables.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/content.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/navigation.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/labels.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/buttons.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/support/mixins/_buttons.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/search.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/tables.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/code.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_colors.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_layout.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_typography.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_lists.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/utilities/_spacing.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/print.scss","../../../../../.asdf/installs/ruby/3.4.1/lib/ruby/gems/3.4.0/gems/just-the-docs-0.10.1/_sass/skiptomain.scss","just-the-docs-light.scss"],"names":[],"mappings":"CAEA,yBAEE,mBACA,cAGF,eACE,mBAGF,gBACE,mBAGF,cACE,cACA,kBAGF,gBACE,WACA,yBAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,cACA,kBAGF,eACE,kBAGF,eACE,gBAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,cACE,cAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,gBAGF,cACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,eACE,cAGF,iCACE,cAGF,8BACE,cC/QF,4EAUA,KACE,iBACA,sBAUF,KACE,SAOF,KACE,cAQF,GACE,cACA,eAWF,GACE,uBACA,SACA,iBAQF,IACE,sBACA,cAUF,EACE,+BAQF,YACE,mBACA,0BACA,iCAOF,SAEE,mBAQF,cAGE,sBACA,cAOF,MACE,cAQF,QAEE,cACA,cACA,kBACA,wBAGF,IACE,eAGF,IACE,WAUF,IACE,kBAWF,sCAKE,oBACA,eACA,iBACA,SAQF,aAGE,iBAQF,cAGE,oBAOF,gDAIE,kBAOF,wHAIE,kBACA,UAOF,4GAIE,8BAOF,SACE,2BAUF,OACE,sBACA,cACA,cACA,eACA,UACA,mBAOF,SACE,wBAOF,SACE,cAQF,6BAEE,sBACA,UAOF,kFAEE,YAQF,cACE,qBACA,oBAOF,yCACE,gBAQF,6BACE,kBACA,aAUF,QACE,cAOF,QACE,kBAUF,SACE,aAOF,SACE,aC1VF,MACE,aCJa,MDOf,EACE,sBAGF,KACE,uBEmBA,KACE,6BClBA,4BHHJ,KEyBI,2BFnBJ,KACE,YIfiB,gHJgBjB,kBACA,YIbiB,IJcjB,MIUY,QJTZ,iBIOM,KJNN,yBAGF,mFAYE,aAGF,4BAOE,aACA,kBACA,gBACA,YI1CyB,KJ2CzB,MIlBY,QJqBd,EACE,eACA,kBAGF,EACE,MItBW,QJuBX,qBAGF,eACE,0BACA,sBI/BY,QJgCZ,0BAEA,qBACE,2CAIJ,KACE,YIvEiB,0CJwEjB,gBACA,YIvEiB,IJ0EnB,WAEE,SAGF,GACE,eAGF,IACE,eACA,YAGF,GACE,WACA,UACA,cACA,iBI/DY,QJgEZ,SAIF,WACE,cAGA,qBACA,sBACA,kBACA,8BK7GF,UACE,UACA,aACA,eACA,iBD6BY,QDrBV,yBEZJ,UAOI,wBACA,eACA,MDwFW,QCvFX,YACA,+BACA,iDAZJ,UAgBI,yCACA,UD+EQ,SDpFR,yBEQF,gBAEI,YD2ES,SDrFX,2BEQF,gBAQI,uDAOF,6BACE,aACA,iBDJQ,QDrBV,yBEuBA,6BAKI,aACA,iBDdA,MCiBF,sCACE,cFjCJ,yBEgCE,sCAII,cAOV,MACE,YF5CE,yBE2CJ,MAII,kBACA,UDyCY,OCrChB,mBACE,YDaK,KCZL,eDYK,KDvDL,cCuDK,KDtDL,aCsDK,KDlEH,yBEoDJ,mBFrCI,cCqDG,KDpDH,aCoDG,MDpEH,yBEoDJ,mBAOI,YDSG,KCRH,eDQG,MCJP,aACE,UACA,gCFlEE,yBEgEJ,aAKI,aACA,8BACA,ODmBY,SCfhB,oCAGE,WF9EE,2BE2EJ,oCAMI,MDGQ,SCCZ,UACE,aAEA,mBACE,cFzFA,yBEqFJ,UAQI,cACA,YDxBG,KCyBH,eD7BG,KC8BH,gBACA,eAIJ,aACE,aACA,WDbc,QCcd,mBFxGE,yBEqGJ,aAMI,ODjBY,QCkBZ,WDlBY,QCmBZ,iCAIJ,YACE,YACA,aACA,YACA,mBACA,YDrDK,OCsDL,eDtDK,OCuDL,MDpGY,QDTZ,cCuDK,KDtDL,aCsDK,KDlEH,yBEiHJ,YFlGI,cCqDG,KDpDH,aCoDG,MF/BL,YACE,8BCtCA,4BEiHJ,YHvEI,4BACA,YEhDuB,MDKvB,yBEiHJ,YAcI,YD/DG,MCgEH,eDhEG,OCqEL,WACE,WACA,YACA,gDACA,4BACA,gCACA,wBAIJ,aACE,aACA,YACA,QDhFK,KCiFL,mBFnJE,yBEuJF,0BACE,cAIJ,kBACE,gJAQF,mBACE,6GASF,KACE,kBACA,eDzGM,KC0GN,kBFlLE,yBE+KJ,KAMI,gBACA,kBAMJ,aACE,kBACA,SACA,OACA,YD9HK,KC+HL,eD/HK,KCgIL,MDlLY,QDLZ,cCuDK,KDtDL,aCsDK,KDlEH,yBE4LJ,aF7KI,cCqDG,KDpDH,aCoDG,MFvEL,aACE,8BCEA,4BE4LJ,aH1LI,6BCFA,yBE4LJ,aAaI,gBACA,kBAIJ,MACE,MD5IK,OC6IL,OD7IK,OC8IL,MDxLW,QElCb,cACE,YFEoB,qJEOlB,gBAGF,gBACE,gBACA,uBAGF,kCAEE,mBAIA,4BACE,WF+CC,OE3CL,iBACE,qBACA,2BAEA,oBACE,kBAEA,4BACE,kBACA,SACA,YACA,MFfM,QEgBN,8BACA,+BJ1BN,4BACE,4BCRA,4BG2BE,4BJfF,8BCZA,4BG2BE,4BAUI,WAIJ,uBACE,0BAGE,kCACE,0CACA,8BAOV,iBACE,gBAGE,4BACE,kBACA,mBACA,MF7CM,QE8CN,YAMJ,sCACE,WAIJ,uCACE,kBACA,mBAKF,mBACE,aAGF,+BACE,gBAGF,iBACE,aACA,4BAGF,kCAEE,eAGF,iBACE,cACA,gBACA,iBAEA,wBACE,YAIJ,iBACE,cACA,gBACA,gBAmBE,wjBACE,aASF,6RAEE,aAKN,8BACE,kBACA,YACA,MFnFG,OEoFH,YACA,cFzFG,OE0FH,aF1FG,OE2FH,iBH1JA,yBGmJF,8BAUI,WACA,cAGF,kCACE,qBACA,WACA,YACA,MF5IO,QE6IP,kBAYF,kVACE,mBAIJ,sBACE,eAGF,8HAOE,kBACA,iBACA,oBAEA,6qCAKE,eAGF,gOACE,aAIJ,kWAWE,WF9JG,MG3EP,UACE,UACA,aACA,gBACA,gBAEA,yBACE,kBACA,SLoBF,yBACE,6BClBA,4BILF,yBL2BE,2BCtBA,yBDOF,yBACE,6BCRA,kDILF,yBLiBE,8BKPA,wCACE,cACA,WH+DC,KG9DD,YHuDC,OGtDD,eHsDC,OGrDD,mBAEE,cH0DD,KGzDC,aHqDD,KDlEH,yBIKA,wCAeI,WHgDD,KG/CC,mBAEE,cH6CH,KG5CG,aH4CH,MGrCD,qDACE,MHkCD,KGjCC,OHiCD,KGhCC,2BAGF,+CACE,gBACA,qBAGF,6FAEE,gJASJ,4CACE,kBAEE,QAGF,MHWC,KGVD,OHUC,KGTD,gBACA,MHrCO,QDzBT,yBIqDA,4CAYI,MHGD,KGFC,OHED,KGDC,gBAGF,kDACE,6GAQA,gDACE,wBAKN,mCACE,aACA,aHtBC,OGuBD,gBAEA,kDACE,kBAEA,iEACE,MH7EI,QGgFN,qEACE,MHjFI,QGuFR,uDAEI,yBAMJ,0CACE,cAMR,cACE,mBACA,gBACA,iBACA,yBACA,gCL/HA,cACE,8BCEA,4BIuHJ,cLrHI,6BCFA,yBIuHJ,cASI,mBACA,WH/DG,KGgEH,iBAEA,0BACE,cAMJ,2CACE,SAEA,qDACE,UAGE,mFACE,MH1HG,QG6HL,uFACE,MH9HG,QGuIb,SACE,YACA,gBLrKA,SACE,8BCEA,4BIgKJ,SL9JI,6BKmKF,uBACE,aACA,YACA,UACA,SACA,gBAGF,4BACE,qBACA,YACA,UACA,SJjLA,yBIgKJ,SAqBI,cHnHG,MDlEH,yBI2LJ,gBAEI,kBAIJ,qBACE,eACA,cHlIK,OGmIL,gBAGF,0BACE,mBL3MA,0BACE,8BCEA,4BIuMJ,0BLrMI,6BKyMF,kCACE,aAGF,iCACE,qBACA,aHjJG,MGkJH,YHlJG,MGmJH,MHnMU,QGoMV,YAIA,4CACE,WCpON,eAEE,gBNoEA,eACE,0BACA,YElEuB,KDKvB,4BKXJ,eN4EI,8BA5BF,wBACE,8BCtCA,4BKJJ,wBN8CI,4BACA,YEhDuB,MFgCzB,eACE,0BC5BA,4BKEJ,eN8BI,+BMzBJ,eAEE,gBACA,yBACA,oBNdA,eACE,8BCEA,4BKOJ,eNLI,6BMcJ,QACE,oBNVA,iBACE,4BCRA,4BKoBJ,iBNRI,8BAfF,cACE,8BCEA,4BKyBJ,cNvBI,6BALF,YACE,8BCEA,4BK8BJ,YN5BI,6BMgCJ,WACE,iEAGF,WACE,2BAGF,aACE,6BAGF,YACE,4BCvDF,iCAEE,qBACA,oBACA,aLoEK,MKnEL,YLmEK,MKlEL,MLiBM,KKhBN,yBACA,sBACA,iBL6BS,QK5BT,mBPLA,iCACE,8BCEA,4BMRJ,iCPUI,6BOKJ,oBACE,iBL2BU,QKxBZ,qBACE,iBLcW,QKXb,kBACE,iBL2BQ,QKxBV,qBACE,MLFY,QKGZ,iBLkBW,QMlDb,KACE,qBACA,sBACA,iBACA,SACA,oBACA,kBACA,gBACA,gBACA,MN2BW,QM1BX,qBACA,wBACA,eACA,iBTTkB,QSUlB,eACA,cNyEc,IMxEd,WACE,qDAEF,gBAEA,WACE,qBACA,aACA,uCAGF,qCAEE,uCAGF,uCAEE,uDAGF,gFAIE,qBACA,yCAGF,uDAGE,yCACA,sBACA,2CAGF,oBACE,0CAKA,oEAEE,wBACA,eACA,sCACA,sBACA,gBAKN,aACE,MNnCW,QMoCX,yBACA,mCAEA,gHAIE,sDACA,qBACA,+BACA,mCAGF,mBACE,qBACA,aACA,WACE,oDAIJ,qDAEE,mCAIJ,aCnGE,MP0BM,KOzBN,iEACA,wIACA,WACE,qDAGF,uDAEE,MPiBI,KOhBJ,iEACA,wIAGF,+EAGE,+DACA,sBACA,2CAGF,4BACE,iEDgFJ,YCvGE,MP0BM,KOzBN,iEACA,wIACA,WACE,qDAGF,qDAEE,MPiBI,KOhBJ,iEACA,wIAGF,4EAGE,+DACA,sBACA,2CAGF,2BACE,iEDoFJ,UC3GE,MP0BM,KOzBN,kEACA,yIACA,WACE,qDAGF,iDAEE,MPiBI,KOhBJ,kEACA,yIAGF,sEAGE,kEACA,sBACA,2CAGF,yBACE,4CDwFJ,WC/GE,MP0BM,KOzBN,yDACA,qHACA,WACE,qDAGF,mDAEE,MPiBI,KOhBJ,yDACA,uHAGF,yEAGE,uDACA,sBACA,2CAGF,0BACE,sDD4FJ,WACE,gBACA,YACA,SACA,mBACA,aACA,gBACA,gBE3HF,QACE,kBACA,UACA,YACA,ORgFM,KQ/EN,QRuEK,MQtEL,gCTME,yBSZJ,QASI,6BACA,sBACA,uBACA,UACA,iBAIJ,mBACE,kBACA,UACA,OR8DK,KQ7DL,gBACA,cRmEc,IQlEd,WACE,qDAEF,+BTdE,yBSKJ,mBAYI,kBACA,WACA,URwEmB,QQvEnB,uBACA,gBACA,gBACA,6BAIJ,cACE,kBACA,WACA,YACA,gCACA,eACA,MRhBY,QQiBZ,iBRnBM,KQoBN,aACA,eACA,gBACA,cACA,gBTvCE,yBS2BJ,cAeI,gCACA,kBACA,iBR7BI,KQ8BJ,sCAGF,oBACE,UAEA,+CACE,MR3BO,QQgCb,cACE,kBACA,aACA,YACA,aRKK,KDlEH,yBSyDJ,cAOI,aRIG,KQHH,sCAGF,2BACE,aACA,cACA,kBACA,MRxDU,QQ4Dd,gBACE,kBACA,OACA,aACA,WACA,6BACA,gBACA,iBRpEM,KQqEN,2BRPc,IQQd,0BRRc,IQSd,WACE,qDTvFA,yBS4EJ,gBAeI,SACA,MRDmB,QQEnB,0CAIJ,qBACE,eACA,cRpCK,OQqCL,gBVnFA,qBACE,6BClBA,4BSiGJ,qBV3EI,2BCtBA,yBDOF,qBACE,6BCRA,kDSiGJ,qBVrFI,8BUgGJ,0BACE,UACA,SAGF,eACE,cACA,sBAEA,2CAEE,iBX3Ha,wBW+HjB,qBACE,cACA,YR7DK,MQ8DL,eR9DK,MDhEH,4BS2HJ,qBAMI,qBACA,UACA,cRnEG,MQoEH,oBAIJ,mBACE,aACA,mBACA,qBAEA,4CACE,WVvIF,4CACE,4BCRA,4BS6IF,4CVjIE,8BCZA,yBDHF,4CACE,+BCEA,kDS6IF,4CV3IE,6BUoJF,uCACE,MRrFG,KQsFH,ORtFG,KQuFH,aRzFG,MQ0FH,MRjIS,QQkIT,cAGF,4CACE,cAIJ,uBACE,mBACA,qBAGF,uBACE,cACA,mBACA,gBACA,MR5JY,QQ6JZ,uBACA,mBV3LA,uBACE,8BCYA,4BSwKJ,uBVhLI,8BU0LJ,wBACE,cACA,YRpHK,MQqHL,eRrHK,MQsHL,aRpHK,KQqHL,YRvHK,MQwHL,MRxKY,QQyKZ,qBACA,YR9GO,UQ+GP,kBRrKY,QFzBZ,wBACE,8BCEA,4BSkLJ,wBVhLI,6BCFA,4BSkLJ,wBAaI,qBACA,UACA,aRjIG,MQkIH,cACA,oBAIJ,8CACE,WRzIK,OQ4IP,yBACE,iBAGF,kBACE,qBVzMA,kBAC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,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,4BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,yBaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,wBAEF,aACE,0BAEF,mBACE,gCAEF,WACE,yBb9BJ,2BaiBE,YACE,yBAEF,WACE,w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BACA,6BAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,KACE,uBAEF,MACE,2BAEF,MACE,6BAEF,MACE,8BAEF,MACE,4BAGF,MACE,6BACA,4BAGF,MACE,2BACA,8BAGF,OACE,8BACA,6BAEF,WACE,6BACA,4BAhCF,KACE,yBAEF,MACE,6BAEF,MACE,+BAEF,MACE,gCAEF,MACE,8BAGF,MACE,+BACA,8BAGF,MACE,6BACA,gCAGF,OACE,gCACA,+BAEF,WACE,6BACA,4BAhCF,MACE,uBAEF,OACE,2BAEF,OACE,6BAEF,OACE,8BAEF,OACE,4BAGF,OACE,6BACA,4BAGF,OACE,2BACA,8BAGF,QACE,8BACA,6BAEF,YACE,6BACA,4BhBlCA,yBgB6CE,QACE,oBAEF,SACE,wBAEF,SACE,0BAEF,SACE,2BAEF,SACE,yBAGF,SACE,0BACA,yBAGF,SACE,wBACA,2BAGF,UACE,2BACA,2BhBzEJ,yBgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,SACE,uBAEF,UACE,2BAEF,UACE,6BAEF,UACE,8BAEF,UACE,4BAGF,UACE,6BACA,4BAGF,UACE,2BACA,8BAGF,WACE,8BACA,8BhBzEJ,4BgB6CE,QACE,oBAEF,SACE,wBAEF,SACE,0BAEF,SACE,2BAEF,SACE,yBAGF,SACE,0BACA,yBAGF,SACE,wBACA,2BAGF,UACE,2BACA,2BhBzEJ,4BgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,4BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,4BgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,4BgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,4BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,4BgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,4BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,4BgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,4BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,4BgB6CE,SACE,uBAEF,UACE,2BAEF,UACE,6BAEF,UACE,8BAEF,UACE,4BAGF,UACE,6BACA,4BAGF,UACE,2BACA,8BAGF,WACE,8BACA,8BhBzEJ,yBgB6CE,QACE,oBAEF,SACE,wBAEF,SACE,0BAEF,SACE,2BAEF,SACE,yBAGF,SACE,0BACA,yBAGF,SACE,wBACA,2BAGF,UACE,2BACA,2BhBzEJ,yBgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,yBgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,yBgB6CE,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,yBgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4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E,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAGF,UACE,iCACA,iChBzEJ,2BgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,2BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,2BgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,2BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,2BgB6CE,QACE,uBAEF,SACE,2BAEF,SACE,6BAEF,SACE,8BAEF,SACE,4BAGF,SACE,6BACA,4BAGF,SACE,2BACA,8BAGF,UACE,8BACA,8BhBzEJ,2BgB6CE,QACE,yBAEF,SACE,6BAEF,SACE,+BAEF,SACE,gCAEF,SACE,8BAGF,SACE,+BACA,8BAGF,SACE,6BACA,gCAGF,UACE,gCACA,gChBzEJ,2BgB6CE,SACE,uBAEF,UACE,2BAEF,UACE,6BAEF,UACE,8BAEF,UACE,4BAGF,UACE,6BACA,4BAGF,UACE,2BACA,8BAGF,WACE,8BACA,8BAaN,KACE,qBAEF,MACE,yBAEF,MACE,2BAEF,MACE,4BAEF,MACE,0BAGF,MACE,2BACA,0BAGF,MACE,yBACA,4BAvBF,KACE,2BAEF,MACE,+BAEF,MACE,iCAEF,MACE,kCAEF,MACE,gCAGF,MACE,iCACA,gCAGF,MACE,+BACA,kCAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,2BAEF,MACE,+BAEF,MACE,iCAEF,MACE,kCAEF,MACE,gCAGF,MACE,iCACA,gCAGF,MACE,+BACA,kCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,KACE,wBAEF,MACE,4BAEF,MACE,8BAEF,MACE,+BAEF,MACE,6BAGF,MACE,8BACA,6BAGF,MACE,4BACA,+BAvBF,KACE,0BAEF,MACE,8BAEF,MACE,gCAEF,MACE,iCAEF,MACE,+BAGF,MACE,gCACA,+BAGF,MACE,8BACA,iCAvBF,MACE,wBAEF,OACE,4BAEF,OACE,8BAEF,OACE,+BAEF,OACE,6BAGF,OACE,8BACA,6BAGF,OACE,4BACA,+BhB7GA,yBgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,4BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,yBgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,2BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gChB/IJ,2BgBwHE,QACE,qBAEF,SACE,yBAEF,SACE,2BAEF,SACE,4BAEF,SACE,0BAGF,SACE,2BACA,0BAGF,SACE,yBACA,4BAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,2BAEF,SACE,+BAEF,SACE,iCAEF,SACE,kCAEF,SACE,gCAGF,SACE,iCACA,gCAGF,SACE,+BACA,kCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,QACE,wBAEF,SACE,4BAEF,SACE,8BAEF,SACE,+BAEF,SACE,6BAGF,SACE,8BACA,6BAGF,SACE,4BACA,+BAvBF,QACE,0BAEF,SACE,8BAEF,SACE,gCAEF,SACE,iCAEF,SACE,+BAGF,SACE,gCACA,+BAGF,SACE,8BACA,iCAvBF,SACE,wBAEF,UACE,4BAEF,UACE,8BAEF,UACE,+BAEF,UACE,6BAGF,UACE,8BACA,6BAGF,UACE,4BACA,gCC3JR,aACE,8EAME,wBAGF,UACE,WACA,YACA,0BAGF,aACE,gCAGF,YACE,0BACA,2BAGF,YACE,yBAGF,cACE,yBAGF,MACE,eACA,eClCJ,eACE,YACA,kBACA,SACA,UACA,WACA,gBACA,aAGF,2CAEE,MjBwBW,QiBvBX,iBjBaM,KiBZN,UACA,SACA,UACA,YACA,cACA,gBACA,YACA,mBACA,yBACA,kBACA,gBACA,YCpBF,WACE,iBlBoBM","sourcesContent":["// Generated with OneLightJekyll applied to Atom's One Light theme\n\n.highlight,\npre.highlight {\n background: #f9f9f9;\n color: #383942;\n}\n\n.highlight pre {\n background: #f9f9f9;\n}\n\n.highlight .hll {\n background: #f9f9f9;\n}\n\n.highlight .c {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .err {\n color: #fff;\n background-color: #e05151;\n}\n\n.highlight .k {\n color: #a625a4;\n}\n\n.highlight .l {\n color: #50a04f;\n}\n\n.highlight .n {\n color: #383942;\n}\n\n.highlight .o {\n color: #383942;\n}\n\n.highlight .p {\n color: #383942;\n}\n\n.highlight .cm {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .cp {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .c1 {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .cs {\n color: #9fa0a6;\n font-style: italic;\n}\n\n.highlight .ge {\n font-style: italic;\n}\n\n.highlight .gs {\n font-weight: 700;\n}\n\n.highlight .kc {\n color: #a625a4;\n}\n\n.highlight .kd {\n color: #a625a4;\n}\n\n.highlight .kn {\n color: #a625a4;\n}\n\n.highlight .kp {\n color: #a625a4;\n}\n\n.highlight .kr {\n color: #a625a4;\n}\n\n.highlight .kt {\n color: #a625a4;\n}\n\n.highlight .ld {\n color: #50a04f;\n}\n\n.highlight .m {\n color: #b66a00;\n}\n\n.highlight .s {\n color: #50a04f;\n}\n\n.highlight .na {\n color: #b66a00;\n}\n\n.highlight .nb {\n color: #ca7601;\n}\n\n.highlight .nc {\n color: #ca7601;\n}\n\n.highlight .no {\n color: #ca7601;\n}\n\n.highlight .nd {\n color: #ca7601;\n}\n\n.highlight .ni {\n color: #ca7601;\n}\n\n.highlight .ne {\n color: #ca7601;\n}\n\n.highlight .nf {\n color: #383942;\n}\n\n.highlight .nl {\n color: #ca7601;\n}\n\n.highlight .nn {\n color: #383942;\n}\n\n.highlight .nx {\n color: #383942;\n}\n\n.highlight .py {\n color: #ca7601;\n}\n\n.highlight .nt {\n color: #e35549;\n}\n\n.highlight .nv {\n color: #ca7601;\n}\n\n.highlight .ow {\n font-weight: 700;\n}\n\n.highlight .w {\n color: #f8f8f2;\n}\n\n.highlight .mf {\n color: #b66a00;\n}\n\n.highlight .mh {\n color: #b66a00;\n}\n\n.highlight .mi {\n color: #b66a00;\n}\n\n.highlight .mo {\n color: #b66a00;\n}\n\n.highlight .sb {\n color: #50a04f;\n}\n\n.highlight .sc {\n color: #50a04f;\n}\n\n.highlight .sd {\n color: #50a04f;\n}\n\n.highlight .s2 {\n color: #50a04f;\n}\n\n.highlight .se {\n color: #50a04f;\n}\n\n.highlight .sh {\n color: #50a04f;\n}\n\n.highlight .si {\n color: #50a04f;\n}\n\n.highlight .sx {\n color: #50a04f;\n}\n\n.highlight .sr {\n color: #0083bb;\n}\n\n.highlight .s1 {\n color: #50a04f;\n}\n\n.highlight .ss {\n color: #0083bb;\n}\n\n.highlight .bp {\n color: #ca7601;\n}\n\n.highlight .vc {\n color: #ca7601;\n}\n\n.highlight .vg {\n color: #ca7601;\n}\n\n.highlight .vi {\n color: #e35549;\n}\n\n.highlight .il {\n color: #b66a00;\n}\n\n.highlight .gu {\n color: #75715e;\n}\n\n.highlight .gd {\n color: #e05151;\n}\n\n.highlight .gi {\n color: #43d089;\n}\n\n.highlight .language-json .w + .s2 {\n color: #e35549;\n}\n\n.highlight .language-json .kc {\n color: #0083bb;\n}\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// Base element style overrides\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\n:root {\n color-scheme: $color-scheme;\n}\n\n* {\n box-sizing: border-box;\n}\n\nhtml {\n scroll-behavior: smooth;\n\n @include fs-4;\n}\n\nbody {\n font-family: $body-font-family;\n font-size: inherit;\n line-height: $body-line-height;\n color: $body-text-color;\n background-color: $body-background-color;\n overflow-wrap: break-word;\n}\n\nol,\nul,\ndl,\npre,\naddress,\nblockquote,\ntable,\ndiv,\nhr,\nform,\nfieldset,\nnoscript .table-wrapper {\n margin-top: 0;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n#toctitle {\n margin-top: 0;\n margin-bottom: 1em;\n font-weight: 500;\n line-height: $body-heading-line-height;\n color: $body-heading-color;\n}\n\np {\n margin-top: 1em;\n margin-bottom: 1em;\n}\n\na {\n color: $link-color;\n text-decoration: none;\n}\n\na:not([class]) {\n text-decoration: underline;\n text-decoration-color: $border-color;\n text-underline-offset: 2px;\n\n &:hover {\n text-decoration-color: rgba($link-color, 0.45);\n }\n}\n\ncode {\n font-family: $mono-font-family;\n font-size: 0.75em;\n line-height: $body-line-height;\n}\n\nfigure,\npre {\n margin: 0;\n}\n\nli {\n margin: 0.25em 0;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\nhr {\n height: 1px;\n padding: 0;\n margin: $sp-6 0;\n background-color: $border-color;\n border: 0;\n}\n\n// adds a GitHub-style sidebar to blockquotes\nblockquote {\n margin: 10px 0;\n\n // resets user-agent stylesheets for blockquotes\n margin-block-start: 0;\n margin-inline-start: 0;\n padding-left: 1rem;\n border-left: 3px solid $border-color;\n}\n","$color-scheme: light !default;\n$body-background-color: $white !default;\n$body-heading-color: $grey-dk-300 !default;\n$body-text-color: $grey-dk-100 !default;\n$link-color: $purple-000 !default;\n$nav-child-link-color: $grey-dk-100 !default;\n$sidebar-color: $grey-lt-000 !default;\n$base-button-color: #f7f7f7 !default;\n$btn-primary-color: $purple-100 !default;\n$code-background-color: $grey-lt-000 !default;\n$feedback-color: darken($sidebar-color, 3%) !default;\n$table-background-color: $white !default;\n$search-background-color: $white !default;\n$search-result-preview-color: $grey-dk-000 !default;\n\n@import \"./vendor/OneLightJekyll/syntax\";\n","@mixin fs-1 {\n & {\n font-size: $font-size-1 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-1-sm !important;\n }\n}\n\n@mixin fs-2 {\n & {\n font-size: $font-size-2 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-3 !important;\n }\n}\n\n@mixin fs-3 {\n & {\n font-size: $font-size-3 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-4 !important;\n }\n}\n\n@mixin fs-4 {\n & {\n font-size: $font-size-4 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-5 !important;\n }\n}\n\n@mixin fs-5 {\n & {\n font-size: $font-size-5 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-6 !important;\n }\n}\n\n@mixin fs-6 {\n & {\n font-size: $font-size-6 !important;\n }\n\n @include mq(sm) {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n}\n\n@mixin fs-7 {\n & {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-8 !important;\n }\n}\n\n@mixin fs-8 {\n & {\n font-size: $font-size-8 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-9 !important;\n }\n}\n\n@mixin fs-9 {\n & {\n font-size: $font-size-9 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10 !important;\n }\n}\n\n@mixin fs-10 {\n & {\n font-size: $font-size-10 !important;\n line-height: $body-heading-line-height;\n }\n\n @include mq(sm) {\n font-size: $font-size-10-sm !important;\n }\n}\n","// Media query\n\n// Media query mixin\n// Usage:\n// @include mq(md) {\n// ..medium and up styles\n// }\n@mixin mq($name) {\n // Retrieves the value from the key\n $value: map-get($media-queries, $name);\n\n // If the key exists in the map\n @if $value {\n // Prints a media query based on the value\n @media (min-width: $value) {\n @content;\n }\n } @else {\n @warn \"No value could be retrieved from `#{$media-query}`. Please make sure it is defined in `$media-queries` map.\";\n }\n}\n\n// Responsive container\n\n@mixin container {\n padding-right: $gutter-spacing-sm;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-right: $gutter-spacing;\n padding-left: $gutter-spacing;\n }\n}\n","// Typography\n\n// prettier-ignore\n$body-font-family: system-ui, -apple-system, blinkmacsystemfont, \"Segoe UI\",\n roboto, \"Helvetica Neue\", arial, sans-serif, \"Segoe UI Emoji\" !default;\n$mono-font-family: \"SFMono-Regular\", menlo, consolas, monospace !default;\n$root-font-size: 16px !default; // DEPRECATED: previously base font-size for rems\n$body-line-height: 1.4 !default;\n$content-line-height: 1.6 !default;\n$body-heading-line-height: 1.25 !default;\n\n// Font size\n// `-sm` suffix is the size at the small (and above) media query\n\n$font-size-1: 0.5625rem !default;\n$font-size-1-sm: 0.625rem !default;\n$font-size-2: 0.6875rem !default; // h4 - uppercased!, h6 not uppercased, text-small\n$font-size-3: 0.75rem !default; // h5\n$font-size-4: 0.875rem !default;\n$font-size-5: 1rem !default; // h3\n$font-size-6: 1.125rem !default; // h2\n$font-size-7: 1.5rem !default;\n$font-size-8: 2rem !default; // h1\n$font-size-9: 2.25rem !default;\n$font-size-10: 2.625rem !default;\n$font-size-10-sm: 3rem !default;\n\n// Colors\n\n$white: #fff !default;\n$grey-dk-000: #959396 !default;\n$grey-dk-100: #5c5962 !default;\n$grey-dk-200: #44434d !default;\n$grey-dk-250: #302d36 !default;\n$grey-dk-300: #27262b !default;\n$grey-lt-000: #f5f6fa !default;\n$grey-lt-100: #eeebee !default;\n$grey-lt-200: #ecebed !default;\n$grey-lt-300: #e6e1e8 !default;\n$purple-000: #7253ed !default;\n$purple-100: #5e41d0 !default;\n$purple-200: #4e26af !default;\n$purple-300: #381885 !default;\n$blue-000: #2c84fa !default;\n$blue-100: #2869e6 !default;\n$blue-200: #264caf !default;\n$blue-300: #183385 !default;\n$green-000: #41d693 !default;\n$green-100: #11b584 !default;\n$green-200: #009c7b !default;\n$green-300: #026e57 !default;\n$yellow-000: #ffeb82 !default;\n$yellow-100: #fadf50 !default;\n$yellow-200: #f7d12e !default;\n$yellow-300: #e7af06 !default;\n$red-000: #f77e7e !default;\n$red-100: #f96e65 !default;\n$red-200: #e94c4c !default;\n$red-300: #dd2e2e !default;\n\n// Spacing\n\n$spacing-unit: 1rem; // 1rem == 16px\n\n$spacers: (\n sp-0: 0,\n sp-1: $spacing-unit * 0.25,\n sp-2: $spacing-unit * 0.5,\n sp-3: $spacing-unit * 0.75,\n sp-4: $spacing-unit,\n sp-5: $spacing-unit * 1.5,\n sp-6: $spacing-unit * 2,\n sp-7: $spacing-unit * 2.5,\n sp-8: $spacing-unit * 3,\n sp-9: $spacing-unit * 3.5,\n sp-10: $spacing-unit * 4,\n) !default;\n$sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px\n$sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px\n$sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px\n$sp-4: map-get($spacers, sp-4) !default; // 1 rem == 16px\n$sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px\n$sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px\n$sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px\n$sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px\n$sp-9: map-get($spacers, sp-9) !default; // 3.5 rem == 56px\n$sp-10: map-get($spacers, sp-10) !default; // 4 rem == 64px\n\n// Borders\n\n$border: 1px solid !default;\n$border-radius: 4px !default;\n$border-color: $grey-lt-100 !default;\n\n// Grid system\n\n$gutter-spacing: $sp-6 !default;\n$gutter-spacing-sm: $sp-4 !default;\n$nav-width: 16.5rem !default;\n$nav-width-md: 15.5rem !default;\n$nav-list-item-height: $sp-6 !default;\n$nav-list-item-height-sm: $sp-8 !default;\n$nav-list-expander-right: true;\n$content-width: 50rem !default;\n$header-height: 3.75rem !default;\n$search-results-width: $content-width - $nav-width !default;\n$transition-duration: 400ms;\n\n// Media queries in pixels\n\n$media-queries: (\n xs: 20rem,\n sm: 31.25rem,\n md: $content-width,\n lg: $content-width + $nav-width,\n xl: 87.5rem,\n) !default;\n","// The basic two column layout\n\n.side-bar {\n z-index: 0;\n display: flex;\n flex-wrap: wrap;\n background-color: $sidebar-color;\n\n @include mq(md) {\n flex-flow: column nowrap;\n position: fixed;\n width: $nav-width-md;\n height: 100%;\n border-right: $border $border-color;\n align-items: flex-end;\n }\n\n @include mq(lg) {\n width: calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width});\n min-width: $nav-width;\n }\n\n & + .main {\n @include mq(md) {\n margin-left: $nav-width-md;\n }\n\n @include mq(lg) {\n // stylelint-disable function-name-case\n // disable for Max(), we want to use the CSS max() function\n margin-left: Max(\n #{$nav-width},\n calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width})\n );\n // stylelint-enable function-name-case\n }\n\n .main-header {\n display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n background-color: $body-background-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\n }\n }\n }\n}\n\n.main {\n margin: auto;\n\n @include mq(md) {\n position: relative;\n max-width: $content-width;\n }\n}\n\n.main-content-wrap {\n padding-top: $gutter-spacing-sm;\n padding-bottom: $gutter-spacing-sm;\n\n @include container;\n\n @include mq(md) {\n padding-top: $gutter-spacing;\n padding-bottom: $gutter-spacing;\n }\n}\n\n.main-header {\n z-index: 0;\n border-bottom: $border $border-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n }\n}\n\n.site-nav,\n.site-header,\n.site-footer {\n width: 100%;\n\n @include mq(lg) {\n width: $nav-width;\n }\n}\n\n.site-nav {\n display: none;\n\n &.nav-open {\n display: block;\n }\n\n @include mq(md) {\n display: block;\n padding-top: $sp-8;\n padding-bottom: $gutter-spacing-sm;\n overflow-y: auto;\n flex: 1 1 auto;\n }\n}\n\n.site-header {\n display: flex;\n min-height: $header-height;\n align-items: center;\n\n @include mq(md) {\n height: $header-height;\n max-height: $header-height;\n border-bottom: $border $border-color;\n }\n}\n\n.site-title {\n flex-grow: 1;\n display: flex;\n height: 100%;\n align-items: center;\n padding-top: $sp-3;\n padding-bottom: $sp-3;\n color: $body-heading-color;\n\n @include container;\n\n @include fs-6;\n\n @include mq(md) {\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n }\n}\n\n@if variable-exists(logo) {\n .site-logo {\n width: 100%;\n height: 100%;\n background-image: url($logo);\n background-repeat: no-repeat;\n background-position: left center;\n background-size: contain;\n }\n}\n\n.site-button {\n display: flex;\n height: 100%;\n padding: $gutter-spacing-sm;\n align-items: center;\n}\n\n@include mq(md) {\n .site-header .site-button {\n display: none;\n }\n}\n\n.site-title:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n}\n\n.site-button:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n}\n\n// stylelint-disable selector-max-type\n\nbody {\n position: relative;\n padding-bottom: $sp-10;\n overflow-y: scroll;\n\n @include mq(md) {\n position: static;\n padding-bottom: 0;\n }\n}\n\n// stylelint-enable selector-max-type\n\n.site-footer {\n position: absolute;\n bottom: 0;\n left: 0;\n padding-top: $sp-4;\n padding-bottom: $sp-4;\n color: $grey-dk-000;\n\n @include container;\n\n @include fs-2;\n\n @include mq(md) {\n position: static;\n justify-self: end;\n }\n}\n\n.icon {\n width: $sp-5;\n height: $sp-5;\n color: $link-color;\n}\n","@charset \"UTF-8\";\n\n// Styles for rendered markdown in the .main-content container\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity, selector-max-id\n\n.main-content {\n line-height: $content-line-height;\n\n ol,\n ul,\n dl,\n pre,\n address,\n blockquote,\n .table-wrapper {\n margin-top: 0.5em;\n }\n\n a {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n ul,\n ol {\n padding-left: 1.5em;\n }\n\n li {\n .highlight {\n margin-top: $sp-1;\n }\n }\n\n ol {\n list-style-type: none;\n counter-reset: step-counter;\n\n > li {\n position: relative;\n\n &::before {\n position: absolute;\n top: 0.2em;\n left: -1.6em;\n color: $grey-dk-000;\n content: counter(step-counter);\n counter-increment: step-counter;\n @include fs-3;\n\n @include mq(sm) {\n top: 0.11em;\n }\n }\n\n ol {\n counter-reset: sub-counter;\n\n > li {\n &::before {\n content: counter(sub-counter, lower-alpha);\n counter-increment: sub-counter;\n }\n }\n }\n }\n }\n\n ul {\n list-style: none;\n\n > li {\n &::before {\n position: absolute;\n margin-left: -1.4em;\n color: $grey-dk-000;\n content: \"β€’\";\n }\n }\n }\n\n .task-list-item {\n &::before {\n content: \"\";\n }\n }\n\n .task-list-item-checkbox {\n margin-right: 0.6em;\n margin-left: -1.4em;\n\n // The same margin-left is used above for ul > li::before\n }\n\n hr + * {\n margin-top: 0;\n }\n\n h1:first-of-type {\n margin-top: 0.5em;\n }\n\n dl {\n display: grid;\n grid-template: auto / 10em 1fr;\n }\n\n dt,\n dd {\n margin: 0.25em 0;\n }\n\n dt {\n grid-column: 1;\n font-weight: 500;\n text-align: right;\n\n &::after {\n content: \":\";\n }\n }\n\n dd {\n grid-column: 2;\n margin-bottom: 0;\n margin-left: 1em;\n\n blockquote,\n div,\n dl,\n dt,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n li,\n ol,\n p,\n pre,\n table,\n ul,\n .table-wrapper {\n &:first-child {\n margin-top: 0;\n }\n }\n }\n\n dd,\n ol,\n ul {\n dl:first-child {\n dt:first-child,\n dd:nth-child(2) {\n margin-top: 0;\n }\n }\n }\n\n .anchor-heading {\n position: absolute;\n right: -$sp-4;\n width: $sp-5;\n height: 100%;\n padding-right: $sp-1;\n padding-left: $sp-1;\n overflow: visible;\n\n @include mq(md) {\n right: auto;\n left: -$sp-5;\n }\n\n svg {\n display: inline-block;\n width: 100%;\n height: 100%;\n color: $link-color;\n visibility: hidden;\n }\n }\n\n .anchor-heading:hover,\n .anchor-heading:focus,\n h1:hover > .anchor-heading,\n h2:hover > .anchor-heading,\n h3:hover > .anchor-heading,\n h4:hover > .anchor-heading,\n h5:hover > .anchor-heading,\n h6:hover > .anchor-heading {\n svg {\n visibility: visible;\n }\n }\n\n summary {\n cursor: pointer;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n #toctitle {\n position: relative;\n margin-top: 1.5em;\n margin-bottom: 0.25em;\n\n + table,\n + .table-wrapper,\n + .code-example,\n + .highlighter-rouge,\n + .sectionbody .listingblock {\n margin-top: 1em;\n }\n\n + p:not(.label) {\n margin-top: 0;\n }\n }\n\n > h1:first-child,\n > h2:first-child,\n > h3:first-child,\n > h4:first-child,\n > h5:first-child,\n > h6:first-child,\n > .sect1:first-child > h2,\n > .sect2:first-child > h3,\n > .sect3:first-child > h4,\n > .sect4:first-child > h5,\n > .sect5:first-child > h6 {\n margin-top: $sp-2;\n }\n}\n","// Main nav, breadcrumb, etc...\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity\n\n.nav-list {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n margin: 0;\n\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n\n .nav-list-link {\n display: block;\n min-height: $nav-list-item-height-sm;\n padding-top: $sp-1;\n padding-bottom: $sp-1;\n line-height: #{$nav-list-item-height-sm - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height-sm;\n padding-left: $gutter-spacing-sm;\n } @else {\n padding-right: $gutter-spacing-sm;\n padding-left: $nav-list-item-height-sm;\n }\n\n @include mq(md) {\n min-height: $nav-list-item-height;\n line-height: #{$nav-list-item-height - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height;\n padding-left: $gutter-spacing;\n } @else {\n padding-right: $gutter-spacing;\n padding-left: $nav-list-item-height;\n }\n }\n\n &.external > svg {\n width: $sp-4;\n height: $sp-4;\n vertical-align: text-bottom;\n }\n\n &.active {\n font-weight: 600;\n text-decoration: none;\n }\n\n &:hover,\n &.active {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n }\n }\n\n .nav-list-expander {\n position: absolute;\n @if $nav-list-expander-right {\n right: 0;\n }\n\n width: $nav-list-item-height-sm;\n height: $nav-list-item-height-sm;\n padding: #{$nav-list-item-height-sm * 0.25};\n color: $link-color;\n\n @include mq(md) {\n width: $nav-list-item-height;\n height: $nav-list-item-height;\n padding: #{$nav-list-item-height * 0.25};\n }\n\n &:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n }\n\n @if $nav-list-expander-right {\n svg {\n transform: rotate(90deg);\n }\n }\n }\n\n > .nav-list {\n display: none;\n padding-left: $sp-3;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n\n .nav-list-link {\n color: $nav-child-link-color;\n }\n\n .nav-list-expander {\n color: $nav-child-link-color;\n }\n }\n }\n\n &.active {\n > .nav-list-expander svg {\n @if $nav-list-expander-right {\n transform: rotate(-90deg);\n } @else {\n transform: rotate(90deg);\n }\n }\n\n > .nav-list {\n display: block;\n }\n }\n }\n}\n\n.nav-category {\n padding: $sp-2 $gutter-spacing-sm;\n font-weight: 600;\n text-align: start;\n text-transform: uppercase;\n border-bottom: $border $border-color;\n @include fs-2;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing;\n margin-top: $gutter-spacing-sm;\n text-align: start;\n\n &:first-child {\n margin-top: 0;\n }\n }\n}\n\n.nav-list.nav-category-list {\n > .nav-list-item {\n margin: 0;\n\n > .nav-list {\n padding: 0;\n\n > .nav-list-item {\n > .nav-list-link {\n color: $link-color;\n }\n\n > .nav-list-expander {\n color: $link-color;\n }\n }\n }\n }\n}\n\n// Aux nav\n\n.aux-nav {\n height: 100%;\n overflow-x: auto;\n @include fs-2;\n\n .aux-nav-list {\n display: flex;\n height: 100%;\n padding: 0;\n margin: 0;\n list-style: none;\n }\n\n .aux-nav-list-item {\n display: inline-block;\n height: 100%;\n padding: 0;\n margin: 0;\n }\n\n @include mq(md) {\n padding-right: $gutter-spacing-sm;\n }\n}\n\n// Breadcrumb nav\n\n.breadcrumb-nav {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n}\n\n.breadcrumb-nav-list {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n}\n\n.breadcrumb-nav-list-item {\n display: table-cell;\n @include fs-2;\n\n &::before {\n display: none;\n }\n\n &::after {\n display: inline-block;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $grey-dk-000;\n content: \"/\";\n }\n\n &:last-child {\n &::after {\n content: \"\";\n }\n }\n}\n","// Typography\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\nh1,\n.text-alpha {\n font-weight: 300;\n\n @include fs-8;\n}\n\nh2,\n.text-beta,\n#toctitle {\n @include fs-6;\n}\n\nh3,\n.text-gamma {\n @include fs-5;\n}\n\nh4,\n.text-delta {\n font-weight: 400;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n\n @include fs-2;\n}\n\nh4 code {\n text-transform: none;\n}\n\nh5,\n.text-epsilon {\n @include fs-3;\n}\n\nh6,\n.text-zeta {\n @include fs-2;\n}\n\n.text-small {\n @include fs-2;\n}\n\n.text-mono {\n font-family: $mono-font-family !important;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n","// Labels (not the form kind)\n\n// this :not() prevents a style clash with Mermaid.js's\n// diagram labels, which also use .label\n// for more, see https://github.com/just-the-docs/just-the-docs/issues/1272\n// and the accompanying PR\n.label:not(g),\n.label-blue:not(g) {\n display: inline-block;\n padding: 0.16em 0.56em;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $white;\n text-transform: uppercase;\n vertical-align: middle;\n background-color: $blue-100;\n border-radius: 12px;\n\n @include fs-2;\n}\n\n.label-green:not(g) {\n background-color: $green-200;\n}\n\n.label-purple:not(g) {\n background-color: $purple-100;\n}\n\n.label-red:not(g) {\n background-color: $red-200;\n}\n\n.label-yellow:not(g) {\n color: $grey-dk-200;\n background-color: $yellow-200;\n}\n","// Buttons and things that look like buttons\n// stylelint-disable color-named\n\n.btn {\n display: inline-block;\n box-sizing: border-box;\n padding: 0.3em 1em;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n line-height: 1.5;\n color: $link-color;\n text-decoration: none;\n vertical-align: baseline;\n cursor: pointer;\n background-color: $base-button-color;\n border-width: 0;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n appearance: none;\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: darken($link-color, 2%);\n }\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n text-decoration: none;\n background-color: darken($base-button-color, 1%);\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($base-button-color, 3%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken(#dcdcdc, 5%);\n }\n\n &:disabled,\n &.disabled {\n &,\n &:hover {\n color: rgba(102, 102, 102, 0.5);\n cursor: default;\n background-color: rgba(229, 229, 229, 0.5);\n background-image: none;\n box-shadow: none;\n }\n }\n}\n\n.btn-outline {\n color: $link-color;\n background: transparent;\n box-shadow: inset 0 0 0 2px $grey-lt-300;\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n color: darken($link-color, 4%);\n text-decoration: none;\n background-color: transparent;\n box-shadow: inset 0 0 0 3px $grey-lt-300;\n }\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow:\n inset 0 0 0 2px $grey-dk-100,\n 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: inset 0 0 0 2px $grey-dk-100;\n }\n}\n\n.btn-primary {\n @include btn-color($white, $btn-primary-color);\n}\n\n.btn-purple {\n @include btn-color($white, $purple-100);\n}\n\n.btn-blue {\n @include btn-color($white, $blue-000);\n}\n\n.btn-green {\n @include btn-color($white, $green-100);\n}\n\n.btn-reset {\n background: none;\n border: none;\n margin: 0;\n text-align: inherit;\n font: inherit;\n border-radius: 0;\n appearance: none;\n}\n","// Colored button\n\n@mixin btn-color($fg, $bg) {\n color: $fg;\n background-color: darken($bg, 2%);\n background-image: linear-gradient(lighten($bg, 5%), darken($bg, 2%));\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.25),\n 0 4px 10px rgba(0, 0, 0, 0.12);\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: $fg;\n background-color: darken($bg, 4%);\n background-image: linear-gradient((lighten($bg, 2%), darken($bg, 4%)));\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($bg, 5%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken($bg, 10%);\n }\n}\n","// Search input and autocomplete\n\n.search {\n position: relative;\n z-index: 2;\n flex-grow: 1;\n height: $sp-10;\n padding: $sp-2;\n transition: padding linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: relative !important;\n width: auto !important;\n height: 100% !important;\n padding: 0;\n transition: none;\n }\n}\n\n.search-input-wrap {\n position: relative;\n z-index: 1;\n height: $sp-8;\n overflow: hidden;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n transition: height linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: absolute;\n width: 100%;\n max-width: $search-results-width;\n height: 100% !important;\n border-radius: 0;\n box-shadow: none;\n transition: width ease $transition-duration;\n }\n}\n\n.search-input {\n position: absolute;\n width: 100%;\n height: 100%;\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing-sm + $sp-5};\n font-size: 1rem;\n color: $body-text-color;\n background-color: $search-background-color;\n border-top: 0;\n border-right: 0;\n border-bottom: 0;\n border-left: 0;\n border-radius: 0;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing + $sp-5};\n font-size: 0.875rem;\n background-color: $body-background-color;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n &:focus {\n outline: 0;\n\n + .search-label .search-icon {\n color: $link-color;\n }\n }\n}\n\n.search-label {\n position: absolute;\n display: flex;\n height: 100%;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-left: $gutter-spacing;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n .search-icon {\n width: #{$sp-4 * 1.2};\n height: #{$sp-4 * 1.2};\n align-self: center;\n color: $grey-dk-000;\n }\n}\n\n.search-results {\n position: absolute;\n left: 0;\n display: none;\n width: 100%;\n max-height: calc(100% - #{$sp-10});\n overflow-y: auto;\n background-color: $search-background-color;\n border-bottom-right-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n\n @include mq(md) {\n top: 100%;\n width: $search-results-width;\n max-height: calc(100vh - 200%) !important;\n }\n}\n\n.search-results-list {\n padding-left: 0;\n margin-bottom: $sp-1;\n list-style: none;\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n}\n\n.search-results-list-item {\n padding: 0;\n margin: 0;\n}\n\n.search-result {\n display: block;\n padding: $sp-1 $sp-3;\n\n &:hover,\n &.active {\n background-color: $feedback-color;\n }\n}\n\n.search-result-title {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 40%;\n padding-right: $sp-2;\n vertical-align: top;\n }\n}\n\n.search-result-doc {\n display: flex;\n align-items: center;\n word-wrap: break-word;\n\n &.search-result-doc-parent {\n opacity: 0.5;\n @include fs-3;\n\n @include mq(md) {\n @include fs-2;\n }\n }\n\n .search-result-icon {\n width: $sp-4;\n height: $sp-4;\n margin-right: $sp-2;\n color: $link-color;\n flex-shrink: 0;\n }\n\n .search-result-doc-title {\n overflow: auto;\n }\n}\n\n.search-result-section {\n margin-left: #{$sp-4 + $sp-2};\n word-wrap: break-word;\n}\n\n.search-result-rel-url {\n display: block;\n margin-left: #{$sp-4 + $sp-2};\n overflow: hidden;\n color: $search-result-preview-color;\n text-overflow: ellipsis;\n white-space: nowrap;\n @include fs-1;\n}\n\n.search-result-previews {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n padding-left: $sp-4;\n margin-left: $sp-2;\n color: $search-result-preview-color;\n word-wrap: break-word;\n border-left: $border;\n border-left-color: $border-color;\n @include fs-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 60%;\n padding-left: $sp-2;\n margin-left: 0;\n vertical-align: top;\n }\n}\n\n.search-result-preview + .search-result-preview {\n margin-top: $sp-1;\n}\n\n.search-result-highlight {\n font-weight: bold;\n}\n\n.search-no-result {\n padding: $sp-2 $sp-3;\n @include fs-3;\n}\n\n.search-button {\n position: fixed;\n right: $sp-4;\n bottom: $sp-4;\n display: flex;\n width: $sp-9;\n height: $sp-9;\n background-color: $search-background-color;\n border: 1px solid rgba($link-color, 0.3);\n border-radius: #{$sp-9 * 0.5};\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n align-items: center;\n justify-content: center;\n}\n\n.search-overlay {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n width: 0;\n height: 0;\n background-color: rgba(0, 0, 0, 0.3);\n opacity: 0;\n transition:\n opacity ease $transition-duration,\n width 0s $transition-duration,\n height 0s $transition-duration;\n}\n\n.search-active {\n .search {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .search-input-wrap {\n height: $sp-10;\n border-radius: 0;\n\n @include mq(md) {\n width: $search-results-width;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n }\n }\n\n .search-input {\n background-color: $search-background-color;\n\n @include mq(md) {\n padding-left: 2.3rem;\n }\n }\n\n .search-label {\n @include mq(md) {\n padding-left: 0.6rem;\n }\n }\n\n .search-results {\n display: block;\n }\n\n .search-overlay {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n opacity ease $transition-duration,\n width 0s,\n height 0s;\n }\n\n @include mq(md) {\n .main {\n position: fixed;\n right: 0;\n left: 0;\n }\n }\n\n .main-header {\n padding-top: $sp-10;\n\n @include mq(md) {\n padding-top: 0;\n }\n }\n}\n","// Tables\n// stylelint-disable max-nesting-depth, selector-no-type, selector-max-type\n\n.table-wrapper {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: $sp-5;\n overflow-x: auto;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n}\n\ntable {\n display: table;\n min-width: 100%;\n border-collapse: separate;\n}\n\nth,\ntd {\n min-width: 7.5rem;\n padding: $sp-2 $sp-3;\n background-color: $table-background-color;\n border-bottom: $border rgba($border-color, 0.5);\n border-left: $border $border-color;\n\n @include fs-3;\n\n &:first-of-type {\n border-left: 0;\n }\n}\n\ntbody {\n tr {\n &:last-of-type {\n th,\n td {\n border-bottom: 0;\n }\n\n td {\n padding-bottom: $sp-3;\n }\n }\n }\n}\n\nthead {\n th {\n border-bottom: $border $border-color;\n }\n}\n","// Code and syntax highlighting\n// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type, scss/comment-no-empty\n\n// {% raw %}\n\n// This instruction applies to all queues not within 'pre' or 'figure', avoiding 'code' generated by the highlight.\n:not(pre, figure) {\n & > code {\n padding: 0.2em 0.15em;\n font-weight: 400;\n background-color: $code-background-color;\n border: $border $border-color;\n border-radius: $border-radius;\n }\n}\n\n// Avoid appearance of dark border around visited code links in Safari\na:visited code {\n border-color: $border-color;\n}\n\n// Content structure for highlighted code blocks using fences or Liquid\n//\n// ```[LANG]...```, no kramdown line_numbers:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n//\n// ```[LANG]...```, kramdown line_numbers = true:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.rouge-gutter.gl > pre.lineno\n// | td.rouge-code > pre\n//\n// {% highlight LANG %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n//\n// {% highlight LANG linenos %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.gutter.gl > pre.lineno\n// | td.code > pre\n//\n// ----...---- (AsciiDoc)\n// div.listingblock > div.content > pre.rouge.highlight\n//\n// fix_linenos removes the outermost pre when it encloses table.rouge-table\n//\n// See docs/index-test.md for some tests.\n//\n// No kramdown line_numbers: fences and Liquid highlighting look the same.\n// Kramdown line_numbers = true: fences have a wider gutter than with Liquid?\n\n// ```[LANG]...```\n// or in AsciiDoc:\n//\n// ----\n// ...\n// ----\n\n// the code may appear with 3 different types:\n// container \\ case: default case, code with line number, code with html rendering\n// top level: div.highlighter-rouge, figure.highlight, figure.highlight\n// second level: div.highlight, div.table-wrapper, pre.highlight\n// third level: pre.highlight, td.code, absent\n// last level: code, pre, code (optionality)\n// highlighter level: span, span, span\n// the spacing are only in the second level for case 1, 3 and in the third level for case 2\n// in AsciiDoc, there is a parent container that contains optionally a title and the content.\n\n// select top level container\ndiv.highlighter-rouge,\ndiv.listingblock > div.content,\nfigure.highlight {\n margin-top: 0;\n margin-bottom: $sp-3;\n background-color: $code-background-color;\n border-radius: $border-radius;\n box-shadow: none;\n -webkit-overflow-scrolling: touch;\n position: relative;\n padding: 0;\n\n // copy button (or other button)\n // the button appear only when there is a hover on the code or focus on button\n > button {\n width: $sp-3;\n opacity: 0;\n position: absolute;\n top: 0;\n right: 0;\n border: $sp-3 solid $code-background-color;\n background-color: $code-background-color;\n color: $body-text-color;\n box-sizing: content-box;\n\n svg {\n fill: $body-text-color;\n }\n\n &:active {\n text-decoration: none;\n outline: none;\n opacity: 1;\n }\n\n &:focus {\n opacity: 1;\n }\n }\n\n // the button can be seen by doing a simple hover in the code, there is no need to go over the location of the button\n &:hover {\n > button {\n cursor: copy;\n opacity: 1;\n }\n }\n}\n\n// setting the spacing and scrollbar on the second level for the first case\n// remove all space on the second and third level\n// this is a mixin to accommodate for the slightly different structures generated via Markdown vs AsciiDoc\n@mixin scroll-and-spacing($code-div, $pre-select) {\n #{$code-div} {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n\n #{$pre-select},\n code {\n padding: 0;\n margin: 0;\n border: 0;\n }\n}\n\n// for Markdown\ndiv.highlighter-rouge {\n @include scroll-and-spacing(\"div.highlight\", \"pre.highlight\");\n}\n\n// for AsciiDoc. we also need to fix the margins for its parent container.\ndiv.listingblock {\n margin-top: 0;\n margin-bottom: $sp-3;\n\n @include scroll-and-spacing(\"div.content\", \"div.content > pre\");\n}\n\n// {% highlight LANG %}...{% endhighlight %},\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the second level for the thirt case\n// the css rule are apply only to the last code enviroment\n// setting the scroolbar\nfigure.highlight {\n pre,\n :not(pre) > code {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n}\n\n// ```[LANG]...```, kramdown line_numbers = true,\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the thirt level for the second case\n.highlight .table-wrapper {\n padding: $sp-3 0;\n margin: 0;\n border: 0;\n box-shadow: none;\n\n td,\n pre {\n min-width: 0;\n padding: 0;\n background-color: $code-background-color;\n border: 0;\n\n @include fs-2;\n }\n\n td.gl {\n width: 1em;\n padding-right: $sp-3;\n padding-left: $sp-3;\n }\n\n pre {\n margin: 0;\n line-height: 2;\n }\n}\n\n// Code examples: html render of a code\n.code-example,\n.listingblock > .title {\n padding: $sp-3;\n margin-bottom: $sp-3;\n overflow: auto;\n border: 1px solid $border-color;\n border-radius: $border-radius;\n\n + .highlighter-rouge,\n + .sectionbody .listingblock,\n + .content,\n + figure.highlight {\n position: relative;\n margin-top: -$sp-4;\n border-right: 1px solid $border-color;\n border-bottom: 1px solid $border-color;\n border-left: 1px solid $border-color;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n\n// Mermaid diagram code blocks should be left unstyled.\ncode.language-mermaid {\n padding: 0;\n background-color: inherit;\n border: 0;\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight,\npre.highlight {\n background: $code-background-color; // Code Background\n // For Backwards Compatibility Before $code-linenumber-color was added\n @if variable-exists(code-linenumber-color) {\n color: $code-linenumber-color; // Code Line Numbers\n } @else {\n color: $body-text-color; // Code Line Numbers\n }\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight pre {\n background: $code-background-color; // Code Background\n}\n\n// {% endraw %}\n","// Utility classes for colors\n\n// Text colors\n\n.text-grey-dk-000 {\n color: $grey-dk-000 !important;\n}\n\n.text-grey-dk-100 {\n color: $grey-dk-100 !important;\n}\n\n.text-grey-dk-200 {\n color: $grey-dk-200 !important;\n}\n\n.text-grey-dk-250 {\n color: $grey-dk-250 !important;\n}\n\n.text-grey-dk-300 {\n color: $grey-dk-300 !important;\n}\n\n.text-grey-lt-000 {\n color: $grey-lt-000 !important;\n}\n\n.text-grey-lt-100 {\n color: $grey-lt-100 !important;\n}\n\n.text-grey-lt-200 {\n color: $grey-lt-200 !important;\n}\n\n.text-grey-lt-300 {\n color: $grey-lt-300 !important;\n}\n\n.text-blue-000 {\n color: $blue-000 !important;\n}\n\n.text-blue-100 {\n color: $blue-100 !important;\n}\n\n.text-blue-200 {\n color: $blue-200 !important;\n}\n\n.text-blue-300 {\n color: $blue-300 !important;\n}\n\n.text-green-000 {\n color: $green-000 !important;\n}\n\n.text-green-100 {\n color: $green-100 !important;\n}\n\n.text-green-200 {\n color: $green-200 !important;\n}\n\n.text-green-300 {\n color: $green-300 !important;\n}\n\n.text-purple-000 {\n color: $purple-000 !important;\n}\n\n.text-purple-100 {\n color: $purple-100 !important;\n}\n\n.text-purple-200 {\n color: $purple-200 !important;\n}\n\n.text-purple-300 {\n color: $purple-300 !important;\n}\n\n.text-yellow-000 {\n color: $yellow-000 !important;\n}\n\n.text-yellow-100 {\n color: $yellow-100 !important;\n}\n\n.text-yellow-200 {\n color: $yellow-200 !important;\n}\n\n.text-yellow-300 {\n color: $yellow-300 !important;\n}\n\n.text-red-000 {\n color: $red-000 !important;\n}\n\n.text-red-100 {\n color: $red-100 !important;\n}\n\n.text-red-200 {\n color: $red-200 !important;\n}\n\n.text-red-300 {\n color: $red-300 !important;\n}\n\n// Background colors\n\n.bg-grey-dk-000 {\n background-color: $grey-dk-000 !important;\n}\n\n.bg-grey-dk-100 {\n background-color: $grey-dk-100 !important;\n}\n\n.bg-grey-dk-200 {\n background-color: $grey-dk-200 !important;\n}\n\n.bg-grey-dk-250 {\n background-color: $grey-dk-250 !important;\n}\n\n.bg-grey-dk-300 {\n background-color: $grey-dk-300 !important;\n}\n\n.bg-grey-lt-000 {\n background-color: $grey-lt-000 !important;\n}\n\n.bg-grey-lt-100 {\n background-color: $grey-lt-100 !important;\n}\n\n.bg-grey-lt-200 {\n background-color: $grey-lt-200 !important;\n}\n\n.bg-grey-lt-300 {\n background-color: $grey-lt-300 !important;\n}\n\n.bg-blue-000 {\n background-color: $blue-000 !important;\n}\n\n.bg-blue-100 {\n background-color: $blue-100 !important;\n}\n\n.bg-blue-200 {\n background-color: $blue-200 !important;\n}\n\n.bg-blue-300 {\n background-color: $blue-300 !important;\n}\n\n.bg-green-000 {\n background-color: $green-000 !important;\n}\n\n.bg-green-100 {\n background-color: $green-100 !important;\n}\n\n.bg-green-200 {\n background-color: $green-200 !important;\n}\n\n.bg-green-300 {\n background-color: $green-300 !important;\n}\n\n.bg-purple-000 {\n background-color: $purple-000 !important;\n}\n\n.bg-purple-100 {\n background-color: $purple-100 !important;\n}\n\n.bg-purple-200 {\n background-color: $purple-200 !important;\n}\n\n.bg-purple-300 {\n background-color: $purple-300 !important;\n}\n\n.bg-yellow-000 {\n background-color: $yellow-000 !important;\n}\n\n.bg-yellow-100 {\n background-color: $yellow-100 !important;\n}\n\n.bg-yellow-200 {\n background-color: $yellow-200 !important;\n}\n\n.bg-yellow-300 {\n background-color: $yellow-300 !important;\n}\n\n.bg-red-000 {\n background-color: $red-000 !important;\n}\n\n.bg-red-100 {\n background-color: $red-100 !important;\n}\n\n.bg-red-200 {\n background-color: $red-200 !important;\n}\n\n.bg-red-300 {\n background-color: $red-300 !important;\n}\n","// Utility classes for layout\n\n// Display\n\n.d-block {\n display: block !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .d-sm-block, .d-md-none, .d-lg-inline\n .d-#{$media-query}-block {\n display: block !important;\n }\n .d-#{$media-query}-flex {\n display: flex !important;\n }\n .d-#{$media-query}-inline {\n display: inline !important;\n }\n .d-#{$media-query}-inline-block {\n display: inline-block !important;\n }\n .d-#{$media-query}-none {\n display: none !important;\n }\n }\n }\n}\n\n// Horizontal alignment\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.flex-justify-start {\n justify-content: flex-start !important;\n}\n\n.flex-justify-end {\n justify-content: flex-end !important;\n}\n\n.flex-justify-between {\n justify-content: space-between !important;\n}\n\n.flex-justify-around {\n justify-content: space-around !important;\n}\n\n// Vertical alignment\n\n.v-align-baseline {\n vertical-align: baseline !important;\n}\n\n.v-align-bottom {\n vertical-align: bottom !important;\n}\n\n.v-align-middle {\n vertical-align: middle !important;\n}\n\n.v-align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.v-align-text-top {\n vertical-align: text-top !important;\n}\n\n.v-align-top {\n vertical-align: top !important;\n}\n","// Utility classes for typography\n\n.fs-1 {\n @include fs-1;\n}\n\n.fs-2 {\n @include fs-2;\n}\n\n.fs-3 {\n @include fs-3;\n}\n\n.fs-4 {\n @include fs-4;\n}\n\n.fs-5 {\n @include fs-5;\n}\n\n.fs-6 {\n @include fs-6;\n}\n\n.fs-7 {\n @include fs-7;\n}\n\n.fs-8 {\n @include fs-8;\n}\n\n.fs-9 {\n @include fs-9;\n}\n\n.fs-10 {\n @include fs-10;\n}\n\n.fw-300 {\n font-weight: 300 !important;\n}\n\n.fw-400 {\n font-weight: 400 !important;\n}\n\n.fw-500 {\n font-weight: 500 !important;\n}\n\n.fw-700 {\n font-weight: 700 !important;\n}\n\n.lh-0 {\n line-height: 0 !important;\n}\n\n.lh-default {\n line-height: $body-line-height;\n}\n\n.lh-tight {\n line-height: $body-heading-line-height;\n}\n\n.ls-5 {\n letter-spacing: 0.05em !important;\n}\n\n.ls-10 {\n letter-spacing: 0.1em !important;\n}\n\n.ls-0 {\n letter-spacing: 0 !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n","// Utility classes for lists\n\n// stylelint-disable selector-max-type\n\n.list-style-none {\n padding: 0 !important;\n margin: 0 !important;\n list-style: none !important;\n\n li {\n &::before {\n display: none !important;\n }\n }\n}\n","// Utility classes for margins and padding\n\n// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before\n\n// Margin spacer utilities\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-0, .m-1, .m-2...\n .m-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n .mx-#{$scale}-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-sm-0, .m-md-1, .m-lg-2...\n .m-#{$media-query}-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$media-query}-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$media-query}-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$media-query}-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n }\n }\n}\n\n// Padding spacer utilities\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-0, .p-1, .p-2...\n .p-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @include mq($media-query) {\n @for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-sm-0, .p-md-1, .p-lg-2...\n .p-#{$media-query}-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$media-query}-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$media-query}-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n }\n }\n}\n","// stylelint-disable selector-max-specificity, selector-max-id, selector-max-type, selector-no-qualifying-type\n\n@media print {\n .site-footer,\n .site-button,\n #edit-this-page,\n #back-to-top,\n .site-nav,\n .main-header {\n display: none !important;\n }\n\n .side-bar {\n width: 100%;\n height: auto;\n border-right: 0 !important;\n }\n\n .site-header {\n border-bottom: 1px solid $border-color;\n }\n\n .site-title {\n font-size: 1rem !important;\n font-weight: 700 !important;\n }\n\n .text-small {\n font-size: 8pt !important;\n }\n\n pre.highlight {\n border: 1px solid $border-color;\n }\n\n .main {\n max-width: none;\n margin-left: 0;\n }\n}\n","// Skipnav\n// Skip to main content\n\na.skip-to-main {\n left: -999px;\n position: absolute;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n z-index: -999;\n}\n\na.skip-to-main:focus,\na.skip-to-main:active {\n color: $link-color;\n background-color: $body-background-color;\n left: auto;\n top: auto;\n width: 30%;\n height: auto;\n overflow: auto;\n margin: 10px 35%;\n padding: 5px;\n border-radius: 15px;\n border: 4px solid $btn-primary-color;\n text-align: center;\n font-size: 1.2em;\n z-index: 999;\n}\n","\n$logo: \"/assets/images/logo.png\";\n\n@import \"./support/support\";\n@import \"./custom/setup\";\n@import \"./color_schemes/light\";\n\n@import \"./modules\";\ndiv.opaque {\n background-color: $body-background-color;\n}\n@import \"./custom/custom\";\n\n\n"],"file":"just-the-docs-light.css"} \ No newline at end of file diff --git a/jekyll-backup/_site/assets/css/main.css b/jekyll-backup/_site/assets/css/main.css deleted file mode 100644 index fa167b01..00000000 --- a/jekyll-backup/_site/assets/css/main.css +++ /dev/null @@ -1 +0,0 @@ -:root{--color-text: inherit;--color-accent: rgba(0, 128, 0, 0.5);--color-accent-bg: rgba(0, 128, 0, 0.15);--color-error: #f00;--color-error-bg: #fff0f0;--font-family-mono: monospace;--font-size-base: 1rem;--line-height-base: 1.5;--spacing-xs: 0.25rem;--spacing-sm: 0.5rem;--button-padding-y: 0.4em;--button-padding-x: 0.75em;--border-radius-sm: 0.25em;--transition-border: border-color 0.2s linear;--transition-shadow: box-shadow 0.2s ease-in-out}details{transition:all .2s ease-in-out}summary{cursor:pointer;outline:none}summary:hover{color:var(--link-color)}#configs input[name=instance],#configs input[name=search]{inline-size:100%}.noscript{padding:var(--spacing-sm);font-weight:600;color:var(--color-error);background:var(--color-error-bg);border:1px solid var(--color-error)}.svg-defs-hidden{display:none}.feed-directory__filters{position:sticky;top:0;height:fit-content;z-index:2;border:1px solid var(--border-color);border-radius:var(--border-radius);margin-bottom:var(--spacing-lg);display:flex;flex-wrap:wrap;gap:var(--spacing-lg);align-items:flex-start}.feed-directory__item{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius);margin-bottom:1px;transition:var(--transition-base);background-color:var(--color-bg)}.feed-directory__item:hover{box-shadow:var(--box-shadow)}.feed-directory__item-info{display:flex;flex-direction:column;flex:1;gap:var(--spacing-xs);margin-inline-end:var(--spacing-sm)}.feed-directory__item-main{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm);min-height:2rem}h3.feed-directory__item-name{font-size:var(--font-size-h4);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0;padding:0;flex:1;min-width:0;line-height:1.4}.feed-directory__item-param-toggle{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);color:var(--color-text-light);background-color:var(--code-block-bg-color);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm);border:1px solid var(--border-color);white-space:nowrap;cursor:pointer;transition:var(--transition-base);flex-shrink:0}.feed-directory__item-param-toggle:hover{background-color:var(--border-color);color:var(--color-text)}.feed-directory__param-icon{width:14px;height:14px;flex-shrink:0}.feed-directory__item-url{font-size:var(--font-size-sm);color:var(--color-text-light);word-break:break-word;margin:0}.feed-directory__item-param-form__buttons{display:flex;justify-content:flex-end}.feed-directory__item-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.feed-directory__item-actions button{background-color:unset;border:1px;text-align:center;padding:0;cursor:pointer}.feed-directory__item-actions__rss-icon,.feed-directory__item-actions__edit-icon,.feed-directory__item-actions__settings-icon{inline-size:1.2rem;block-size:1.2rem}.feed-directory__item-actions__rss-icon:hover,.feed-directory__item-actions__edit-icon:hover,.feed-directory__item-actions__settings-icon:hover{color:var(--link-color)}.feed-directory__fieldset{border:none;padding:0;flex:1 1 45%;min-width:280px;margin-bottom:0}.feed-directory__fieldset legend{padding:0 var(--spacing-xs);margin-bottom:var(--spacing-sm)}.feed-directory__item-param-form{margin-top:var(--spacing-xs);padding:var(--spacing-xs);border-top:1px solid var(--border-color);background-color:var(--code-block-bg-color);border-radius:var(--border-radius-sm);animation:slideDown .2s ease-out}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.feed-directory__item-param-form__group{margin-block-end:var(--spacing-xs);display:flex;align-items:center;gap:var(--spacing-sm)}.feed-directory__item-param-form__label{font-size:.85em;font-weight:var(--font-weight-normal);color:var(--color-text);flex-shrink:0;min-width:80px}.feed-directory__item-param-form__input{inline-size:100%;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--color-text)}.feed-directory__item-param-form__code{font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm);background-color:var(--code-block-bg-color);color:var(--code-block-color);word-break:break-all}/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/jekyll-backup/_site/assets/css/main.css.map b/jekyll-backup/_site/assets/css/main.css.map deleted file mode 100644 index 0f7d3dc9..00000000 --- a/jekyll-backup/_site/assets/css/main.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["sass/base.scss","sass/feed-directory.scss"],"names":[],"mappings":"AAAA,MACE,sBACA,qCACA,yCACA,oBACA,0BACA,8BACA,uBACA,wBACA,sBACA,qBACA,0BACA,2BACA,2BACA,8CACA,iDAGF,QACE,+BAGF,QACE,eACA,aAGF,cACE,wBAGF,0DAEE,iBAGF,UACE,0BACA,gBACA,yBACA,iCACA,oCAGF,iBACE,aC7CF,yBACE,gBACA,MACA,mBACA,UAEA,qCACA,mCACA,gCACA,aACA,eACA,sBACA,uBAGF,sBACE,aACA,8BACA,uBACA,sBAEA,0BACA,qCACA,mCACA,kBAEA,kCACA,iCAGF,4BACE,6BAGF,2BACE,aACA,sBACA,OACA,sBACA,oCAGF,2BACE,aACA,8BACA,mBACA,sBACA,gBAGF,6BACE,8BACA,oCACA,wBACA,SACA,UACA,OACA,YACA,gBAGF,mCACE,aACA,mBACA,sBACA,8BACA,sCACA,8BACA,4CACA,4CACA,sCACA,qCACA,mBACA,eACA,kCACA,cAGF,yCACE,qCACA,wBAGF,4BACE,WACA,YACA,cAGF,0BACE,8BACA,8BACA,sBACA,SAGF,0CACE,aACA,yBAGF,8BACE,aACA,mBACA,sBACA,cAGF,qCACE,uBACA,WACA,kBACA,UACA,eAGF,8HAGE,mBACA,kBAGF,gJAGE,wBAGF,0BACE,YACA,UACA,aACA,gBACA,gBAGF,iCACE,4BACA,gCAGF,iCACE,6BACA,0BACA,yCACA,4CACA,sCACA,iCAGF,qBACE,KACE,UACA,4BAEF,GACE,UACA,yBAIJ,wCACE,mCACA,aACA,mBACA,sBAGF,wCACE,gBACA,sCACA,wBACA,cACA,eAGF,wCACE,iBACA,4CACA,qCACA,sCACA,wBAGF,uCACE,8BACA,4CACA,sCACA,4CACA,8BACA","sourcesContent":[":root {\n --color-text: inherit;\n --color-accent: rgba(0, 128, 0, 0.5);\n --color-accent-bg: rgba(0, 128, 0, 0.15);\n --color-error: #f00;\n --color-error-bg: #fff0f0;\n --font-family-mono: monospace;\n --font-size-base: 1rem;\n --line-height-base: 1.5;\n --spacing-xs: 0.25rem;\n --spacing-sm: 0.5rem;\n --button-padding-y: 0.4em;\n --button-padding-x: 0.75em;\n --border-radius-sm: 0.25em;\n --transition-border: border-color 0.2s linear;\n --transition-shadow: box-shadow 0.2s ease-in-out;\n}\n\ndetails {\n transition: all 0.2s ease-in-out;\n}\n\nsummary {\n cursor: pointer;\n outline: none;\n}\n\nsummary:hover {\n color: var(--link-color);\n}\n\n#configs input[name=\"instance\"],\n#configs input[name=\"search\"] {\n inline-size: 100%;\n}\n\n.noscript {\n padding: var(--spacing-sm);\n font-weight: 600;\n color: var(--color-error);\n background: var(--color-error-bg);\n border: 1px solid var(--color-error);\n}\n\n.svg-defs-hidden {\n display: none;\n}\n",".feed-directory__filters {\n position: sticky;\n top: 0;\n height: fit-content;\n z-index: 2;\n\n border: 1px solid var(--border-color);\n border-radius: var(--border-radius);\n margin-bottom: var(--spacing-lg);\n display: flex;\n flex-wrap: wrap;\n gap: var(--spacing-lg);\n align-items: flex-start;\n}\n\n.feed-directory__item {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: var(--spacing-sm);\n\n padding: var(--spacing-sm);\n border: 1px solid var(--border-color);\n border-radius: var(--border-radius);\n margin-bottom: 1px; /* Minimal gap between items */\n\n transition: var(--transition-base);\n background-color: var(--color-bg);\n}\n\n.feed-directory__item:hover {\n box-shadow: var(--box-shadow);\n}\n\n.feed-directory__item-info {\n display: flex;\n flex-direction: column;\n flex: 1;\n gap: var(--spacing-xs);\n margin-inline-end: var(--spacing-sm);\n}\n\n.feed-directory__item-main {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--spacing-sm);\n min-height: 2rem; /* Compact height for list feel */\n}\n\nh3.feed-directory__item-name {\n font-size: var(--font-size-h4);\n font-weight: var(--font-weight-bold);\n color: var(--color-text);\n margin: 0;\n padding: 0;\n flex: 1;\n min-width: 0; /* Allow text to wrap */\n line-height: 1.4;\n}\n\n.feed-directory__item-param-toggle {\n display: flex;\n align-items: center;\n gap: var(--spacing-xs);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-normal);\n color: var(--color-text-light);\n background-color: var(--code-block-bg-color);\n padding: var(--spacing-xs) var(--spacing-sm);\n border-radius: var(--border-radius-sm);\n border: 1px solid var(--border-color);\n white-space: nowrap;\n cursor: pointer;\n transition: var(--transition-base);\n flex-shrink: 0;\n}\n\n.feed-directory__item-param-toggle:hover {\n background-color: var(--border-color);\n color: var(--color-text);\n}\n\n.feed-directory__param-icon {\n width: 14px;\n height: 14px;\n flex-shrink: 0;\n}\n\n.feed-directory__item-url {\n font-size: var(--font-size-sm);\n color: var(--color-text-light);\n word-break: break-word;\n margin: 0;\n}\n\n.feed-directory__item-param-form__buttons {\n display: flex;\n justify-content: flex-end;\n}\n\n.feed-directory__item-actions {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm);\n flex-shrink: 0;\n}\n\n.feed-directory__item-actions button {\n background-color: unset;\n border: 1px;\n text-align: center;\n padding: 0;\n cursor: pointer;\n}\n\n.feed-directory__item-actions__rss-icon,\n.feed-directory__item-actions__edit-icon,\n.feed-directory__item-actions__settings-icon {\n inline-size: 1.2rem;\n block-size: 1.2rem;\n}\n\n.feed-directory__item-actions__rss-icon:hover,\n.feed-directory__item-actions__edit-icon:hover,\n.feed-directory__item-actions__settings-icon:hover {\n color: var(--link-color);\n}\n\n.feed-directory__fieldset {\n border: none;\n padding: 0;\n flex: 1 1 45%;\n min-width: 280px;\n margin-bottom: 0;\n}\n\n.feed-directory__fieldset legend {\n padding: 0 var(--spacing-xs);\n margin-bottom: var(--spacing-sm);\n}\n\n.feed-directory__item-param-form {\n margin-top: var(--spacing-xs);\n padding: var(--spacing-xs);\n border-top: 1px solid var(--border-color);\n background-color: var(--code-block-bg-color);\n border-radius: var(--border-radius-sm);\n animation: slideDown 0.2s ease-out;\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.feed-directory__item-param-form__group {\n margin-block-end: var(--spacing-xs);\n display: flex;\n align-items: center;\n gap: var(--spacing-sm);\n}\n\n.feed-directory__item-param-form__label {\n font-size: 0.85em;\n font-weight: var(--font-weight-normal);\n color: var(--color-text);\n flex-shrink: 0;\n min-width: 80px;\n}\n\n.feed-directory__item-param-form__input {\n inline-size: 100%;\n padding: var(--spacing-xs) var(--spacing-sm);\n border: 1px solid var(--border-color);\n border-radius: var(--border-radius-sm);\n color: var(--color-text);\n}\n\n.feed-directory__item-param-form__code {\n font-size: var(--font-size-sm);\n padding: var(--spacing-xs) var(--spacing-sm);\n border-radius: var(--border-radius-sm);\n background-color: var(--code-block-bg-color);\n color: var(--code-block-color);\n word-break: break-all;\n}\n"],"file":"main.css"} \ No newline at end of file diff --git a/jekyll-backup/_site/assets/css/sass/base.scss b/jekyll-backup/_site/assets/css/sass/base.scss deleted file mode 100644 index 9c95075f..00000000 --- a/jekyll-backup/_site/assets/css/sass/base.scss +++ /dev/null @@ -1,47 +0,0 @@ -:root { - --color-text: inherit; - --color-accent: rgba(0, 128, 0, 0.5); - --color-accent-bg: rgba(0, 128, 0, 0.15); - --color-error: #f00; - --color-error-bg: #fff0f0; - --font-family-mono: monospace; - --font-size-base: 1rem; - --line-height-base: 1.5; - --spacing-xs: 0.25rem; - --spacing-sm: 0.5rem; - --button-padding-y: 0.4em; - --button-padding-x: 0.75em; - --border-radius-sm: 0.25em; - --transition-border: border-color 0.2s linear; - --transition-shadow: box-shadow 0.2s ease-in-out; -} - -details { - transition: all 0.2s ease-in-out; -} - -summary { - cursor: pointer; - outline: none; -} - -summary:hover { - color: var(--link-color); -} - -#configs input[name="instance"], -#configs input[name="search"] { - inline-size: 100%; -} - -.noscript { - padding: var(--spacing-sm); - font-weight: 600; - color: var(--color-error); - background: var(--color-error-bg); - border: 1px solid var(--color-error); -} - -.svg-defs-hidden { - display: none; -} diff --git a/jekyll-backup/_site/assets/css/sass/feed-directory.scss b/jekyll-backup/_site/assets/css/sass/feed-directory.scss deleted file mode 100644 index 855fa400..00000000 --- a/jekyll-backup/_site/assets/css/sass/feed-directory.scss +++ /dev/null @@ -1,193 +0,0 @@ -.feed-directory__filters { - position: sticky; - top: 0; - height: fit-content; - z-index: 2; - - border: 1px solid var(--border-color); - border-radius: var(--border-radius); - margin-bottom: var(--spacing-lg); - display: flex; - flex-wrap: wrap; - gap: var(--spacing-lg); - align-items: flex-start; -} - -.feed-directory__item { - display: flex; - justify-content: space-between; - align-items: flex-start; - gap: var(--spacing-sm); - - padding: var(--spacing-sm); - border: 1px solid var(--border-color); - border-radius: var(--border-radius); - margin-bottom: 1px; /* Minimal gap between items */ - - transition: var(--transition-base); - background-color: var(--color-bg); -} - -.feed-directory__item:hover { - box-shadow: var(--box-shadow); -} - -.feed-directory__item-info { - display: flex; - flex-direction: column; - flex: 1; - gap: var(--spacing-xs); - margin-inline-end: var(--spacing-sm); -} - -.feed-directory__item-main { - display: flex; - justify-content: space-between; - align-items: center; - gap: var(--spacing-sm); - min-height: 2rem; /* Compact height for list feel */ -} - -h3.feed-directory__item-name { - font-size: var(--font-size-h4); - font-weight: var(--font-weight-bold); - color: var(--color-text); - margin: 0; - padding: 0; - flex: 1; - min-width: 0; /* Allow text to wrap */ - line-height: 1.4; -} - -.feed-directory__item-param-toggle { - display: flex; - align-items: center; - gap: var(--spacing-xs); - font-size: var(--font-size-xs); - font-weight: var(--font-weight-normal); - color: var(--color-text-light); - background-color: var(--code-block-bg-color); - padding: var(--spacing-xs) var(--spacing-sm); - border-radius: var(--border-radius-sm); - border: 1px solid var(--border-color); - white-space: nowrap; - cursor: pointer; - transition: var(--transition-base); - flex-shrink: 0; -} - -.feed-directory__item-param-toggle:hover { - background-color: var(--border-color); - color: var(--color-text); -} - -.feed-directory__param-icon { - width: 14px; - height: 14px; - flex-shrink: 0; -} - -.feed-directory__item-url { - font-size: var(--font-size-sm); - color: var(--color-text-light); - word-break: break-word; - margin: 0; -} - -.feed-directory__item-param-form__buttons { - display: flex; - justify-content: flex-end; -} - -.feed-directory__item-actions { - display: flex; - align-items: center; - gap: var(--spacing-sm); - flex-shrink: 0; -} - -.feed-directory__item-actions button { - background-color: unset; - border: 1px; - text-align: center; - padding: 0; - cursor: pointer; -} - -.feed-directory__item-actions__rss-icon, -.feed-directory__item-actions__edit-icon, -.feed-directory__item-actions__settings-icon { - inline-size: 1.2rem; - block-size: 1.2rem; -} - -.feed-directory__item-actions__rss-icon:hover, -.feed-directory__item-actions__edit-icon:hover, -.feed-directory__item-actions__settings-icon:hover { - color: var(--link-color); -} - -.feed-directory__fieldset { - border: none; - padding: 0; - flex: 1 1 45%; - min-width: 280px; - margin-bottom: 0; -} - -.feed-directory__fieldset legend { - padding: 0 var(--spacing-xs); - margin-bottom: var(--spacing-sm); -} - -.feed-directory__item-param-form { - margin-top: var(--spacing-xs); - padding: var(--spacing-xs); - border-top: 1px solid var(--border-color); - background-color: var(--code-block-bg-color); - border-radius: var(--border-radius-sm); - animation: slideDown 0.2s ease-out; -} - -@keyframes slideDown { - from { - opacity: 0; - transform: translateY(-10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -.feed-directory__item-param-form__group { - margin-block-end: var(--spacing-xs); - display: flex; - align-items: center; - gap: var(--spacing-sm); -} - -.feed-directory__item-param-form__label { - font-size: 0.85em; - font-weight: var(--font-weight-normal); - color: var(--color-text); - flex-shrink: 0; - min-width: 80px; -} - -.feed-directory__item-param-form__input { - inline-size: 100%; - padding: var(--spacing-xs) var(--spacing-sm); - border: 1px solid var(--border-color); - border-radius: var(--border-radius-sm); - color: var(--color-text); -} - -.feed-directory__item-param-form__code { - font-size: var(--font-size-sm); - padding: var(--spacing-xs) var(--spacing-sm); - border-radius: var(--border-radius-sm); - background-color: var(--code-block-bg-color); - color: var(--code-block-color); - word-break: break-all; -} diff --git a/jekyll-backup/_site/assets/images/android-chrome-192x192.png b/jekyll-backup/_site/assets/images/android-chrome-192x192.png deleted file mode 100644 index 75aee0e93fb997f749492876c31df0e355a26546..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1686 zcmYjRe>hb68vmY|(HyMyq?Q?pvs`N=)1cZ>bk9ibDA|*gS)!Btm`9t=)|N5EQC+5} zrt3$8(zLd1Dv7RTw3Q>abj@zuCJ7<6WmV{6NTb>D+<)%pdEOt-`}sVd_j%qw-lKTv zS2k7-RsaB-U~y2Gxze)%GtD`kab`IH(0V*1e66LWrC6rq@Ptw^kYYeV08%?BzzIUt zLgIjy0R-hqgg_vc2qaP-2j*d7AqwNlDqH{yC8Urb2bBPUVIB%s$pB9*5zEx55QAYv zsvSg7RE7hb(sU{SCV*80P)LASrjjUWj8wExKqUpZLPOy|LjscqNUH`3O&g(Z8&v@z z5AIX~u>h7}po#<%6>UYE2>a| zkb?@eGN2>?E(A0MFdod|2?V&5P`AJc!ozTc!yzz0(o>j}LduZ(kxFS*KMcdB3t%s8u&wbs4S)qZI7k#OgWfb| znJ*0}^~@#vON`m}e;|h5T(17k74DxZC_Y)tZPMuy^p=dR{=R*tpRd13s7c;av9Bk2 zI_-wFDZ=5IDeAr5ILWe)91J;JnfmaTHb^%a5TF)r%HG%VvioMH7v+22f%dP1GM|sU z&Fer9ZBQqXIb#NL<{M)^Nkhg7n*i!CQ!rEgN7#?6w=*lk4+hYq8FT1TE(z?v-ej%l z(H+u6Uu;;i0GV`J5XNq9ux@hi1)f$|FFV2N;d!(>=)Z=4S(m*^?^8dt3yS4>H|a(U zUM$Mgd4a#B+2YuvoXr+DgZ!VhbaSmCQ0TQj(qjtzqF=GB!oqm-$pL%fhOf+y;j(kT z-@KZ{l+u+$w{1yQVv*lVW1Jf>?yeh~91&H>x7L*K)y=y_O@Y*#uZDRw2ZIw0VHP)E zoTy)J4OQQ9Y4`s=FPN54#A5A(&&9`ec zFq$L&Rx4*8fpVYZBBLeEu@At~Cd=P)5ka8k&rVR?MdAJXfu;=Mg8Gllq=N9QBmZU3 z3*3-#c4I0>`H^W=uficAl2ecX!-to@p(m z&Nb}xR+cL-7x2|s;KJBf8QjNTXj|PrKv4xRVpAyT%eK<^HF&KPzR%-Q<XWw%a$F`zZyk7AG66DAeKM&B$-TdxaWz>t%CW4FG&y+SvikXn5ZJ&h%Rhf2 zfFa}FO6jpJ@UL>NTJzKH!OxIy`}3NNwc&F(akPB9yU(_E1M1sSwT6E{0)_$h`mRc-@1{AKFr2#}<$eP)}zkK zKhvgasJ;2FBB>`)7Lx21O$qypP8Ts2^WB#CcTUd*mmi0*6z)C${Fg2Dpbu$}J2*LU zVE@GdSC^m|ZTClamTbObYG(I3daxrm;vcsnSAAjE@E&#GZgd8_ipP2$=NxwpQ1?iA zzG&sv1D8)mq`c<;TKl`9eCBSJ9kuXy&!U9nO40U?j$AorsA-9$|I;hkpOzlq?)LD` ztt)4#lnM)MIP~4NJ$__YJHv%7^1(ii-ZAFBEBt&KPJR9M>J^Bbj7t7)h5GCIRdTSb z#Dw6I^s(&khs)h|9@l|qXUSGp;5kFzYY5Lsn$uk5RIhI>T%=gUUXR5+@#|arwCjc) z^64R#;@|v<>z=!Qw4kphoEwRXM`{4~h!D$*{yaK*#Sac(M|N@FHBnze$?OtaH0etI zxOeiwl>IRsns7a1;P|%mAyMC*JO||3d6weYt2pI+Uzp2srN=koODYr3@98~ircSY7 zW2_>w=ajV3y8Nzla+hi|W8i^(?q=9@tE>Fp^#PZwfA2obgl7L5YI?j5-}3(ePIVqO Sd~xZiSvq)aXi#M!ap*5zBiL#H diff --git a/jekyll-backup/_site/assets/images/android-chrome-512x512.png b/jekyll-backup/_site/assets/images/android-chrome-512x512.png deleted file mode 100644 index 14de528b6b8878d081a881850cc3cb35c26df9bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4091 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 diff --git a/jekyll-backup/_site/assets/images/apple-touch-icon.png b/jekyll-backup/_site/assets/images/apple-touch-icon.png deleted file mode 100644 index 7620245c425ac8b9df0e618c9ffe4b706a0f1331..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1749 zcmYLJeLRzE7=AOI)`xS1%2zCPA|KmiN`BImu~8XG*6+wf&P!pjSnEurWM@tE!IE># z#)(qCmKLh@<*PaE%{f^TQzu5$DlsWL@3ubP-~C?i{ap8TU(fwMe>`mRR)3>;mh%7r zFd`9sL*TDS`yvrA&NH2Wan^qF=1>BhfHj(A$+(6Oz(JQxXexm3@fV;e(}k|8)#Sk% zHBB;36RQ|)8m$r*z{m$+QlIFpzG1Rtf~IXzF(j%lq<#y1V+8<8G+IHMh9QP!UjmfD zqzX3IB2VWp)@a+mj>iyd1vHq{G4L)Kk}o+dgMAnhwYCKBqVLk-H-9+MH-2OEVt5H# z!TA>fAJ8xLVm+@f=^J$ueji&;!U*dA_uEoCM!D9COe)w0A9@-+Wa~BnDd#KN)Jh3W zF0PPNFpwyfv9Us#gO^h?sNqBhlp=#@p2N$)%G-#>6-e_uS~${JhDFkh$$WDj(i}-v zDUl2ZEEQFwKq8Iv)MSYVD958}!qr5TtPN$Z7UPXQ9F!G&nTo*!@OZJyzKx0 zhQ%abpHRlE(c78uJU|BjbLEms18u5%cov5gr)=1FJZ7rKx*N)C6GRDt7Jbvh=Z8t| z@yT^J+Gld_YS`O0g&Ij4df5i&x_X;5(YTWId_szP?g`JtX^i0dsRF`#HsXd|*Ufu| zmV!sIuRWylz=r#fUy5ucXHdRUG*OI>S9_=bl;d?WK5TDB z)(Sh^w)&?;#1sR#ny&`rrEX?Cw|*lj~gi!t($D!$sGRsMy1h z{8)T;V{xJ1(Dh4TvIvE4e*6+zbCY^)bq^t8Lz}QRZ(zQ~eBmT1I?VF(%*wsRE_YDn zWg!dvF!?Q>xQh{SxOGQk2iKareuh%YYBNg>k|?2B2cZ7n`-3b;qITi4?%Z(1I!0Qd ztL#7i5ckZMv8B5?k?PhWus-2AFyP1(3=#K6<~&w;`|vM#QYquRGI0g2&P72D%!^JX zE}WZzJFD-3wIA1aR1IYBftEdLM6(A!c?H}F?7gToo4f0Q;QG<~&9Z&L<8R7d_80oq z8@)I_=F$`uF^<>}m$1oZ>9}H{+u_M!H$Stbp-fgY&NJ{xc@z{`_|!W5GWJk4p89%D z7t7?Ar(JKGUSe5DpLBlGCVyPAwE20hGc(I@h7tj3Vv7EayCjIrR{)KIxA|6%t&e@D ziHegWC;Y;BG4bQCbN|B!3NQ7BitLzN!(*&xP}}~y1L7&@Rl12s=?3P-tKBtI(5-yx zf_GqW#`%s||NdprdMay28httild><7F2cJ!C>_0B^oC$!bS<@j?ti!; z7yd3!t#b4cErl$&LNB-0M_7eA+>-U1m-9~S`Jz9)OKNMsr=?`u9wh<5K@!c|JwwckGt zCdaIRYG$8X$ID(upy0^4AN&wj)kO5M0!%6i=XEgl%I4d^hmQ66or?ueyOHhcM*9F0 z?yBlc$aMf_AHHU{WF=U}tP`KGV*-nRP-S&MIvnVy|R&d - - - - - #111111 - - - diff --git a/jekyll-backup/_site/assets/images/favicon-16x16.png b/jekyll-backup/_site/assets/images/favicon-16x16.png deleted file mode 100644 index 3186b4186e944d321255e8ed201e337d4bbfdfb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 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 aGT!6g9+~P`H=>ttOLxGKlrYZ!jP+mQ{Q{%_ diff --git a/jekyll-backup/_site/assets/images/icon.png b/jekyll-backup/_site/assets/images/icon.png deleted file mode 100644 index 1f5ade57f6037d91079ec681893265b0e773ea89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4052 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 KQL0n0iTN)_&su;0 diff --git a/jekyll-backup/_site/assets/images/mstile-144x144.png b/jekyll-backup/_site/assets/images/mstile-144x144.png deleted file mode 100644 index 9f7dd617666b8dbec24d34d7bc12afaa9a8aa853..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1507 zcmYjR2~ZPf6y8(`Yk;spk&K3LXlqg#3C6+HlZ9x)WrI+q9vx7W4AgK`Ab8N2r~_0a zQvnkwHAd2gN;tw5DLCQKqN9>hkbsDIK@bL`as-K_y98}_-oAa``@i@7@BK6TXK{A1 z9B?ae001}yvYES)uNZy7MTpl)oU#D`!{dZR>_A|m)|jX@A;$k0SfSNhln4P`MQBKD zH3TMWr>x#mf+nrCpH~0RL}M8$vXCtKBxn+7E&O)Ne^oNTB1Y8~$cQpR)>sgTm_WG@ zEa-e}W&ujj!enF@L_`K~D=pRl^@t9VLH0tW&|wiKADLH!1}K~_K_;>qlHnpWjqyK) zdBOrj`$t43=I!H9)*0I^Tpc2L+iD zi0cQr`z5xUI7Sl@(rd((?K&BSD~XEY7-gDB5TfaIiQpi+(l7`zh+v{NQjn=-GmId` z$Ps|V%u2l<1QKZ`cOqz{u?>Um1_+`sBBNv)Q#(bY7fX}|E(r2q@DxcFAy z?AEKCRS#C-hHGz=LcjN$IBi~P6PDrnGnDf?q3zPtTJF}&x&4dF`Mt5Gfs}?>({WWS|p@6k4#FH2bNHK^>**`2C4nc zacP05hT;EwWVx^_d$mp2i}F`97mLW79t2GeXa5MPqVM5rA!aHYFEI;zDzgpQnEwkYW^KIT3;7!= z9o9~*?@4*QC^d2>2&d*uFFjZox)LY+M=`XA+^it%*_qoUoUohuCIHqRccfn@$J{u2 z$D8tXP=6#uYwWjuDHz>0jW1NQscrXcnv-N>KRkAQEi0MBgu{J6&mpapHJHMVn#HE5Y3iX(%hJ#ICI=E78}=SeQtrW7{s#MG;yQfaM!Y-R$JbHgTa%%bEm_67{Bb(b@qJOz-HR;f^RBDUE0!!S z5p7%D|7-xBE!!%9mhJ7-%RA}eu@`tJ%ZlF@XH2*#BR06zboAlO!mhgQFIgY#6hosJSG(V6Al#ir`kLEVIh?ZME_%Vw#wUsR0D+xaC ztbPCM(F3M}3ToO{n!FQhu+c4^^3F{>72gw!xg*>R=HHCVKeBdJoNx6Z$UjwET{DOG zV0%}SzfC>gbnofzll8>2hCSNJ6MyW-`+HT0@@|9`Ou|_|!Fo27e+YERk$l`Slbq_z6M5Bt;S*kgKep~WVJkv)idmE;}K)qnBpAVB%tJFf3VoZ zrj^EzAMZQkRUDL6u{~7rFzIhH$qxMk?cdh_daE40z0t=PbE&{X=;~xaZ)+fM$1Y~M Hf0XcFgo5ms diff --git a/jekyll-backup/_site/assets/images/mstile-150x150.png b/jekyll-backup/_site/assets/images/mstile-150x150.png deleted file mode 100644 index 08ccc4d64452cdc363cbb5934445e82c2273ada5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1427 zcmeAS@N?(olHy`uVBq!ia0y~yVB`Z~4rZW;e?I4QASWikC&U%VEjaK46a8O-5U)7! z0j}Wx0+4vofo~86K=S_*1`r8RzvDlgjgXoFlLc7>G76#wN-hB!_yK4vkP9>xX3>X= z9sj{>kot-f{~-#{^a8m>2YzI1fLaPsQ?cVm#s!dG5Ep_V&I7xx0;vALe~_DDQb3gj zJAk%)C^+#S=zxY5{~Le`;Cj&*K#j|w{)MP1IPe7|G65u5a^M>%WR`-$1ZeEdZEHh7 z;ad{q7tF9?!;1?A4iXbGcFYi{_z=J`;fKJD6(1BF6a*|15-$AM!BJrGK%nDB#R-WQ z9s)ByG@LNt_@NOYVDR8Tguw<6jSn0@GCCGWa4b+LXz2LBaX>-ffk!}tfq(?Z4Gs9A4vhut&bT-+Fff;Sx;TbZFupn12y_U;;RU~gjJv(9bXzX>`E3{WzW*J*_vG8J znQHP1lj}1j|7Z!fx$gc|kWk`uu<@Prg9q=|9zWi0am3&8T(iGxdOFMNb!;*nv8?QF zd;dK9?k&_iU9o;*P(i^-hAmN61q(JS7bh4o`KP|HwExoD+0@+KxOovX`!aD=zQ7mW z3?GEuUkAwYnVqq`bv(}J#ev4nT71cO-@V)_H>KSrc(M??c(d8MQj-S-+Lkg5AG@Ul zw;N^d*{OX}=1h6hjd_=+J8voSU0ipPImC0y-3gX8i?F6gWFt9ORmcnT3P&k$K-lHeOBN2U`5};kE})E3xd;RqQBfx^!TZC`GjtR>+H{` ze)?GcIrCAu{!&+mO{3VIbq}*Mx%tIbHb}ZZR{v!YVZ&pnj<6-|8SrM5T^WvRczOzKkOTP6{ zZT&3eaOHJ6g@2@ld>sVtM%{lOkSB9<$4%83#m@SBH<})Aal2zVqtJn6V{Hn1A5Y=U zDVE1KN?)v9ZGU|Gk%{tWEFTE}n}1J+`O&6iFFrk$d!Z%IGbYuzt$L=hO>pu2muDxQ z7P_8&;5txF?OxlLXDj$$ZqIs_U_bx2D8nlDLQ(eXqVMf5&Q$&y+gUD=y!7io*}rqb z3kwwIEjY?$J(;V|)!gfM-<9~+we`!YJny9OxpXc$v+>Q1jc@LixE*Ai&vw7ig#Ukp z>dH5E9Za4_uL(N3giEZ6$Z>y^p!#ga7kjsO4v diff --git a/jekyll-backup/_site/assets/images/mstile-310x150.png b/jekyll-backup/_site/assets/images/mstile-310x150.png deleted file mode 100644 index 81721191a4e0e688536ddf98aa26bd8776e444f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1533 zcmeAS@N?(olHy`uVBq!ia0y~yVA5k?VC3Uq28ztQkmCmA#02<+xB|Ha2Yz6p|0@vU z6$d`R75rZS5-&RN4M+mjfY1^!2~oe}KSU5J3zV9HBn#G305%Px5y%D_2sLK~1H@Rc zT^}lT{0A~BPJj%AYXKPxb-<5|4N$wF+F|BY?D&y!0YeI`s{rV{B@7h@eqmfewim z9s)B?-1yLN!hqw4zypnlhyw;1A2XLl_zs{9P%&k_p5l z1*F~Ao2BgDWWZCeYi?|OdB)6{wmw_VoSAv=zx+nu)DA7nZ#qwlvnJ%dUwFZGTl~QV zY|M%}`JB5n&rAKAKYtN(djWf5V9m7&+?DqkPAymOm*4NN^pnX-zV}G@H1CF#$A4lv z0Ia=6> zpUTPH$>UFVOc`s=mJb}soaX~k}??UP~}_NLo>a}`|i+2NnZdDVuAsX@&t zx9K&uIJaL-2HCO4=IVTI7>8j^t>x%VS*|bA-r_Wbr-pnz1JHO)T5{C&>YcAz= zZ=AAh|2+o}J$2~V5VuiU)Gx5^tm^mJRH@|4Q|I2x{BOMu9 zT+anNnRUfOC!R{xt2nF1eVO4;aFw2ij^NS<4oUWlpDxn+l<=tCZ1$eR2cCA#?-H*v#jm?&WN1z-~S!Eu+aTHYwGEh;`L2ZU+3w0*yVpXkoLRA zVy@q#br*J>dU~%v_;-O)px$AHU2VIy$>mp)df1B>}GJ{ewEnn fRjj0BJwj?3U$q)*t(U5_04elz^>bP0l+XkKQa!K< diff --git a/jekyll-backup/_site/assets/images/mstile-310x310.png b/jekyll-backup/_site/assets/images/mstile-310x310.png deleted file mode 100644 index e5d0965319fea532b72a778a831b609a6161bdd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2716 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 diff --git a/jekyll-backup/_site/assets/images/safari-pinned-tab.svg b/jekyll-backup/_site/assets/images/safari-pinned-tab.svg deleted file mode 100644 index d90a7357..00000000 --- a/jekyll-backup/_site/assets/images/safari-pinned-tab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/jekyll-backup/_site/assets/images/site.webmanifest b/jekyll-backup/_site/assets/images/site.webmanifest deleted file mode 100644 index 0c8e62dd..00000000 --- a/jekyll-backup/_site/assets/images/site.webmanifest +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "", - "short_name": "", - "icons": [ - { - "src": "/assets/images/android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "/assets/images/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - "theme_color": "#111111", - "background_color": "#111111", - "display": "standalone" -} diff --git a/jekyll-backup/_site/assets/js/feed-directory/index.js b/jekyll-backup/_site/assets/js/feed-directory/index.js deleted file mode 100644 index 6f944786..00000000 --- a/jekyll-backup/_site/assets/js/feed-directory/index.js +++ /dev/null @@ -1,124 +0,0 @@ -document.addEventListener("alpine:init", () => { - Alpine.data("feedDirectory", () => ({ - instanceUrl: atob("aHR0cHM6Ly8xLmgyci53b3JrZXJzLmRldi8="), - searchQuery: "", - configs: window.feedDirectoryData, - - fuzzyMatch(text, query) { - const lowerText = text.toLowerCase(); - const lowerQuery = query.toLowerCase(); - let textIndex = 0; - let queryIndex = 0; - - while (queryIndex < lowerQuery.length && textIndex < lowerText.length) { - if (lowerQuery[queryIndex] === lowerText[textIndex]) { - queryIndex++; - } - textIndex++; - } - return queryIndex === lowerQuery.length; - }, - - filterConfig(configName) { - if (!this.searchQuery) { - return true; - } - return this.fuzzyMatch(configName, this.searchQuery); - }, - - getFeedUrl(config, params = {}) { - let url = this.instanceUrl.endsWith("/") - ? this.instanceUrl - : `${this.instanceUrl}/`; - url += `${config.domain}/${config.name}.rss`; - - const queryParams = new URLSearchParams(); - - if (config.url_parameters) { - for (const key of Object.keys(config.url_parameters)) { - if (params[key]) { - queryParams.append(key, params[key]); - } - } - } - - const queryString = queryParams.toString(); - if (queryString) { - url += `?${queryString}`; - } - - return url; - }, - })); - - Alpine.data("feedItemData", (index) => ({ - config: window.feedDirectoryData[index], - params: {}, - pathPreview: "", - showParamsForm: false, - toggleParamsForm() { - this.showParamsForm = !this.showParamsForm; - }, - dynamicParamsInterpolate(string, params) { - return string.replace(/%<(\w+)>s/g, (_, key) => { - if (!(key in params)) { - throw new Error(`Missing value for placeholder: ${key}`); - } - return params[key]; - }); - }, - - initializeDefaultParameters() { - Object.entries(this.config.url_parameters).forEach(([key, fallback]) => { - const inputId = `${this.config.domain}-${this.config.name}-${key}`; - const input = document.getElementById(inputId); - - if (input && this.config.default_parameters[key]) { - // Set the actual value in the input field - input.value = this.config.default_parameters[key]; - // Also set placeholder as fallback - input.placeholder = this.config.default_parameters[key]; - } - }); - - // Now set params with default values (this will trigger the watcher) - this.params = { ...this.config.default_parameters }; - }, - - init() { - if (!this.config) return; - - // Initialize params first - this.params = {}; - - // Set default values in input fields after DOM is ready - if (this.config.default_parameters && !this.config.valid_channel_url) { - this.$nextTick(() => { - this.initializeDefaultParameters(); - }); - } - - if (!this.config.valid_channel_url) { - this.$watch("params", (value) => { - let params = {}; - - Object.entries(this.config.url_parameters).forEach( - ([key, fallback]) => { - const val = value[key]; - params[key] = val || `{${fallback}}`; - }, - ); - - try { - this.pathPreview = this.dynamicParamsInterpolate( - this.config.channel.url, - params, - ); - } catch (error) { - console.error("Error interpolating parameters:", error); - } - }); - } - }, - })); -}); diff --git a/jekyll-backup/_site/assets/js/just-the-docs.js b/jekyll-backup/_site/assets/js/just-the-docs.js deleted file mode 100644 index fa70ae50..00000000 --- a/jekyll-backup/_site/assets/js/just-the-docs.js +++ /dev/null @@ -1,574 +0,0 @@ -(function (jtd, undefined) { - -// Event handling - -jtd.addEvent = function(el, type, handler) { - if (el.attachEvent) el.attachEvent('on'+type, handler); else el.addEventListener(type, handler); -} -jtd.removeEvent = function(el, type, handler) { - if (el.detachEvent) el.detachEvent('on'+type, handler); else el.removeEventListener(type, handler); -} -jtd.onReady = function(ready) { - // in case the document is already rendered - if (document.readyState!='loading') ready(); - // modern browsers - else if (document.addEventListener) document.addEventListener('DOMContentLoaded', ready); - // IE <= 8 - else document.attachEvent('onreadystatechange', function(){ - if (document.readyState=='complete') ready(); - }); -} - -// Show/hide mobile menu - -function initNav() { - jtd.addEvent(document, 'click', function(e){ - var target = e.target; - while (target && !(target.classList && target.classList.contains('nav-list-expander'))) { - target = target.parentNode; - } - if (target) { - e.preventDefault(); - target.ariaPressed = target.parentNode.classList.toggle('active'); - } - }); - - const siteNav = document.getElementById('site-nav'); - const mainHeader = document.getElementById('main-header'); - const menuButton = document.getElementById('menu-button'); - - disableHeadStyleSheets(); - - jtd.addEvent(menuButton, 'click', function(e){ - e.preventDefault(); - - if (menuButton.classList.toggle('nav-open')) { - siteNav.classList.add('nav-open'); - mainHeader.classList.add('nav-open'); - menuButton.ariaPressed = true; - } else { - siteNav.classList.remove('nav-open'); - mainHeader.classList.remove('nav-open'); - menuButton.ariaPressed = false; - } - }); -} - -// The element is assumed to include the following stylesheets: -// - a to /assets/css/just-the-docs-head-nav.css, -// with id 'jtd-head-nav-stylesheet' -// - a - - - - - - - - - - - - - - - - -Feed Directory | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - -
    -
    - -
    -

    - - - Welcome to the Feed Directory! - - -

    - -

    - This directory contains a list of pre-built configurations to create RSS - feeds for various websites. -

    -
    - -
    -

    - - - Instance URL - - -

    - -

    - An "Instance URL" is the address of a running - html2rss-web application. You can use a public instance, but we - encourage you to host your own. -

    - - πŸš€ Host Your Own Instance (and share it!) - -

    - Find more public instances on the - - community-run wiki. -

    -
    -
    - - - - - -
    -
    -
    - Instance URL - -
    - -
    - Search - -
    -
    -
    - -
    -
    - - - -
    - - -
    - -
    -
    - -
    -

    - - - - - https://apnews.com/%<section>s - - - - - -

    - - - - -
    - -
    -
    - -
    - - -
    - -
    - -
    -
    -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://avherald.com/ - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - https://www.bbc.co.uk/programmes/%<id>s/episodes/player - - - - - -

    - - - - -
    - -
    -
    - -
    - - -
    - -
    - -
    -
    -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://www.bbc.com/mundo - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - https://blog.mondediplo.net/%<blog>s - - - - - -

    - - - - -
    - -
    -
    - -
    - - -
    - -
    - -
    -
    -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://www.canarianweekly.com/ - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - - - -
    - - -
    - -
    -
    - - - -
    - - -
    - -
    -
    - -
    -

    - - - - - https://www.cnet.com/%<section>s/%<sub>s/ - - - - - -

    - - - - -
    - -
    -
    - -
    - - -
    - -
    - - -
    - -
    - -
    -
    -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://www.computerbase.de - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://cutle.fish/ - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://deraktionaer.de/ - - - - - -

    - - -
    - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://www.dsw-info.de/presse - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://www.espn.com/f1/ - - - - - -

    - - -
    - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - -
    -
    - -
    -

    - - - - - https://github.com/%<username>s/%<repository>s/releases - - - - - -

    - - - - -
    - -
    -
    - -
    - - -
    - -
    - - -
    - -
    - -
    -
    -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://www.iaapa.org/news - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - https://www.imdb.com/user/%<user_id>s/ratings - - - - - -

    - - - - -
    - -
    -
    - -
    - - -
    - -
    - -
    -
    -
    - -
    - - -
    - - - -
    -
    - -
    -

    - - - - - - https://kinocheck.de/filmstarts - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://www.newyorker.com/magazine - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://www.nomanssky.com/news/ - - - - - -

    - - -
    - -
    - - -
    - - - -
    -
    - -
    -

    - - - - - - https://phys.org/weekly-news/ - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://rbb24.de/ - - - - - -

    - - -
    - -
    - - -
    - -
    - - - -
    - -
    - - - -
    - -
    -
    - -
    -

    - - - - - - https://sebastianvettel.de/news/ - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - - - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://solarthermalworld.org/news - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://www.spektrum.de/ - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - https://www.spiegel.de/impressum/autor-%<id>s - - - - - -

    - - - - -
    - -
    -
    - -
    - - -
    - -
    - -
    -
    -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://stackoverflow.com/questions - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://www.steuerzahler.de/news - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://www.stripes.com/ - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - - - -
    - - -
    - -
    -
    - - - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://www.teneriffa-news.com/news - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - -
    -

    - - - - - - https://www.test.de/archiv/ - - - - - -

    - - -
    - -
    - - -
    - -
    -
    - - - -
    - - -
    - -
    -
    - - - -
    - - -
    - - - -
    -
    - -
    -

    - - - - - https://www.webentwickler-jobs.de/in/%<region>s - - - - - -

    - - - - -
    - -
    -
    - -
    - - -
    - -
    - -
    -
    -
    - -
    - - -
    - -
    -
    -
    - -
    -

    - - - Contribute to the Directory - - -

    - -

    - The feed configurations in this directory are community-driven. If you've - created a new feed configuration, we encourage you to share it with the - community. -

    - - Contribute on GitHub - -
    - - - - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/feed.xml b/jekyll-backup/_site/feed.xml deleted file mode 100644 index e480d8f4..00000000 --- a/jekyll-backup/_site/feed.xml +++ /dev/null @@ -1,4 +0,0 @@ -Jekyll2025-09-14T18:22:41+02:00http://localhost:4000/feed.xmlhtml2rsshtml2rss brings back RSS. It's an open source project with decentralised -instances. These instances generate RSS feeds for websites which do not offer -them. - \ No newline at end of file diff --git a/jekyll-backup/_site/get-involved/contributing.html b/jekyll-backup/_site/get-involved/contributing.html deleted file mode 100644 index 4f1eace5..00000000 --- a/jekyll-backup/_site/get-involved/contributing.html +++ /dev/null @@ -1,596 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Contributing | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Contributing to html2rss - - -

    - - -

    We’re thrilled that you’re interested in contributing to html2rss! There are many ways to get involved, and we welcome contributions of all kinds.

    -
    -

    - - - Code of Conduct - - -

    - - -

    Before you begin, please read our Code of Conduct. We expect all contributors to adhere to this code to ensure that our community is a welcoming and inclusive space for everyone.

    -
    -

    - - - How to Contribute - - -

    - - -

    Here are some of the ways you can contribute to the html2rss project:

    -

    - - - 1. Create a Feed Config - - -

    - - -

    Are you missing an RSS feed for a website? You can create your own feed config and share it with the community. It’s a great way to get started with html2rss and help other users.

    - -

    The html2rss β€œecosystem” is a community project. We welcome contributions of all kinds. This includes new feed configs, suggesting and implementing features, providing bug fixes, documentation improvements, and any other kind of help.

    - -

    Which way you choose to add a new feed config is up to you. You can do it manually. Please submit a pull request!

    - -

    After you’re done, you can test your feed config by running bundle exec html2rss feed lib/html2rss/configs/<domainname.tld>/<path>.yml.

    -

    - - - Preferred way: manually - - -

    - - -
      -
    1. Fork the html2rss-config git repository and run bundle install (you need to have Ruby >= 3.3 installed).
    2. -
    3. Create a new folder and file following this convention: lib/html2rss/configs/<domainname.tld>/<path>.yml -
    4. -
    5. Create the feed config in the <path>.yml file.
    6. -
    7. Add this spec file in the spec/html2rss/configs/<domainname.tld>/<path>_spec.rb file.
    8. -
    - -
      RSpec.describe '<domainname.tld>/<path>' do
    -    include_examples 'config.yml', described_class
    -  end
    -
    -

    - - - 2. Improve this Website - - -

    - - -

    This website is built with Jekyll and is hosted on GitHub Pages. If you have any ideas for improving the documentation or the design, we’d love to hear from you.

    - -

    Find the source code on GitHub

    -

    - - - 3. Host a Public Instance - - -

    - - -

    The html2rss-web project is a web application that allows you to create and manage your RSS feeds through a user-friendly interface. You can host your own public instance to help other users create feeds.

    - -

    Learn how to host a public instance

    -

    - - - 4. Improve the html2rss Gem - - -

    - - -

    Are you a Ruby developer? You can help us improve the core html2rss gem. Whether you’re fixing a bug, adding a new feature, or improving the documentation, your contributions are welcome.

    - -

    Check out the documentation for the html2rss Gem

    -

    - - - 5. Report Bugs & Discuss Features - - -

    - - -

    If you’ve found a bug, please open an issue on the appropriate GitHub repository. For new feature ideas, we encourage you to start a discussion first.

    - -

    Report Bugs:

    - - - -

    Discuss Features:

    - - -
    - -

    We appreciate your interest in contributing to html2rss!

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/get-involved/discussions.html b/jekyll-backup/_site/get-involved/discussions.html deleted file mode 100644 index b4f7da6d..00000000 --- a/jekyll-backup/_site/get-involved/discussions.html +++ /dev/null @@ -1,478 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Join Community Discussions | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Join Community Discussions - - -

    - - -

    Connect with other users and contributors by joining our community discussions on GitHub. This is a vibrant space for general questions, sharing tips, discussing ideas, and getting feedback from the community.

    - -

    πŸ’¬ Join Discussions on GitHub

    - -

    We encourage you to participate, ask questions, and share your insights!

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/get-involved/index.html b/jekyll-backup/_site/get-involved/index.html deleted file mode 100644 index 14669ebe..00000000 --- a/jekyll-backup/_site/get-involved/index.html +++ /dev/null @@ -1,500 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Get Involved | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - -
    -
    - -

    - - - Get Involved - - -

    - - - - -

    Engage with the html2rss project. Contribute and connect with the community.

    - - - - - - -
    -

    Table of contents

    - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/get-involved/issues-and-features.html b/jekyll-backup/_site/get-involved/issues-and-features.html deleted file mode 100644 index 90d56891..00000000 --- a/jekyll-backup/_site/get-involved/issues-and-features.html +++ /dev/null @@ -1,513 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Report Bugs & Discuss Features | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Report Bugs & Discuss Features - - -

    - - -

    We appreciate your help in improving html2rss! Please follow these guidelines when reporting issues or suggesting new features.

    -
    -

    - - - Reporting Bugs - - -

    - - -

    If you’ve found a bug, please open an issue on the appropriate GitHub repository. This helps us track and resolve problems efficiently.

    - -

    ➑️ Open an Issue on GitHub

    - -

    When opening a bug report, please provide as much detail as possible, including:

    - -
      -
    • The html2rss version you are using.
    • -
    • Your operating system.
    • -
    • Your configuration file (if applicable).
    • -
    • The target URL you are trying to scrape.
    • -
    • Any error messages you receive.
    • -
    • Steps to reproduce the issue.
    • -
    -
    -

    - - - Discussing New Features - - -

    - - -

    For new feature ideas or enhancements, we encourage you to start a discussion on GitHub Discussions first. This allows for community input, refinement of the idea, and helps us prioritize development.

    - -

    πŸ’¬ Start a New Discussion on GitHub

    - -

    If the discussion leads to a concrete proposal, a formal feature request issue can then be opened.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/get-involved/sponsoring.html b/jekyll-backup/_site/get-involved/sponsoring.html deleted file mode 100644 index 69eaef90..00000000 --- a/jekyll-backup/_site/get-involved/sponsoring.html +++ /dev/null @@ -1,501 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Sponsoring | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Sponsoring html2rss - - -

    - - -

    html2rss is an open-source project, and its development is made possible by the support of our community. If you find html2rss useful, please consider sponsoring the project.

    -

    - - - Why Sponsor? - - -

    - - -
      -
    • -Ensure the project’s longevity: Your sponsorship helps to ensure that the project remains actively maintained and developed.
    • -
    • -Support new features: Your contribution will help to fund the development of new features and improvements.
    • -
    • -Show your appreciation: Sponsoring is a great way to show your appreciation for the project and the work that goes into it.
    • -
    -

    - - - How to Sponsor - - -

    - - -

    You can sponsor the project through GitHub Sponsors.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/html2rss-configs/index.html b/jekyll-backup/_site/html2rss-configs/index.html deleted file mode 100644 index a0b64a6a..00000000 --- a/jekyll-backup/_site/html2rss-configs/index.html +++ /dev/null @@ -1,717 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -html2rss-configs | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - -
    -
    - -

    - - - Creating Custom RSS Feeds - - -

    - - -

    Want to create RSS feeds for websites that don’t offer them? This guide shows you how to write simple configuration files that tell the html2rss engine exactly what content to extract.

    - -

    Don’t worry if you’re not technical - we’ll explain everything step by step!

    - -

    You can see examples of what others have created in the Feed Directory.

    -
    -

    - - - How It Works - - -

    - - -

    Think of the html2rss engine as a smart assistant that needs instructions. You give it a simple β€œrecipe” (called a config file) that tells it:

    - -
      -
    1. -Which website to look at
    2. -
    3. -What content to find (articles, posts, etc.)
    4. -
    5. -How to organize that content into an RSS feed
    6. -
    - -

    The recipe is written in YAML - a simple format that’s easy to read and write. Both html2rss-web and the html2rss Ruby gem use these same configuration files.

    -

    - - - The channel Block - - -

    - - -

    This tells the html2rss engine basic information about your feed - like giving it a name and telling it which website to look at.

    - -

    Example:

    - -
    channel:
    -  url: https://example.com/blog
    -  title: My Awesome Blog
    -
    - -

    This says: β€œLook at this website and call the feed β€˜My Awesome Blog’”

    -

    - - - The selectors Block - - -

    - - -

    This is where you tell the html2rss engine exactly what to find on the page. You use CSS selectors (like you might use in web design) to point to specific parts of the webpage.

    - -

    Example:

    - -
    selectors:
    -  items:
    -    selector: "article.post"
    -  title:
    -    selector: "h2 a"
    -  link:
    -    selector: "h2 a"
    -
    - -

    This says: β€œFind each article, get the title from the h2 link, and get the link from the same h2 link”

    - -

    Need more details? Check our complete guide to selectors for all the options.

    -
    -

    - - - Tutorial: Your First Feed - - -

    - - -

    Let’s create a simple RSS feed step by step. We’ll use a basic blog as our example.

    -

    - - - Step 1: Look at the Website - - -

    - - -

    First, visit the website you want to create a feed for. Right-click and β€œView Page Source” to see the HTML structure. Look for patterns like this:

    - -
    <div class="posts">
    -  <article class="post">
    -    <h2><a href="/post/1">First Post</a></h2>
    -    <p>This is the summary of the first post.</p>
    -  </article>
    -  <article class="post">
    -    <h2><a href="/post/2">Second Post</a></h2>
    -    <p>This is the summary of the second post.</p>
    -  </article>
    -</div>
    -
    - -

    What we see: Each article is wrapped in <article class="post">, titles are in <h2><a> tags, and descriptions are in <p> tags.

    -

    - - - Step 2: Create Your Config File - - -

    - - -

    Create a new text file and save it as my-blog.yml (or any name you like). Add this basic information:

    - -
    # my-blog.yml
    -channel:
    -  url: https://example.com/blog
    -  title: My Awesome Blog
    -  description: The latest news from my awesome blog.
    -
    - -

    This tells html2rss: β€œLook at this website and call the feed β€˜My Awesome Blog’”

    -

    - - - Step 3: Tell html2rss What to Find - - -

    - - -

    Now add the selectors that tell html2rss exactly what content to extract:

    - -
    # my-blog.yml
    -selectors:
    -  items:
    -    selector: "article.post"
    -  title:
    -    selector: "h2 a"
    -  link:
    -    selector: "h2 a"
    -  description:
    -    selector: "p"
    -
    - -

    What this means:

    - -
      -
    • -items: "article.post" = β€œFind each article with class β€˜post’”
    • -
    • -title: "h2 a" = β€œGet the title from the h2 link”
    • -
    • -link: "h2 a" = β€œGet the link from the same h2 link”
    • -
    • -description: "p" = β€œGet the description from the paragraph”
    • -
    -
    -

    - - - Advanced Techniques - - -

    - -

    - - - Dynamic Feeds with Parameters - - -

    - - -

    Use the parameters block to create flexible configs. This is useful for feeds based on search terms, categories, or regions.

    - -
    # news-search.yml
    -parameters:
    -  query:
    -    type: string
    -    default: "technology"
    -
    -channel:
    -  url: "https://news.example.com/search?q={query}"
    -  title: "News results for '{query}'"
    -
    -selectors:
    -  items:
    -    selector: ".article"
    -  title:
    -    selector: "h2 a"
    -  url:
    -    selector: "h2 a"
    -    extractor: "href"
    -
    -
    -

    - - - Contributing Your Config - - -

    - - -

    Have you created a config that others might find useful? We strongly encourage you to contribute it to the project! By sharing your config, you make it available to all users of the public html2rss-web service and the Feed Directory.

    - -

    To contribute, please create a pull request to the html2rss-configs repository.

    -
    -

    - - - Usage and Integration - - -

    - -

    - - - With html2rss-web - - -

    - - -

    Once your pull request is reviewed and merged, your config will become available on the public html2rss-web instance. You can then access it at the path /<domainname.tld/path>.rss.

    -

    - - - Programmatic Usage in Ruby - - -

    - - -

    You can also use html2rss-configs programmatically in your Ruby applications.

    - -

    Add this to your Gemfile:

    - -
    gem 'html2rss-configs', git: 'https://github.com/html2rss/html2rss-configs.git'
    -
    - -

    And use it in your code:

    - -
    require 'html2rss/configs'
    -
    -config = Html2rss::Configs.find_by_name('domainname.tld/whatever')
    -rss = Html2rss.feed(config)
    -
    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/index.html b/jekyll-backup/_site/index.html deleted file mode 100644 index bc899871..00000000 --- a/jekyll-backup/_site/index.html +++ /dev/null @@ -1,517 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Home | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - -
    -
    - -

    - - - Turn Any Website Into an RSS Feed - - -

    - - -

    Ever wished you could follow your favorite websites like a social media feed? The html2rss project makes it possible by creating RSS feeds for any website - even ones that don’t offer them.

    - -

    πŸš€ Get Started with html2rss-web

    -
    -

    - - - What is RSS? - - -

    - - -

    RSS (Really Simple Syndication) lets you follow websites in your favorite feed reader. Instead of checking multiple websites daily, you get all updates in one place - like a personalized news feed.

    -

    - - - The html2rss Project - - -

    - - -

    The html2rss project provides two main ways to create RSS feeds:

    - -
      -
    • -html2rss-web - A user-friendly web application (recommended for most users)
    • -
    • -html2rss - A Ruby gem for developers and advanced users
    • -
    - -

    Both use the same powerful engine to extract content from websites and convert it into RSS feeds.

    -
    -

    - - - Choose Your Path - - -

    - - -
      -
    • -html2rss-web: Start here! Easy-to-use web application. No technical knowledge required.
    • -
    • -Feed Directory: Browse ready-made feeds for popular websites
    • -
    • -html2rss (Ruby Gem): For developers who want to create custom configurations
    • -
    -
    - -

    Ready to get started? Check out our html2rss-web getting started guide or browse existing feeds to see what’s possible.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/robots.txt b/jekyll-backup/_site/robots.txt deleted file mode 100644 index d2970640..00000000 --- a/jekyll-backup/_site/robots.txt +++ /dev/null @@ -1 +0,0 @@ -Sitemap: http://localhost:4000/sitemap.xml diff --git a/jekyll-backup/_site/ruby-gem/how-to/advanced-content-extraction.html b/jekyll-backup/_site/ruby-gem/how-to/advanced-content-extraction.html deleted file mode 100644 index fde7488e..00000000 --- a/jekyll-backup/_site/ruby-gem/how-to/advanced-content-extraction.html +++ /dev/null @@ -1,498 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Advanced Content Extraction | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Advanced Content Extraction with Selectors - - -

    - - -

    While basic selectors are straightforward, you can achieve very precise content extraction by combining selectors with different extractors and post-processors.

    -

    - - - Extractors - - -

    - - -

    Learn how to extract specific attributes (like src for images) or static values. See Extractors.

    -

    - - - Post Processors - - -

    - - -

    Manipulate extracted text, sanitize HTML, convert Markdown, or apply custom logic. See Post Processors.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/how-to/custom-http-requests.html b/jekyll-backup/_site/ruby-gem/how-to/custom-http-requests.html deleted file mode 100644 index e0ae41e0..00000000 --- a/jekyll-backup/_site/ruby-gem/how-to/custom-http-requests.html +++ /dev/null @@ -1,488 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Custom HTTP Requests | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Customizing HTTP Requests - - -

    - - -

    You might need to send custom HTTP headers (e.g., User-Agent, Authorization) to access certain content or interact with APIs.

    -

    - - - Solution - - -

    - - -

    Configure custom HTTP headers in your feed configuration.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/how-to/dynamic-parameters.html b/jekyll-backup/_site/ruby-gem/how-to/dynamic-parameters.html deleted file mode 100644 index 501f16bc..00000000 --- a/jekyll-backup/_site/ruby-gem/how-to/dynamic-parameters.html +++ /dev/null @@ -1,514 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Dynamic Parameters | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Dynamic Parameters in URLs and Headers - - -

    - - -

    For websites with similar structures but varying content based on a parameter in the URL or headers, you can use dynamic parameters.

    -

    - - - Solution - - -

    - - -

    You can add dynamic parameters to the channel and headers values. This is useful for creating feeds from structurally similar pages with different URLs.

    - -
    channel:
    -  url: "http://domainname.tld/whatever/%<id>s.html"
    -headers:
    -  X-Something: "%<foo>s"
    -
    - -

    You can then pass the values for these parameters when you run html2rss:

    - -
    html2rss feed the_feed_config.yml --params id:42 foo:bar
    -
    -
    -

    - - - Explanation - - -

    - - -
      -
    • The %<param>s syntax in the URL and headers is a placeholder for dynamic parameters.
    • -
    • You provide the actual values for these parameters at runtime using the --params option.
    • -
    • This allows you to reuse the same feed configuration for multiple similar pages or APIs.
    • -
    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/how-to/handling-dynamic-content.html b/jekyll-backup/_site/ruby-gem/how-to/handling-dynamic-content.html deleted file mode 100644 index 6003ea51..00000000 --- a/jekyll-backup/_site/ruby-gem/how-to/handling-dynamic-content.html +++ /dev/null @@ -1,488 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Handling Dynamic Content | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Handling Dynamic Content and JavaScript - - -

    - - -

    Some websites load their content dynamically using JavaScript. The default html2rss strategy might not see this content.

    -

    - - - Solution - - -

    - - -

    Use the browserless strategy to render JavaScript-heavy websites with a headless browser.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/how-to/index.html b/jekyll-backup/_site/ruby-gem/how-to/index.html deleted file mode 100644 index fcf1579b..00000000 --- a/jekyll-backup/_site/ruby-gem/how-to/index.html +++ /dev/null @@ -1,507 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -How-To Guides | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - How-To Guides - - -

    - - -

    This section provides practical examples and solutions for common tasks when using the html2rss gem.

    - - - - -
    -

    Table of contents

    - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/how-to/managing-feed-configs.html b/jekyll-backup/_site/ruby-gem/how-to/managing-feed-configs.html deleted file mode 100644 index c6fb1a40..00000000 --- a/jekyll-backup/_site/ruby-gem/how-to/managing-feed-configs.html +++ /dev/null @@ -1,551 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Managing Feed Configs | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Managing Feed Configurations with YAML - - -

    - - -

    For easier management, especially when using the CLI or html2rss-web, you can store your feed configurations in a YAML file.

    -

    - - - Global and Feed-Specific Configurations - - -

    - - -

    You can define global settings that apply to all feeds, and then define individual feed configurations under the feeds key.

    - -
    # Global settings
    -headers:
    -  "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1"
    -  "Accept": "text/html"
    -
    -# Feed-specific settings
    -feeds:
    -  my-first-feed:
    -    channel:
    -      url: "https://example.com/blog"
    -    selectors:
    -      # ...
    -  my-second-feed:
    -    channel:
    -      url: "https://example.com/news"
    -    selectors:
    -      # ...
    -
    -

    - - - Building Feeds from a YAML File - - -

    - -

    - - - Ruby - - -

    - - -
    require 'html2rss'
    -
    -# Build a specific feed from the YAML file
    -my_feed_config = Html2rss.config_from_yaml_file('feeds.yml', 'my-first-feed')
    -rss = Html2rss.feed(my_feed_config)
    -puts rss
    -
    -# If the YAML file contains only one feed, you can omit the feed name
    -single_feed_config = Html2rss.config_from_yaml_file('single.yml')
    -rss = Html2rss.feed(single_feed_config)
    -puts rss
    -
    -

    - - - Command Line - - -

    - - -
    # Build a specific feed
    -html2rss feed feeds.yml my-first-feed
    -
    -# Build a feed from a single-feed YAML file
    -html2rss feed single.yml
    -
    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/how-to/scraping-json.html b/jekyll-backup/_site/ruby-gem/how-to/scraping-json.html deleted file mode 100644 index 3b2d7898..00000000 --- a/jekyll-backup/_site/ruby-gem/how-to/scraping-json.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Scraping JSON Responses | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Scraping JSON Responses - - -

    - - -

    When a website returns a JSON response (i.e., with a Content-Type of application/json), html2rss converts the JSON to XML, allowing you to use CSS selectors for data extraction.

    - -
    -

    [!NOTE] -The JSON response must be an Array or a Hash for the conversion to work.

    -
    -

    - - - JSON to XML Conversion Examples - - -

    - -

    - - - JSON Object - - -

    - - -

    A JSON object like this:

    - -
    {
    -  "data": [{ "title": "Headline", "url": "https://example.com" }]
    -}
    -
    - -

    is converted to this XML structure:

    - -
    <object>
    -  <data>
    -    <array>
    -      <object>
    -        <title>Headline</title>
    -        <url>https://example.com</url>
    -      </object>
    -    </array>
    -  </data>
    -</object>
    -
    - -

    You would use array > object as your items selector.

    -

    - - - JSON Array - - -

    - - -

    A JSON array like this:

    - -
    [{ "title": "Headline", "url": "https://example.com" }]
    -
    - -

    is converted to this XML structure:

    - -
    <array>
    -  <object>
    -    <title>Headline</title>
    -    <url>https://example.com</url>
    -  </object>
    -</array>
    -
    - -

    You would use array > object as your items selector.

    -

    - - - Configuration Examples - - -

    - -

    - - - Ruby - - -

    - - -
    Html2rss.feed(
    -  headers: {
    -    Accept: 'application/json'
    -  },
    -  channel: {
    -    url: 'http://domainname.tld/whatever.json'
    -  },
    -  selectors: {
    -    title: { selector: 'foo' }
    -  }
    -)
    -
    -

    - - - YAML - - -

    - - -
    headers:
    -  Accept: application/json
    -channel:
    -  url: "http://domainname.tld/whatever.json"
    -selectors:
    -  items:
    -    selector: "array > object"
    -  title:
    -    selector: "foo"
    -
    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/how-to/styling-rss-feed.html b/jekyll-backup/_site/ruby-gem/how-to/styling-rss-feed.html deleted file mode 100644 index 809ed3cd..00000000 --- a/jekyll-backup/_site/ruby-gem/how-to/styling-rss-feed.html +++ /dev/null @@ -1,488 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Styling Your RSS Feed | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Styling Your RSS Feed - - -

    - - -

    You can make your RSS feed look good in a web browser by attaching stylesheets.

    -

    - - - Solution - - -

    - - -

    Add stylesheets to your feed configuration.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/index.html b/jekyll-backup/_site/ruby-gem/index.html deleted file mode 100644 index 1dedb6db..00000000 --- a/jekyll-backup/_site/ruby-gem/index.html +++ /dev/null @@ -1,512 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Ruby Gem | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - -
    -
    - -

    - - - The html2rss Ruby Gem - - -

    - - -

    This section provides comprehensive documentation for the html2rss Ruby gem.

    -

    - - - Getting Started - - -

    - - -

    If you are new to html2rss, we recommend starting with the tutorials.

    -

    - - - Documentation Sections - - -

    - - -
      -
    • -Tutorials: Step-by-step guides to help you get started with html2rss.
    • -
    • -How-To Guides: Practical examples and solutions for common tasks.
    • -
    • -Reference: Detailed information on configuration options.
    • -
    - - - - -
    -

    Table of contents

    - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/installation.html b/jekyll-backup/_site/ruby-gem/installation.html deleted file mode 100644 index f65910d3..00000000 --- a/jekyll-backup/_site/ruby-gem/installation.html +++ /dev/null @@ -1,496 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Installation | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Installation - - -

    - - -

    This guide will walk you through the process of installing html2rss on your system. html2rss can be installed in several ways, depending on your preferred method and environment.

    -
    -

    - - - Prerequisites - - -

    - - -
      -
    • -Ruby: html2rss is built with Ruby. Ensure you have Ruby installed (version 3.2 or higher required). You can check your Ruby version by running ruby -v in your terminal. If you don’t have Ruby, visit ruby-lang.org for installation instructions.
    • -
    • -Bundler (Recommended): Bundler is a Ruby gem that manages your application’s dependencies. It’s highly recommended for a smooth installation. Install it with gem install bundler.
    • -
    -
    - - - -

    The simplest way to get html2rss for command-line usage is to install it as a Ruby gem.

    - -
    gem install html2rss
    -
    - -

    After installation, you should be able to run html2rss --version to confirm it’s working.

    -
    -

    - - - Method 2: Using a Gemfile (For Ruby Projects) - - -

    - - -

    If you’re integrating html2rss into an existing Ruby project, add it to your Gemfile:

    - -
    # Gemfile
    -gem 'html2rss'
    -
    - -

    Then, run bundle install in your project directory.

    -
    -

    - - - Method 3: GitHub Codespaces (For Cloud Development) - - -

    - - -

    For a quick start without local setup, you can develop html2rss directly in your browser using GitHub Codespaces:

    - -

    Open in GitHub Codespaces

    - -

    The Codespace comes pre-configured with Ruby 3.4, all dependencies, and VS Code extensions ready to go!

    -
    -

    - - - Verifying Installation - - -

    - - -

    To ensure html2rss is installed correctly, open your terminal and run:

    - -
    html2rss --version
    -
    - -

    You should see the installed version number. If you encounter any issues, please refer to the Troubleshooting Guide.

    -
    -

    - - - Next Steps - - -

    - - -

    Now that html2rss is installed, let’s create your first RSS feed!

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/reference/auto-source.html b/jekyll-backup/_site/ruby-gem/reference/auto-source.html deleted file mode 100644 index c25dcadd..00000000 --- a/jekyll-backup/_site/ruby-gem/reference/auto-source.html +++ /dev/null @@ -1,552 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Auto Source | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Auto Source - - -

    - - -

    The auto_source scraper automatically finds items on a page, so you don’t have to specify CSS selectors.

    - -

    To enable it, add auto_source: {} to your configuration:

    - -
    channel:
    -  url: https://example.com
    -auto_source: {}
    -
    -

    - - - How It Works - - -

    - - -

    auto_source uses the following strategies to find content:

    - -
      -
    1. -schema: Parses <script type="json/ld"> tags containing structured data (e.g., Schema.org).
    2. -
    3. -semantic_html: Searches for semantic HTML5 tags like <article>, <main>, and <section>.
    4. -
    5. -html: Analyzes the HTML structure to find frequently occurring selectors that are likely to contain the main content.
    6. -
    -

    - - - Fine-Tuning - - -

    - - -

    You can customize auto_source to improve its accuracy.

    -

    - - - Scraper Options - - -

    - - -

    Enable or disable specific scrapers and adjust their settings:

    - -
    auto_source:
    -  scraper:
    -    schema:
    -      enabled: false # default: true
    -    semantic_html:
    -      enabled: false # default: true
    -    html:
    -      enabled: true
    -      minimum_selector_frequency: 3 # default: 2
    -      use_top_selectors: 3 # default: 5
    -
    -

    - - - Cleanup Options - - -

    - - -

    Remove unwanted items from the results:

    - -
    auto_source:
    -  cleanup:
    -    keep_different_domain: false # default: true
    -    min_words_title: 4 # default: 3
    -
    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/reference/channel.html b/jekyll-backup/_site/ruby-gem/reference/channel.html deleted file mode 100644 index e0d7f62b..00000000 --- a/jekyll-backup/_site/ruby-gem/reference/channel.html +++ /dev/null @@ -1,543 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Channel | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Channel - - -

    - - -

    The channel configuration block defines the metadata for your RSS feed.

    - -
    channel:
    -  url: https://example.com
    -  title: "My Custom Feed"
    -  description: "A feed of the latest news from Example.com"
    -  author: "jane.doe@example.com (Jane Doe)"
    -  ttl: 60
    -  language: "en-us"
    -  time_zone: "Europe/Berlin"
    -
    -

    - - - Options - - -

    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    AttributeRequiredDescription
    urlRequiredThe URL of the website to scrape.
    titleOptionalThe title of the RSS feed. Defaults to the website’s title.
    descriptionOptionalA description for the RSS feed. Defaults to the website’s meta description.
    authorOptionalThe author of the feed, in the format email (Name).
    ttlOptionalThe β€œtime to live” for the feed in minutes. Defaults to the max-age from the response headers, or 360.
    languageOptionalThe language of the feed. Defaults to the lang attribute of the <html> tag.
    time_zoneOptionalThe time zone for parsing dates. See the list of tz database time zones.
    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/reference/cli-reference.html b/jekyll-backup/_site/ruby-gem/reference/cli-reference.html deleted file mode 100644 index b6f4803f..00000000 --- a/jekyll-backup/_site/ruby-gem/reference/cli-reference.html +++ /dev/null @@ -1,557 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CLI Reference | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - CLI Reference - - -

    - - -

    This section provides a reference for the html2rss command-line interface (CLI).

    - -

    For detailed documentation on the Ruby API, please refer to the official YARD documentation.

    - -

    πŸ“š View the Ruby API Docs on rubydoc.info

    -
    -

    - - - Command-Line Interface (CLI) - - -

    - - -

    The html2rss executable provides the primary way to interact with the tool from your terminal.

    -

    - - - html2rss auto <URL> - - -

    - - -

    Automatically generates an RSS feed from the provided URL.

    - -
      -
    • -<URL> (Required): The URL of the website to generate a feed from.
    • -
    - -

    Example:

    - -
    html2rss auto https://unmatchedstyle.com/
    -
    -

    - - - html2rss feed <CONFIG_FILE> - - -

    - - -

    Generates an RSS feed based on the provided YAML configuration file.

    - -
      -
    • -<CONFIG_FILE> (Required): Path to your YAML configuration file.
    • -
    - -

    Examples:

    - -
    # Generate and print to console
    -html2rss feed my_feed.yml
    -
    -# Generate and save to an XML file
    -html2rss feed my_feed.yml > my_feed.xml
    -
    -

    - - - html2rss help - - -

    - - -

    Displays the help message with available commands and options.

    -

    - - - html2rss --version - - -

    - - -

    Displays the currently installed version of html2rss.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/reference/headers.html b/jekyll-backup/_site/ruby-gem/reference/headers.html deleted file mode 100644 index 8833b72b..00000000 --- a/jekyll-backup/_site/ruby-gem/reference/headers.html +++ /dev/null @@ -1,504 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Headers | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Headers - - -

    - - -

    The headers key allows you to set custom HTTP headers for your requests. This is useful for accessing APIs or other protected content.

    -

    - - - Configuration - - -

    - - -

    You can add any number of headers to your configuration:

    - -
    headers:
    -  User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
    -  Authorization: "Bearer YOUR_TOKEN"
    -  Accept: "application/json"
    -
    -

    - - - Dynamic Parameters - - -

    - - -

    You can also use dynamic parameters in your headers to pass values at runtime. See Dynamic Parameters for more information.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/reference/index.html b/jekyll-backup/_site/ruby-gem/reference/index.html deleted file mode 100644 index 52fa3029..00000000 --- a/jekyll-backup/_site/ruby-gem/reference/index.html +++ /dev/null @@ -1,507 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Reference | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Reference - - -

    - - -

    This section provides detailed information on the various configuration options available in html2rss.

    - - - - -
    -

    Table of contents

    - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/reference/selectors.html b/jekyll-backup/_site/ruby-gem/reference/selectors.html deleted file mode 100644 index 246f4a4a..00000000 --- a/jekyll-backup/_site/ruby-gem/reference/selectors.html +++ /dev/null @@ -1,753 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Selectors | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Selectors - - -

    - - -

    The selectors scraper gives you fine-grained control over content extraction using CSS selectors.

    - -
    -

    A valid RSS item requires at least a title or a description.

    -
    -

    - - - Basic Configuration - - -

    - - -

    At a minimum, you need an items selector to define the list of articles and a title selector for the article titles.

    - -
    channel:
    -  url: "https://example.com"
    -selectors:
    -  items:
    -    selector: ".article"
    -  title:
    -    selector: "h1"
    -
    -

    - - - Automatic Item Enhancement - - -

    - - -

    To simplify configuration, html2rss can automatically extract the title, url, and image from each item. This feature is enabled by default.

    - -
    selectors:
    -  items:
    -    selector: ".article"
    -    enhance: true # default: true
    -
    -

    - - - RSS 2.0 Selectors - - -

    - - -

    While you can define any named selector, only the following are used in the final RSS feed:

    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    RSS 2.0 Tag -html2rss NameΒ 
    titletitleΒ 
    descriptiondescriptionΒ 
    linkurlΒ 
    authorauthorΒ 
    categorycategoriesΒ 
    guidguidΒ 
    enclosureenclosureΒ 
    pubDatepublished_atΒ 
    commentscomments⚠️ Not currently implemented -
    -

    - - - Selector Options - - -

    - - -

    Each selector can be configured with the following options:

    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescription
    selectorThe CSS selector for the target element.
    extractorThe extractor to use for this selector.
    attributeThe attribute name (required for attribute extractor).
    staticThe static value (required for static extractor).
    post_processA list of post-processors to apply to the value.
    -

    - - - Extractors - - -

    - - -

    Extractors define how to get the value from a selected element.

    - -
      -
    • -text: The inner text of the element (default).
    • -
    • -html: The outer HTML of the element.
    • -
    • -href: The value of the href attribute.
    • -
    • -attribute: The value of a specified attribute.
    • -
    • -static: A static value.
    • -
    -

    - - - Post-Processors - - -

    - - -

    Post-processors manipulate the extracted value.

    - -
      -
    • -gsub: Performs a global substitution on a string.
    • -
    • -html_to_markdown: Converts HTML to Markdown.
    • -
    • -markdown_to_html: Converts Markdown to HTML.
    • -
    • -parse_time: Parses a string into a Time object.
    • -
    • -parse_uri: Parses a string into a URI object.
    • -
    • -sanitize_html: Sanitizes HTML to prevent security vulnerabilities.
    • -
    • -substring: Extracts a substring from a string.
    • -
    • -template: Creates a new string from a template and other selector values.
    • -
    - -
    -

    Always use the sanitize_html post-processor for any HTML content to prevent security risks.

    -
    -

    - - - Advanced Usage - - -

    - -

    - - - Categories - - -

    - - -

    To add categories to an item, provide a list of selector names to the categories selector.

    - -
    selectors:
    -  genre:
    -    selector: ".genre"
    -  branch:
    -    selector: ".branch"
    -  categories:
    -    - genre
    -    - branch
    -
    -

    - - - Custom GUID - - -

    - - -

    To create a custom GUID for an item, provide a list of selector names to the guid selector.

    - -
    selectors:
    -  title:
    -    selector: "h1"
    -  url:
    -    selector: "a"
    -    extractor: "href"
    -  guid:
    -    - url
    -
    -

    - - - Enclosures - - -

    - - -

    To add an enclosure (e.g., an image, audio, or video file) to an item, use the enclosure selector to specify the URL of the file.

    - -
    selectors:
    -  items:
    -    selector: ".post"
    -  title:
    -    selector: "h2"
    -  enclosure:
    -    selector: "audio"
    -    extractor: "attribute"
    -    attribute: "src"
    -    content_type: "audio/mp3"
    -
    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/reference/strategy.html b/jekyll-backup/_site/ruby-gem/reference/strategy.html deleted file mode 100644 index 852cffe7..00000000 --- a/jekyll-backup/_site/ruby-gem/reference/strategy.html +++ /dev/null @@ -1,544 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Strategy | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Strategy - - -

    - - -

    The strategy key defines how html2rss fetches a website’s content.

    - -
      -
    • -faraday (default): Makes a direct HTTP request. It is fast but does not execute JavaScript.
    • -
    • -browserless: Renders the website in a headless Chrome browser, which is necessary for JavaScript-heavy sites.
    • -
    -

    - - - browserless - - -

    - - -

    To use the browserless strategy, you need a running instance of Browserless.io.

    -

    - - - Docker - - -

    - - -

    You can run a local Browserless.io instance using Docker:

    - -
    docker run \
    -  --rm \
    -  -p 3000:3000 \
    -  -e "CONCURRENT=10" \
    -  -e "TOKEN=6R0W53R135510" \
    -  ghcr.io/browserless/chromium
    -
    -

    - - - Configuration - - -

    - - -

    Set the strategy to browserless in your feed configuration:

    - -
    strategy: browserless
    -
    -

    - - - Command-Line Usage - - -

    - - -

    You can also specify the strategy on the command line:

    - -
    # Set environment variables for your Browserless.io instance
    -BROWSERLESS_IO_WEBSOCKET_URL="ws://127.0.0.1:3000"
    -BROWSERLESS_IO_API_TOKEN="6R0W53R135510"
    -
    -# Use the browserless strategy
    -html2rss feed --strategy=browserless my_config.yml
    -
    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/reference/stylesheets.html b/jekyll-backup/_site/ruby-gem/reference/stylesheets.html deleted file mode 100644 index fe641dbb..00000000 --- a/jekyll-backup/_site/ruby-gem/reference/stylesheets.html +++ /dev/null @@ -1,510 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Stylesheets | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Stylesheets - - -

    - - -

    The stylesheets key allows you to add CSS or XSLT stylesheets to your RSS feed, improving its appearance in web browsers.

    -

    - - - Configuration - - -

    - - -

    You can add multiple stylesheets to your configuration:

    - -
    stylesheets:
    -  - href: "/path/to/style.xsl"
    -    media: "all"
    -    type: "text/xsl"
    -  - href: "https://example.com/rss.css"
    -    media: "all"
    -    type: "text/css"
    -
    -

    - - - Further Reading - - -

    - - - - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/tutorials/index.html b/jekyll-backup/_site/ruby-gem/tutorials/index.html deleted file mode 100644 index 24029385..00000000 --- a/jekyll-backup/_site/ruby-gem/tutorials/index.html +++ /dev/null @@ -1,487 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Tutorials | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Tutorials - - -

    - - -

    This section provides step-by-step tutorials to help you get started with the html2rss Ruby gem.

    - - - - -
    -

    Table of contents

    - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/tutorials/simple-blog-list.html b/jekyll-backup/_site/ruby-gem/tutorials/simple-blog-list.html deleted file mode 100644 index 46d9f028..00000000 --- a/jekyll-backup/_site/ruby-gem/tutorials/simple-blog-list.html +++ /dev/null @@ -1,558 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Scraping a Simple Blog List | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Tutorial: Scraping a Simple Blog List - - -

    - - -

    This example demonstrates how to create a feed from a typical blog that has a list of articles on its homepage.

    -
    -

    - - - The Goal - - -

    - - -

    We want to create an RSS feed that contains the title, link, and summary of each article on the blog.

    -
    -

    - - - The HTML - - -

    - - -

    Here’s a simplified view of the HTML structure we’re targeting. The key is to find a container element that wraps each blog post (in this case, .post-item) and then find the selectors for the title, link, and summary within that container.

    - -
    <div class="posts">
    -  <div class="post-item">
    -    <h2 class="post-title"><a href="/blog/post-1">First Post Title</a></h2>
    -    <p class="post-summary">Summary of the first post...</p>
    -  </div>
    -  <div class="post-item">
    -    <h2 class="post-title"><a href="/blog/post-2">Second Post Title</a></h2>
    -    <p class="post-summary">Summary of the second post...</p>
    -  </div>
    -</div>
    -
    -
    -

    - - - The Configuration - - -

    - - -

    This configuration uses the selectors scraper to precisely extract the content we want.

    - -
    channel:
    -  url: https://example.com/blog
    -selectors:
    -  items:
    -    selector: ".post-item"
    -  title:
    -    selector: ".post-title a"
    -  url:
    -    selector: ".post-title a"
    -    extractor: "href"
    -  description:
    -    selector: ".post-summary"
    -
    -

    - - - Configuration Breakdown - - -

    - - -
      -
    • -items.selector: ".post-item": This is the most important selector. It tells html2rss that every element with the class post-item is a single item in the RSS feed.
    • -
    • -title.selector: ".post-title a": Within each .post-item, this finds the <a> tag inside the element with the class post-title.
    • -
    • -url.selector: ".post-title a": This finds the same <a> tag.
    • -
    • -url.extractor: "href": This extracts the URL from the href attribute of the <a> tag.
    • -
    • -description.selector: ".post-summary": This finds the element with the class post-summary.
    • -
    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/ruby-gem/tutorials/your-first-feed.html b/jekyll-backup/_site/ruby-gem/tutorials/your-first-feed.html deleted file mode 100644 index dbf5eac4..00000000 --- a/jekyll-backup/_site/ruby-gem/tutorials/your-first-feed.html +++ /dev/null @@ -1,550 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Your First Feed | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Your First Feed: A Step-by-Step Guide - - -

    - - -

    Welcome to html2rss! This guide will walk you through creating your first RSS feed. We’ll start with the easiest method and gradually introduce more powerful options.

    -
    -

    - - - Step 1: The β€œNo-Config” Method (auto) - - -

    - - -

    The easiest way to create a feed is with the auto command. It requires no configuration file and intelligently scrapes the page to find content.

    - -

    Open your terminal and run this command:

    - -
    html2rss auto https://unmatchedstyle.com/
    -
    - -

    html2rss will analyze the website and generate an RSS feed for you, printing it directly to the console. This is a great way to see if html2rss can automatically handle your target website.

    - -

    Is the result not quite right? Let’s move to the next step.

    -
    -

    - - - Step 2: The β€œFull Control” Method (selectors) - - -

    - - -

    When you need to extract content with precision, the selectors scraper is the tool for the job. This method gives you complete control over what content is included in your feed by using CSS selectors.

    - -

    Let’s create a feed for Stack Overflow’s β€œHot Network Questions”.

    - -
      -
    1. -Create a file named stackoverflow.yml.
    2. -
    3. -

      Add the following content:

      - -
      -
      channel:
      -  url: https://stackoverflow.com/questions
      -selectors:
      -  items:
      -    selector: "#hot-network-questions > ul > li"
      -  title:
      -    selector: "a"
      -  url:
      -    selector: "a"
      -    extractor: "href"
      -
      -
    4. -
    5. -

      Run the feed command:

      - -
      -
      html2rss feed stackoverflow.yml
      -
      -
    6. -
    - -

    This configuration tells html2rss:

    - -
      -
    • The main container for all items is <ul id="hot-network-questions">.
    • -
    • Each item is inside a <li> tag.
    • -
    • The title of each item is the text of the <a> tag.
    • -
    • The url of each item is the href attribute of the <a> tag.
    • -
    - -

    This is just the beginning! From here, you can dive deep into the full range of configuration options to create the perfect feed.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/sitemap.xml b/jekyll-backup/_site/sitemap.xml deleted file mode 100644 index d223adec..00000000 --- a/jekyll-backup/_site/sitemap.xml +++ /dev/null @@ -1,147 +0,0 @@ - - - -http://localhost:4000/about - - -http://localhost:4000/ruby-gem/how-to/advanced-content-extraction - - -http://localhost:4000/ruby-gem/reference/auto-source - - -http://localhost:4000/web-application/how-to/automatic-updates - - -http://localhost:4000/web-application/tutorials/building-feeds - - -http://localhost:4000/ruby-gem/reference/channel - - -http://localhost:4000/ruby-gem/reference/cli-reference - - -http://localhost:4000/configs/ - - -http://localhost:4000/get-involved/contributing - - -http://localhost:4000/ruby-gem/how-to/custom-http-requests - - -http://localhost:4000/web-application/how-to/deployment - - -http://localhost:4000/get-involved/discussions - - -http://localhost:4000/ruby-gem/how-to/dynamic-parameters - - -http://localhost:4000/web-application/reference/env-variables - - -http://localhost:4000/web-application/getting-started - - -http://localhost:4000/ruby-gem/how-to/handling-dynamic-content - - -http://localhost:4000/ruby-gem/reference/headers - - -http://localhost:4000/feed-directory/ - - -http://localhost:4000/html2rss-configs/ - - -http://localhost:4000/get-involved/ - - -http://localhost:4000/ - - -http://localhost:4000/ruby-gem/how-to/ - - -http://localhost:4000/ruby-gem/tutorials/ - - -http://localhost:4000/web-application/how-to/ - - -http://localhost:4000/web-application/ - - -http://localhost:4000/ruby-gem/reference/ - - -http://localhost:4000/ruby-gem/ - - -http://localhost:4000/web-application/reference/ - - -http://localhost:4000/web-application/tutorials/ - - -http://localhost:4000/ruby-gem/installation - - -http://localhost:4000/web-application/installation - - -http://localhost:4000/get-involved/issues-and-features - - -http://localhost:4000/ruby-gem/how-to/managing-feed-configs - - -http://localhost:4000/web-application/reference/monitoring - - -http://localhost:4000/ruby-gem/how-to/scraping-json - - -http://localhost:4000/ruby-gem/reference/selectors - - -http://localhost:4000/web-application/how-to/setup-for-development - - -http://localhost:4000/ruby-gem/tutorials/simple-blog-list - - -http://localhost:4000/get-involved/sponsoring - - -http://localhost:4000/ruby-gem/reference/strategy - - -http://localhost:4000/ruby-gem/reference/stylesheets - - -http://localhost:4000/ruby-gem/how-to/styling-rss-feed - - -http://localhost:4000/support/troubleshooting - - -http://localhost:4000/web-application/how-to/use-automatic-feed-generation - - -http://localhost:4000/web-application/how-to/use-in-production - - -http://localhost:4000/web-application/how-to/use-included-configs - - -http://localhost:4000/web-application/reference/versioning-and-releases - - -http://localhost:4000/ruby-gem/tutorials/your-first-feed - - diff --git a/jekyll-backup/_site/support/troubleshooting.html b/jekyll-backup/_site/support/troubleshooting.html deleted file mode 100644 index 08264ca7..00000000 --- a/jekyll-backup/_site/support/troubleshooting.html +++ /dev/null @@ -1,586 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Troubleshooting | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - -
    -
    - -

    - - - Troubleshooting - - -

    - - -

    This guide provides solutions to common issues encountered when using html2rss.

    -

    - - - Essential Tools - - -

    - - -

    Your browser’s developer tools are essential for troubleshooting. Use them to inspect the HTML structure of a webpage and find the correct CSS selectors.

    - -
      -
    • -To open: Right-click an element on a webpage and select β€œInspect” or β€œInspect Element.”
    • -
    -

    - - - Common Issues - - -

    - -

    - - - Empty Feeds - - -

    - - -

    If your feed is empty, check the following:

    - -
      -
    • -URL: Ensure the url in your configuration is correct and accessible.
    • -
    • -items.selector: Verify that the items.selector matches the elements on the page.
    • -
    • -Website Changes: Websites change their HTML structure frequently. Your selectors may be outdated.
    • -
    -

    - - - Missing Item Parts - - -

    - - -

    If parts of your items (e.g., title, link) are missing, check the following:

    - -
      -
    • -Selector: Ensure the selector for the missing part is correct and relative to the items.selector.
    • -
    • -Extractor: Verify that you are using the correct extractor (e.g., text, href, attribute).
    • -
    • -Dynamic Content: html2rss does not execute JavaScript. If the content is loaded dynamically, html2rss may not be able to see it.
    • -
    -

    - - - Date/Time Parsing Errors - - -

    - - -

    If you are having issues with date/time parsing, check the following:

    - -
      -
    • -time_format: Ensure the time_format in your configuration matches the date string on the website.
    • -
    • -time_zone: Specify the correct time_zone if the website uses a specific time zone.
    • -
    -

    - - - html2rss Command Not Found - - -

    - - -

    If you are getting a β€œcommand not found” error, try the following:

    - -
      -
    • -Re-install: Re-install html2rss to ensure it is installed correctly: gem install html2rss.
    • -
    • -Check PATH: Ensure that the directory where Ruby gems are installed is in your system’s PATH.
    • -
    -

    - - - Tips & Tricks - - -

    - - -
      -
    • -Mobile Redirects: Check that the channel URL does not redirect to a mobile page with a different markup structure.
    • -
    • -curl and pup: For static sites, use curl and pup to quickly find selectors: curl URL | pup.
    • -
    • -CSS Selectors: For a comprehensive overview of CSS selectors, see the W3C documentation.
    • -
    -

    - - - Still Stuck? - - -

    - - -

    If you are still having issues, please open an issue on GitHub.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/web-README.md b/jekyll-backup/_site/web-README.md deleted file mode 100644 index 3cf33d72..00000000 --- a/jekyll-backup/_site/web-README.md +++ /dev/null @@ -1,251 +0,0 @@ -![html2rss logo](https://github.com/html2rss/html2rss/raw/master/support/logo.png) - -# html2rss-web - -This web application scrapes websites to build and deliver RSS 2.0 feeds. - -**Features:** - -- Provides stable URLs for feeds generated by automatic sourcing. -- [Create your custom feeds](#how-to-build-your-rss-feeds)! -- Comes with plenty of [included configs](https://github.com/html2rss/html2rss-configs) out of the box. -- Handles request caching. -- Sets caching-related HTTP headers. - -The functionality of scraping websites and building the RSS feeds is provided by the Ruby gem [`html2rss`](https://github.com/html2rss/html2rss). - -## Get started - -This application should be used with Docker. It is designed to require as little maintenance as possible. See [Versioning and Releases](#versioning-and-releases) and [consider automatic updates](#docker-automatically-keep-the-html2rss-web-image-up-to-date). - -### With Docker - -```sh -docker run -p 3000:3000 gilcreator/html2rss-web -``` - -Then open in your browser and click the example feed link. - -This is the quickest way to get started. However, it's also the option with the least flexibility: it doesn't allow you to use custom feed configs and doesn't update automatically. - -If you want more flexibility and automatic updates sound good to you, read on to get started _with docker compose_… - -### With `docker compose` - -Create a `docker-compose.yml` file and paste the following into it: - -```yaml -services: - html2rss-web: - image: gilcreator/html2rss-web - ports: - - "3000:3000" - volumes: - - type: bind - source: ./feeds.yml - target: /app/config/feeds.yml - read_only: true - environment: - RACK_ENV: production - HEALTH_CHECK_USERNAME: health - HEALTH_CHECK_PASSWORD: please-set-YOUR-OWN-veeeeeery-l0ng-aNd-h4rd-to-gue55-Passw0rd! - # AUTO_SOURCE_ENABLED: 'true' - # AUTO_SOURCE_USERNAME: foobar - # AUTO_SOURCE_PASSWORD: A-Unique-And-Long-Password-For-Your-Own-Instance - ## to allow just requests originating from the local host - # AUTO_SOURCE_ALLOWED_ORIGINS: 127.0.0.1:3000 - ## to allow multiple origins, seperate those via comma: - # AUTO_SOURCE_ALLOWED_ORIGINS: example.com,h2r.host.tld - BROWSERLESS_IO_WEBSOCKET_URL: ws://browserless:3001 - BROWSERLESS_IO_API_TOKEN: 6R0W53R135510 - - watchtower: - image: containrrr/watchtower - volumes: - - /var/run/docker.sock:/var/run/docker.sock - - "~/.docker/config.json:/config.json" - command: --cleanup --interval 7200 - - browserless: - image: "ghcr.io/browserless/chromium" - ports: - - "3001:3001" - environment: - PORT: 3001 - CONCURRENT: 10 - TOKEN: 6R0W53R135510 -``` - -Start it up with: `docker compose up`. - -If you have not created your `feeds.yml` yet, download [this `feeds.yml` as a blueprint](https://raw.githubusercontent.com/html2rss/html2rss-web/master/config/feeds.yml) into the directory containing the `docker-compose.yml`. - -## Docker: Automatically keep the html2rss-web image up-to-date - -The [watchtower](https://containrrr.dev/watchtower/) service automatically pulls running Docker images and checks for updates. If an update is available, it will automatically start the updated image with the same configuration as the running one. Please read its manual. - -The `docker-compose.yml` above contains a service description for watchtower. - -## How to use automatic feed generation - -> [!NOTE] -> This feature is disabled by default. - -To enable the `auto_source` feature, comment in the env variables in the `docker-compose.yml` file from above and change the values accordingly: - -```yaml -environment: - ## … snip ✁ - AUTO_SOURCE_ENABLED: "true" - AUTO_SOURCE_USERNAME: foobar - AUTO_SOURCE_PASSWORD: A-Unique-And-Long-Password-For-Your-Own-Instance - ## to allow just requests originating from the local host - AUTO_SOURCE_ALLOWED_ORIGINS: 127.0.0.1:3000 - ## to allow multiple origins, seperate those via comma: - # AUTO_SOURCE_ALLOWED_ORIGINS: example.com,h2r.host.tld - ## … snap βœƒ -``` - -Restart the container and open . -When asked, enter your username and password. - -Then enter the URL of a website and click on the _Generate_ button. - -## How to use the included configs - -html2rss-web comes with many feed configs out of the box. [See the file list of all configs.](https://github.com/html2rss/html2rss-configs/tree/master/lib/html2rss/configs) - -To use a config from there, build the URL like this: - -| | | -| ------------------------ | ----------------------------- | -| `lib/html2rss/configs/` | `domainname.tld/whatever.yml` | -| Would become this URL: | | -| `http://localhost:3000/` | `domainname.tld/whatever.rss` | -| | `^^^^^^^^^^^^^^^^^^^^^^^^^^^` | - -## How to build your RSS feeds - -To build your own RSS feed, you need to create a _feed config_.\ -That _feed config_ goes into the file `feeds.yml`.\ -Check out the [`example` feed config](https://github.com/html2rss/html2rss-web/blob/master/config/feeds.yml#L9). - -Please refer to [html2rss' README for a description of _the feed config and its options_](https://github.com/html2rss/html2rss#the-feed-config-and-its-options). html2rss-web is just a small web application that builds on html2rss. - -## Versioning and releases - -This web application is distributed in a [rolling release](https://en.wikipedia.org/wiki/Rolling_release) fashion from the `master` branch. - -For the latest commit passing GitHub CI/CD on the master branch, an updated Docker image will be pushed to [Docker Hub: `gilcreator/html2rss-web`](https://hub.docker.com/r/gilcreator/html2rss-web). -The [SBOM](https://en.wikipedia.org/wiki/Software_supply_chain) is embedded in the Docker image. - -GitHub's @dependabot is enabled for dependency updates and they are automatically merged to the `master` branch when the CI gives the green light. - -If you use Docker, you should update to the latest image automatically by [setting up _watchtower_ as described](#get-started). - -## Use in production - -This app is published on Docker Hub and therefore easy to use with Docker.\ -The above `docker-compose.yml` is a good starting point. - -If you're going to host a public instance, _please, please, please_: - -- Put the application behind a reverse proxy. -- Allow outside connections only via HTTPS. -- Have an auto-update strategy (e.g., watchtower). -- Monitor your `/health_check.txt` endpoint. -- [Let the world know and add your instance to the wiki](https://github.com/html2rss/html2rss-web/wiki/Instances) -- thank you! - -### Supported ENV variables - -| Name | Description | -| ------------------------------ | ---------------------------------- | -| `BASE_URL` | default: '' | -| `LOG_LEVEL` | default: 'warn' | -| `HEALTH_CHECK_USERNAME` | default: auto-generated on start | -| `HEALTH_CHECK_PASSWORD` | default: auto-generated on start | -| | | -| `AUTO_SOURCE_ENABLED` | default: false | -| `AUTO_SOURCE_USERNAME` | no default. | -| `AUTO_SOURCE_PASSWORD` | no default. | -| `AUTO_SOURCE_ALLOWED_ORIGINS` | no default. | -| | | -| `PORT` | default: 3000 | -| `RACK_ENV` | default: 'development' | -| `RACK_TIMEOUT_SERVICE_TIMEOUT` | default: 15 | -| `WEB_CONCURRENCY` | default: 2 | -| `WEB_MAX_THREADS` | default: 5 | -| | | -| `SENTRY_DSN` | no default. | - -### Runtime monitoring via `GET /health_check.txt` - -It is recommended to set up monitoring of the `/health_check.txt` endpoint. With that, you can find out when one of _your own_ configs breaks. The endpoint uses HTTP Basic authentication. - -First, set the username and password via these environment variables: `HEALTH_CHECK_USERNAME` and `HEALTH_CHECK_PASSWORD`. If these are not set, html2rss-web will generate a new random username and password on _each_ start. - -An authenticated `GET /health_check.txt` request will respond with: - -- If the feeds are generatable: `success`. -- Otherwise: the names of the broken configs. - -To get notified when one of your configs breaks, set up monitoring of this endpoint. - -[UptimeRobot's free plan](https://uptimerobot.com/) is sufficient for basic monitoring (every 5 minutes).\ -Create a monitor of type _Keyword_ with this information and make it aware of your username and password: - -![A screenshot showing the Keyword Monitor: a name, the instance's URL to /health_check.txt, and an interval.](docs/uptimerobot_monitor.jpg) - -### Application Performance Monitoring using Sentry - -When you specify `SENTRY_DSN` in your environment variables, the application will be setup to use Sentry. - -## Setup for development - -Check out the git repository and… - -### Using Docker - -This approach allows you to experiment without installing Ruby on your machine. -All you need to do is install and run Docker. - -```sh -# Build image from Dockerfile and name/tag it as html2rss-web: -docker build -t html2rss-web -f Dockerfile . - -# Run the image and name it html2rss-web-dev: -docker run \ - --detach \ - --mount type=bind,source=$(pwd)/config,target=/app/config \ - --name html2rss-web-dev \ - html2rss-web - -# Open an interactive TTY with the shell `sh`: -docker exec -ti html2rss-web-dev sh - -# Stop and clean up the container -docker stop html2rss-web-dev -docker rm html2rss-web-dev - -# Remove the image -docker rmi html2rss-web -``` - -### Using installed Ruby - -If you're comfortable with installing Ruby directly on your machine, follow these instructions: - -1. Install Ruby `>= 3.2` -2. `gem install bundler foreman` -3. `bundle` -4. `foreman start` - -_html2rss-web_ now listens on port **3000** for requests. - -## Contribute - -Contributions are welcome! - -Open a pull request with your changes,\ -open an issue, or\ -[join discussions on html2rss](https://github.com/orgs/html2rss/discussions). diff --git a/jekyll-backup/_site/web-application/getting-started.html b/jekyll-backup/_site/web-application/getting-started.html deleted file mode 100644 index b95080aa..00000000 --- a/jekyll-backup/_site/web-application/getting-started.html +++ /dev/null @@ -1,545 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Getting Started | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Getting Started with html2rss-web - - -

    - - -

    Welcome! This guide will help you create RSS feeds from any website using the html2rss-web application.

    -

    - - - What is html2rss-web? - - -

    - - -

    html2rss-web is a user-friendly web application that turns any website into an RSS feed. It’s part of the html2rss project, which also includes a Ruby gem for developers. Think of html2rss-web as a translator that converts website content into a format your feed reader can understand.

    -

    - - - Why Use RSS Feeds? - - -

    - - -

    Instead of visiting 20 different websites every day, you can:

    - -
      -
    • -Get all updates in one place - your feed reader
    • -
    • -Never miss new content - automatic notifications
    • -
    • -Save time - no more manual checking
    • -
    • -Stay organized - categorize and filter content
    • -
    -

    - - - Quick Start Options - - -

    - -

    - - - Option 1: Browse Ready-Made Feeds (Easiest) - - -

    - - -
      -
    1. -Feed Directory - See what’s already available
    2. -
    3. -Copy the RSS URL and add it to your feed reader
    4. -
    -

    - - - Option 2: Install Your Own Instance - - -

    - - -
      -
    1. -Installation Guide - Set up your own copy
    2. -
    3. -Create Custom Feeds - Make feeds for any website
    4. -
    - -

    New to RSS? We recommend starting with the Feed Directory to see examples, then installing html2rss-web to create your own feeds.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/web-application/how-to/automatic-updates.html b/jekyll-backup/_site/web-application/how-to/automatic-updates.html deleted file mode 100644 index 1bea857b..00000000 --- a/jekyll-backup/_site/web-application/how-to/automatic-updates.html +++ /dev/null @@ -1,480 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Automatic Updates | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Automatic Updates with Watchtower - - -

    - - -

    The watchtower service automatically pulls running Docker images and checks for updates. If an update is available, it will automatically start the updated image with the same configuration as the running one. Please read its manual.

    - -

    The docker-compose.yml in the Installation Guide contains a service description for watchtower.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/web-application/how-to/deployment.html b/jekyll-backup/_site/web-application/how-to/deployment.html deleted file mode 100644 index eb852b42..00000000 --- a/jekyll-backup/_site/web-application/how-to/deployment.html +++ /dev/null @@ -1,490 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Deployment | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Deployment - - -

    - - -

    This app is published on Docker Hub and therefore easy to use with Docker. -The docker-compose.yml in the Installation Guide is a good starting point.

    - -

    If you’re going to host a public instance, please, please, please:

    - -
      -
    • Put the application behind a reverse proxy.
    • -
    • Allow outside connections only via HTTPS.
    • -
    • Have an auto-update strategy (e.g., watchtower).
    • -
    • Monitor your /health_check.txt endpoint.
    • -
    • -Let the world know and add your instance to the wiki – thank you!
    • -
    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/web-application/how-to/index.html b/jekyll-backup/_site/web-application/how-to/index.html deleted file mode 100644 index 53443b77..00000000 --- a/jekyll-backup/_site/web-application/how-to/index.html +++ /dev/null @@ -1,503 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -How-To Guides | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - How-To Guides - - -

    - - -

    This section provides guides on how to perform specific tasks with html2rss-web.

    - - - - -
    -

    Table of contents

    - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/web-application/how-to/setup-for-development.html b/jekyll-backup/_site/web-application/how-to/setup-for-development.html deleted file mode 100644 index f8273eea..00000000 --- a/jekyll-backup/_site/web-application/how-to/setup-for-development.html +++ /dev/null @@ -1,530 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Setup for development | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Setup for development - - -

    - - -

    Check out the git repository and…

    -

    - - - Using Docker - - -

    - - -

    This approach allows you to experiment without installing Ruby on your machine. -All you need to do is install and run Docker.

    - -
    # Build image from Dockerfile and name/tag it as html2rss-web:
    -docker build -t html2rss-web -f Dockerfile .
    -
    -# Run the image and name it html2rss-web-dev:
    -docker run \
    -  --detach \
    -  --mount type=bind,source=$(pwd)/config,target=/app/config \
    -  --name html2rss-web-dev \
    -  html2rss-web
    -
    -# Open an interactive TTY with the shell `sh`:
    -docker exec -ti html2rss-web-dev sh
    -
    -# Stop and clean up the container
    -docker stop html2rss-web-dev
    -docker rm html2rss-web-dev
    -
    -# Remove the image
    -docker rmi html2rss-web
    -
    -

    - - - Using installed Ruby - - -

    - - -

    If you’re comfortable with installing Ruby directly on your machine, follow these instructions:

    - -
      -
    1. Install Ruby >= 3.2 -
    2. -
    3. gem install bundler foreman
    4. -
    5. bundle
    6. -
    7. foreman start
    8. -
    - -

    html2rss-web now listens on port 3000 for requests.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/web-application/how-to/use-automatic-feed-generation.html b/jekyll-backup/_site/web-application/how-to/use-automatic-feed-generation.html deleted file mode 100644 index ded87b13..00000000 --- a/jekyll-backup/_site/web-application/how-to/use-automatic-feed-generation.html +++ /dev/null @@ -1,532 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Use automatic feed generation | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Automatic Feed Generation - - -

    - - -

    This feature lets you create RSS feeds automatically - just enter a website URL and html2rss-web figures out the rest!

    - -
    -

    Note: This feature is disabled by default for security reasons.

    -
    -

    - - - How to Enable It - - -

    - - -
      -
    1. -Edit your docker-compose.yml file and uncomment these lines:
    2. -
    - -
    environment:
    -  AUTO_SOURCE_ENABLED: "true"
    -  AUTO_SOURCE_USERNAME: your-username
    -  AUTO_SOURCE_PASSWORD: your-secure-password
    -  AUTO_SOURCE_ALLOWED_ORIGINS: 127.0.0.1:3000
    -
    - -
      -
    1. Restart html2rss-web:
    2. -
    - -
    docker compose down
    -docker compose up -d
    -
    -

    - - - How to Use It - - -

    - - -
      -
    1. -Open the auto-source page: Go to http://localhost:3000/auto_source/ -
    2. -
    3. -Enter your credentials (the username and password you set above)
    4. -
    5. -Enter a website URL and click β€œGenerate”
    6. -
    7. -Get your RSS feed! html2rss-web will create a feed automatically
    8. -
    - -

    That’s it! No configuration files needed - html2rss-web does all the work for you.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/web-application/how-to/use-in-production.html b/jekyll-backup/_site/web-application/how-to/use-in-production.html deleted file mode 100644 index d7006d8c..00000000 --- a/jekyll-backup/_site/web-application/how-to/use-in-production.html +++ /dev/null @@ -1,490 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Use in production | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Use in production - - -

    - - -

    This app is published on Docker Hub and therefore easy to use with Docker. -The above docker-compose.yml is a good starting point.

    - -

    If you’re going to host a public instance, please, please, please:

    - -
      -
    • Put the application behind a reverse proxy.
    • -
    • Allow outside connections only via HTTPS.
    • -
    • Have an auto-update strategy (e.g., watchtower).
    • -
    • Monitor your /health_check.txt endpoint.
    • -
    • -Let the world know and add your instance to the wiki – thank you!
    • -
    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/web-application/how-to/use-included-configs.html b/jekyll-backup/_site/web-application/how-to/use-included-configs.html deleted file mode 100644 index 7c708598..00000000 --- a/jekyll-backup/_site/web-application/how-to/use-included-configs.html +++ /dev/null @@ -1,509 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Use the included configs | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Using Pre-Made Feeds - - -

    - - -

    html2rss-web comes with hundreds of ready-made feeds for popular websites! No configuration needed - just use the URLs.

    -

    - - - How to Use Them - - -

    - - -
      -
    1. -Find a feed in the Feed Directory -
    2. -
    3. -Copy the URL (it looks like domainname.tld/whatever.rss)
    4. -
    5. -Add it to your feed reader - paste the URL and you’re done!
    6. -
    -

    - - - Example - - -

    - - -

    If you see a config file named example.com/news.yml, you can access it at: -http://localhost:3000/example.com/news.rss

    - -

    Just replace localhost:3000 with your html2rss-web address.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/web-application/index.html b/jekyll-backup/_site/web-application/index.html deleted file mode 100644 index 5fb9907b..00000000 --- a/jekyll-backup/_site/web-application/index.html +++ /dev/null @@ -1,520 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Web Application | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - -
    -
    - -

    - - - html2rss-web - - -

    - - -

    This web application scrapes websites to build and deliver RSS 2.0 feeds. It is a powerful tool for creating custom RSS feeds.

    -

    - - - Get Started - - -

    - - -

    Our Getting Started guide covers essential first steps, from understanding the application to installing your own instance.

    -

    - - - Key Features - - -

    - - -
      -
    • -Stable URLs: Provides stable URLs for automatically sourced feeds.
    • -
    • -Custom Feeds: Create custom feeds.
    • -
    • -Feed Directory: Includes many feeds out of the box.
    • -
    • -Caching: Handles request caching and sets HTTP headers.
    • -
    - -

    The functionality of scraping websites and building the RSS feeds is provided by the Ruby gem html2rss.

    - - - - -
    -

    Table of contents

    - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/web-application/installation.html b/jekyll-backup/_site/web-application/installation.html deleted file mode 100644 index b55860b1..00000000 --- a/jekyll-backup/_site/web-application/installation.html +++ /dev/null @@ -1,633 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Installation | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Installation - - -

    - - -

    This guide will help you set up your own copy of html2rss-web on your computer. Don’t worry - we’ll walk you through every step!

    -

    - - - What You’ll Need - - -

    - - -
      -
    • -Docker - A tool that makes installation simple (like an app store for server software)
    • -
    • -About 10 minutes - The whole process is quick and automated
    • -
    - -

    Don’t have Docker? Install it first - it’s free and works on Windows, Mac, and Linux.

    -

    - - - Step 1: Create a Folder - - -

    - - -

    Create a new folder on your computer to store html2rss-web files:

    - -

    On Windows: Right-click β†’ New Folder β†’ Name it β€œhtml2rss-web” -On Mac/Linux: Open Terminal and run:

    - -
    mkdir html2rss-web
    -cd html2rss-web
    -
    -

    - - - Step 2: Create the Configuration File - - -

    - - -

    Create a file called docker-compose.yml in your new folder. This file tells Docker how to set up html2rss-web with all the features you need.

    - -

    How to create the file:

    - -
      -
    • -On Windows: Right-click in the folder β†’ New β†’ Text Document β†’ Rename it to docker-compose.yml (make sure to change the extension)
    • -
    • -On Mac/Linux: Use any text editor to create the file
    • -
    - -
    services:
    -  html2rss-web:
    -    image: gilcreator/html2rss-web
    -    restart: unless-stopped
    -    ports:
    -      - "127.0.0.1:3000:3000"
    -    volumes:
    -      - type: bind
    -        source: ./feeds.yml
    -        target: /app/config/feeds.yml
    -        read_only: true
    -    environment:
    -      RACK_ENV: production
    -      HEALTH_CHECK_USERNAME: health
    -      HEALTH_CHECK_PASSWORD: please-set-YOUR-OWN-veeeeeery-l0ng-aNd-h4rd-to-gue55-Passw0rd!
    -      BROWSERLESS_IO_WEBSOCKET_URL: ws://browserless:3001
    -      BROWSERLESS_IO_API_TOKEN: 6R0W53R135510
    -
    -  watchtower:
    -    image: containrrr/watchtower
    -    restart: unless-stopped
    -    volumes:
    -      - /var/run/docker.sock:/var/run/docker.sock
    -      - "~/.docker/config.json:/config.json"
    -    command: --cleanup --interval 7200
    -
    -  browserless:
    -    image: "ghcr.io/browserless/chromium"
    -    restart: unless-stopped
    -    ports:
    -      - "127.0.0.1:3001:3001"
    -    environment:
    -      PORT: 3001
    -      CONCURRENT: 10
    -      TOKEN: 6R0W53R135510
    -
    -

    - - - Step 3: Download the Feed List - - -

    - - -

    html2rss-web needs a list of feeds to work with. Download our pre-made list:

    - -

    On Windows: Right-click this link β†’ Save As β†’ Name it β€œfeeds.yml” β†’ Save in your html2rss-web folder

    - -

    On Mac/Linux: Open Terminal in your html2rss-web folder and run:

    - -
    curl https://raw.githubusercontent.com/html2rss/html2rss-web/master/config/feeds.yml -o feeds.yml
    -
    -

    - - - Step 4: Start html2rss-web - - -

    - - -

    Now start html2rss-web:

    - -

    On Windows: Open Command Prompt in your html2rss-web folder and run:

    - -
    docker compose up -d
    -
    - -

    On Mac/Linux: In Terminal, run:

    - -
    docker compose up -d
    -
    - -

    That’s it! πŸŽ‰ html2rss-web is now running.

    - -

    To verify it’s working:

    - -
      -
    1. Open your web browser
    2. -
    3. Go to http://localhost:3000 -
    4. -
    5. You should see the html2rss-web interface with a list of available feeds
    6. -
    - -

    If you see the interface, congratulations! You’ve successfully set up html2rss-web.

    -

    - - - Next Steps - - -

    - - -
      -
    • -Try it out! Visit http://localhost:3000 to see html2rss-web in action
    • -
    • -Browse existing feeds - Check out what’s already available
    • -
    • -Create your first feed - Follow our How-To Guides to make custom feeds
    • -
    • -Need help? Check our troubleshooting guide if something doesn’t work
    • -
    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/web-application/reference/env-variables.html b/jekyll-backup/_site/web-application/reference/env-variables.html deleted file mode 100644 index 1e777b23..00000000 --- a/jekyll-backup/_site/web-application/reference/env-variables.html +++ /dev/null @@ -1,563 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ENV variables | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Configuration Reference - - -

    - -

    - - - Supported ENV variables - - -

    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescription
    BASE_URLdefault: β€˜http://localhost:3000’
    LOG_LEVELdefault: β€˜warn’
    HEALTH_CHECK_USERNAMEdefault: auto-generated on start
    HEALTH_CHECK_PASSWORDdefault: auto-generated on start
    Β Β 
    AUTO_SOURCE_ENABLEDdefault: false
    AUTO_SOURCE_USERNAMEno default.
    AUTO_SOURCE_PASSWORDno default.
    AUTO_SOURCE_ALLOWED_ORIGINSno default.
    Β Β 
    PORTdefault: 3000
    RACK_ENVdefault: β€˜development’
    RACK_TIMEOUT_SERVICE_TIMEOUTdefault: 15
    WEB_CONCURRENCYdefault: 2
    WEB_MAX_THREADSdefault: 5
    Β Β 
    SENTRY_DSNno default.
    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/web-application/reference/index.html b/jekyll-backup/_site/web-application/reference/index.html deleted file mode 100644 index 1ff55222..00000000 --- a/jekyll-backup/_site/web-application/reference/index.html +++ /dev/null @@ -1,491 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Reference | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Reference - - -

    - - -

    This section contains detailed reference material.

    - - - - -
    -

    Table of contents

    - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/web-application/reference/monitoring.html b/jekyll-backup/_site/web-application/reference/monitoring.html deleted file mode 100644 index 88aa4e7c..00000000 --- a/jekyll-backup/_site/web-application/reference/monitoring.html +++ /dev/null @@ -1,443 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Monitoring | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Monitoring - - -

    - -

    - - - Runtime monitoring via GET /health_check.txt - - -

    - - -

    It is recommended to set up monitoring of the /health_check.txt endpoint. With that, you can find out when one of your own configs breaks. The endpoint uses HTTP Basic authentication.

    - -

    First, set the username and password via these environment variables: HEALTH_CHECK_USERNAME and HEALTH_CHECK_PASSWORD. If these are not set, html2rss-web will generate a new random username and password on each start.

    - -

    An authenticated GET /health_check.txt request will respond with:

    - -
      -
    • If the feeds are generatable: success.
    • -
    • Otherwise: the names of the broken configs.
    • -
    - -

    To get notified when one of your configs breaks, set up monitoring of this endpoint.

    - -

    UptimeRobot’s free plan is sufficient for basic monitoring (every 5 minutes). -Create a monitor of type Keyword with this information and make it aware of your username and password:

    - -

    A screenshot showing the Keyword Monitor: a name, the instance's URL to /health_check.txt, and an interval.

    -

    - - - Application Performance Monitoring using Sentry - - -

    - - -

    When you specify SENTRY_DSN in your environment variables, the application will be setup to use Sentry.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/web-application/reference/versioning-and-releases.html b/jekyll-backup/_site/web-application/reference/versioning-and-releases.html deleted file mode 100644 index 3df3a3a1..00000000 --- a/jekyll-backup/_site/web-application/reference/versioning-and-releases.html +++ /dev/null @@ -1,485 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Versioning and releases | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Versioning and releases - - -

    - - -

    This web application is distributed in a rolling release fashion from the master branch.

    - -

    For the latest commit passing GitHub CI/CD on the master branch, an updated Docker image will be pushed to Docker Hub: gilcreator/html2rss-web. -The SBOM is embedded in the Docker image.

    - -

    GitHub’s @dependabot is enabled for dependency updates and they are automatically merged to the master branch when the CI gives the green light.

    - -

    If you use Docker, you should update to the latest image automatically by setting up watchtower as described.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/web-application/tutorials/building-feeds.html b/jekyll-backup/_site/web-application/tutorials/building-feeds.html deleted file mode 100644 index 8d2fd492..00000000 --- a/jekyll-backup/_site/web-application/tutorials/building-feeds.html +++ /dev/null @@ -1,482 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Building your RSS feeds | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - How to build your RSS feeds - - -

    - - -

    To build your own RSS feed, you need to create a feed config. -That feed config goes into the file feeds.yml. -Check out the example feed config.

    - -

    Please refer to html2rss’ README for a description of the feed config and its options. html2rss-web is just a small web application that builds on html2rss.

    - - - - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/_site/web-application/tutorials/index.html b/jekyll-backup/_site/web-application/tutorials/index.html deleted file mode 100644 index 6d7d6828..00000000 --- a/jekyll-backup/_site/web-application/tutorials/index.html +++ /dev/null @@ -1,480 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Tutorials | html2rss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    - - - - - - Skip to main content - - - Link - - - - - - - Menu - - - - - - - Expand - - - - - - - - (external link) - - - - - - Document - - - - - - - Search - - - - - - - - - - Copy - - - - - - - Copied - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - -
    - -
    - - - -
    -
    - -

    - - - Tutorials - - -

    - - - - -
    -

    Table of contents

    - - - -
    - - -
    - - - -
    -
    - - - -
    - - -
    - - - - - diff --git a/jekyll-backup/about.md b/jekyll-backup/about.md deleted file mode 100644 index 7e00d5f6..00000000 --- a/jekyll-backup/about.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -layout: default -title: About html2rss -nav_order: 2 ---- - -# About html2rss - -`html2rss` is an open-source project dedicated to empowering you to take control of your web content. In an age where traditional RSS feeds are often missing, `html2rss` provides a robust and flexible solution to convert almost any HTML content into a structured RSS format. - -Started in 2018, the project has evolved into a comprehensive suite of tools designed to help you create and consume RSS feeds effortlessly. - ---- - -## Our Vision and Principles - -Our mission is to provide a simple, powerful, and accessible tool that enables individuals and developers to create custom RSS feeds from any web page. We believe in the power of open standards and the freedom to access information on your own terms. - -Our project is guided by these core principles: - -- **User Empowerment:** Giving you the tools to customize your web experience. -- **Simplicity & Power:** Offering an easy-to-use interface with powerful underlying capabilities. -- **Open Source:** Fostering a collaborative environment where the community can contribute and improve the project. -- **Reliability:** Striving for a stable and dependable tool that consistently delivers. - -For insights into our ongoing development, project roadmap, and how you can get involved, please visit our [Get Involved]({{ '/get-involved' | relative_url }}) page. - ---- - -### The Team - -`html2rss` is maintained by a dedicated group of volunteers and contributors from around the world. We are passionate about open source and committed to continuously improving the project. - -Want to join us? Check out our [Contributing Guide]({{ '/get-involved/contributing' | relative_url }})! diff --git a/jekyll-backup/configs.md b/jekyll-backup/configs.md deleted file mode 100644 index b1cab598..00000000 --- a/jekyll-backup/configs.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -permalink: /configs/ ---- - - - - - - - -

    If you are not redirected automatically, follow this link to the feed directory.

    - - diff --git a/jekyll-backup/index.md b/jekyll-backup/index.md deleted file mode 100644 index 957c1961..00000000 --- a/jekyll-backup/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -layout: default -title: Home -nav_order: 1 ---- - -# Turn Any Website Into an RSS Feed - -Ever wished you could follow your favorite websites like a social media feed? The html2rss project makes it possible by creating RSS feeds for any website - even ones that don't offer them. - -[**πŸš€ Get Started with html2rss-web**]({{ '/web-application/getting-started' | relative_url }}) - ---- - -## What is RSS? - -RSS (Really Simple Syndication) lets you follow websites in your favorite feed reader. Instead of checking multiple websites daily, you get all updates in one place - like a personalized news feed. - -## The html2rss Project - -The html2rss project provides two main ways to create RSS feeds: - -- **html2rss-web** - A user-friendly web application (recommended for most users) -- **html2rss** - A Ruby gem for developers and advanced users - -Both use the same powerful engine to extract content from websites and convert it into RSS feeds. - ---- - -## Choose Your Path - -- **[html2rss-web]({{ '/web-application' | relative_url }}):** **Start here!** Easy-to-use web application. No technical knowledge required. -- **[Feed Directory]({{ '/feed-directory' | relative_url }}):** Browse ready-made feeds for popular websites -- **[html2rss (Ruby Gem)]({{ '/ruby-gem' | relative_url }}):** For developers who want to create custom configurations - ---- - -**Ready to get started?** Check out our [html2rss-web getting started guide]({{ '/web-application/getting-started' | relative_url }}) or [browse existing feeds]({{ '/feed-directory' | relative_url }}) to see what's possible. From 2b980b145bccfb6bd6323c6e389cea2396770acf Mon Sep 17 00:00:00 2001 From: Gil Desmarais Date: Wed, 17 Sep 2025 00:28:29 +0200 Subject: [PATCH 16/33] h1 fixes --- get-involved/contributing.md | 77 ----- get-involved/discussions.md | 10 - get-involved/index.md | 16 - get-involved/issues-and-features.md | 33 -- get-involved/sponsoring.md | 16 - html2rss-configs/index.md | 186 ----------- .../how-to/advanced-content-extraction.md | 13 - ruby-gem/how-to/custom-http-requests.md | 10 - ruby-gem/how-to/dynamic-parameters.md | 31 -- ruby-gem/how-to/handling-dynamic-content.md | 10 - ruby-gem/how-to/index.md | 10 - ruby-gem/how-to/managing-feed-configs.md | 58 ---- ruby-gem/how-to/scraping-json.md | 91 ------ ruby-gem/how-to/styling-rss-feed.md | 10 - ruby-gem/index.md | 19 -- ruby-gem/installation.md | 66 ---- ruby-gem/reference/auto-source.md | 65 ---- ruby-gem/reference/channel.md | 29 -- ruby-gem/reference/cli-reference.md | 52 --- ruby-gem/reference/headers.md | 21 -- ruby-gem/reference/index.md | 9 - ruby-gem/reference/selectors.md | 150 --------- ruby-gem/reference/strategy.md | 47 --- ruby-gem/reference/stylesheets.md | 25 -- ruby-gem/tutorials/index.md | 8 - ruby-gem/tutorials/simple-blog-list.md | 60 ---- ruby-gem/tutorials/your-first-feed.md | 61 ---- src/content/docs/about.mdx | 2 - src/content/docs/configs.mdx | 2 - src/content/docs/feed-directory/index.mdx | 2 - .../docs/get-involved/contributing.mdx | 2 - src/content/docs/get-involved/discussions.mdx | 2 - src/content/docs/get-involved/index.mdx | 5 +- .../docs/get-involved/issues-and-features.mdx | 2 - src/content/docs/get-involved/sponsoring.mdx | 2 - src/content/docs/index.mdx | 2 - .../how-to/advanced-content-extraction.mdx | 6 +- .../ruby-gem/how-to/advanced-features.mdx | 2 +- .../how-to/backward-compatibility.mdx | 2 +- .../how-to/complex-configurations.mdx | 300 ++++++++++++++++++ .../ruby-gem/how-to/custom-http-requests.mdx | 2 - .../ruby-gem/how-to/dynamic-parameters.mdx | 2 - .../how-to/handling-dynamic-content.mdx | 2 - src/content/docs/ruby-gem/how-to/index.mdx | 2 - .../ruby-gem/how-to/managing-feed-configs.mdx | 2 - .../docs/ruby-gem/how-to/scraping-json.mdx | 2 - .../docs/ruby-gem/how-to/styling-rss-feed.mdx | 2 - src/content/docs/ruby-gem/installation.mdx | 2 - .../docs/ruby-gem/reference/auto-source.mdx | 2 - .../docs/ruby-gem/reference/channel.mdx | 2 - .../docs/ruby-gem/reference/cli-reference.mdx | 2 - .../docs/ruby-gem/reference/headers.mdx | 2 - src/content/docs/ruby-gem/reference/index.mdx | 2 - .../docs/ruby-gem/reference/selectors.mdx | 17 +- .../docs/ruby-gem/reference/strategy.mdx | 2 - .../docs/ruby-gem/reference/stylesheets.mdx | 2 - src/content/docs/ruby-gem/tutorials/index.mdx | 2 - .../ruby-gem/tutorials/simple-blog-list.mdx | 2 - .../ruby-gem/tutorials/your-first-feed.mdx | 2 - src/content/docs/support/troubleshooting.mdx | 22 +- .../docs/web-application/getting-started.mdx | 2 - .../how-to/automatic-updates.mdx | 2 - .../web-application/how-to/deployment.mdx | 2 - .../how-to/setup-for-development.mdx | 2 - .../how-to/use-automatic-feed-generation.mdx | 2 - .../how-to/use-in-production.mdx | 2 - .../how-to/use-included-configs.mdx | 2 - .../docs/web-application/installation.mdx | 2 - .../reference/env-variables.mdx | 2 - .../docs/web-application/reference/index.mdx | 2 - .../web-application/reference/monitoring.mdx | 2 - .../reference/versioning-and-releases.mdx | 2 - .../tutorials/building-feeds.mdx | 2 - .../docs/web-application/tutorials/index.mdx | 2 - support/troubleshooting.md | 74 ----- web-application/getting-started.md | 32 -- web-application/how-to/automatic-updates.md | 8 - web-application/how-to/deployment.md | 15 - web-application/how-to/index.md | 8 - .../how-to/setup-for-development.md | 44 --- .../how-to/use-automatic-feed-generation.md | 36 --- web-application/how-to/use-in-production.md | 15 - .../how-to/use-included-configs.md | 19 -- web-application/index.md | 23 -- web-application/installation.md | 117 ------- web-application/reference/env-variables.md | 29 -- web-application/reference/index.md | 9 - web-application/reference/monitoring.md | 26 -- .../reference/versioning-and-releases.md | 13 - web-application/tutorials/building-feeds.md | 10 - web-application/tutorials/index.md | 7 - 91 files changed, 340 insertions(+), 1762 deletions(-) delete mode 100644 get-involved/contributing.md delete mode 100644 get-involved/discussions.md delete mode 100644 get-involved/index.md delete mode 100644 get-involved/issues-and-features.md delete mode 100644 get-involved/sponsoring.md delete mode 100644 html2rss-configs/index.md delete mode 100644 ruby-gem/how-to/advanced-content-extraction.md delete mode 100644 ruby-gem/how-to/custom-http-requests.md delete mode 100644 ruby-gem/how-to/dynamic-parameters.md delete mode 100644 ruby-gem/how-to/handling-dynamic-content.md delete mode 100644 ruby-gem/how-to/index.md delete mode 100644 ruby-gem/how-to/managing-feed-configs.md delete mode 100644 ruby-gem/how-to/scraping-json.md delete mode 100644 ruby-gem/how-to/styling-rss-feed.md delete mode 100644 ruby-gem/index.md delete mode 100644 ruby-gem/installation.md delete mode 100644 ruby-gem/reference/auto-source.md delete mode 100644 ruby-gem/reference/channel.md delete mode 100644 ruby-gem/reference/cli-reference.md delete mode 100644 ruby-gem/reference/headers.md delete mode 100644 ruby-gem/reference/index.md delete mode 100644 ruby-gem/reference/selectors.md delete mode 100644 ruby-gem/reference/strategy.md delete mode 100644 ruby-gem/reference/stylesheets.md delete mode 100644 ruby-gem/tutorials/index.md delete mode 100644 ruby-gem/tutorials/simple-blog-list.md delete mode 100644 ruby-gem/tutorials/your-first-feed.md rename ruby-gem/how-to/advanced-features.md => src/content/docs/ruby-gem/how-to/advanced-features.mdx (97%) rename ruby-gem/how-to/backward-compatibility.md => src/content/docs/ruby-gem/how-to/backward-compatibility.mdx (92%) create mode 100644 src/content/docs/ruby-gem/how-to/complex-configurations.mdx delete mode 100644 support/troubleshooting.md delete mode 100644 web-application/getting-started.md delete mode 100644 web-application/how-to/automatic-updates.md delete mode 100644 web-application/how-to/deployment.md delete mode 100644 web-application/how-to/index.md delete mode 100644 web-application/how-to/setup-for-development.md delete mode 100644 web-application/how-to/use-automatic-feed-generation.md delete mode 100644 web-application/how-to/use-in-production.md delete mode 100644 web-application/how-to/use-included-configs.md delete mode 100644 web-application/index.md delete mode 100644 web-application/installation.md delete mode 100644 web-application/reference/env-variables.md delete mode 100644 web-application/reference/index.md delete mode 100644 web-application/reference/monitoring.md delete mode 100644 web-application/reference/versioning-and-releases.md delete mode 100644 web-application/tutorials/building-feeds.md delete mode 100644 web-application/tutorials/index.md diff --git a/get-involved/contributing.md b/get-involved/contributing.md deleted file mode 100644 index e31ee9c9..00000000 --- a/get-involved/contributing.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: 'Contributing' ---- - - -We're thrilled that you're interested in contributing to `html2rss`! There are many ways to get involved, and we welcome contributions of all kinds. - ---- - -## Code of Conduct - -Before you begin, please read our [Code of Conduct](https://github.com/html2rss/.github/blob/main/CODE_OF_CONDUCT.md). We expect all contributors to adhere to this code to ensure that our community is a welcoming and inclusive space for everyone. - ---- - -## How to Contribute - -Here are some of the ways you can contribute to the `html2rss` project: - -### 1. Create a Feed Config - -Are you missing an RSS feed for a website? You can create your own feed config and share it with the community. It's a great way to get started with `html2rss` and help other users. - -The html2rss "ecosystem" is a community project. We welcome contributions of all kinds. This includes new feed configs, suggesting and implementing features, providing bug fixes, documentation improvements, and any other kind of help. - -Which way you choose to add a new feed config is up to you. You can do it manually. Please [submit a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)! - -After you're done, you can test your feed config by running `bundle exec html2rss feed lib/html2rss/configs//.yml`. - -#### Preferred way: manually - -1. Fork the `html2rss-config` git repository and run `bundle install` (you need to have Ruby >= 3.3 installed). -2. Create a new folder and file following this convention: `lib/html2rss/configs//.yml` -3. Create the feed config in the `.yml` file. -4. Add this spec file in the `spec/html2rss/configs//_spec.rb` file. - -```ruby - RSpec.describe '/' do - include_examples 'config.yml', described_class - end -``` - -### 2. Improve this Website - -This website is built with Jekyll and is hosted on GitHub Pages. If you have any ideas for improving the documentation or the design, we'd love to hear from you. - -[**Find the source code on GitHub**](https://github.com/html2rss/html2rss.github.io) - -### 3. Host a Public Instance - -The [`html2rss-web`](https://github.com/html2rss/html2rss-web) project is a web application that allows you to create and manage your RSS feeds through a user-friendly interface. You can host your own public instance to help other users create feeds. - -[**Learn how to host a public instance**]({{ '/web-application/how-to/deployment' | relative_url }}) - -### 4. Improve the `html2rss` Gem - -Are you a Ruby developer? You can help us improve the core `html2rss` gem. Whether you're fixing a bug, adding a new feature, or improving the documentation, your contributions are welcome. - -[**Check out the documentation for the `html2rss` Gem**]({{ '/ruby-gem/' | relative_url }}) - -### 5. Report Bugs & Discuss Features - -If you've found a bug, please open an issue on the appropriate GitHub repository. For new feature ideas, we encourage you to start a discussion first. - -**Report Bugs:** - -- [**`html2rss` issues**](https://github.com/html2rss/html2rss/issues) -- [**`html2rss-web` issues**](https://github.com/html2rss/html2rss-web/issues) -- [**`html2rss-configs` issues**](https://github.com/html2rss/html2rss-configs/issues) - -**Discuss Features:** - -- [**Start a New Discussion on GitHub**](https://github.com/orgs/html2rss/discussions) - ---- - -We appreciate your interest in contributing to `html2rss`! diff --git a/get-involved/discussions.md b/get-involved/discussions.md deleted file mode 100644 index fff4cffb..00000000 --- a/get-involved/discussions.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: 'Join Community Discussions' ---- - - -Connect with other users and contributors by joining our community discussions on GitHub. This is a vibrant space for general questions, sharing tips, discussing ideas, and getting feedback from the community. - -[**πŸ’¬ Join Discussions on GitHub**](https://github.com/orgs/html2rss/discussions) - -We encourage you to participate, ask questions, and share your insights! diff --git a/get-involved/index.md b/get-involved/index.md deleted file mode 100644 index 13a18af8..00000000 --- a/get-involved/index.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: 'Get Involved' -description: 'Engage with the html2rss project. Contribute and connect with the community.' -sidebar: - label: 'Overview' - ---- - -Engage with the `html2rss` project. Contribute and connect with the community. - -- [**Project Roadmap**](https://github.com/orgs/html2rss/projects/3/views/1): View current work, plans, and priorities. -- [**Report Bugs & Discuss Features**](/get-involved/issues-and-features): Report bugs or propose features. -- [**Join Community Discussions**](/get-involved/discussions): Connect with users and contributors. -- [**Contribute to html2rss**](/get-involved/contributing): Contribute code, documentation, or feed configurations. - -- [**Sponsoring**](/get-involved/sponsoring) diff --git a/get-involved/issues-and-features.md b/get-involved/issues-and-features.md deleted file mode 100644 index debcb830..00000000 --- a/get-involved/issues-and-features.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: 'Report Bugs & Discuss Features' ---- - - -We appreciate your help in improving `html2rss`! Please follow these guidelines when reporting issues or suggesting new features. - ---- - -### Reporting Bugs - -If you've found a bug, please open an issue on the appropriate GitHub repository. This helps us track and resolve problems efficiently. - -[**➑️ Open an Issue on GitHub**](https://github.com/html2rss/html2rss/issues) - -When opening a bug report, please provide as much detail as possible, including: - -- The `html2rss` version you are using. -- Your operating system. -- Your configuration file (if applicable). -- The target URL you are trying to scrape. -- Any error messages you receive. -- Steps to reproduce the issue. - ---- - -### Discussing New Features - -For new feature ideas or enhancements, we encourage you to start a discussion on GitHub Discussions first. This allows for community input, refinement of the idea, and helps us prioritize development. - -[**πŸ’¬ Start a New Discussion on GitHub**](https://github.com/orgs/html2rss/discussions) - -If the discussion leads to a concrete proposal, a formal feature request issue can then be opened. diff --git a/get-involved/sponsoring.md b/get-involved/sponsoring.md deleted file mode 100644 index e9f8d008..00000000 --- a/get-involved/sponsoring.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: 'Sponsoring' ---- - - -`html2rss` is an open-source project, and its development is made possible by the support of our community. If you find `html2rss` useful, please consider sponsoring the project. - -## Why Sponsor? - -- **Ensure the project's longevity:** Your sponsorship helps to ensure that the project remains actively maintained and developed. -- **Support new features:** Your contribution will help to fund the development of new features and improvements. -- **Show your appreciation:** Sponsoring is a great way to show your appreciation for the project and the work that goes into it. - -## How to Sponsor - -You can sponsor the project through [GitHub Sponsors](https://github.com/sponsors/gildesmarais). diff --git a/html2rss-configs/index.md b/html2rss-configs/index.md deleted file mode 100644 index faca4ead..00000000 --- a/html2rss-configs/index.md +++ /dev/null @@ -1,186 +0,0 @@ ---- -title: 'html2rss-configs' -sidebar: - label: 'Overview' - ---- - - -Want to create RSS feeds for websites that don't offer them? This guide shows you how to write simple configuration files that tell the html2rss engine exactly what content to extract. - -**Don't worry if you're not technical** - we'll explain everything step by step! - -You can see examples of what others have created in the [Feed Directory]({{ '/feed-directory/' | relative_url }}). - ---- - -## How It Works - -Think of the html2rss engine as a smart assistant that needs instructions. You give it a simple "recipe" (called a config file) that tells it: - -1. **Which website** to look at -2. **What content** to find (articles, posts, etc.) -3. **How to organize** that content into an RSS feed - -The recipe is written in YAML - a simple format that's easy to read and write. Both html2rss-web and the html2rss Ruby gem use these same configuration files. - -### The `channel` Block - -This tells the html2rss engine basic information about your feed - like giving it a name and telling it which website to look at. - -**Example:** - -```yaml -channel: - url: https://example.com/blog - title: My Awesome Blog -``` - -This says: "Look at this website and call the feed 'My Awesome Blog'" - -### The `selectors` Block - -This is where you tell the html2rss engine exactly what to find on the page. You use CSS selectors (like you might use in web design) to point to specific parts of the webpage. - -**Example:** - -```yaml -selectors: - items: - selector: "article.post" - title: - selector: "h2 a" - link: - selector: "h2 a" -``` - -This says: "Find each article, get the title from the h2 link, and get the link from the same h2 link" - -**Need more details?** Check our [complete guide to selectors]({{ '/ruby-gem/reference/selectors/' | relative_url }}) for all the options. - ---- - -## Tutorial: Your First Feed - -Let's create a simple RSS feed step by step. We'll use a basic blog as our example. - -### Step 1: Look at the Website - -First, visit the website you want to create a feed for. Right-click and "View Page Source" to see the HTML structure. Look for patterns like this: - -```html -
    -
    -

    First Post

    -

    This is the summary of the first post.

    -
    -
    -

    Second Post

    -

    This is the summary of the second post.

    -
    -
    -``` - -**What we see:** Each article is wrapped in `
    `, titles are in `

    ` tags, and descriptions are in `

    ` tags. - -### Step 2: Create Your Config File - -Create a new text file and save it as `my-blog.yml` (or any name you like). Add this basic information: - -```yaml -# my-blog.yml -channel: - url: https://example.com/blog - title: My Awesome Blog - description: The latest news from my awesome blog. -``` - -This tells html2rss: "Look at this website and call the feed 'My Awesome Blog'" - -### Step 3: Tell html2rss What to Find - -Now add the selectors that tell html2rss exactly what content to extract: - -```yaml -# my-blog.yml -selectors: - items: - selector: "article.post" - title: - selector: "h2 a" - link: - selector: "h2 a" - description: - selector: "p" -``` - -**What this means:** - -- `items: "article.post"` = "Find each article with class 'post'" -- `title: "h2 a"` = "Get the title from the h2 link" -- `link: "h2 a"` = "Get the link from the same h2 link" -- `description: "p"` = "Get the description from the paragraph" - ---- - -## Advanced Techniques - -### Dynamic Feeds with Parameters - -Use the `parameters` block to create flexible configs. This is useful for feeds based on search terms, categories, or regions. - -```yaml -# news-search.yml -parameters: - query: - type: string - default: "technology" - -channel: - url: "https://news.example.com/search?q={query}" - title: "News results for '{query}'" - -selectors: - items: - selector: ".article" - title: - selector: "h2 a" - url: - selector: "h2 a" - extractor: "href" -``` - ---- - -## Contributing Your Config - -Have you created a config that others might find useful? We strongly encourage you to contribute it to the project! By sharing your config, you make it available to all users of the public `html2rss-web` service and the Feed Directory. - -To contribute, please [create a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) to the `html2rss-configs` repository. - ---- - -## Usage and Integration - -### With `html2rss-web` - -Once your pull request is reviewed and merged, your config will become available on the public [`html2rss-web`]({{ '/web-application/' | relative_url }}) instance. You can then access it at the path `/.rss`. - -### Programmatic Usage in Ruby - -You can also use `html2rss-configs` programmatically in your Ruby applications. - -Add this to your Gemfile: - -```ruby -gem 'html2rss-configs', git: 'https://github.com/html2rss/html2rss-configs.git' -``` - -And use it in your code: - -```ruby -require 'html2rss/configs' - -config = Html2rss::Configs.find_by_name('domainname.tld/whatever') -rss = Html2rss.feed(config) -``` diff --git a/ruby-gem/how-to/advanced-content-extraction.md b/ruby-gem/how-to/advanced-content-extraction.md deleted file mode 100644 index 49a6e3ba..00000000 --- a/ruby-gem/how-to/advanced-content-extraction.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: 'Advanced Content Extraction' ---- - -While basic selectors are straightforward, you can achieve very precise content extraction by combining selectors with different extractors and post-processors. - -## Extractors - -Learn how to extract specific attributes (like `src` for images) or static values. See [Extractors]({{ '/ruby-gem/reference/selectors/extractors' | relative_url }}). - -## Post Processors - -Manipulate extracted text, sanitize HTML, convert Markdown, or apply custom logic. See [Post Processors]({{ '/ruby-gem/reference/selectors/post-processors' | relative_url }}). diff --git a/ruby-gem/how-to/custom-http-requests.md b/ruby-gem/how-to/custom-http-requests.md deleted file mode 100644 index e7911ba1..00000000 --- a/ruby-gem/how-to/custom-http-requests.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: 'Custom HTTP Requests' ---- - - -You might need to send custom HTTP headers (e.g., `User-Agent`, `Authorization`) to access certain content or interact with APIs. - -## Solution - -Configure [custom HTTP headers]({{ '/ruby-gem/reference/headers' | relative_url }}) in your feed configuration. diff --git a/ruby-gem/how-to/dynamic-parameters.md b/ruby-gem/how-to/dynamic-parameters.md deleted file mode 100644 index c152601d..00000000 --- a/ruby-gem/how-to/dynamic-parameters.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: 'Dynamic Parameters' ---- - - -For websites with similar structures but varying content based on a parameter in the URL or headers, you can use dynamic parameters. - -## Solution - -You can add dynamic parameters to the `channel` and `headers` values. This is useful for creating feeds from structurally similar pages with different URLs. - -```yaml -channel: - url: "http://domainname.tld/whatever/%s.html" -headers: - X-Something: "%s" -``` - -You can then pass the values for these parameters when you run `html2rss`: - -```bash -html2rss feed the_feed_config.yml --params id:42 foo:bar -``` - ---- - -## Explanation - -- The `%s` syntax in the URL and headers is a placeholder for dynamic parameters. -- You provide the actual values for these parameters at runtime using the `--params` option. -- This allows you to reuse the same feed configuration for multiple similar pages or APIs. diff --git a/ruby-gem/how-to/handling-dynamic-content.md b/ruby-gem/how-to/handling-dynamic-content.md deleted file mode 100644 index 364ea7f5..00000000 --- a/ruby-gem/how-to/handling-dynamic-content.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: 'Handling Dynamic Content' ---- - - -Some websites load their content dynamically using JavaScript. The default `html2rss` strategy might not see this content. - -## Solution - -Use the [`browserless` strategy]({{ '/ruby-gem/reference/strategy' | relative_url }}) to render JavaScript-heavy websites with a headless browser. diff --git a/ruby-gem/how-to/index.md b/ruby-gem/how-to/index.md deleted file mode 100644 index df34d693..00000000 --- a/ruby-gem/how-to/index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: 'How-To Guides' -description: 'This section provides practical examples and solutions for common tasks when using the html2rss gem.' -sidebar: - label: 'Overview' - ---- - - -This section provides practical examples and solutions for common tasks when using the `html2rss` gem. diff --git a/ruby-gem/how-to/managing-feed-configs.md b/ruby-gem/how-to/managing-feed-configs.md deleted file mode 100644 index 2ee3ef4f..00000000 --- a/ruby-gem/how-to/managing-feed-configs.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: 'Managing Feed Configs' ---- - - -For easier management, especially when using the CLI or `html2rss-web`, you can store your feed configurations in a YAML file. - -## Global and Feed-Specific Configurations - -You can define global settings that apply to all feeds, and then define individual feed configurations under the `feeds` key. - -```yml -# Global settings -headers: - "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1" - "Accept": "text/html" - -# Feed-specific settings -feeds: - my-first-feed: - channel: - url: "https://example.com/blog" - selectors: - # ... - my-second-feed: - channel: - url: "https://example.com/news" - selectors: - # ... -``` - -## Building Feeds from a YAML File - -### Ruby - -```ruby -require 'html2rss' - -# Build a specific feed from the YAML file -my_feed_config = Html2rss.config_from_yaml_file('feeds.yml', 'my-first-feed') -rss = Html2rss.feed(my_feed_config) -puts rss - -# If the YAML file contains only one feed, you can omit the feed name -single_feed_config = Html2rss.config_from_yaml_file('single.yml') -rss = Html2rss.feed(single_feed_config) -puts rss -``` - -### Command Line - -```sh -# Build a specific feed -html2rss feed feeds.yml my-first-feed - -# Build a feed from a single-feed YAML file -html2rss feed single.yml -``` diff --git a/ruby-gem/how-to/scraping-json.md b/ruby-gem/how-to/scraping-json.md deleted file mode 100644 index cee1efc8..00000000 --- a/ruby-gem/how-to/scraping-json.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: 'Scraping JSON Responses' ---- - - -When a website returns a JSON response (i.e., with a `Content-Type` of `application/json`), `html2rss` converts the JSON to XML, allowing you to use CSS selectors for data extraction. - -> [!NOTE] -> The JSON response must be an Array or a Hash for the conversion to work. - -## JSON to XML Conversion Examples - -### JSON Object - -A JSON object like this: - -```json -{ - "data": [{ "title": "Headline", "url": "https://example.com" }] -} -``` - -is converted to this XML structure: - -```xml - - - - - Headline - https://example.com - - - - -``` - -You would use `array > object` as your `items` selector. - -### JSON Array - -A JSON array like this: - -```json -[{ "title": "Headline", "url": "https://example.com" }] -``` - -is converted to this XML structure: - -```xml - - - Headline - https://example.com - - -``` - -You would use `array > object` as your `items` selector. - -## Configuration Examples - -### Ruby - -```ruby -Html2rss.feed( - headers: { - Accept: 'application/json' - }, - channel: { - url: 'http://domainname.tld/whatever.json' - }, - selectors: { - title: { selector: 'foo' } - } -) -``` - -### YAML - -```yml -headers: - Accept: application/json -channel: - url: "http://domainname.tld/whatever.json" -selectors: - items: - selector: "array > object" - title: - selector: "foo" -``` diff --git a/ruby-gem/how-to/styling-rss-feed.md b/ruby-gem/how-to/styling-rss-feed.md deleted file mode 100644 index 7a99dd48..00000000 --- a/ruby-gem/how-to/styling-rss-feed.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: 'Styling Your RSS Feed' ---- - - -You can make your RSS feed look good in a web browser by attaching stylesheets. - -## Solution - -Add [stylesheets]({{ '/ruby-gem/reference/stylesheets' | relative_url }}) to your feed configuration. diff --git a/ruby-gem/index.md b/ruby-gem/index.md deleted file mode 100644 index e7c2365b..00000000 --- a/ruby-gem/index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: 'Ruby Gem' -description: 'This section provides comprehensive documentation for the html2rss Ruby gem.' -sidebar: - label: 'Overview' - ---- - -This section provides comprehensive documentation for the `html2rss` Ruby gem. - -## Getting Started - -If you are new to `html2rss`, we recommend starting with the [tutorials](/ruby-gem/tutorials). - -## Documentation Sections - -- **[Tutorials](/ruby-gem/tutorials)**: Step-by-step guides to help you get started with `html2rss`. -- **[How-To Guides](/ruby-gem/how-to)**: Practical examples and solutions for common tasks. -- **[Reference](/ruby-gem/reference)**: Detailed information on configuration options. diff --git a/ruby-gem/installation.md b/ruby-gem/installation.md deleted file mode 100644 index 2dfc2393..00000000 --- a/ruby-gem/installation.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: 'Installation' -description: 'This guide will walk you through the process of installing html2rss on your system.' ---- - -This guide will walk you through the process of installing html2rss on your system. html2rss can be installed in several ways, depending on your preferred method and environment. - ---- - -### Prerequisites - -- **Ruby:** html2rss is built with Ruby. Ensure you have Ruby installed (version 3.2 or higher required). You can check your Ruby version by running `ruby -v` in your terminal. If you don't have Ruby, visit [ruby-lang.org](https://www.ruby-lang.org/en/documentation/installation/) for installation instructions. -- **Bundler (Recommended):** Bundler is a Ruby gem that manages your application's dependencies. It's highly recommended for a smooth installation. Install it with `gem install bundler`. - ---- - -### Method 1: Gem Installation (Recommended for CLI Usage) - -The simplest way to get html2rss for command-line usage is to install it as a Ruby gem. - -```bash -gem install html2rss -``` - -After installation, you should be able to run `html2rss --version` to confirm it's working. - ---- - -### Method 2: Using a Gemfile (For Ruby Projects) - -If you're integrating html2rss into an existing Ruby project, add it to your `Gemfile`: - -```ruby -# Gemfile -gem 'html2rss' -``` - -Then, run `bundle install` in your project directory. - ---- - -### Method 3: GitHub Codespaces (For Cloud Development) - -For a quick start without local setup, you can develop html2rss directly in your browser using GitHub Codespaces: - -[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?repo=html2rss/html2rss) - -The Codespace comes pre-configured with Ruby 3.4, all dependencies, and VS Code extensions ready to go! - ---- - -### Verifying Installation - -To ensure html2rss is installed correctly, open your terminal and run: - -```bash -html2rss --version -``` - -You should see the installed version number. If you encounter any issues, please refer to the [Troubleshooting Guide](/support/troubleshooting). - ---- - -### Next Steps - -Now that html2rss is installed, let's create your [first RSS feed](/ruby-gem/tutorials/your-first-feed)! diff --git a/ruby-gem/reference/auto-source.md b/ruby-gem/reference/auto-source.md deleted file mode 100644 index 8bed6404..00000000 --- a/ruby-gem/reference/auto-source.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: 'Auto Source' ---- - - -The `auto_source` scraper automatically finds items on a page, so you don't have to specify CSS selectors. - -To enable it, add `auto_source: {}` to your configuration: - -```yaml -channel: - url: https://example.com -auto_source: {} -``` - -## Default Configuration - -When you use `auto_source: {}`, html2rss uses these default settings: - -- **All scrapers enabled:** `schema`, `semantic_html`, `html`, and `rss_feed_detector` -- **HTML scraper settings:** `minimum_selector_frequency: 2`, `use_top_selectors: 5` -- **Cleanup settings:** `keep_different_domain: true`, `min_words_title: 3` - -## How It Works - -`auto_source` uses the following strategies to find content: - -1. **`schema`:** Parses ` - - - -

    Page Moved

    -
    - - - - diff --git a/public/_redirects b/public/_redirects deleted file mode 100644 index b98bd4d4..00000000 --- a/public/_redirects +++ /dev/null @@ -1,35 +0,0 @@ -# Redirects from Jekyll URLs (with trailing slash) to Astro URLs (without trailing slash) - -# Root pages -/about/ /about 301 -/configs/ /configs 301 -/html2rss-configs/ /html2rss-configs 301 - -# Get Involved pages -/get-involved/contributing/ /get-involved/contributing 301 -/get-involved/discussions/ /get-involved/discussions 301 -/get-involved/issues-and-features/ /get-involved/issues-and-features 301 -/get-involved/sponsoring/ /get-involved/sponsoring 301 - -# Ruby Gem How-To pages -/ruby-gem/how-to/advanced-content-extraction/ /ruby-gem/how-to/advanced-content-extraction 301 -/ruby-gem/how-to/custom-http-requests/ /ruby-gem/how-to/custom-http-requests 301 -/ruby-gem/how-to/dynamic-parameters/ /ruby-gem/how-to/dynamic-parameters 301 -/ruby-gem/how-to/handling-dynamic-content/ /ruby-gem/how-to/handling-dynamic-content 301 -/ruby-gem/how-to/managing-feed-configs/ /ruby-gem/how-to/managing-feed-configs 301 -/ruby-gem/how-to/scraping-json/ /ruby-gem/how-to/scraping-json 301 -/ruby-gem/how-to/styling-rss-feed/ /ruby-gem/how-to/styling-rss-feed 301 - -# Ruby Gem Reference pages -/ruby-gem/reference/auto-source/ /ruby-gem/reference/auto-source 301 -/ruby-gem/reference/channel/ /ruby-gem/reference/channel 301 -/ruby-gem/reference/cli-reference/ /ruby-gem/reference/cli-reference 301 -/ruby-gem/reference/headers/ /ruby-gem/reference/headers 301 -/ruby-gem/reference/strategy/ /ruby-gem/reference/strategy 301 -/ruby-gem/reference/stylesheets/ /ruby-gem/reference/stylesheets 301 - -# Web Application pages -/web-application/reference/versioning-and-releases/ /web-application/reference/versioning-and-releases 301 - -# Catch-all for any other trailing slash URLs -/*/ /:splat 301 diff --git a/src/middleware.ts b/src/middleware.ts deleted file mode 100644 index 33e1ecbc..00000000 --- a/src/middleware.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { defineMiddleware } from "astro:middleware"; - -export const onRequest = defineMiddleware((context, next) => { - const { url } = context; - const pathname = url.pathname; - - // Redirect mapping from Jekyll URLs (with trailing slash) to Astro URLs (without trailing slash) - const redirectMap: Record = { - "/about/": "/about", - "/configs/": "/configs", - "/html2rss-configs/": "/html2rss-configs", - "/get-involved/contributing/": "/get-involved/contributing", - "/get-involved/discussions/": "/get-involved/discussions", - "/get-involved/issues-and-features/": "/get-involved/issues-and-features", - "/get-involved/sponsoring/": "/get-involved/sponsoring", - "/ruby-gem/how-to/advanced-content-extraction/": - "/ruby-gem/how-to/advanced-content-extraction", - "/ruby-gem/how-to/custom-http-requests/": - "/ruby-gem/how-to/custom-http-requests", - "/ruby-gem/how-to/dynamic-parameters/": - "/ruby-gem/how-to/dynamic-parameters", - "/ruby-gem/how-to/handling-dynamic-content/": - "/ruby-gem/how-to/handling-dynamic-content", - "/ruby-gem/how-to/managing-feed-configs/": - "/ruby-gem/how-to/managing-feed-configs", - "/ruby-gem/how-to/scraping-json/": "/ruby-gem/how-to/scraping-json", - "/ruby-gem/how-to/styling-rss-feed/": "/ruby-gem/how-to/styling-rss-feed", - "/ruby-gem/reference/auto-source/": "/ruby-gem/reference/auto-source", - "/ruby-gem/reference/channel/": "/ruby-gem/reference/channel", - "/ruby-gem/reference/cli-reference/": "/ruby-gem/reference/cli-reference", - "/ruby-gem/reference/headers/": "/ruby-gem/reference/headers", - "/ruby-gem/reference/strategy/": "/ruby-gem/reference/strategy", - "/ruby-gem/reference/stylesheets/": "/ruby-gem/reference/stylesheets", - "/web-application/reference/versioning-and-releases/": - "/web-application/reference/versioning-and-releases", - }; - - // Check for specific redirects - if (redirectMap[pathname]) { - return context.redirect(redirectMap[pathname], 301); - } - - // Generic redirect: remove trailing slash (except for root) - if (pathname.endsWith("/") && pathname !== "/") { - const newPath = pathname.slice(0, -1); - return context.redirect(newPath, 301); - } - - return next(); -}); From 27e79679fc7ea33649e643e11e22cb6bae4b001b Mon Sep 17 00:00:00 2001 From: Gil Desmarais Date: Wed, 17 Sep 2025 09:27:39 +0200 Subject: [PATCH 22/33] add ai agent basics --- .cursor/rules/read-copilot-instructions.mdc | 12 +++ .github/copilot-instructions.md | 86 +++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 .cursor/rules/read-copilot-instructions.mdc create mode 100644 .github/copilot-instructions.md diff --git a/.cursor/rules/read-copilot-instructions.mdc b/.cursor/rules/read-copilot-instructions.mdc new file mode 100644 index 00000000..fdbbd686 --- /dev/null +++ b/.cursor/rules/read-copilot-instructions.mdc @@ -0,0 +1,12 @@ +--- +description: Read and follow .github/copilot-instructions.md for this repo +alwaysApply: true +--- + +Before assisting, open and read `.github/copilot-instructions.md`. +Follow it as the authoritative source for coding practices, docs style, security, and compliance for this project. + +If the file is missing, say so, ask to create it, and proceed with safe defaults. +When β€œCopilot” is mentioned in that file, interpret it as referring to **you (Cursor)**. +Summarize the relevant sections into your working context before you act. + diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 00000000..6fef7836 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,86 @@ +# html2rss.github.io – Copilot Instructions + +# Role and Objective + +You are an Expert in modern web development, Astro, and Starlight documentation. +You are focused on creating accessible, fast, and maintainable documentation websites. +You are documenting the [html2rss project](https://github.com/html2rss/) and its components. +You are tasked to ensure high-quality, user-friendly documentation that helps users understand and utilize html2rss effectively. This is not limited to just writing content, but also includes structuring, and UX-optimizing the site. + +## Purpose + +Build and maintain the html2rss documentation website using Astro and Starlight. +Create comprehensive, user-friendly documentation that showcases html2rss capabilities. + +## Core Stack + +- **Astro** – static site generator +- **Starlight** – documentation framework for Astro +- **TypeScript** – type safety +- **MDX** – enhanced markdown with components + +## Architecture + +- **Content** – MDX files in `src/content/docs/` +- **Components** – reusable UI components in `src/components/` +- **Pages** – custom pages in `src/pages/` +- **Styling** – CSS modules or Tailwind +- **Assets** – images, icons in `public/` + +## Coding Rules + +- Target modern browsers (ES2020+) +- Use TypeScript for all `.ts` files +- Prefer functional components +- Use semantic HTML +- Follow accessibility guidelines (WCAG 2.1) +- Optimize for Core Web Vitals +- Use Astro's built-in optimizations + +## Content Rules + +- Write clear, concise documentation +- Use active voice +- Include code examples +- Add interactive demos where helpful +- Keep navigation logical +- Use consistent terminology +- Ensure the Site Navigation is assembled in a logical and user-friendly manner. + +## Performance & SEO + +- Optimize images (WebP, proper sizing) +- Use Astro's built-in lazy loading +- Implement proper meta tags +- Ensure fast page loads +- Use semantic HTML structure +- Add structured data where appropriate + +## Do βœ… + +- Follow Astro best practices +- Use Starlight's built-in features +- Write accessible content +- Test on multiple devices +- Optimize for search engines +- Keep dependencies updated + +## Don't ❌ + +- Don't add unnecessary JavaScript +- Don't ignore accessibility +- Don't use outdated patterns +- Don't skip mobile optimization +- Don't overcomplicate navigation + +## Workflow + +1. Read existing content patterns +2. Code β†’ test locally with `npm run dev` +3. Build β†’ verify with `npm run build` +4. Deploy β†’ ensure all pages work + +## AI Reference + +- [Astro Documentation](https://docs.astro.build/) +- [Starlight Documentation](https://starlight.astro.build/) From b45e5e3f6d3fba22b5ed93a86f69179a50cea64d Mon Sep 17 00:00:00 2001 From: Gil Desmarais Date: Wed, 17 Sep 2025 09:34:53 +0200 Subject: [PATCH 23/33] feed directory css clean --- assets/css/sass/feed-directory.scss | 193 ---------------------------- src/components/FeedDirectory.astro | 143 +++++++++++---------- src/components/feed-directory.js | 6 +- 3 files changed, 76 insertions(+), 266 deletions(-) delete mode 100644 assets/css/sass/feed-directory.scss diff --git a/assets/css/sass/feed-directory.scss b/assets/css/sass/feed-directory.scss deleted file mode 100644 index 855fa400..00000000 --- a/assets/css/sass/feed-directory.scss +++ /dev/null @@ -1,193 +0,0 @@ -.feed-directory__filters { - position: sticky; - top: 0; - height: fit-content; - z-index: 2; - - border: 1px solid var(--border-color); - border-radius: var(--border-radius); - margin-bottom: var(--spacing-lg); - display: flex; - flex-wrap: wrap; - gap: var(--spacing-lg); - align-items: flex-start; -} - -.feed-directory__item { - display: flex; - justify-content: space-between; - align-items: flex-start; - gap: var(--spacing-sm); - - padding: var(--spacing-sm); - border: 1px solid var(--border-color); - border-radius: var(--border-radius); - margin-bottom: 1px; /* Minimal gap between items */ - - transition: var(--transition-base); - background-color: var(--color-bg); -} - -.feed-directory__item:hover { - box-shadow: var(--box-shadow); -} - -.feed-directory__item-info { - display: flex; - flex-direction: column; - flex: 1; - gap: var(--spacing-xs); - margin-inline-end: var(--spacing-sm); -} - -.feed-directory__item-main { - display: flex; - justify-content: space-between; - align-items: center; - gap: var(--spacing-sm); - min-height: 2rem; /* Compact height for list feel */ -} - -h3.feed-directory__item-name { - font-size: var(--font-size-h4); - font-weight: var(--font-weight-bold); - color: var(--color-text); - margin: 0; - padding: 0; - flex: 1; - min-width: 0; /* Allow text to wrap */ - line-height: 1.4; -} - -.feed-directory__item-param-toggle { - display: flex; - align-items: center; - gap: var(--spacing-xs); - font-size: var(--font-size-xs); - font-weight: var(--font-weight-normal); - color: var(--color-text-light); - background-color: var(--code-block-bg-color); - padding: var(--spacing-xs) var(--spacing-sm); - border-radius: var(--border-radius-sm); - border: 1px solid var(--border-color); - white-space: nowrap; - cursor: pointer; - transition: var(--transition-base); - flex-shrink: 0; -} - -.feed-directory__item-param-toggle:hover { - background-color: var(--border-color); - color: var(--color-text); -} - -.feed-directory__param-icon { - width: 14px; - height: 14px; - flex-shrink: 0; -} - -.feed-directory__item-url { - font-size: var(--font-size-sm); - color: var(--color-text-light); - word-break: break-word; - margin: 0; -} - -.feed-directory__item-param-form__buttons { - display: flex; - justify-content: flex-end; -} - -.feed-directory__item-actions { - display: flex; - align-items: center; - gap: var(--spacing-sm); - flex-shrink: 0; -} - -.feed-directory__item-actions button { - background-color: unset; - border: 1px; - text-align: center; - padding: 0; - cursor: pointer; -} - -.feed-directory__item-actions__rss-icon, -.feed-directory__item-actions__edit-icon, -.feed-directory__item-actions__settings-icon { - inline-size: 1.2rem; - block-size: 1.2rem; -} - -.feed-directory__item-actions__rss-icon:hover, -.feed-directory__item-actions__edit-icon:hover, -.feed-directory__item-actions__settings-icon:hover { - color: var(--link-color); -} - -.feed-directory__fieldset { - border: none; - padding: 0; - flex: 1 1 45%; - min-width: 280px; - margin-bottom: 0; -} - -.feed-directory__fieldset legend { - padding: 0 var(--spacing-xs); - margin-bottom: var(--spacing-sm); -} - -.feed-directory__item-param-form { - margin-top: var(--spacing-xs); - padding: var(--spacing-xs); - border-top: 1px solid var(--border-color); - background-color: var(--code-block-bg-color); - border-radius: var(--border-radius-sm); - animation: slideDown 0.2s ease-out; -} - -@keyframes slideDown { - from { - opacity: 0; - transform: translateY(-10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -.feed-directory__item-param-form__group { - margin-block-end: var(--spacing-xs); - display: flex; - align-items: center; - gap: var(--spacing-sm); -} - -.feed-directory__item-param-form__label { - font-size: 0.85em; - font-weight: var(--font-weight-normal); - color: var(--color-text); - flex-shrink: 0; - min-width: 80px; -} - -.feed-directory__item-param-form__input { - inline-size: 100%; - padding: var(--spacing-xs) var(--spacing-sm); - border: 1px solid var(--border-color); - border-radius: var(--border-radius-sm); - color: var(--color-text); -} - -.feed-directory__item-param-form__code { - font-size: var(--font-size-sm); - padding: var(--spacing-xs) var(--spacing-sm); - border-radius: var(--border-radius-sm); - background-color: var(--code-block-bg-color); - color: var(--code-block-color); - word-break: break-all; -} diff --git a/src/components/FeedDirectory.astro b/src/components/FeedDirectory.astro index e5cee8fa..b842cbf7 100644 --- a/src/components/FeedDirectory.astro +++ b/src/components/FeedDirectory.astro @@ -32,15 +32,15 @@ const staticFeedUrls = configs.map((config) => ({ })); --- -
    +
    -
    +
    @@ -52,35 +52,33 @@ const staticFeedUrls = configs.map((config) => ({ id="search-input" autofocus placeholder="fia, apple, news or blog" - class="feed-directory__input" + class="input" aria-label="Search feeds" />
    -
    +
    { staticFeedUrls.map((config, index) => (
    -
    -
    -
    - {config.domain} - / - {config.name} +
    +
    +
    + {config.domain}/{config.name}
    {config.channel?.url && ( -
    +
    {config.channel.url} @@ -88,10 +86,10 @@ const staticFeedUrls = configs.map((config) => ({ )}
    -
    +
    {!config.valid_channel_url && Object.keys(config.url_parameters || {}).length > 0 ? ( ) : ( -
    +
    )} ({ target="_blank" rel="noopener noreferrer nofollow" data-feed-url - class="feed-directory__action-btn feed-directory__action-btn--rss" + class="action-button rss-button" aria-label="Open RSS feed" title="Open RSS feed" > @@ -120,11 +118,11 @@ const staticFeedUrls = configs.map((config) => ({ @@ -135,18 +133,18 @@ const staticFeedUrls = configs.map((config) => ({
    {!config.valid_channel_url && Object.keys(config.url_parameters || {}).length > 0 && ( -