From 6254e1edbc4dbc5b7a013cbc5325a33e83aa9f57 Mon Sep 17 00:00:00 2001 From: msj Date: Fri, 11 Feb 2022 14:11:02 -0500 Subject: [PATCH 01/47] Implemented wagtail cookiecutter --- .../new-wagtail-app/cookiecutter.json | 5 + .../{{ cookiecutter.app_name }}/.eslintrc.js | 16 ++ .../.github/PULL_REQUEST_TEMPLATE.md | 21 ++ .../.github/workflows/main.yml | 22 ++ .../{{ cookiecutter.app_name }}/.gitignore | 118 +++++++++ .../{{ cookiecutter.app_name }}/Dockerfile | 56 +++++ .../{{ cookiecutter.app_name }}/README.md | 140 +++++++++++ .../{{ cookiecutter.app_name }}/app.json | 34 +++ .../cookiecutter.json | 5 + .../docker-compose.yml | 64 +++++ .../docker-entrypoint.sh | 8 + .../{{ cookiecutter.app_name }}/heroku.yml | 12 + .../{{ cookiecutter.app_name }}/manage.py | 22 ++ .../{{ cookiecutter.app_name }}/package.json | 35 +++ .../requirements.txt | 18 ++ .../scripts/release.sh | 13 + .../scripts/run-tests.sh | 8 + .../{{ cookiecutter.app_name }}/setup.cfg | 6 + .../tests/conftest.py | 1 + .../tests/docker-compose.yml | 11 + .../tests/test_views.py | 2 + .../__init__.py | 0 .../{{ cookiecutter.module_name }}/admin.py | 3 + .../{{ cookiecutter.module_name }}/apps.py | 5 + .../{{ cookiecutter.module_name }}/asgi.py | 17 ++ .../{{ cookiecutter.module_name }}/blocks.py | 42 ++++ .../image_formats.py | 20 ++ .../{{ cookiecutter.module_name }}/logging.py | 11 + .../management/commands/__init__.py | 0 .../management/commands/clear_cache.py | 20 ++ .../management/commands/load_cms_content.py | 93 +++++++ .../migrations/__init__.py | 0 .../{{ cookiecutter.module_name }}/models.py | 52 ++++ .../settings.py | 229 ++++++++++++++++++ .../static/css/bootstrap.min.css | 7 + .../static/css/bootstrap.min.css.map | 1 + .../static/css/custom.css | 120 +++++++++ .../static/images/datamade-logo.png | Bin 0 -> 31319 bytes .../static/images/favicon-16x16.png | Bin 0 -> 329 bytes .../static/images/favicon-32x32.png | Bin 0 -> 491 bytes .../static/images/favicon.ico | Bin 0 -> 5430 bytes .../static/js/hello-react.js | 13 + .../{{ cookiecutter.module_name }}/404.html | 11 + .../{{ cookiecutter.module_name }}/500.html | 18 ++ .../{{ cookiecutter.module_name }}/base.html | 120 +++++++++ .../blocks/table.html | 59 +++++ .../hello_react.html | 27 +++ .../home_page.html | 69 ++++++ .../partials/core_content.html | 91 +++++++ .../static_page.html | 9 + .../{{ cookiecutter.module_name }}/urls.py | 37 +++ .../{{ cookiecutter.module_name }}/views.py | 20 ++ .../wagtail_hooks.py | 49 ++++ .../{{ cookiecutter.module_name }}/wsgi.py | 17 ++ 54 files changed, 1777 insertions(+) create mode 100644 docker/templates/new-wagtail-app/cookiecutter.json create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.eslintrc.js create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.github/workflows/main.yml create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.gitignore create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/Dockerfile create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/app.json create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/cookiecutter.json create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-compose.yml create mode 100755 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-entrypoint.sh create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/heroku.yml create mode 100755 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/manage.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/package.json create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/requirements.txt create mode 100755 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/scripts/release.sh create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/scripts/run-tests.sh create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/setup.cfg create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/tests/conftest.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/tests/docker-compose.yml create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/tests/test_views.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/__init__.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/admin.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/apps.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/asgi.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/blocks.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/image_formats.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/logging.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/management/commands/__init__.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/management/commands/clear_cache.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/management/commands/load_cms_content.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/migrations/__init__.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/models.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/settings.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/css/bootstrap.min.css create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/css/bootstrap.min.css.map create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/css/custom.css create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/images/datamade-logo.png create mode 100755 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/images/favicon-16x16.png create mode 100755 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/images/favicon-32x32.png create mode 100755 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/images/favicon.ico create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/hello-react.js create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/404.html create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/500.html create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/base.html create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/blocks/table.html create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/hello_react.html create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/home_page.html create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/partials/core_content.html create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/static_page.html create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/urls.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/views.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/wagtail_hooks.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/wsgi.py diff --git a/docker/templates/new-wagtail-app/cookiecutter.json b/docker/templates/new-wagtail-app/cookiecutter.json new file mode 100644 index 0000000..9d42745 --- /dev/null +++ b/docker/templates/new-wagtail-app/cookiecutter.json @@ -0,0 +1,5 @@ +{ + "app_name": "New Project", + "module_name": "project", + "app_verbose_name": "Site Name" +} diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.eslintrc.js b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.eslintrc.js new file mode 100644 index 0000000..1a865e7 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.eslintrc.js @@ -0,0 +1,16 @@ +module.exports = { + globals: { + __PATH_PREFIX__: true, + }, + extends: `react-app`, + rules: { + "indent": ["error", 2], + "no-console": "off", + "strict": ["error", "global"], + "curly": "warn", + "semi": ["error", "never"], + "space-in-parens": ["error", "never"], + "space-before-function-paren": ["error", "always"], + "space-before-blocks": ["error", "always"] + } +} diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.github/PULL_REQUEST_TEMPLATE.md b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..287b5f6 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,21 @@ +## Overview + +Brief description of what this PR does, and why it is needed. + +Closes #XXX + +### Demo + +Optional. Screenshots, `curl` examples, etc. + +### Notes + +Optional. Ancillary topics, caveats, alternative strategies that didn't work out, anything else. + +## Testing Instructions + +* How to test this PR +* Prefer bulleted description +* Start after checking out this branch +* Include any setup required, such as bundling scripts, restarting services, etc. +* Include test case, and expected output diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.github/workflows/main.yml b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.github/workflows/main.yml new file mode 100644 index 0000000..bb0e102 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.github/workflows/main.yml @@ -0,0 +1,22 @@ +name: CI + +on: + push: + branches: + - main + - deploy + pull_request: + branches: + - main + +jobs: + test: + name: Run tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - shell: bash + run: | + cp .env.example .env + - name: Build containers and run tests + run: docker-compose -f docker-compose.yml -f tests/docker-compose.yml run --rm app diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.gitignore b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.gitignore new file mode 100644 index 0000000..1cbde6c --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.gitignore @@ -0,0 +1,118 @@ +.DS_Store + +out.txt +/data/final/*.csv +/data/shapefiles/* +/data/intermediate/*.sql + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ + +# Compiled JavaScript +node_modules/ +efi/static/compressor/* +!efi/static/js/lib/ + +# Local uploads +media/ diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/Dockerfile b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/Dockerfile new file mode 100644 index 0000000..0330635 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/Dockerfile @@ -0,0 +1,56 @@ +# Extend the base Python image +# See https://hub.docker.com/_/python for version options +# N.b., there are many options for Python images. We used the plain +# version number in the pilot. YMMV. See this post for a discussion of +# some options and their pros and cons: +# https://pythonspeed.com/articles/base-image-python-docker-images/ +FROM python:3.9 + +# Give ourselves some credit +LABEL maintainer "DataMade " + +# Add the NodeSource PPA +# (see: https://github.com/nodesource/distributions/blob/master/README.md) +RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - + +# Install any additional OS-level packages you need via apt-get. RUN statements +# add additional layers to your image, increasing its final size. Keep your +# image small by combining related commands into one RUN statement, e.g., +# +RUN apt-get update && \ + apt-get install -y --no-install-recommends gettext postgresql-client nodejs gdal-bin postgis +# +# Read more on Dockerfile best practices at the source: +# https://docs.docker.com/develop/develop-images/dockerfile_best-practices +# RUN apt-get install -y --no-install-recommends postgresql-client nodejs gdal-bin + +# Inside the container, create an app directory and switch into it +RUN mkdir /app +WORKDIR /app + +# Copy the requirements file into the app directory, and install them. Copy +# only the requirements file, so Docker can cache this build step. Otherwise, +# the requirements must be reinstalled every time you build the image after +# the app code changes. See this post for further discussion of strategies +# for building lean and efficient containers: +# https://blog.realkinetic.com/building-minimal-docker-containers-for-python-applications-37d0272c52f3 +COPY ./requirements.txt /app/requirements.txt +RUN pip install --no-cache-dir -r requirements.txt + +# Install Node requirements +COPY ./package.json /app/package.json +RUN npm install + +# Copy the contents of the current host directory (i.e., our app code) into +# the container. +COPY . /app + +# Add a bogus env var for the Django secret key in order to allow us to run +# the 'collectstatic' management command +ENV DJANGO_SECRET_KEY 'foobar' +# Add a bogus env var for Debug to make sure that Django compressor can run +ENV DJANGO_DEBUG 'False' + +# Build static files into the container +RUN python manage.py collectstatic --noinput +RUN python manage.py compress diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md new file mode 100644 index 0000000..6f7a863 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md @@ -0,0 +1,140 @@ +# {{ cookiecutter.app_name }} + +## Cookiecutter Notes + +### Preparing for Docker + +Before building the Docker container, initialize the database: + +```bash +docker-compose run --rm app python manage.py makemigrations +``` + +```bash +docker-compose run --rm app python manage.py migrate +``` +### Initial Docker Run + +When running `docker-compose up` for the first time, you may run into a database connection +error that causes Docker to hang. Simply force quit Docker with `Ctrl-C` and re-run +`docker-compose up`. + +### Initial Wagtail CMS Content + +The `fixtures/` directory has been intentionally left empty. Including `initial_cms_content.json` +and `initial_cms_content_custom_pages.json` would require creating a Django admin account +in advance which would introduce a security vulnerability if the admin password was not +updated. + +After initializing the database, follow the instructions below to generate the initial CMS content. + +Note: Because the initial CMS content is created using stdout, it may include extra content +at the top of the file. After creating `initial_cms_content.json` and `initial_cms_content_custom_pages.json`, +check the files. Simply remove any stdout text that precedes the opening bracket of the +CMS content list. + + +## Developing + +Development requires a local installation of [Docker](https://docs.docker.com/install/) +and [Docker Compose](https://docs.docker.com/compose/install/). + +Build application containers: + +```bash +docker-compose up --build +``` + +To populate the starter content for the CMS, run: + +```bash +docker-compose run --rm app python manage.py load_cms_content +``` + +Run the app: + +```bash +docker-compose up +``` + +The app will be available at http://localhost:8000. The database will be exposed +on port 32001. + +### Running tests + +Run tests with Docker Compose: + +```bash +docker-compose -f docker-compose.yml -f tests/docker-compose.yml run --rm app +``` + +## Creating CMS users + +To access the Wagtail CMS at http://localhost:8000/admin, you will need to create a login: + +```bash +docker-compose run --rm app python manage.py createsuperuser +``` + +## For the designers: styles, images and templates + +When working on the styles, images and templates for this site, here are the places you'll want to add your stuff: + +* Templates: Located in `{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/` and use the [Django template language](https://docs.djangoproject.com/en/3.2/topics/templates/). `base.html` is the base page template, which contain the header and footer. +* CSS: This site uses [Bootstrap 4.6](https://getbootstrap.com/docs/4.6/getting-started/introduction/) for its base sytles. All additional style customizations should be placed in `{{ cookiecutter.module_name }}/static/css/custom.css` +* Javascript: This site uses [jQuery 3.6](https://jquery.com/) and [Bootstrap 4.6](https://getbootstrap.com/docs/4.6/getting-started/javascript/). Custom javascript should be placed in `{{ cookiecutter.module_name }}/static/js/base.js`. +* Icons: This site makes use of the free icon set from [Fontawesome 5.11](https://fontawesome.com/icons?d=gallery&p=2&m=free), which can be [used directly in any templates](https://fontawesome.com/how-to-use/on-the-web/referencing-icons/basic-use). + +## Initial CMS content + +**To create a new dump** of all the content in the Wagtail backend, perform the following steps: + +1. Back up the CMS content (except for image files) with the following 2 commands: + + ```bash + docker-compose run --rm app python manage.py dumpdata --natural-foreign --indent 2 \ + --exclude={{ cookiecutter.module_name }} \ + --exclude=contenttypes \ + --exclude=auth.permission \ + --exclude=wagtailcore.groupcollectionpermission \ + --exclude=wagtailcore.grouppagepermission \ + --exclude=sessions > {{ cookiecutter.module_name }}/fixtures/initial_cms_content.json + ``` + + ```bash + docker-compose run --rm app python manage.py dumpdata --natural-foreign --indent 2 \ + {{ cookiecutter.module_name }}.homepage \ + {{ cookiecutter.module_name }}.staticpage \ + > {{ cookiecutter.module_name }}/fixtures/initial_cms_content_custom_pages.json + ``` + + This should update the `initial_cms_content.json` file in your `{{ cookiecutter.module_name }}/fixtures` + directory. + +2. Copy over images + +```bash +cp -R media/. {{ cookiecutter.module_name }}/fixtures/initial_images/ +``` + +This will update the default image files by copying your local Wagtail images folder into `fixtures/initial_images`. This directory is copied to your media root directory by the `load_cms_content` management command. + + +**To back up content from a site on Heroku**, run the same above commands using the `heroku run` command: + +```bash + heroku run -a {{ cookiecutter.module_name }}-staging python manage.py dumpdata --natural-foreign --indent 2 \ + --exclude={{ cookiecutter.module_name }} \ + --exclude=contenttypes \ + --exclude=auth.permission \ + --exclude=wagtailcore.groupcollectionpermission \ + --exclude=wagtailcore.grouppagepermission \ + --exclude=sessions > {{ cookiecutter.module_name }}/fixtures/initial_cms_content.json +``` + +```bash + heroku run -a {{ cookiecutter.module_name }}-staging python manage.py dumpdata --natural-foreign --indent 2 \ + {{ cookiecutter.module_name }}.homepage \ + {{ cookiecutter.module_name }}.staticpage \ + > {{ cookiecutter.module_name }}/fixtures/initial_cms_content_custom_pages.json +``` diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/app.json b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/app.json new file mode 100644 index 0000000..c5e08d8 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/app.json @@ -0,0 +1,34 @@ +{ + "name": "{{ cookiecutter.module_name }}", + "scripts": {}, + "env": { + "DJANGO_ALLOWED_HOSTS": { + "required": true + }, + "DJANGO_SECRET_KEY": { + "required": true + }, + "AWS_ACCESS_KEY_ID": { + "required": true + }, + "AWS_SECRET_ACCESS_KEY": { + "required": true + }, + "AWS_STORAGE_BUCKET_NAME": { + "required": true + } + }, + "formation": { + "web": { + "quantity": 1, + "size": "hobby" + } + }, + "environments": { + "review": { + "addons": ["heroku-postgresql:hobby-basic"] + } + }, + "buildpacks": [], + "stack": "container" +} diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/cookiecutter.json b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/cookiecutter.json new file mode 100644 index 0000000..1234cdf --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/cookiecutter.json @@ -0,0 +1,5 @@ +{ + "project_name": "Project Name", + "project_slug": "Project Slug", + "project_site_name": "Site Name" +} diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-compose.yml b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-compose.yml new file mode 100644 index 0000000..f61188a --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-compose.yml @@ -0,0 +1,64 @@ +version: '2.4' + +services: + app: + image: {{ cookiecutter.module_name }} + container_name: {{ cookiecutter.module_name }} + build: . + # Allow container to be attached to, e.g., to access the pdb shell + stdin_open: true + tty: true + ports: + # Map ports on your computer to ports on your container. This allows you, + # e.g., to visit your containerized application in a browser on your + # computer. + - 8000:8000 + depends_on: + postgres: + condition: service_healthy + volumes: + # Mount the development directory as a volume into the container, so + # Docker automatically recognizes your changes. + - .:/app + # Mount the node_modules directory so that our local mount doesn't + # clobber it. + - {{ cookiecutter.module_name }}-node-modules:/app/node_modules + environment: + DJANGO_SECRET_KEY: reallysupersecret + DJANGO_MANAGEPY_MIGRATE: "on" + DJANGO_DEBUG: "True" + env_file: + - .env + entrypoint: /app/docker-entrypoint.sh + command: python manage.py runserver 0.0.0.0:8000 + + postgres: + container_name: {{ cookiecutter.module_name }}-postgres + image: mdillon/postgis:11 + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres"] + interval: 10s + timeout: 5s + retries: 5 + environment: + # The default Postgres image exposes a number of environmental variables + # that allow you to configure the container's behavior, without writing + # any additional code. Specify the name of your database, and any other + # variables, here. https://hub.docker.com/_/postgres/#environment-variables + POSTGRES_DB: {{ cookiecutter.module_name }} + POSTGRES_PASSWORD: postgres + volumes: + # By default, Postgres instantiates an anonymous volume. Use a named + # one, so your data persists beyond the life of the container. See this + # post for a discussion of the pitfalls of Postgres and anonymous + # volumes: https://linuxhint.com/run_postgresql_docker_compose/ + - {{ cookiecutter.module_name }}-db-data:/var/lib/postgresql/data + ports: + - 32001:5432 + +volumes: + # Declare your named volume for Postgres. + {{ cookiecutter.module_name }}-db-data: + # Making node_modules a named volume prevents the ./app volume mount from + # clobbering the directory in the container. + {{ cookiecutter.module_name }}-node-modules: diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-entrypoint.sh b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-entrypoint.sh new file mode 100755 index 0000000..da77a0c --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-entrypoint.sh @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +if [ "$DJANGO_MANAGEPY_MIGRATE" = 'on' ]; then + python manage.py migrate --noinput +fi + +exec "$@" diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/heroku.yml b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/heroku.yml new file mode 100644 index 0000000..170c6bf --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/heroku.yml @@ -0,0 +1,12 @@ +setup: + addons: + - plan: heroku-postgresql +build: + docker: + web: Dockerfile +release: + command: + - ./scripts/release.sh + image: web +run: + web: gunicorn -t 180 -w 3 --log-level debug {{ cookiecutter.module_name }}.wsgi:application diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/manage.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/manage.py new file mode 100755 index 0000000..decec46 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + os.environ.setdefault('DJANGO_SETTINGS_MODULE', + '{{ cookiecutter.module_name }}.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/package.json b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/package.json new file mode 100644 index 0000000..68ec51c --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/package.json @@ -0,0 +1,35 @@ +{ + "name": "{{ cookiecutter.module_name }}", + "version": "0.0.0", + "description": "JavaScript development setup for {{ cookiecutter.module_name }}", + "dependencies": { + "@babel/cli": "^7.8.4", + "@babel/core": "^7.9.6", + "@babel/preset-env": "^7.9.6", + "@babel/preset-react": "^7.9.4", + "babel-preset-env": "^1.7.0", + "babelify": "^10.0.0", + "browserify": "^16.5.0", + "leaflet": "^1.7.1", + "leaflet-loading": "^0.1.24", + "object-hash": "^2.2.0", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "react-dropdown-select": "^4.7.4", + "react-leaflet": "^3.2.2", + "react-select": "^5.1.0", + "typed.js": "^2.0.12" + }, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^4.8.1", + "@typescript-eslint/parser": "^4.8.1", + "babel-eslint": "^10.1.0", + "eslint": "^8.6.0", + "eslint-config-react-app": "^6.0.0", + "eslint-plugin-flowtype": "^5.2.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jsx-a11y": "^6.4.1", + "eslint-plugin-react": "^7.21.5", + "eslint-plugin-react-hooks": "^4.2.0" + } +} diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/requirements.txt b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/requirements.txt new file mode 100644 index 0000000..d449156 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/requirements.txt @@ -0,0 +1,18 @@ +Django==3.2.11 +psycopg2==2.8.6 +gunicorn==20.0.4 +dj-database-url==0.5.0 +whitenoise==5.2.0 +django-compressor==2.4 +django-storages==1.11.1 +boto3==1.16.49 +sentry-sdk==0.20.3 +wagtail==2.15.2 +csvkit==1.0.3 + +pytest==6.2.2 +pytest-django==4.1.0 +pytest-mock==3.5.1 +flake8==3.8.4 + +pip-chill==1.0.1 diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/scripts/release.sh b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/scripts/release.sh new file mode 100755 index 0000000..f97198d --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/scripts/release.sh @@ -0,0 +1,13 @@ +#!/bin/bash +# scripts/release.sh -- Commands to run on every Heroku release + +set -euo pipefail + +python manage.py collectstatic --noinput +python manage.py migrate --noinput +python manage.py createcachetable && python manage.py clear_cache + +# Check if initial data exists, and if not, import initial pages, etc. +if [ `psql ${DATABASE_URL} -tAX -c "SELECT COUNT(*) FROM {{ cookiecutter.module_name }}_homepage"` -eq "0" ]; then + python manage.py load_cms_content +fi diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/scripts/run-tests.sh b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/scripts/run-tests.sh new file mode 100644 index 0000000..745d08f --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/scripts/run-tests.sh @@ -0,0 +1,8 @@ +#!/bin/bash +result=0 +trap 'result=1' ERR + +flake8 {{ cookiecutter.module_name }} tests +pytest -sxv + +exit "$result" diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/setup.cfg b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/setup.cfg new file mode 100644 index 0000000..61b1b51 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/setup.cfg @@ -0,0 +1,6 @@ +[tool:pytest] +DJANGO_SETTINGS_MODULE = {{ cookiecutter.module_name }}.settings + +[flake8] +exclude = {{ cookiecutter.module_name }}/static/ {{ cookiecutter.module_name }}/settings.py {{ cookiecutter.module_name }}/migrations/ +max-line-length = 90 diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/tests/conftest.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/tests/conftest.py new file mode 100644 index 0000000..ad27c36 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/tests/conftest.py @@ -0,0 +1 @@ +# Define test fixtures here. diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/tests/docker-compose.yml b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/tests/docker-compose.yml new file mode 100644 index 0000000..3eec5ea --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/tests/docker-compose.yml @@ -0,0 +1,11 @@ +version: '2.4' + +services: + app: + # Don't restart the service when the command exits + restart: "no" + environment: + DJANGO_SECRET_KEY: reallysupersecret + # Disable manifest storage for testing + DJANGO_STATICFILES_STORAGE: django.contrib.staticfiles.storage.StaticFilesStorage + command: /bin/bash scripts/run-tests.sh diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/tests/test_views.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/tests/test_views.py new file mode 100644 index 0000000..9c627c9 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/tests/test_views.py @@ -0,0 +1,2 @@ +def test_example(): + assert 1 > 0 diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/__init__.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/admin.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/admin.py new file mode 100644 index 0000000..6af52da --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin # noqa + +# Register your models here. diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/apps.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/apps.py new file mode 100644 index 0000000..4247797 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class DjangoAppConfig(AppConfig): + name = '{{ cookiecutter.module_name }}' diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/asgi.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/asgi.py new file mode 100644 index 0000000..545bb18 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/asgi.py @@ -0,0 +1,17 @@ +""" +ASGI config for example_app project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', + '{{ cookiecutter.module_name }}.settings') + +application = get_asgi_application() diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/blocks.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/blocks.py new file mode 100644 index 0000000..689cd08 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/blocks.py @@ -0,0 +1,42 @@ +from wagtail.core import blocks +from wagtail.contrib.table_block.blocks import TableBlock as WagtailTableBlock +from wagtail.images.blocks import ImageChooserBlock + + +class AccordionBlock(blocks.StructBlock): + title = blocks.CharBlock() + paragraph = blocks.RichTextBlock() + + class Meta: + icon = 'doc-full' + + +class ButtonBlock(blocks.StructBlock): + text = blocks.CharBlock() + link = blocks.URLBlock() + + class Meta: + icon = 'plus-inverse' + + +class CalloutBlock(blocks.StructBlock): + paragraph = blocks.RichTextBlock() + + class Meta: + icon = 'form' + + +class TableBlock(WagtailTableBlock): + table = WagtailTableBlock() + + class Meta: + template = '{{ cookiecutter.module_name }}/blocks/table.html' + icon = 'table' + label = 'Table' + + +class TeamMemberBlock(blocks.StructBlock): + first_name = blocks.CharBlock() + last_name = blocks.CharBlock() + position = blocks.CharBlock() + photo = ImageChooserBlock(required=False) diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/image_formats.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/image_formats.py new file mode 100644 index 0000000..22a3785 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/image_formats.py @@ -0,0 +1,20 @@ +from wagtail.images.formats import Format, register_image_format,\ + unregister_image_format + +unregister_image_format('fullwidth') +register_image_format(Format('fullwidth', + 'Full width', + 'richtext-image img-fluid mx-auto d-block', + 'width-1000')) + +unregister_image_format('left') +register_image_format(Format('left', + 'Left-aligned', + 'richtext-image float-left img-fluid', + 'width-500')) + +unregister_image_format('right') +register_image_format(Format('right', + 'Right-aligned', + 'richtext-image float-right img-fluid', + 'width-500')) diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/logging.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/logging.py new file mode 100644 index 0000000..b47dc2c --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/logging.py @@ -0,0 +1,11 @@ +def before_send(event, hint): + """ + Log 400 Bad Request errors with the same custom fingerprint so that we can + group them and ignore them all together. See: + https://github.com/getsentry/sentry-python/issues/149#issuecomment-434448781 + """ + log_record = hint.get('log_record') + if log_record and hasattr(log_record, 'name'): + if log_record.name == 'django.security.DisallowedHost': + event['fingerprint'] = ['disallowed-host'] + return event diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/management/commands/__init__.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/management/commands/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/management/commands/clear_cache.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/management/commands/clear_cache.py new file mode 100644 index 0000000..94e6c81 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/management/commands/clear_cache.py @@ -0,0 +1,20 @@ +# Adapted from https://github.com/rdegges/django-clear-cache +from django.conf import settings +from django.core.cache import cache +from django.core.management.base import BaseCommand, CommandError + + +class Command(BaseCommand): + """A simple management command which clears the site-wide cache.""" + help = 'Fully clear your site-wide cache.' + + def handle(self, *args, **kwargs): + try: + assert settings.CACHES + except AttributeError: + raise CommandError( + 'No cache configured. Check CACHES in settings.py.' + ) + + cache.clear() + self.stdout.write('Successfully cleared the cache.') diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/management/commands/load_cms_content.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/management/commands/load_cms_content.py new file mode 100644 index 0000000..04d6f89 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/management/commands/load_cms_content.py @@ -0,0 +1,93 @@ +# Based on the Wagtail demo: +# https://github.com/wagtail/bakerydemo/blob/master/bakerydemo/base/management/commands/load_initial_data.py +import os + +from django.core.files.storage import default_storage +from django.apps import apps +from django.core.management.base import BaseCommand +from django.core.management import call_command +from django.core.exceptions import ObjectDoesNotExist + +from wagtail.core.models import Site, Page, PageRevision +from wagtail.images.models import Image + + +class Command(BaseCommand): + + @property + def fixtures_dir(self): + project_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', '..') + return os.path.join(project_dir, 'fixtures') + + def add_arguments(self, parser): + parser.add_argument( + '--content-type', + default='models', + type=lambda x: x.split(','), + help='Comma-separated string of content types to load. Default: \ + models. Options: models, images.' + ) + + def handle(self, **options): + selected_content = set(options['content_type']) + valid_content = set(['models', 'images']) + + if not selected_content.issubset(valid_content): + invalid_values = selected_content - valid_content + raise ValueError('Invalid content types: {}. Valid options are: \ + models, images'.format(invalid_values)) + + else: + for content in options['content_type']: + getattr(self, 'load_{}'.format(content))() + + def load_models(self): + initial_data_file = os.path.join(self.fixtures_dir, 'initial_cms_content.json') + initial_data_file_custom_pages = \ + os.path.join(self.fixtures_dir, + 'initial_cms_content_custom_pages.json') + + # Delete existing Wagtail models + try: + Site.objects.all().delete() + Page.objects.all().delete() + PageRevision.objects.all().delete() + Image.objects.all().delete() + + for Model in apps.get_app_config('{{ cookiecutter.module_name }}').get_models(): + if getattr(Model, 'reset_on_load', False): + Model.objects.all().delete() + + except ObjectDoesNotExist as e: + self.stdout.write(self.style.WARNING(e)) + + call_command('loaddata', initial_data_file, verbosity=0) + call_command('loaddata', initial_data_file_custom_pages, verbosity=0) + + self.stdout.write(self.style.SUCCESS('Initial data loaded!')) + + def load_images(self): + initial_images_dir = os.path.join(self.fixtures_dir, 'initial_images') + + for root, dirs, files in os.walk(initial_images_dir): + + for filename in files: + source_path = os.path.join(root, filename) + dest_path = os.path.relpath(source_path, initial_images_dir) + + if default_storage.exists(dest_path): + self.stdout.write( + self.style.WARNING( + '{} aleady exists. Skipping...'.format(dest_path) + ) + ) + continue + + else: + with open(source_path, 'rb') as img: + default_storage.save(dest_path, img) + self.stdout.write( + self.style.SUCCESS( + 'Copied {} to default storage'.format(dest_path))) + + self.stdout.write(self.style.SUCCESS('Copied all initial images!')) diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/migrations/__init__.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/models.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/models.py new file mode 100644 index 0000000..86cefcb --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/models.py @@ -0,0 +1,52 @@ +from wagtail.core.models import Page +from wagtail.core.fields import RichTextField, StreamField +from wagtail.core import blocks +from wagtail.embeds.blocks import EmbedBlock +from wagtail.admin.edit_handlers import StreamFieldPanel, FieldPanel + +from {{cookiecutter.module_name}}.blocks import AccordionBlock, ButtonBlock, CalloutBlock, TableBlock, \ + TeamMemberBlock + + +class BasePage(Page): + body = StreamField([ + ('paragraph', blocks.RichTextBlock()), + ('heading', blocks.CharBlock(classname='full title', icon='title')), + ('accordion', blocks.ListBlock(AccordionBlock(), icon='list-ul')), + ('button', ButtonBlock()), + ('callout', CalloutBlock()), + ('table', TableBlock()), + ('embedded_media', blocks.StructBlock([ + ('title', blocks.CharBlock(required=False)), + ('media_link', EmbedBlock()), + ('description', blocks.TextBlock(required=False)) + ], icon='media')), + ('team_members', blocks.ListBlock(TeamMemberBlock(), icon='group')), + ]) + + class Meta: + abstract = True + + +class StaticPage(BasePage): + content_panels = Page.content_panels + [ + StreamFieldPanel('body'), + ] + + parent_page_types = ['{{ cookiecutter.module_name }}.HomePage'] + + +class HomePage(BasePage): + intro_text = RichTextField(blank=True) + + content_panels = Page.content_panels + [ + FieldPanel('intro_text'), + StreamFieldPanel('body') + ] + + max_count = 1 + + def get_context(self, request): + context = super().get_context(request) + + return context diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/settings.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/settings.py new file mode 100644 index 0000000..a68bd76 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/settings.py @@ -0,0 +1,229 @@ +""" +Django settings for example_app project. + +Generated by 'django-admin startproject' using Django 3.0.3. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/3.0/ref/settings/ +""" +import os + +import dj_database_url +import sentry_sdk +from sentry_sdk.integrations.django import DjangoIntegration +from django.templatetags.static import static + +from {{cookiecutter.module_name}}.logging import before_send + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + +# Retrieve the secret key from the DJANGO_SECRET_KEY environment variable +SECRET_KEY = os.environ['DJANGO_SECRET_KEY'] + +# Set the DJANGO_DEBUG environment variable to False to disable debug mode +DEBUG = False if os.getenv('DJANGO_DEBUG', True) == 'False' else True + +# Define DJANGO_ALLOWED_HOSTS as a comma-separated list of valid hosts, +# e.g. localhost,127.0.0.1,.herokuapp.com +allowed_hosts = os.getenv('DJANGO_ALLOWED_HOSTS', []) +ALLOWED_HOSTS = allowed_hosts.split(',') if allowed_hosts else [] + + +# Configure Sentry for error logging +if os.getenv('SENTRY_DSN'): + sentry_sdk.init( + dsn=os.environ['SENTRY_DSN'], + before_send=before_send, + integrations=[DjangoIntegration()], + ) + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'wagtail.contrib.forms', + 'wagtail.contrib.modeladmin', + 'wagtail.contrib.redirects', + 'wagtail.contrib.simple_translation', + 'wagtail.contrib.table_block', + 'wagtail.locales', + 'wagtail.embeds', + 'wagtail.sites', + 'wagtail.users', + 'wagtail.snippets', + 'wagtail.documents', + 'wagtail.images', + 'wagtail.search', + 'wagtail.admin', + 'wagtail.core', + 'modelcluster', + 'taggit', + 'compressor', + '{{ cookiecutter.module_name }}', + 'storages', +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'whitenoise.middleware.WhiteNoiseMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.cache.UpdateCacheMiddleware', + 'django.middleware.locale.LocaleMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.cache.FetchFromCacheMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'wagtail.contrib.redirects.middleware.RedirectMiddleware', + +] + +SERIALIZATION_MODULES = { + 'geojson': 'django.contrib.gis.serializers.geojson', +} + +ROOT_URLCONF = '{{ cookiecutter.module_name }}.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': ['templates/'], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = '{{ cookiecutter.module_name }}.wsgi.application' + +# Database +# https://docs.djangoproject.com/en/3.0/ref/settings/#databases + +DATABASES = {} + +DATABASES['default'] = dj_database_url.parse( + os.getenv('DATABASE_URL', + 'postgis://postgres:postgres@postgres:5432/{{ cookiecutter.module_name }}'), + conn_max_age=600, + ssl_require=True if os.getenv('POSTGRES_REQUIRE_SSL') else False, + engine='django.contrib.gis.db.backends.postgis' +) + +# Caching +# https://docs.djangoproject.com/en/3.0/topics/cache/ + +cache_backend = 'dummy.DummyCache' if DEBUG is True else 'db.DatabaseCache' +CACHES = { + 'default': { + 'BACKEND': f'django.core.cache.backends.{cache_backend}', + 'LOCATION': 'site_cache', + 'TIMEOUT': 30, + } +} + +# Password validation +# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + +# Internationalization +# https://docs.djangoproject.com/en/3.0/topics/i18n/ + +LANGUAGE_CODE = 'en' +TIME_ZONE = 'UTC' +USE_I18N = True +USE_L10N = True +USE_TZ = True + +LOCALE_PATHS = ( + os.path.join(BASE_DIR, 'locale'), +) + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/2.2/howto/static-files/ + +STATIC_URL = '/static/' +STATIC_ROOT = '/static' +STATICFILES_STORAGE = os.getenv( + 'DJANGO_STATICFILES_STORAGE', + 'whitenoise.storage.CompressedManifestStaticFilesStorage' +) +STATICFILES_FINDERS = ( + 'django.contrib.staticfiles.finders.FileSystemFinder', + 'django.contrib.staticfiles.finders.AppDirectoriesFinder', + 'compressor.finders.CompressorFinder', +) + +MEDIA_ROOT = os.path.join(BASE_DIR, 'media') +MEDIA_URL = '/media/' + +try: + AWS_ACCESS_KEY_ID = os.environ['AWS_ACCESS_KEY_ID'] + AWS_SECRET_ACCESS_KEY = os.environ['AWS_SECRET_ACCESS_KEY'] + AWS_STORAGE_BUCKET_NAME = os.environ['AWS_STORAGE_BUCKET_NAME'] + +except KeyError: + print('AWS config not found, defaulting to local storage') + +else: + DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' + +WAGTAIL_SITE_NAME = '{{ cookiecutter.app_verbose_name }}' + +# Disable moderation +WAGTAIL_MODERATION_ENABLED = False +# Disable commenting +WAGTAILADMIN_COMMENTS_ENABLED = False +WAGTAIL_ENABLE_UPDATE_CHECK = False + +# Django Compressor configs +COMPRESS_PRECOMPILERS = ( + ('module', + 'export NODE_PATH=/app/node_modules && npx browserify {infile} -t [ babelify --presets [ @babel/preset-env ] ] > {outfile}'), + ('text/jsx', + 'export NODE_PATH=/app/node_modules && npx browserify {infile} -t [ babelify --presets [ @babel/preset-env @babel/preset-react ] ] > {outfile}'), +) + +COMPRESS_OUTPUT_DIR = 'compressor' + +COMPRESS_ENABLED = True + +# Enable offline compression in production only +COMPRESS_OFFLINE = not DEBUG + +# Make sure Django compressor can generate static paths +COMPRESS_OFFLINE_CONTEXT = {'static': static} + +# Enforce SSL in production +if DEBUG is False: + SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') + SECURE_SSL_REDIRECT = True diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/css/bootstrap.min.css b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/css/bootstrap.min.css new file mode 100644 index 0000000..ef399d2 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/css/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.6.0 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label::after,.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.form-control:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;overflow:hidden;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;overflow:hidden;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:50%/100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{-ms-flex-preferred-size:350px;flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/css/bootstrap.min.css.map b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/css/bootstrap.min.css.map new file mode 100644 index 0000000..78a0c12 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/css/bootstrap.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_interactions.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n",":root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n // making it impossible to interact with the content\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-` +

+ + +
+ {% raw %}{% block body %}{% endblock %} {% endraw %} +
+ +
+ +
+ +
+ + +
+

+ {{ cookiecutter.app_verbose_name }} +

+
+ +
+ +
+
+

Built by DataMade

+
+
+
+ {% raw %}{% wagtailuserbar %}{% endraw %} + + + {% raw %} + + {% endraw %} + + + + + + + {% raw %}{% block extra_js %}{% endblock %}{% endraw %} + + diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/blocks/table.html b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/blocks/table.html new file mode 100644 index 0000000..9274749 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/blocks/table.html @@ -0,0 +1,59 @@ +{% raw %}{% load table_block_tags %} + + + {% if table_caption %} + + {% endif %} + {% if table_header %} + + + {% for column in table_header %} + {% with forloop.counter0 as col_index %} + + {% endwith %} + {% endfor %} + + + {% endif %} + + {% for row in data %} + {% with forloop.counter0 as row_index %} + + {% for column in row %} + {% with forloop.counter0 as col_index %} + {% if first_col_is_header and forloop.first %} + + {% else %} + + {% endif %} + {% endwith %} + {% endfor %} + + {% endwith %} + {% endfor %} + +
{{ table_caption }}
+ {% if column.strip %} + {% if html_renderer %} + {{ column.strip|safe|linebreaksbr }} + {% else %} + {{ column.strip|linebreaksbr }} + {% endif %} + {% endif %} +
+ {% if column.strip %} + {% if html_renderer %} + {{ column.strip|safe|linebreaksbr }} + {% else %} + {{ column.strip|linebreaksbr }} + {% endif %} + {% endif %} + + {% if column.strip %} + {% if html_renderer %} + {{ column.strip|safe|linebreaksbr }} + {% else %} + {{ column.strip|linebreaksbr }} + {% endif %} + {% endif %} +
{% endraw %} diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/hello_react.html b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/hello_react.html new file mode 100644 index 0000000..a8bad26 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/hello_react.html @@ -0,0 +1,27 @@ +{{ '{%' }} extends "{{ cookiecutter.module_name }}/base.html" {{ '%}' }} + +{% raw %}{% load static %}{% endraw %} + +{% raw %}{% block title %}{view.title}{% endblock %}{% endraw %} + +{% raw %}{% block body %}{% endraw %} +
+ +
+

+ Loading components...

+
+
+ {% raw %}{% endblock %}{% endraw %} + + {% raw %}{% block extra_js %} + {% load compress %} + {{ props|json_script:"props" }} + + {% compress js %} + + {% endcompress %} + {% endblock %}{% endraw %} diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/home_page.html b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/home_page.html new file mode 100644 index 0000000..43e5bd0 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/home_page.html @@ -0,0 +1,69 @@ +{{ '{%' }} extends "{{ cookiecutter.module_name }}/base.html" {{ '%}' }} + +{% raw %}{% load static wagtailcore_tags wagtailimages_tags %}{% endraw %} + +{% raw %}{% block title %}Home{% endblock %}{% endraw %} + +{% raw %}{% block body %}{% endraw %} +
+
+
+ {% raw %}{{ page.intro_text|richtext }}{% endraw %} +
+
+
+ +
+ {% raw %}{% if topics %}{% endraw %} +
+

Topics

+

Learn about our research and recommendations to changes in local policy.

+
+ {% raw %}{% for topic in topics %}{% endraw %} +
+ {% raw %}{% image topic.image width-400 class="img-fluid rounded mx-auto d-block" %}{% endraw %} + {% raw %}{% endraw %} +

+ {% raw %}{{ topic.title }}{% endraw %} +

+
+
+ {% raw %}{% endfor %}{% endraw %} +
+
+ {% raw %}All topics{% endraw %} +
+
+ {% raw %}{% endif %}{% endraw %} + +
+ + {% raw %}{% if updates %}{% endraw %} +
+

Updates

+
+ {% raw %}{% for update in updates %}{% endraw %} +
+

+ {% raw %}{% endraw %} + {% raw %}{{ update.title }}{% endraw %} + +

+ {% raw %}

{{ update.intro }}

{% endraw %} +
+ {% raw %}{% endfor %}{% endraw %} +
+
+ {% raw %}All updates{% endraw %} +
+
+ {% raw %}{% endif %}{% endraw %} + +
+ + {{ '{%' }} include '{{ cookiecutter.module_name }}/partials/core_content.html' {{ '%}' }} +
+ + + +{% raw %}{% endblock %}{% endraw %} diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/partials/core_content.html b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/partials/core_content.html new file mode 100644 index 0000000..027d464 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/partials/core_content.html @@ -0,0 +1,91 @@ +{% raw %}{% load static %} + {% load wagtailcore_tags %} + {% load wagtailembeds_tags wagtailimages_tags %} + + {% for block in page.body %} + {% if block.block_type == 'heading' %} +

{{ block.value }}

+ {% elif block.block_type == 'paragraph' %} + {{ block.value|richtext }} + {% elif block.block_type == 'accordion' %} +
+ {% for a in block.value %} +
+
+

+ +

+
+
+
+ {{ a.paragraph }} +
+
+
+ {% endfor %} +
+ {% elif block.block_type == 'button' %} + + {% elif block.block_type == 'callout' %} +
+ {{ block.value.paragraph|richtext }} +
+ {% elif block.block_type == 'embedded_media' %} +
+ {% if block.value.title or block.value.description %} +
+
+ {% embed block.value.media_link.url max_width='4000' %} +
+
+
+ {% if block.value.title %} +
{{ block.value.title }}
+ {% endif %} + {% if block.value.description %} +

{{ block.value.description }}

+ {% endif %} +
+ {% else %} +
+
+ {% embed block.value.media_link.url max_width='4000' %} +
+
+ {% endif %} +
+ {% elif block.block_type == 'document' %} + {{ block.value }} + {% elif block.block_type == 'image' %} +

{{block}}

+ {% elif block.block_type == 'table' %} + {% include_block block %} + {% elif block.block_type == 'team_members' %} +
+ {% for p in block.value %} +
+
+
+ {% image p.photo fill-150x150 class="img-fluid rounded-circle" %}
+ {{ p.first_name }} {{ p.last_name }}
+ {{ p.position }}
+ {% if p.email %} + {{ p.email }} + {% endif %} +
+
+ {% if p.biography %} + {{ p.biography }} + {% endif %} +
+
+
+ {% endfor %} +
+ {% endif %} + {% endfor %}{% endraw %} diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/static_page.html b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/static_page.html new file mode 100644 index 0000000..012456f --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/static_page.html @@ -0,0 +1,9 @@ +{{ '{%' }} extends "{{ cookiecutter.module_name }}/base.html" {{ '%}' }} +{% raw %}{% load wagtailcore_tags wagtailimages_tags %}{% endraw %} + +{% raw %}{% block body %}{% endraw %} +
+ {% raw %}

{{page.title}}

{% endraw %} + {{ '{%' }} include '{{ cookiecutter.module_name }}/partials/core_content.html' {{ '%}' }} +
+ {% raw %}{% endblock %}{% endraw %} diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/urls.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/urls.py new file mode 100644 index 0000000..8702042 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/urls.py @@ -0,0 +1,37 @@ +"""example_app URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/3.0/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path, include +from django.conf import settings +from django.conf.urls.static import static + +from .views import HelloReact + +from wagtail.admin import urls as wagtailadmin_urls +from wagtail.core import urls as wagtail_urls +from wagtail.documents import urls as wagtaildocs_urls + + +urlpatterns = [ + path('django-admin/', admin.site.urls), + path('admin/', include(wagtailadmin_urls)), + path('documents/', include(wagtaildocs_urls)), + path("", include(wagtail_urls)), + path('hello-react', HelloReact.as_view(), name='hello-react'), +] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + +handler404 = '{{ cookiecutter.module_name }}.views.page_not_found' +handler500 = '{{ cookiecutter.module_name }}.views.server_error' diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/views.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/views.py new file mode 100644 index 0000000..888bfaf --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/views.py @@ -0,0 +1,20 @@ +from django.shortcuts import render +from django.views.generic import TemplateView + + +class HelloReact(TemplateView): + title = 'Hello React View' + template_name = '{{ cookiecutter.module_name }}/hello_react.html' + component = 'js/hello-react.js' + + def get_context_data(self, *args, **kwargs): + context = super().get_context_data(*args, **kwargs) + return context + + +def page_not_found(request, exception, template_name='{{ cookiecutter.module_name }}/404.html'): + return render(request, template_name, status=404) + + +def server_error(request, template_name='{{ cookiecutter.module_name }}/500.html'): + return render(request, template_name, status=500) diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/wagtail_hooks.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/wagtail_hooks.py new file mode 100644 index 0000000..b06eac4 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/wagtail_hooks.py @@ -0,0 +1,49 @@ +from django.utils.html import escape +from wagtail.admin.rich_text.converters.html_to_contentstate import BlockElementHandler +import wagtail.admin.rich_text.editors.draftail.features as draftail_features +from wagtail.core import hooks +from wagtail.core.rich_text import LinkHandler + + +@hooks.register('register_rich_text_features') +def register_blockquote_feature(features): + + feature_name = 'blockquote' + feature_type = 'blockquote' + features.register_editor_plugin( + 'draftail', feature_name, draftail_features.BlockFeature({ + 'type': feature_type, + 'label': '"', + 'description': 'Blockquote', + 'element': 'blockquote' + }) + ) + features.register_converter_rule('contentstate', feature_name, { + 'from_database_format': { + 'blockquote': BlockElementHandler(feature_type) + }, + 'to_database_format': { + 'block_map': { + feature_type: 'blockquote' + } + } + }) + features.default_features.append('blockquote') + + +class NewWindowExternalLinkHandler(LinkHandler): + # This specifies to do this override for external links only. + # Other identifiers are available for other types of links. + identifier = 'external' + + @classmethod + def expand_db_attributes(cls, attrs): + href = attrs["href"] + # Let's add the target attr, and also rel="noopener" + noreferrer fallback. + # See https://github.com/whatwg/html/issues/4078. + return '' % escape(href) + + +@hooks.register('register_rich_text_features') +def register_external_link(features): + features.register_link_type(NewWindowExternalLinkHandler) diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/wsgi.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/wsgi.py new file mode 100644 index 0000000..cce3d54 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/wsgi.py @@ -0,0 +1,17 @@ +""" +WSGI config for example_app project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', + '{{ cookiecutter.module_name }}.settings') + +application = get_wsgi_application() From 7d7607bedcc58637dba57f9003efe874404c977d Mon Sep 17 00:00:00 2001 From: msj Date: Fri, 11 Feb 2022 14:28:35 -0500 Subject: [PATCH 25/47] Changed title of README --- .../new-wagtail-app/{{ cookiecutter.app_name }}/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md index 6f7a863..14891cd 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md @@ -1,4 +1,4 @@ -# {{ cookiecutter.app_name }} +# {{ cookiecutter.app_verbose_name }} ## Cookiecutter Notes From dff62a0e93e7b5c39eac22b4dd2ab9404b33af25 Mon Sep 17 00:00:00 2001 From: msj Date: Mon, 14 Mar 2022 15:37:50 -0400 Subject: [PATCH 26/47] Refactoring README --- .DS_Store | Bin 0 -> 8196 bytes docker/.DS_Store | Bin 0 -> 6148 bytes .../new-wagtail-app/cookiecutter.json | 2 +- .../{{ cookiecutter.app_name }}/README.md | 50 ++++++++++-------- .../cookiecutter.json | 5 -- 5 files changed, 29 insertions(+), 28 deletions(-) create mode 100644 .DS_Store create mode 100644 docker/.DS_Store delete mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/cookiecutter.json diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1cce9bd4babe381ca5d0d68ffc3c8d28185fb187 GIT binary patch literal 8196 zcmeHML2uJA82#LBUAk$bLV$Kbio|srW1A*TTuRr1Cc%)_0tY~)U8^oEjjJSGHBCc3 z!++o}aOIcqUpT@0Y;UU5?yw62VOREZ?Drh!*-qk=h(vkNenhlFL>?kzaS_Rs!1Wv_ zLe7-j0}AM=70MR!MZ_nj&Vh5lIp7>{4mby#1AmtTcxH3(u6ge3T9-NpoCE)*1AKq* z5gAJcM;g_w1Bu!K0B2FG0`mO&&l=xg$>2yMY7m5$0<~0_Er!r?l>3HPGC0zx}cOtbP^?vE_Dt#2PPfhy?c(1DA*6>QD**cZ~iV!J`1_#0pRzU1{C(AG6m5=fKS!n9-7zMPT*%@BcS%*eRR?&Vhf%0Wn*t zRm$k@86JI&QvBWtIw10V+TRr~noCg96rjVe{ueMk+uBsKAc`_I)UD!kdX>d zfw2OQv2CpXzrt_K|6>w&RDcTnD+P46?3OKFDSPYW<*e5h_zG?{-*7Xmor2))80hU7 g8*9f4FN(TiYn<1_A<*f_I~~ZM0n>#>1@5iD1$ {{ cookiecutter.module_name }}/fixtures/initial_cms_content_custom_pages.json ``` + +## Creating CMS users + +To access the Wagtail CMS at http://localhost:8000/admin, you will need to create a login: + +```bash +docker-compose run --rm app python manage.py createsuperuser +``` diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/cookiecutter.json b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/cookiecutter.json deleted file mode 100644 index 1234cdf..0000000 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/cookiecutter.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "project_name": "Project Name", - "project_slug": "Project Slug", - "project_site_name": "Site Name" -} From 9bab2bb5bc766cf6e8fcaa7a1a3a65562776b5b0 Mon Sep 17 00:00:00 2001 From: msj Date: Thu, 7 Apr 2022 14:44:24 -0400 Subject: [PATCH 27/47] responding to PR comments --- .../workflows/publish_docker_image.yml | 19 ++++++++++++++ .../{{ cookiecutter.app_name }}/README.md | 25 ++++++++----------- .../docker-compose.yml | 4 ++- .../docker-entrypoint.sh | 14 +++++++++++ .../{{ cookiecutter.app_name }}/env.example | 12 +++++++++ .../tests/conftest.py | 9 ++++++- .../fixtures/initial_cms_content.json | 0 .../initial_cms_content_custom_pages.json | 0 .../static/js/{hello-react.js => base.js} | 0 .../static/js/components/.gitkeep | 0 10 files changed, 66 insertions(+), 17 deletions(-) create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.github/workflows/publish_docker_image.yml create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/env.example create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content.json create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content_custom_pages.json rename docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/{hello-react.js => base.js} (100%) create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/components/.gitkeep diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.github/workflows/publish_docker_image.yml b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.github/workflows/publish_docker_image.yml new file mode 100644 index 0000000..0a924d3 --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/.github/workflows/publish_docker_image.yml @@ -0,0 +1,19 @@ +name: Publish Docker image +on: + workflow_dispatch: +jobs: + push_to_registry: + name: Push Docker image to GitHub Packages + runs-on: ubuntu-latest + steps: + - name: Login to GitHub Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: {% raw %}${{ github.actor }}{% endraw %} + password: {% raw %}${{ secrets.GITHUB_TOKEN }}{% endraw %} + - name: Push to GitHub Packages + uses: docker/build-push-action@v2 + with: + push: true + tags: ghcr.io/{% raw %}${{ github.repository }}{% endraw %}:latest diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md index fa0a7fd..b575a7e 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md @@ -13,6 +13,12 @@ docker-compose run --rm app python manage.py makemigrations ```bash docker-compose run --rm app python manage.py migrate ``` + +Then run: +```bash +mv env.example .env +``` + ### Initial Docker Run When running `docker-compose up` for the first time, you may run into a database connection @@ -68,23 +74,11 @@ When working on the styles, images and templates for this site, here are the pla * Templates: Located in `{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/` and use the [Django template language](https://docs.djangoproject.com/en/3.2/topics/templates/). `base.html` is the base page template, which contain the header and footer. * CSS: This site uses [Bootstrap 4.6](https://getbootstrap.com/docs/4.6/getting-started/introduction/) for its base sytles. All additional style customizations should be placed in `{{ cookiecutter.module_name }}/static/css/custom.css` -* Javascript: This site uses [jQuery 3.6](https://jquery.com/) and [Bootstrap 4.6](https://getbootstrap.com/docs/4.6/getting-started/javascript/). Custom javascript should be placed in `{{ cookiecutter.module_name }}/static/js/base.js`. +* Javascript: This site uses [React 17.0.2](https://reactjs.org/), [jQuery 3.6](https://jquery.com/) and [Bootstrap 4.6](https://getbootstrap.com/docs/4.6/getting-started/javascript/). Custom javascript should be placed in `{{ cookiecutter.module_name }}/static/js/base.js`. * Icons: This site makes use of the free icon set from [Fontawesome 5.11](https://fontawesome.com/icons?d=gallery&p=2&m=free), which can be [used directly in any templates](https://fontawesome.com/how-to-use/on-the-web/referencing-icons/basic-use). ## Initial CMS content -The `fixtures/` directory has been intentionally left empty. Including `initial_cms_content.json` -and `initial_cms_content_custom_pages.json` would require creating a Django admin account -in advance which would introduce a security vulnerability if the admin password was not -updated. - -After initializing the database, follow the instructions below to generate the initial CMS content. - -Note: Because the initial CMS content is created using stdout, it may include extra content -at the top of the file. After creating `initial_cms_content.json` and `initial_cms_content_custom_pages.json`, -check the files. Simply remove any stdout text that precedes the opening bracket of the -CMS content list. - **To create a new dump** of all the content in the Wagtail backend, perform the following steps: 1. Back up the CMS content (except for image files) with the following 2 commands: @@ -96,14 +90,15 @@ CMS content list. --exclude=auth.permission \ --exclude=wagtailcore.groupcollectionpermission \ --exclude=wagtailcore.grouppagepermission \ - --exclude=sessions > {{ cookiecutter.module_name }}/fixtures/initial_cms_content.json + --exclude=sessions \ + -o {{ cookiecutter.module_name }}/fixtures/initial_cms_content.json ``` ```bash docker-compose run --rm app python manage.py dumpdata --natural-foreign --indent 2 \ {{ cookiecutter.module_name }}.homepage \ {{ cookiecutter.module_name }}.staticpage \ - > {{ cookiecutter.module_name }}/fixtures/initial_cms_content_custom_pages.json + -o {{ cookiecutter.module_name }}/fixtures/initial_cms_content_custom_pages.json ``` This should update the `initial_cms_content.json` file in your `{{ cookiecutter.module_name }}/fixtures` diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-compose.yml b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-compose.yml index f61188a..c227f75 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-compose.yml +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-compose.yml @@ -27,6 +27,7 @@ services: DJANGO_SECRET_KEY: reallysupersecret DJANGO_MANAGEPY_MIGRATE: "on" DJANGO_DEBUG: "True" + PGPASSWORD: postgres env_file: - .env entrypoint: /app/docker-entrypoint.sh @@ -45,8 +46,9 @@ services: # that allow you to configure the container's behavior, without writing # any additional code. Specify the name of your database, and any other # variables, here. https://hub.docker.com/_/postgres/#environment-variables - POSTGRES_DB: {{ cookiecutter.module_name }} + POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres + POSTGRES_DB: {{ cookiecutter.module_name }} volumes: # By default, Postgres instantiates an anonymous volume. Use a named # one, so your data persists beyond the life of the container. See this diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-entrypoint.sh b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-entrypoint.sh index da77a0c..d09c8c4 100755 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-entrypoint.sh +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-entrypoint.sh @@ -1,6 +1,20 @@ #!/bin/sh set -e +# https://github.com/docker-library/postgres/issues/146#issuecomment-872486465 +# If postgres isn't ready yet, wait and try again +readonly SLEEP_TIME=5 +readonly PG_HOST="{{ cookiecutter.module_name}}-postgres" +readonly PG_USER="postgres" +readonly PG_DB="{{ cookiecutter.module_name }}" + +# note: the PGPASSWORD envar is passed in +until timeout 3 psql -h $PG_HOST -U $PG_USER -c "select 1" -d $PG_DB > /dev/null +do + printf "Waiting %s seconds for PostgreSQL to come up: %s@%s/%s...\n" $SLEEP_TIME $PG_USER $PG_HOST $PG_DB + sleep $SLEEP_TIME; +done + if [ "$DJANGO_MANAGEPY_MIGRATE" = 'on' ]; then python manage.py migrate --noinput fi diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/env.example b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/env.example new file mode 100644 index 0000000..25624bb --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/env.example @@ -0,0 +1,12 @@ +# Fill in AWS_* values to enable remote storage in the specified S3 bucket +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_STORAGE_BUCKET_NAME= + +# Fill in DJANGO_EMAIL_* values to enable email sending from your local +# instance. DataMade developers wishing to use testing@datamade.us need only +# provide a valid Mandrill API key for DJANGO_EMAIL_HOST_PASSWORD. +DJANGO_EMAIL_HOST= +DJANGO_EMAIL_PORT= +DJANGO_EMAIL_HOST_USER= +DJANGO_EMAIL_HOST_PASSWORD= diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/tests/conftest.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/tests/conftest.py index ad27c36..968826b 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/tests/conftest.py +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/tests/conftest.py @@ -1 +1,8 @@ -# Define test fixtures here. +from django.core.management import call_command +import pytest + + +@pytest.fixture +def django_db_setup(django_db_setup, django_db_blocker): + with django_db_blocker.unblock(): + call_command('load_cms_content') diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content.json b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content.json new file mode 100644 index 0000000..e69de29 diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content_custom_pages.json b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content_custom_pages.json new file mode 100644 index 0000000..e69de29 diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/hello-react.js b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/base.js similarity index 100% rename from docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/hello-react.js rename to docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/base.js diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/components/.gitkeep b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/components/.gitkeep new file mode 100644 index 0000000..e69de29 From 32ca4e8a0ab593b9edfd15123f7f107c48d10a02 Mon Sep 17 00:00:00 2001 From: msj Date: Thu, 21 Apr 2022 15:12:45 -0400 Subject: [PATCH 28/47] Fixing file name mismatches and updating README --- .../{{ cookiecutter.app_name }}/README.md | 37 ++++------------ .../migrations/0001_initial.py | 44 +++++++++++++++++++ .../static/js/{base.js => App.js} | 0 .../{hello_react.html => react_page.html} | 2 +- .../{{ cookiecutter.module_name }}/urls.py | 4 +- .../{{ cookiecutter.module_name }}/views.py | 8 ++-- 6 files changed, 60 insertions(+), 35 deletions(-) create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/migrations/0001_initial.py rename docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/{base.js => App.js} (100%) rename docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/{hello_react.html => react_page.html} (91%) diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md index b575a7e..447206c 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md @@ -1,31 +1,12 @@ # {{ cookiecutter.app_verbose_name }} -## Cookiecutter Notes - -### Preparing for Docker - -Before building the Docker container, initialize the database: - -```bash -docker-compose run --rm app python manage.py makemigrations -``` +## Preparing for Docker -```bash -docker-compose run --rm app python manage.py migrate -``` - -Then run: +Before building the Docker container, run ```bash mv env.example .env ``` -### Initial Docker Run - -When running `docker-compose up` for the first time, you may run into a database connection -error that causes Docker to hang. Simply force quit Docker with `Ctrl-C` and re-run -`docker-compose up`. - - ## Developing Development requires a local installation of [Docker](https://docs.docker.com/install/) @@ -79,6 +60,13 @@ When working on the styles, images and templates for this site, here are the pla ## Initial CMS content +This template does not include a default user or starter pages in the fixtures directory, so you'll need +to create an admin user and initialize initial content as needed by your site: + +```bash +docker-compose run --rm app python manage.py createsuperuser +``` + **To create a new dump** of all the content in the Wagtail backend, perform the following steps: 1. Back up the CMS content (except for image files) with the following 2 commands: @@ -132,10 +120,3 @@ This will update the default image files by copying your local Wagtail images fo > {{ cookiecutter.module_name }}/fixtures/initial_cms_content_custom_pages.json ``` -## Creating CMS users - -To access the Wagtail CMS at http://localhost:8000/admin, you will need to create a login: - -```bash -docker-compose run --rm app python manage.py createsuperuser -``` diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/migrations/0001_initial.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/migrations/0001_initial.py new file mode 100644 index 0000000..f56bf2f --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/migrations/0001_initial.py @@ -0,0 +1,44 @@ +# Generated by Django 3.2.11 on 2022-04-21 18:23 + +from django.db import migrations, models +import django.db.models.deletion +import my_proj.blocks +import wagtail.core.blocks +import wagtail.core.fields +import wagtail.embeds.blocks +import wagtail.images.blocks + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('wagtailcore', '0066_collection_management_permissions'), + ] + + operations = [ + migrations.CreateModel( + name='HomePage', + fields=[ + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('body', wagtail.core.fields.StreamField([('paragraph', wagtail.core.blocks.RichTextBlock()), ('heading', wagtail.core.blocks.CharBlock(form_classname='full title', icon='title')), ('accordion', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.CharBlock()), ('paragraph', wagtail.core.blocks.RichTextBlock())]), icon='list-ul')), ('button', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.CharBlock()), ('link', wagtail.core.blocks.URLBlock())])), ('callout', wagtail.core.blocks.StructBlock([('paragraph', wagtail.core.blocks.RichTextBlock())])), ('table', my_proj.blocks.TableBlock()), ('embedded_media', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.CharBlock(required=False)), ('media_link', wagtail.embeds.blocks.EmbedBlock()), ('description', wagtail.core.blocks.TextBlock(required=False))], icon='media')), ('team_members', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('first_name', wagtail.core.blocks.CharBlock()), ('last_name', wagtail.core.blocks.CharBlock()), ('position', wagtail.core.blocks.CharBlock()), ('photo', wagtail.images.blocks.ImageChooserBlock(required=False))]), icon='group'))])), + ('intro_text', wagtail.core.fields.RichTextField(blank=True)), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='StaticPage', + fields=[ + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('body', wagtail.core.fields.StreamField([('paragraph', wagtail.core.blocks.RichTextBlock()), ('heading', wagtail.core.blocks.CharBlock(form_classname='full title', icon='title')), ('accordion', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.CharBlock()), ('paragraph', wagtail.core.blocks.RichTextBlock())]), icon='list-ul')), ('button', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.CharBlock()), ('link', wagtail.core.blocks.URLBlock())])), ('callout', wagtail.core.blocks.StructBlock([('paragraph', wagtail.core.blocks.RichTextBlock())])), ('table', my_proj.blocks.TableBlock()), ('embedded_media', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.CharBlock(required=False)), ('media_link', wagtail.embeds.blocks.EmbedBlock()), ('description', wagtail.core.blocks.TextBlock(required=False))], icon='media')), ('team_members', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('first_name', wagtail.core.blocks.CharBlock()), ('last_name', wagtail.core.blocks.CharBlock()), ('position', wagtail.core.blocks.CharBlock()), ('photo', wagtail.images.blocks.ImageChooserBlock(required=False))]), icon='group'))])), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + ] diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/base.js b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/App.js similarity index 100% rename from docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/base.js rename to docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/App.js diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/hello_react.html b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/react_page.html similarity index 91% rename from docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/hello_react.html rename to docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/react_page.html index a8bad26..b6003cc 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/hello_react.html +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/react_page.html @@ -22,6 +22,6 @@ window.reactMount = document.getElementById('App') {% compress js %} - + {% endcompress %} {% endblock %}{% endraw %} diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/urls.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/urls.py index 8702042..d5b02f2 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/urls.py +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/urls.py @@ -18,7 +18,7 @@ from django.conf import settings from django.conf.urls.static import static -from .views import HelloReact +from .views import ReactView from wagtail.admin import urls as wagtailadmin_urls from wagtail.core import urls as wagtail_urls @@ -29,8 +29,8 @@ path('django-admin/', admin.site.urls), path('admin/', include(wagtailadmin_urls)), path('documents/', include(wagtaildocs_urls)), + path('react-page/', ReactView.as_view(), name='react-page'), path("", include(wagtail_urls)), - path('hello-react', HelloReact.as_view(), name='hello-react'), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) handler404 = '{{ cookiecutter.module_name }}.views.page_not_found' diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/views.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/views.py index 888bfaf..bdefb3c 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/views.py +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/views.py @@ -2,10 +2,10 @@ from django.views.generic import TemplateView -class HelloReact(TemplateView): - title = 'Hello React View' - template_name = '{{ cookiecutter.module_name }}/hello_react.html' - component = 'js/hello-react.js' +class ReactView(TemplateView): + title = 'React Page' + template_name = '{{ cookiecutter.module_name }}/react_page.html' + component = 'js/App.js' def get_context_data(self, *args, **kwargs): context = super().get_context_data(*args, **kwargs) From d6af9f5db907c0739088356ac2bb9bcf53dc3b83 Mon Sep 17 00:00:00 2001 From: msj Date: Thu, 19 May 2022 09:02:12 -0400 Subject: [PATCH 29/47] Use official postgis docker image --- .../{{ cookiecutter.app_name }}/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-compose.yml b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-compose.yml index c227f75..cda87f0 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-compose.yml +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/docker-compose.yml @@ -35,7 +35,7 @@ services: postgres: container_name: {{ cookiecutter.module_name }}-postgres - image: mdillon/postgis:11 + image: postgis/postgis healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 10s From 6908fb44c9c98845fe6b9617a15f31d2efc64716 Mon Sep 17 00:00:00 2001 From: msj Date: Thu, 19 May 2022 09:06:19 -0400 Subject: [PATCH 30/47] Use cookiecutter module_name template variable in initial migration --- .../migrations/0001_initial.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/migrations/0001_initial.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/migrations/0001_initial.py index f56bf2f..c9a5412 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/migrations/0001_initial.py +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/migrations/0001_initial.py @@ -2,7 +2,7 @@ from django.db import migrations, models import django.db.models.deletion -import my_proj.blocks +import {{ cookiecutter.module_name }}.blocks import wagtail.core.blocks import wagtail.core.fields import wagtail.embeds.blocks @@ -22,7 +22,7 @@ class Migration(migrations.Migration): name='HomePage', fields=[ ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), - ('body', wagtail.core.fields.StreamField([('paragraph', wagtail.core.blocks.RichTextBlock()), ('heading', wagtail.core.blocks.CharBlock(form_classname='full title', icon='title')), ('accordion', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.CharBlock()), ('paragraph', wagtail.core.blocks.RichTextBlock())]), icon='list-ul')), ('button', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.CharBlock()), ('link', wagtail.core.blocks.URLBlock())])), ('callout', wagtail.core.blocks.StructBlock([('paragraph', wagtail.core.blocks.RichTextBlock())])), ('table', my_proj.blocks.TableBlock()), ('embedded_media', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.CharBlock(required=False)), ('media_link', wagtail.embeds.blocks.EmbedBlock()), ('description', wagtail.core.blocks.TextBlock(required=False))], icon='media')), ('team_members', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('first_name', wagtail.core.blocks.CharBlock()), ('last_name', wagtail.core.blocks.CharBlock()), ('position', wagtail.core.blocks.CharBlock()), ('photo', wagtail.images.blocks.ImageChooserBlock(required=False))]), icon='group'))])), + ('body', wagtail.core.fields.StreamField([('paragraph', wagtail.core.blocks.RichTextBlock()), ('heading', wagtail.core.blocks.CharBlock(form_classname='full title', icon='title')), ('accordion', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.CharBlock()), ('paragraph', wagtail.core.blocks.RichTextBlock())]), icon='list-ul')), ('button', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.CharBlock()), ('link', wagtail.core.blocks.URLBlock())])), ('callout', wagtail.core.blocks.StructBlock([('paragraph', wagtail.core.blocks.RichTextBlock())])), ('table', {{ cookiecutter.module_name }}.blocks.TableBlock()), ('embedded_media', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.CharBlock(required=False)), ('media_link', wagtail.embeds.blocks.EmbedBlock()), ('description', wagtail.core.blocks.TextBlock(required=False))], icon='media')), ('team_members', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('first_name', wagtail.core.blocks.CharBlock()), ('last_name', wagtail.core.blocks.CharBlock()), ('position', wagtail.core.blocks.CharBlock()), ('photo', wagtail.images.blocks.ImageChooserBlock(required=False))]), icon='group'))])), ('intro_text', wagtail.core.fields.RichTextField(blank=True)), ], options={ @@ -34,7 +34,7 @@ class Migration(migrations.Migration): name='StaticPage', fields=[ ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), - ('body', wagtail.core.fields.StreamField([('paragraph', wagtail.core.blocks.RichTextBlock()), ('heading', wagtail.core.blocks.CharBlock(form_classname='full title', icon='title')), ('accordion', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.CharBlock()), ('paragraph', wagtail.core.blocks.RichTextBlock())]), icon='list-ul')), ('button', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.CharBlock()), ('link', wagtail.core.blocks.URLBlock())])), ('callout', wagtail.core.blocks.StructBlock([('paragraph', wagtail.core.blocks.RichTextBlock())])), ('table', my_proj.blocks.TableBlock()), ('embedded_media', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.CharBlock(required=False)), ('media_link', wagtail.embeds.blocks.EmbedBlock()), ('description', wagtail.core.blocks.TextBlock(required=False))], icon='media')), ('team_members', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('first_name', wagtail.core.blocks.CharBlock()), ('last_name', wagtail.core.blocks.CharBlock()), ('position', wagtail.core.blocks.CharBlock()), ('photo', wagtail.images.blocks.ImageChooserBlock(required=False))]), icon='group'))])), + ('body', wagtail.core.fields.StreamField([('paragraph', wagtail.core.blocks.RichTextBlock()), ('heading', wagtail.core.blocks.CharBlock(form_classname='full title', icon='title')), ('accordion', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.CharBlock()), ('paragraph', wagtail.core.blocks.RichTextBlock())]), icon='list-ul')), ('button', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.CharBlock()), ('link', wagtail.core.blocks.URLBlock())])), ('callout', wagtail.core.blocks.StructBlock([('paragraph', wagtail.core.blocks.RichTextBlock())])), ('table', {{ cookiecutter.module_name }}.blocks.TableBlock()), ('embedded_media', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.CharBlock(required=False)), ('media_link', wagtail.embeds.blocks.EmbedBlock()), ('description', wagtail.core.blocks.TextBlock(required=False))], icon='media')), ('team_members', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('first_name', wagtail.core.blocks.CharBlock()), ('last_name', wagtail.core.blocks.CharBlock()), ('position', wagtail.core.blocks.CharBlock()), ('photo', wagtail.images.blocks.ImageChooserBlock(required=False))]), icon='group'))])), ], options={ 'abstract': False, From fb2460e2ba6a0c9408d8d1ca4138615ffb43bba8 Mon Sep 17 00:00:00 2001 From: msj Date: Thu, 19 May 2022 09:50:52 -0400 Subject: [PATCH 31/47] Fix initial content fixtures --- .../fixtures/initial_cms_content.json | 2 ++ .../fixtures/initial_cms_content_custom_pages.json | 2 ++ 2 files changed, 4 insertions(+) diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content.json b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content.json index e69de29..0d4f101 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content.json +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content.json @@ -0,0 +1,2 @@ +[ +] diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content_custom_pages.json b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content_custom_pages.json index e69de29..0d4f101 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content_custom_pages.json +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content_custom_pages.json @@ -0,0 +1,2 @@ +[ +] From c14bc83cc69a50276214c0010f008c8733f41059 Mon Sep 17 00:00:00 2001 From: msj Date: Thu, 19 May 2022 09:51:44 -0400 Subject: [PATCH 32/47] Fix dumpdata command in readme --- .../new-wagtail-app/{{ cookiecutter.app_name }}/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md index 447206c..0cd49da 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md @@ -78,8 +78,7 @@ docker-compose run --rm app python manage.py createsuperuser --exclude=auth.permission \ --exclude=wagtailcore.groupcollectionpermission \ --exclude=wagtailcore.grouppagepermission \ - --exclude=sessions \ - -o {{ cookiecutter.module_name }}/fixtures/initial_cms_content.json + --exclude=sessions -o {{ cookiecutter.module_name }}/fixtures/initial_cms_content.json ``` ```bash From 3fab103358a7fd66290f824f54a805163d5dd6b8 Mon Sep 17 00:00:00 2001 From: msj Date: Thu, 19 May 2022 10:48:18 -0400 Subject: [PATCH 33/47] Updated npm packages --- .../{{ cookiecutter.app_name }}/package.json | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/package.json b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/package.json index 68ec51c..237ed4b 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/package.json +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/package.json @@ -3,29 +3,29 @@ "version": "0.0.0", "description": "JavaScript development setup for {{ cookiecutter.module_name }}", "dependencies": { - "@babel/cli": "^7.8.4", - "@babel/core": "^7.9.6", - "@babel/preset-env": "^7.9.6", - "@babel/preset-react": "^7.9.4", + "@babel/cli": "^7.17.10", + "@babel/core": "^7.17.12", + "@babel/preset-env": "^7.17.12", + "@babel/preset-react": "^7.17.12", "babel-preset-env": "^1.7.0", "babelify": "^10.0.0", - "browserify": "^16.5.0", - "leaflet": "^1.7.1", + "browserify": "^17.0.0", + "leaflet": "^1.8.0", "leaflet-loading": "^0.1.24", - "object-hash": "^2.2.0", - "react": "^17.0.2", - "react-dom": "^17.0.2", + "object-hash": "^3.0.0", + "react": "^18.1.0", + "react-dom": "^18.1.0", "react-dropdown-select": "^4.7.4", - "react-leaflet": "^3.2.2", + "react-leaflet": "^4.0.0", "react-select": "^5.1.0", "typed.js": "^2.0.12" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^4.8.1", - "@typescript-eslint/parser": "^4.8.1", - "babel-eslint": "^10.1.0", + "@typescript-eslint/eslint-plugin": "^5.25.0", + "@typescript-eslint/parser": "^5.25.0", + "@babel/eslint-parser": "^7.17.0", "eslint": "^8.6.0", - "eslint-config-react-app": "^6.0.0", + "eslint-config-react-app": "^7.0.1", "eslint-plugin-flowtype": "^5.2.0", "eslint-plugin-import": "^2.22.1", "eslint-plugin-jsx-a11y": "^6.4.1", From ed202df07089ab94e8dec9450d449d1184b02458 Mon Sep 17 00:00:00 2001 From: msj Date: Thu, 19 May 2022 11:06:22 -0400 Subject: [PATCH 34/47] Use React 18 style component mount --- .../{{ cookiecutter.module_name }}/static/js/App.js | 9 ++++----- .../{{ cookiecutter.module_name }}/react_page.html | 7 +------ 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/App.js b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/App.js index aec09e7..da1f473 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/App.js +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/js/App.js @@ -1,5 +1,5 @@ import React from 'react' -import ReactDOM from 'react-dom' +import { createRoot } from 'react-dom/client' function Home() { return ( @@ -7,7 +7,6 @@ function Home() { ) } -ReactDOM.render( - React.createElement(Home, window.props), - window.reactMount, -) +const container = document.getElementById('App') +const root = createRoot(container) +root.render() diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/react_page.html b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/react_page.html index b6003cc..fef1bbc 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/react_page.html +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/react_page.html @@ -6,7 +6,7 @@ {% raw %}{% block body %}{% endraw %}
- +


Loading components...

@@ -16,11 +16,6 @@ {% raw %}{% block extra_js %} {% load compress %} - {{ props|json_script:"props" }} - {% compress js %} {% endcompress %} From 70cc728bf73df6df24f6f90fc2f64e6b7c3cc0f5 Mon Sep 17 00:00:00 2001 From: msj Date: Thu, 19 May 2022 12:08:53 -0400 Subject: [PATCH 35/47] Update python packages --- .../requirements.txt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/requirements.txt b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/requirements.txt index d449156..23e3d52 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/requirements.txt +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/requirements.txt @@ -1,18 +1,18 @@ Django==3.2.11 -psycopg2==2.8.6 -gunicorn==20.0.4 +psycopg2==2.9.3 +gunicorn==20.1.0 dj-database-url==0.5.0 whitenoise==5.2.0 -django-compressor==2.4 -django-storages==1.11.1 -boto3==1.16.49 +django-compressor==4.0 +django-storages==1.12.3 +boto3==1.23.3 sentry-sdk==0.20.3 -wagtail==2.15.2 -csvkit==1.0.3 +wagtail==3.0 +csvkit==1.0.7 pytest==6.2.2 -pytest-django==4.1.0 -pytest-mock==3.5.1 +pytest-django==4.5.2 +pytest-mock==3.7.0 flake8==3.8.4 pip-chill==1.0.1 From f934bd737e022f2ac6b40279c7251bb21baa3298 Mon Sep 17 00:00:00 2001 From: msj Date: Thu, 19 May 2022 12:16:27 -0400 Subject: [PATCH 36/47] Add bootstrap files --- .../static/css/bootstrap.css.map | 1 + .../static/css/bootstrap.min.css | 4 ++-- .../static/css/bootstrap.min.css.map | 1 - 3 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/css/bootstrap.css.map delete mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/css/bootstrap.min.css.map diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/css/bootstrap.css.map b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/css/bootstrap.css.map new file mode 100644 index 0000000..2003dae --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/static/css/bootstrap.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap.scss","bootstrap.css","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_functions.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_interactions.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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;AFxH1B;;AEgIA;EACE,aAAa;EACb,0BAA0B;AF7H5B;;AEoIA;EACE,qBAAqB;AFjIvB;;AEoIA;EACE,kBAAkB;EAClB,eAAe;AFjIjB;;AEoIA;EACE,aAAa;AFjIf;;AAEA;EEqIE,wBAAwB;AFnI1B;;AMzVA;;EAEE,qBHqSwC;EGnSxC,gBHqS+B;EGpS/B,gBHqS+B;AHsDjC;;AMvVA;EFqKM,iBAAW;AJsLjB;;AM1VA;EFoKM,eAAW;AJ0LjB;;AM7VA;EFmKM,kBAAW;AJ8LjB;;AMhWA;EFkKM,iBAAW;AJkMjB;;AMnWA;EFiKM,kBAAW;AJsMjB;;AMtWA;EFgKM,eAAW;AJ0MjB;;AMxWA;EF8JM,kBAAW;EE5Jf,gBHuS+B;AHoEjC;;AMvWA;EFwJM,eAAW;EEtJf,gBH0R+B;EGzR/B,gBHiR+B;AHyFjC;;AMxWA;EFmJM,iBAAW;EEjJf,gBHsR+B;EGrR/B,gBH4Q+B;AH+FjC;;AMzWA;EF8IM,iBAAW;EE5If,gBHkR+B;EGjR/B,gBHuQ+B;AHqGjC;;AM1WA;EFyIM,iBAAW;EEvIf,gBH8Q+B;EG7Q/B,gBHkQ+B;AH2GjC;;AEhVA;EIpBE,gBHgFW;EG/EX,mBH+EW;EG9EX,SAAS;EACT,wCHzCa;AHiZf;;AMhWA;;EFkGI,cAAW;EE/Fb,gBH0N+B;AHyIjC;;AMhWA;;EAEE,cHkQgC;EGjQhC,yBH0QmC;AHyFrC;;AM3VA;EC/EE,eAAe;EACf,gBAAgB;AP8alB;;AM3VA;ECpFE,eAAe;EACf,gBAAgB;APmblB;;AM7VA;EACE,qBAAqB;ANgWvB;;AMjWA;EAII,oBHoP+B;AH6GnC;;AMvVA;EF2DI,cAAW;EEzDb,yBAAyB;AN0V3B;;AMtVA;EACE,mBHuBW;EC6CP,kBAAW;AJsRjB;;AMtVA;EACE,cAAc;EF+CZ,cAAW;EE7Cb,cH1GgB;AHmclB;;AM5VA;EAMI,qBAAqB;AN0VzB;;AQ7cA;ECIE,eAAe;EAGf,YAAY;AT2cd;;AQ5cA;EACE,gBLogCwC;EKngCxC,sBLRa;EKSb,yBLNgB;EOQd,sBP6NgC;EMpOlC,eAAe;EAGf,YAAY;ATodd;;AQtcA;EAEE,qBAAqB;ARwcvB;;AQrcA;EACE,qBAA2B;EAC3B,cAAc;ARwchB;;AQrcA;EJ8HI,cAAW;EI5Hb,cL3BgB;AHmelB;;AW/eA;EPmKI,gBAAW;EOjKb,cRmCe;EQlCf,qBAAqB;AXkfvB;;AW/eE;EACE,cAAc;AXkflB;;AW7eA;EACE,sBRylCuC;ECn8BrC,gBAAW;EOpJb,WRTa;EQUb,yBRDgB;EOEd,qBP+N+B;AHiRnC;;AWrfA;EASI,UAAU;EP8IV,eAAW;EO5IX,gBRwQ6B;AHwOjC;;AExSA;ESjME,cAAc;EPqIZ,gBAAW;EOnIb,cRjBgB;AH8flB;;AWhfA;EPsII,kBAAW;EO9HX,cAAc;EACd,kBAAkB;AX6etB;;AWxeA;EACE,iBRgkCuC;EQ/jCvC,kBAAkB;AX2epB;;AYnhBE;;;;;;ECDA,WAAW;EACX,mBAA2B;EAC3B,kBAA0B;EAC1B,kBAAkB;EAClB,iBAAiB;Ab6hBnB;;Ac1eI;EFzCE;IACE,gBT+LG;EHwVT;AACF;;AchfI;EFzCE;IACE,gBTgMG;EH6VT;AACF;;ActfI;EFzCE;IACE,gBTiMG;EHkWT;AACF;;Ac5fI;EFzCE;IACE,iBTkMI;EHuWV;AACF;;AY9gBE;ECnCA,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,mBAA2B;EAC3B,kBAA0B;AbqjB5B;;AY/gBE;EACE,eAAe;EACf,cAAc;AZkhBlB;;AYphBE;;EAMI,gBAAgB;EAChB,eAAe;AZmhBrB;;AezkBE;;;;;;EACE,kBAAkB;EAClB,WAAW;EACX,mBAA2B;EAC3B,kBAA0B;AfilB9B;;Ae3jBM;EACE,0BAAa;EAAb,aAAa;EACb,oBAAY;EAAZ,YAAY;EACZ,eAAe;Af8jBvB;;AezjBU;EFwBN,kBTuBqD;ESvBrD,cTuBqD;EStBrD,eTsBqD;AJ+gBzD;;Ae9jBU;EFwBN,iBTuBqD;ESvBrD,aTuBqD;EStBrD,cTsBqD;AJohBzD;;AenkBU;EFwBN,wBTuBqD;ESvBrD,oBTuBqD;EStBrD,qBTsBqD;AJyhBzD;;AexkBU;EFwBN,iBTuBqD;ESvBrD,aTuBqD;EStBrD,cTsBqD;AJ8hBzD;;Ae7kBU;EFwBN,iBTuBqD;ESvBrD,aTuBqD;EStBrD,cTsBqD;AJmiBzD;;AellBU;EFwBN,wBTuBqD;ESvBrD,oBTuBqD;EStBrD,qBTsBqD;AJwiBzD;;AejlBM;EFCJ,kBAAc;EAAd,cAAc;EACd,WAAW;EACX,eAAe;AbolBjB;;AejlBU;EFbR,uBAA6C;EAA7C,mBAA6C;EAI7C,oBAA8C;Ab+lBhD;;AetlBU;EFbR,wBAA6C;EAA7C,oBAA6C;EAI7C,qBAA8C;AbomBhD;;Ae3lBU;EFbR,iBAA6C;EAA7C,aAA6C;EAI7C,cAA8C;AbymBhD;;AehmBU;EFbR,wBAA6C;EAA7C,oBAA6C;EAI7C,qBAA8C;Ab8mBhD;;AermBU;EFbR,wBAA6C;EAA7C,oBAA6C;EAI7C,qBAA8C;AbmnBhD;;Ae1mBU;EFbR,iBAA6C;EAA7C,aAA6C;EAI7C,cAA8C;AbwnBhD;;Ae/mBU;EFbR,wBAA6C;EAA7C,oBAA6C;EAI7C,qBAA8C;Ab6nBhD;;AepnBU;EFbR,wBAA6C;EAA7C,oBAA6C;EAI7C,qBAA8C;AbkoBhD;;AeznBU;EFbR,iBAA6C;EAA7C,aAA6C;EAI7C,cAA8C;AbuoBhD;;Ae9nBU;EFbR,wBAA6C;EAA7C,oBAA6C;EAI7C,qBAA8C;Ab4oBhD;;AenoBU;EFbR,wBAA6C;EAA7C,oBAA6C;EAI7C,qBAA8C;AbipBhD;;AexoBU;EFbR,kBAA6C;EAA7C,cAA6C;EAI7C,eAA8C;AbspBhD;;AevoBM;EAAwB,kBAAS;EAAT,SAAS;Af2oBvC;;AezoBM;EAAuB,kBZmKG;EYnKH,SZmKG;AH0ehC;;Ae1oBQ;EAAwB,iBADZ;EACY,QADZ;Af+oBpB;;Ae9oBQ;EAAwB,iBADZ;EACY,QADZ;AfmpBpB;;AelpBQ;EAAwB,iBADZ;EACY,QADZ;AfupBpB;;AetpBQ;EAAwB,iBADZ;EACY,QADZ;Af2pBpB;;Ae1pBQ;EAAwB,iBADZ;EACY,QADZ;Af+pBpB;;Ae9pBQ;EAAwB,iBADZ;EACY,QADZ;AfmqBpB;;AelqBQ;EAAwB,iBADZ;EACY,QADZ;AfuqBpB;;AetqBQ;EAAwB,iBADZ;EACY,QADZ;Af2qBpB;;Ae1qBQ;EAAwB,iBADZ;EACY,QADZ;Af+qBpB;;Ae9qBQ;EAAwB,iBADZ;EACY,QADZ;AfmrBpB;;AelrBQ;EAAwB,kBADZ;EACY,SADZ;AfurBpB;;AetrBQ;EAAwB,kBADZ;EACY,SADZ;Af2rBpB;;Ae1rBQ;EAAwB,kBADZ;EACY,SADZ;Af+rBpB;;AevrBY;EFhBV,sBAA8C;Ab2sBhD;;Ae3rBY;EFhBV,uBAA8C;Ab+sBhD;;Ae/rBY;EFhBV,gBAA8C;AbmtBhD;;AensBY;EFhBV,uBAA8C;AbutBhD;;AevsBY;EFhBV,uBAA8C;Ab2tBhD;;Ae3sBY;EFhBV,gBAA8C;Ab+tBhD;;Ae/sBY;EFhBV,uBAA8C;AbmuBhD;;AentBY;EFhBV,uBAA8C;AbuuBhD;;AevtBY;EFhBV,gBAA8C;Ab2uBhD;;Ae3tBY;EFhBV,uBAA8C;Ab+uBhD;;Ae/tBY;EFhBV,uBAA8C;AbmvBhD;;Ac9uBI;EC3BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;Ef6wBrB;EexwBQ;IFwBN,kBTuBqD;ISvBrD,cTuBqD;IStBrD,eTsBqD;EJ6tBvD;Ee5wBQ;IFwBN,iBTuBqD;ISvBrD,aTuBqD;IStBrD,cTsBqD;EJiuBvD;EehxBQ;IFwBN,wBTuBqD;ISvBrD,oBTuBqD;IStBrD,qBTsBqD;EJquBvD;EepxBQ;IFwBN,iBTuBqD;ISvBrD,aTuBqD;IStBrD,cTsBqD;EJyuBvD;EexxBQ;IFwBN,iBTuBqD;ISvBrD,aTuBqD;IStBrD,cTsBqD;EJ6uBvD;Ee5xBQ;IFwBN,wBTuBqD;ISvBrD,oBTuBqD;IStBrD,qBTsBqD;EJivBvD;Ee1xBI;IFCJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;Eb4xBf;EezxBQ;IFbR,uBAA6C;IAA7C,mBAA6C;IAI7C,oBAA8C;EbsyB9C;Ee7xBQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Eb0yB9C;EejyBQ;IFbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;Eb8yB9C;EeryBQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EbkzB9C;EezyBQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EbszB9C;Ee7yBQ;IFbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;Eb0zB9C;EejzBQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Eb8zB9C;EerzBQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Ebk0B9C;EezzBQ;IFbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;Ebs0B9C;Ee7zBQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Eb00B9C;Eej0BQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Eb80B9C;Eer0BQ;IFbR,kBAA6C;IAA7C,cAA6C;IAI7C,eAA8C;Ebk1B9C;Een0BI;IAAwB,kBAAS;IAAT,SAAS;Efs0BrC;Eep0BI;IAAuB,kBZmKG;IYnKH,SZmKG;EHoqB9B;Eep0BM;IAAwB,iBADZ;IACY,QADZ;Efw0BlB;Eev0BM;IAAwB,iBADZ;IACY,QADZ;Ef20BlB;Ee10BM;IAAwB,iBADZ;IACY,QADZ;Ef80BlB;Ee70BM;IAAwB,iBADZ;IACY,QADZ;Efi1BlB;Eeh1BM;IAAwB,iBADZ;IACY,QADZ;Efo1BlB;Een1BM;IAAwB,iBADZ;IACY,QADZ;Efu1BlB;Eet1BM;IAAwB,iBADZ;IACY,QADZ;Ef01BlB;Eez1BM;IAAwB,iBADZ;IACY,QADZ;Ef61BlB;Ee51BM;IAAwB,iBADZ;IACY,QADZ;Efg2BlB;Ee/1BM;IAAwB,iBADZ;IACY,QADZ;Efm2BlB;Eel2BM;IAAwB,kBADZ;IACY,SADZ;Efs2BlB;Eer2BM;IAAwB,kBADZ;IACY,SADZ;Efy2BlB;Eex2BM;IAAwB,kBADZ;IACY,SADZ;Ef42BlB;Eep2BU;IFhBV,cAA4B;Ebu3B5B;Eev2BU;IFhBV,sBAA8C;Eb03B9C;Ee12BU;IFhBV,uBAA8C;Eb63B9C;Ee72BU;IFhBV,gBAA8C;Ebg4B9C;Eeh3BU;IFhBV,uBAA8C;Ebm4B9C;Een3BU;IFhBV,uBAA8C;Ebs4B9C;Eet3BU;IFhBV,gBAA8C;Eby4B9C;Eez3BU;IFhBV,uBAA8C;Eb44B9C;Ee53BU;IFhBV,uBAA8C;Eb+4B9C;Ee/3BU;IFhBV,gBAA8C;Ebk5B9C;Eel4BU;IFhBV,uBAA8C;Ebq5B9C;Eer4BU;IFhBV,uBAA8C;Ebw5B9C;AACF;;Acp5BI;EC3BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;Efm7BrB;Ee96BQ;IFwBN,kBTuBqD;ISvBrD,cTuBqD;IStBrD,eTsBqD;EJm4BvD;Eel7BQ;IFwBN,iBTuBqD;ISvBrD,aTuBqD;IStBrD,cTsBqD;EJu4BvD;Eet7BQ;IFwBN,wBTuBqD;ISvBrD,oBTuBqD;IStBrD,qBTsBqD;EJ24BvD;Ee17BQ;IFwBN,iBTuBqD;ISvBrD,aTuBqD;IStBrD,cTsBqD;EJ+4BvD;Ee97BQ;IFwBN,iBTuBqD;ISvBrD,aTuBqD;IStBrD,cTsBqD;EJm5BvD;Eel8BQ;IFwBN,wBTuBqD;ISvBrD,oBTuBqD;IStBrD,qBTsBqD;EJu5BvD;Eeh8BI;IFCJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;Ebk8Bf;Ee/7BQ;IFbR,uBAA6C;IAA7C,mBAA6C;IAI7C,oBAA8C;Eb48B9C;Een8BQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Ebg9B9C;Eev8BQ;IFbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;Ebo9B9C;Ee38BQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Ebw9B9C;Ee/8BQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Eb49B9C;Een9BQ;IFbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;Ebg+B9C;Eev9BQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Ebo+B9C;Ee39BQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Ebw+B9C;Ee/9BQ;IFbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;Eb4+B9C;Een+BQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Ebg/B9C;Eev+BQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Ebo/B9C;Ee3+BQ;IFbR,kBAA6C;IAA7C,cAA6C;IAI7C,eAA8C;Ebw/B9C;Eez+BI;IAAwB,kBAAS;IAAT,SAAS;Ef4+BrC;Ee1+BI;IAAuB,kBZmKG;IYnKH,SZmKG;EH00B9B;Ee1+BM;IAAwB,iBADZ;IACY,QADZ;Ef8+BlB;Ee7+BM;IAAwB,iBADZ;IACY,QADZ;Efi/BlB;Eeh/BM;IAAwB,iBADZ;IACY,QADZ;Efo/BlB;Een/BM;IAAwB,iBADZ;IACY,QADZ;Efu/BlB;Eet/BM;IAAwB,iBADZ;IACY,QADZ;Ef0/BlB;Eez/BM;IAAwB,iBADZ;IACY,QADZ;Ef6/BlB;Ee5/BM;IAAwB,iBADZ;IACY,QADZ;EfggClB;Ee//BM;IAAwB,iBADZ;IACY,QADZ;EfmgClB;EelgCM;IAAwB,iBADZ;IACY,QADZ;EfsgClB;EergCM;IAAwB,iBADZ;IACY,QADZ;EfygClB;EexgCM;IAAwB,kBADZ;IACY,SADZ;Ef4gClB;Ee3gCM;IAAwB,kBADZ;IACY,SADZ;Ef+gClB;Ee9gCM;IAAwB,kBADZ;IACY,SADZ;EfkhClB;Ee1gCU;IFhBV,cAA4B;Eb6hC5B;Ee7gCU;IFhBV,sBAA8C;EbgiC9C;EehhCU;IFhBV,uBAA8C;EbmiC9C;EenhCU;IFhBV,gBAA8C;EbsiC9C;EethCU;IFhBV,uBAA8C;EbyiC9C;EezhCU;IFhBV,uBAA8C;Eb4iC9C;Ee5hCU;IFhBV,gBAA8C;Eb+iC9C;Ee/hCU;IFhBV,uBAA8C;EbkjC9C;EeliCU;IFhBV,uBAA8C;EbqjC9C;EeriCU;IFhBV,gBAA8C;EbwjC9C;EexiCU;IFhBV,uBAA8C;Eb2jC9C;Ee3iCU;IFhBV,uBAA8C;Eb8jC9C;AACF;;Ac1jCI;EC3BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;EfylCrB;EeplCQ;IFwBN,kBTuBqD;ISvBrD,cTuBqD;IStBrD,eTsBqD;EJyiCvD;EexlCQ;IFwBN,iBTuBqD;ISvBrD,aTuBqD;IStBrD,cTsBqD;EJ6iCvD;Ee5lCQ;IFwBN,wBTuBqD;ISvBrD,oBTuBqD;IStBrD,qBTsBqD;EJijCvD;EehmCQ;IFwBN,iBTuBqD;ISvBrD,aTuBqD;IStBrD,cTsBqD;EJqjCvD;EepmCQ;IFwBN,iBTuBqD;ISvBrD,aTuBqD;IStBrD,cTsBqD;EJyjCvD;EexmCQ;IFwBN,wBTuBqD;ISvBrD,oBTuBqD;IStBrD,qBTsBqD;EJ6jCvD;EetmCI;IFCJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;EbwmCf;EermCQ;IFbR,uBAA6C;IAA7C,mBAA6C;IAI7C,oBAA8C;EbknC9C;EezmCQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EbsnC9C;Ee7mCQ;IFbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;Eb0nC9C;EejnCQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Eb8nC9C;EernCQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EbkoC9C;EeznCQ;IFbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;EbsoC9C;Ee7nCQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Eb0oC9C;EejoCQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Eb8oC9C;EeroCQ;IFbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;EbkpC9C;EezoCQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EbspC9C;Ee7oCQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Eb0pC9C;EejpCQ;IFbR,kBAA6C;IAA7C,cAA6C;IAI7C,eAA8C;Eb8pC9C;Ee/oCI;IAAwB,kBAAS;IAAT,SAAS;EfkpCrC;EehpCI;IAAuB,kBZmKG;IYnKH,SZmKG;EHg/B9B;EehpCM;IAAwB,iBADZ;IACY,QADZ;EfopClB;EenpCM;IAAwB,iBADZ;IACY,QADZ;EfupClB;EetpCM;IAAwB,iBADZ;IACY,QADZ;Ef0pClB;EezpCM;IAAwB,iBADZ;IACY,QADZ;Ef6pClB;Ee5pCM;IAAwB,iBADZ;IACY,QADZ;EfgqClB;Ee/pCM;IAAwB,iBADZ;IACY,QADZ;EfmqClB;EelqCM;IAAwB,iBADZ;IACY,QADZ;EfsqClB;EerqCM;IAAwB,iBADZ;IACY,QADZ;EfyqClB;EexqCM;IAAwB,iBADZ;IACY,QADZ;Ef4qClB;Ee3qCM;IAAwB,iBADZ;IACY,QADZ;Ef+qClB;Ee9qCM;IAAwB,kBADZ;IACY,SADZ;EfkrClB;EejrCM;IAAwB,kBADZ;IACY,SADZ;EfqrClB;EeprCM;IAAwB,kBADZ;IACY,SADZ;EfwrClB;EehrCU;IFhBV,cAA4B;EbmsC5B;EenrCU;IFhBV,sBAA8C;EbssC9C;EetrCU;IFhBV,uBAA8C;EbysC9C;EezrCU;IFhBV,gBAA8C;Eb4sC9C;Ee5rCU;IFhBV,uBAA8C;Eb+sC9C;Ee/rCU;IFhBV,uBAA8C;EbktC9C;EelsCU;IFhBV,gBAA8C;EbqtC9C;EersCU;IFhBV,uBAA8C;EbwtC9C;EexsCU;IFhBV,uBAA8C;Eb2tC9C;Ee3sCU;IFhBV,gBAA8C;Eb8tC9C;Ee9sCU;IFhBV,uBAA8C;EbiuC9C;EejtCU;IFhBV,uBAA8C;EbouC9C;AACF;;AchuCI;EC3BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;Ef+vCrB;Ee1vCQ;IFwBN,kBTuBqD;ISvBrD,cTuBqD;IStBrD,eTsBqD;EJ+sCvD;Ee9vCQ;IFwBN,iBTuBqD;ISvBrD,aTuBqD;IStBrD,cTsBqD;EJmtCvD;EelwCQ;IFwBN,wBTuBqD;ISvBrD,oBTuBqD;IStBrD,qBTsBqD;EJutCvD;EetwCQ;IFwBN,iBTuBqD;ISvBrD,aTuBqD;IStBrD,cTsBqD;EJ2tCvD;Ee1wCQ;IFwBN,iBTuBqD;ISvBrD,aTuBqD;IStBrD,cTsBqD;EJ+tCvD;Ee9wCQ;IFwBN,wBTuBqD;ISvBrD,oBTuBqD;IStBrD,qBTsBqD;EJmuCvD;Ee5wCI;IFCJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;Eb8wCf;Ee3wCQ;IFbR,uBAA6C;IAA7C,mBAA6C;IAI7C,oBAA8C;EbwxC9C;Ee/wCQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Eb4xC9C;EenxCQ;IFbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;EbgyC9C;EevxCQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EboyC9C;Ee3xCQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EbwyC9C;Ee/xCQ;IFbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;Eb4yC9C;EenyCQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EbgzC9C;EevyCQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;EbozC9C;Ee3yCQ;IFbR,iBAA6C;IAA7C,aAA6C;IAI7C,cAA8C;EbwzC9C;Ee/yCQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Eb4zC9C;EenzCQ;IFbR,wBAA6C;IAA7C,oBAA6C;IAI7C,qBAA8C;Ebg0C9C;EevzCQ;IFbR,kBAA6C;IAA7C,cAA6C;IAI7C,eAA8C;Ebo0C9C;EerzCI;IAAwB,kBAAS;IAAT,SAAS;EfwzCrC;EetzCI;IAAuB,kBZmKG;IYnKH,SZmKG;EHspC9B;EetzCM;IAAwB,iBADZ;IACY,QADZ;Ef0zClB;EezzCM;IAAwB,iBADZ;IACY,QADZ;Ef6zClB;Ee5zCM;IAAwB,iBADZ;IACY,QADZ;Efg0ClB;Ee/zCM;IAAwB,iBADZ;IACY,QADZ;Efm0ClB;Eel0CM;IAAwB,iBADZ;IACY,QADZ;Efs0ClB;Eer0CM;IAAwB,iBADZ;IACY,QADZ;Efy0ClB;Eex0CM;IAAwB,iBADZ;IACY,QADZ;Ef40ClB;Ee30CM;IAAwB,iBADZ;IACY,QADZ;Ef+0ClB;Ee90CM;IAAwB,iBADZ;IACY,QADZ;Efk1ClB;Eej1CM;IAAwB,iBADZ;IACY,QADZ;Efq1ClB;Eep1CM;IAAwB,kBADZ;IACY,SADZ;Efw1ClB;Eev1CM;IAAwB,kBADZ;IACY,SADZ;Ef21ClB;Ee11CM;IAAwB,kBADZ;IACY,SADZ;Ef81ClB;Eet1CU;IFhBV,cAA4B;Eby2C5B;Eez1CU;IFhBV,sBAA8C;Eb42C9C;Ee51CU;IFhBV,uBAA8C;Eb+2C9C;Ee/1CU;IFhBV,gBAA8C;Ebk3C9C;Eel2CU;IFhBV,uBAA8C;Ebq3C9C;Eer2CU;IFhBV,uBAA8C;Ebw3C9C;Eex2CU;IFhBV,gBAA8C;Eb23C9C;Ee32CU;IFhBV,uBAA8C;Eb83C9C;Ee92CU;IFhBV,uBAA8C;Ebi4C9C;Eej3CU;IFhBV,gBAA8C;Ebo4C9C;Eep3CU;IFhBV,uBAA8C;Ebu4C9C;Eev3CU;IFhBV,uBAA8C;Eb04C9C;AACF;;AgB97CA;EACE,WAAW;EACX,mBbiIW;EahIX,cbSgB;AHw7ClB;;AgBp8CA;;EAQI,gBbkVgC;EajVhC,mBAAmB;EACnB,6BbJc;AHq8ClB;;AgB38CA;EAcI,sBAAsB;EACtB,gCbTc;AH08ClB;;AgBh9CA;EAmBI,6Bbbc;AH88ClB;;AgBx7CA;;EAGI,eb4T+B;AH8nCnC;;AgBj7CA;EACE,yBbnCgB;AHu9ClB;;AgBr7CA;;EAKI,yBbvCc;AH49ClB;;AgB17CA;;EAWM,wBAA4C;AhBo7ClD;;AgB/6CA;;;;EAKI,SAAS;AhBi7Cb;;AgBz6CA;EAEI,qCb1DW;AHq+Cf;;AK1+CE;EW2EI,cbvEY;EawEZ,sCbvES;AH0+Cf;;AiBt/CE;;;EAII,yBCgG4D;AlBw5ClE;;AiB5/CE;;;;EAYM,qBCwF0D;AlB+5ClE;;AK5/CE;EYiBM,yBAJsC;AjBm/C9C;;AiBp/CE;;EASQ,yBARoC;AjBw/C9C;;AiB5gDE;;;EAII,yBCgG4D;AlB86ClE;;AiBlhDE;;;;EAYM,qBCwF0D;AlBq7ClE;;AKlhDE;EYiBM,yBAJsC;AjBygD9C;;AiB1gDE;;EASQ,yBARoC;AjB8gD9C;;AiBliDE;;;EAII,yBCgG4D;AlBo8ClE;;AiBxiDE;;;;EAYM,qBCwF0D;AlB28ClE;;AKxiDE;EYiBM,yBAJsC;AjB+hD9C;;AiBhiDE;;EASQ,yBARoC;AjBoiD9C;;AiBxjDE;;;EAII,yBCgG4D;AlB09ClE;;AiB9jDE;;;;EAYM,qBCwF0D;AlBi+ClE;;AK9jDE;EYiBM,yBAJsC;AjBqjD9C;;AiBtjDE;;EASQ,yBARoC;AjB0jD9C;;AiB9kDE;;;EAII,yBCgG4D;AlBg/ClE;;AiBplDE;;;;EAYM,qBCwF0D;AlBu/ClE;;AKplDE;EYiBM,yBAJsC;AjB2kD9C;;AiB5kDE;;EASQ,yBARoC;AjBglD9C;;AiBpmDE;;;EAII,yBCgG4D;AlBsgDlE;;AiB1mDE;;;;EAYM,qBCwF0D;AlB6gDlE;;AK1mDE;EYiBM,yBAJsC;AjBimD9C;;AiBlmDE;;EASQ,yBARoC;AjBsmD9C;;AiB1nDE;;;EAII,yBCgG4D;AlB4hDlE;;AiBhoDE;;;;EAYM,qBCwF0D;AlBmiDlE;;AKhoDE;EYiBM,yBAJsC;AjBunD9C;;AiBxnDE;;EASQ,yBARoC;AjB4nD9C;;AiBhpDE;;;EAII,yBCgG4D;AlBkjDlE;;AiBtpDE;;;;EAYM,qBCwF0D;AlByjDlE;;AKtpDE;EYiBM,yBAJsC;AjB6oD9C;;AiB9oDE;;EASQ,yBARoC;AjBkpD9C;;AiBtqDE;;;EAII,sCdQS;AHgqDf;;AKrqDE;EYiBM,sCAJsC;AjB4pD9C;;AiB7pDE;;EASQ,sCARoC;AjBiqD9C;;AgB3kDA;EAGM,Wb3GS;Ea4GT,yBbpGY;EaqGZ,qBbgQqD;AH40C3D;;AgBjlDA;EAWM,cb5GY;Ea6GZ,yBblHY;EamHZ,qBblHY;AH4rDlB;;AgBrkDA;EACE,Wb3Ha;Ea4Hb,yBbpHgB;AH4rDlB;;AgB1kDA;;;EAOI,qBb4OuD;AH61C3D;;AgBhlDA;EAWI,SAAS;AhBykDb;;AgBplDA;EAgBM,2Cb1IS;AHktDf;;AK7sDE;EW4IM,WbjJO;EakJP,4CblJO;AHutDf;;AcrpDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBujDvC;EgB5jDG;IASK,SAAS;EhBsjDjB;AACF;;AcjqDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBmkDvC;EgBxkDG;IASK,SAAS;EhBkkDjB;AACF;;Ac7qDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhB+kDvC;EgBplDG;IASK,SAAS;EhB8kDjB;AACF;;AczrDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhB2lDvC;EgBhmDG;IASK,SAAS;EhB0lDjB;AACF;;AgBzmDA;EAOQ,cAAc;EACd,WAAW;EACX,gBAAgB;EAChB,iCAAiC;AhBsmDzC;;AgBhnDA;EAcU,SAAS;AhBsmDnB;;AmBnxDA;EACE,cAAc;EACd,WAAW;EACX,mCDiH8D;EChH9D,yBhByXkC;EC/M9B,eAAW;EevKf,gBhBkR+B;EgBjR/B,gBhBsR+B;EgBrR/B,chBDgB;EgBEhB,sBhBTa;EgBUb,4BAA4B;EAC5B,yBhBPgB;EOOd,sBP6NgC;EiB/N9B,wEjBue4F;AHkzClG;;AoBrxDM;EDdN;ICeQ,gBAAgB;EpByxDtB;AACF;;AmBzyDA;EAsBI,6BAA6B;EAC7B,SAAS;AnBuxDb;;AqBvyDE;EACE,clBAc;EkBCd,sBlBRW;EkBSX,qBlBqdsE;EkBpdtE,UAAU;EAKR,gDlBaW;AHyxDjB;;AmBtzDA;EA+BI,chBxBc;EgB0Bd,UAAU;AnB0xDd;;AmB3zDA;EA+BI,chBxBc;EgB0Bd,UAAU;AnB0xDd;;AmB3zDA;EA+BI,chBxBc;EgB0Bd,UAAU;AnB0xDd;;AmB3zDA;EA+BI,chBxBc;EgB0Bd,UAAU;AnB0xDd;;AmB3zDA;EA+BI,chBxBc;EgB0Bd,UAAU;AnB0xDd;;AmB3zDA;EA2CI,yBhBxCc;EgB0Cd,UAAU;AnBmxDd;;AmB/wDA;;;;EAKI,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;AnBixDpB;;AmB7wDA;EAGI,kBAAkB;EAClB,0BhBtDc;AHo0DlB;;AmBlxDA;EAaI,chB/Dc;EgBgEd,sBhBvEW;AHg1Df;;AmBpwDA;;EAEE,cAAc;EACd,WAAW;AnBuwDb;;AmB7vDA;EACE,iCDyB8D;ECxB9D,oCDwB8D;ECvB9D,gBAAgB;EfiEd,kBAAW;Ee/Db,gBhB+L+B;AHikDjC;;AmB7vDA;EACE,+BDiB8D;EChB9D,kCDgB8D;Ed0D1D,kBAAW;EexEf,gBhB6H+B;AHmoDjC;;AmB7vDA;EACE,gCDU8D;ECT9D,mCDS8D;Ed0D1D,mBAAW;EejEf,gBhBuH+B;AHyoDjC;;AmBvvDA;EACE,cAAc;EACd,WAAW;EACX,mBAA2B;EAC3B,gBAAgB;EfoDZ,eAAW;EelDf,gBhBkK+B;EgBjK/B,chBnHgB;EgBoHhB,6BAA6B;EAC7B,yBAAyB;EACzB,mBAAmC;AnB0vDrC;;AmBpwDA;EAcI,gBAAgB;EAChB,eAAe;AnB0vDnB;;AmB9uDA;EACE,kCD9B8D;EC+B9D,uBhBoPiC;ECzN7B,mBAAW;EezBf,gBhB+E+B;EOxN7B,qBP+N+B;AH4pDnC;;AmB9uDA;EACE,gCDtC8D;ECuC9D,oBhBiPgC;EC9N5B,kBAAW;EejBf,gBhBsE+B;EOvN7B,qBP8N+B;AHqqDnC;;AmB7uDA;EAGI,YAAY;AnB8uDhB;;AmB1uDA;EACE,YAAY;AnB6uDd;;AmBruDA;EACE,mBhB0U0C;AH85C5C;;AmBruDA;EACE,cAAc;EACd,mBhB2T4C;AH66C9C;;AmBhuDA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,kBAA2C;EAC3C,iBAA0C;AnBmuD5C;;AmBvuDA;;EAQI,kBAA2C;EAC3C,iBAA0C;AnBouD9C;;AmB3tDA;EACE,kBAAkB;EAClB,cAAc;EACd,qBhBgS6C;AH87C/C;;AmB3tDA;EACE,kBAAkB;EAClB,kBhB4R2C;EgB3R3C,qBhB0R6C;AHo8C/C;;AmBjuDA;;EAQI,chBzNc;AHu7DlB;;AmB1tDA;EACE,gBAAgB;AnB6tDlB;;AmB1tDA;EACE,2BAAoB;EAApB,oBAAoB;EACpB,sBAAmB;EAAnB,mBAAmB;EACnB,eAAe;EACf,qBhB6Q4C;AHg9C9C;;AmBjuDA;EAQI,gBAAgB;EAChB,aAAa;EACb,uBhBwQ4C;EgBvQ5C,cAAc;AnB6tDlB;;AqB16DE;EACE,aAAa;EACb,WAAW;EACX,mBlB0c0C;ECrV1C,cAAW;EiBnHX,clBPa;AHo7DjB;;AqB16DE;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBqyBqC;EkBpyBrC,iBAAiB;EjBwHf,mBAAW;EiBtHb,gBlBsO6B;EkBrO7B,WlBxDW;EkByDX,wClBtBa;EOxBb,sBP6NgC;AH+vDpC;;AqBz6DI;;EAEE,SAAkC;ArB46DxC;;AqBn9DI;;;;EA8CE,cAAc;ArB46DpB;;AqB19DI;EAoDE,qBlB1CW;EkB6CT,+CAA6C;EAC7C,iRH3B0E;EG4B1E,4BAA4B;EAC5B,2DAA6D;EAC7D,gEH+BwD;AlBy4DhE;;AqBn+DI;EA+DI,qBlBrDS;EkBsDT,gDlBtDS;AH89DjB;;AqBx+DI;EAyEI,8BAA8C;EAC9C,wCAAsD;ArBm6D9D;;AqB7+DI;EAmFI,oCHOwD;EGNxD,kFHMwD;AlBw5DhE;;AqBl/DI;EA2FE,qBlBjFW;EkBoFT,kDAAoE;EACpE,ujBAA8J;ArBy5DtK;;AqBx/DI;EAmGI,qBlBzFS;EkB0FT,gDlB1FS;AHm/DjB;;AqB7/DI;EA4GI,clBlGS;AHu/DjB;;AqBjgEI;;;EAiHI,cAAc;ArBs5DtB;;AqBvgEI;EAyHI,clB/GS;AHigEjB;;AqB3gEI;EA4HM,qBlBlHO;AHqgEjB;;AqB/gEI;EAkIM,qBAAkC;EC5JxC,yBD6J+C;ArBi5DnD;;AqBphEI;EAyIM,gDlB/HO;AH8gEjB;;AqBxhEI;EA6IM,qBlBnIO;AHkhEjB;;AqB5hEI;EAuJI,qBlB7IS;AHshEjB;;AqBhiEI;EA4JM,qBlBlJO;EkBmJP,gDlBnJO;AH2hEjB;;AqBzhEE;EACE,aAAa;EACb,WAAW;EACX,mBlB0c0C;ECrV1C,cAAW;EiBnHX,clBVa;AHsiEjB;;AqBzhEE;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBqyBqC;EkBpyBrC,iBAAiB;EjBwHf,mBAAW;EiBtHb,gBlBsO6B;EkBrO7B,WlBxDW;EkByDX,wClBzBa;EOrBb,sBP6NgC;AH82DpC;;AqBxhEI;;EAEE,SAAkC;ArB2hExC;;AqBlkEI;;;;EA8CE,cAAc;ArB2hEpB;;AqBzkEI;EAoDE,qBlB7CW;EkBgDT,+CAA6C;EAC7C,4UH3B0E;EG4B1E,4BAA4B;EAC5B,2DAA6D;EAC7D,gEH+BwD;AlBw/DhE;;AqBllEI;EA+DI,qBlBxDS;EkByDT,gDlBzDS;AHglEjB;;AqBvlEI;EAyEI,8BAA8C;EAC9C,wCAAsD;ArBkhE9D;;AqB5lEI;EAmFI,oCHOwD;EGNxD,kFHMwD;AlBugEhE;;AqBjmEI;EA2FE,qBlBpFW;EkBuFT,kDAAoE;EACpE,knBAA8J;ArBwgEtK;;AqBvmEI;EAmGI,qBlB5FS;EkB6FT,gDlB7FS;AHqmEjB;;AqB5mEI;EA4GI,clBrGS;AHymEjB;;AqBhnEI;;;EAiHI,cAAc;ArBqgEtB;;AqBtnEI;EAyHI,clBlHS;AHmnEjB;;AqB1nEI;EA4HM,qBlBrHO;AHunEjB;;AqB9nEI;EAkIM,qBAAkC;EC5JxC,yBD6J+C;ArBggEnD;;AqBnoEI;EAyIM,gDlBlIO;AHgoEjB;;AqBvoEI;EA6IM,qBlBtIO;AHooEjB;;AqB3oEI;EAuJI,qBlBhJS;AHwoEjB;;AqB/oEI;EA4JM,qBlBrJO;EkBsJP,gDlBtJO;AH6oEjB;;AmBl6DA;EACE,oBAAa;EAAb,aAAa;EACb,uBAAmB;EAAnB,mBAAmB;EACnB,sBAAmB;EAAnB,mBAAmB;AnBq6DrB;;AmBx6DA;EASI,WAAW;AnBm6Df;;AcloEI;EKsNJ;IAeM,oBAAa;IAAb,aAAa;IACb,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;IACvB,gBAAgB;EnBk6DpB;EmBp7DF;IAuBM,oBAAa;IAAb,aAAa;IACb,kBAAc;IAAd,cAAc;IACd,uBAAmB;IAAnB,mBAAmB;IACnB,sBAAmB;IAAnB,mBAAmB;IACnB,gBAAgB;EnBg6DpB;EmB37DF;IAgCM,qBAAqB;IACrB,WAAW;IACX,sBAAsB;EnB85D1B;EmBh8DF;IAuCM,qBAAqB;EnB45DzB;EmBn8DF;;IA4CM,WAAW;EnB25Df;EmBv8DF;IAkDM,oBAAa;IAAb,aAAa;IACb,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;IACvB,WAAW;IACX,eAAe;EnBw5DnB;EmB98DF;IAyDM,kBAAkB;IAClB,oBAAc;IAAd,cAAc;IACd,aAAa;IACb,qBhB+KwC;IgB9KxC,cAAc;EnBw5DlB;EmBr9DF;IAiEM,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;EnBu5D3B;EmBz9DF;IAqEM,gBAAgB;EnBu5DpB;AACF;;AuBzuEA;EACE,qBAAqB;EAErB,gBpBsR+B;EoBrR/B,cpBMgB;EoBLhB,kBAAkB;EAGlB,sBAAsB;EACtB,yBAAiB;EAAjB,sBAAiB;EAAjB,qBAAiB;EAAjB,iBAAiB;EACjB,6BAA6B;EAC7B,6BAA2C;ECuF3C,yBrB2RkC;EC/M9B,eAAW;EoB1Ef,gBrB0L+B;EOlR7B,sBP6NgC;EiB/N9B,qIjBgb6I;AH+zDnJ;;AoB3uEM;EGdN;IHeQ,gBAAgB;EpB+uEtB;AACF;;AKzvEE;EkBUE,cpBNc;EoBOd,qBAAqB;AvBmvEzB;;AuBpwEA;EAsBI,UAAU;EACV,gDpBMa;AH4uEjB;;AuBzwEA;EA6BI,apBiZ6B;AH+1DjC;;AuB7wEA;EAkCI,eAAsD;AvB+uE1D;;AuBjuEA;;EAEE,oBAAoB;AvBouEtB;;AuB3tEE;EC3DA,WrBCa;EmBDX,yBnB6Ba;EqB3Bf,qBrB2Be;AH+vEjB;;AKtxEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBmyE7H;;AwBvxEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBqxEvF;;AwBhxEE;EAEE,WrB1BW;EqB2BX,yBrBCa;EqBAb,qBrBAa;AHkxEjB;;AwB3wEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBuzEnN;;AwBxwEI;;EAKI,gDAAiF;AxBwwEzF;;AuBhwEE;EC3DA,WrBCa;EmBDX,yBnBOc;EqBLhB,qBrBKgB;AH0zElB;;AK3zEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBw0E7H;;AwB5zEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxB0zEvF;;AwBrzEE;EAEE,WrB1BW;EqB2BX,yBrBrBc;EqBsBd,qBrBtBc;AH60ElB;;AwBhzEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB41EnN;;AwB7yEI;;EAKI,iDAAiF;AxB6yEzF;;AuBryEE;EC3DA,WrBCa;EmBDX,yBnBoCa;EqBlCf,qBrBkCe;AHk0EjB;;AKh2EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB62E7H;;AwBj2EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxB+1EvF;;AwB11EE;EAEE,WrB1BW;EqB2BX,yBrBQa;EqBPb,qBrBOa;AHq1EjB;;AwBr1EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBi4EnN;;AwBl1EI;;EAKI,+CAAiF;AxBk1EzF;;AuB10EE;EC3DA,WrBCa;EmBDX,yBnBsCa;EqBpCf,qBrBoCe;AHq2EjB;;AKr4EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBk5E7H;;AwBt4EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBo4EvF;;AwB/3EE;EAEE,WrB1BW;EqB2BX,yBrBUa;EqBTb,qBrBSa;AHw3EjB;;AwB13EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBs6EnN;;AwBv3EI;;EAKI,gDAAiF;AxBu3EzF;;AuB/2EE;EC3DA,crBUgB;EmBVd,yBnBmCa;EqBjCf,qBrBiCe;AH64EjB;;AK16EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxBu7E7H;;AwB36EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBy6EvF;;AwBp6EE;EAEE,crBjBc;EqBkBd,yBrBOa;EqBNb,qBrBMa;AHg6EjB;;AwB/5EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxB28EnN;;AwB55EI;;EAKI,gDAAiF;AxB45EzF;;AuBp5EE;EC3DA,WrBCa;EmBDX,yBnBiCa;EqB/Bf,qBrB+Be;AHo7EjB;;AK/8EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB49E7H;;AwBh9EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxB88EvF;;AwBz8EE;EAEE,WrB1BW;EqB2BX,yBrBKa;EqBJb,qBrBIa;AHu8EjB;;AwBp8EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBg/EnN;;AwBj8EI;;EAKI,+CAAiF;AxBi8EzF;;AuBz7EE;EC3DA,crBUgB;EmBVd,yBnBEc;EqBAhB,qBrBAgB;AHw/ElB;;AKp/EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxBigF7H;;AwBr/EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxBm/EvF;;AwB9+EE;EAEE,crBjBc;EqBkBd,yBrB1Bc;EqB2Bd,qBrB3Bc;AH2gFlB;;AwBz+EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxBqhFnN;;AwBt+EI;;EAKI,iDAAiF;AxBs+EzF;;AuB99EE;EC3DA,WrBCa;EmBDX,yBnBSc;EqBPhB,qBrBOgB;AHshFlB;;AKzhFE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBsiF7H;;AwB1hFE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,8CAAiF;AxBwhFvF;;AwBnhFE;EAEE,WrB1BW;EqB2BX,yBrBnBc;EqBoBd,qBrBpBc;AHyiFlB;;AwB9gFE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB0jFnN;;AwB3gFI;;EAKI,8CAAiF;AxB2gFzF;;AuB7/EE;ECPA,crB7Be;EqB8Bf,qBrB9Be;AHsiFjB;;AK7jFE;EmBwDE,WrB7DW;EqB8DX,yBrBlCa;EqBmCb,qBrBnCa;AH4iFjB;;AwBtgFE;EAEE,+CrBxCa;AHgjFjB;;AwBrgFE;EAEE,crB7Ca;EqB8Cb,6BAA6B;AxBugFjC;;AwBpgFE;;EAGE,WrBhFW;EqBiFX,yBrBrDa;EqBsDb,qBrBtDa;AH4jFjB;;AwBpgFI;;EAKI,+CrB7DS;AHikFjB;;AuB7hFE;ECPA,crBnDgB;EqBoDhB,qBrBpDgB;AH4lFlB;;AK7lFE;EmBwDE,WrB7DW;EqB8DX,yBrBxDc;EqByDd,qBrBzDc;AHkmFlB;;AwBtiFE;EAEE,iDrB9Dc;AHsmFlB;;AwBriFE;EAEE,crBnEc;EqBoEd,6BAA6B;AxBuiFjC;;AwBpiFE;;EAGE,WrBhFW;EqBiFX,yBrB3Ec;EqB4Ed,qBrB5Ec;AHknFlB;;AwBpiFI;;EAKI,iDrBnFU;AHunFlB;;AuB7jFE;ECPA,crBtBe;EqBuBf,qBrBvBe;AH+lFjB;;AK7nFE;EmBwDE,WrB7DW;EqB8DX,yBrB3Ba;EqB4Bb,qBrB5Ba;AHqmFjB;;AwBtkFE;EAEE,+CrBjCa;AHymFjB;;AwBrkFE;EAEE,crBtCa;EqBuCb,6BAA6B;AxBukFjC;;AwBpkFE;;EAGE,WrBhFW;EqBiFX,yBrB9Ca;EqB+Cb,qBrB/Ca;AHqnFjB;;AwBpkFI;;EAKI,+CrBtDS;AH0nFjB;;AuB7lFE;ECPA,crBpBe;EqBqBf,qBrBrBe;AH6nFjB;;AK7pFE;EmBwDE,WrB7DW;EqB8DX,yBrBzBa;EqB0Bb,qBrB1Ba;AHmoFjB;;AwBtmFE;EAEE,gDrB/Ba;AHuoFjB;;AwBrmFE;EAEE,crBpCa;EqBqCb,6BAA6B;AxBumFjC;;AwBpmFE;;EAGE,WrBhFW;EqBiFX,yBrB5Ca;EqB6Cb,qBrB7Ca;AHmpFjB;;AwBpmFI;;EAKI,gDrBpDS;AHwpFjB;;AuB7nFE;ECPA,crBvBe;EqBwBf,qBrBxBe;AHgqFjB;;AK7rFE;EmBwDE,crBpDc;EqBqDd,yBrB5Ba;EqB6Bb,qBrB7Ba;AHsqFjB;;AwBtoFE;EAEE,+CrBlCa;AH0qFjB;;AwBroFE;EAEE,crBvCa;EqBwCb,6BAA6B;AxBuoFjC;;AwBpoFE;;EAGE,crBvEc;EqBwEd,yBrB/Ca;EqBgDb,qBrBhDa;AHsrFjB;;AwBpoFI;;EAKI,+CrBvDS;AH2rFjB;;AuB7pFE;ECPA,crBzBe;EqB0Bf,qBrB1Be;AHksFjB;;AK7tFE;EmBwDE,WrB7DW;EqB8DX,yBrB9Ba;EqB+Bb,qBrB/Ba;AHwsFjB;;AwBtqFE;EAEE,+CrBpCa;AH4sFjB;;AwBrqFE;EAEE,crBzCa;EqB0Cb,6BAA6B;AxBuqFjC;;AwBpqFE;;EAGE,WrBhFW;EqBiFX,yBrBjDa;EqBkDb,qBrBlDa;AHwtFjB;;AwBpqFI;;EAKI,+CrBzDS;AH6tFjB;;AuB7rFE;ECPA,crBxDgB;EqByDhB,qBrBzDgB;AHiwFlB;;AK7vFE;EmBwDE,crBpDc;EqBqDd,yBrB7Dc;EqB8Dd,qBrB9Dc;AHuwFlB;;AwBtsFE;EAEE,iDrBnEc;AH2wFlB;;AwBrsFE;EAEE,crBxEc;EqByEd,6BAA6B;AxBusFjC;;AwBpsFE;;EAGE,crBvEc;EqBwEd,yBrBhFc;EqBiFd,qBrBjFc;AHuxFlB;;AwBpsFI;;EAKI,iDrBxFU;AH4xFlB;;AuB7tFE;ECPA,crBjDgB;EqBkDhB,qBrBlDgB;AH0xFlB;;AK7xFE;EmBwDE,WrB7DW;EqB8DX,yBrBtDc;EqBuDd,qBrBvDc;AHgyFlB;;AwBtuFE;EAEE,8CrB5Dc;AHoyFlB;;AwBruFE;EAEE,crBjEc;EqBkEd,6BAA6B;AxBuuFjC;;AwBpuFE;;EAGE,WrBhFW;EqBiFX,yBrBzEc;EqB0Ed,qBrB1Ec;AHgzFlB;;AwBpuFI;;EAKI,8CrBjFU;AHqzFlB;;AuBlvFA;EACE,gBpB4M+B;EoB3M/B,cpBjDe;EoBkDf,qBpB2F4C;AH0pF9C;;AK9zFE;EkB4EE,cpByF8D;EoBxF9D,0BpByF+C;AH6pFnD;;AuB7vFA;EAYI,0BpBoF+C;AHiqFnD;;AuBjwFA;EAiBI,cpBtFc;EoBuFd,oBAAoB;AvBovFxB;;AuBzuFA;ECPE,oBrB0SgC;EC9N5B,kBAAW;EoB1Ef,gBrB+H+B;EOvN7B,qBP8N+B;AH+mFnC;;AuB5uFA;ECXE,uBrBqSiC;ECzN7B,mBAAW;EoB1Ef,gBrBgI+B;EOxN7B,qBP+N+B;AHqnFnC;;AuB1uFA;EACE,cAAc;EACd,WAAW;AvB6uFb;;AuB/uFA;EAMI,kBpBuT+B;AHs7EnC;;AuBxuFA;;;EAII,WAAW;AvB0uFf;;AyBr3FA;ELgBM,gCjBiP2C;AHwnFjD;;AoBr2FM;EKpBN;ILqBQ,gBAAgB;EpBy2FtB;AACF;;AyB/3FA;EAII,UAAU;AzB+3Fd;;AyB33FA;EAEI,aAAa;AzB63FjB;;AyBz3FA;EACE,kBAAkB;EAClB,SAAS;EACT,gBAAgB;ELDZ,6BjBkPwC;AH4oF9C;;AoB13FM;EKNN;ILOQ,gBAAgB;EpB83FtB;AACF;;A0Bn5FA;;;;EAIE,kBAAkB;A1Bs5FpB;;A0Bn5FA;EACE,mBAAmB;A1Bs5FrB;;A2Bl4FI;EACE,qBAAqB;EACrB,oBxB+N0C;EwB9N1C,uBxB6N0C;EwB5N1C,WAAW;EAhCf,uBAA8B;EAC9B,qCAA4C;EAC5C,gBAAgB;EAChB,oCAA2C;A3Bs6F7C;;A2Bj3FI;EACE,cAA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6B1oGA;;EAII,iB1BmM6B;AHw8FjC;;A6B/oGA;;EnBHI,0BmBa8B;EnBZ9B,6BmBY8B;A7B2oGlC;;A6BrpGA;;EnBWI,yBmBI6B;EnBH7B,4BmBG6B;A7B4oGjC;;A6B5nGA;EACE,wBAAmC;EACnC,uBAAkC;A7B+nGpC;;A6BjoGA;;;EAOI,cAAc;A7BgoGlB;;A6B7nGE;EACE,eAAe;A7BgoGnB;;A6B5nGA;EACE,uBAAsC;EACtC,sBAAqC;A7B+nGvC;;A6B5nGA;EACE,sBAAsC;EACtC,qBAAqC;A7B+nGvC;;A6B3mGA;EACE,0BAAsB;EAAtB,sBAAsB;EACtB,qBAAuB;EAAvB,uBAAuB;EACvB,qBAAuB;EAAvB,uBAAuB;A7B8mGzB;;A6BjnGA;;EAOI,WAAW;A7B+mGf;;A6BtnGA;;EAYI,gB1BkH6B;AH6/FjC;;A6B3nGA;;EnBrEI,6BmBuF+B;EnBtF/B,4BmBsF+B;A7B+mGnC;;A6BjoGA;;EnBnFI,yBmB0G4B;EnBzG5B,0BmByG4B;A7BgnGhC;;A6B/lGA;;EAGI,gBAAgB;A7BimGpB;;A6BpmGA;;;;EAOM,kBAAkB;EAClB,sBAAsB;EACtB,oBAAoB;A7BomG1B;;A8B7vGA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,uBAAoB;EAApB,oBAAoB;EACpB,WAAW;A9BgwGb;;A8BrwGA;;;;EAWI,kBAAkB;EAClB,kBAAc;EAAd,cAAc;EACd,SAAS;EACT,YAAY;EACZ,gBAAgB;A9BiwGpB;;A8BhxGA;;;;;;;;;;;;EAoBM,iB3BkN2B;AHyjGjC;;A8B/xGA;;;EA4BI,UAAU;A9BywGd;;A8BryGA;EAiCI,UAAU;A9BwwGd;;A8BzyGA;;EpB0CI,yBoBJmD;EpBKnD,4BoBLmD;A9BywGvD;;A8B/yGA;EA4CI,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;A9BuwGvB;;A8BpzGA;;EpB4BI,0BoBoB6E;EpBnB7E,6BoBmB6E;A9B0wGjF;;A8B1zGA;EpB0CI,yBoBOsE;EpBNtE,4BoBMsE;A9B8wG1E;;A8B/zGA;;;;EpB4BI,0BoB6BgC;EpB5BhC,6BoB4BgC;A9B8wGpC;;A8Bv0GA;;;;EpB4BI,0BoBsCgC;EpBrChC,6BoBqCgC;A9B6wGpC;;A8BjwGA;;EAEE,oBAAa;EAAb,aAAa;A9BowGf;;A8BtwGA;;EAQI,kBAAkB;EAClB,UAAU;A9BmwGd;;A8B5wGA;;EAYM,UAAU;A9BqwGhB;;A8BjxGA;;;;;;;;EAoBI,iB3BoI6B;AHooGjC;;A8BpwGA;EAAuB,kB3BgIU;AHwoGjC;;A8BvwGA;EAAsB,iB3B+HW;AH4oGjC;;A8BnwGA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,yB3B2QkC;E2B1QlC,gBAAgB;E1B2DZ,eAAW;E0BzDf,gB3BoK+B;E2BnK/B,gB3BwK+B;E2BvK/B,c3B/GgB;E2BgHhB,kBAAkB;EAClB,mBAAmB;EACnB,yB3BvHgB;E2BwHhB,yB3BtHgB;EOOd,sBP6NgC;AHypGpC;;A8BnxGA;;EAkBI,aAAa;A9BswGjB;;A8B5vGA;;EAEE,gCZzB8D;AlBwxGhE;;A8B5vGA;;;;;;EAME,oB3BsPgC;EC9N5B,kBAAW;E0BtBf,gB3B2E+B;EOvN7B,qBP8N+B;AH8qGnC;;A8B5vGA;;EAEE,kCZ1C8D;AlByyGhE;;A8B5vGA;;;;;;EAME,uB3BgOiC;ECzN7B,mBAAW;E0BLf,gB3B2D+B;EOxN7B,qBP+N+B;AH8rGnC;;A8B5vGA;;EAEE,sBAA0E;A9B+vG5E;;A8BpvGA;;;;;;;;EpB9JI,0BoBsK4B;EpBrK5B,6BoBqK4B;A9BwvGhC;;A8BrvGA;;;;;;EpB3JI,yBoBiK2B;EpBhK3B,4BoBgK2B;A9ByvG/B;;A+Bj8GA;EACE,kBAAkB;EAClB,UAAU;EACV,cAAc;EACd,kBAA+C;EAC/C,oBAAqE;EACrE,iCAAmB;EAAnB,mBAAmB;A/Bo8GrB;;A+Bj8GA;EACE,2BAAoB;EAApB,oBAAoB;EACpB,kB5Bwf0C;AH48F5C;;A+Bj8GA;EACE,kBAAkB;EAClB,OAAO;EACP,WAAW;EACX,W5Bof0C;E4Bnf1C,eAAmF;EACnF,UAAU;A/Bo8GZ;;A+B18GA;EASI,W5BzBW;E4B0BX,qB5BEa;EmB7Bb,yBnB6Ba;AHo8GjB;;A+Bh9GA;EAoBM,gD5BRW;AHw8GjB;;A+Bp9GA;EAyBI,qB5BqbsE;AH0gG1E;;A+Bx9GA;EA6BI,W5B7CW;E4B8CX,yB5Bif8E;E4Bhf9E,qB5Bgf8E;AH+8FlF;;A+B99GA;EAuCM,c5BjDY;AH4+GlB;;A+Bl+GA;EA0CQ,yB5BxDU;AHo/GlB;;A+Bl7GA;EACE,kBAAkB;EAClB,gBAAgB;EAEhB,mBAAmB;A/Bo7GrB;;A+Bx7GA;EASI,kBAAkB;EAClB,YAAgF;EAChF,aAA+D;EAC/D,cAAc;EACd,W5BubwC;E4BtbxC,Y5BsbwC;E4BrbxC,oBAAoB;EACpB,WAAW;EACX,sB5BrFW;E4BsFX,yB5B+I6B;AHoyGjC;;A+Br8GA;EAwBI,kBAAkB;EAClB,YAAgF;EAChF,aAA+D;EAC/D,cAAc;EACd,W5BwawC;E4BvaxC,Y5BuawC;E4BtaxC,WAAW;EACX,mCAAgE;A/Bi7GpE;;A+Bx6GA;ErBjGI,sBP6NgC;AHgzGpC;;A+B56GA;EAOM,kOb7D4E;AlBs+GlF;;A+Bh7GA;EAaM,qB5B7FW;EmB7Bb,yBnB6Ba;AHqgHjB;;A+Br7GA;EAkBM,+KbxE4E;AlB++GlF;;A+Bz7GA;ET7GI,wCnB6Ba;AH6gHjB;;A+B77GA;ET7GI,wCnB6Ba;AHihHjB;;A+B75GA;EAGI,kB5ByZ+C;AHqgGnD;;A+Bj6GA;EAQM,8KblG4E;AlB+/GlF;;A+Br6GA;ETjJI,wCnB6Ba;AH6hHjB;;A+Bj5GA;EACE,qBAA2D;A/Bo5G7D;;A+Br5GA;EAKM,cAAqD;EACrD,c5BiY+E;E4BhY/E,mBAAmB;EAEnB,qB5B+X6E;AHohGnF;;A+B55GA;EAaM,wBblE0D;EamE1D,0BbnE0D;EaoE1D,uBb5C0D;Ea6C1D,wBb7C0D;Ea8C1D,yB5BpLY;E4BsLZ,qB5BqX6E;EiBviB7E,iJjByf+H;EiBzf/H,yIjByf+H;EiBzf/H,8KjByf+H;AH4kGrI;;AoBjkHM;EW2JN;IX1JQ,gBAAgB;EpBqkHtB;AACF;;A+B56GA;EA0BM,sB5BlMS;E4BmMT,sCAA4E;EAA5E,8BAA4E;A/Bs5GlF;;A+Bj7GA;ETzKI,wCnB6Ba;AHikHjB;;A+Bx4GA;EACE,qBAAqB;EACrB,WAAW;EACX,mCbrG8D;EasG9D,0C5BmKkC;EC/M9B,eAAW;E2B+Cf,gB5B4D+B;E4B3D/B,gB5BgE+B;E4B/D/B,c5BvNgB;E4BwNhB,sBAAsB;EACtB,uO5BkW+I;E4BjW/I,yB5B7NgB;EOOd,sBP6NgC;E4BJlC,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/By4GlB;;A+Bx5GA;EAkBI,qB5BuPsE;E4BtPtE,UAAU;EAKR,gD5BjNW;AHulHjB;;A+B95GA;EAiCM,c5B/OY;E4BgPZ,sB5BvPS;AHwnHf;;A+Bn6GA;EAwCI,YAAY;EACZ,sB5B8HgC;E4B7HhC,sBAAsB;A/B+3G1B;;A+Bz6GA;EA8CI,c5B7Pc;E4B8Pd,yB5BlQc;AHioHlB;;A+B96GA;EAoDI,aAAa;A/B83GjB;;A+Bl7GA;EAyDI,kBAAkB;EAClB,0B5BxQc;AHqoHlB;;A+Bz3GA;EACE,kCbjK8D;EakK9D,oB5BgHkC;E4B/GlC,uB5B+GkC;E4B9GlC,oB5B+GiC;ECzN7B,mBAAW;AJu+GjB;;A+Bz3GA;EACE,gCbzK8D;Ea0K9D,mB5B6GiC;E4B5GjC,sB5B4GiC;E4B3GjC,kB5B4GgC;EC9N5B,kBAAW;AJ++GjB;;A+Bp3GA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,WAAW;EACX,mCbzL8D;Ea0L9D,gBAAgB;A/Bu3GlB;;A+Bp3GA;EACE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,mCbjM8D;EakM9D,SAAS;EACT,gBAAgB;EAChB,UAAU;A/Bu3GZ;;A+B93GA;EAUI,qB5BoKsE;E4BnKtE,gD5B/Ra;AHupHjB;;A+Bn4GA;;EAiBI,yB5B/Tc;AHsrHlB;;A+Bx4GA;EAsBM,iB5B2TQ;AH2jGd;;A+B54GA;EA2BI,0BAA0B;A/Bq3G9B;;A+Bj3GA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,OAAO;EACP,UAAU;EACV,mCblO8D;EamO9D,yB5BsCkC;E4BrClC,gBAAgB;EAEhB,gB5BjE+B;E4BkE/B,gB5B7D+B;E4B8D/B,c5BpVgB;E4BqVhB,sB5B5Va;E4B6Vb,yB5BzVgB;EOOd,sBP6NgC;AHy+GpC;;A+Bl4GA;EAmBI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,UAAU;EACV,cAAc;EACd,6BbrP4D;EasP5D,yB5BmBgC;E4BlBhC,gB5B7E6B;E4B8E7B,c5BpWc;E4BqWd,iBAAiB;ET7WjB,yBnBGc;E4B4Wd,oBAAoB;ErBnWpB,kCqBoWgF;A/Bm3GpF;;A+Bz2GA;EACE,WAAW;EACX,cb3Q2B;Ea4Q3B,UAAU;EACV,6BAA6B;EAC7B,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/B42GlB;;A+Bj3GA;EAQI,UAAU;A/B62Gd;;A+Br3GA;EAY8B,gE5BzWb;AHstHjB;;A+Bz3GA;EAa8B,gE5B1Wb;AH0tHjB;;A+B73GA;EAc8B,gE5B3Wb;AH8tHjB;;A+Bj4GA;EAkBI,SAAS;A/Bm3Gb;;A+Br4GA;EAsBI,W5BmN6C;E4BlN7C,Y5BkN6C;E4BjN7C,oBAA0E;ETlZ1E,yBnB6Ba;E4BuXb,S5BkN0C;EO1lB1C,mBP2lB6C;EiB7lB3C,oHjByf+H;EiBzf/H,4GjByf+H;E4B3GjI,wBAAgB;EAAhB,gBAAgB;A/Bk3GpB;;AoB5vHM;EW4WN;IX3WQ,wBAAgB;IAAhB,gBAAgB;EpBgwHtB;AACF;;A+Bt5GA;ET1XI,yBnB2mB2E;AHyqG/E;;A+B15GA;EAsCI,W5B4LoC;E4B3LpC,c5B4LqC;E4B3LrC,kBAAkB;EAClB,e5B2LuC;E4B1LvC,yB5Bhac;E4Biad,yBAAyB;ErBzZzB,mBPolBoC;AH8rGxC;;A+Bp6GA;EAiDI,W5BwL6C;E4BvL7C,Y5BuL6C;EmBnmB7C,yBnB6Ba;E4BiZb,S5BwL0C;EO1lB1C,mBP2lB6C;EiB7lB3C,iHjByf+H;EiBzf/H,4GjByf+H;E4BjFjI,qBAAgB;EAAhB,gBAAgB;A/Bs3GpB;;AoB1xHM;EW4WN;IX3WQ,qBAAgB;IAAhB,gBAAgB;EpB8xHtB;AACF;;A+Bp7GA;ET1XI,yBnB2mB2E;AHusG/E;;A+Bx7GA;EAgEI,W5BkKoC;E4BjKpC,c5BkKqC;E4BjKrC,kBAAkB;EAClB,e5BiKuC;E4BhKvC,yB5B1bc;E4B2bd,yBAAyB;ErBnbzB,mBPolBoC;AH4tGxC;;A+Bl8GA;EA2EI,W5B8J6C;E4B7J7C,Y5B6J6C;E4B5J7C,aAAa;EACb,oB5BtE+B;E4BuE/B,mB5BvE+B;EmBlY/B,yBnB6Ba;E4B8ab,S5B2J0C;EO1lB1C,mBP2lB6C;EiB7lB3C,gHjByf+H;EiBzf/H,4GjByf+H;E4BpDjI,gBAAgB;A/B03GpB;;AoB3zHM;EW4WN;IX3WQ,oBAAgB;IAAhB,gBAAgB;EpB+zHtB;AACF;;A+Br9GA;ET1XI,yBnB2mB2E;AHwuG/E;;A+Bz9GA;EA6FI,W5BqIoC;E4BpIpC,c5BqIqC;E4BpIrC,kBAAkB;EAClB,e5BoIuC;E4BnIvC,6BAA6B;EAC7B,yBAAyB;EACzB,oBAA6C;A/Bg4GjD;;A+Bn+GA;EAwGI,yB5B9dc;EOQd,mBPolBoC;AHkwGxC;;A+Bx+GA;EA6GI,kBAAkB;EAClB,yB5Bpec;EOQd,mBPolBoC;AHwwGxC;;A+B9+GA;EAoHM,yB5BxeY;AHs2HlB;;A+Bl/GA;EAwHM,eAAe;A/B83GrB;;A+Bt/GA;EA4HM,yB5BhfY;AH82HlB;;A+B1/GA;EAgIM,eAAe;A/B83GrB;;A+B9/GA;EAoIM,yB5BxfY;AHs3HlB;;A+Bz3GA;;;EXzfM,4GjByf+H;AH+3GrI;;AoBp3HM;EWqfN;;;IXpfQ,gBAAgB;EpB03HtB;AACF;;AgC34HA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AhC84HlB;;AgC34HA;EACE,cAAc;EACd,oB7ByqBsC;AHquGxC;;AK74HE;E2BGE,qBAAqB;AhC84HzB;;AgCp5HA;EAWI,c7BXc;E6BYd,oBAAoB;EACpB,eAAe;AhC64HnB;;AgCr4HA;EACE,gC7BzBgB;AHi6HlB;;AgCz4HA;EAII,mB7BsM6B;E6BrM7B,6BAAgD;EtBZhD,+BPoNgC;EOnNhC,gCPmNgC;AHmsHpC;;AKl6HE;E2B2BI,qC7BjCY;AH46HlB;;AgCp5HA;EAaM,c7BlCY;E6BmCZ,6BAA6B;EAC7B,yBAAyB;AhC24H/B;;AgC15HA;;E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4BoOM,yB9BnOO;AHqwIf;;AiChjIA;EAkBQ,yB9BvOO;AHywIf;;AiCpjIA;;;;EA0BM,yB9B/OS;AHgxIf;;AiC3jIA;EA+BI,yB9BpPW;E8BqPX,gC9BrPW;AHqxIf;;AiChkIA;EAoCI,mRf7M8E;AlB6uIlF;;AiCpkIA;EAwCI,yB9B7PW;AH6xIf;;AiCxkIA;EA0CM,yB9B/PS;AHiyIf;;AKlyIE;E4BmQM,yB9BlQO;AHqyIf;;AiC5hIA;EAEI,W9BrRW;AHmzIf;;AK1yIE;E4B+QI,W9BxRS;AHuzIf;;AiCpiIA;EAWM,+B9B9RS;AH2zIf;;AKlzIE;E4BwRM,gC9BjSO;AH+zIf;;AiC5iIA;EAkBQ,gC9BrSO;AHm0If;;AiChjIA;;;;EA0BM,W9B7SS;AH00If;;AiCvjIA;EA+BI,+B9BlTW;E8BmTX,sC9BnTW;AH+0If;;AiC5jIA;EAoCI,yRfjQ8E;AlB6xIlF;;AiChkIA;EAwCI,+B9B3TW;AHu1If;;AiCpkIA;EA0CM,W9B7TS;AH21If;;AKl1IE;E4BuTM,W9BhUO;AH+1If;;AkCl2IA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,YAAY;EAEZ,qBAAqB;EACrB,sB/BJa;E+BKb,2BAA2B;EAC3B,sC/BIa;EOCX,sBP6NgC;AHmoIpC;;AkC92IA;EAaI,eAAe;EACf,cAAc;AlCq2IlB;;AkCn3IA;EAkBI,mBAAmB;EACnB,sBAAsB;AlCq2I1B;;AkCx3IA;EAsBM,mBAAmB;ExBCrB,2CQuH4D;ERtH5D,4CQsH4D;AlBgvIhE;;AkC93IA;EA2BM,sBAAsB;ExBUxB,+CQyG4D;ERxG5D,8CQwG4D;AlBsvIhE;;AkCp4IA;;EAoCI,aAAa;AlCq2IjB;;AkCj2IA;EAGE,kBAAc;EAAd,cAAc;EAGd,eAAe;EACf,gB/B+wByC;AHilH3C;;AkC51IA;EACE,sB/BywBwC;AHslH1C;;AkC51IA;EACE,qBAAgC;EAChC,gBAAgB;AlC+1IlB;;AkC51IA;EACE,gBAAgB;AlC+1IlB;;AKp5IE;E6B0DE,qBAAqB;AlC81IzB;;AkCh2IA;EAMI,oB/BwvBuC;AHsmH3C;;AkCt1IA;EACE,wB/B+uByC;E+B9uBzC,gBAAgB;EAEhB,qC/BrEa;E+BsEb,6C/BtEa;AH85If;;AkC71IA;ExBhEI,0DwBwE8E;AlCy1IlF;;AkCr1IA;EACE,wB/BmuByC;E+BjuBzC,qC/BhFa;E+BiFb,0C/BjFa;AHw6If;;AkC31IA;ExB5EI,0DQgI4D;AlB2yIhE;;AkC/0IA;EACE,uBAAkC;EAClC,uB/BitBwC;E+BhtBxC,sBAAiC;EACjC,gBAAgB;AlCk1IlB;;AkC/0IA;EACE,uBAAkC;EAClC,sBAAiC;AlCk1InC;;AkC90IA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,gB/B4sByC;EO3zBvC,kCQgI4D;AlBi0IhE;;AkC90IA;;;EAGE,oBAAc;EAAd,cAAc;EACd,WAAW;AlCi1Ib;;AkC90IA;;ExBjHI,2CQuH4D;ERtH5D,4CQsH4D;AlB80IhE;;AkC/0IA;;ExBxGI,+CQyG4D;ERxG5D,8CQwG4D;AlBo1IhE;;AkC70IA;EAEI,mB/BorBuD;AH2pH3D;;Ac96II;EoB6FJ;IAMI,oBAAa;IAAb,aAAa;IACb,uBAAmB;IAAnB,mBAAmB;IACnB,mB/B8qBuD;I+B7qBvD,kB/B6qBuD;EHmqHzD;EkCz1IF;IAaM,gBAAY;IAAZ,YAAY;IACZ,kB/BwqBqD;I+BvqBrD,gBAAgB;IAChB,iB/BsqBqD;EHyqHzD;AACF;;AkCt0IA;EAII,mB/BwpBuD;AH8qH3D;;Acj8II;EoBuHJ;IAQI,oBAAa;IAAb,aAAa;IACb,uBAAmB;IAAnB,mBAAmB;ElCu0IrB;EkCh1IF;IAcM,gBAAY;IAAZ,YAAY;IACZ,gBAAgB;ElCq0IpB;EkCp1IF;IAkBQ,cAAc;IACd,cAAc;ElCq0IpB;EkCx1IF;IxBjJI,0BwB0KoC;IxBzKpC,6BwByKoC;ElCm0ItC;EkC51IF;;IA8BY,0BAA0B;ElCk0IpC;EkCh2IF;;IAmCY,6BAA6B;ElCi0IvC;EkCp2IF;IxBnII,yBwB2KmC;IxB1KnC,4BwB0KmC;ElCg0IrC;EkCx2IF;;IA6CY,yBAAyB;ElC+zInC;EkC52IF;;IAkDY,4BAA4B;ElC8zItC;AACF;;AkClzIA;EAEI,sB/B6kBsC;AHuuH1C;;Ac5+II;EoBsLJ;IAMI,uB/B0lBiC;I+B1lBjC,oB/B0lBiC;I+B1lBjC,e/B0lBiC;I+BzlBjC,2B/B0lBuC;I+B1lBvC,wB/B0lBuC;I+B1lBvC,mB/B0lBuC;I+BzlBvC,UAAU;IACV,SAAS;ElCqzIX;EkC9zIF;IAYM,qBAAqB;IACrB,WAAW;ElCqzIf;AACF;;AkC5yIA;EACE,qBAAqB;AlC+yIvB;;AkChzIA;EAII,gBAAgB;AlCgzIpB;;AkCpzIA;EAOM,gBAAgB;ExBvOlB,6BwBwOiC;ExBvOjC,4BwBuOiC;AlCkzIrC;;AkC1zIA;ExB9OI,yBwB0P8B;ExBzP9B,0BwByP8B;AlCmzIlC;;AkC/zIA;ExBvPI,gBwBuQ0B;EACxB,mB/B9C2B;AHi2IjC;;AmC7kJA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,qBhCkiCsC;EgCjiCtC,mBhCoiCsC;EgCliCtC,gBAAgB;EAChB,yBhCEgB;EOSd,sBP6NgC;AHw2IpC;;AmC5kJA;EAGI,oBhCwhCqC;AHqjHzC;;AmChlJA;EAMM,WAAW;EACX,qBhCohCmC;EgCnhCnC,chCNY;EgCOZ,YhCyhCuC;AHqjH7C;;AmCvlJA;EAoBI,0BAA0B;AnCukJ9B;;AmC3lJA;EAwBI,qBAAqB;AnCukJzB;;AmC/lJA;EA4BI,chC1Bc;AHimJlB;;AoC9mJA;EACE,oBAAa;EAAb,aAAa;E7BGb,eAAe;EACf,gBAAgB;EGad,sBP6NgC;AHs4IpC;;AoC/mJA;EACE,kBAAkB;EAClB,cAAc;EACd,uBjCgxBwC;EiC/wBxC,iBjCkO+B;EiCjO/B,iBjCmxBsC;EiClxBtC,cjCuBe;EiCrBf,sBjCPa;EiCQb,yBjCLgB;AHsnJlB;;AoC1nJA;EAYI,UAAU;EACV,cjC8J8D;EiC7J9D,qBAAqB;EACrB,yBjCZc;EiCad,qBjCZc;AH8nJlB;;AoCloJA;EAoBI,UAAU;EACV,UjC2wBiC;EiC1wBjC,gDjCOa;AH2mJjB;;AoC9mJA;EAGM,cAAc;E1BahB,+BP+LgC;EO9LhC,kCP8LgC;AHq6IpC;;AoCpnJA;E1BEI,gCP6MgC;EO5MhC,mCP4MgC;AH06IpC;;AoCznJA;EAcI,UAAU;EACV,WjCxCW;EiCyCX,yBjCba;EiCcb,qBjCda;AH6nJjB;;AoChoJA;EAqBI,cjCxCc;EiCyCd,oBAAoB;EAEpB,YAAY;EACZ,sBjClDW;EiCmDX,qBjChDc;AH8pJlB;;AqCrqJE;EACE,uBlCyxBsC;ECzmBpC,kBAAW;EiC9Kb,gBlCmO6B;AHq8IjC;;AqCnqJM;E3BqCF,8BPgM+B;EO/L/B,iCP+L+B;AHm8InC;;AqCnqJM;E3BkBF,+BP8M+B;EO7M/B,kCP6M+B;AHw8InC;;AqCrrJE;EACE,uBlCuxBqC;ECvmBnC,mBAAW;EiC9Kb,gBlCoO6B;AHo9IjC;;AqCnrJM;E3BqCF,8BPiM+B;EOhM/B,iCPgM+B;AHk9InC;;AqCnrJM;E3BkBF,+BP+M+B;EO9M/B,kCP8M+B;AHu9InC;;AsCnsJA;EACE,qBAAqB;EACrB,qBnC25BsC;EC9vBpC,cAAW;EkC3Jb,gBnCuR+B;EmCtR/B,cAAc;EACd,kBAAkB;EAClB,mBAAmB;EACnB,wBAAwB;E5BKtB,sBP6NgC;EiB/N9B,qIjBgb6I;AHqxInJ;;AoBjsJM;EkBfN;IlBgBQ,gBAAgB;EpBqsJtB;AACF;;AK3sJE;EiCGI,qBAAqB;AtC4sJ3B;;AsC1tJA;EAoBI,aAAa;AtC0sJjB;;AsCrsJA;EACE,kBAAkB;EAClB,SAAS;AtCwsJX;;AsCjsJA;EACE,oBnCg4BsC;EmC/3BtC,mBnC+3BsC;EOt5BpC,oBPy5BqC;AHm0HzC;;AsC5rJE;ECjDA,WpCMa;EoCLb,yBpCiCe;AHgtJjB;;AKnuJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCivJxC;;AuCpvJU;EAQJ,UAAU;EACV,+CpCsBW;AH0tJjB;;AsC3sJE;ECjDA,WpCMa;EoCLb,yBpCWgB;AHqvJlB;;AKlvJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCgwJxC;;AuCnwJU;EAQJ,UAAU;EACV,iDpCAY;AH+vJlB;;AsC1tJE;ECjDA,WpCMa;EoCLb,yBpCwCe;AHuuJjB;;AKjwJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC+wJxC;;AuClxJU;EAQJ,UAAU;EACV,+CpC6BW;AHivJjB;;AsCzuJE;ECjDA,WpCMa;EoCLb,yBpC0Ce;AHovJjB;;AKhxJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC8xJxC;;AuCjyJU;EAQJ,UAAU;EACV,gDpC+BW;AH8vJjB;;AsCxvJE;ECjDA,cpCegB;EoCdhB,yBpCuCe;AHswJjB;;AK/xJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvC6yJxC;;AuChzJU;EAQJ,UAAU;EACV,+CpC4BW;AHgxJjB;;AsCvwJE;ECjDA,WpCMa;EoCLb,yBpCqCe;AHuxJjB;;AK9yJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC4zJxC;;AuC/zJU;EAQJ,UAAU;EACV,+CpC0BW;AHiyJjB;;AsCtxJE;ECjDA,cpCegB;EoCdhB,yBpCMgB;AHq0JlB;;AK7zJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvC20JxC;;AuC90JU;EAQJ,UAAU;EACV,iDpCLY;AH+0JlB;;AsCryJE;ECjDA,WpCMa;EoCLb,yBpCagB;AH60JlB;;AK50JE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC01JxC;;AuC71JU;EAQJ,UAAU;EACV,8CpCEY;AHu1JlB;;AwCt2JA;EACE,kBAAqD;EACrD,mBrCwzBsC;EqCtzBtC,yBrCKgB;EOSd,qBP8N+B;AH6nJnC;;AcjzJI;E0B5DJ;IAQI,kBrCkzBoC;EHwjItC;AACF;;AwCv2JA;EACE,gBAAgB;EAChB,eAAe;E9BIb,gB8BHsB;AxC02J1B;;AyCr3JA;EACE,kBAAkB;EAClB,wBtCw9ByC;EsCv9BzC,mBtCw9BsC;EsCv9BtC,6BAA6C;E/BU3C,sBP6NgC;AHkpJpC;;AyCp3JA;EAEE,cAAc;AzCs3JhB;;AyCl3JA;EACE,gBtC4Q+B;AHymJjC;;AyC72JA;EACE,mBAAsD;AzCg3JxD;;AyCj3JA;EAKI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,UAAU;EACV,wBtCy7BuC;EsCx7BvC,cAAc;AzCg3JlB;;AyCt2JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBmzJlE;;A0Cv5JE;EACE,yBAAqC;A1C05JzC;;A0Cv5JE;EACE,cAA0B;A1C05J9B;;AyCp3JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBi0JlE;;A0Cr6JE;EACE,yBAAqC;A1Cw6JzC;;A0Cr6JE;EACE,cAA0B;A1Cw6J9B;;AyCl4JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlB+0JlE;;A0Cn7JE;EACE,yBAAqC;A1Cs7JzC;;A0Cn7JE;EACE,cAA0B;A1Cs7J9B;;AyCh5JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlB61JlE;;A0Cj8JE;EACE,yBAAqC;A1Co8JzC;;A0Cj8JE;EACE,cAA0B;A1Co8J9B;;AyC95JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlB22JlE;;A0C/8JE;EACE,yBAAqC;A1Ck9JzC;;A0C/8JE;EACE,cAA0B;A1Ck9J9B;;AyC56JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBy3JlE;;A0C79JE;EACE,yBAAqC;A1Cg+JzC;;A0C79JE;EACE,cAA0B;A1Cg+J9B;;AyC17JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBu4JlE;;A0C3+JE;EACE,yBAAqC;A1C8+JzC;;A0C3+JE;EACE,cAA0B;A1C8+J9B;;AyCx8JE;EC/CA,cxBwGgE;EInG9D,yBJmG8D;EwBtGhE,qBxBsGgE;AlBq5JlE;;A0Cz/JE;EACE,yBAAqC;A1C4/JzC;;A0Cz/JE;EACE,cAA0B;A1C4/J9B;;A2CpgKE;EACE;IAAO,2BAAuC;E3CwgKhD;E2CvgKE;IAAK,wBAAwB;E3C0gK/B;AACF;;A2C7gKE;EACE;IAAO,2BAAuC;E3CwgKhD;E2CvgKE;IAAK,wBAAwB;E3C0gK/B;AACF;;A2CvgKA;EACE,oBAAa;EAAb,aAAa;EACb,YxCi+BsC;EwCh+BtC,gBAAgB;EAChB,cAAc;EvCwKV,kBAAW;EuCtKf,yBxCLgB;EOSd,sBP6NgC;AH0yJpC;;A2CtgKA;EACE,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,qBAAuB;EAAvB,uBAAuB;EACvB,gBAAgB;EAChB,WxCjBa;EwCkBb,kBAAkB;EAClB,mBAAmB;EACnB,yBxCQe;EiBnBX,2BjBm+B4C;AHkjIlD;;AoBjhKM;EuBDN;IvBEQ,gBAAgB;EpBqhKtB;AACF;;A2C5gKA;ErBYE,qMAA6I;EqBV7I,0BxC08BsC;AHqkIxC;;A2C3gKE;EACE,0DAA8D;EAA9D,kDAA8D;A3C8gKlE;;A2C3gKM;EAJJ;IAKM,uBAAe;IAAf,eAAe;E3C+gKrB;AACF;;A4C1jKA;EACE,oBAAa;EAAb,aAAa;EACb,qBAAuB;EAAvB,uBAAuB;A5C6jKzB;;A4C1jKA;EACE,WAAO;EAAP,OAAO;A5C6jKT;;A6C/jKA;EACE,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EAGtB,eAAe;EACf,gBAAgB;EnCQd,sBP6NgC;AH41JpC;;A6CvjKA;EACE,WAAW;EACX,c1CRgB;E0CShB,mBAAmB;A7C0jKrB;;AKjkKE;EwCWE,UAAU;EACV,c1Cdc;E0Ced,qBAAqB;EACrB,yB1CtBc;AHglKlB;;A6CpkKA;EAcI,c1ClBc;E0CmBd,yB1C1Bc;AHolKlB;;A6CjjKA;EACE,kBAAkB;EAClB,cAAc;EACd,wB1Cg9ByC;E0C78BzC,sB1C3Ca;E0C4Cb,sC1ClCa;AHolKf;;A6CzjKA;EnCjBI,+BmC2BkC;EnC1BlC,gCmC0BkC;A7CojKtC;;A6C9jKA;EnCHI,mCmCiBqC;EnChBrC,kCmCgBqC;A7CqjKzC;;A6CnkKA;EAmBI,c1ClDc;E0CmDd,oBAAoB;EACpB,sB1C1DW;AH8mKf;;A6CzkKA;EA0BI,UAAU;EACV,W1ChEW;E0CiEX,yB1CrCa;E0CsCb,qB1CtCa;AHylKjB;;A6ChlKA;EAiCI,mBAAmB;A7CmjKvB;;A6CplKA;EAoCM,gB1C4J2B;E0C3J3B,qB1C2J2B;AHy5JjC;;A6CtiKI;EACE,uBAAmB;EAAnB,mBAAmB;A7CyiKzB;;A6C1iKI;EnCtBA,kCPsKgC;EOlLhC,0BmCwCwC;A7CyiK5C;;A6C/iKI;EnClCA,gCPkLgC;EOtKhC,4BmCiC0C;A7CyiK9C;;A6CpjKI;EAeM,aAAa;A7CyiKvB;;A6CxjKI;EAmBM,qB1C0HuB;E0CzHvB,oBAAoB;A7CyiK9B;;A6C7jKI;EAuBQ,iB1CsHqB;E0CrHrB,sB1CqHqB;AHq7JjC;;AcrmKI;E+BmCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CskKvB;E6CvkKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7CqkK1C;E6C3kKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7CokK5C;E6C/kKE;IAeM,aAAa;E7CmkKrB;E6CllKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7CkkK5B;E6CtlKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EH68J/B;AACF;;Ac9nKI;E+BmCA;IACE,uBAAmB;IAAnB,mBAAmB;E7C+lKvB;E6ChmKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7C8lK1C;E6CpmKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7C6lK5C;E6CxmKE;IAeM,aAAa;E7C4lKrB;E6C3mKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7C2lK5B;E6C/mKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EHs+J/B;AACF;;AcvpKI;E+BmCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CwnKvB;E6CznKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7CunK1C;E6C7nKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7CsnK5C;E6CjoKE;IAeM,aAAa;E7CqnKrB;E6CpoKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7ConK5B;E6CxoKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EH+/J/B;AACF;;AchrKI;E+BmCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CipKvB;E6ClpKE;InCtBA,kCPsKgC;IOlLhC,0BmCwCwC;E7CgpK1C;E6CtpKE;InClCA,gCPkLgC;IOtKhC,4BmCiC0C;E7C+oK5C;E6C1pKE;IAeM,aAAa;E7C8oKrB;E6C7pKE;IAmBM,qB1C0HuB;I0CzHvB,oBAAoB;E7C6oK5B;E6CjqKE;IAuBQ,iB1CsHqB;I0CrHrB,sB1CqHqB;EHwhK/B;AACF;;A6ChoKA;EnCnHI,gBmCoHsB;A7CmoK1B;;A6CpoKA;EAII,qB1CmG6B;AHiiKjC;;A6CxoKA;EAOM,sBAAsB;A7CqoK5B;;A8C9wKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB6qKlE;;AKtwKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CixKjD;;A8CxxKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlBwrKlE;;A8C9xKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB6rKlE;;AKtxKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CiyKjD;;A8CxyKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlBwsKlE;;A8C9yKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB6sKlE;;AKtyKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9CizKjD;;A8CxzKE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlBwtKlE;;A8C9zKE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB6tKlE;;AKtzKE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9Ci0KjD;;A8Cx0KE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlBwuKlE;;A8C90KE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB6uKlE;;AKt0KE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9Ci1KjD;;A8Cx1KE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlBwvKlE;;A8C91KE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB6vKlE;;AKt1KE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9Ci2KjD;;A8Cx2KE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlBwwKlE;;A8C92KE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB6wKlE;;AKt2KE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9Ci3KjD;;A8Cx3KE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlBwxKlE;;A8C93KE;EACE,c5BqG8D;E4BpG9D,yB5BoG8D;AlB6xKlE;;AKt3KE;EyCPM,c5BgG0D;E4B/F1D,yBAAyC;A9Ci4KjD;;A8Cx4KE;EAWM,W3CPO;E2CQP,yB5B0F0D;E4BzF1D,qB5ByF0D;AlBwyKlE;;A+Cj5KA;EACE,YAAY;E3CmLR,iBAAW;E2CjLf,gB5C6R+B;E4C5R/B,cAAc;EACd,W5CYa;E4CXb,yB5CCa;E4CAb,WAAW;A/Co5Kb;;AK/4KE;E0CDE,W5CMW;E4CLX,qBAAqB;A/Co5KzB;;AKh5KE;E0CCI,YAAY;A/Cm5KlB;;A+Cx4KA;EACE,UAAU;EACV,6BAA6B;EAC7B,SAAS;A/C24KX;;A+Cr4KA;EACE,oBAAoB;A/Cw4KtB;;AgD96KA;EAGE,8B7C04BuC;E6C14BvC,iB7C04BuC;E6Cz4BvC,gB7Cy4BuC;ECztBnC,mBAAW;E4C7Kf,2C7CAa;E6CCb,4BAA4B;EAC5B,oC7C24BmD;E6C14BnD,gD7COa;E6CNb,UAAU;EtCOR,sBPm4BsC;AHqiJ1C;;AgD17KA;EAeI,sB7C+3BsC;AHgjJ1C;;AgD97KA;EAmBI,UAAU;AhD+6Kd;;AgDl8KA;EAuBI,cAAc;EACd,UAAU;AhD+6Kd;;AgDv8KA;EA4BI,aAAa;AhD+6KjB;;AgD36KA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,wB7C22BwC;E6C12BxC,c7CvBgB;E6CwBhB,2C7C9Ba;E6C+Bb,4BAA4B;EAC5B,4C7Cm3BoD;EO/3BlD,2CQuH4D;ERtH5D,4CQsH4D;AlBq0KhE;;AgD56KA;EACE,gB7Ck2BwC;AH6kJ1C;;AiDr9KA;EAEE,gBAAgB;AjDu9KlB;;AiDz9KA;EAKI,kBAAkB;EAClB,gBAAgB;AjDw9KpB;;AiDn9KA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,a9C2pBsC;E8C1pBtC,aAAa;EACb,WAAW;EACX,YAAY;EACZ,gBAAgB;EAGhB,UAAU;AjDo9KZ;;AiD78KA;EACE,kBAAkB;EAClB,WAAW;EACX,c9Cg5BuC;E8C94BvC,oBAAoB;AjD+8Kt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,yBAAyB;EACzB,mBAAmB;ApDwyLzB;;AoDnyLA;EACE,qBjD+1BuC;AHu8JzC;;AoDvyLA;EAII,2BlCyG4D;AlB8rLhE;;AoD3yLA;EAOM,SAAS;EACT,6BAAiE;EACjE,qCjD01BiE;AH88JvE;;AoDjzLA;EAaM,WjD0L2B;EiDzL3B,6BAAiE;EACjE,sBjD7CS;AHq1Lf;;AoDnyLA;EACE,mBjD20BuC;AH29JzC;;AoDvyLA;EAII,yBlCqF4D;EkCpF5D,ajDu0BqC;EiDt0BrC,YjDq0BoC;EiDp0BpC,gBAAgC;ApDuyLpC;;AoD9yLA;EAUM,OAAO;EACP,oCAA6F;EAC7F,uCjDm0BiE;AHq+JvE;;AoDpzLA;EAgBM,SjDmK2B;EiDlK3B,oCAA6F;EAC7F,wBjDpES;AH42Lf;;AoDnyLA;EACE,kBjDozBuC;AHk/JzC;;AoDvyLA;EAII,wBlC8D4D;AlByuLhE;;AoD3yLA;EAOM,MAAM;EACN,oCAA6F;EAC7F,wCjD+yBiE;AHy/JvE;;AoDjzLA;EAaM,QjD+I2B;EiD9I3B,oCAA6F;EAC7F,yBjDxFS;AHg4Lf;;AoDvzLA;EAqBI,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,cAAc;EACd,WjD2xBoC;EiD1xBpC,oBAAuC;EACvC,WAAW;EACX,gCjD+wBuD;AHuhK3D;;AoDlyLA;EACE,oBjDoxBuC;AHihKzC;;AoDtyLA;EAII,0BlC8B4D;EkC7B5D,ajDgxBqC;EiD/wBrC,YjD8wBoC;EiD7wBpC,gBAAgC;ApDsyLpC;;AoD7yLA;EAUM,QAAQ;EACR,oCjD0wBmC;EiDzwBnC,sCjD4wBiE;AH2hKvE;;AoDnzLA;EAgBM,UjD4G2B;EiD3G3B,oCjDowBmC;EiDnwBnC,uBjD3HS;AHk6Lf;;AoDjxLA;EACE,uBjDquBwC;EiDpuBxC,gBAAgB;EhD0BZ,eAAW;EgDvBf,yBjD8tByD;EiD7tBzD,gCAAyE;E1CnIvE,0CQuH4D;ERtH5D,2CQsH4D;AlBiyLhE;;AoD3xLA;EAUI,aAAa;ApDqxLjB;;AoDjxLA;EACE,uBjDutBwC;EiDttBxC,cjDxJgB;AH46LlB;;AqD/6LA;EACE,kBAAkB;ArDk7L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DoiC4B;EoDniC5B,wBpDqiC+B;EoDpiC/B,8BAA8B;EAE9B,kBAAkB;EAClB,UAAU;EACV,oDAA4C;EAA5C,4CAA4C;AvDsnM9C;;AuDnnMA;EACE,WpD+hC4B;EoD9hC5B,YpD8hC4B;AHwlK9B;;AuDlnME;EACE;;IAEE,gCAAwB;IAAxB,wBAAwB;EvDqnM5B;AACF;;AwDjrMA;EAAqB,mCAAmC;AxDqrMxD;;AwDprMA;EAAqB,8BAA8B;AxDwrMnD;;AwDvrMA;EAAqB,iCAAiC;AxD2rMtD;;AwD1rMA;EAAqB,iCAAiC;AxD8rMtD;;AwD7rMA;EAAqB,sCAAsC;AxDisM3D;;AwDhsMA;EAAqB,mCAAmC;AxDosMxD;;AyDtsME;EACE,oCAAmC;AzDysMvC;;AK/rME;;;EoDLI,oCAAgD;AzD0sMtD;;AyDhtME;EACE,oCAAmC;AzDmtMvC;;AKzsME;;;EoDLI,oCAAgD;AzDotMtD;;AyD1tME;EACE,oCAAmC;AzD6tMvC;;AKntME;;;EoDLI,oCAAgD;AzD8tMtD;;AyDpuME;EACE,oCAAmC;AzDuuMvC;;AK7tME;;;EoDLI,oCAAgD;AzDwuMtD;;AyD9uME;EACE,oCAAmC;AzDivMvC;;AKvuME;;;EoDLI,oCAAgD;AzDkvMtD;;AyDxvME;EACE,oCAAmC;AzD2vMvC;;AKjvME;;;EoDLI,oCAAgD;AzD4vMtD;;AyDlwME;EACE,oCAAmC;AzDqwMvC;;AK3vME;;;EoDLI,oCAAgD;AzDswMtD;;AyD5wME;EACE,oCAAmC;AzD+wMvC;;AKrwME;;;EoDLI,oCAAgD;AzDgxMtD;;A0D/wMA;EACE,iCAAmC;A1DkxMrC;;A0D/wMA;EACE,wCAAwC;A1DkxM1C;;A2D7xMA;EAAkB,oCAAoD;A3DiyMtE;;A2DhyMA;EAAkB,wCAAwD;A3DoyM1E;;A2DnyMA;EAAkB,0CAA0D;A3DuyM5E;;A2DtyMA;EAAkB,2CAA2D;A3D0yM7E;;A2DzyMA;EAAkB,yCAAyD;A3D6yM3E;;A2D3yMA;EAAmB,oBAAoB;A3D+yMvC;;A2D9yMA;EAAmB,wBAAwB;A3DkzM3C;;A2DjzMA;EAAmB,0BAA0B;A3DqzM7C;;A2DpzM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E62OvD;;AsE72OI;EAAuB,uBAA4B;AtEi3OvD;;AsEj3OI;EAAuB,uBAA4B;AtEq3OvD;;AsEj3OA;EAAU,0BAA0B;AtEq3OpC;;AsEp3OA;EAAU,2BAA2B;AtEw3OrC;;AsEp3OA;EAAc,2BAA2B;AtEw3OzC;;AsEv3OA;EAAc,4BAA4B;AtE23O1C;;AsEz3OA;EAAU,uBAAuB;AtE63OjC;;AsE53OA;EAAU,wBAAwB;AtEg4OlC;;AuEz4OQ;EAAgC,oBAA4B;AvE64OpE;;AuE54OQ;;EAEE,wBAAoC;AvE+4O9C;;AuE74OQ;;EAEE,0BAAwC;AvEg5OlD;;AuE94OQ;;EAEE,2BAA0C;AvEi5OpD;;AuE/4OQ;;EAEE,yBAAsC;AvEk5OhD;;AuEj6OQ;EAAgC,0BAA4B;AvEq6OpE;;AuEp6OQ;;EAEE,8BAAoC;AvEu6O9C;;AuEr6OQ;;EAEE,gCAAwC;AvEw6OlD;;AuEt6OQ;;EAEE,iCAA0C;AvEy6OpD;;AuEv6OQ;;EAEE,+BAAsC;AvE06OhD;;AuEz7OQ;EAAgC,yBAA4B;AvE67OpE;;AuE57OQ;;EAEE,6BAAoC;AvE+7O9C;;AuE77OQ;;EAEE,+BAAwC;AvEg8OlD;;AuE97OQ;;EAEE,gCAA0C;AvEi8OpD;;AuE/7OQ;;EAEE,8BAAsC;AvEk8OhD;;AuEj9OQ;EAAgC,uBAA4B;AvEq9OpE;;AuEp9OQ;;EAEE,2BAAoC;AvEu9O9C;;AuEr9OQ;;EAEE,6BAAwC;AvEw9OlD;;AuEt9OQ;;EAEE,8BAA0C;AvEy9OpD;;AuEv9OQ;;EAEE,4BAAsC;AvE09OhD;;AuEz+OQ;EAAgC,yBAA4B;AvE6+OpE;;AuE5+OQ;;EAEE,6BAAoC;AvE++O9C;;AuE7+OQ;;EAEE,+BAAwC;AvEg/OlD;;AuE9+OQ;;EAEE,gCAA0C;AvEi/OpD;;AuE/+OQ;;EAEE,8BAAsC;AvEk/OhD;;AuEjgPQ;EAAgC,uBAA4B;AvEqgPpE;;AuEpgPQ;;EAEE,2BAAoC;AvEugP9C;;AuErgPQ;;EAEE,6BAAwC;AvEwgPlD;;AuEtgPQ;;EAEE,8BAA0C;AvEygPpD;;AuEvgPQ;;EAEE,4BAAsC;AvE0gPhD;;AuEzhPQ;EAAgC,qBAA4B;AvE6hPpE;;AuE5hPQ;;EAEE,yBAAoC;AvE+hP9C;;AuE7hPQ;;EAEE,2BAAwC;AvEgiPlD;;AuE9hPQ;;EAEE,4BAA0C;AvEiiPpD;;AuE/hPQ;;EAEE,0BAAsC;AvEkiPhD;;AuEjjPQ;EAAgC,2BAA4B;AvEqjPpE;;AuEpjPQ;;EAEE,+BAAoC;AvEujP9C;;AuErjPQ;;EAEE,iCAAwC;AvEwjPlD;;AuEtjPQ;;EAEE,kCAA0C;AvEyjPpD;;AuEvjPQ;;EAEE,gCAAsC;AvE0jPhD;;AuEzkPQ;EAAgC,0BAA4B;AvE6kPpE;;AuE5kPQ;;EAEE,8BAAoC;AvE+kP9C;;AuE7kPQ;;EAEE,gCAAwC;AvEglPlD;;AuE9kPQ;;EAEE,iCAA0C;AvEilPpD;;AuE/kPQ;;EAEE,+BAAsC;AvEklPhD;;AuEjmPQ;EAAgC,wBAA4B;AvEqmPpE;;AuEpmPQ;;EAEE,4BAAoC;AvEumP9C;;AuErmPQ;;EAEE,8BAAwC;AvEwmPlD;;AuEtmPQ;;EAEE,+BAA0C;AvEymPpD;;AuEvmPQ;;EAEE,6BAAsC;AvE0mPhD;;AuEznPQ;EAAgC,0BAA4B;AvE6nPpE;;AuE5nPQ;;EAEE,8BAAoC;AvE+nP9C;;AuE7nPQ;;EAEE,gCAAwC;AvEgoPlD;;AuE9nPQ;;EAEE,iCAA0C;AvEioPpD;;AuE/nPQ;;EAEE,+BAAsC;AvEkoPhD;;AuEjpPQ;EAAgC,wBAA4B;AvEqpPpE;;AuEppPQ;;EAEE,4BAAoC;AvEupP9C;;AuErpPQ;;EAEE,8BAAwC;AvEwpPlD;;AuEtpPQ;;EAEE,+BAA0C;AvEypPpD;;AuEvpPQ;;EAEE,6BAAsC;AvE0pPhD;;AuElpPQ;EAAwB,2BAA2B;AvEspP3D;;AuErpPQ;;EAEE,+BAA+B;AvEwpPzC;;AuEtpPQ;;EAEE,iCAAiC;AvEypP3C;;AuEvpPQ;;EAEE,kCAAkC;AvE0pP5C;;AuExpPQ;;EAEE,gCAAgC;AvE2pP1C;;AuE1qPQ;EAAwB,0BAA2B;AvE8qP3D;;AuE7qPQ;;EAEE,8BAA+B;AvEgrPzC;;AuE9qPQ;;EAEE,gCAAiC;AvEirP3C;;AuE/qPQ;;EAEE,iCAAkC;AvEkrP5C;;AuEhrPQ;;EAEE,+BAAgC;AvEmrP1C;;AuElsPQ;EAAwB,wBAA2B;AvEssP3D;;AuErsPQ;;EAEE,4BAA+B;AvEwsPzC;;AuEtsPQ;;EAEE,8BAAiC;AvEysP3C;;AuEvsPQ;;EAEE,+BAAkC;AvE0sP5C;;AuExsPQ;;EAEE,6BAAgC;AvE2sP1C;;AuE1tPQ;EAAwB,0BAA2B;AvE8tP3D;;AuE7tPQ;;EAEE,8BAA+B;AvEguPzC;;AuE9tPQ;;EAEE,gCAAiC;AvEiuP3C;;AuE/tPQ;;EAEE,iCAAkC;AvEkuP5C;;AuEhuPQ;;EAEE,+BAAgC;AvEmuP1C;;AuElvPQ;EAAwB,wBAA2B;AvEsvP3D;;AuErvPQ;;EAEE,4BAA+B;AvEwvPzC;;AuEtvPQ;;EAEE,8BAAiC;AvEyvP3C;;AuEvvPQ;;EAEE,+BAAkC;AvE0vP5C;;AuExvPQ;;EAEE,6BAAgC;AvE2vP1C;;AuErvPI;EAAmB,uBAAuB;AvEyvP9C;;AuExvPI;;EAEE,2BAA2B;AvE2vPjC;;AuEzvPI;;EAEE,6BAA6B;AvE4vPnC;;AuE1vPI;;EAEE,8BAA8B;AvE6vPpC;;AuE3vPI;;EAEE,4BAA4B;AvE8vPlC;;AcvwPI;EyDlDI;IAAgC,oBAA4B;EvE8zPlE;EuE7zPM;;IAEE,wBAAoC;EvE+zP5C;EuE7zPM;;IAEE,0BAAwC;EvE+zPhD;EuE7zPM;;IAEE,2BAA0C;EvE+zPlD;EuE7zPM;;IAEE,yBAAsC;EvE+zP9C;EuE90PM;IAAgC,0BAA4B;EvEi1PlE;EuEh1PM;;IAEE,8BAAoC;EvEk1P5C;EuEh1PM;;IAEE,gCAAwC;EvEk1PhD;EuEh1PM;;IAEE,iCAA0C;EvEk1PlD;EuEh1PM;;IAEE,+BAAsC;EvEk1P9C;EuEj2PM;IAAgC,yBAA4B;EvEo2PlE;EuEn2PM;;IAEE,6BAAoC;EvEq2P5C;EuEn2PM;;IAEE,+BAAwC;EvEq2PhD;EuEn2PM;;IAEE,gCAA0C;EvEq2PlD;EuEn2PM;;IAEE,8BAAsC;EvEq2P9C;EuEp3PM;IAAgC,uBAA4B;EvEu3PlE;EuEt3PM;;IAEE,2BAAoC;EvEw3P5C;EuEt3PM;;IAEE,6BAAwC;EvEw3PhD;EuEt3PM;;IAEE,8BAA0C;EvEw3PlD;EuEt3PM;;IAEE,4BAAsC;EvEw3P9C;EuEv4PM;IAAgC,yBAA4B;EvE04PlE;EuEz4PM;;IAEE,6BAAoC;EvE24P5C;EuEz4PM;;IAEE,+BAAwC;EvE24PhD;EuEz4PM;;IAEE,gCAA0C;EvE24PlD;EuEz4PM;;IAEE,8BAAsC;EvE24P9C;EuE15PM;IAAgC,uBAA4B;EvE65PlE;EuE55PM;;IAEE,2BAAoC;EvE85P5C;EuE55PM;;IAEE,6BAAwC;EvE85PhD;EuE55PM;;IAEE,8BAA0C;EvE85PlD;EuE55PM;;IAEE,4BAAsC;EvE85P9C;EuE76PM;IAAgC,qBAA4B;EvEg7PlE;EuE/6PM;;IAEE,yBAAoC;EvEi7P5C;EuE/6PM;;IAEE,2BAAwC;EvEi7PhD;EuE/6PM;;IAEE,4BAA0C;EvEi7PlD;EuE/6PM;;IAEE,0BAAsC;EvEi7P9C;EuEh8PM;IAAgC,2BAA4B;EvEm8PlE;EuEl8PM;;IAEE,+BAAoC;EvEo8P5C;EuEl8PM;;IAEE,iCAAwC;EvEo8PhD;EuEl8PM;;IAEE,kCAA0C;EvEo8PlD;EuEl8PM;;IAEE,gCAAsC;EvEo8P9C;EuEn9PM;IAAgC,0BAA4B;EvEs9PlE;EuEr9PM;;IAEE,8BAAoC;EvEu9P5C;EuEr9PM;;IAEE,gCAAwC;EvEu9PhD;EuEr9PM;;IAEE,iCAA0C;EvEu9PlD;EuEr9PM;;IAEE,+BAAsC;EvEu9P9C;EuEt+PM;IAAgC,wBAA4B;EvEy+PlE;EuEx+PM;;IAEE,4BAAoC;EvE0+P5C;EuEx+PM;;IAEE,8BAAwC;EvE0+PhD;EuEx+PM;;IAEE,+BAA0C;EvE0+PlD;EuEx+PM;;IAEE,6BAAsC;EvE0+P9C;EuEz/PM;IAAgC,0BAA4B;EvE4/PlE;EuE3/PM;;IAEE,8BAAoC;EvE6/P5C;EuE3/PM;;IAEE,gCAAwC;EvE6/PhD;EuE3/PM;;IAEE,iCAA0C;EvE6/PlD;EuE3/PM;;IAEE,+BAAsC;EvE6/P9C;EuE5gQM;IAAgC,wBAA4B;EvE+gQlE;EuE9gQM;;IAEE,4BAAoC;EvEghQ5C;EuE9gQM;;IAEE,8BAAwC;EvEghQhD;EuE9gQM;;IAEE,+BAA0C;EvEghQlD;EuE9gQM;;IAEE,6BAAsC;EvEghQ9C;EuExgQM;IAAwB,2BAA2B;EvE2gQzD;EuE1gQM;;IAEE,+BAA+B;EvE4gQvC;EuE1gQM;;IAEE,iCAAiC;EvE4gQzC;EuE1gQM;;IAEE,kCAAkC;EvE4gQ1C;EuE1gQM;;IAEE,gCAAgC;EvE4gQxC;EuE3hQM;IAAwB,0BAA2B;EvE8hQzD;EuE7hQM;;IAEE,8BAA+B;EvE+hQvC;EuE7hQM;;IAEE,gCAAiC;EvE+hQzC;EuE7hQM;;IAEE,iCAAkC;EvE+hQ1C;EuE7hQM;;IAEE,+BAAgC;EvE+hQxC;EuE9iQM;IAAwB,wBAA2B;EvEijQzD;EuEhjQM;;IAEE,4BAA+B;EvEkjQvC;EuEhjQM;;IAEE,8BAAiC;EvEkjQzC;EuEhjQM;;IAEE,+BAAkC;EvEkjQ1C;EuEhjQM;;IAEE,6BAAgC;EvEkjQxC;EuEjkQM;IAAwB,0BAA2B;EvEokQzD;EuEnkQM;;IAEE,8BAA+B;EvEqkQvC;EuEnkQM;;IAEE,gCAAiC;EvEqkQzC;EuEnkQM;;IAEE,iCAAkC;EvEqkQ1C;EuEnkQM;;IAEE,+BAAgC;EvEqkQxC;EuEplQM;IAAwB,wBAA2B;EvEulQzD;EuEtlQM;;IAEE,4BAA+B;EvEwlQvC;EuEtlQM;;IAEE,8BAAiC;EvEwlQzC;EuEtlQM;;IAEE,+BAAkC;EvEwlQ1C;EuEtlQM;;IAEE,6BAAgC;EvEwlQxC;EuEllQE;IAAmB,uBAAuB;EvEqlQ5C;EuEplQE;;IAEE,2BAA2B;EvEslQ/B;EuEplQE;;IAEE,6BAA6B;EvEslQjC;EuEplQE;;IAEE,8BAA8B;EvEslQlC;EuEplQE;;IAEE,4BAA4B;EvEslQhC;AACF;;AchmQI;EyDlDI;IAAgC,oBAA4B;EvEupQlE;EuEtpQM;;IAEE,wBAAoC;EvEwpQ5C;EuEtpQM;;IAEE,0BAAwC;EvEwpQhD;EuEtpQM;;IAEE,2BAA0C;EvEwpQlD;EuEtpQM;;IAEE,yBAAsC;EvEwpQ9C;EuEvqQM;IAAgC,0BAA4B;EvE0qQlE;EuEzqQM;;IAEE,8BAAoC;EvE2qQ5C;EuEzqQM;;IAEE,gCAAwC;EvE2qQhD;EuEzqQM;;IAEE,iCAA0C;EvE2qQlD;EuEzqQM;;IAEE,+BAAsC;EvE2qQ9C;EuE1rQM;IAAgC,yBAA4B;EvE6rQlE;EuE5rQM;;IAEE,6BAAoC;EvE8rQ5C;EuE5rQM;;IAEE,+BAAwC;EvE8rQhD;EuE5rQM;;IAEE,gCAA0C;EvE8rQlD;EuE5rQM;;IAEE,8BAAsC;EvE8rQ9C;EuE7sQM;IAAgC,uBAA4B;EvEgtQlE;EuE/sQM;;IAEE,2BAAoC;EvEitQ5C;EuE/sQM;;IAEE,6BAAwC;EvEitQhD;EuE/sQM;;IAEE,8BAA0C;EvEitQlD;EuE/sQM;;IAEE,4BAAsC;EvEitQ9C;EuEhuQM;IAAgC,yBAA4B;EvEmuQlE;EuEluQM;;IAEE,6BAAoC;EvEouQ5C;EuEluQM;;IAEE,+BAAwC;EvEouQhD;EuEluQM;;IAEE,gCAA0C;EvEouQlD;EuEluQM;;IAEE,8BAAsC;EvEouQ9C;EuEnvQM;IAAgC,uBAA4B;EvEsvQlE;EuErvQM;;IAEE,2BAAoC;EvEuvQ5C;EuErvQM;;IAEE,6BAAwC;EvEuvQhD;EuErvQM;;IAEE,8BAA0C;EvEuvQlD;EuErvQM;;IAEE,4BAAsC;EvEuvQ9C;EuEtwQM;IAAgC,qBAA4B;EvEywQlE;EuExwQM;;IAEE,yBAAoC;EvE0wQ5C;EuExwQM;;IAEE,2BAAwC;EvE0wQhD;EuExwQM;;IAEE,4BAA0C;EvE0wQlD;EuExwQM;;IAEE,0BAAsC;EvE0wQ9C;EuEzxQM;IAAgC,2BAA4B;EvE4xQlE;EuE3xQM;;IAEE,+BAAoC;EvE6xQ5C;EuE3xQM;;IAEE,iCAAwC;EvE6xQhD;EuE3xQM;;IAEE,kCAA0C;EvE6xQlD;EuE3xQM;;IAEE,gCAAsC;EvE6xQ9C;EuE5yQM;IAAgC,0BAA4B;EvE+yQlE;EuE9yQM;;IAEE,8BAAoC;EvEgzQ5C;EuE9yQM;;IAEE,gCAAwC;EvEgzQhD;EuE9yQM;;IAEE,iCAA0C;EvEgzQlD;EuE9yQM;;IAEE,+BAAsC;EvEgzQ9C;EuE/zQM;IAAgC,wBAA4B;EvEk0QlE;EuEj0QM;;IAEE,4BAAoC;EvEm0Q5C;EuEj0QM;;IAEE,8BAAwC;EvEm0QhD;EuEj0QM;;IAEE,+BAA0C;EvEm0QlD;EuEj0QM;;IAEE,6BAAsC;EvEm0Q9C;EuEl1QM;IAAgC,0BAA4B;EvEq1QlE;EuEp1QM;;IAEE,8BAAoC;EvEs1Q5C;EuEp1QM;;IAEE,gCAAwC;EvEs1QhD;EuEp1QM;;IAEE,iCAA0C;EvEs1QlD;EuEp1QM;;IAEE,+BAAsC;EvEs1Q9C;EuEr2QM;IAAgC,wBAA4B;EvEw2QlE;EuEv2QM;;IAEE,4BAAoC;EvEy2Q5C;EuEv2QM;;IAEE,8BAAwC;EvEy2QhD;EuEv2QM;;IAEE,+BAA0C;EvEy2QlD;EuEv2QM;;IAEE,6BAAsC;EvEy2Q9C;EuEj2QM;IAAwB,2BAA2B;EvEo2QzD;EuEn2QM;;IAEE,+BAA+B;EvEq2QvC;EuEn2QM;;IAEE,iCAAiC;EvEq2QzC;EuEn2QM;;IAEE,kCAAkC;EvEq2Q1C;EuEn2QM;;IAEE,gCAAgC;EvEq2QxC;EuEp3QM;IAAwB,0BAA2B;EvEu3QzD;EuEt3QM;;IAEE,8BAA+B;EvEw3QvC;EuEt3QM;;IAEE,gCAAiC;EvEw3QzC;EuEt3QM;;IAEE,iCAAkC;EvEw3Q1C;EuEt3QM;;IAEE,+BAAgC;EvEw3QxC;EuEv4QM;IAAwB,wBAA2B;EvE04QzD;EuEz4QM;;IAEE,4BAA+B;EvE24QvC;EuEz4QM;;IAEE,8BAAiC;EvE24QzC;EuEz4QM;;IAEE,+BAAkC;EvE24Q1C;EuEz4QM;;IAEE,6BAAgC;EvE24QxC;EuE15QM;IAAwB,0BAA2B;EvE65QzD;EuE55QM;;IAEE,8BAA+B;EvE85QvC;EuE55QM;;IAEE,gCAAiC;EvE85QzC;EuE55QM;;IAEE,iCAAkC;EvE85Q1C;EuE55QM;;IAEE,+BAAgC;EvE85QxC;EuE76QM;IAAwB,wBAA2B;EvEg7QzD;EuE/6QM;;IAEE,4BAA+B;EvEi7QvC;EuE/6QM;;IAEE,8BAAiC;EvEi7QzC;EuE/6QM;;IAEE,+BAAkC;EvEi7Q1C;EuE/6QM;;IAEE,6BAAgC;EvEi7QxC;EuE36QE;IAAmB,uBAAuB;EvE86Q5C;EuE76QE;;IAEE,2BAA2B;EvE+6Q/B;EuE76QE;;IAEE,6BAA6B;EvE+6QjC;EuE76QE;;IAEE,8BAA8B;EvE+6QlC;EuE76QE;;IAEE,4BAA4B;EvE+6QhC;AACF;;Acz7QI;EyDlDI;IAAgC,oBAA4B;EvEg/QlE;EuE/+QM;;IAEE,wBAAoC;EvEi/Q5C;EuE/+QM;;IAEE,0BAAwC;EvEi/QhD;EuE/+QM;;IAEE,2BAA0C;EvEi/QlD;EuE/+QM;;IAEE,yBAAsC;EvEi/Q9C;EuEhgRM;IAAgC,0BAA4B;EvEmgRlE;EuElgRM;;IAEE,8BAAoC;EvEogR5C;EuElgRM;;IAEE,gCAAwC;EvEogRhD;EuElgRM;;IAEE,iCAA0C;EvEogRlD;EuElgRM;;IAEE,+BAAsC;EvEogR9C;EuEnhRM;IAAgC,yBAA4B;EvEshRlE;EuErhRM;;IAEE,6BAAoC;EvEuhR5C;EuErhRM;;IAEE,+BAAwC;EvEuhRhD;EuErhRM;;IAEE,gCAA0C;EvEuhRlD;EuErhRM;;IAEE,8BAAsC;EvEuhR9C;EuEtiRM;IAAgC,uBAA4B;EvEyiRlE;EuExiRM;;IAEE,2BAAoC;EvE0iR5C;EuExiRM;;IAEE,6BAAwC;EvE0iRhD;EuExiRM;;IAEE,8BAA0C;EvE0iRlD;EuExiRM;;IAEE,4BAAsC;EvE0iR9C;EuEzjRM;IAAgC,yBAA4B;EvE4jRlE;EuE3jRM;;IAEE,6BAAoC;EvE6jR5C;EuE3jRM;;IAEE,+BAAwC;EvE6jRhD;EuE3jRM;;IAEE,gCAA0C;EvE6jRlD;EuE3jRM;;IAEE,8BAAsC;EvE6jR9C;EuE5kRM;IAAgC,uBAA4B;EvE+kRlE;EuE9kRM;;IAEE,2BAAoC;EvEglR5C;EuE9kRM;;IAEE,6BAAwC;EvEglRhD;EuE9kRM;;IAEE,8BAA0C;EvEglRlD;EuE9kRM;;IAEE,4BAAsC;EvEglR9C;EuE/lRM;IAAgC,qBAA4B;EvEkmRlE;EuEjmRM;;IAEE,yBAAoC;EvEmmR5C;EuEjmRM;;IAEE,2BAAwC;EvEmmRhD;EuEjmRM;;IAEE,4BAA0C;EvEmmRlD;EuEjmRM;;IAEE,0BAAsC;EvEmmR9C;EuElnRM;IAAgC,2BAA4B;EvEqnRlE;EuEpnRM;;IAEE,+BAAoC;EvEsnR5C;EuEpnRM;;IAEE,iCAAwC;EvEsnRhD;EuEpnRM;;IAEE,kCAA0C;EvEsnRlD;EuEpnRM;;IAEE,gCAAsC;EvEsnR9C;EuEroRM;IAAgC,0BAA4B;EvEwoRlE;EuEvoRM;;IAEE,8BAAoC;EvEyoR5C;EuEvoRM;;IAEE,gCAAwC;EvEyoRhD;EuEvoRM;;IAEE,iCAA0C;EvEyoRlD;EuEvoRM;;IAEE,+BAAsC;EvEyoR9C;EuExpRM;IAAgC,wBAA4B;EvE2pRlE;EuE1pRM;;IAEE,4BAAoC;EvE4pR5C;EuE1pRM;;IAEE,8BAAwC;EvE4pRhD;EuE1pRM;;IAEE,+BAA0C;EvE4pRlD;EuE1pRM;;IAEE,6BAAsC;EvE4pR9C;EuE3qRM;IAAgC,0BAA4B;EvE8qRlE;EuE7qRM;;IAEE,8BAAoC;EvE+qR5C;EuE7qRM;;IAEE,gCAAwC;EvE+qRhD;EuE7qRM;;IAEE,iCAA0C;EvE+qRlD;EuE7qRM;;IAEE,+BAAsC;EvE+qR9C;EuE9rRM;IAAgC,wBAA4B;EvEisRlE;EuEhsRM;;IAEE,4BAAoC;EvEksR5C;EuEhsRM;;IAEE,8BAAwC;EvEksRhD;EuEhsRM;;IAEE,+BAA0C;EvEksRlD;EuEhsRM;;IAEE,6BAAsC;EvEksR9C;EuE1rRM;IAAwB,2BAA2B;EvE6rRzD;EuE5rRM;;IAEE,+BAA+B;EvE8rRvC;EuE5rRM;;IAEE,iCAAiC;EvE8rRzC;EuE5rRM;;IAEE,kCAAkC;EvE8rR1C;EuE5rRM;;IAEE,gCAAgC;EvE8rRxC;EuE7sRM;IAAwB,0BAA2B;EvEgtRzD;EuE/sRM;;IAEE,8BAA+B;EvEitRvC;EuE/sRM;;IAEE,gCAAiC;EvEitRzC;EuE/sRM;;IAEE,iCAAkC;EvEitR1C;EuE/sRM;;IAEE,+BAAgC;EvEitRxC;EuEhuRM;IAAwB,wBAA2B;EvEmuRzD;EuEluRM;;IAEE,4BAA+B;EvEouRvC;EuEluRM;;IAEE,8BAAiC;EvEouRzC;EuEluRM;;IAEE,+BAAkC;EvEouR1C;EuEluRM;;IAEE,6BAAgC;EvEouRxC;EuEnvRM;IAAwB,0BAA2B;EvEsvRzD;EuErvRM;;IAEE,8BAA+B;EvEuvRvC;EuErvRM;;IAEE,gCAAiC;EvEuvRzC;EuErvRM;;IAEE,iCAAkC;EvEuvR1C;EuErvRM;;IAEE,+BAAgC;EvEuvRxC;EuEtwRM;IAAwB,wBAA2B;EvEywRzD;EuExwRM;;IAEE,4BAA+B;EvE0wRvC;EuExwRM;;IAEE,8BAAiC;EvE0wRzC;EuExwRM;;IAEE,+BAAkC;EvE0wR1C;EuExwRM;;IAEE,6BAAgC;EvE0wRxC;EuEpwRE;IAAmB,uBAAuB;EvEuwR5C;EuEtwRE;;IAEE,2BAA2B;EvEwwR/B;EuEtwRE;;IAEE,6BAA6B;EvEwwRjC;EuEtwRE;;IAEE,8BAA8B;EvEwwRlC;EuEtwRE;;IAEE,4BAA4B;EvEwwRhC;AACF;;AclxRI;EyDlDI;IAAgC,oBAA4B;EvEy0RlE;EuEx0RM;;IAEE,wBAAoC;EvE00R5C;EuEx0RM;;IAEE,0BAAwC;EvE00RhD;EuEx0RM;;IAEE,2BAA0C;EvE00RlD;EuEx0RM;;IAEE,yBAAsC;EvE00R9C;EuEz1RM;IAAgC,0BAA4B;EvE41RlE;EuE31RM;;IAEE,8BAAoC;EvE61R5C;EuE31RM;;IAEE,gCAAwC;EvE61RhD;EuE31RM;;IAEE,iCAA0C;EvE61RlD;EuE31RM;;IAEE,+BAAsC;EvE61R9C;EuE52RM;IAAgC,yBAA4B;EvE+2RlE;EuE92RM;;IAEE,6BAAoC;EvEg3R5C;EuE92RM;;IAEE,+BAAwC;EvEg3RhD;EuE92RM;;IAEE,gCAA0C;EvEg3RlD;EuE92RM;;IAEE,8BAAsC;EvEg3R9C;EuE/3RM;IAAgC,uBAA4B;EvEk4RlE;EuEj4RM;;IAEE,2BAAoC;EvEm4R5C;EuEj4RM;;IAEE,6BAAwC;EvEm4RhD;EuEj4RM;;IAEE,8BAA0C;EvEm4RlD;EuEj4RM;;IAEE,4BAAsC;EvEm4R9C;EuEl5RM;IAAgC,yBAA4B;EvEq5RlE;EuEp5RM;;IAEE,6BAAoC;EvEs5R5C;EuEp5RM;;IAEE,+BAAwC;EvEs5RhD;EuEp5RM;;IAEE,gCAA0C;EvEs5RlD;EuEp5RM;;IAEE,8BAAsC;EvEs5R9C;EuEr6RM;IAAgC,uBAA4B;EvEw6RlE;EuEv6RM;;IAEE,2BAAoC;EvEy6R5C;EuEv6RM;;IAEE,6BAAwC;EvEy6RhD;EuEv6RM;;IAEE,8BAA0C;EvEy6RlD;EuEv6RM;;IAEE,4BAAsC;EvEy6R9C;EuEx7RM;IAAgC,qBAA4B;EvE27RlE;EuE17RM;;IAEE,yBAAoC;EvE47R5C;EuE17RM;;IAEE,2BAAwC;EvE47RhD;EuE17RM;;IAEE,4BAA0C;EvE47RlD;EuE17RM;;IAEE,0BAAsC;EvE47R9C;EuE38RM;IAAgC,2BAA4B;EvE88RlE;EuE78RM;;IAEE,+BAAoC;EvE+8R5C;EuE78RM;;IAEE,iCAAwC;EvE+8RhD;EuE78RM;;IAEE,kCAA0C;EvE+8RlD;EuE78RM;;IAEE,gCAAsC;EvE+8R9C;EuE99RM;IAAgC,0BAA4B;EvEi+RlE;EuEh+RM;;IAEE,8BAAoC;EvEk+R5C;EuEh+RM;;IAEE,gCAAwC;EvEk+RhD;EuEh+RM;;IAEE,iCAA0C;EvEk+RlD;EuEh+RM;;IAEE,+BAAsC;EvEk+R9C;EuEj/RM;IAAgC,wBAA4B;EvEo/RlE;EuEn/RM;;IAEE,4BAAoC;EvEq/R5C;EuEn/RM;;IAEE,8BAAwC;EvEq/RhD;EuEn/RM;;IAEE,+BAA0C;EvEq/RlD;EuEn/RM;;IAEE,6BAAsC;EvEq/R9C;EuEpgSM;IAAgC,0BAA4B;EvEugSlE;EuEtgSM;;IAEE,8BAAoC;EvEwgS5C;EuEtgSM;;IAEE,gCAAwC;EvEwgShD;EuEtgSM;;IAEE,iCAA0C;EvEwgSlD;EuEtgSM;;IAEE,+BAAsC;EvEwgS9C;EuEvhSM;IAAgC,wBAA4B;EvE0hSlE;EuEzhSM;;IAEE,4BAAoC;EvE2hS5C;EuEzhSM;;IAEE,8BAAwC;EvE2hShD;EuEzhSM;;IAEE,+BAA0C;EvE2hSlD;EuEzhSM;;IAEE,6BAAsC;EvE2hS9C;EuEnhSM;IAAwB,2BAA2B;EvEshSzD;EuErhSM;;IAEE,+BAA+B;EvEuhSvC;EuErhSM;;IAEE,iCAAiC;EvEuhSzC;EuErhSM;;IAEE,kCAAkC;EvEuhS1C;EuErhSM;;IAEE,gCAAgC;EvEuhSxC;EuEtiSM;IAAwB,0BAA2B;EvEyiSzD;EuExiSM;;IAEE,8BAA+B;EvE0iSvC;EuExiSM;;IAEE,gCAAiC;EvE0iSzC;EuExiSM;;IAEE,iCAAkC;EvE0iS1C;EuExiSM;;IAEE,+BAAgC;EvE0iSxC;EuEzjSM;IAAwB,wBAA2B;EvE4jSzD;EuE3jSM;;IAEE,4BAA+B;EvE6jSvC;EuE3jSM;;IAEE,8BAAiC;EvE6jSzC;EuE3jSM;;IAEE,+BAAkC;EvE6jS1C;EuE3jSM;;IAEE,6BAAgC;EvE6jSxC;EuE5kSM;IAAwB,0BAA2B;EvE+kSzD;EuE9kSM;;IAEE,8BAA+B;EvEglSvC;EuE9kSM;;IAEE,gCAAiC;EvEglSzC;EuE9kSM;;IAEE,iCAAkC;EvEglS1C;EuE9kSM;;IAEE,+BAAgC;EvEglSxC;EuE/lSM;IAAwB,wBAA2B;EvEkmSzD;EuEjmSM;;IAEE,4BAA+B;EvEmmSvC;EuEjmSM;;IAEE,8BAAiC;EvEmmSzC;EuEjmSM;;IAEE,+BAAkC;EvEmmS1C;EuEjmSM;;IAEE,6BAAgC;EvEmmSxC;EuE7lSE;IAAmB,uBAAuB;EvEgmS5C;EuE/lSE;;IAEE,2BAA2B;EvEimS/B;EuE/lSE;;IAEE,6BAA6B;EvEimSjC;EuE/lSE;;IAEE,8BAA8B;EvEimSlC;EuE/lSE;;IAEE,4BAA4B;EvEimShC;AACF;;AwEnqSA;EAEI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,UAAU;EAEV,oBAAoB;EACpB,WAAW;EAEX,kCAAkC;AxEmqStC;;AyE7qSA;EAAkB,4GAA8C;AzEirShE;;AyE7qSA;EAAiB,8BAA8B;AzEirS/C;;AyEhrSA;EAAiB,8BAA8B;AzEorS/C;;AyEnrSA;EAAiB,8BAA8B;AzEurS/C;;AyEtrSA;ECTE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;A1EmsSrB;;AyEprSI;EAAwB,2BAA2B;AzEwrSvD;;AyEvrSI;EAAwB,4BAA4B;AzE2rSxD;;AyE1rSI;EAAwB,6BAA6B;AzE8rSzD;;AczpSI;E2DvCA;IAAwB,2BAA2B;EzEqsSrD;EyEpsSE;IAAwB,4BAA4B;EzEusStD;EyEtsSE;IAAwB,6BAA6B;EzEysSvD;AACF;;AcrqSI;E2DvCA;IAAwB,2BAA2B;EzEitSrD;EyEhtSE;IAAwB,4BAA4B;EzEmtStD;EyEltSE;IAAwB,6BAA6B;EzEqtSvD;AACF;;AcjrSI;E2DvCA;IAAwB,2BAA2B;EzE6tSrD;EyE5tSE;IAAwB,4BAA4B;EzE+tStD;EyE9tSE;IAAwB,6BAA6B;EzEiuSvD;AACF;;Ac7rSI;E2DvCA;IAAwB,2BAA2B;EzEyuSrD;EyExuSE;IAAwB,4BAA4B;EzE2uStD;EyE1uSE;IAAwB,6BAA6B;EzE6uSvD;AACF;;AyExuSA;EAAmB,oCAAoC;AzE4uSvD;;AyE3uSA;EAAmB,oCAAoC;AzE+uSvD;;AyE9uSA;EAAmB,qCAAqC;AzEkvSxD;;AyE9uSA;EAAuB,2BAA0C;AzEkvSjE;;AyEjvSA;EAAuB,+BAA4C;AzEqvSnE;;AyEpvSA;EAAuB,2BAA2C;AzEwvSlE;;AyEvvSA;EAAuB,2BAAyC;AzE2vShE;;AyE1vSA;EAAuB,8BAA2C;AzE8vSlE;;AyE7vSA;EAAuB,6BAA6B;AzEiwSpD;;AyE7vSA;EAAc,sBAAwB;AzEiwStC;;A2ExySE;EACE,yBAAwB;A3E2yS5B;;AKjySE;EsELM,yBAA0E;A3E0ySlF;;A2EhzSE;EACE,yBAAwB;A3EmzS5B;;AKzySE;EsELM,yBAA0E;A3EkzSlF;;A2ExzSE;EACE,yBAAwB;A3E2zS5B;;AKjzSE;EsELM,yBAA0E;A3E0zSlF;;A2Eh0SE;EACE,yBAAwB;A3Em0S5B;;AKzzSE;EsELM,yBAA0E;A3Ek0SlF;;A2Ex0SE;EACE,yBAAwB;A3E20S5B;;AKj0SE;EsELM,yBAA0E;A3E00SlF;;A2Eh1SE;EACE,yBAAwB;A3Em1S5B;;AKz0SE;EsELM,yBAA0E;A3Ek1SlF;;A2Ex1SE;EACE,yBAAwB;A3E21S5B;;AKj1SE;EsELM,yBAA0E;A3E01SlF;;A2Eh2SE;EACE,yBAAwB;A3Em2S5B;;AKz1SE;EsELM,yBAA0E;A3Ek2SlF;;AyE3zSA;EAAa,yBAA6B;AzE+zS1C;;AyE9zSA;EAAc,yBAA6B;AzEk0S3C;;AyEh0SA;EAAiB,oCAAkC;AzEo0SnD;;AyEn0SA;EAAiB,0CAAkC;AzEu0SnD;;AyEn0SA;EGvDE,WAAW;EACX,kBAAkB;EAClB,iBAAiB;EACjB,6BAA6B;EAC7B,SAAS;A5E83SX;;AyEv0SA;EAAwB,gCAAgC;AzE20SxD;;AyEz0SA;EACE,iCAAiC;EACjC,gCAAgC;AzE40SlC;;AyEv0SA;EAAc,yBAAyB;AzE20SvC;;A6E54SA;EACE,8BAA8B;A7E+4ShC;;A6E54SA;EACE,6BAA6B;A7E+4S/B;;A8E/4SE;E5EOF;;;I4EDM,4BAA4B;IAE5B,2BAA2B;E9E+4S/B;E8E54SE;IAEI,0BAA0B;E9E64ShC;E8Ep4SE;IACE,6BAA6B;E9Es4SjC;EExsSF;I4E/KM,gCAAgC;E9E03SpC;E8Ex3SE;;IAEE,yB3EzCY;I2E0CZ,wBAAwB;E9E03S5B;E8Ev3SE;;IAEE,wBAAwB;E9Ey3S5B;E8Et3SE;;;IAGE,UAAU;IACV,SAAS;E9Ew3Sb;E8Er3SE;;IAEE,uBAAuB;E9Eu3S3B;E8E/2SE;IACE,Q3E0iCgC;EHu0QpC;EEp5SF;I4EsCM,2BAA2C;E9Ei3S/C;E8E/2SE;IACE,2BAA2C;E9Ei3S/C;EiCt7SF;I6C0EM,aAAa;E9E+2SjB;EsCr8SF;IwCyFM,sB3E7ES;EH47Sb;EgBz8SF;I8D8FM,oCAAoC;E9E82SxC;E8E/2SE;;IAKI,iCAAmC;E9E82SzC;EgBx6SF;;I8DiEQ,oCAAsC;E9E22S5C;EgBv1SF;I8DfM,cAAc;E9Ey2SlB;EiBt9SA;;;;I6DmHM,qB3E9GU;EHu9ShB;EgBl3SF;I8DcM,cAAc;IACd,qB3EpHY;EH29ShB;AACF","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v4.6.1 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n","/*!\n * Bootstrap v4.6.1 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\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 padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\ninput[type=\"date\"].form-control,\ninput[type=\"time\"].form-control,\ninput[type=\"datetime-local\"].form-control,\ninput[type=\"month\"].form-control {\n appearance: none;\n}\n\nselect.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.form-row > .col > .valid-tooltip,\n.form-row > [class*=\"col-\"] > .valid-tooltip {\n left: 5px;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem) !important;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated select.form-control:valid, select.form-control.is-valid {\n padding-right: 3rem !important;\n background-position: right 1.5rem center;\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem) !important;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.form-row > .col > .invalid-tooltip,\n.form-row > [class*=\"col-\"] > .invalid-tooltip {\n left: 5px;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem) !important;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated select.form-control:invalid, select.form-control.is-invalid {\n padding-right: 3rem !important;\n background-position: right 1.5rem center;\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem) !important;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat, #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #e9ecef;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #adb5bd;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group:not(.has-validation) > .form-control:not(:last-child),\n.input-group:not(.has-validation) > .custom-select:not(:last-child),\n.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label,\n.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group.has-validation > .form-control:nth-last-child(n + 3),\n.input-group.has-validation > .custom-select:nth-last-child(n + 3),\n.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label,\n.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n color-adjust: exact;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: 50% / 50% 50% no-repeat;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") right 0.75rem center/8px 10px no-repeat;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n overflow: hidden;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n overflow: hidden;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: 0;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-link {\n margin-bottom: -1px;\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: 50% / 100% 100% no-repeat;\n}\n\n.navbar-nav-scroll {\n max-height: 75vh;\n overflow-y: auto;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-nav-scroll {\n overflow: visible;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion {\n overflow-anchor: none;\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n float: left;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n line-height: 0;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: 1s linear infinite progress-bar-stripes;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush {\n border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n flex-basis: 350px;\n max-width: 350px;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n height: min-content;\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n height: min-content;\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n padding: 0;\n color: #fff;\n text-align: center;\n background: none;\n border: 0;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: 50% / 100% 100% no-repeat;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: -0.125em;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: .75s linear infinite spinner-border;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: -0.125em;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: .75s linear infinite spinner-grow;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n animation-duration: 1.5s;\n }\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !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-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.user-select-all {\n user-select: all !important;\n}\n\n.user-select-auto {\n user-select: auto !important;\n}\n\n.user-select-none {\n user-select: none !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n word-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */",":root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n // making it impossible to interact with the content\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-` -

-
-
-
- {{ a.paragraph }} -
-
-
- {% endfor %} - - {% elif block.block_type == 'button' %} - - {% elif block.block_type == 'callout' %} -
- {{ block.value.paragraph|richtext }} -
- {% elif block.block_type == 'embedded_media' %} -
- {% if block.value.title or block.value.description %} -
-
- {% embed block.value.media_link.url max_width='4000' %} -
-
-
- {% if block.value.title %} -
{{ block.value.title }}
- {% endif %} - {% if block.value.description %} -

{{ block.value.description }}

- {% endif %} -
- {% else %} -
-
- {% embed block.value.media_link.url max_width='4000' %} -
-
- {% endif %} -
- {% elif block.block_type == 'document' %} - {{ block.value }} - {% elif block.block_type == 'image' %} -

{{block}}

- {% elif block.block_type == 'table' %} - {% include_block block %} - {% elif block.block_type == 'team_members' %} -
- {% for p in block.value %} -
-
-
- {% image p.photo fill-150x150 class="img-fluid rounded-circle" %}
- {{ p.first_name }} {{ p.last_name }}
- {{ p.position }}
- {% if p.email %} - {{ p.email }} - {% endif %} -
-
- {% if p.biography %} - {{ p.biography }} - {% endif %} -
-
-
- {% endfor %} -
- {% endif %} - {% endfor %}{% endraw %} +{% load static %} +{% load wagtailcore_tags %} +{% load wagtailembeds_tags wagtailimages_tags %} +{% load wagtailuserbar %} + +{% for block in page.body %} + {% if block.block_type == 'heading' %} +

{{ block.value }}

+ {% elif block.block_type == 'paragraph' %} +
+ {{ block.value.paragraph|richtext }} +
+ {% elif block.block_type == 'accordion' %} +
+ {% for a in block.value %} +
+
+

+ +

+
+
+
+ {{ a.paragraph }} +
+
+
+ {% endfor %} +
+ {% elif block.block_type == 'button' %} + + {% elif block.block_type == 'image_link' %} + + {% elif block.block_type == 'callout' %} +
+ {{ block.value.paragraph|richtext }} +
+ {% elif block.block_type == 'embedded_media' %} +
+ {% if block.value.title or block.value.description %} +
+
+ {% embed block.value.media_link.url max_width='4000' %} +
+
+
+ {% if block.value.title %} +
{{ block.value.title }}
+ {% endif %} + {% if block.value.description %} +

{{ block.value.description }}

+ {% endif %} +
+ {% else %} +
+
+ {% embed block.value.media_link.url max_width='4000' %} +
+
+ {% endif %} +
+ {% elif block.block_type == 'table' %} + {% include_block block %} + {% elif block.block_type == 'team_members' %} +
+ {% for p in block.value %} +
+
+
+ {% image p.photo fill-150x150 class="img-fluid rounded-circle" %}
+ {{ p.first_name }} {{ p.last_name }}
+ {{ p.position }}
+ {% if p.email %} + {{ p.email }} + {% endif %} +
+
+ {% if p.biography %} + {{ p.biography }} + {% endif %} +
+
+
+ {% endfor %} +
+ {% elif block.block_type == 'map' %} +
+
+
{{ block.value.title }}
+
+ + {{ block.value.description|richtext }} + +
+ {% include_block block %} +
+
+ {% endif %} +{% endfor %} + +{% wagtailuserbar %} From c7e47e0b56c3b2987ebaa3a7742a210ccd281d98 Mon Sep 17 00:00:00 2001 From: msj Date: Thu, 22 Sep 2022 16:01:12 -0400 Subject: [PATCH 44/47] Add translation template --- .../{{ cookiecutter.module_name }}/urls.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/urls.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/urls.py index d5b02f2..da44677 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/urls.py +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/urls.py @@ -33,5 +33,16 @@ path("", include(wagtail_urls)), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) +# Translatable URLs +# These will be available under a language code prefix. For example /en/search/ +# +# from django.conf.urls.i18n import i18n_patterns +# from django.views.i18n import JavaScriptCatalog +# +# urlpatterns += i18n_patterns( +# path("jsi18n/", JavaScriptCatalog.as_view(), name="javascript-catalog"), +# path("", include(wagtail_urls)), +# ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + handler404 = '{{ cookiecutter.module_name }}.views.page_not_found' handler500 = '{{ cookiecutter.module_name }}.views.server_error' From f3cd698524d0e23731ad18a6bb5c055d1bcda860 Mon Sep 17 00:00:00 2001 From: msj Date: Thu, 22 Sep 2022 16:05:25 -0400 Subject: [PATCH 45/47] Fix robots.txt --- .../templates/{{ cookiecutter.module_name }}/robots.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/robots.txt b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/robots.txt index 486856f..8039732 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/robots.txt +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/robots.txt @@ -1,2 +1,2 @@ User-agent: * -{% if ALLOW_CRAWL %}Disallow:{% else %}Disallow: /{% endif %} +{% raw %}{% if ALLOW_CRAWL %}Disallow:{% else %}Disallow: /{% endif %}{% endraw %} From 2c27f988d30b2242a9a040ee05dfa19d9dc62359 Mon Sep 17 00:00:00 2001 From: msj Date: Thu, 20 Oct 2022 16:35:26 -0400 Subject: [PATCH 46/47] Fix translation bugs and add initial fixture data --- .../{{ cookiecutter.app_name }}/README.md | 4 +- .../pre-commit-config.yaml | 6 +- .../fixtures/initial_cms_content.json | 656 ++++++++++++++++++ .../initial_cms_content_custom_pages.json | 15 + .../migrations/0002_auto_20221020_2018.py | 28 + .../{{ cookiecutter.module_name }}/models.py | 2 +- .../{{ cookiecutter.module_name }}/base.html | 27 +- .../partials/core_content.html | 4 +- .../partials/nav-item.html | 4 +- .../partials/nav.html | 11 +- .../templatetags/pageurl_translate.py | 14 + .../templatetags/slugurl_translate.py | 15 + .../{{ cookiecutter.module_name }}/utils.py | 4 +- 13 files changed, 764 insertions(+), 26 deletions(-) create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/migrations/0002_auto_20221020_2018.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templatetags/pageurl_translate.py create mode 100644 docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templatetags/slugurl_translate.py diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md index 73ccc4c..452fa82 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/README.md @@ -51,11 +51,13 @@ The app will be available at http://localhost:8000. The database will be exposed on port 32001. -### Admin Interfaces +### Admin You can access the Wagtail admin interface at http://localhost:8000/admin and the Django admin interface at http://localhost:8000/django-admin. +The default admin account credentials are located in the DataMade LastPass. + ### Running tests diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/pre-commit-config.yaml b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/pre-commit-config.yaml index b1276f0..f188174 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/pre-commit-config.yaml +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/pre-commit-config.yaml @@ -10,14 +10,14 @@ repos: rev: 22.3.0 hooks: - id: black - exclude: ^(efi/migrations/) + exclude: ^({{ cookiecutter.module_name }}/migrations/) - repo: https://github.com/pycqa/flake8 rev: "9f60881" hooks: - id: flake8 - files: efi tests - exclude: efi/migrations + files: {{ cookiecutter.module_name }} tests + exclude: {{ cookiecutter.module_name }}/migrations - repo: https://github.com/rtts/djhtml rev: v1.5.1 # replace with the latest tag on GitHub diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content.json b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content.json index 0d4f101..a5e1ebd 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content.json +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content.json @@ -1,2 +1,658 @@ [ +{ + "model": "auth.group", + "pk": 1, + "fields": { + "name": "Moderators", + "permissions": [ + [ + "access_admin", + "wagtailadmin", + "admin" + ], + [ + "add_document", + "wagtaildocs", + "document" + ], + [ + "change_document", + "wagtaildocs", + "document" + ], + [ + "choose_document", + "wagtaildocs", + "document" + ], + [ + "delete_document", + "wagtaildocs", + "document" + ], + [ + "add_image", + "wagtailimages", + "image" + ], + [ + "change_image", + "wagtailimages", + "image" + ], + [ + "choose_image", + "wagtailimages", + "image" + ], + [ + "delete_image", + "wagtailimages", + "image" + ] + ] + } +}, +{ + "model": "auth.group", + "pk": 2, + "fields": { + "name": "Editors", + "permissions": [ + [ + "access_admin", + "wagtailadmin", + "admin" + ], + [ + "add_document", + "wagtaildocs", + "document" + ], + [ + "change_document", + "wagtaildocs", + "document" + ], + [ + "choose_document", + "wagtaildocs", + "document" + ], + [ + "delete_document", + "wagtaildocs", + "document" + ], + [ + "add_image", + "wagtailimages", + "image" + ], + [ + "change_image", + "wagtailimages", + "image" + ], + [ + "choose_image", + "wagtailimages", + "image" + ], + [ + "delete_image", + "wagtailimages", + "image" + ] + ] + } +}, +{ + "model": "auth.user", + "pk": 1, + "fields": { + "password": "pbkdf2_sha256$260000$lQ1JU1HnCEqOte2RqKR6kl$9UfdTtt47gg6DHkkGS6t2pAw6lFnf74EdrL0rsML/SU=", + "last_login": "2022-10-20T20:11:01.590Z", + "is_superuser": true, + "username": "datamade-admin", + "first_name": "", + "last_name": "", + "email": "", + "is_staff": true, + "is_active": true, + "date_joined": "2022-10-20T20:10:46.158Z", + "groups": [], + "user_permissions": [] + } +}, +{ + "model": "wagtailembeds.embed", + "pk": 1, + "fields": { + "url": "https://www.youtube.com/watch?v=yCcSP3GQhho", + "max_width": null, + "hash": "6f0d4ad5c9e51dfb742ced9d81f88678", + "type": "video", + "html": "", + "title": "Pedagogical Workshop on \"Web Scraping\"", + "author_name": "The University of Chicago", + "provider_name": "YouTube", + "thumbnail_url": "https://i.ytimg.com/vi/yCcSP3GQhho/hqdefault.jpg", + "width": 200, + "height": 113, + "last_updated": "2022-10-20T20:16:02.446Z", + "cache_until": null + } +}, +{ + "model": "wagtailembeds.embed", + "pk": 2, + "fields": { + "url": "https://www.youtube.com/watch?v=yCcSP3GQhho", + "max_width": 4000, + "hash": "7ae7886679f2a96305a3a608f97301b2", + "type": "video", + "html": "", + "title": "Pedagogical Workshop on \"Web Scraping\"", + "author_name": "The University of Chicago", + "provider_name": "YouTube", + "thumbnail_url": "https://i.ytimg.com/vi/yCcSP3GQhho/hqdefault.jpg", + "width": 356, + "height": 200, + "last_updated": "2022-10-20T20:18:12.952Z", + "cache_until": null + } +}, +{ + "model": "wagtailusers.userprofile", + "pk": 1, + "fields": { + "user": [ + "datamade-admin" + ], + "submitted_notifications": true, + "approved_notifications": true, + "rejected_notifications": true, + "updated_comments_notifications": true, + "preferred_language": "", + "current_time_zone": "", + "avatar": "" + } +}, +{ + "model": "wagtailsearch.indexentry", + "pk": 1, + "fields": { + "content_type": [ + "wagtailcore", + "page" + ], + "object_id": "1", + "title_norm": 1.6666666666666667, + "autocomplete": "'root':1", + "title": "'root':1B", + "body": "" + } +}, +{ + "model": "wagtailsearch.indexentry", + "pk": 2, + "fields": { + "content_type": [ + "{{ cookiecutter.module_name}}", + "homepage" + ], + "object_id": "3", + "title_norm": 1.6666666666666667, + "autocomplete": "'home':1", + "title": "'home':1B", + "body": "" + } +}, +{ + "model": "wagtailsearch.indexentry", + "pk": 5, + "fields": { + "content_type": [ + "{{ cookiecutter.module_name}}", + "staticpage" + ], + "object_id": "4", + "title_norm": 0.5555555555555556, + "autocomplete": "'example':1 'page':3 'static':2", + "title": "'exampl':1B 'page':3B 'static':2B", + "body": "" + } +}, +{ + "model": "wagtailcore.locale", + "pk": 1, + "fields": { + "language_code": "en" + } +}, +{ + "model": "wagtailcore.site", + "pk": 2, + "fields": { + "hostname": "localhost", + "port": 80, + "site_name": "{{ cookiecutter.app_verbose_name }}", + "root_page": 3, + "is_default_site": true + } +}, +{ + "model": "wagtailcore.modellogentry", + "pk": 1, + "fields": { + "content_type": [ + "wagtailcore", + "site" + ], + "label": "{{ cookiecutter.app_verbose_name }} [default]", + "action": "wagtail.create", + "data": {}, + "timestamp": "2022-10-20T20:17:54.995Z", + "uuid": "e9830aa4-ae25-4ee5-b3b3-831cd7174ced", + "user": [ + "datamade-admin" + ], + "content_changed": false, + "deleted": false, + "object_id": "2" + } +}, +{ + "model": "wagtailcore.collection", + "pk": 1, + "fields": { + "path": "0001", + "depth": 1, + "numchild": 0, + "name": "Root" + } +}, +{ + "model": "wagtailcore.page", + "pk": 1, + "fields": { + "path": "0001", + "depth": 1, + "numchild": 1, + "translation_key": "90f30c0f-3d76-4470-a644-f7f2b6e9ff8c", + "locale": 1, + "title": "Root", + "draft_title": "Root", + "slug": "root", + "content_type": [ + "wagtailcore", + "page" + ], + "live": true, + "has_unpublished_changes": false, + "url_path": "/", + "owner": null, + "seo_title": "", + "show_in_menus": false, + "search_description": "", + "go_live_at": null, + "expire_at": null, + "expired": false, + "locked": false, + "locked_at": null, + "locked_by": null, + "first_published_at": null, + "last_published_at": null, + "latest_revision_created_at": null, + "live_revision": null, + "alias_of": null + } +}, +{ + "model": "wagtailcore.page", + "pk": 3, + "fields": { + "path": "00010001", + "depth": 2, + "numchild": 1, + "translation_key": "09bc0985-7691-43c4-8eca-d5f1f91ef1d7", + "locale": 1, + "title": "Home", + "draft_title": "Home", + "slug": "home", + "content_type": [ + "{{ cookiecutter.module_name}}", + "homepage" + ], + "live": true, + "has_unpublished_changes": false, + "url_path": "/home/", + "owner": [ + "datamade-admin" + ], + "seo_title": "", + "show_in_menus": false, + "search_description": "", + "go_live_at": null, + "expire_at": null, + "expired": false, + "locked": false, + "locked_at": null, + "locked_by": null, + "first_published_at": "2022-10-20T20:11:37.977Z", + "last_published_at": "2022-10-20T20:11:37.977Z", + "latest_revision_created_at": "2022-10-20T20:11:37.944Z", + "live_revision": 1, + "alias_of": null + } +}, +{ + "model": "wagtailcore.page", + "pk": 4, + "fields": { + "path": "000100010001", + "depth": 3, + "numchild": 0, + "translation_key": "6f23a13d-912b-4c31-9e82-2fe8ea4a2c47", + "locale": 1, + "title": "Example Static Page", + "draft_title": "Example Static Page", + "slug": "example-static-page", + "content_type": [ + "{{ cookiecutter.module_name}}", + "staticpage" + ], + "live": true, + "has_unpublished_changes": false, + "url_path": "/home/example-static-page/", + "owner": [ + "datamade-admin" + ], + "seo_title": "", + "show_in_menus": true, + "search_description": "", + "go_live_at": null, + "expire_at": null, + "expired": false, + "locked": false, + "locked_at": null, + "locked_by": null, + "first_published_at": "2022-10-20T20:16:02.616Z", + "last_published_at": "2022-10-20T20:16:02.616Z", + "latest_revision_created_at": "2022-10-20T20:16:02.573Z", + "live_revision": 2, + "alias_of": null + } +}, +{ + "model": "wagtailcore.pagerevision", + "pk": 1, + "fields": { + "page": 3, + "submitted_for_moderation": false, + "created_at": "2022-10-20T20:11:37.944Z", + "user": [ + "datamade-admin" + ], + "content": { + "pk": 3, + "body": "[{\"type\": \"paragraph\", \"value\": {\"paragraph\": \"

My Homepage

\", \"width\": \"col-md-12\"}, \"id\": \"874a1b81-dded-4536-abbe-7c05518ec463\"}]", + "live": true, + "path": "00010001", + "slug": "home", + "depth": 2, + "owner": 1, + "title": "Home", + "locale": 1, + "locked": false, + "expired": false, + "alias_of": null, + "numchild": 0, + "url_path": "/home/", + "expire_at": null, + "locked_at": null, + "locked_by": null, + "seo_title": "", + "go_live_at": null, + "intro_text": "", + "draft_title": "Home", + "content_type": 44, + "live_revision": null, + "show_in_menus": false, + "translation_key": "09bc0985-7691-43c4-8eca-d5f1f91ef1d7", + "last_published_at": null, + "first_published_at": null, + "search_description": "", + "wagtail_admin_comments": [], + "has_unpublished_changes": false, + "latest_revision_created_at": null + }, + "approved_go_live_at": null + } +}, +{ + "model": "wagtailcore.pagerevision", + "pk": 2, + "fields": { + "page": 4, + "submitted_for_moderation": false, + "created_at": "2022-10-20T20:16:02.573Z", + "user": [ + "datamade-admin" + ], + "content": { + "pk": 4, + "body": "[{\"type\": \"heading\", \"value\": \"Example Heading\", \"id\": \"a1bffb76-0df2-44ca-8e73-842f1f10ab1b\"}, {\"type\": \"paragraph\", \"value\": {\"paragraph\": \"

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\", \"width\": \"col-md-12\"}, \"id\": \"9bf780ec-2202-4237-89b4-ecb8dfb92ba7\"}, {\"type\": \"accordion\", \"value\": [{\"type\": \"item\", \"value\": {\"title\": \"Example Accordion\", \"paragraph\": \"

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\"}, \"id\": \"de38cf56-0179-402a-95bc-2915feadb10a\"}, {\"type\": \"item\", \"value\": {\"title\": \"Another Example Accordion\", \"paragraph\": \"

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\"}, \"id\": \"e7f80c5c-380e-44c6-8da7-adc63769e827\"}], \"id\": \"9950cba3-1418-41f7-a72c-2a7e06954dce\"}, {\"type\": \"button\", \"value\": {\"text\": \"Example Button\", \"link\": \"https://www.datamade.us\"}, \"id\": \"449cd73d-0c6f-46d0-bddf-b02ec93101ce\"}, {\"type\": \"callout\", \"value\": {\"paragraph\": \"

Example Callout

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\"}, \"id\": \"ed670bcd-7e96-4a8e-bbd6-785d8a294c4d\"}, {\"type\": \"table\", \"value\": {\"data\": [[\"Lorem\", \"Ipsum\", \"Lorem\"], [\"Lorem\", \"Ipsum\", \"Lorem\"], [\"Lorem\", \"Ipsum\", \"Lorem\"]], \"cell\": [], \"first_row_is_table_header\": true, \"first_col_is_header\": true, \"table_caption\": \"Example Table\"}, \"id\": \"1780bb41-6585-43d1-9b06-95ac02c0005f\"}, {\"type\": \"embedded_media\", \"value\": {\"title\": \"Example Embedded Media\", \"media_link\": \"https://www.youtube.com/watch?v=yCcSP3GQhho\", \"description\": \"Example Description\"}, \"id\": \"dac2826a-30f1-4ddc-84f4-cb7f9099fcde\"}]", + "live": true, + "path": "000100010001", + "slug": "example-static-page", + "depth": 3, + "owner": 1, + "title": "Example Static Page", + "locale": 1, + "locked": false, + "expired": false, + "alias_of": null, + "numchild": 0, + "url_path": "/home/example-static-page/", + "expire_at": null, + "locked_at": null, + "locked_by": null, + "seo_title": "", + "go_live_at": null, + "draft_title": "Example Static Page", + "content_type": 45, + "live_revision": null, + "show_in_menus": true, + "translation_key": "6f23a13d-912b-4c31-9e82-2fe8ea4a2c47", + "last_published_at": null, + "first_published_at": null, + "search_description": "", + "wagtail_admin_comments": [], + "has_unpublished_changes": false, + "latest_revision_created_at": null + }, + "approved_go_live_at": null + } +}, +{ + "model": "wagtailcore.workflowpage", + "pk": 1, + "fields": { + "workflow": 1 + } +}, +{ + "model": "wagtailcore.workflowtask", + "pk": 1, + "fields": { + "sort_order": 0, + "workflow": 1, + "task": 1 + } +}, +{ + "model": "wagtailcore.task", + "pk": 1, + "fields": { + "name": "Moderators approval", + "content_type": [ + "wagtailcore", + "groupapprovaltask" + ], + "active": true + } +}, +{ + "model": "wagtailcore.workflow", + "pk": 1, + "fields": { + "name": "Moderators approval", + "active": true + } +}, +{ + "model": "wagtailcore.groupapprovaltask", + "pk": 1, + "fields": { + "groups": [ + [ + "Moderators" + ] + ] + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 1, + "fields": { + "content_type": [ + "wagtailcore", + "page" + ], + "label": "Welcome to your new Wagtail site!", + "action": "wagtail.delete", + "data": {}, + "timestamp": "2022-10-20T20:11:15.998Z", + "uuid": "7142bbfa-df72-458f-a2af-99fd220dd835", + "user": [ + "datamade-admin" + ], + "content_changed": false, + "deleted": true, + "page": 2, + "revision": null + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 2, + "fields": { + "content_type": [ + "{{ cookiecutter.module_name}}", + "homepage" + ], + "label": "Home", + "action": "wagtail.create", + "data": {}, + "timestamp": "2022-10-20T20:11:37.926Z", + "uuid": "5ac3eb4e-8ed0-44f6-aadf-680e986809a8", + "user": [ + "datamade-admin" + ], + "content_changed": true, + "deleted": false, + "page": 3, + "revision": null + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 3, + "fields": { + "content_type": [ + "{{ cookiecutter.module_name}}", + "homepage" + ], + "label": "Home", + "action": "wagtail.publish", + "data": {}, + "timestamp": "2022-10-20T20:11:38.013Z", + "uuid": "5ac3eb4e-8ed0-44f6-aadf-680e986809a8", + "user": [ + "datamade-admin" + ], + "content_changed": true, + "deleted": false, + "page": 3, + "revision": 1 + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 4, + "fields": { + "content_type": [ + "{{ cookiecutter.module_name}}", + "staticpage" + ], + "label": "Example Static Page", + "action": "wagtail.create", + "data": {}, + "timestamp": "2022-10-20T20:16:02.546Z", + "uuid": "625bb0a7-d609-4b6b-a1ec-95bf693150a3", + "user": [ + "datamade-admin" + ], + "content_changed": true, + "deleted": false, + "page": 4, + "revision": null + } +}, +{ + "model": "wagtailcore.pagelogentry", + "pk": 5, + "fields": { + "content_type": [ + "{{ cookiecutter.module_name}}", + "staticpage" + ], + "label": "Example Static Page", + "action": "wagtail.publish", + "data": {}, + "timestamp": "2022-10-20T20:16:02.690Z", + "uuid": "625bb0a7-d609-4b6b-a1ec-95bf693150a3", + "user": [ + "datamade-admin" + ], + "content_changed": true, + "deleted": false, + "page": 4, + "revision": 2 + } +}, +{ + "model": "wagtailcore.pagesubscription", + "pk": 1, + "fields": { + "user": [ + "datamade-admin" + ], + "page": 3, + "comment_notifications": true + } +}, +{ + "model": "wagtailcore.pagesubscription", + "pk": 2, + "fields": { + "user": [ + "datamade-admin" + ], + "page": 4, + "comment_notifications": true + } +} ] diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content_custom_pages.json b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content_custom_pages.json index 0d4f101..a702f2f 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content_custom_pages.json +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/fixtures/initial_cms_content_custom_pages.json @@ -1,2 +1,17 @@ [ +{ + "model": "{{ cookiecutter.module_name}}.homepage", + "pk": 3, + "fields": { + "body": "[{\"type\": \"paragraph\", \"value\": {\"paragraph\": \"

My Homepage

\", \"width\": \"col-md-12\"}, \"id\": \"874a1b81-dded-4536-abbe-7c05518ec463\"}]", + "intro_text": "" + } +}, +{ + "model": "{{ cookiecutter.module_name}}.staticpage", + "pk": 4, + "fields": { + "body": "[{\"type\": \"heading\", \"value\": \"Example Heading\", \"id\": \"a1bffb76-0df2-44ca-8e73-842f1f10ab1b\"}, {\"type\": \"paragraph\", \"value\": {\"paragraph\": \"

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\", \"width\": \"col-md-12\"}, \"id\": \"9bf780ec-2202-4237-89b4-ecb8dfb92ba7\"}, {\"type\": \"accordion\", \"value\": [{\"type\": \"item\", \"value\": {\"title\": \"Example Accordion\", \"paragraph\": \"

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\"}, \"id\": \"de38cf56-0179-402a-95bc-2915feadb10a\"}, {\"type\": \"item\", \"value\": {\"title\": \"Another Example Accordion\", \"paragraph\": \"

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\"}, \"id\": \"e7f80c5c-380e-44c6-8da7-adc63769e827\"}], \"id\": \"9950cba3-1418-41f7-a72c-2a7e06954dce\"}, {\"type\": \"button\", \"value\": {\"text\": \"Example Button\", \"link\": \"https://www.datamade.us\"}, \"id\": \"449cd73d-0c6f-46d0-bddf-b02ec93101ce\"}, {\"type\": \"callout\", \"value\": {\"paragraph\": \"

Example Callout

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\"}, \"id\": \"ed670bcd-7e96-4a8e-bbd6-785d8a294c4d\"}, {\"type\": \"table\", \"value\": {\"data\": [[\"Lorem\", \"Ipsum\", \"Lorem\"], [\"Lorem\", \"Ipsum\", \"Lorem\"], [\"Lorem\", \"Ipsum\", \"Lorem\"]], \"cell\": [], \"first_row_is_table_header\": true, \"first_col_is_header\": true, \"table_caption\": \"Example Table\"}, \"id\": \"1780bb41-6585-43d1-9b06-95ac02c0005f\"}, {\"type\": \"embedded_media\", \"value\": {\"title\": \"Example Embedded Media\", \"media_link\": \"https://www.youtube.com/watch?v=yCcSP3GQhho\", \"description\": \"Example Description\"}, \"id\": \"dac2826a-30f1-4ddc-84f4-cb7f9099fcde\"}]" + } +} ] diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/migrations/0002_auto_20221020_2018.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/migrations/0002_auto_20221020_2018.py new file mode 100644 index 0000000..3b3743d --- /dev/null +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/migrations/0002_auto_20221020_2018.py @@ -0,0 +1,28 @@ +# Generated by Django 3.2.11 on 2022-10-20 20:18 + +from django.db import migrations +import {{ cookiecutter.module_name}}.blocks +import wagtail.blocks +import wagtail.embeds.blocks +import wagtail.fields +import wagtail.images.blocks + + +class Migration(migrations.Migration): + + dependencies = [ + ('{{ cookiecutter.module_name}}', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='homepage', + name='body', + field=wagtail.fields.StreamField([('paragraph', wagtail.blocks.StructBlock([('paragraph', wagtail.blocks.RichTextBlock()), ('width', wagtail.blocks.ChoiceBlock(choices=[('col-md-12', 'Full Width'), ('col-md-6', 'Half Width')]))])), ('heading', wagtail.blocks.CharBlock(form_classname='full title', icon='title')), ('accordion', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock()), ('paragraph', wagtail.blocks.RichTextBlock())]), icon='list-ul')), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock()), ('link', wagtail.blocks.URLBlock())])), ('image_link', wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock()), ('alt_text', wagtail.blocks.CharBlock(help_text='Alternate text to show if the image doesn’t load', max_length=255, required=True)), ('link', wagtail.blocks.URLBlock()), ('width', wagtail.blocks.ChoiceBlock(choices=[('col-md-12', 'Full Width'), ('col-md-6', 'Half Width')]))])), ('callout', wagtail.blocks.StructBlock([('paragraph', wagtail.blocks.RichTextBlock())])), ('table', {{ cookiecutter.module_name}}.blocks.TableBlock()), ('embedded_media', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(required=False)), ('media_link', wagtail.embeds.blocks.EmbedBlock()), ('description', wagtail.blocks.TextBlock(required=False))], icon='media')), ('team_members', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('first_name', wagtail.blocks.CharBlock()), ('last_name', wagtail.blocks.CharBlock()), ('position', wagtail.blocks.CharBlock()), ('photo', wagtail.images.blocks.ImageChooserBlock(required=False))]), icon='group'))], use_json_field=None), + ), + migrations.AlterField( + model_name='staticpage', + name='body', + field=wagtail.fields.StreamField([('paragraph', wagtail.blocks.StructBlock([('paragraph', wagtail.blocks.RichTextBlock()), ('width', wagtail.blocks.ChoiceBlock(choices=[('col-md-12', 'Full Width'), ('col-md-6', 'Half Width')]))])), ('heading', wagtail.blocks.CharBlock(form_classname='full title', icon='title')), ('accordion', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock()), ('paragraph', wagtail.blocks.RichTextBlock())]), icon='list-ul')), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock()), ('link', wagtail.blocks.URLBlock())])), ('image_link', wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock()), ('alt_text', wagtail.blocks.CharBlock(help_text='Alternate text to show if the image doesn’t load', max_length=255, required=True)), ('link', wagtail.blocks.URLBlock()), ('width', wagtail.blocks.ChoiceBlock(choices=[('col-md-12', 'Full Width'), ('col-md-6', 'Half Width')]))])), ('callout', wagtail.blocks.StructBlock([('paragraph', wagtail.blocks.RichTextBlock())])), ('table', {{ cookiecutter.module_name}}.blocks.TableBlock()), ('embedded_media', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(required=False)), ('media_link', wagtail.embeds.blocks.EmbedBlock()), ('description', wagtail.blocks.TextBlock(required=False))], icon='media')), ('team_members', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('first_name', wagtail.blocks.CharBlock()), ('last_name', wagtail.blocks.CharBlock()), ('position', wagtail.blocks.CharBlock()), ('photo', wagtail.images.blocks.ImageChooserBlock(required=False))]), icon='group'))], use_json_field=None), + ), + ] diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/models.py b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/models.py index 9d14283..de8a809 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/models.py +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/models.py @@ -13,7 +13,7 @@ ParagraphBlock, ImageLinkBlock, ) -from efi.utils import get_site_menu +from {{ cookiecutter.module_name }}.utils import get_site_menu class BasePage(Page): diff --git a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/base.html b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/base.html index 08a25f3..b3a25a7 100644 --- a/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/base.html +++ b/docker/templates/new-wagtail-app/{{ cookiecutter.app_name }}/{{ cookiecutter.module_name }}/templates/{{ cookiecutter.module_name }}/base.html @@ -1,6 +1,6 @@ -{% raw %}{% load static %} -{% load wagtailcore_tags %} -{% load wagtailuserbar %}{% endraw %} +{% raw %} +{% load static wagtailcore_tags wagtailuserbar i18n slugurl_translate pageurl_translate %} +{% endraw %} @@ -60,17 +60,28 @@ {{ cookiecutter.app_verbose_name }} - -