diff --git a/.build.yml b/.build.yml index f5f406d..0061d73 100644 --- a/.build.yml +++ b/.build.yml @@ -13,4 +13,5 @@ steps: - apk add --no-cache gcc musl-dev python3-dev - pip install --upgrade pip && pip install -r requirements.txt - python3 configure.py - - coverage run --parallel-mode --concurrency=multiprocessing manage.py test --parallel=$(nproc) && coverage report + - coverage run manage.py test + - coverage report diff --git a/.gitignore b/.gitignore index b338100..4ce5750 100644 --- a/.gitignore +++ b/.gitignore @@ -130,5 +130,5 @@ dmypy.json staticfiles/ userfiles/ -backend/templates/ -backend/testdata.py \ No newline at end of file +testdata.py +*.sqlite3 diff --git a/README.md b/README.md index a2c0135..7f91e3e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # toolshed -## Installation / Development +## Development ``` bash git clone https://github.com/gr4yj3d1/toolshed.git @@ -12,7 +12,10 @@ or git clone https://git.neulandlabor.de/j3d1/toolshed.git ``` -### Backend +all following development mode commands support auto-reloading and hot-reloading where applicable, they do not need to bw +restarted after changes. + +### Backend only ``` bash cd toolshed/backend @@ -26,7 +29,7 @@ python manage.py runserver 0.0.0.0:8000 --insecure to run this in properly in production, you need to configure a webserver to serve the static files and proxy the requests to the backend, then run the backend with just `python manage.py runserver` without the `--insecure` flag. -### Frontend +### Frontend only ``` bash cd toolshed/frontend @@ -34,13 +37,45 @@ npm install npm run dev ``` -### Docs +### Docs only ``` bash cd toolshed/docs mkdocs serve ``` +### Full stack + +``` bash +cd toolshed +docker-compose -f deploy/docker-compose.override.yml up --build +``` + +## Deployment + +### Requirements + +- python3 +- python3-pip +- python3-venv +- wget +- unzip +- nginx +- uwsgi + +### Installation + +* Get the latest release from +`https://git.neulandlabor.de/j3d1/toolshed/releases/download//toolshed.zip` or +`https://github.com/gr4yj3d1/toolshed/archive/refs/tags/.zip`. +* Unpack it to `/var/www` or wherever you want to install toolshed. +* Create a virtual environment and install the requirements. +* Then run the configuration script. +* Configure your webserver to serve the static files and proxy the requests to the backend. +* Configure your webserver to run the backend with uwsgi. + +for detailed instructions see [docs](/docs/deployment.md). + ## CLI Client ### Requirements diff --git a/backend/.idea/.gitignore b/backend/.idea/.gitignore index 13566b8..a9d7db9 100644 --- a/backend/.idea/.gitignore +++ b/backend/.idea/.gitignore @@ -6,3 +6,5 @@ # Datasource local storage ignored files /dataSources/ /dataSources.local.xml +# GitHub Copilot persisted chat sessions +/copilot/chatSessions diff --git a/backend/authentication/signature_auth.py b/backend/authentication/signature_auth.py index fd36705..f6b280a 100644 --- a/backend/authentication/signature_auth.py +++ b/backend/authentication/signature_auth.py @@ -60,6 +60,8 @@ def verify_incoming_friend_request(request, raw_request_body): befriender_key = request.data['befriender_key'] except KeyError: return False + if not befriender or not befriender_key: + return False if username + "@" + domain != befriender: return False if len(befriender_key) != 64: diff --git a/backend/configure.py b/backend/configure.py index ead8fa9..e027805 100755 --- a/backend/configure.py +++ b/backend/configure.py @@ -8,32 +8,41 @@ import dotenv from django.db import transaction, IntegrityError -def yesno(prompt, default=False): - if not sys.stdin.isatty(): - return default - yes = {'yes', 'y', 'ye'} - no = {'no', 'n'} +class CmdCtx: - if default: - yes.add('') - else: - no.add('') + def __init__(self, args): + self.args = args - hint = ' [Y/n] ' if default else ' [y/N] ' - - while True: - choice = input(prompt + hint).lower() - if choice in yes: + def yesno(self, prompt, default=False): + if not sys.stdin.isatty() or self.args.noninteractive: + return default + elif self.args.yes: return True - elif choice in no: + elif self.args.no: return False + yes = {'yes', 'y', 'ye'} + no = {'no', 'n'} + + if default: + yes.add('') else: - print('Please respond with "yes" or "no"') + no.add('') + + hint = ' [Y/n] ' if default else ' [y/N] ' + + while True: + choice = input(prompt + hint).lower() + if choice in yes: + return True + elif choice in no: + return False + else: + print('Please respond with "yes" or "no"') -def configure(): +def configure(ctx): if not os.path.exists('.env'): - if not yesno("the .env file does not exist, do you want to create it?", default=True): + if not ctx.yesno("the .env file does not exist, do you want to create it?", default=True): print('Aborting') exit(0) if not os.path.exists('.env.dist'): @@ -56,7 +65,7 @@ def configure(): current_hosts = os.getenv('ALLOWED_HOSTS') print('Current ALLOWED_HOSTS: {}'.format(current_hosts)) - if yesno("Do you want to add ALLOWED_HOSTS?"): + if ctx.yesno("Do you want to add ALLOWED_HOSTS?"): hosts = input("Enter a comma-separated list of allowed hosts: ") joined_hosts = current_hosts + ',' + hosts if current_hosts else hosts dotenv.set_key('.env', 'ALLOWED_HOSTS', joined_hosts) @@ -67,26 +76,29 @@ def configure(): django.setup() if not os.path.exists('db.sqlite3'): - if not yesno("No database found, do you want to create one?", default=True): + if not ctx.yesno("No database found, do you want to create one?", default=True): print('Aborting') exit(0) from django.core.management import call_command call_command('migrate') - if yesno("Do you want to create a superuser?"): + if ctx.yesno("Do you want to create a superuser?"): from django.core.management import call_command call_command('createsuperuser') call_command('collectstatic', '--no-input') - if yesno("Do you want to import all categories, properties and tags contained in this repository?", default=True): + if ctx.yesno("Do you want to import all categories, properties and tags contained in this repository?", + default=True): from hostadmin.serializers import CategorySerializer, PropertySerializer, TagSerializer from hostadmin.models import ImportedIdentifierSets + from hashlib import sha256 if not os.path.exists('shared_data'): os.mkdir('shared_data') files = os.listdir('shared_data') idsets = {} + hashes = {} for file in files: if file.endswith('.json'): name = "git:" + file[:-5] @@ -94,6 +106,8 @@ def configure(): try: idset = json.load(f) idsets[name] = idset + f.seek(0) + hashes[name] = sha256(f.read().encode()).hexdigest() except json.decoder.JSONDecodeError: print('Error: invalid JSON in file {}'.format(file)) imported_sets = ImportedIdentifierSets.objects.all() @@ -108,9 +122,13 @@ def configure(): unmet_deps = [dep for dep in idset['depends'] if not imported_sets.filter(name=dep).exists()] if unmet_deps: if all([dep in idsets.keys() for dep in unmet_deps]): - print('Not all dependencies for {} are imported, postponing'.format(name)) - queue.append(name) - continue + if all([dep in queue for dep in unmet_deps]): + print('Not all dependencies for {} are imported, postponing'.format(name)) + queue.append(name) + continue + else: + print('Error: unresolvable dependencies for {}: {}'.format(name, unmet_deps)) + continue else: print('unknown dependencies for {}: {}'.format(name, unmet_deps)) continue @@ -131,10 +149,15 @@ def configure(): serializer = TagSerializer(data=tag) if serializer.is_valid(): serializer.save(origin=name) - imported_sets.create(name=name) + imported_sets.create(name=name, hash=hashes[name]) except IntegrityError: print('Error: integrity error while importing {}\n\tmight be cause by name conflicts with existing' ' categories, properties or tags'.format(name)) + transaction.set_rollback(True) + continue + except Exception as e: + print('Error: {}'.format(e)) + transaction.set_rollback(True) continue @@ -183,6 +206,7 @@ def main(): parser = ArgumentParser(description='Toolshed Server Configuration') parser.add_argument('--yes', '-y', help='Answer yes to all questions', action='store_true') parser.add_argument('--no', '-n', help='Answer no to all questions', action='store_true') + parser.add_argument('--noninteractive', '-x', help="Run in noninteractive mode", action='store_true') parser.add_argument('cmd', help='Command', default='configure', nargs='?') args = parser.parse_args() @@ -190,12 +214,16 @@ def main(): print('Error: --yes and --no are mutually exclusive') exit(1) + ctx = CmdCtx(args) + if args.cmd == 'configure': - configure() + configure(ctx) elif args.cmd == 'reset': reset() elif args.cmd == 'testdata': testdata() + elif args.cmd == 'migrate': + print('not implemented yet') else: print('Unknown command: {}'.format(args.cmd)) exit(1) diff --git a/backend/hostadmin/admin.py b/backend/hostadmin/admin.py index 84e6155..4dbabc7 100644 --- a/backend/hostadmin/admin.py +++ b/backend/hostadmin/admin.py @@ -1,6 +1,6 @@ from django.contrib import admin -from .models import Domain +from .models import Domain, ImportedIdentifierSets class DomainAdmin(admin.ModelAdmin): @@ -9,3 +9,11 @@ class DomainAdmin(admin.ModelAdmin): admin.site.register(Domain, DomainAdmin) + + +class ImportedIdentifierSetsAdmin(admin.ModelAdmin): + list_display = ('name', 'hash', 'created_at') + list_filter = ('name', 'hash', 'created_at') + + +admin.site.register(ImportedIdentifierSets, ImportedIdentifierSetsAdmin) diff --git a/backend/hostadmin/migrations/0003_importedidentifiersets_hash.py b/backend/hostadmin/migrations/0003_importedidentifiersets_hash.py new file mode 100644 index 0000000..d62713f --- /dev/null +++ b/backend/hostadmin/migrations/0003_importedidentifiersets_hash.py @@ -0,0 +1,39 @@ +# Generated by Django 4.2.2 on 2024-03-11 15:19 +import os + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ('hostadmin', '0002_importedidentifiersets'), + ] + + def calculate_hash(apps, schema_editor): + from hostadmin.models import ImportedIdentifierSets + for identifier_set in ImportedIdentifierSets.objects.all(): + if not identifier_set.hash: + print("update", identifier_set.name) + filename = "shared_data/" + identifier_set.name.strip('git:') + ".json" + if not os.path.exists(filename): + continue + from hashlib import sha256 + with open(filename, 'r') as file: + data = file.read() + identifier_set.hash = sha256(data.encode()).hexdigest() + identifier_set.save() + + operations = [ + migrations.AddField( + model_name='importedidentifiersets', + name='hash', + field=models.CharField(blank=True, max_length=255, null=True), + + ), + migrations.RunPython(calculate_hash), + migrations.AlterField( + model_name='importedidentifiersets', + name='hash', + field=models.CharField(max_length=255, unique=True), + ), + ] diff --git a/backend/hostadmin/migrations/0004_alter_importedidentifiersets_options.py b/backend/hostadmin/migrations/0004_alter_importedidentifiersets_options.py new file mode 100644 index 0000000..0d0404d --- /dev/null +++ b/backend/hostadmin/migrations/0004_alter_importedidentifiersets_options.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.2 on 2024-03-14 16:33 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('hostadmin', '0003_importedidentifiersets_hash'), + ] + + operations = [ + migrations.AlterModelOptions( + name='importedidentifiersets', + options={'verbose_name_plural': 'imported identifier sets'}, + ), + ] diff --git a/backend/hostadmin/models.py b/backend/hostadmin/models.py index bac6ac1..da29811 100644 --- a/backend/hostadmin/models.py +++ b/backend/hostadmin/models.py @@ -12,4 +12,8 @@ class Domain(models.Model): class ImportedIdentifierSets(models.Model): name = models.CharField(max_length=255, unique=True) + hash = models.CharField(max_length=255, unique=True) created_at = models.DateTimeField(auto_now_add=True) + + class Meta: + verbose_name_plural = 'imported identifier sets' diff --git a/backend/hostadmin/serializers.py b/backend/hostadmin/serializers.py index 72bacba..02fadb6 100644 --- a/backend/hostadmin/serializers.py +++ b/backend/hostadmin/serializers.py @@ -5,6 +5,32 @@ from hostadmin.models import Domain from toolshed.models import Category, Property, Tag +class SlugPathField(serializers.SlugRelatedField): + def to_internal_value(self, data): + path = data.split('/') if '/' in data else [data] + candidates = self.get_queryset().filter(name=path[-1]) + if len(candidates) == 1: + return candidates.first() + if len(candidates) == 0: + raise serializers.ValidationError( + "No {} with name '{}' found".format(self.queryset.model.__name__, path[-1])) + if len(candidates) > 1 and len(path) == 1: + raise serializers.ValidationError("Multiple {}s with name '{}' found, please specify the parent".format( + self.queryset.model.__name__, path[-1])) + parent = self.to_internal_value('/'.join(path[:-1])) + candidates = self.get_queryset().filter(name=path[-1], parent=parent) + if len(candidates) == 1: + return candidates.first() + if len(candidates) == 0: + raise serializers.ValidationError( + "No {} with name '{}' found".format(self.queryset.model.__name__, path[-1])) + + def to_representation(self, value): + source = getattr(value, self.field_name, None) # should this use self.source? + prefix = self.to_representation(source) + '/' if source else '' + return prefix + getattr(value, self.slug_field) + + class DomainSerializer(serializers.ModelSerializer): owner = OwnerSerializer(read_only=True) @@ -12,12 +38,21 @@ class DomainSerializer(serializers.ModelSerializer): model = Domain fields = ['name', 'owner', 'open_registration'] - def create(self, validated_data): - return super().create(validated_data) - class CategorySerializer(serializers.ModelSerializer): - parent = serializers.SlugRelatedField(slug_field='name', queryset=Category.objects.all(), required=False) + parent = SlugPathField(slug_field='name', queryset=Category.objects.all(), required=False) + + def validate(self, attrs): + if 'name' in attrs: + if '/' in attrs['name']: + raise serializers.ValidationError("Category name cannot contain '/'") + return attrs + + def create(self, validated_data): + try: + return Category.objects.create(**validated_data) + except Exception as e: + raise serializers.ValidationError(e) class Meta: model = Category @@ -27,7 +62,19 @@ class CategorySerializer(serializers.ModelSerializer): class PropertySerializer(serializers.ModelSerializer): - category = serializers.SlugRelatedField(slug_field='name', queryset=Category.objects.all(), required=False) + category = SlugPathField(slug_field='name', queryset=Category.objects.all(), required=False) + + def validate(self, attrs): + if 'name' in attrs: + if '/' in attrs['name']: + raise serializers.ValidationError("Property name cannot contain '/'") + return attrs + + def create(self, validated_data): + try: + return Property.objects.create(**validated_data) + except Exception as e: + raise serializers.ValidationError(e) class Meta: model = Property @@ -38,7 +85,19 @@ class PropertySerializer(serializers.ModelSerializer): class TagSerializer(serializers.ModelSerializer): - category = serializers.SlugRelatedField(slug_field='name', queryset=Category.objects.all(), required=False) + category = SlugPathField(slug_field='name', queryset=Category.objects.all(), required=False) + + def validate(self, attrs): + if 'name' in attrs: + if '/' in attrs['name']: + raise serializers.ValidationError("Tag name cannot contain '/'") + return attrs + + def create(self, validated_data): + try: + return Tag.objects.create(**validated_data) + except Exception as e: + raise serializers.ValidationError(e) class Meta: model = Tag diff --git a/backend/hostadmin/tests.py b/backend/hostadmin/tests.py index 513d705..0df45c2 100644 --- a/backend/hostadmin/tests.py +++ b/backend/hostadmin/tests.py @@ -100,7 +100,8 @@ class CategoryApiTestCase(UserTestMixin, CategoryTestMixin, ToolshedTestCase): response = client.get('/api/categories/', self.f['local_user1']) self.assertEqual(response.status_code, 200) self.assertEqual(response.json(), - ["cat1", "cat2", "cat3", "cat1/subcat1", "cat1/subcat2", "cat1/subcat1/subcat3"]) + ["cat1", "cat2", "cat3", "cat1/subcat1", + "cat1/subcat2", "cat1/subcat1/subcat1", "cat1/subcat1/subcat2"]) def test_admin_get_categories_fail(self): response = client.get('/admin/categories/', self.f['local_user1']) @@ -109,7 +110,7 @@ class CategoryApiTestCase(UserTestMixin, CategoryTestMixin, ToolshedTestCase): def test_admin_get_categories(self): response = client.get('/admin/categories/', self.f['admin']) self.assertEqual(response.status_code, 200) - self.assertEqual(len(response.json()), 6) + self.assertEqual(len(response.json()), 7) self.assertEqual(response.json()[0]['name'], 'cat1') self.assertEqual(response.json()[1]['name'], 'cat2') self.assertEqual(response.json()[2]['name'], 'cat3') @@ -117,10 +118,12 @@ class CategoryApiTestCase(UserTestMixin, CategoryTestMixin, ToolshedTestCase): self.assertEqual(response.json()[3]['parent'], 'cat1') self.assertEqual(response.json()[4]['name'], 'subcat2') self.assertEqual(response.json()[4]['parent'], 'cat1') - self.assertEqual(response.json()[5]['name'], 'subcat3') - self.assertEqual(response.json()[5]['parent'], 'subcat1') + self.assertEqual(response.json()[5]['name'], 'subcat1') + self.assertEqual(response.json()[5]['parent'], 'cat1/subcat1') + self.assertEqual(response.json()[6]['name'], 'subcat2') + self.assertEqual(response.json()[6]['parent'], 'cat1/subcat1') - def test_admin_create_category(self): + def test_admin_post_category(self): response = client.post('/admin/categories/', self.f['admin'], {'name': 'cat4'}) self.assertEqual(response.status_code, 201) self.assertEqual(response.json()['name'], 'cat4') @@ -128,6 +131,40 @@ class CategoryApiTestCase(UserTestMixin, CategoryTestMixin, ToolshedTestCase): self.assertEqual(response.json()['parent'], None) self.assertEqual(response.json()['origin'], 'api') + def test_admin_post_category_duplicate(self): + response = client.post('/admin/categories/', self.f['admin'], {'name': 'cat3'}) + self.assertEqual(response.status_code, 400) + + def test_admin_post_category_invalid(self): + response = client.post('/admin/categories/', self.f['admin'], {'name': 'cat/4'}) + self.assertEqual(response.status_code, 400) + + def test_admin_post_category_parent_not_found(self): + response = client.post('/admin/categories/', self.f['admin'], {'name': 'subcat4', 'parent': 'cat4'}) + self.assertEqual(response.status_code, 400) + + def test_admin_post_category_parent_ambiguous(self): + response = client.post('/admin/categories/', self.f['admin'], {'name': 'subcat4', 'parent': 'subcat1'}) + self.assertEqual(response.status_code, 400) + + def test_admin_post_category_parent_subcategory(self): + response = client.post('/admin/categories/', self.f['admin'], {'name': 'subcat4', 'parent': 'cat1/subcat1'}) + self.assertEqual(response.status_code, 201) + self.assertEqual(response.json()['name'], 'subcat4') + self.assertEqual(response.json()['description'], None) + self.assertEqual(response.json()['parent'], 'cat1/subcat1') + self.assertEqual(response.json()['origin'], 'api') + + def test_admin_post_category_parent_subcategory_not_found(self): + response = client.post('/admin/categories/', self.f['admin'], {'name': 'subcat4', 'parent': 'cat2/subcat1'}) + self.assertEqual(response.status_code, 400) + + def test_admin_post_category_parent_subcategory_ambiguous(self): + from toolshed.models import Category + self.f['subcat111'] = Category.objects.create(name='subcat1', parent=self.f['subcat11'], origin='test') + response = client.post('/admin/categories/', self.f['admin'], {'name': 'subcat4', 'parent': 'subcat1/subcat1'}) + self.assertEqual(response.status_code, 400) + def test_admin_post_subcategory(self): response = client.post('/admin/categories/', self.f['admin'], {'name': 'subcat4', 'parent': 'cat1'}) self.assertEqual(response.status_code, 201) @@ -136,6 +173,18 @@ class CategoryApiTestCase(UserTestMixin, CategoryTestMixin, ToolshedTestCase): self.assertEqual(response.json()['parent'], 'cat1') self.assertEqual(response.json()['origin'], 'api') + def test_admin_post_subcategory_duplicate(self): + response = client.post('/admin/categories/', self.f['admin'], {'name': 'subcat2', 'parent': 'cat1'}) + self.assertEqual(response.status_code, 400) + + def test_admin_post_subcategory_distinct_duplicate(self): + response = client.post('/admin/categories/', self.f['admin'], {'name': 'subcat2', 'parent': 'cat2'}) + self.assertEqual(response.status_code, 201) + self.assertEqual(response.json()['name'], 'subcat2') + self.assertEqual(response.json()['description'], None) + self.assertEqual(response.json()['parent'], 'cat2') + self.assertEqual(response.json()['origin'], 'api') + def test_admin_put_category(self): response = client.put('/admin/categories/1/', self.f['admin'], {'name': 'cat5'}) self.assertEqual(response.status_code, 200) @@ -188,6 +237,14 @@ class TagApiTestCase(UserTestMixin, CategoryTestMixin, TagTestMixin, ToolshedTes self.assertEqual(response.json()['origin'], 'api') self.assertEqual(response.json()['category'], None) + def test_admin_create_tag_duplicate(self): + response = client.post('/admin/tags/', self.f['admin'], {'name': 'tag3'}) + self.assertEqual(response.status_code, 400) + + def test_admin_create_tag_invalid(self): + response = client.post('/admin/tags/', self.f['admin'], {'name': 'tag/4'}) + self.assertEqual(response.status_code, 400) + def test_admin_put_tag(self): response = client.put('/admin/tags/1/', self.f['admin'], {'name': 'tag5'}) self.assertEqual(response.status_code, 200) @@ -250,7 +307,13 @@ class PropertyApiTestCase(UserTestMixin, CategoryTestMixin, PropertyTestMixin, T self.assertEqual(response.json()['base2_prefix'], False) self.assertEqual(response.json()['dimensions'], 1) - # self.assertEqual(response.json()['sort_lexicographically'], False) + def test_admin_create_property_duplicate(self): + response = client.post('/admin/properties/', self.f['admin'], {'name': 'prop3', 'category': 'cat1'}) + self.assertEqual(response.status_code, 400) + + def test_admin_create_property_invalid(self): + response = client.post('/admin/properties/', self.f['admin'], {'name': 'prop/4'}) + self.assertEqual(response.status_code, 400) def test_admin_put_property(self): response = client.put('/admin/properties/1/', self.f['admin'], {'name': 'prop5'}) @@ -265,8 +328,6 @@ class PropertyApiTestCase(UserTestMixin, CategoryTestMixin, PropertyTestMixin, T self.assertEqual(response.json()['base2_prefix'], False) self.assertEqual(response.json()['dimensions'], 1) - # self.assertEqual(response.json()['sort_lexicographically'], False) - def test_admin_patch_property(self): response = client.patch('/admin/properties/1/', self.f['admin'], {'name': 'prop5'}) self.assertEqual(response.status_code, 200) diff --git a/backend/toolshed/admin.py b/backend/toolshed/admin.py index 4b3174e..aeefc0c 100644 --- a/backend/toolshed/admin.py +++ b/backend/toolshed/admin.py @@ -1,6 +1,6 @@ from django.contrib import admin -from toolshed.models import InventoryItem, Property, Tag, ItemProperty, ItemTag +from toolshed.models import InventoryItem, Property, Tag, Category class InventoryItemAdmin(admin.ModelAdmin): @@ -12,16 +12,24 @@ admin.site.register(InventoryItem, InventoryItemAdmin) class PropertyAdmin(admin.ModelAdmin): - list_display = ('name',) - search_fields = ('name',) + list_display = ('name', 'description', 'category', 'unit_symbol', 'base2_prefix', 'dimensions', 'origin') + search_fields = ('name', 'description', 'category', 'unit_symbol', 'base2_prefix', 'dimensions', 'origin') admin.site.register(Property, PropertyAdmin) class TagAdmin(admin.ModelAdmin): - list_display = ('name',) - search_fields = ('name',) + list_display = ('name', 'description', 'category', 'origin') + search_fields = ('name', 'description', 'category', 'origin') admin.site.register(Tag, TagAdmin) + + +class CategoryAdmin(admin.ModelAdmin): + list_display = ('name', 'description', 'parent', 'origin') + search_fields = ('name', 'description', 'parent', 'origin') + + +admin.site.register(Category, CategoryAdmin) diff --git a/backend/toolshed/api/friend.py b/backend/toolshed/api/friend.py index efedd80..07ee0fc 100644 --- a/backend/toolshed/api/friend.py +++ b/backend/toolshed/api/friend.py @@ -64,15 +64,23 @@ class FriendsRequests(APIView, ViewSetMixin): befriendee_username, befriendee_domain = split_userhandle_or_throw(request.data['befriendee']) if befriender_domain == befriendee_domain and befriender_username == befriendee_username: return Response(status=status.HTTP_400_BAD_REQUEST, data={'status': 'cannot befriend yourself'}) - if user := authenticate_request_against_local_users(request, raw_request): + if user := authenticate_request_against_local_users(request, raw_request): # befriender is local secret = secrets.token_hex(64) befriendee_user = ToolshedUser.objects.filter(username=befriendee_username, domain=befriendee_domain) - if befriendee_user.exists(): + if befriendee_user.exists(): # befriendee is local (both are local) + if user.friends.filter(username=befriendee_username, domain=befriendee_domain).exists(): + return Response(status=status.HTTP_208_ALREADY_REPORTED, data={'status': "exists"}) + existing_request = FriendRequestIncoming.objects.filter( + befriender_username=befriender_username, + befriender_domain=befriender_domain, + befriendee_user=befriendee_user.get()) + if existing_request.exists(): + return Response(status=status.HTTP_208_ALREADY_REPORTED, data={'status': "exists"}) FriendRequestIncoming.objects.create( befriender_username=befriender_username, befriender_domain=befriender_domain, befriender_public_key=user.public_identity.public_key, - secret=secret, # request.data['secret'] # TODO ?? + secret=secret, befriendee_user=befriendee_user.get(), ) return Response(status=status.HTTP_201_CREATED, data={'secret': secret, 'status': "pending"}) @@ -81,7 +89,7 @@ class FriendsRequests(APIView, ViewSetMixin): befriender_user=user, befriendee_username=befriendee_username, befriendee_domain=befriendee_domain, - secret=secret, # request.data['secret'] # TODO ?? + secret=secret, ) return Response(status=status.HTTP_201_CREATED, data={'secret': secret, 'status': "pending"}) elif verify_incoming_friend_request(request, raw_request): diff --git a/backend/toolshed/api/info.py b/backend/toolshed/api/info.py index 1ed623d..7395c03 100644 --- a/backend/toolshed/api/info.py +++ b/backend/toolshed/api/info.py @@ -5,7 +5,7 @@ from rest_framework.response import Response from hostadmin.models import Domain from authentication.signature_auth import SignatureAuthentication -from toolshed.models import Tag, Property, Category +from toolshed.models import Tag, Property, Category, InventoryItem from toolshed.serializers import CategorySerializer, PropertySerializer from backend.settings import TOOLSHED_VERSION @@ -51,8 +51,7 @@ def list_categories(request, format=None): # /categories/ @permission_classes([IsAuthenticated]) @authentication_classes([SignatureAuthentication]) def list_availability_policies(request, format=None): # /availability_policies/ - policies = ['private', 'friends', 'internal', 'public'] - return Response(policies) + return Response(InventoryItem.AVAILABILITY_POLICY_CHOICES) @api_view(['GET']) @@ -62,9 +61,11 @@ def combined_info(request, format=None): # /info/ tags = [tag.name for tag in Tag.objects.all()] properties = PropertySerializer(Property.objects.all(), many=True).data categories = [str(category) for category in Category.objects.all()] - policies = ['private', 'friends', 'internal', 'public'] + policies = InventoryItem.AVAILABILITY_POLICY_CHOICES domains = [domain.name for domain in Domain.objects.filter(open_registration=True)] - return Response({'tags': tags, 'properties': properties, 'availability_policies': policies, 'categories': categories, 'domains': domains}) + return Response( + {'tags': tags, 'properties': properties, 'availability_policies': policies, 'categories': categories, + 'domains': domains}) urlpatterns = [ diff --git a/backend/toolshed/api/inventory.py b/backend/toolshed/api/inventory.py index b60ebee..c39a5c8 100644 --- a/backend/toolshed/api/inventory.py +++ b/backend/toolshed/api/inventory.py @@ -7,8 +7,8 @@ from rest_framework.response import Response from authentication.models import ToolshedUser, KnownIdentity from authentication.signature_auth import SignatureAuthentication -from toolshed.models import InventoryItem -from toolshed.serializers import InventoryItemSerializer +from toolshed.models import InventoryItem, StorageLocation +from toolshed.serializers import InventoryItemSerializer, StorageLocationSerializer router = routers.SimpleRouter() @@ -24,7 +24,8 @@ def inventory_items(identity): for friend in identity.friends.all(): if friend_user := friend.user.get(): for item in friend_user.inventory_items.all(): - yield item + if item.availability_policy != 'private': + yield item class InventoryItemViewSet(viewsets.ModelViewSet): @@ -61,7 +62,19 @@ def search_inventory_items(request): return Response({'error': 'No query provided.'}, status=400) +class StorageLocationViewSet(viewsets.ModelViewSet): + serializer_class = StorageLocationSerializer + authentication_classes = [SignatureAuthentication] + permission_classes = [IsAuthenticated] + + def get_queryset(self): + if type(self.request.user) == KnownIdentity and self.request.user.user.exists(): + return StorageLocation.objects.filter(owner=self.request.user.user.get()) + return StorageLocation.objects.none() + + router.register(r'inventory_items', InventoryItemViewSet, basename='inventory_items') +router.register(r'storage_locations', StorageLocationViewSet, basename='storage_locations') urlpatterns = router.urls + [ path('search/', search_inventory_items, name='search_inventory_items'), diff --git a/backend/toolshed/migrations/0004_storagelocation_inventoryitem_storage_location.py b/backend/toolshed/migrations/0004_storagelocation_inventoryitem_storage_location.py new file mode 100644 index 0000000..83dc7a9 --- /dev/null +++ b/backend/toolshed/migrations/0004_storagelocation_inventoryitem_storage_location.py @@ -0,0 +1,32 @@ +# Generated by Django 4.2.2 on 2024-02-20 13:50 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('toolshed', '0003_inventoryitem_files_and_more'), + ] + + operations = [ + migrations.CreateModel( + name='StorageLocation', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ('description', models.TextField(blank=True, null=True)), + ('category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='storage_locations', to='toolshed.category')), + ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='storage_locations', to=settings.AUTH_USER_MODEL)), + ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='toolshed.storagelocation')), + ], + ), + migrations.AddField( + model_name='inventoryitem', + name='storage_location', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='inventory_items', to='toolshed.storagelocation'), + ), + ] diff --git a/backend/toolshed/migrations/0005_alter_inventoryitem_availability_policy.py b/backend/toolshed/migrations/0005_alter_inventoryitem_availability_policy.py new file mode 100644 index 0000000..fa86880 --- /dev/null +++ b/backend/toolshed/migrations/0005_alter_inventoryitem_availability_policy.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.2 on 2024-02-20 15:15 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('toolshed', '0004_storagelocation_inventoryitem_storage_location'), + ] + + operations = [ + migrations.AlterField( + model_name='inventoryitem', + name='availability_policy', + field=models.CharField(choices=[('sell', 'Sell'), ('rent', 'Rent'), ('lend', 'Lend'), ('share', 'Share'), ('private', 'Private')], default='private', max_length=20), + ), + ] diff --git a/backend/toolshed/migrations/0006_alter_tag_options_alter_category_name_and_more.py b/backend/toolshed/migrations/0006_alter_tag_options_alter_category_name_and_more.py new file mode 100644 index 0000000..603a215 --- /dev/null +++ b/backend/toolshed/migrations/0006_alter_tag_options_alter_category_name_and_more.py @@ -0,0 +1,67 @@ +# Generated by Django 4.2.2 on 2024-03-14 16:54 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('toolshed', '0005_alter_inventoryitem_availability_policy'), + ] + + operations = [ + migrations.AlterModelOptions( + name='tag', + options={'verbose_name_plural': 'tags'}, + ), + migrations.AlterField( + model_name='category', + name='name', + field=models.CharField(max_length=255), + ), + migrations.AlterField( + model_name='category', + name='parent', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='toolshed.category'), + ), + migrations.AlterField( + model_name='inventoryitem', + name='category', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='inventory_items', to='toolshed.category'), + ), + migrations.AlterField( + model_name='property', + name='category', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='properties', to='toolshed.category'), + ), + migrations.AlterField( + model_name='tag', + name='category', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='tags', to='toolshed.category'), + ), + migrations.AddConstraint( + model_name='category', + constraint=models.UniqueConstraint(condition=models.Q(('parent__isnull', False)), fields=('name', 'parent'), name='category_unique_name_parent'), + ), + migrations.AddConstraint( + model_name='category', + constraint=models.UniqueConstraint(condition=models.Q(('parent__isnull', True)), fields=('name',), name='category_unique_name_no_parent'), + ), + migrations.AddConstraint( + model_name='property', + constraint=models.UniqueConstraint(condition=models.Q(('category__isnull', False)), fields=('name', 'category'), name='property_unique_name_category'), + ), + migrations.AddConstraint( + model_name='property', + constraint=models.UniqueConstraint(condition=models.Q(('category__isnull', True)), fields=('name',), name='property_unique_name_no_category'), + ), + migrations.AddConstraint( + model_name='tag', + constraint=models.UniqueConstraint(condition=models.Q(('category__isnull', False)), fields=('name', 'category'), name='tag_unique_name_category'), + ), + migrations.AddConstraint( + model_name='tag', + constraint=models.UniqueConstraint(condition=models.Q(('category__isnull', True)), fields=('name',), name='tag_unique_name_no_category'), + ), + ] diff --git a/backend/toolshed/models.py b/backend/toolshed/models.py index f1448a9..2dd0713 100644 --- a/backend/toolshed/models.py +++ b/backend/toolshed/models.py @@ -8,13 +8,19 @@ from files.models import File class Category(SoftDeleteModel): - name = models.CharField(max_length=255, unique=True) + name = models.CharField(max_length=255) description = models.TextField(null=True, blank=True) - parent = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children') + parent = models.ForeignKey('self', on_delete=models.CASCADE, null=True, related_name='children') origin = models.CharField(max_length=255, null=False, blank=False) class Meta: verbose_name_plural = 'categories' + constraints = [ + models.UniqueConstraint(fields=['name', 'parent'], condition=models.Q(parent__isnull=False), + name='category_unique_name_parent'), + models.UniqueConstraint(fields=['name'], condition=models.Q(parent__isnull=True), + name='category_unique_name_no_parent') + ] def __str__(self): parent = str(self.parent) + "/" if self.parent else "" @@ -24,7 +30,7 @@ class Category(SoftDeleteModel): class Property(models.Model): name = models.CharField(max_length=255) description = models.TextField(null=True, blank=True) - category = models.ForeignKey(Category, on_delete=models.CASCADE, null=True, blank=True, related_name='properties') + category = models.ForeignKey(Category, on_delete=models.CASCADE, null=True, related_name='properties') unit_symbol = models.CharField(max_length=16, null=True, blank=True) unit_name = models.CharField(max_length=255, null=True, blank=True) unit_name_plural = models.CharField(max_length=255, null=True, blank=True) @@ -34,6 +40,12 @@ class Property(models.Model): class Meta: verbose_name_plural = 'properties' + constraints = [ + models.UniqueConstraint(fields=['name', 'category'], condition=models.Q(category__isnull=False), + name='property_unique_name_category'), + models.UniqueConstraint(fields=['name'], condition=models.Q(category__isnull=True), + name='property_unique_name_no_category') + ] def __str__(self): return self.name @@ -42,26 +54,44 @@ class Property(models.Model): class Tag(models.Model): name = models.CharField(max_length=255) description = models.TextField(null=True, blank=True) - category = models.ForeignKey(Category, on_delete=models.CASCADE, null=True, blank=True, related_name='tags') + category = models.ForeignKey(Category, on_delete=models.CASCADE, null=True, related_name='tags') origin = models.CharField(max_length=255, null=False, blank=False) + class Meta: + verbose_name_plural = 'tags' + constraints = [ + models.UniqueConstraint(fields=['name', 'category'], condition=models.Q(category__isnull=False), + name='tag_unique_name_category'), + models.UniqueConstraint(fields=['name'], condition=models.Q(category__isnull=True), + name='tag_unique_name_no_category') + ] + def __str__(self): return self.name class InventoryItem(SoftDeleteModel): + AVAILABILITY_POLICY_CHOICES = ( + ('sell', 'Sell'), + ('rent', 'Rent'), + ('lend', 'Lend'), + ('share', 'Share'), + ('private', 'Private'), + ) + published = models.BooleanField(default=False) name = models.CharField(max_length=255, null=True, blank=True) description = models.TextField(null=True, blank=True) - category = models.ForeignKey(Category, on_delete=models.CASCADE, null=True, blank=True, - related_name='inventory_items') - availability_policy = models.CharField(max_length=255, default="private") + category = models.ForeignKey(Category, on_delete=models.CASCADE, null=True, related_name='inventory_items') + availability_policy = models.CharField(max_length=20, choices=AVAILABILITY_POLICY_CHOICES, default='private') owned_quantity = models.IntegerField(default=1, validators=[MinValueValidator(0)]) owner = models.ForeignKey(ToolshedUser, on_delete=models.CASCADE, related_name='inventory_items') created_at = models.DateTimeField(auto_now_add=True) tags = models.ManyToManyField(Tag, through='ItemTag', related_name='inventory_items') properties = models.ManyToManyField(Property, through='ItemProperty') files = models.ManyToManyField(File, related_name='connected_items') + storage_location = models.ForeignKey('StorageLocation', on_delete=models.CASCADE, null=True, blank=True, + related_name='inventory_items') def clean(self): if (self.name is None or self.name == "") and self.files.count() == 0: @@ -77,3 +107,16 @@ class ItemProperty(models.Model): class ItemTag(models.Model): tag = models.ForeignKey(Tag, on_delete=models.CASCADE) inventory_item = models.ForeignKey(InventoryItem, on_delete=models.CASCADE) + + +class StorageLocation(models.Model): + name = models.CharField(max_length=255) + description = models.TextField(null=True, blank=True) + category = models.ForeignKey(Category, on_delete=models.CASCADE, null=True, blank=True, + related_name='storage_locations') + parent = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children') + owner = models.ForeignKey(ToolshedUser, on_delete=models.CASCADE, related_name='storage_locations') + + def __str__(self): + parent = str(self.parent) + "/" if self.parent else "" + return parent + self.name diff --git a/backend/toolshed/serializers.py b/backend/toolshed/serializers.py index 82f9892..73edeff 100644 --- a/backend/toolshed/serializers.py +++ b/backend/toolshed/serializers.py @@ -3,7 +3,7 @@ from authentication.models import KnownIdentity, ToolshedUser, FriendRequestInco from authentication.serializers import OwnerSerializer from files.models import File from files.serializers import FileSerializer -from toolshed.models import Category, Property, ItemProperty, InventoryItem, Tag +from toolshed.models import Category, Property, ItemProperty, InventoryItem, Tag, StorageLocation class FriendSerializer(serializers.ModelSerializer): @@ -11,7 +11,7 @@ class FriendSerializer(serializers.ModelSerializer): class Meta: model = KnownIdentity - fields = ['username', 'public_key'] + fields = ['id', 'username', 'public_key'] def get_username(self, obj): return obj.username + '@' + obj.domain @@ -48,6 +48,23 @@ class CategorySerializer(serializers.ModelSerializer): return Category.objects.get(name=data.split("/")[-1]) +class StorageLocationSerializer(serializers.ModelSerializer): + owner = OwnerSerializer(read_only=True) + category = CategorySerializer(required=False, allow_null=True) + path = serializers.SerializerMethodField() + + class Meta: + model = StorageLocation + fields = ['id', 'name', 'description', 'path', 'category', 'owner'] + read_only_fields = ['path'] + + @staticmethod + def get_path(obj): + if obj.parent: + return StorageLocationSerializer.get_path(obj.parent) + "/" + obj.name + return obj.name + + class ItemPropertySerializer(serializers.ModelSerializer): property = PropertySerializer(read_only=True) @@ -74,7 +91,7 @@ class InventoryItemSerializer(serializers.ModelSerializer): class Meta: model = InventoryItem fields = ['id', 'name', 'description', 'owner', 'category', 'availability_policy', 'owned_quantity', 'owner', - 'tags', 'properties', 'files'] + 'tags', 'properties', 'files', 'storage_location'] def to_internal_value(self, data): files = data.pop('files', []) diff --git a/backend/toolshed/tests/fixtures.py b/backend/toolshed/tests/fixtures.py index 6755591..5ee9d8b 100644 --- a/backend/toolshed/tests/fixtures.py +++ b/backend/toolshed/tests/fixtures.py @@ -1,4 +1,4 @@ -from toolshed.models import Category, Tag, Property, InventoryItem, ItemProperty +from toolshed.models import Category, Tag, Property, InventoryItem, ItemProperty, StorageLocation class CategoryTestMixin: @@ -8,13 +8,16 @@ class CategoryTestMixin: self.f['cat3'] = Category.objects.create(name='cat3', origin='test') self.f['subcat1'] = Category.objects.create(name='subcat1', parent=self.f['cat1'], origin='test') self.f['subcat2'] = Category.objects.create(name='subcat2', parent=self.f['cat1'], origin='test') - self.f['subcat3'] = Category.objects.create(name='subcat3', parent=self.f['subcat1'], origin='test') + self.f['subcat11'] = Category.objects.create(name='subcat1', parent=self.f['subcat1'], origin='test') + self.f['subcat12'] = Category.objects.create(name='subcat2', parent=self.f['subcat1'], origin='test') class TagTestMixin: def prepare_tags(self): - self.f['tag1'] = Tag.objects.create(name='tag1', description='tag1 description', category=self.f['cat1'], origin='test') - self.f['tag2'] = Tag.objects.create(name='tag2', description='tag2 description', category=self.f['cat1'], origin='test') + self.f['tag1'] = Tag.objects.create(name='tag1', description='tag1 description', category=self.f['cat1'], + origin='test') + self.f['tag2'] = Tag.objects.create(name='tag2', description='tag2 description', category=self.f['cat1'], + origin='test') self.f['tag3'] = Tag.objects.create(name='tag3', origin='test') @@ -41,3 +44,13 @@ class InventoryTestMixin(CategoryTestMixin, TagTestMixin, PropertyTestMixin): self.f['item2'].tags.add(self.f['tag2'], through_defaults={}) ItemProperty.objects.create(inventory_item=self.f['item2'], property=self.f['prop1'], value='value1').save() ItemProperty.objects.create(inventory_item=self.f['item2'], property=self.f['prop2'], value='value2').save() + + +class LocationTestMixin: + def prepare_locations(self): + self.f['loc1'] = StorageLocation.objects.create(name='loc1', owner=self.f['local_user1']) + self.f['loc2'] = StorageLocation.objects.create(name='loc2', owner=self.f['local_user1'], + category=self.f['cat1']) + self.f['loc3'] = StorageLocation.objects.create(name='loc3', owner=self.f['local_user1'], parent=self.f['loc1']) + self.f['loc4'] = StorageLocation.objects.create(name='loc4', owner=self.f['local_user1'], parent=self.f['loc1'], + category=self.f['cat1']) diff --git a/backend/toolshed/tests/test_api.py b/backend/toolshed/tests/test_api.py index 18968d7..d77a0eb 100644 --- a/backend/toolshed/tests/test_api.py +++ b/backend/toolshed/tests/test_api.py @@ -43,7 +43,8 @@ class CombinedApiTestCase(UserTestMixin, CategoryTestMixin, TagTestMixin, Proper def test_policy_api(self): response = client.get('/api/availability_policies/', self.f['local_user1']) self.assertEqual(response.status_code, 200) - self.assertEqual(response.json(), ['private', 'friends', 'internal', 'public']) + self.assertEqual(response.json(), [['sell', 'Sell'], ['rent', 'Rent'], ['lend', 'Lend'], ['share', 'Share'], + ['private', 'Private']]) def test_combined_api_anonymous(self): response = anonymous_client.get('/api/info/') @@ -52,9 +53,11 @@ class CombinedApiTestCase(UserTestMixin, CategoryTestMixin, TagTestMixin, Proper def test_combined_api(self): response = client.get('/api/info/', self.f['local_user1']) self.assertEqual(response.status_code, 200) - self.assertEqual(response.json()['availability_policies'], ['private', 'friends', 'internal', 'public']) + self.assertEqual(response.json()['availability_policies'], [['sell', 'Sell'], ['rent', 'Rent'], ['lend', 'Lend'], + ['share', 'Share'], ['private', 'Private']]) self.assertEqual(response.json()['categories'], - ['cat1', 'cat2', 'cat3', 'cat1/subcat1', 'cat1/subcat2', 'cat1/subcat1/subcat3']) + ['cat1', 'cat2', 'cat3', 'cat1/subcat1', 'cat1/subcat2', 'cat1/subcat1/subcat1', + 'cat1/subcat1/subcat2']) self.assertEqual(response.json()['tags'], ['tag1', 'tag2', 'tag3']) self.assertEqual([p['name'] for p in response.json()['properties']], ['prop1', 'prop2', 'prop3']) self.assertEqual(response.json()['domains'], ['example.com']) diff --git a/backend/toolshed/tests/test_category.py b/backend/toolshed/tests/test_category.py index 114e7ad..10a552c 100644 --- a/backend/toolshed/tests/test_category.py +++ b/backend/toolshed/tests/test_category.py @@ -17,10 +17,11 @@ class CategoryTestCase(CategoryTestMixin, UserTestMixin, ToolshedTestCase): self.assertEqual(self.f['cat1'].children.last(), self.f['subcat2']) self.assertEqual(self.f['subcat1'].parent, self.f['cat1']) self.assertEqual(self.f['subcat2'].parent, self.f['cat1']) - self.assertEqual(self.f['subcat1'].children.count(), 1) + self.assertEqual(self.f['subcat1'].children.count(), 2) self.assertEqual(str(self.f['subcat1']), 'cat1/subcat1') self.assertEqual(str(self.f['subcat2']), 'cat1/subcat2') - self.assertEqual(str(self.f['subcat3']), 'cat1/subcat1/subcat3') + self.assertEqual(str(self.f['subcat11']), 'cat1/subcat1/subcat1') + self.assertEqual(str(self.f['subcat12']), 'cat1/subcat1/subcat2') class CategoryApiTestCase(CategoryTestMixin, UserTestMixin, ToolshedTestCase): @@ -33,10 +34,12 @@ class CategoryApiTestCase(CategoryTestMixin, UserTestMixin, ToolshedTestCase): def test_get_categories(self): reply = client.get('/api/categories/', self.f['local_user1']) self.assertEqual(reply.status_code, 200) - self.assertEqual(len(reply.json()), 6) + self.assertEqual(len(reply.json()), 7) self.assertEqual(reply.json()[0], 'cat1') self.assertEqual(reply.json()[1], 'cat2') self.assertEqual(reply.json()[2], 'cat3') self.assertEqual(reply.json()[3], 'cat1/subcat1') self.assertEqual(reply.json()[4], 'cat1/subcat2') - self.assertEqual(reply.json()[5], 'cat1/subcat1/subcat3') + self.assertEqual(reply.json()[5], 'cat1/subcat1/subcat1') + self.assertEqual(reply.json()[6], 'cat1/subcat1/subcat2') + diff --git a/backend/toolshed/tests/test_friend.py b/backend/toolshed/tests/test_friend.py index a6da890..fba1a42 100644 --- a/backend/toolshed/tests/test_friend.py +++ b/backend/toolshed/tests/test_friend.py @@ -130,7 +130,7 @@ class FriendRequestListTestCase(UserTestMixin, ToolshedTestCase): def test_delete_friend_request(self): reply = client.delete('/api/friendrequests/{}/'.format(self.friendrequest1.id), - self.f['local_user1']) + self.f['local_user1']) self.assertEqual(reply.status_code, 204) self.assertEqual(FriendRequestIncoming.objects.count(), 0) @@ -210,6 +210,17 @@ class FriendRequestIncomingTestCase(UserTestMixin, ToolshedTestCase): }) self.assertEqual(reply.status_code, 400) + def test_post_request_missing_key_none(self): + befriender = self.f['ext_user1'] + befriendee = self.f['local_user1'] + reply = client.post('/api/friendrequests/', befriender, { + 'befriender': str(befriender), + 'befriendee': str(befriendee), + 'befriender_key': None, + 'secret': 'secret2' + }) + self.assertEqual(reply.status_code, 400) + def test_post_request_breaking_key(self): befriender = self.f['ext_user1'] befriendee = self.f['local_user1'] @@ -357,3 +368,43 @@ class FriendRequestOutgoingTestCase(UserTestMixin, ToolshedTestCase): self.assertEqual(befriendee.friends.count(), 1) self.assertEqual(befriendee.friends.first().username, befriender.username) self.assertEqual(befriendee.friends.first().domain, befriender.domain) + + +class FriendRequestCombinedTestCase(UserTestMixin, ToolshedTestCase): + + def setUp(self): + super().setUp() + self.prepare_users() + + def test_friend_request_combined(self): + befriender = self.f['local_user1'] + befriendee = self.f['local_user2'] + reply1 = client.post('/api/friendrequests/', befriender, { + 'befriender': str(befriender), + 'befriendee': str(befriendee), + }) + secret = reply1.json()['secret'] + reply2 = client.post('/api/friendrequests/', befriender, { + 'befriender': str(befriender), + 'befriender_key': befriender.public_key(), + 'befriendee': str(befriendee), + 'secret': secret + }) + + self.assertEqual(reply1.status_code, 201) + self.assertEqual(reply2.status_code, 208) + self.assertEqual(reply1.json()['status'], 'pending') + self.assertEqual(reply2.json()['status'], 'exists') + self.assertEqual(FriendRequestIncoming.objects.count(), 1) + + def test_friend_request_already_friends(self): + befriender = self.f['local_user1'] + befriendee = self.f['local_user2'] + befriender.friends.add(befriendee.public_identity) + reply1 = client.post('/api/friendrequests/', befriender, { + 'befriender': str(befriender), + 'befriendee': str(befriendee), + }) + self.assertEqual(reply1.status_code, 208) + self.assertEqual(reply1.json()['status'], 'exists') + self.assertEqual(FriendRequestIncoming.objects.count(), 0) diff --git a/backend/toolshed/tests/test_inventory.py b/backend/toolshed/tests/test_inventory.py index 747c19e..a05421c 100644 --- a/backend/toolshed/tests/test_inventory.py +++ b/backend/toolshed/tests/test_inventory.py @@ -38,7 +38,7 @@ class InventoryApiTestCase(UserTestMixin, InventoryTestMixin, ToolshedTestCase): def test_post_new_item(self): reply = client.post('/api/inventory_items/', self.f['local_user1'], { - 'availability_policy': 'friends', + 'availability_policy': 'rent', 'category': 'cat2', 'name': 'test3', 'description': 'test', @@ -50,7 +50,7 @@ class InventoryApiTestCase(UserTestMixin, InventoryTestMixin, ToolshedTestCase): self.assertEqual(reply.status_code, 201) self.assertEqual(InventoryItem.objects.count(), 3) item = InventoryItem.objects.get(name='test3') - self.assertEqual(item.availability_policy, 'friends') + self.assertEqual(item.availability_policy, 'rent') self.assertEqual(item.category, Category.objects.get(name='cat2')) self.assertEqual(item.name, 'test3') self.assertEqual(item.description, 'test') @@ -61,7 +61,7 @@ class InventoryApiTestCase(UserTestMixin, InventoryTestMixin, ToolshedTestCase): def test_post_new_item2(self): reply = client.post('/api/inventory_items/', self.f['local_user1'], { - 'availability_policy': 'friends', + 'availability_policy': 'share', 'name': 'test3', 'description': 'test', 'owned_quantity': 1, @@ -70,7 +70,7 @@ class InventoryApiTestCase(UserTestMixin, InventoryTestMixin, ToolshedTestCase): self.assertEqual(reply.status_code, 201) self.assertEqual(InventoryItem.objects.count(), 3) item = InventoryItem.objects.get(name='test3') - self.assertEqual(item.availability_policy, 'friends') + self.assertEqual(item.availability_policy, 'share') self.assertEqual(item.category, None) self.assertEqual(item.name, 'test3') self.assertEqual(item.description, 'test') @@ -80,7 +80,7 @@ class InventoryApiTestCase(UserTestMixin, InventoryTestMixin, ToolshedTestCase): def test_post_new_item_empty(self): reply = client.post('/api/inventory_items/', self.f['local_user1'], { - 'availability_policy': 'friends', + 'availability_policy': 'rent', 'owned_quantity': 1, 'image': '', }) @@ -89,7 +89,7 @@ class InventoryApiTestCase(UserTestMixin, InventoryTestMixin, ToolshedTestCase): def test_post_new_item3(self): reply = client.post('/api/inventory_items/', self.f['local_user1'], { - 'availability_policy': 'friends', + 'availability_policy': 'private', 'name': 'test3', 'description': 'test', 'owned_quantity': 1, @@ -99,7 +99,7 @@ class InventoryApiTestCase(UserTestMixin, InventoryTestMixin, ToolshedTestCase): self.assertEqual(reply.status_code, 201) self.assertEqual(InventoryItem.objects.count(), 3) item = InventoryItem.objects.get(name='test3') - self.assertEqual(item.availability_policy, 'friends') + self.assertEqual(item.availability_policy, 'private') self.assertEqual(item.category, None) self.assertEqual(item.name, 'test3') self.assertEqual(item.description, 'test') @@ -109,7 +109,7 @@ class InventoryApiTestCase(UserTestMixin, InventoryTestMixin, ToolshedTestCase): def test_put_item(self): reply = client.put('/api/inventory_items/1/', self.f['local_user1'], { - 'availability_policy': 'friends', + 'availability_policy': 'sell', 'name': 'test4', 'description': 'new description', 'owned_quantity': 100, @@ -121,7 +121,7 @@ class InventoryApiTestCase(UserTestMixin, InventoryTestMixin, ToolshedTestCase): self.assertEqual(reply.status_code, 200) self.assertEqual(InventoryItem.objects.count(), 2) item = InventoryItem.objects.get(id=1) - self.assertEqual(item.availability_policy, 'friends') + self.assertEqual(item.availability_policy, 'sell') self.assertEqual(item.category, None) self.assertEqual(item.name, 'test4') self.assertEqual(item.description, 'new description') diff --git a/backend/toolshed/tests/test_locations.py b/backend/toolshed/tests/test_locations.py new file mode 100644 index 0000000..d792857 --- /dev/null +++ b/backend/toolshed/tests/test_locations.py @@ -0,0 +1,71 @@ +from authentication.tests import SignatureAuthClient, UserTestMixin, ToolshedTestCase +from files.tests import FilesTestMixin +from toolshed.models import InventoryItem, Category +from toolshed.tests import InventoryTestMixin, LocationTestMixin + +client = SignatureAuthClient() + + +class LocationApiTestCase(UserTestMixin, InventoryTestMixin, LocationTestMixin, ToolshedTestCase): + + def setUp(self): + super().setUp() + self.prepare_users() + self.prepare_categories() + self.prepare_tags() + self.prepare_properties() + self.prepare_locations() + self.prepare_inventory() + + def test_locations(self): + self.assertEqual("loc1", str(self.f['loc1'])) + self.assertEqual("loc1", self.f['loc1'].name) + self.assertEqual("loc2", str(self.f['loc2'])) + self.assertEqual("loc2", self.f['loc2'].name) + self.assertEqual("loc1/loc3", str(self.f['loc3'])) + self.assertEqual("loc3", self.f['loc3'].name) + self.assertEqual(self.f['loc1'], self.f['loc3'].parent) + self.assertEqual("loc1/loc4", str(self.f['loc4'])) + self.assertEqual("loc4", self.f['loc4'].name) + self.assertEqual(self.f['loc1'], self.f['loc4'].parent) + + def test_get_inventory(self): + reply = client.get('/api/inventory_items/', self.f['local_user1']) + self.assertEqual(reply.status_code, 200) + self.assertEqual(len(reply.json()), 2) + self.assertEqual(reply.json()[0]['name'], 'test1') + self.assertEqual(reply.json()[0]['description'], 'test') + self.assertEqual(reply.json()[0]['owned_quantity'], 1) + self.assertEqual(reply.json()[0]['tags'], []) + self.assertEqual(reply.json()[0]['properties'], []) + self.assertEqual(reply.json()[0]['category'], 'cat1') + self.assertEqual(reply.json()[0]['availability_policy'], 'friends') + self.assertEqual(reply.json()[1]['name'], 'test2') + self.assertEqual(reply.json()[1]['description'], 'test2') + self.assertEqual(reply.json()[1]['owned_quantity'], 1) + self.assertEqual(reply.json()[1]['tags'], ['tag1', 'tag2']) + self.assertEqual(reply.json()[1]['properties'], + [{'name': 'prop1', 'value': 'value1'}, {'name': 'prop2', 'value': 'value2'}]) + self.assertEqual(reply.json()[1]['category'], 'cat1') + self.assertEqual(reply.json()[1]['availability_policy'], 'friends') + + def test_get_inventory_item(self): + reply = client.get('/api/storage_locations/', self.f['local_user1']) + self.assertEqual(reply.status_code, 200) + self.assertEqual(len(reply.json()), 4) + self.assertEqual(reply.json()[0]['name'], 'loc1') + self.assertEqual(reply.json()[0]['description'], None) + self.assertEqual(reply.json()[0]['category'], None) + self.assertEqual(reply.json()[0]['path'], 'loc1') + self.assertEqual(reply.json()[1]['name'], 'loc2') + self.assertEqual(reply.json()[1]['description'], None) + self.assertEqual(reply.json()[1]['category'], 'cat1') + self.assertEqual(reply.json()[1]['path'], 'loc2') + self.assertEqual(reply.json()[2]['name'], 'loc3') + self.assertEqual(reply.json()[2]['description'], None) + self.assertEqual(reply.json()[2]['category'], None) + self.assertEqual(reply.json()[2]['path'], 'loc1/loc3') + self.assertEqual(reply.json()[3]['name'], 'loc4') + self.assertEqual(reply.json()[3]['description'], None) + self.assertEqual(reply.json()[3]['category'], 'cat1') + self.assertEqual(reply.json()[3]['path'], 'loc1/loc4') diff --git a/deploy/dev/Dockerfile.backend b/deploy/dev/Dockerfile.backend new file mode 100644 index 0000000..4eb1ded --- /dev/null +++ b/deploy/dev/Dockerfile.backend @@ -0,0 +1,16 @@ +# Use an official Python runtime as instance_a parent image +FROM python:3.9 + +# Set environment variables +ENV PYTHONDONTWRITEBYTECODE 1 +ENV PYTHONUNBUFFERED 1 + +# Set work directory +WORKDIR /code + +# Install dependencies +COPY requirements.txt /code/ +RUN pip install --no-cache-dir -r requirements.txt + +# Run the application +CMD ["python", "manage.py", "runserver", "0.0.0.0:8000", "--insecure"] diff --git a/deploy/dev/Dockerfile.dns b/deploy/dev/Dockerfile.dns new file mode 100644 index 0000000..055bdc0 --- /dev/null +++ b/deploy/dev/Dockerfile.dns @@ -0,0 +1,16 @@ +# Use an official Python runtime as instance_a parent image +FROM python:3.9 + +# Set environment variables +ENV PYTHONDONTWRITEBYTECODE 1 +ENV PYTHONUNBUFFERED 1 + +# Set work directory +WORKDIR /dns + +COPY dns_server.py /dns/ + +RUN pip install dnslib + +# Run the application +CMD ["python", "dns_server.py"] diff --git a/deploy/dev/Dockerfile.frontend b/deploy/dev/Dockerfile.frontend new file mode 100644 index 0000000..85138e6 --- /dev/null +++ b/deploy/dev/Dockerfile.frontend @@ -0,0 +1,13 @@ +# Use an official Node.js runtime as instance_a parent image +FROM node:14 + +# Set work directory +WORKDIR /app + +# Install app dependencies +# A wildcard is used to ensure both package.json AND package-lock.json are copied +COPY package.json ./ + +RUN npm install + +CMD [ "npm", "run", "dev", "--", "--host"] diff --git a/deploy/dev/Dockerfile.proxy b/deploy/dev/Dockerfile.proxy new file mode 100644 index 0000000..095c80f --- /dev/null +++ b/deploy/dev/Dockerfile.proxy @@ -0,0 +1,14 @@ +FROM nginx:bookworm + +# snakeoil for localhost + +RUN apt-get update && \ + apt-get install -y openssl && \ + openssl genrsa -des3 -passout pass:x -out server.pass.key 2048 && \ + openssl rsa -passin pass:x -in server.pass.key -out server.key && \ + rm server.pass.key && \ + openssl req -new -key server.key -out server.csr \ + -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=localhost" && \ + openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt &&\ + mv server.crt /etc/nginx/nginx.crt && \ + mv server.key /etc/nginx/nginx.key \ diff --git a/deploy/dev/Dockerfile.wiki b/deploy/dev/Dockerfile.wiki new file mode 100644 index 0000000..affa564 --- /dev/null +++ b/deploy/dev/Dockerfile.wiki @@ -0,0 +1,15 @@ +# Use an official Python runtime as instance_a parent image +FROM python:3.9 + +# Set environment variables +ENV PYTHONDONTWRITEBYTECODE 1 +ENV PYTHONUNBUFFERED 1 + +# Set work directory +WORKDIR /wiki + +# Install dependencies +RUN pip install --no-cache-dir mkdocs + +# Run the application +CMD ["mkdocs", "serve", "--dev-addr=0.0.0.0:8001"] diff --git a/deploy/dev/dns_server.py b/deploy/dev/dns_server.py new file mode 100644 index 0000000..1457699 --- /dev/null +++ b/deploy/dev/dns_server.py @@ -0,0 +1,72 @@ +import http.server +import socketserver +import urllib.parse +import dnslib +import base64 + +try: + + def resolve(zone, qname, qtype): + for record in zone: + if record["name"] == qname and record["type"] == qtype and "value" in record: + return record["value"] + + + class DnsHttpRequestHandler(http.server.BaseHTTPRequestHandler): + def do_GET(self): + try: + with open("/dns/zone.json", "r") as f: + import json + zone = json.load(f) + + url = urllib.parse.urlparse(self.path) + if url.path != "/dns-query": + self.send_response(404) + return + query = urllib.parse.parse_qs(url.query) + if "dns" not in query: + self.send_response(400) + return + query_base64 = query["dns"][0] + padded = query_base64 + "=" * (4 - len(query_base64) % 4) + raw = base64.b64decode(padded) + dns = dnslib.DNSRecord.parse(raw) + + response = dnslib.DNSRecord(dnslib.DNSHeader(id=dns.header.id, qr=1, aa=1, ra=1), q=dns.q) + + record = resolve(zone, dns.q.qname, dnslib.QTYPE[dns.q.qtype]) + if record: + if dns.q.qtype == dnslib.QTYPE.SRV: + print("SRV record") + reply = dnslib.SRV(record["priority"], record["weight"], record["port"], record["target"]) + response.add_answer(dnslib.RR(dns.q.qname, dns.q.qtype, rdata=reply)) + else: + response.header.rcode = dnslib.RCODE.NXDOMAIN + + print(response) + + self.send_response(200) + self.send_header("Content-type", "application/dns-message") + self.end_headers() + pack = response.pack() + self.wfile.write(pack) + return + except Exception as e: + print(f"Error: {e}") + self.send_response(500) + self.send_header("Content-type", "text/html") + self.end_headers() + self.wfile.write(b"Internal Server Error") + + + handler_object = DnsHttpRequestHandler + + PORT = 8053 + my_server = socketserver.TCPServer(("", PORT), handler_object) + + # Start the server + print(f"Starting server on port {PORT}") + my_server.serve_forever() + +except Exception as e: + print(f"Error: {e}") diff --git a/deploy/dev/instance_a/a.env b/deploy/dev/instance_a/a.env new file mode 100644 index 0000000..33c5b7e --- /dev/null +++ b/deploy/dev/instance_a/a.env @@ -0,0 +1,8 @@ + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG=True + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY='e*lm&*!j0_stqaiod$1zob(vs@aq6+n-i$1%!rek)_v9n^ue$3' + +ALLOWED_HOSTS="*" diff --git a/deploy/dev/instance_a/dns.json b/deploy/dev/instance_a/dns.json new file mode 100644 index 0000000..ead645f --- /dev/null +++ b/deploy/dev/instance_a/dns.json @@ -0,0 +1,3 @@ +[ + "127.0.0.3:5353" +] diff --git a/deploy/dev/instance_a/domains.json b/deploy/dev/instance_a/domains.json new file mode 100644 index 0000000..ad8f349 --- /dev/null +++ b/deploy/dev/instance_a/domains.json @@ -0,0 +1,3 @@ +[ + "a.localhost" +] diff --git a/deploy/dev/instance_a/nginx-a.dev.conf b/deploy/dev/instance_a/nginx-a.dev.conf new file mode 100644 index 0000000..b77f550 --- /dev/null +++ b/deploy/dev/instance_a/nginx-a.dev.conf @@ -0,0 +1,96 @@ +events {} + +http { + upstream backend { + server backend-a:8000; + } + + upstream frontend { + server frontend:5173; + } + + upstream wiki { + server wiki:8001; + } + + upstream dns { + server dns:8053; + } + + server { + + listen 8080 ssl; + server_name localhost; + + ssl_certificate /etc/nginx/nginx.crt; + ssl_certificate_key /etc/nginx/nginx.key; + + location /api { + proxy_set_header Host $host:$server_port; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Host $host:$server_port; + proxy_set_header X-Forwarded-Port $server_port; + proxy_pass http://backend; + } + + location /auth { + proxy_set_header Host $host:$server_port; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Host $host:$server_port; + proxy_set_header X-Forwarded-Port $server_port; + proxy_pass http://backend; + } + + location /docs { + proxy_pass http://backend/docs; + } + + location /static { + proxy_pass http://backend/static; + } + + location /wiki { + proxy_pass http://wiki/wiki; + } + + location /livereload { + proxy_pass http://wiki/livereload; + } + + location /local/ { + alias /var/www/; + try_files $uri.json =404; + add_header Content-Type application/json; + } + + location / { + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header Host $host; + proxy_pass http://frontend; + } + + } + + # DoH server + server { + listen 5353 ssl; + server_name localhost; + + ssl_certificate /etc/nginx/nginx.crt; + ssl_certificate_key /etc/nginx/nginx.key; + + location /dns-query { + proxy_pass http://dns; + # allow any origin + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS'; + + } + } +} diff --git a/deploy/dev/instance_b/b.env b/deploy/dev/instance_b/b.env new file mode 100644 index 0000000..c0118ca --- /dev/null +++ b/deploy/dev/instance_b/b.env @@ -0,0 +1,7 @@ +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG=True + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY='7ccxjje%q@@0*z+r&-$fy3(rj9n)%$!sk-k++-&rb=_u(wpjbe' + +ALLOWED_HOSTS="*" diff --git a/deploy/dev/instance_b/nginx-b.dev.conf b/deploy/dev/instance_b/nginx-b.dev.conf new file mode 100644 index 0000000..bb6596c --- /dev/null +++ b/deploy/dev/instance_b/nginx-b.dev.conf @@ -0,0 +1,46 @@ +events {} + +http { + upstream backend { + server backend-b:8000; + } + + server { + + listen 8080 ssl; + server_name localhost; + + ssl_certificate /etc/nginx/nginx.crt; + ssl_certificate_key /etc/nginx/nginx.key; + + location /api { + #proxy_set_header X-Forwarded-For "$http_x_forwarded_for, $realip_remote_addr"; + proxy_set_header Host $host:$server_port; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Host $host:$server_port; + proxy_set_header X-Forwarded-Port $server_port; + proxy_pass http://backend; + } + + location /auth { + #proxy_set_header X-Forwarded-For "$http_x_forwarded_for, $realip_remote_addr"; + proxy_set_header Host $host:$server_port; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Host $host:$server_port; + proxy_set_header X-Forwarded-Port $server_port; + proxy_pass http://backend; + } + + location /docs { + proxy_pass http://backend/docs; + } + + location /static { + proxy_pass http://backend/static; + } + } +} diff --git a/deploy/dev/zone.json b/deploy/dev/zone.json new file mode 100644 index 0000000..5c8be9a --- /dev/null +++ b/deploy/dev/zone.json @@ -0,0 +1,24 @@ +[ + { + "name": "_toolshed-server._tcp.a.localhost.", + "type": "SRV", + "ttl": 60, + "value": { + "priority": 0, + "weight": 5, + "port": 8080, + "target": "127.0.0.1." + } + }, + { + "name": "_toolshed-server._tcp.b.localhost.", + "type": "SRV", + "ttl": 60, + "value": { + "priority": 0, + "weight": 5, + "port": 8080, + "target": "127.0.0.2." + } + } +] diff --git a/deploy/docker-compose.override.yml b/deploy/docker-compose.override.yml new file mode 100644 index 0000000..30b4de9 --- /dev/null +++ b/deploy/docker-compose.override.yml @@ -0,0 +1,78 @@ +version: '3.8' + +services: + backend-a: + build: + context: ../backend/ + dockerfile: ../deploy/dev/Dockerfile.backend + volumes: + - ../backend:/code + - ../deploy/dev/instance_a/a.env:/code/.env + - ../deploy/dev/instance_a/a.sqlite3:/code/db.sqlite3 + expose: + - 8000 + command: bash -c "python configure.py; python configure.py testdata; python manage.py runserver 0.0.0.0:8000 --insecure" + + backend-b: + build: + context: ../backend/ + dockerfile: ../deploy/dev/Dockerfile.backend + volumes: + - ../backend:/code + - ../deploy/dev/instance_b/b.env:/code/.env + - ../deploy/dev/instance_b/b.sqlite3:/code/db.sqlite3 + expose: + - 8000 + command: bash -c "python configure.py; python configure.py testdata; python manage.py runserver 0.0.0.0:8000 --insecure" + + frontend: + build: + context: ../frontend/ + dockerfile: ../deploy/dev/Dockerfile.frontend + volumes: + - ../frontend:/app:ro + - /app/node_modules + expose: + - 5173 + command: npm run dev -- --host + + wiki: + build: + context: ../ + dockerfile: deploy/dev/Dockerfile.wiki + volumes: + - ../mkdocs.yml:/wiki/mkdocs.yml + - ../docs:/wiki/docs + expose: + - 8001 + command: mkdocs serve --dev-addr=0.0.0.0:8001 + + proxy-a: + build: + context: ./ + dockerfile: dev/Dockerfile.proxy + volumes: + - ./dev/instance_a/nginx-a.dev.conf:/etc/nginx/nginx.conf:ro + - ./dev/instance_a/dns.json:/var/www/dns.json:ro + - ./dev/instance_a/domains.json:/var/www/domains.json:ro + ports: + - "127.0.0.1:8080:8080" + - "127.0.0.3:5353:5353" + + proxy-b: + build: + context: ./ + dockerfile: dev/Dockerfile.proxy + volumes: + - ./dev/instance_b/nginx-b.dev.conf:/etc/nginx/nginx.conf:ro + ports: + - "127.0.0.2:8080:8080" + + dns: + build: + context: ./dev/ + dockerfile: Dockerfile.dns + volumes: + - ./dev/zone.json:/dns/zone.json + expose: + - 8053 diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 12187f1..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,43 +0,0 @@ -version: '3.3' - -services: - # db: - # image: postgres - # container_name: docker-django-vue-db - # environment: - # POSTGRES_USER: user - # POSTGRES_PASSWORD: pass - # POSTGRES_DB: db - # restart: unless-stopped - # ports: - # - "5432:5432" - django: - build: - context: ./backend - dockerfile: ./Dockerfile - command: python backend/manage.py runserver 0.0.0.0:8000 - volumes: - - .:/app - ports: - - "8002:8000" - networks: - - internal - # depends_on: - # - db - vue: - build: - context: ./frontend - dockerfile: ./Dockerfile - command: nginx -g 'daemon off;' - volumes: - - .:/app - ports: - - "8001:80" - networks: - - internal - - external - depends_on: - - django -networks: - external: - internal: \ No newline at end of file diff --git a/docs/deployment.md b/docs/deployment.md new file mode 100644 index 0000000..9262ebe --- /dev/null +++ b/docs/deployment.md @@ -0,0 +1,102 @@ +# Deployment + +## Native + +### Requirements + +- python3 +- python3-pip +- python3-venv +- wget +- unzip +- nginx +- uwsgi +- certbot + +### Installation + +Get the latest release: + +``` bash +cd /var/www # or wherever you want to install toolshed +wget https://git.neulandlabor.de/j3d1/toolshed/releases/download//toolshed.zip +``` +or from github: +``` bash +cd /var/www # or wherever you want to install toolshed +wget https://github.com/gr4yj3d1/toolshed/archive/refs/tags/.zip -O toolshed.zip +``` + +Extract and configure the backend: + +``` bash +unzip toolshed.zip +cd toolshed/backend +python3 -m venv venv +source venv/bin/activate +pip install -r requirements.txt +python configure.py +``` + +Configure uWSGI to serve the backend locally: + +``` bash +cd /var/www/toolshed/backend +cp toolshed.ini /etc/uwsgi/apps-available/ +ln -s /etc/uwsgi/apps-available/toolshed.ini /etc/uwsgi/apps-enabled/ +systemctl restart uwsgi +``` + +Configure nginx to serve the static files and proxy the requests to the backend: + +``` bash +cd /var/www/toolshed/backend +cp toolshed.nginx /etc/nginx/sites-available/toolshed +ln -s /etc/nginx/sites-available/toolsheed /etc/nginx/sites-enabled/ +systemctl restart nginx +``` + +Configure certbot to get a certificate for the domain: + +``` bash +certbot --nginx -d +``` + +### Update + +``` bash +cd /var/www +wget https://git.neulandlabor.de/j3d1/toolshed/releases/download//toolshed.zip +unzip toolshed.zip +cd toolshed/backend +source venv/bin/activate +pip install -r requirements.txt +python configure.py +systemctl restart uwsgi +``` + +## Docker + +### Requirements + +- docker +- docker-compose +- git + +### Installation + +``` bash +git clone https://git.neulandlabor.de/j3d1/toolshed.git +# or +git clone https://github.com/gr4yj3d1/toolshed.git +cd toolshed +docker-compose -f deploy/docker-compose.prod.yml up -d --build +``` + +### Update + +``` bash +toolshed +git pull +docker-compose -f deploy/docker-compose.prod.yml up -d --build +``` \ No newline at end of file diff --git a/docs/development.md b/docs/development.md new file mode 100644 index 0000000..3fcd229 --- /dev/null +++ b/docs/development.md @@ -0,0 +1,105 @@ +# Development + +``` bash +git clone https://github.com/gr4yj3d1/toolshed.git +``` + +or + +``` bash +git clone https://git.neulandlabor.de/j3d1/toolshed.git +``` + +## Native + +To a certain extent, the frontend and backend can be developed independently. The frontend is a Vue.js project and the +backend is a DRF (Django-Rest-Framework) project. If you want to develop the frontend, you can do so without the backend +and vice +versa. However, especially for the frontend, it is recommended to use the backend as well, as the frontend does not have +a lot of 'offline' functionality. +If you want to run the fullstack application, it is recommended to use the [docker-compose](#docker) method. + +### Frontend + +install `node.js` and `npm` + +on Debian* for example: `sudo apt install npm` + +``` bash +cd toolshed/frontend +npm install +npm run dev +``` + +### Backend + +Install `python3`, `pip` and `virtualenv` + +on Debian* for example: `sudo apt install python3 python3-pip python3-venv` + +Prepare backend environment + +``` bash +cd toolshed/backend +python -m venv venv +source venv/bin/activate +pip install -r requirements.txt +``` + +Run the test suite: + +``` bash +python manage.py test +``` + +optionally with coverage: + +``` bash +coverage run manage.py test +coverage report +``` + +Start the backend in development mode: + +``` bash +python manage.py migrate +cp .env.dist .env +echo "DEBUG = True" >> .env +python manage.py runserver 0.0.0.0:8000 +``` + +provides the api docs at `http://localhost:8000/docs/` + +### Docs (Wiki) + +Install `mkdocs` + +on Debian* for example: `sudo apt install mkdocs` + +Start the docs server: + +``` bash +cd toolshed/docs +mkdocs serve -a 0.0.0.0:8080 +``` + +## Docker + +### Fullstack + +Install `docker` and `docker-compose` + +on Debian* for example: `sudo apt install docker.io docker-compose` + +Start the fullstack application: + +``` bash +docker-compose -f deploy/docker-compose.override.yml up --build +``` + +This will start an instance of the frontend and wiki, a limited DoH (DNS over HTTPS) server and **two** instances of the backend. +The two backend instances are set up to use the domains `a.localhost` and `b.localhost`, the local DoH +server is used to direct the frontend to the correct backend instance. +The frontend is configured to act as if it was served from the domain `a.localhost`. +Access the frontend at `http://localhost:8080/`, backend at `http://localhost:8080/api/`, api docs +at `http://localhost:8080/docs/` and the wiki at `http://localhost:8080/wiki/`. \ No newline at end of file diff --git a/docs/federation.md b/docs/federation.md new file mode 100644 index 0000000..d242677 --- /dev/null +++ b/docs/federation.md @@ -0,0 +1,23 @@ +# Federation + +This section will cover how federation works in Toolshed. + +## What is Federation? + +Since user of Toolshed you can search and interact the inventory of all their 'friends' that are potentially on +different servers there is a need for a way to communicate between servers. We don't want to rely on a central server that +stores all the data and we don't want to have a central server that handles all the communication between servers. This +is where federation comes in. Toolshed uses a protocol that can not only exchange data with the server where the user +is registered but also with the servers where their friends are registered. + +## How does it work? + +Any user can register on any server and creates a personal key pair. The public key is stored on the server and the private +key is stored on the client. The private key is used to sign all requests to the server and the public key is used to +verify the signature. Once a user has registered on a server they can send friend requests to other users containing +their public key. If the other user accepts the friend request, the server stores the public key of the friend and +uses it to verify access to the friend's inventory. While accepting a friend request the user also automatically sends +their own public key to the friend's server. This way both users can access each other's inventory. + +The protocol is based on a simple HTTPS API exchanging JSON data that is signed with the user's private key. By default +Toolshed servers provide a documentation of the API at [/docs/api](/docs/api). \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 0ba4a97..95588dd 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,47 +6,8 @@ This is the documentation for the Toolshed project. It is a work in progress. `#social` `#network` `#federation` `#decentralized` `#federated` `#socialnetwork` `#fediverse` `#community` `#hashtags` ## Getting Started + - [Deploying Toolshed](deployment.md) + - [Development Setup](development.md) + - [About Federation](federation.md) -## Installation -``` bash - # TODO add installation instructions - # similar to development instructions just with more docker - # TODO add docker-compose.yml -``` - -## Development - -``` bash -git clone https://github.com/gr4yj3d1/toolshed.git -``` -or -``` bash -git clone https://git.neulandlabor.de/j3d1/toolshed.git -``` - -### Frontend - -``` bash -cd toolshed/frontend -npm install -npm run dev -``` - -### Backend - -``` bash -cd toolshed/backend -python3 -m venv venv -source venv/bin/activate -pip install -r requirements.txt -python manage.py migrate -python manage.py runserver 0.0.0.0:8000 -``` - -### Docs - -``` bash -cd toolshed/docs -mkdocs serve -a 0.0.0.0:8080 -``` diff --git a/frontend/Dockerfile b/frontend/Dockerfile deleted file mode 100644 index cbff043..0000000 --- a/frontend/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM node:alpine as builder -WORKDIR /app -COPY ./package.json /app/package.json -COPY . /app -RUN npm install -RUN npm run build - - -FROM nginx:alpine as runner -RUN apk add --update npm -WORKDIR /app -COPY --from=builder /app/dist /usr/share/nginx/html -COPY ./nginx.conf /etc/nginx/nginx.conf -EXPOSE 80 diff --git a/frontend/fullchain.pem b/frontend/fullchain.pem deleted file mode 100644 index f733cbd..0000000 --- a/frontend/fullchain.pem +++ /dev/null @@ -1,87 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEXTCCA0WgAwIBAgISBEHk0Sh8UrMfT+VPkRhr83mfMA0GCSqGSIb3DQEBCwUA -MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD -EwJSMzAeFw0yMzA2MDIxNzI1MDVaFw0yMzA4MzExNzI1MDRaMBsxGTAXBgNVBAMT -EHRvb2xzaGVkLmozZDEuZGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARYeMpT -k1DaC8cigL3DivanGrLQahYBEDm5B26VaS3gUmq9T0RNkEUxJIPnZBwdF8p7xAEB -hlTXwgy3eBLAp8lAo4ICTTCCAkkwDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQG -CCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTRtqOn -Qht7rD+2IEGzuYt8frTgVjAfBgNVHSMEGDAWgBQULrMXt1hWy65QCUDmH6+dixTC -xjBVBggrBgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9yMy5vLmxlbmNy -Lm9yZzAiBggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iub3JnLzAbBgNVHREE -FDASghB0b29sc2hlZC5qM2QxLmRlMEwGA1UdIARFMEMwCAYGZ4EMAQIBMDcGCysG -AQQBgt8TAQEBMCgwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2VuY3J5cHQu -b3JnMIIBBgYKKwYBBAHWeQIEAgSB9wSB9ADyAHcAtz77JN+cTbp18jnFulj0bF38 -Qs96nzXEnh0JgSXttJkAAAGIfVskxgAABAMASDBGAiEA+D8rCaCpttJm7w0M4N5N -3cmJSfPNmh/t2ojaDB0iSe0CIQCS2XkwJzUrDZ35fIJ9evwJduk/K2I/tmWs4Uk5 -vnPSNQB3AK33vvp8/xDIi509nB4+GGq0Zyldz7EMJMqFhjTr3IKKAAABiH1bJOoA -AAQDAEgwRgIhAPHQQwLf5xSi1VH6BeOpiUKyTMawd36FFU8eCIdB43q6AiEA0KDD -yRssPcmGnyWDGq9Of3mpKjCChFrnxzpeDXCTlsswDQYJKoZIhvcNAQELBQADggEB -AKo8APReSKNTydks9yqASKhUjuLfXS+mpFQSl2tbU8ER6eIiYHx8o+n2QCdT7h91 -ZLkGx8ZAmWBvVwXC3QPH5W08ilogi4EU/+HGffkditG5K6/Qn2bzjqnmFIyYqgdT -RVaRcxqS9byAGEw3oU5FSCIOuFSBeOHeTwaj+lSVMZTv6LmoovOpCo8sA5xZ6K6H -XVwNXIwunssaR4MrnWupB/5N+T7zkhanky4GgiLRuTm+mDbK+OIDx47Hv9jTe+tm -s4aixD0eWhzAaiA7HuHJI3Xi64YjK7eNlrwE0ZKdgy8KveDwUBiVcVtz7LR+0v1l -P27Z/OkZlA+42LvIJdISMl4= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw -TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh -cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw -WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg -RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP -R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx -sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm -NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg -Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG -/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC -AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB -Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA -FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw -AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw -Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB -gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W -PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl -ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz -CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm -lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4 -avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2 -yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O -yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids -hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+ -HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv -MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX -nLRbwHOoq7hHwg== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/ -MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT -DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow -TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh -cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC -ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL -wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D -LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK -4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5 -bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y -sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ -Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4 -FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc -SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql -PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND -TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw -SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1 -c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx -+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB -ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu -b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E -U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu -MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC -5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW -9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG -WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O -he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC -Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5 ------END CERTIFICATE----- diff --git a/frontend/nginx.conf b/frontend/nginx.conf deleted file mode 100644 index d6ee127..0000000 --- a/frontend/nginx.conf +++ /dev/null @@ -1,14 +0,0 @@ -server { - listen 80; - server_name localhost; - - location / { - root /usr/share/nginx/html; - index index.html index.htm; - } - - location /api { - proxy_pass http://django:8000; - } - -} \ No newline at end of file diff --git a/frontend/src/assets/css/toolshed.scss b/frontend/node_modules/.forgit similarity index 100% rename from frontend/src/assets/css/toolshed.scss rename to frontend/node_modules/.forgit diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 359f06a..e726ed1 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,6 +8,7 @@ "name": "frontend", "version": "0.0.0", "dependencies": { + "bootstrap": "^4.6.2", "bootstrap-icons-vue": "^1.10.3", "dns-query": "^0.11.2", "js-nacl": "^1.4.0", @@ -21,15 +22,15 @@ "@vitejs/plugin-vue": "^4.0.0", "@vue/test-utils": "^2.3.2", "jsdom": "^22.0.0", - "sass": "^1.62.1", + "sass": "^1.72.0", "vite": "^4.1.4", "vitest": "^0.31.1" } }, "node_modules/@babel/parser": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", + "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", "bin": { "parser": "bin/babel-parser.js" }, @@ -38,9 +39,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", - "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", "cpu": [ "arm" ], @@ -54,9 +55,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", - "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", "cpu": [ "arm64" ], @@ -70,9 +71,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", - "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", "cpu": [ "x64" ], @@ -86,9 +87,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", - "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", "cpu": [ "arm64" ], @@ -102,9 +103,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz", - "integrity": "sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", "cpu": [ "x64" ], @@ -118,9 +119,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", - "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", "cpu": [ "arm64" ], @@ -134,9 +135,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", - "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", "cpu": [ "x64" ], @@ -150,9 +151,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz", - "integrity": "sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", "cpu": [ "arm" ], @@ -166,9 +167,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz", - "integrity": "sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", "cpu": [ "arm64" ], @@ -182,9 +183,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", - "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", "cpu": [ "ia32" ], @@ -198,9 +199,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", - "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", "cpu": [ "loong64" ], @@ -214,9 +215,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", - "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", "cpu": [ "mips64el" ], @@ -230,9 +231,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz", - "integrity": "sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", "cpu": [ "ppc64" ], @@ -246,9 +247,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", - "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", "cpu": [ "riscv64" ], @@ -262,9 +263,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", - "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", "cpu": [ "s390x" ], @@ -278,9 +279,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", - "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", "cpu": [ "x64" ], @@ -294,9 +295,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", - "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", "cpu": [ "x64" ], @@ -310,9 +311,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", - "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", "cpu": [ "x64" ], @@ -326,9 +327,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", - "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", "cpu": [ "x64" ], @@ -342,9 +343,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", - "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", "cpu": [ "arm64" ], @@ -358,9 +359,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", - "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", "cpu": [ "ia32" ], @@ -374,9 +375,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", - "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", "cpu": [ "x64" ], @@ -389,11 +390,27 @@ "node": ">=12" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@leichtgewicht/base64-codec": { "version": "1.0.0", @@ -432,6 +449,22 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, + "node_modules/@one-ini/wasm": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", + "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", + "dev": true + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -442,47 +475,50 @@ } }, "node_modules/@types/chai": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", - "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", + "version": "4.3.14", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.14.tgz", + "integrity": "sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==", "dev": true }, "node_modules/@types/chai-subset": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", - "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.5.tgz", + "integrity": "sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==", "dev": true, "dependencies": { "@types/chai": "*" } }, "node_modules/@types/node": { - "version": "20.2.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.2.tgz", - "integrity": "sha512-iXqchnHr5CvfO+s/H5/Ji7fNak5bxb2Q2Fadq54sVhXRvEBRZAEyvVs3keVPS0xQNTnhLtxc5QDNXKyzSRpyKA==", - "dev": true + "version": "20.11.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz", + "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@vitejs/plugin-vue": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.1.0.tgz", - "integrity": "sha512-++9JOAFdcXI3lyer9UKUV4rfoQ3T1RN8yDqoCLar86s0xQct5yblxAE+yWgRnU5/0FOlVCpTZpYSBV/bGWrSrQ==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz", + "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==", "dev": true, "engines": { "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": "^4.0.0", + "vite": "^4.0.0 || ^5.0.0", "vue": "^3.2.25" } }, "node_modules/@vitest/expect": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.31.1.tgz", - "integrity": "sha512-BV1LyNvhnX+eNYzJxlHIGPWZpwJFZaCcOIzp2CNG0P+bbetenTupk6EO0LANm4QFt0TTit+yqx7Rxd1qxi/SQA==", + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.31.4.tgz", + "integrity": "sha512-tibyx8o7GUyGHZGyPgzwiaPaLDQ9MMuCOrc03BYT0nryUuhLbL7NV2r/q98iv5STlwMgaKuFJkgBW/8iPKwlSg==", "dev": true, "dependencies": { - "@vitest/spy": "0.31.1", - "@vitest/utils": "0.31.1", + "@vitest/spy": "0.31.4", + "@vitest/utils": "0.31.4", "chai": "^4.3.7" }, "funding": { @@ -490,12 +526,12 @@ } }, "node_modules/@vitest/runner": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.31.1.tgz", - "integrity": "sha512-imWuc82ngOtxdCUpXwtEzZIuc1KMr+VlQ3Ondph45VhWoQWit5yvG/fFcldbnCi8DUuFi+NmNx5ehMUw/cGLUw==", + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.31.4.tgz", + "integrity": "sha512-Wgm6UER+gwq6zkyrm5/wbpXGF+g+UBB78asJlFkIOwyse0pz8lZoiC6SW5i4gPnls/zUcPLWS7Zog0LVepXnpg==", "dev": true, "dependencies": { - "@vitest/utils": "0.31.1", + "@vitest/utils": "0.31.4", "concordance": "^5.0.4", "p-limit": "^4.0.0", "pathe": "^1.1.0" @@ -505,9 +541,9 @@ } }, "node_modules/@vitest/snapshot": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.31.1.tgz", - "integrity": "sha512-L3w5uU9bMe6asrNzJ8WZzN+jUTX4KSgCinEJPXyny0o90fG4FPQMV0OWsq7vrCWfQlAilMjDnOF9nP8lidsJ+g==", + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.31.4.tgz", + "integrity": "sha512-LemvNumL3NdWSmfVAMpXILGyaXPkZbG5tyl6+RQSdcHnTj6hvA49UAI8jzez9oQyE/FWLKRSNqTGzsHuk89LRA==", "dev": true, "dependencies": { "magic-string": "^0.30.0", @@ -518,22 +554,10 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/snapshot/node_modules/magic-string": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", - "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@vitest/spy": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.31.1.tgz", - "integrity": "sha512-1cTpt2m9mdo3hRLDyCG2hDQvRrePTDgEJBFQQNz1ydHHZy03EiA6EpFxY+7ODaY7vMRCie+WlFZBZ0/dQWyssQ==", + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.31.4.tgz", + "integrity": "sha512-3ei5ZH1s3aqbEyftPAzSuunGICRuhE+IXOmpURFdkm5ybUADk+viyQfejNk6q8M5QGX8/EVKw+QWMEP3DTJDag==", "dev": true, "dependencies": { "tinyspy": "^2.1.0" @@ -543,9 +567,9 @@ } }, "node_modules/@vitest/utils": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.31.1.tgz", - "integrity": "sha512-yFyRD5ilwojsZfo3E0BnH72pSVSuLg2356cN1tCEe/0RtDzxTPYwOomIC+eQbot7m6DRy4tPZw+09mB7NkbMmA==", + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.31.4.tgz", + "integrity": "sha512-DobZbHacWznoGUfYU8XDPY78UubJxXfMNY1+SUdOp1NsI34eopSA6aZMeaGu10waSOeYwE8lxrd/pLfT0RMxjQ==", "dev": true, "dependencies": { "concordance": "^5.0.4", @@ -557,146 +581,130 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz", - "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.21.tgz", + "integrity": "sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==", "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.47", + "@babel/parser": "^7.23.9", + "@vue/shared": "3.4.21", + "entities": "^4.5.0", "estree-walker": "^2.0.2", - "source-map": "^0.6.1" + "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-dom": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", - "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.21.tgz", + "integrity": "sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==", "dependencies": { - "@vue/compiler-core": "3.2.47", - "@vue/shared": "3.2.47" + "@vue/compiler-core": "3.4.21", + "@vue/shared": "3.4.21" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", - "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.21.tgz", + "integrity": "sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==", "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.47", - "@vue/compiler-dom": "3.2.47", - "@vue/compiler-ssr": "3.2.47", - "@vue/reactivity-transform": "3.2.47", - "@vue/shared": "3.2.47", + "@babel/parser": "^7.23.9", + "@vue/compiler-core": "3.4.21", + "@vue/compiler-dom": "3.4.21", + "@vue/compiler-ssr": "3.4.21", + "@vue/shared": "3.4.21", "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", - "postcss": "^8.1.10", - "source-map": "^0.6.1" + "magic-string": "^0.30.7", + "postcss": "^8.4.35", + "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", - "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.21.tgz", + "integrity": "sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==", "dependencies": { - "@vue/compiler-dom": "3.2.47", - "@vue/shared": "3.2.47" + "@vue/compiler-dom": "3.4.21", + "@vue/shared": "3.4.21" } }, "node_modules/@vue/devtools-api": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", - "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.1.tgz", + "integrity": "sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==" }, "node_modules/@vue/reactivity": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz", - "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.21.tgz", + "integrity": "sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==", "dependencies": { - "@vue/shared": "3.2.47" - } - }, - "node_modules/@vue/reactivity-transform": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", - "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.47", - "@vue/shared": "3.2.47", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7" + "@vue/shared": "3.4.21" } }, "node_modules/@vue/runtime-core": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz", - "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.21.tgz", + "integrity": "sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==", "dependencies": { - "@vue/reactivity": "3.2.47", - "@vue/shared": "3.2.47" + "@vue/reactivity": "3.4.21", + "@vue/shared": "3.4.21" } }, "node_modules/@vue/runtime-dom": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", - "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.21.tgz", + "integrity": "sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==", "dependencies": { - "@vue/runtime-core": "3.2.47", - "@vue/shared": "3.2.47", - "csstype": "^2.6.8" + "@vue/runtime-core": "3.4.21", + "@vue/shared": "3.4.21", + "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz", - "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.21.tgz", + "integrity": "sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==", "dependencies": { - "@vue/compiler-ssr": "3.2.47", - "@vue/shared": "3.2.47" + "@vue/compiler-ssr": "3.4.21", + "@vue/shared": "3.4.21" }, "peerDependencies": { - "vue": "3.2.47" + "vue": "3.4.21" } }, "node_modules/@vue/shared": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz", - "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.21.tgz", + "integrity": "sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==" }, "node_modules/@vue/test-utils": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.3.2.tgz", - "integrity": "sha512-hJnVaYhbrIm0yBS0+e1Y0Sj85cMyAi+PAbK4JHqMRUZ6S622Goa+G7QzkRSyvCteG8wop7tipuEbHoZo26wsSA==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.4.5.tgz", + "integrity": "sha512-oo2u7vktOyKUked36R93NB7mg2B+N7Plr8lxp2JBGwr18ch6EggFjixSCdIVVLkT6Qr0z359Xvnafc9dcKyDUg==", "dev": true, "dependencies": { - "js-beautify": "1.14.6" - }, - "optionalDependencies": { - "@vue/compiler-dom": "^3.0.1", - "@vue/server-renderer": "^3.0.1" - }, - "peerDependencies": { - "@vue/compiler-dom": "^3.0.1", - "@vue/server-renderer": "^3.0.1", - "vue": "^3.0.1" + "js-beautify": "^1.14.9", + "vue-component-type-helpers": "^2.0.0" } }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", "dev": true }, "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -706,9 +714,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", "dev": true, "engines": { "node": ">=0.4.0" @@ -727,12 +735,15 @@ } }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { @@ -782,12 +793,15 @@ "dev": true }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/blueimp-md5": { @@ -796,10 +810,29 @@ "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", "dev": true }, + "node_modules/bootstrap": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz", + "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "jquery": "1.9.1 - 3", + "popper.js": "^1.16.1" + } + }, "node_modules/bootstrap-icons-vue": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/bootstrap-icons-vue/-/bootstrap-icons-vue-1.10.3.tgz", - "integrity": "sha512-BzqmLufgHjFvSReJ1GQqNkl780UFK0rWT4Y1IQC7lZClXyOSsM5Ipw04BnuVmmrqgtSxzak83jcBwLJgCK3scg==" + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/bootstrap-icons-vue/-/bootstrap-icons-vue-1.11.3.tgz", + "integrity": "sha512-Xba1GTDYon8KYSDTKiiAtiyfk4clhdKQYvCQPMkE58+F5loVwEmh0Wi+ECCfowNc9SGwpoSLpSkvg7rhgZBttw==" }, "node_modules/brace-expansion": { "version": "2.0.1", @@ -837,43 +870,40 @@ } }, "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "type-detect": "^4.0.8" }, "engines": { "node": ">=4" } }, "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, "engines": { "node": "*" } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -886,10 +916,31 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -903,10 +954,13 @@ } }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } }, "node_modules/concordance": { "version": "5.0.4", @@ -937,6 +991,20 @@ "proto-list": "~1.2.1" } }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/cssstyle": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", @@ -950,9 +1018,9 @@ } }, "node_modules/csstype": { - "version": "2.6.21", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/data-urls": { "version": "4.0.0", @@ -1043,6 +1111,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "deprecated": "Use your platform's native DOMException instead", "dev": true, "dependencies": { "webidl-conversions": "^7.0.0" @@ -1051,51 +1120,40 @@ "node": ">=12" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "node_modules/editorconfig": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", - "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", + "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", "dev": true, "dependencies": { - "commander": "^2.19.0", - "lru-cache": "^4.1.5", - "semver": "^5.6.0", - "sigmund": "^1.0.1" + "@one-ini/wasm": "0.1.1", + "commander": "^10.0.0", + "minimatch": "9.0.1", + "semver": "^7.5.3" }, "bin": { "editorconfig": "bin/editorconfig" + }, + "engines": { + "node": ">=14" } }, - "node_modules/editorconfig/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/editorconfig/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/editorconfig/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, "engines": { "node": ">=0.12" }, @@ -1104,9 +1162,9 @@ } }, "node_modules/esbuild": { - "version": "0.17.18", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", - "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "dev": true, "hasInstallScript": true, "bin": { @@ -1116,28 +1174,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.17.18", - "@esbuild/android-arm64": "0.17.18", - "@esbuild/android-x64": "0.17.18", - "@esbuild/darwin-arm64": "0.17.18", - "@esbuild/darwin-x64": "0.17.18", - "@esbuild/freebsd-arm64": "0.17.18", - "@esbuild/freebsd-x64": "0.17.18", - "@esbuild/linux-arm": "0.17.18", - "@esbuild/linux-arm64": "0.17.18", - "@esbuild/linux-ia32": "0.17.18", - "@esbuild/linux-loong64": "0.17.18", - "@esbuild/linux-mips64el": "0.17.18", - "@esbuild/linux-ppc64": "0.17.18", - "@esbuild/linux-riscv64": "0.17.18", - "@esbuild/linux-s390x": "0.17.18", - "@esbuild/linux-x64": "0.17.18", - "@esbuild/netbsd-x64": "0.17.18", - "@esbuild/openbsd-x64": "0.17.18", - "@esbuild/sunos-x64": "0.17.18", - "@esbuild/win32-arm64": "0.17.18", - "@esbuild/win32-ia32": "0.17.18", - "@esbuild/win32-x64": "0.17.18" + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" } }, "node_modules/estree-walker": { @@ -1172,6 +1230,22 @@ "node": ">=8" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -1186,16 +1260,10 @@ "node": ">= 6" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -1207,28 +1275,31 @@ } }, "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, "engines": { "node": "*" } }, "node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1298,25 +1369,9 @@ } }, "node_modules/immutable": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", - "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", "dev": true }, "node_modules/ini": { @@ -1346,6 +1401,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -1373,16 +1437,47 @@ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", + "peer": true + }, "node_modules/js-beautify": { - "version": "1.14.6", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.6.tgz", - "integrity": "sha512-GfofQY5zDp+cuHc+gsEXKPpNw2KbPddreEo35O6jT6i0RVK6LhsoYBhq5TvK4/n74wnA0QbK8gGd+jUZwTMKJw==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.1.tgz", + "integrity": "sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==", "dev": true, "dependencies": { "config-chain": "^1.1.13", - "editorconfig": "^0.15.3", - "glob": "^8.0.3", - "nopt": "^6.0.0" + "editorconfig": "^1.0.4", + "glob": "^10.3.3", + "js-cookie": "^3.0.5", + "nopt": "^7.2.0" }, "bin": { "css-beautify": "js/bin/css-beautify.js", @@ -1390,7 +1485,16 @@ "js-beautify": "js/bin/js-beautify.js" }, "engines": { - "node": ">=10" + "node": ">=14" + } + }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "dev": true, + "engines": { + "node": ">=14" } }, "node_modules/js-nacl": { @@ -1411,9 +1515,9 @@ } }, "node_modules/jsdom": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.0.0.tgz", - "integrity": "sha512-p5ZTEb5h+O+iU02t0GfEjAnkdYPrQSkfuTSMkMYyIoMvUNEHsbG0bHHbfXIcfTqD2UfvjQX7mmgiFsyRwGscVw==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz", + "integrity": "sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==", "dev": true, "dependencies": { "abab": "^2.0.6", @@ -1453,9 +1557,9 @@ } }, "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", "dev": true }, "node_modules/local-pkg": { @@ -1477,32 +1581,32 @@ "dev": true }, "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, "dependencies": { - "get-func-name": "^2.0.0" + "get-func-name": "^2.0.1" } }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { - "node": ">=10" + "node": "14 || >=16.14" } }, "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "version": "0.30.8", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", + "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", "dependencies": { - "sourcemap-codec": "^1.4.8" + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" } }, "node_modules/md5-hex": { @@ -1539,33 +1643,45 @@ } }, "node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" } }, "node_modules/mlly": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.2.1.tgz", - "integrity": "sha512-1aMEByaWgBPEbWV2BOPEMySRrzl7rIHXmQxam4DM8jVjalTQDjpN2ZKOLUrwyhfZQO7IXHml2StcHMhooDeEEQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.6.1.tgz", + "integrity": "sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==", "dev": true, "dependencies": { - "acorn": "^8.8.2", - "pathe": "^1.1.0", + "acorn": "^8.11.3", + "pathe": "^1.1.2", "pkg-types": "^1.0.3", - "ufo": "^1.1.2" + "ufo": "^1.3.2" } }, "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", "engines": { "node": "*" } @@ -1577,9 +1693,9 @@ "dev": true }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "funding": [ { "type": "github", @@ -1594,18 +1710,18 @@ } }, "node_modules/nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", "dev": true, "dependencies": { - "abbrev": "^1.0.0" + "abbrev": "^2.0.0" }, "bin": { "nopt": "bin/nopt.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/normalize-path": { @@ -1618,20 +1734,11 @@ } }, "node_modules/nwsapi": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.4.tgz", - "integrity": "sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", "dev": true }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, "node_modules/p-limit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", @@ -1659,10 +1766,35 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/pathe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz", - "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", "dev": true }, "node_modules/pathval": { @@ -1702,10 +1834,21 @@ "pathe": "^1.1.0" } }, + "node_modules/popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", + "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/postcss": { - "version": "8.4.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", - "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "funding": [ { "type": "opencollective", @@ -1721,9 +1864,9 @@ } ], "dependencies": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -1743,18 +1886,21 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/pretty-format/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", "dev": true }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", - "dev": true - }, "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -1762,9 +1908,9 @@ "dev": true }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { "node": ">=6" @@ -1801,9 +1947,9 @@ "dev": true }, "node_modules/rollup": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.0.tgz", - "integrity": "sha512-ANPhVcyeHvYdQMUyCbczy33nbLzI7RzrBje4uvNiTDJGIMtlKoOStmympwr9OtS1LZxiDmE2wvxHyVhoLtf1KQ==", + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -1829,9 +1975,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.62.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz", - "integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", + "version": "1.72.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.72.0.tgz", + "integrity": "sha512-Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -1858,9 +2004,9 @@ } }, "node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -1872,40 +2018,65 @@ "node": ">=10" } }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/siginfo": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", "dev": true }, - "node_modules/sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "engines": { "node": ">=0.10.0" } }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead" - }, "node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", @@ -1913,18 +2084,114 @@ "dev": true }, "node_modules/std-env": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.3.tgz", - "integrity": "sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", "dev": true }, - "node_modules/strip-literal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", - "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "dependencies": { - "acorn": "^8.8.2" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-literal": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", + "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", + "dev": true, + "dependencies": { + "acorn": "^8.10.0" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -1946,9 +2213,9 @@ } }, "node_modules/tinybench": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.0.tgz", - "integrity": "sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.6.0.tgz", + "integrity": "sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==", "dev": true }, "node_modules/tinypool": { @@ -1961,9 +2228,9 @@ } }, "node_modules/tinyspy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.1.0.tgz", - "integrity": "sha512-7eORpyqImoOvkQJCSkL0d0mB4NHHIFAy4b1u8PHdDa7SjGS2njzl6/lyGoZLm+eyYEtlUmFGE0rFj66SWxZgQQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", "dev": true, "engines": { "node": ">=14.0.0" @@ -1982,9 +2249,9 @@ } }, "node_modules/tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, "dependencies": { "psl": "^1.1.33", @@ -2018,9 +2285,15 @@ } }, "node_modules/ufo": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.2.tgz", - "integrity": "sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", + "dev": true + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, "node_modules/universalify": { @@ -2063,14 +2336,14 @@ "integrity": "sha512-i/I1Omf6lADjVBlwJpQifZOePV15snHny9w04+lc71+3t8PyWuLC/7clyoOSHOBNGXFe2PAGxmTiZ+Z4HWsPyw==" }, "node_modules/vite": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", - "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz", + "integrity": "sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==", "dev": true, "dependencies": { - "esbuild": "^0.17.5", - "postcss": "^8.4.23", - "rollup": "^3.21.0" + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" }, "bin": { "vite": "bin/vite.js" @@ -2078,12 +2351,16 @@ "engines": { "node": "^14.18.0 || >=16.0.0" }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, "optionalDependencies": { "fsevents": "~2.3.2" }, "peerDependencies": { "@types/node": ">= 14", "less": "*", + "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", @@ -2096,6 +2373,9 @@ "less": { "optional": true }, + "lightningcss": { + "optional": true + }, "sass": { "optional": true }, @@ -2111,9 +2391,9 @@ } }, "node_modules/vite-node": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.31.1.tgz", - "integrity": "sha512-BajE/IsNQ6JyizPzu9zRgHrBwczkAs0erQf/JRpgTIESpKvNj9/Gd0vxX905klLkb0I0SJVCKbdrl5c6FnqYKA==", + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.31.4.tgz", + "integrity": "sha512-uzL377GjJtTbuc5KQxVbDu2xfU/x0wVjUtXQR2ihS21q/NK6ROr4oG0rsSkBBddZUVCwzfx22in76/0ZZHXgkQ==", "dev": true, "dependencies": { "cac": "^6.7.14", @@ -2134,19 +2414,19 @@ } }, "node_modules/vitest": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.31.1.tgz", - "integrity": "sha512-/dOoOgzoFk/5pTvg1E65WVaobknWREN15+HF+0ucudo3dDG/vCZoXTQrjIfEaWvQXmqScwkRodrTbM/ScMpRcQ==", + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.31.4.tgz", + "integrity": "sha512-GoV0VQPmWrUFOZSg3RpQAPN+LPmHg2/gxlMNJlyxJihkz6qReHDV6b0pPDcqFLNEPya4tWJ1pgwUNP9MLmUfvQ==", "dev": true, "dependencies": { "@types/chai": "^4.3.5", "@types/chai-subset": "^1.3.3", "@types/node": "*", - "@vitest/expect": "0.31.1", - "@vitest/runner": "0.31.1", - "@vitest/snapshot": "0.31.1", - "@vitest/spy": "0.31.1", - "@vitest/utils": "0.31.1", + "@vitest/expect": "0.31.4", + "@vitest/runner": "0.31.4", + "@vitest/snapshot": "0.31.4", + "@vitest/spy": "0.31.4", + "@vitest/utils": "0.31.4", "acorn": "^8.8.2", "acorn-walk": "^8.2.0", "cac": "^6.7.14", @@ -2162,7 +2442,7 @@ "tinybench": "^2.5.0", "tinypool": "^0.5.0", "vite": "^3.0.0 || ^4.0.0", - "vite-node": "0.31.1", + "vite-node": "0.31.4", "why-is-node-running": "^2.2.2" }, "bin": { @@ -2211,45 +2491,47 @@ } } }, - "node_modules/vitest/node_modules/magic-string": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", - "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", - "dev": true, + "node_modules/vue": { + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.21.tgz", + "integrity": "sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "@vue/compiler-dom": "3.4.21", + "@vue/compiler-sfc": "3.4.21", + "@vue/runtime-dom": "3.4.21", + "@vue/server-renderer": "3.4.21", + "@vue/shared": "3.4.21" }, - "engines": { - "node": ">=12" + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/vue": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz", - "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", - "dependencies": { - "@vue/compiler-dom": "3.2.47", - "@vue/compiler-sfc": "3.2.47", - "@vue/runtime-dom": "3.2.47", - "@vue/server-renderer": "3.2.47", - "@vue/shared": "3.2.47" - } + "node_modules/vue-component-type-helpers": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-2.0.7.tgz", + "integrity": "sha512-7e12Evdll7JcTIocojgnCgwocX4WzIYStGClBQ+QuWPinZo/vQolv2EMq4a3lg16TKfwWafLimG77bxb56UauA==", + "dev": true }, "node_modules/vue-multiselect": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/vue-multiselect/-/vue-multiselect-2.1.7.tgz", - "integrity": "sha512-KIegcN+Ntwg3cbkY/jhw2s/+XJUM0Lpi/LcKFYCS8PrZHcWBl2iKCVze7ZCnRj3w8H7/lUJ9v7rj9KQiNxApBw==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/vue-multiselect/-/vue-multiselect-2.1.9.tgz", + "integrity": "sha512-nGEppmzhQQT2iDz4cl+ZCX3BpeNhygK50zWFTIRS+r7K7i61uWXJWSioMuf+V/161EPQjexI8NaEBdUlF3dp+g==", "engines": { "node": ">= 4.0.0", "npm": ">= 3.0.0" } }, "node_modules/vue-router": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz", - "integrity": "sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.3.0.tgz", + "integrity": "sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ==", "dependencies": { - "@vue/devtools-api": "^6.4.5" + "@vue/devtools-api": "^6.5.1" }, "funding": { "url": "https://github.com/sponsors/posva" @@ -2333,6 +2615,21 @@ "node": ">=14" } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/why-is-node-running": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", @@ -2349,16 +2646,113 @@ "node": ">=8" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", "dev": true, "engines": { "node": ">=10.0.0" diff --git a/frontend/package.json b/frontend/package.json index 29846ea..fea4d8a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -8,6 +8,7 @@ "preview": "vite preview" }, "dependencies": { + "bootstrap": "^4.6.2", "bootstrap-icons-vue": "^1.10.3", "dns-query": "^0.11.2", "js-nacl": "^1.4.0", @@ -21,7 +22,7 @@ "@vitejs/plugin-vue": "^4.0.0", "@vue/test-utils": "^2.3.2", "jsdom": "^22.0.0", - "sass": "^1.62.1", + "sass": "^1.72.0", "vite": "^4.1.4", "vitest": "^0.31.1" } diff --git a/frontend/privkey.pem b/frontend/privkey.pem deleted file mode 100644 index 96b7dda..0000000 --- a/frontend/privkey.pem +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgD6EmCAUWob1zUw4Q -F+Pf9cSOmSCTODe6u+Gst177IoihRANCAARYeMpTk1DaC8cigL3DivanGrLQahYB -EDm5B26VaS3gUmq9T0RNkEUxJIPnZBwdF8p7xAEBhlTXwgy3eBLAp8lA ------END PRIVATE KEY----- diff --git a/frontend/public/assets/img/avatars/avatar-2.png b/frontend/public/assets/img/avatars/avatar-2.png deleted file mode 100644 index 9eb3ec9..0000000 Binary files a/frontend/public/assets/img/avatars/avatar-2.png and /dev/null differ diff --git a/frontend/public/assets/img/avatars/avatar-3.png b/frontend/public/assets/img/avatars/avatar-3.png deleted file mode 100644 index a0dbc96..0000000 Binary files a/frontend/public/assets/img/avatars/avatar-3.png and /dev/null differ diff --git a/frontend/public/assets/img/avatars/avatar-4.png b/frontend/public/assets/img/avatars/avatar-4.png deleted file mode 100644 index de75ef6..0000000 Binary files a/frontend/public/assets/img/avatars/avatar-4.png and /dev/null differ diff --git a/frontend/public/assets/img/avatars/avatar-5.png b/frontend/public/assets/img/avatars/avatar-5.png deleted file mode 100644 index 40d595e..0000000 Binary files a/frontend/public/assets/img/avatars/avatar-5.png and /dev/null differ diff --git a/frontend/public/assets/img/avatars/avatar-6.png b/frontend/public/assets/img/avatars/avatar-6.png deleted file mode 100644 index bc8577c..0000000 Binary files a/frontend/public/assets/img/avatars/avatar-6.png and /dev/null differ diff --git a/frontend/public/assets/img/avatars/avatar.png b/frontend/public/assets/img/avatars/avatar.png deleted file mode 100644 index 894246c..0000000 Binary files a/frontend/public/assets/img/avatars/avatar.png and /dev/null differ diff --git a/frontend/public/assets/img/photos/unsplash-1.jpg b/frontend/public/assets/img/photos/unsplash-1.jpg deleted file mode 100644 index ccc3963..0000000 Binary files a/frontend/public/assets/img/photos/unsplash-1.jpg and /dev/null differ diff --git a/frontend/public/assets/img/photos/unsplash-2.jpg b/frontend/public/assets/img/photos/unsplash-2.jpg deleted file mode 100644 index 3a33349..0000000 Binary files a/frontend/public/assets/img/photos/unsplash-2.jpg and /dev/null differ diff --git a/frontend/public/assets/img/photos/unsplash-3.jpg b/frontend/public/assets/img/photos/unsplash-3.jpg deleted file mode 100644 index bc287e5..0000000 Binary files a/frontend/public/assets/img/photos/unsplash-3.jpg and /dev/null differ diff --git a/frontend/src/App.vue b/frontend/src/App.vue index d96b367..a7280b7 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -3,23 +3,13 @@ diff --git a/frontend/src/assets/css/toolshed.css b/frontend/src/assets/css/toolshed.css deleted file mode 100644 index daced67..0000000 --- a/frontend/src/assets/css/toolshed.css +++ /dev/null @@ -1,20696 +0,0 @@ - -/*! - * Bootstrap v5.0.0-alpha2 (https://getbootstrap.com/) - * Copyright 2011-2020 The Bootstrap Authors - * Copyright 2011-2020 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -:root { - --bs-blue: #3b7ddd; - --bs-indigo: #6610f2; - --bs-purple: #6f42c1; - --bs-pink: #e83e8c; - --bs-red: #dc3545; - --bs-orange: #fd7e14; - --bs-yellow: #ffc107; - --bs-green: #28a745; - --bs-teal: #20c997; - --bs-cyan: #17a2b8; - --bs-white: #fff; - --bs-gray: #6c757d; - --bs-gray-dark: #343a40; - --bs-primary: #3b7ddd; - --bs-secondary: #6c757d; - --bs-success: #28a745; - --bs-info: #17a2b8; - --bs-warning: #ffc107; - --bs-danger: #dc3545; - --bs-light: #f8f9fa; - --bs-dark: #212529; - --bs-font-sans-serif: "Inter", "Helvetica Neue", Arial, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - --bs-gradient: linear-gradient(180deg, hsla(0, 0%, 100%, 0.15), hsla(0, 0%, 100%, 0)) -} - -*, :after, :before { - box-sizing: border-box -} - -body { - margin: 0; - font-family: var(--bs-font-sans-serif); - font-size: .875rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - background-color: #f7f7fc; - -webkit-text-size-adjust: 100%; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0) -} - -[tabindex="-1"]:focus:not(:focus-visible) { - outline: 0 !important -} - -hr { - margin: 1rem 0; - color: inherit; - background-color: currentColor; - border: 0; - opacity: .25 -} - -hr:not([size]) { - height: 1px -} - -.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { - margin-top: 0; - margin-bottom: .5rem; - font-weight: 400; - line-height: 1.2; - color: #000 -} - -.h1, h1 { - font-size: 1.75rem -} - -.h2, h2 { - font-size: 1.53125rem -} - -.h3, h3 { - font-size: 1.3125rem -} - -.h4, h4 { - font-size: 1.09375rem -} - -.h5, .h6, h5, h6 { - font-size: .875rem -} - -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; - -webkit-text-decoration-skip-ink: none; - text-decoration-skip-ink: none -} - -address { - margin-bottom: 1rem; - font-style: normal; - line-height: inherit -} - -ol, ul { - padding-left: 2rem -} - -dl, ol, ul { - margin-top: 0; - margin-bottom: 1rem -} - -ol ol, ol ul, ul ol, ul ul { - margin-bottom: 0 -} - -dt { - font-weight: 600 -} - -dd { - margin-bottom: .5rem; - margin-left: 0 -} - -blockquote { - margin: 0 0 1rem -} - -b, strong { - font-weight: bolder -} - -.small, small { - font-size: 80% -} - -.mark, mark { - padding: .2em; - background-color: #fcf8e3 -} - -sub, sup { - position: relative; - font-size: .75em; - line-height: 0; - vertical-align: initial -} - -sub { - bottom: -.25em -} - -sup { - top: -.5em -} - -a { - color: #3b7ddd; - text-decoration: none -} - -a:hover { - color: #1e58ad; - text-decoration: underline -} - -a:not([href]):not([class]), a:not([href]):not([class]):hover { - color: inherit; - text-decoration: none -} - -code, kbd, pre, samp { - font-family: var(--bs-font-monospace); - font-size: 1em -} - -pre { - display: block; - margin-top: 0; - margin-bottom: 1rem; - overflow: auto; - font-size: 80%; - -ms-overflow-style: scrollbar -} - -pre code { - font-size: inherit; - color: inherit; - word-break: normal -} - -code { - font-size: 80%; - color: #e83e8c; - word-wrap: break-word -} - -a > code { - color: inherit -} - -kbd { - padding: .2rem .4rem; - font-size: 80%; - color: #fff; - background-color: #212529; - border-radius: .1rem -} - -kbd kbd { - padding: 0; - font-size: 1em; - font-weight: 600 -} - -figure { - margin: 0 0 1rem -} - -img, svg { - vertical-align: middle -} - -table { - caption-side: bottom; - border-collapse: collapse -} - -caption { - padding-top: .75rem; - padding-bottom: .75rem; - color: #6c757d; - text-align: left -} - -th { - text-align: inherit; - text-align: -webkit-match-parent -} - -tbody, td, tfoot, th, thead, tr { - border: 0 solid; - border-color: inherit -} - -label { - display: inline-block -} - -button { - border-radius: 0 -} - -button:focus { - outline: 1px dotted; - outline: 5px auto -webkit-focus-ring-color -} - -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 -} - -[list]::-webkit-calendar-picker-indicator { - display: none -} - -[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 -} - -::-moz-focus-inner { - padding: 0; - border-style: none -} - -textarea { - resize: vertical -} - -fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0 -} - -legend { - float: left; - width: 100%; - padding: 0; - margin-bottom: .5rem; - font-size: 1.5rem; - line-height: inherit; - white-space: normal -} - -legend + * { - clear: left -} - -::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-fields-wrapper, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-text, ::-webkit-datetime-edit-year-field { - padding: 0 -} - -::-webkit-inner-spin-button { - height: auto -} - -[type=search] { - outline-offset: -2px; - -webkit-appearance: textfield -} - -::-webkit-search-decoration { - -webkit-appearance: none -} - -::-webkit-color-swatch-wrapper { - padding: 0 -} - -::-webkit-file-upload-button { - font: inherit; - -webkit-appearance: button -} - -output { - display: inline-block -} - -iframe { - border: 0 -} - -summary { - display: list-item; - cursor: pointer -} - -progress { - vertical-align: initial -} - -[hidden] { - display: none !important -} - -.lead { - font-size: 1.09375rem; - font-weight: 300 -} - -.display-1 { - font-size: 6rem -} - -.display-1, .display-2 { - font-weight: 300; - line-height: 1.2 -} - -.display-2 { - font-size: 5.5rem -} - -.display-3 { - font-size: 4.5rem -} - -.display-3, .display-4 { - font-weight: 300; - line-height: 1.2 -} - -.display-4 { - font-size: 3.5rem -} - -.display-5 { - font-size: 3rem -} - -.display-5, .display-6 { - font-weight: 300; - line-height: 1.2 -} - -.display-6 { - font-size: 2.5rem -} - -.list-inline, .list-unstyled { - padding-left: 0; - list-style: none -} - -.list-inline-item { - display: inline-block -} - -.list-inline-item:not(:last-child) { - margin-right: .5rem -} - -.initialism { - font-size: 80%; - text-transform: uppercase -} - -.blockquote { - margin-bottom: 1rem; - font-size: 1.09375rem -} - -.blockquote > :last-child { - margin-bottom: 0 -} - -.blockquote-footer { - margin-top: -1rem; - margin-bottom: 1rem; - font-size: 80%; - color: #6c757d -} - -.blockquote-footer:before { - content: "\2014\00A0" -} - -.img-fluid, .img-thumbnail { - max-width: 100%; - height: auto -} - -.img-thumbnail { - padding: .25rem; - background-color: #f7f7fc; - border: 1px solid #dee2e6; - border-radius: .2rem -} - -.figure { - display: inline-block -} - -.figure-img { - margin-bottom: .5rem; - line-height: 1 -} - -.figure-caption { - font-size: 80%; - color: #6c757d -} - -.container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl { - --bs-gutter-x: .75rem; - width: 100%; - padding-right: calc(var(--bs-gutter-x) / 2); - padding-left: calc(var(--bs-gutter-x) / 2); - 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: 1200px - } -} - -.row { - --bs-gutter-x: 24px; - --bs-gutter-y: 0; - display: flex; - flex-wrap: wrap; - margin-top: calc(var(--bs-gutter-y) * -1); - margin-right: calc(var(--bs-gutter-x) / -2); - margin-left: calc(var(--bs-gutter-x) / -2) -} - -.row > * { - flex-shrink: 0; - width: 100%; - max-width: 100%; - padding-right: calc(var(--bs-gutter-x) / 2); - padding-left: calc(var(--bs-gutter-x) / 2); - margin-top: var(--bs-gutter-y) -} - -.col { - flex: 1 0 0% -} - -.row-cols-auto > * { - flex: 0 0 auto; - width: auto -} - -.row-cols-1 > * { - flex: 0 0 auto; - width: 100% -} - -.row-cols-2 > * { - flex: 0 0 auto; - width: 50% -} - -.row-cols-3 > * { - flex: 0 0 auto; - width: 33.33333% -} - -.row-cols-4 > * { - flex: 0 0 auto; - width: 25% -} - -.row-cols-5 > * { - flex: 0 0 auto; - width: 20% -} - -.row-cols-6 > * { - flex: 0 0 auto; - width: 16.66667% -} - -.col-auto { - flex: 0 0 auto; - width: auto -} - -.col-1 { - flex: 0 0 auto; - width: 8.33333% -} - -.col-2 { - flex: 0 0 auto; - width: 16.66667% -} - -.col-3 { - flex: 0 0 auto; - width: 25% -} - -.col-4 { - flex: 0 0 auto; - width: 33.33333% -} - -.col-5 { - flex: 0 0 auto; - width: 41.66667% -} - -.col-6 { - flex: 0 0 auto; - width: 50% -} - -.col-7 { - flex: 0 0 auto; - width: 58.33333% -} - -.col-8 { - flex: 0 0 auto; - width: 66.66667% -} - -.col-9 { - flex: 0 0 auto; - width: 75% -} - -.col-10 { - flex: 0 0 auto; - width: 83.33333% -} - -.col-11 { - flex: 0 0 auto; - width: 91.66667% -} - -.col-12 { - flex: 0 0 auto; - width: 100% -} - -.offset-1 { - margin-left: 8.33333% -} - -.offset-2 { - margin-left: 16.66667% -} - -.offset-3 { - margin-left: 25% -} - -.offset-4 { - margin-left: 33.33333% -} - -.offset-5 { - margin-left: 41.66667% -} - -.offset-6 { - margin-left: 50% -} - -.offset-7 { - margin-left: 58.33333% -} - -.offset-8 { - margin-left: 66.66667% -} - -.offset-9 { - margin-left: 75% -} - -.offset-10 { - margin-left: 83.33333% -} - -.offset-11 { - margin-left: 91.66667% -} - -.g-0, .gx-0 { - --bs-gutter-x: 0 -} - -.g-0, .gy-0 { - --bs-gutter-y: 0 -} - -.g-1, .gx-1 { - --bs-gutter-x: .25rem -} - -.g-1, .gy-1 { - --bs-gutter-y: .25rem -} - -.g-2, .gx-2 { - --bs-gutter-x: .5rem -} - -.g-2, .gy-2 { - --bs-gutter-y: .5rem -} - -.g-3, .gx-3 { - --bs-gutter-x: 1rem -} - -.g-3, .gy-3 { - --bs-gutter-y: 1rem -} - -.g-4, .gx-4 { - --bs-gutter-x: 1.5rem -} - -.g-4, .gy-4 { - --bs-gutter-y: 1.5rem -} - -.g-5, .gx-5 { - --bs-gutter-x: 3rem -} - -.g-5, .gy-5 { - --bs-gutter-y: 3rem -} - -.g-6, .gx-6 { - --bs-gutter-x: 4.5rem -} - -.g-6, .gy-6 { - --bs-gutter-y: 4.5rem -} - -.g-7, .gx-7 { - --bs-gutter-x: 6rem -} - -.g-7, .gy-7 { - --bs-gutter-y: 6rem -} - -@media (min-width: 576px) { - .col-sm { - flex: 1 0 0% - } - - .row-cols-sm-auto > * { - flex: 0 0 auto; - width: auto - } - - .row-cols-sm-1 > * { - flex: 0 0 auto; - width: 100% - } - - .row-cols-sm-2 > * { - flex: 0 0 auto; - width: 50% - } - - .row-cols-sm-3 > * { - flex: 0 0 auto; - width: 33.33333% - } - - .row-cols-sm-4 > * { - flex: 0 0 auto; - width: 25% - } - - .row-cols-sm-5 > * { - flex: 0 0 auto; - width: 20% - } - - .row-cols-sm-6 > * { - flex: 0 0 auto; - width: 16.66667% - } - - .col-sm-auto { - flex: 0 0 auto; - width: auto - } - - .col-sm-1 { - flex: 0 0 auto; - width: 8.33333% - } - - .col-sm-2 { - flex: 0 0 auto; - width: 16.66667% - } - - .col-sm-3 { - flex: 0 0 auto; - width: 25% - } - - .col-sm-4 { - flex: 0 0 auto; - width: 33.33333% - } - - .col-sm-5 { - flex: 0 0 auto; - width: 41.66667% - } - - .col-sm-6 { - flex: 0 0 auto; - width: 50% - } - - .col-sm-7 { - flex: 0 0 auto; - width: 58.33333% - } - - .col-sm-8 { - flex: 0 0 auto; - width: 66.66667% - } - - .col-sm-9 { - flex: 0 0 auto; - width: 75% - } - - .col-sm-10 { - flex: 0 0 auto; - width: 83.33333% - } - - .col-sm-11 { - flex: 0 0 auto; - width: 91.66667% - } - - .col-sm-12 { - flex: 0 0 auto; - width: 100% - } - - .offset-sm-0 { - margin-left: 0 - } - - .offset-sm-1 { - margin-left: 8.33333% - } - - .offset-sm-2 { - margin-left: 16.66667% - } - - .offset-sm-3 { - margin-left: 25% - } - - .offset-sm-4 { - margin-left: 33.33333% - } - - .offset-sm-5 { - margin-left: 41.66667% - } - - .offset-sm-6 { - margin-left: 50% - } - - .offset-sm-7 { - margin-left: 58.33333% - } - - .offset-sm-8 { - margin-left: 66.66667% - } - - .offset-sm-9 { - margin-left: 75% - } - - .offset-sm-10 { - margin-left: 83.33333% - } - - .offset-sm-11 { - margin-left: 91.66667% - } - - .g-sm-0, .gx-sm-0 { - --bs-gutter-x: 0 - } - - .g-sm-0, .gy-sm-0 { - --bs-gutter-y: 0 - } - - .g-sm-1, .gx-sm-1 { - --bs-gutter-x: .25rem - } - - .g-sm-1, .gy-sm-1 { - --bs-gutter-y: .25rem - } - - .g-sm-2, .gx-sm-2 { - --bs-gutter-x: .5rem - } - - .g-sm-2, .gy-sm-2 { - --bs-gutter-y: .5rem - } - - .g-sm-3, .gx-sm-3 { - --bs-gutter-x: 1rem - } - - .g-sm-3, .gy-sm-3 { - --bs-gutter-y: 1rem - } - - .g-sm-4, .gx-sm-4 { - --bs-gutter-x: 1.5rem - } - - .g-sm-4, .gy-sm-4 { - --bs-gutter-y: 1.5rem - } - - .g-sm-5, .gx-sm-5 { - --bs-gutter-x: 3rem - } - - .g-sm-5, .gy-sm-5 { - --bs-gutter-y: 3rem - } - - .g-sm-6, .gx-sm-6 { - --bs-gutter-x: 4.5rem - } - - .g-sm-6, .gy-sm-6 { - --bs-gutter-y: 4.5rem - } - - .g-sm-7, .gx-sm-7 { - --bs-gutter-x: 6rem - } - - .g-sm-7, .gy-sm-7 { - --bs-gutter-y: 6rem - } -} - -@media (min-width: 768px) { - .col-md { - flex: 1 0 0% - } - - .row-cols-md-auto > * { - flex: 0 0 auto; - width: auto - } - - .row-cols-md-1 > * { - flex: 0 0 auto; - width: 100% - } - - .row-cols-md-2 > * { - flex: 0 0 auto; - width: 50% - } - - .row-cols-md-3 > * { - flex: 0 0 auto; - width: 33.33333% - } - - .row-cols-md-4 > * { - flex: 0 0 auto; - width: 25% - } - - .row-cols-md-5 > * { - flex: 0 0 auto; - width: 20% - } - - .row-cols-md-6 > * { - flex: 0 0 auto; - width: 16.66667% - } - - .col-md-auto { - flex: 0 0 auto; - width: auto - } - - .col-md-1 { - flex: 0 0 auto; - width: 8.33333% - } - - .col-md-2 { - flex: 0 0 auto; - width: 16.66667% - } - - .col-md-3 { - flex: 0 0 auto; - width: 25% - } - - .col-md-4 { - flex: 0 0 auto; - width: 33.33333% - } - - .col-md-5 { - flex: 0 0 auto; - width: 41.66667% - } - - .col-md-6 { - flex: 0 0 auto; - width: 50% - } - - .col-md-7 { - flex: 0 0 auto; - width: 58.33333% - } - - .col-md-8 { - flex: 0 0 auto; - width: 66.66667% - } - - .col-md-9 { - flex: 0 0 auto; - width: 75% - } - - .col-md-10 { - flex: 0 0 auto; - width: 83.33333% - } - - .col-md-11 { - flex: 0 0 auto; - width: 91.66667% - } - - .col-md-12 { - flex: 0 0 auto; - width: 100% - } - - .offset-md-0 { - margin-left: 0 - } - - .offset-md-1 { - margin-left: 8.33333% - } - - .offset-md-2 { - margin-left: 16.66667% - } - - .offset-md-3 { - margin-left: 25% - } - - .offset-md-4 { - margin-left: 33.33333% - } - - .offset-md-5 { - margin-left: 41.66667% - } - - .offset-md-6 { - margin-left: 50% - } - - .offset-md-7 { - margin-left: 58.33333% - } - - .offset-md-8 { - margin-left: 66.66667% - } - - .offset-md-9 { - margin-left: 75% - } - - .offset-md-10 { - margin-left: 83.33333% - } - - .offset-md-11 { - margin-left: 91.66667% - } - - .g-md-0, .gx-md-0 { - --bs-gutter-x: 0 - } - - .g-md-0, .gy-md-0 { - --bs-gutter-y: 0 - } - - .g-md-1, .gx-md-1 { - --bs-gutter-x: .25rem - } - - .g-md-1, .gy-md-1 { - --bs-gutter-y: .25rem - } - - .g-md-2, .gx-md-2 { - --bs-gutter-x: .5rem - } - - .g-md-2, .gy-md-2 { - --bs-gutter-y: .5rem - } - - .g-md-3, .gx-md-3 { - --bs-gutter-x: 1rem - } - - .g-md-3, .gy-md-3 { - --bs-gutter-y: 1rem - } - - .g-md-4, .gx-md-4 { - --bs-gutter-x: 1.5rem - } - - .g-md-4, .gy-md-4 { - --bs-gutter-y: 1.5rem - } - - .g-md-5, .gx-md-5 { - --bs-gutter-x: 3rem - } - - .g-md-5, .gy-md-5 { - --bs-gutter-y: 3rem - } - - .g-md-6, .gx-md-6 { - --bs-gutter-x: 4.5rem - } - - .g-md-6, .gy-md-6 { - --bs-gutter-y: 4.5rem - } - - .g-md-7, .gx-md-7 { - --bs-gutter-x: 6rem - } - - .g-md-7, .gy-md-7 { - --bs-gutter-y: 6rem - } -} - -@media (min-width: 992px) { - .col-lg { - flex: 1 0 0% - } - - .row-cols-lg-auto > * { - flex: 0 0 auto; - width: auto - } - - .row-cols-lg-1 > * { - flex: 0 0 auto; - width: 100% - } - - .row-cols-lg-2 > * { - flex: 0 0 auto; - width: 50% - } - - .row-cols-lg-3 > * { - flex: 0 0 auto; - width: 33.33333% - } - - .row-cols-lg-4 > * { - flex: 0 0 auto; - width: 25% - } - - .row-cols-lg-5 > * { - flex: 0 0 auto; - width: 20% - } - - .row-cols-lg-6 > * { - flex: 0 0 auto; - width: 16.66667% - } - - .col-lg-auto { - flex: 0 0 auto; - width: auto - } - - .col-lg-1 { - flex: 0 0 auto; - width: 8.33333% - } - - .col-lg-2 { - flex: 0 0 auto; - width: 16.66667% - } - - .col-lg-3 { - flex: 0 0 auto; - width: 25% - } - - .col-lg-4 { - flex: 0 0 auto; - width: 33.33333% - } - - .col-lg-5 { - flex: 0 0 auto; - width: 41.66667% - } - - .col-lg-6 { - flex: 0 0 auto; - width: 50% - } - - .col-lg-7 { - flex: 0 0 auto; - width: 58.33333% - } - - .col-lg-8 { - flex: 0 0 auto; - width: 66.66667% - } - - .col-lg-9 { - flex: 0 0 auto; - width: 75% - } - - .col-lg-10 { - flex: 0 0 auto; - width: 83.33333% - } - - .col-lg-11 { - flex: 0 0 auto; - width: 91.66667% - } - - .col-lg-12 { - flex: 0 0 auto; - width: 100% - } - - .offset-lg-0 { - margin-left: 0 - } - - .offset-lg-1 { - margin-left: 8.33333% - } - - .offset-lg-2 { - margin-left: 16.66667% - } - - .offset-lg-3 { - margin-left: 25% - } - - .offset-lg-4 { - margin-left: 33.33333% - } - - .offset-lg-5 { - margin-left: 41.66667% - } - - .offset-lg-6 { - margin-left: 50% - } - - .offset-lg-7 { - margin-left: 58.33333% - } - - .offset-lg-8 { - margin-left: 66.66667% - } - - .offset-lg-9 { - margin-left: 75% - } - - .offset-lg-10 { - margin-left: 83.33333% - } - - .offset-lg-11 { - margin-left: 91.66667% - } - - .g-lg-0, .gx-lg-0 { - --bs-gutter-x: 0 - } - - .g-lg-0, .gy-lg-0 { - --bs-gutter-y: 0 - } - - .g-lg-1, .gx-lg-1 { - --bs-gutter-x: .25rem - } - - .g-lg-1, .gy-lg-1 { - --bs-gutter-y: .25rem - } - - .g-lg-2, .gx-lg-2 { - --bs-gutter-x: .5rem - } - - .g-lg-2, .gy-lg-2 { - --bs-gutter-y: .5rem - } - - .g-lg-3, .gx-lg-3 { - --bs-gutter-x: 1rem - } - - .g-lg-3, .gy-lg-3 { - --bs-gutter-y: 1rem - } - - .g-lg-4, .gx-lg-4 { - --bs-gutter-x: 1.5rem - } - - .g-lg-4, .gy-lg-4 { - --bs-gutter-y: 1.5rem - } - - .g-lg-5, .gx-lg-5 { - --bs-gutter-x: 3rem - } - - .g-lg-5, .gy-lg-5 { - --bs-gutter-y: 3rem - } - - .g-lg-6, .gx-lg-6 { - --bs-gutter-x: 4.5rem - } - - .g-lg-6, .gy-lg-6 { - --bs-gutter-y: 4.5rem - } - - .g-lg-7, .gx-lg-7 { - --bs-gutter-x: 6rem - } - - .g-lg-7, .gy-lg-7 { - --bs-gutter-y: 6rem - } -} - -@media (min-width: 1200px) { - .col-xl { - flex: 1 0 0% - } - - .row-cols-xl-auto > * { - flex: 0 0 auto; - width: auto - } - - .row-cols-xl-1 > * { - flex: 0 0 auto; - width: 100% - } - - .row-cols-xl-2 > * { - flex: 0 0 auto; - width: 50% - } - - .row-cols-xl-3 > * { - flex: 0 0 auto; - width: 33.33333% - } - - .row-cols-xl-4 > * { - flex: 0 0 auto; - width: 25% - } - - .row-cols-xl-5 > * { - flex: 0 0 auto; - width: 20% - } - - .row-cols-xl-6 > * { - flex: 0 0 auto; - width: 16.66667% - } - - .col-xl-auto { - flex: 0 0 auto; - width: auto - } - - .col-xl-1 { - flex: 0 0 auto; - width: 8.33333% - } - - .col-xl-2 { - flex: 0 0 auto; - width: 16.66667% - } - - .col-xl-3 { - flex: 0 0 auto; - width: 25% - } - - .col-xl-4 { - flex: 0 0 auto; - width: 33.33333% - } - - .col-xl-5 { - flex: 0 0 auto; - width: 41.66667% - } - - .col-xl-6 { - flex: 0 0 auto; - width: 50% - } - - .col-xl-7 { - flex: 0 0 auto; - width: 58.33333% - } - - .col-xl-8 { - flex: 0 0 auto; - width: 66.66667% - } - - .col-xl-9 { - flex: 0 0 auto; - width: 75% - } - - .col-xl-10 { - flex: 0 0 auto; - width: 83.33333% - } - - .col-xl-11 { - flex: 0 0 auto; - width: 91.66667% - } - - .col-xl-12 { - flex: 0 0 auto; - width: 100% - } - - .offset-xl-0 { - margin-left: 0 - } - - .offset-xl-1 { - margin-left: 8.33333% - } - - .offset-xl-2 { - margin-left: 16.66667% - } - - .offset-xl-3 { - margin-left: 25% - } - - .offset-xl-4 { - margin-left: 33.33333% - } - - .offset-xl-5 { - margin-left: 41.66667% - } - - .offset-xl-6 { - margin-left: 50% - } - - .offset-xl-7 { - margin-left: 58.33333% - } - - .offset-xl-8 { - margin-left: 66.66667% - } - - .offset-xl-9 { - margin-left: 75% - } - - .offset-xl-10 { - margin-left: 83.33333% - } - - .offset-xl-11 { - margin-left: 91.66667% - } - - .g-xl-0, .gx-xl-0 { - --bs-gutter-x: 0 - } - - .g-xl-0, .gy-xl-0 { - --bs-gutter-y: 0 - } - - .g-xl-1, .gx-xl-1 { - --bs-gutter-x: .25rem - } - - .g-xl-1, .gy-xl-1 { - --bs-gutter-y: .25rem - } - - .g-xl-2, .gx-xl-2 { - --bs-gutter-x: .5rem - } - - .g-xl-2, .gy-xl-2 { - --bs-gutter-y: .5rem - } - - .g-xl-3, .gx-xl-3 { - --bs-gutter-x: 1rem - } - - .g-xl-3, .gy-xl-3 { - --bs-gutter-y: 1rem - } - - .g-xl-4, .gx-xl-4 { - --bs-gutter-x: 1.5rem - } - - .g-xl-4, .gy-xl-4 { - --bs-gutter-y: 1.5rem - } - - .g-xl-5, .gx-xl-5 { - --bs-gutter-x: 3rem - } - - .g-xl-5, .gy-xl-5 { - --bs-gutter-y: 3rem - } - - .g-xl-6, .gx-xl-6 { - --bs-gutter-x: 4.5rem - } - - .g-xl-6, .gy-xl-6 { - --bs-gutter-y: 4.5rem - } - - .g-xl-7, .gx-xl-7 { - --bs-gutter-x: 6rem - } - - .g-xl-7, .gy-xl-7 { - --bs-gutter-y: 6rem - } -} - -@media (min-width: 1440px) { - .col-xxl { - flex: 1 0 0% - } - - .row-cols-xxl-auto > * { - flex: 0 0 auto; - width: auto - } - - .row-cols-xxl-1 > * { - flex: 0 0 auto; - width: 100% - } - - .row-cols-xxl-2 > * { - flex: 0 0 auto; - width: 50% - } - - .row-cols-xxl-3 > * { - flex: 0 0 auto; - width: 33.33333% - } - - .row-cols-xxl-4 > * { - flex: 0 0 auto; - width: 25% - } - - .row-cols-xxl-5 > * { - flex: 0 0 auto; - width: 20% - } - - .row-cols-xxl-6 > * { - flex: 0 0 auto; - width: 16.66667% - } - - .col-xxl-auto { - flex: 0 0 auto; - width: auto - } - - .col-xxl-1 { - flex: 0 0 auto; - width: 8.33333% - } - - .col-xxl-2 { - flex: 0 0 auto; - width: 16.66667% - } - - .col-xxl-3 { - flex: 0 0 auto; - width: 25% - } - - .col-xxl-4 { - flex: 0 0 auto; - width: 33.33333% - } - - .col-xxl-5 { - flex: 0 0 auto; - width: 41.66667% - } - - .col-xxl-6 { - flex: 0 0 auto; - width: 50% - } - - .col-xxl-7 { - flex: 0 0 auto; - width: 58.33333% - } - - .col-xxl-8 { - flex: 0 0 auto; - width: 66.66667% - } - - .col-xxl-9 { - flex: 0 0 auto; - width: 75% - } - - .col-xxl-10 { - flex: 0 0 auto; - width: 83.33333% - } - - .col-xxl-11 { - flex: 0 0 auto; - width: 91.66667% - } - - .col-xxl-12 { - flex: 0 0 auto; - width: 100% - } - - .offset-xxl-0 { - margin-left: 0 - } - - .offset-xxl-1 { - margin-left: 8.33333% - } - - .offset-xxl-2 { - margin-left: 16.66667% - } - - .offset-xxl-3 { - margin-left: 25% - } - - .offset-xxl-4 { - margin-left: 33.33333% - } - - .offset-xxl-5 { - margin-left: 41.66667% - } - - .offset-xxl-6 { - margin-left: 50% - } - - .offset-xxl-7 { - margin-left: 58.33333% - } - - .offset-xxl-8 { - margin-left: 66.66667% - } - - .offset-xxl-9 { - margin-left: 75% - } - - .offset-xxl-10 { - margin-left: 83.33333% - } - - .offset-xxl-11 { - margin-left: 91.66667% - } - - .g-xxl-0, .gx-xxl-0 { - --bs-gutter-x: 0 - } - - .g-xxl-0, .gy-xxl-0 { - --bs-gutter-y: 0 - } - - .g-xxl-1, .gx-xxl-1 { - --bs-gutter-x: .25rem - } - - .g-xxl-1, .gy-xxl-1 { - --bs-gutter-y: .25rem - } - - .g-xxl-2, .gx-xxl-2 { - --bs-gutter-x: .5rem - } - - .g-xxl-2, .gy-xxl-2 { - --bs-gutter-y: .5rem - } - - .g-xxl-3, .gx-xxl-3 { - --bs-gutter-x: 1rem - } - - .g-xxl-3, .gy-xxl-3 { - --bs-gutter-y: 1rem - } - - .g-xxl-4, .gx-xxl-4 { - --bs-gutter-x: 1.5rem - } - - .g-xxl-4, .gy-xxl-4 { - --bs-gutter-y: 1.5rem - } - - .g-xxl-5, .gx-xxl-5 { - --bs-gutter-x: 3rem - } - - .g-xxl-5, .gy-xxl-5 { - --bs-gutter-y: 3rem - } - - .g-xxl-6, .gx-xxl-6 { - --bs-gutter-x: 4.5rem - } - - .g-xxl-6, .gy-xxl-6 { - --bs-gutter-y: 4.5rem - } - - .g-xxl-7, .gx-xxl-7 { - --bs-gutter-x: 6rem - } - - .g-xxl-7, .gy-xxl-7 { - --bs-gutter-y: 6rem - } -} - -.table { - --bs-table-bg: transparent; - --bs-table-accent-bg: transparent; - --bs-table-striped-color: #495057; - --bs-table-striped-bg: #f8f9fa; - --bs-table-active-color: #495057; - --bs-table-active-bg: rgba(0, 0, 0, 0.1); - --bs-table-hover-color: #495057; - --bs-table-hover-bg: rgba(0, 0, 0, 0.0375); - width: 100%; - margin-bottom: 1rem; - color: #495057; - vertical-align: top; - border-color: #dee2e6 -} - -.table > :not(caption) > * > * { - padding: .75rem; - background-color: var(--bs-table-bg); - background-image: linear-gradient(var(--bs-table-accent-bg), var(--bs-table-accent-bg)); - border-bottom-width: 1px -} - -.table > tbody { - vertical-align: inherit -} - -.table > thead { - vertical-align: bottom -} - -.table > :not(:last-child) > :last-child > * { - border-bottom-color: initial -} - -.caption-top { - caption-side: top -} - -.table-sm > :not(caption) > * > * { - padding: .3rem -} - -.table-bordered > :not(caption) > * { - border-width: 1px 0 -} - -.table-bordered > :not(caption) > * > * { - border-width: 0 1px -} - -.table-borderless > :not(caption) > * > * { - border-bottom-width: 0 -} - -.table-striped > tbody > tr:nth-of-type(odd) { - --bs-table-accent-bg: var(--bs-table-striped-bg); - color: var(--bs-table-striped-color) -} - -.table-active { - --bs-table-accent-bg: var(--bs-table-active-bg); - color: var(--bs-table-active-color) -} - -.table-hover > tbody > tr:hover { - --bs-table-accent-bg: var(--bs-table-hover-bg); - color: var(--bs-table-hover-color) -} - -.table-primary { - --bs-table-bg: #c8dbf5; - --bs-table-striped-bg: #bed0e9; - --bs-table-striped-color: #000; - --bs-table-active-bg: #b4c5dd; - --bs-table-active-color: #000; - --bs-table-hover-bg: #b9cbe3; - --bs-table-hover-color: #000; - color: #000; - border-color: #b4c5dd -} - -.table-secondary { - --bs-table-bg: #d6d8db; - --bs-table-striped-bg: #cbcdd0; - --bs-table-striped-color: #000; - --bs-table-active-bg: #c1c2c5; - --bs-table-active-color: #000; - --bs-table-hover-bg: #c6c8cb; - --bs-table-hover-color: #000; - color: #000; - border-color: #c1c2c5 -} - -.table-success { - --bs-table-bg: #c3e6cb; - --bs-table-striped-bg: #b9dbc1; - --bs-table-striped-color: #000; - --bs-table-active-bg: #b0cfb7; - --bs-table-active-color: #000; - --bs-table-hover-bg: #b4d5bc; - --bs-table-hover-color: #000; - color: #000; - border-color: #b0cfb7 -} - -.table-info { - --bs-table-bg: #bee5eb; - --bs-table-striped-bg: #b5dadf; - --bs-table-striped-color: #000; - --bs-table-active-bg: #abced4; - --bs-table-active-color: #000; - --bs-table-hover-bg: #b0d4d9; - --bs-table-hover-color: #000; - color: #000; - border-color: #abced4 -} - -.table-warning { - --bs-table-bg: #ffeeba; - --bs-table-striped-bg: #f2e2b1; - --bs-table-striped-color: #000; - --bs-table-active-bg: #e6d6a7; - --bs-table-active-color: #000; - --bs-table-hover-bg: #ecdcac; - --bs-table-hover-color: #000; - color: #000; - border-color: #e6d6a7 -} - -.table-danger { - --bs-table-bg: #f5c6cb; - --bs-table-striped-bg: #e9bcc1; - --bs-table-striped-color: #000; - --bs-table-active-bg: #ddb2b7; - --bs-table-active-color: #000; - --bs-table-hover-bg: #e3b7bc; - --bs-table-hover-color: #000; - color: #000; - border-color: #ddb2b7 -} - -.table-light { - --bs-table-bg: #f8f9fa; - --bs-table-striped-bg: #ecedee; - --bs-table-striped-color: #000; - --bs-table-active-bg: #dfe0e1; - --bs-table-active-color: #000; - --bs-table-hover-bg: #e5e6e7; - --bs-table-hover-color: #000; - color: #000; - border-color: #dfe0e1 -} - -.table-dark { - --bs-table-bg: #212529; - --bs-table-striped-bg: #2c3034; - --bs-table-striped-color: #fff; - --bs-table-active-bg: #373b3e; - --bs-table-active-color: #fff; - --bs-table-hover-bg: #323539; - --bs-table-hover-color: #fff; - color: #fff; - border-color: #373b3e -} - -.table-responsive { - overflow-x: auto; - -webkit-overflow-scrolling: touch -} - -@media (max-width: 575.98px) { - .table-responsive-sm { - overflow-x: auto; - -webkit-overflow-scrolling: touch - } -} - -@media (max-width: 767.98px) { - .table-responsive-md { - overflow-x: auto; - -webkit-overflow-scrolling: touch - } -} - -@media (max-width: 991.98px) { - .table-responsive-lg { - overflow-x: auto; - -webkit-overflow-scrolling: touch - } -} - -@media (max-width: 1199.98px) { - .table-responsive-xl { - overflow-x: auto; - -webkit-overflow-scrolling: touch - } -} - -@media (max-width: 1439.98px) { - .table-responsive-xxl { - overflow-x: auto; - -webkit-overflow-scrolling: touch - } -} - -.form-label { - margin-bottom: .5rem -} - -.col-form-label { - padding-top: calc(.25rem + 1px); - padding-bottom: calc(.25rem + 1px); - margin-bottom: 0; - font-size: inherit; - line-height: 1.5 -} - -.col-form-label-lg { - padding-top: calc(.35rem + 1px); - padding-bottom: calc(.35rem + 1px); - font-size: .925rem -} - -.col-form-label-sm { - padding-top: calc(.15rem + 1px); - padding-bottom: calc(.15rem + 1px); - font-size: .75rem -} - -.form-text { - margin-top: .25rem; - font-size: 80%; - color: #6c757d -} - -.form-control { - display: block; - width: 100%; - min-height: calc(1.8125rem + 2px); - padding: .25rem .7rem; - font-size: .875rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #ced4da; - -webkit-appearance: none; - appearance: none; - border-radius: .2rem; - transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out -} - -@media (prefers-reduced-motion: reduce) { - .form-control { - transition: none - } -} - -.form-control:focus { - color: #495057; - background-color: #fff; - border-color: #a8c5f0; - outline: 0; - box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .25) -} - -.form-control::-webkit-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 -} - -.form-control-plaintext { - display: block; - width: 100%; - padding: .25rem 0; - margin-bottom: 0; - line-height: 1.5; - color: #495057; - background-color: initial; - 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 { - min-height: calc(1.425rem + 2px); - padding: .15rem .5rem; - font-size: .75rem; - border-radius: .1rem -} - -.form-control-lg { - min-height: calc(2.0875rem + 2px); - padding: .35rem 1rem; - font-size: .925rem; - border-radius: .3rem -} - -.form-control-color { - max-width: 3rem; - padding: .25rem -} - -.form-control-color::-moz-color-swatch { - border-radius: .2rem -} - -.form-control-color::-webkit-color-swatch { - border-radius: .2rem -} - -.form-select { - display: block; - width: 100%; - height: calc(1.8125rem + 2px); - padding: .25rem 1.7rem .25rem .7rem; - font-size: .875rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - vertical-align: middle; - background-color: #fff; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E"); - background-repeat: no-repeat; - background-position: right .7rem center; - background-size: 16px 12px; - border: 1px solid #ced4da; - border-radius: .2rem; - -webkit-appearance: none; - appearance: none -} - -.form-select:focus { - border-color: #a8c5f0; - outline: 0; - box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .25) -} - -.form-select:focus::-ms-value { - color: #495057; - background-color: #fff -} - -.form-select[multiple], .form-select[size]:not([size="1"]) { - height: auto; - padding-right: .7rem; - background-image: none -} - -.form-select:disabled { - color: #6c757d; - background-color: #e9ecef -} - -.form-select:-moz-focusring { - color: transparent; - text-shadow: 0 0 0 #495057 -} - -.form-select-sm { - height: calc(1.425rem + 2px); - padding-top: .15rem; - padding-bottom: .15rem; - padding-left: .5rem; - font-size: .75rem -} - -.form-select-lg { - height: calc(2.0875rem + 2px); - padding-top: .35rem; - padding-bottom: .35rem; - padding-left: 1rem; - font-size: .925rem -} - -.form-check { - display: block; - min-height: 1.3125rem; - padding-left: 1.5em; - margin-bottom: .125rem -} - -.form-check .form-check-input { - float: left; - margin-left: -1.5em -} - -.form-check-input { - width: 1em; - height: 1em; - margin-top: .25em; - vertical-align: top; - background-color: #f7f7fc; - background-repeat: no-repeat; - background-position: 50%; - background-size: contain; - border: 1px solid rgba(0, 0, 0, .25); - -webkit-appearance: none; - appearance: none; - -webkit-print-color-adjust: exact; - color-adjust: exact; - transition: background-color .15s ease-in-out, background-position .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out -} - -@media (prefers-reduced-motion: reduce) { - .form-check-input { - transition: none - } -} - -.form-check-input[type=checkbox] { - border-radius: .25em -} - -.form-check-input[type=radio] { - border-radius: 50% -} - -.form-check-input:active { - filter: brightness(90%) -} - -.form-check-input:focus { - border-color: #a8c5f0; - outline: 0; - box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .25) -} - -.form-check-input:checked { - background-color: #3b7ddd; - border-color: #3b7ddd -} - -.form-check-input:checked[type=checkbox] { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3 6-6'/%3E%3C/svg%3E") -} - -.form-check-input:checked[type=radio] { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='2' fill='%23fff'/%3E%3C/svg%3E") -} - -.form-check-input[type=checkbox]:indeterminate { - background-color: #3b7ddd; - border-color: #3b7ddd; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3E%3C/svg%3E") -} - -.form-check-input:disabled { - pointer-events: none; - filter: none; - opacity: .5 -} - -.form-check-input:disabled ~ .form-check-label, .form-check-input[disabled] ~ .form-check-label { - opacity: .5 -} - -.form-switch { - padding-left: 2.5em -} - -.form-switch .form-check-input { - width: 2em; - margin-left: -2.5em; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='rgba(0,0,0,0.25)'/%3E%3C/svg%3E"); - background-position: 0; - border-radius: 2em -} - -.form-switch .form-check-input:focus { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23a8c5f0'/%3E%3C/svg%3E") -} - -.form-switch .form-check-input:checked { - background-position: 100%; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E") -} - -.form-check-inline { - display: inline-block; - margin-right: 1rem -} - -.btn-check { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none -} - -.form-file { - --bs-form-file-height: calc(1.8125rem + 2px); - position: relative -} - -.form-file-input { - position: relative; - z-index: 2; - width: 100%; - height: var(--bs-form-file-height); - margin: 0; - opacity: 0 -} - -.form-file-input:focus-within ~ .form-file-label { - border-color: #a8c5f0; - box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .25) -} - -.form-file-input:disabled ~ .form-file-label .form-file-text, .form-file-input[disabled] ~ .form-file-label .form-file-text { - background-color: #e9ecef -} - -.form-file-label { - position: absolute; - top: 0; - right: 0; - left: 0; - z-index: 1; - display: flex; - height: var(--bs-form-file-height); - border-color: #ced4da; - border-radius: .2rem -} - -.form-file-text { - flex-grow: 1; - overflow: hidden; - font-weight: 400; - text-overflow: ellipsis; - white-space: nowrap; - background-color: #fff; - border: 1px solid; - border-color: inherit; - border-top-left-radius: inherit; - border-bottom-left-radius: inherit -} - -.form-file-button, .form-file-text { - display: block; - padding: .25rem .7rem; - line-height: 1.5; - color: #495057 -} - -.form-file-button { - flex-shrink: 0; - margin-left: -1px; - background-color: #e9ecef; - border: 1px solid; - border-color: inherit; - border-top-right-radius: inherit; - border-bottom-right-radius: inherit -} - -.form-file-sm { - --bs-form-file-height: calc(1.425rem + 2px); - font-size: .75rem -} - -.form-file-sm .form-file-button, .form-file-sm .form-file-text { - padding: .15rem .5rem -} - -.form-file-lg { - --bs-form-file-height: calc(2.0875rem + 2px); - font-size: .925rem -} - -.form-file-lg .form-file-button, .form-file-lg .form-file-text { - padding: .35rem 1rem -} - -.form-range { - width: 100%; - height: 1.4rem; - padding: 0; - background-color: initial; - -webkit-appearance: none; - appearance: none -} - -.form-range:focus { - outline: none -} - -.form-range:focus::-webkit-slider-thumb { - box-shadow: 0 0 0 1px #f7f7fc, 0 0 0 .2rem rgba(59, 125, 221, .25) -} - -.form-range:focus::-moz-range-thumb { - box-shadow: 0 0 0 1px #f7f7fc, 0 0 0 .2rem rgba(59, 125, 221, .25) -} - -.form-range:focus::-ms-thumb { - box-shadow: 0 0 0 1px #f7f7fc, 0 0 0 .2rem rgba(59, 125, 221, .25) -} - -.form-range::-moz-focus-outer { - border: 0 -} - -.form-range::-webkit-slider-thumb { - width: 1rem; - height: 1rem; - margin-top: -.25rem; - background-color: #3b7ddd; - 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) { - .form-range::-webkit-slider-thumb { - -webkit-transition: none; - transition: none - } -} - -.form-range::-webkit-slider-thumb:active { - background-color: #d3e2f7 -} - -.form-range::-webkit-slider-runnable-track { - width: 100%; - height: .5rem; - color: transparent; - cursor: pointer; - background-color: #dee2e6; - border-color: transparent; - border-radius: 1rem -} - -.form-range::-moz-range-thumb { - width: 1rem; - height: 1rem; - background-color: #3b7ddd; - 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; - appearance: none -} - -@media (prefers-reduced-motion: reduce) { - .form-range::-moz-range-thumb { - -moz-transition: none; - transition: none - } -} - -.form-range::-moz-range-thumb:active { - background-color: #d3e2f7 -} - -.form-range::-moz-range-track { - width: 100%; - height: .5rem; - color: transparent; - cursor: pointer; - background-color: #dee2e6; - border-color: transparent; - border-radius: 1rem -} - -.form-range::-ms-thumb { - width: 1rem; - height: 1rem; - margin-top: 0; - margin-right: .2rem; - margin-left: .2rem; - background-color: #3b7ddd; - 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) { - .form-range::-ms-thumb { - -ms-transition: none; - transition: none - } -} - -.form-range::-ms-thumb:active { - background-color: #d3e2f7 -} - -.form-range::-ms-track { - width: 100%; - height: .5rem; - color: transparent; - cursor: pointer; - background-color: initial; - border-color: transparent; - border-width: .5rem -} - -.form-range::-ms-fill-lower, .form-range::-ms-fill-upper { - background-color: #dee2e6; - border-radius: 1rem -} - -.form-range::-ms-fill-upper { - margin-right: 15px -} - -.form-range:disabled { - pointer-events: none -} - -.form-range:disabled::-webkit-slider-thumb { - background-color: #adb5bd -} - -.form-range:disabled::-moz-range-thumb { - background-color: #adb5bd -} - -.form-range:disabled::-ms-thumb { - background-color: #adb5bd -} - -.input-group { - position: relative; - display: flex; - flex-wrap: wrap; - align-items: stretch; - width: 100% -} - -.input-group > .form-control, .input-group > .form-file, .input-group > .form-select { - position: relative; - flex: 1 1 auto; - width: 1%; - min-width: 0 -} - -.input-group > .form-control:focus, .input-group > .form-file .form-file-input:focus ~ .form-file-label, .input-group > .form-select:focus { - z-index: 3 -} - -.input-group > .form-file > .form-file-input:focus { - z-index: 4 -} - -.input-group > .form-file:not(:last-child) > .form-file-label { - border-top-right-radius: 0; - border-bottom-right-radius: 0 -} - -.input-group > .form-file:not(:first-child) > .form-file-label { - border-top-left-radius: 0; - border-bottom-left-radius: 0 -} - -.input-group .btn { - position: relative; - z-index: 2 -} - -.input-group .btn:focus { - z-index: 3 -} - -.input-group-text { - display: flex; - align-items: center; - padding: .25rem .7rem; - font-size: .875rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - text-align: center; - white-space: nowrap; - background-color: #e9ecef; - border: 1px solid #ced4da; - border-radius: .2rem -} - -.input-group-lg > .form-control { - min-height: calc(2.0875rem + 2px) -} - -.input-group-lg > .form-select { - height: calc(2.0875rem + 2px) -} - -.input-group-lg > .btn, .input-group-lg > .form-control, .input-group-lg > .form-select, .input-group-lg > .input-group-text { - padding: .35rem 1rem; - font-size: .925rem; - border-radius: .3rem -} - -.input-group-sm > .form-control { - min-height: calc(1.425rem + 2px) -} - -.input-group-sm > .form-select { - height: calc(1.425rem + 2px) -} - -.input-group-sm > .btn, .input-group-sm > .form-control, .input-group-sm > .form-select, .input-group-sm > .input-group-text { - padding: .15rem .5rem; - font-size: .75rem; - border-radius: .1rem -} - -.input-group-lg > .form-select, .input-group-sm > .form-select { - padding-right: 1.7rem -} - -.input-group > .dropdown-toggle:nth-last-child(n+3), .input-group > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu) { - border-top-right-radius: 0; - border-bottom-right-radius: 0 -} - -.input-group > :not(:first-child):not(.dropdown-menu) { - margin-left: -1px; - border-top-left-radius: 0; - border-bottom-left-radius: 0 -} - -.valid-feedback { - display: none; - width: 100%; - margin-top: .25rem; - font-size: 80%; - color: #28a745 -} - -.valid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - max-width: 100%; - padding: .25rem .5rem; - margin-top: .1rem; - font-size: .75rem; - color: #000; - background-color: rgba(40, 167, 69, .9); - border-radius: .2rem -} - -.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 -} - -.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) -} - -.form-select.is-valid, .was-validated .form-select:valid { - border-color: #28a745 -} - -.form-select.is-valid:focus, .was-validated .form-select:valid:focus { - border-color: #28a745; - box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .25) -} - -.form-check-input.is-valid, .was-validated .form-check-input:valid { - border-color: #28a745 -} - -.form-check-input.is-valid:checked, .was-validated .form-check-input:valid:checked { - background-color: #28a745 -} - -.form-check-input.is-valid:focus, .was-validated .form-check-input:valid:focus { - 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-inline .form-check-input ~ .valid-feedback { - margin-left: .5em -} - -.form-file-input.is-valid ~ .form-file-label, .was-validated .form-file-input:valid ~ .form-file-label { - border-color: #28a745 -} - -.form-file-input.is-valid:focus ~ .form-file-label, .was-validated .form-file-input:valid:focus ~ .form-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%; - z-index: 5; - display: none; - max-width: 100%; - padding: .25rem .5rem; - margin-top: .1rem; - font-size: .75rem; - color: #fff; - background-color: rgba(220, 53, 69, .9); - border-radius: .2rem -} - -.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 -} - -.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) -} - -.form-select.is-invalid, .was-validated .form-select:invalid { - border-color: #dc3545 -} - -.form-select.is-invalid:focus, .was-validated .form-select:invalid:focus { - border-color: #dc3545; - box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .25) -} - -.form-check-input.is-invalid, .was-validated .form-check-input:invalid { - border-color: #dc3545 -} - -.form-check-input.is-invalid:checked, .was-validated .form-check-input:invalid:checked { - background-color: #dc3545 -} - -.form-check-input.is-invalid:focus, .was-validated .form-check-input:invalid:focus { - 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-inline .form-check-input ~ .invalid-feedback { - margin-left: .5em -} - -.form-file-input.is-invalid ~ .form-file-label, .was-validated .form-file-input:invalid ~ .form-file-label { - border-color: #dc3545 -} - -.form-file-input.is-invalid:focus ~ .form-file-label, .was-validated .form-file-input:invalid:focus ~ .form-file-label { - border-color: #dc3545; - box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .25) -} - -.btn { - display: inline-block; - font-weight: 400; - line-height: 1.5; - color: #495057; - text-align: center; - vertical-align: middle; - cursor: pointer; - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; - background-color: initial; - border: 1px solid transparent; - padding: .25rem .7rem; - font-size: .875rem; - border-radius: .2rem; - 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: #495057; - text-decoration: none -} - -.btn-check:focus + .btn, .btn:focus { - outline: 0; - box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .25) -} - -.btn.disabled, .btn:disabled, fieldset:disabled .btn { - pointer-events: none; - opacity: .65 -} - -.btn-primary { - color: #000; - background-color: #3b7ddd; - border-color: #3b7ddd -} - -.btn-check:focus + .btn-primary, .btn-primary:focus, .btn-primary:hover { - color: #000; - background-color: #5c93e3; - border-color: #518be1 -} - -.btn-check:focus + .btn-primary, .btn-primary:focus { - box-shadow: 0 0 0 .2rem rgba(50, 106, 188, .5) -} - -.btn-check:active + .btn-primary, .btn-check:checked + .btn-primary, .btn-primary.active, .btn-primary:active, .show > .btn-primary.dropdown-toggle { - color: #000; - background-color: #669ae5; - border-color: #518be1 -} - -.btn-check:active + .btn-primary:focus, .btn-check:checked + .btn-primary:focus, .btn-primary.active:focus, .btn-primary:active:focus, .show > .btn-primary.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem rgba(50, 106, 188, .5) -} - -.btn-primary.disabled, .btn-primary:disabled { - color: #000; - background-color: #3b7ddd; - border-color: #3b7ddd -} - -.btn-secondary { - color: #fff; - background-color: #6c757d; - border-color: #6c757d -} - -.btn-check:focus + .btn-secondary, .btn-secondary:focus, .btn-secondary:hover { - color: #fff; - background-color: #5a6268; - border-color: #545b62 -} - -.btn-check:focus + .btn-secondary, .btn-secondary:focus { - box-shadow: 0 0 0 .2rem rgba(130, 138, 145, .5) -} - -.btn-check:active + .btn-secondary, .btn-check:checked + .btn-secondary, .btn-secondary.active, .btn-secondary:active, .show > .btn-secondary.dropdown-toggle { - color: #fff; - background-color: #545b62; - border-color: #4e555b -} - -.btn-check:active + .btn-secondary:focus, .btn-check:checked + .btn-secondary:focus, .btn-secondary.active:focus, .btn-secondary:active:focus, .show > .btn-secondary.dropdown-toggle:focus { - 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-success { - color: #000; - background-color: #28a745; - border-color: #28a745 -} - -.btn-check:focus + .btn-success, .btn-success:focus, .btn-success:hover { - color: #000; - background-color: #2fc652; - border-color: #2dbc4e -} - -.btn-check:focus + .btn-success, .btn-success:focus { - box-shadow: 0 0 0 .2rem rgba(34, 142, 59, .5) -} - -.btn-check:active + .btn-success, .btn-check:checked + .btn-success, .btn-success.active, .btn-success:active, .show > .btn-success.dropdown-toggle { - color: #000; - background-color: #34ce57; - border-color: #2dbc4e -} - -.btn-check:active + .btn-success:focus, .btn-check:checked + .btn-success:focus, .btn-success.active:focus, .btn-success:active:focus, .show > .btn-success.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem rgba(34, 142, 59, .5) -} - -.btn-success.disabled, .btn-success:disabled { - color: #000; - background-color: #28a745; - border-color: #28a745 -} - -.btn-info { - color: #000; - background-color: #17a2b8; - border-color: #17a2b8 -} - -.btn-check:focus + .btn-info, .btn-info:focus, .btn-info:hover { - color: #000; - background-color: #1bc0da; - border-color: #1ab6cf -} - -.btn-check:focus + .btn-info, .btn-info:focus { - box-shadow: 0 0 0 .2rem rgba(20, 138, 156, .5) -} - -.btn-check:active + .btn-info, .btn-check:checked + .btn-info, .btn-info.active, .btn-info:active, .show > .btn-info.dropdown-toggle { - color: #000; - background-color: #1fc8e3; - border-color: #1ab6cf -} - -.btn-check:active + .btn-info:focus, .btn-check:checked + .btn-info:focus, .btn-info.active:focus, .btn-info:active:focus, .show > .btn-info.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem rgba(20, 138, 156, .5) -} - -.btn-info.disabled, .btn-info:disabled { - color: #000; - background-color: #17a2b8; - border-color: #17a2b8 -} - -.btn-warning { - color: #000; - background-color: #ffc107; - border-color: #ffc107 -} - -.btn-check:focus + .btn-warning, .btn-warning:focus, .btn-warning:hover { - color: #000; - background-color: #ffcb2d; - border-color: #ffc721 -} - -.btn-check:focus + .btn-warning, .btn-warning:focus { - box-shadow: 0 0 0 .2rem rgba(217, 164, 6, .5) -} - -.btn-check:active + .btn-warning, .btn-check:checked + .btn-warning, .btn-warning.active, .btn-warning:active, .show > .btn-warning.dropdown-toggle { - color: #000; - background-color: #ffce3a; - border-color: #ffc721 -} - -.btn-check:active + .btn-warning:focus, .btn-check:checked + .btn-warning:focus, .btn-warning.active:focus, .btn-warning:active:focus, .show > .btn-warning.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem rgba(217, 164, 6, .5) -} - -.btn-warning.disabled, .btn-warning:disabled { - color: #000; - background-color: #ffc107; - border-color: #ffc107 -} - -.btn-danger { - color: #fff; - background-color: #dc3545; - border-color: #dc3545 -} - -.btn-check:focus + .btn-danger, .btn-danger:focus, .btn-danger:hover { - color: #fff; - background-color: #c82333; - border-color: #bd2130 -} - -.btn-check:focus + .btn-danger, .btn-danger:focus { - box-shadow: 0 0 0 .2rem rgba(225, 83, 97, .5) -} - -.btn-check:active + .btn-danger, .btn-check:checked + .btn-danger, .btn-danger.active, .btn-danger:active, .show > .btn-danger.dropdown-toggle { - color: #fff; - background-color: #bd2130; - border-color: #b21f2d -} - -.btn-check:active + .btn-danger:focus, .btn-check:checked + .btn-danger:focus, .btn-danger.active:focus, .btn-danger:active:focus, .show > .btn-danger.dropdown-toggle:focus { - 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-light { - color: #000; - background-color: #f8f9fa; - border-color: #f8f9fa -} - -.btn-check:focus + .btn-light, .btn-light:focus, .btn-light:hover { - color: #000; - background-color: #fff; - border-color: #fff -} - -.btn-check:focus + .btn-light, .btn-light:focus { - box-shadow: 0 0 0 .2rem rgba(211, 212, 213, .5) -} - -.btn-check:active + .btn-light, .btn-check:checked + .btn-light, .btn-light.active, .btn-light:active, .show > .btn-light.dropdown-toggle { - color: #000; - background-color: #fff; - border-color: #fff -} - -.btn-check:active + .btn-light:focus, .btn-check:checked + .btn-light:focus, .btn-light.active:focus, .btn-light:active:focus, .show > .btn-light.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem rgba(211, 212, 213, .5) -} - -.btn-light.disabled, .btn-light:disabled { - color: #000; - background-color: #f8f9fa; - border-color: #f8f9fa -} - -.btn-dark { - color: #fff; - background-color: #212529; - border-color: #212529 -} - -.btn-check:focus + .btn-dark, .btn-dark:focus, .btn-dark:hover { - color: #fff; - background-color: #101214; - border-color: #0a0c0d -} - -.btn-check:focus + .btn-dark, .btn-dark:focus { - box-shadow: 0 0 0 .2rem rgba(66, 70, 73, .5) -} - -.btn-check:active + .btn-dark, .btn-check:checked + .btn-dark, .btn-dark.active, .btn-dark:active, .show > .btn-dark.dropdown-toggle { - color: #fff; - background-color: #0a0c0d; - border-color: #050506 -} - -.btn-check:active + .btn-dark:focus, .btn-check:checked + .btn-dark:focus, .btn-dark.active:focus, .btn-dark:active:focus, .show > .btn-dark.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem rgba(66, 70, 73, .5) -} - -.btn-dark.disabled, .btn-dark:disabled { - color: #fff; - background-color: #212529; - border-color: #212529 -} - -.btn-outline-primary { - color: #3b7ddd; - border-color: #3b7ddd -} - -.btn-outline-primary:hover { - color: #000; - background-color: #3b7ddd; - border-color: #3b7ddd -} - -.btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus { - box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .5) -} - -.btn-check:active + .btn-outline-primary, .btn-check:checked + .btn-outline-primary, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show, .btn-outline-primary:active { - color: #000; - background-color: #3b7ddd; - border-color: #3b7ddd -} - -.btn-check:active + .btn-outline-primary:focus, .btn-check:checked + .btn-outline-primary:focus, .btn-outline-primary.active:focus, .btn-outline-primary.dropdown-toggle.show:focus, .btn-outline-primary:active:focus { - box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .5) -} - -.btn-outline-primary.disabled, .btn-outline-primary:disabled { - color: #3b7ddd; - background-color: initial -} - -.btn-outline-secondary { - color: #6c757d; - border-color: #6c757d -} - -.btn-outline-secondary:hover { - color: #fff; - background-color: #6c757d; - border-color: #6c757d -} - -.btn-check:focus + .btn-outline-secondary, .btn-outline-secondary:focus { - box-shadow: 0 0 0 .2rem rgba(108, 117, 125, .5) -} - -.btn-check:active + .btn-outline-secondary, .btn-check:checked + .btn-outline-secondary, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show, .btn-outline-secondary:active { - color: #fff; - background-color: #6c757d; - border-color: #6c757d -} - -.btn-check:active + .btn-outline-secondary:focus, .btn-check:checked + .btn-outline-secondary:focus, .btn-outline-secondary.active:focus, .btn-outline-secondary.dropdown-toggle.show:focus, .btn-outline-secondary:active:focus { - box-shadow: 0 0 0 .2rem rgba(108, 117, 125, .5) -} - -.btn-outline-secondary.disabled, .btn-outline-secondary:disabled { - color: #6c757d; - background-color: initial -} - -.btn-outline-success { - color: #28a745; - border-color: #28a745 -} - -.btn-outline-success:hover { - color: #000; - background-color: #28a745; - border-color: #28a745 -} - -.btn-check:focus + .btn-outline-success, .btn-outline-success:focus { - box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .5) -} - -.btn-check:active + .btn-outline-success, .btn-check:checked + .btn-outline-success, .btn-outline-success.active, .btn-outline-success.dropdown-toggle.show, .btn-outline-success:active { - color: #000; - background-color: #28a745; - border-color: #28a745 -} - -.btn-check:active + .btn-outline-success:focus, .btn-check:checked + .btn-outline-success:focus, .btn-outline-success.active:focus, .btn-outline-success.dropdown-toggle.show:focus, .btn-outline-success:active:focus { - box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .5) -} - -.btn-outline-success.disabled, .btn-outline-success:disabled { - color: #28a745; - background-color: initial -} - -.btn-outline-info { - color: #17a2b8; - border-color: #17a2b8 -} - -.btn-outline-info:hover { - color: #000; - background-color: #17a2b8; - border-color: #17a2b8 -} - -.btn-check:focus + .btn-outline-info, .btn-outline-info:focus { - box-shadow: 0 0 0 .2rem rgba(23, 162, 184, .5) -} - -.btn-check:active + .btn-outline-info, .btn-check:checked + .btn-outline-info, .btn-outline-info.active, .btn-outline-info.dropdown-toggle.show, .btn-outline-info:active { - color: #000; - background-color: #17a2b8; - border-color: #17a2b8 -} - -.btn-check:active + .btn-outline-info:focus, .btn-check:checked + .btn-outline-info:focus, .btn-outline-info.active:focus, .btn-outline-info.dropdown-toggle.show:focus, .btn-outline-info:active:focus { - box-shadow: 0 0 0 .2rem rgba(23, 162, 184, .5) -} - -.btn-outline-info.disabled, .btn-outline-info:disabled { - color: #17a2b8; - background-color: initial -} - -.btn-outline-warning { - color: #ffc107; - border-color: #ffc107 -} - -.btn-outline-warning:hover { - color: #000; - background-color: #ffc107; - border-color: #ffc107 -} - -.btn-check:focus + .btn-outline-warning, .btn-outline-warning:focus { - box-shadow: 0 0 0 .2rem rgba(255, 193, 7, .5) -} - -.btn-check:active + .btn-outline-warning, .btn-check:checked + .btn-outline-warning, .btn-outline-warning.active, .btn-outline-warning.dropdown-toggle.show, .btn-outline-warning:active { - color: #000; - background-color: #ffc107; - border-color: #ffc107 -} - -.btn-check:active + .btn-outline-warning:focus, .btn-check:checked + .btn-outline-warning:focus, .btn-outline-warning.active:focus, .btn-outline-warning.dropdown-toggle.show:focus, .btn-outline-warning:active:focus { - box-shadow: 0 0 0 .2rem rgba(255, 193, 7, .5) -} - -.btn-outline-warning.disabled, .btn-outline-warning:disabled { - color: #ffc107; - background-color: initial -} - -.btn-outline-danger { - color: #dc3545; - border-color: #dc3545 -} - -.btn-outline-danger:hover { - color: #fff; - background-color: #dc3545; - border-color: #dc3545 -} - -.btn-check:focus + .btn-outline-danger, .btn-outline-danger:focus { - box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .5) -} - -.btn-check:active + .btn-outline-danger, .btn-check:checked + .btn-outline-danger, .btn-outline-danger.active, .btn-outline-danger.dropdown-toggle.show, .btn-outline-danger:active { - color: #fff; - background-color: #dc3545; - border-color: #dc3545 -} - -.btn-check:active + .btn-outline-danger:focus, .btn-check:checked + .btn-outline-danger:focus, .btn-outline-danger.active:focus, .btn-outline-danger.dropdown-toggle.show:focus, .btn-outline-danger:active:focus { - box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .5) -} - -.btn-outline-danger.disabled, .btn-outline-danger:disabled { - color: #dc3545; - background-color: initial -} - -.btn-outline-light { - color: #f8f9fa; - border-color: #f8f9fa -} - -.btn-outline-light:hover { - color: #000; - background-color: #f8f9fa; - border-color: #f8f9fa -} - -.btn-check:focus + .btn-outline-light, .btn-outline-light:focus { - box-shadow: 0 0 0 .2rem rgba(248, 249, 250, .5) -} - -.btn-check:active + .btn-outline-light, .btn-check:checked + .btn-outline-light, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show, .btn-outline-light:active { - color: #000; - background-color: #f8f9fa; - border-color: #f8f9fa -} - -.btn-check:active + .btn-outline-light:focus, .btn-check:checked + .btn-outline-light:focus, .btn-outline-light.active:focus, .btn-outline-light.dropdown-toggle.show:focus, .btn-outline-light:active:focus { - box-shadow: 0 0 0 .2rem rgba(248, 249, 250, .5) -} - -.btn-outline-light.disabled, .btn-outline-light:disabled { - color: #f8f9fa; - background-color: initial -} - -.btn-outline-dark { - color: #212529; - border-color: #212529 -} - -.btn-outline-dark:hover { - color: #fff; - background-color: #212529; - border-color: #212529 -} - -.btn-check:focus + .btn-outline-dark, .btn-outline-dark:focus { - box-shadow: 0 0 0 .2rem rgba(33, 37, 41, .5) -} - -.btn-check:active + .btn-outline-dark, .btn-check:checked + .btn-outline-dark, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show, .btn-outline-dark:active { - color: #fff; - background-color: #212529; - border-color: #212529 -} - -.btn-check:active + .btn-outline-dark:focus, .btn-check:checked + .btn-outline-dark:focus, .btn-outline-dark.active:focus, .btn-outline-dark.dropdown-toggle.show:focus, .btn-outline-dark:active:focus { - box-shadow: 0 0 0 .2rem rgba(33, 37, 41, .5) -} - -.btn-outline-dark.disabled, .btn-outline-dark:disabled { - color: #212529; - background-color: initial -} - -.btn-link { - font-weight: 400; - color: #3b7ddd; - text-decoration: none -} - -.btn-link:hover { - color: #1e58ad -} - -.btn-link:focus, .btn-link:hover { - text-decoration: underline -} - -.btn-link.disabled, .btn-link:disabled { - color: #6c757d -} - -.btn-group-lg > .btn, .btn-lg { - padding: .35rem 1rem; - font-size: .925rem; - border-radius: .3rem -} - -.btn-group-sm > .btn, .btn-sm { - padding: .15rem .5rem; - font-size: .75rem; - border-radius: .1rem -} - -.btn-block { - display: block; - width: 100% -} - -.btn-block + .btn-block { - margin-top: .5rem -} - -.fade { - transition: opacity .15s linear -} - -@media (prefers-reduced-motion: reduce) { - .fade { - transition: none - } -} - -.fade:not(.show) { - opacity: 0 -} - -.collapse:not(.show) { - display: none -} - -.collapsing { - 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 { - 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; - min-width: 10rem; - padding: .5rem 0; - margin: .125rem 0 0; - font-size: .875rem; - color: #495057; - text-align: left; - list-style: none; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, .15); - border-radius: .2rem -} - -.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 - } -} - -@media (min-width: 1440px) { - .dropdown-menu-xxl-left { - right: auto; - left: 0 - } - - .dropdown-menu-xxl-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: ""; - 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 rgba(0, 0, 0, .15) -} - -.dropdown-item { - display: block; - width: 100%; - padding: .35rem 1.5rem; - clear: both; - font-weight: 400; - color: #495057; - text-align: inherit; - white-space: nowrap; - background-color: initial; - border: 0 -} - -.dropdown-item:focus, .dropdown-item:hover { - color: #16181b; - text-decoration: none; - background-color: #f8f9fa -} - -.dropdown-item.active, .dropdown-item:active { - color: #fff; - text-decoration: none; - background-color: #3b7ddd -} - -.dropdown-item.disabled, .dropdown-item:disabled { - color: #6c757d; - pointer-events: none; - background-color: initial -} - -.dropdown-menu.show { - display: block -} - -.dropdown-header { - display: block; - padding: .5rem 1.5rem; - margin-bottom: 0; - font-size: .75rem; - color: #6c757d; - white-space: nowrap -} - -.dropdown-item-text { - display: block; - padding: .35rem 1.5rem; - color: #495057 -} - -.dropdown-menu-dark { - color: #dee2e6; - background-color: #343a40; - border-color: rgba(0, 0, 0, .15) -} - -.dropdown-menu-dark .dropdown-item { - color: #dee2e6 -} - -.dropdown-menu-dark .dropdown-item:focus, .dropdown-menu-dark .dropdown-item:hover { - color: #fff; - background-color: hsla(0, 0%, 100%, .15) -} - -.dropdown-menu-dark .dropdown-item.active, .dropdown-menu-dark .dropdown-item:active { - color: #fff; - background-color: #3b7ddd -} - -.dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled { - color: #adb5bd -} - -.dropdown-menu-dark .dropdown-divider { - border-color: rgba(0, 0, 0, .15) -} - -.dropdown-menu-dark .dropdown-item-text { - color: #dee2e6 -} - -.dropdown-menu-dark .dropdown-header { - color: #adb5bd -} - -.btn-group, .btn-group-vertical { - position: relative; - display: inline-flex; - vertical-align: middle -} - -.btn-group-vertical > .btn, .btn-group > .btn { - position: relative; - flex: 1 1 auto -} - -.btn-group-vertical > .btn-check:checked + .btn, .btn-group-vertical > .btn-check:focus + .btn, .btn-group-vertical > .btn.active, .btn-group-vertical > .btn:active, .btn-group-vertical > .btn:focus, .btn-group-vertical > .btn:hover, .btn-group > .btn-check:checked + .btn, .btn-group > .btn-check:focus + .btn, .btn-group > .btn.active, .btn-group > .btn:active, .btn-group > .btn:focus, .btn-group > .btn:hover { - z-index: 1 -} - -.btn-toolbar { - display: flex; - flex-wrap: wrap; - 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:nth-child(n+3), .btn-group > :not(.btn-check) + .btn { - border-top-left-radius: 0; - border-bottom-left-radius: 0 -} - -.dropdown-toggle-split { - padding-right: .525rem; - padding-left: .525rem -} - -.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 { - flex-direction: column; - align-items: flex-start; - 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 -} - -.nav { - display: flex; - flex-wrap: wrap; - padding-left: 0; - margin-bottom: 0; - list-style: none -} - -.nav-link { - display: block; - padding: .5rem 1rem; - transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out -} - -@media (prefers-reduced-motion: reduce) { - .nav-link { - transition: none - } -} - -.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: .2rem; - border-top-right-radius: .2rem -} - -.nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover { - border-color: #e9ecef #e9ecef #dee2e6 -} - -.nav-tabs .nav-link.disabled { - color: #6c757d; - background-color: initial; - border-color: transparent -} - -.nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link.active { - color: #495057; - background-color: #f7f7fc; - border-color: #dee2e6 #dee2e6 #f7f7fc -} - -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0 -} - -.nav-pills .nav-link { - border-radius: .2rem -} - -.nav-pills .nav-link.active, .nav-pills .show > .nav-link { - color: #fff; - background-color: #3b7ddd -} - -.nav-fill .nav-item, .nav-fill > .nav-link { - flex: 1 1 auto; - text-align: center -} - -.nav-justified .nav-item, .nav-justified > .nav-link { - flex-basis: 0; - flex-grow: 1; - text-align: center -} - -.tab-content > .tab-pane { - display: none -} - -.tab-content > .active { - display: block -} - -.navbar { - position: relative; - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; - padding: .875rem 1.375rem -} - -.navbar > .container, .navbar > .container-fluid, .navbar > .container-lg, .navbar > .container-md, .navbar > .container-sm, .navbar > .container-xl { - display: flex; - flex-wrap: inherit; - align-items: center; - justify-content: space-between -} - -.navbar-brand { - padding-top: .875rem; - padding-bottom: .875rem; - margin-right: 1rem; - white-space: nowrap -} - -.navbar-brand:focus, .navbar-brand:hover { - text-decoration: none -} - -.navbar-nav { - display: flex; - 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 -} - -.navbar-text { - padding-top: .5rem; - padding-bottom: .5rem -} - -.navbar-collapse { - align-items: center; - width: 100% -} - -.navbar-toggler { - padding: .25rem .75rem; - font-size: .925rem; - line-height: 1; - background-color: initial; - border: 1px solid transparent; - border-radius: .2rem; - transition: box-shadow .15s ease-in-out -} - -@media (prefers-reduced-motion: reduce) { - .navbar-toggler { - transition: none - } -} - -.navbar-toggler:hover { - text-decoration: none -} - -.navbar-toggler:focus { - text-decoration: none; - outline: 0; - box-shadow: 0 0 0 .2rem -} - -.navbar-toggler-icon { - display: inline-block; - width: 1.5em; - height: 1.5em; - vertical-align: middle; - background-repeat: no-repeat; - background-position: 50%; - background-size: 100% -} - -@media (min-width: 576px) { - .navbar-expand-sm { - flex-wrap: nowrap; - justify-content: flex-start - } - - .navbar-expand-sm .navbar-nav { - 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 .navbar-collapse { - display: flex !important - } - - .navbar-expand-sm .navbar-toggler { - display: none - } -} - -@media (min-width: 768px) { - .navbar-expand-md { - flex-wrap: nowrap; - justify-content: flex-start - } - - .navbar-expand-md .navbar-nav { - 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 .navbar-collapse { - display: flex !important - } - - .navbar-expand-md .navbar-toggler { - display: none - } -} - -@media (min-width: 992px) { - .navbar-expand-lg { - flex-wrap: nowrap; - justify-content: flex-start - } - - .navbar-expand-lg .navbar-nav { - 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 .navbar-collapse { - display: flex !important - } - - .navbar-expand-lg .navbar-toggler { - display: none - } -} - -@media (min-width: 1200px) { - .navbar-expand-xl { - flex-wrap: nowrap; - justify-content: flex-start - } - - .navbar-expand-xl .navbar-nav { - 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 .navbar-collapse { - display: flex !important - } - - .navbar-expand-xl .navbar-toggler { - display: none - } -} - -@media (min-width: 1440px) { - .navbar-expand-xxl { - flex-wrap: nowrap; - justify-content: flex-start - } - - .navbar-expand-xxl .navbar-nav { - flex-direction: row - } - - .navbar-expand-xxl .navbar-nav .dropdown-menu { - position: absolute - } - - .navbar-expand-xxl .navbar-nav .nav-link { - padding-right: .5rem; - padding-left: .5rem - } - - .navbar-expand-xxl .navbar-collapse { - display: flex !important - } - - .navbar-expand-xxl .navbar-toggler { - display: none - } -} - -.navbar-expand { - flex-wrap: nowrap; - justify-content: flex-start -} - -.navbar-expand .navbar-nav { - 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 .navbar-collapse { - display: flex !important -} - -.navbar-expand .navbar-toggler { - display: none -} - -.navbar-light .navbar-brand, .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, .55) -} - -.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 .nav-link.active, .navbar-light .navbar-nav .show > .nav-link { - color: rgba(0, 0, 0, .9) -} - -.navbar-light .navbar-toggler { - color: rgba(0, 0, 0, .55); - border-color: rgba(0, 0, 0, .1) -} - -.navbar-light .navbar-toggler-icon { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(0,0,0,0.55)' 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, .55) -} - -.navbar-light .navbar-text a, .navbar-light .navbar-text a:focus, .navbar-light .navbar-text a:hover { - color: rgba(0, 0, 0, .9) -} - -.navbar-dark .navbar-brand, .navbar-dark .navbar-brand:focus, .navbar-dark .navbar-brand:hover { - color: #fff -} - -.navbar-dark .navbar-nav .nav-link { - color: hsla(0, 0%, 100%, .55) -} - -.navbar-dark .navbar-nav .nav-link:focus, .navbar-dark .navbar-nav .nav-link:hover { - color: hsla(0, 0%, 100%, .75) -} - -.navbar-dark .navbar-nav .nav-link.disabled { - color: hsla(0, 0%, 100%, .25) -} - -.navbar-dark .navbar-nav .nav-link.active, .navbar-dark .navbar-nav .show > .nav-link { - color: #fff -} - -.navbar-dark .navbar-toggler { - color: hsla(0, 0%, 100%, .55); - border-color: hsla(0, 0%, 100%, .1) -} - -.navbar-dark .navbar-toggler-icon { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(255,255,255,0.55)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E") -} - -.navbar-dark .navbar-text { - color: hsla(0, 0%, 100%, .55) -} - -.navbar-dark .navbar-text a, .navbar-dark .navbar-text a:focus, .navbar-dark .navbar-text a:hover { - color: #fff -} - -.card { - position: relative; - display: flex; - flex-direction: column; - min-width: 0; - word-wrap: break-word; - background-color: #fff; - background-clip: initial; - border: 0 solid transparent; - 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: .25rem; - border-top-right-radius: .25rem -} - -.card > .list-group:last-child { - border-bottom-width: 0; - border-bottom-right-radius: .25rem; - border-bottom-left-radius: .25rem -} - -.card > .card-header + .list-group, .card > .list-group + .card-footer { - border-top: 0 -} - -.card-body { - flex: 1 1 auto; - padding: 1.25rem -} - -.card-title { - margin-bottom: .5rem -} - -.card-subtitle { - margin-top: -.25rem -} - -.card-subtitle, .card-text:last-child { - margin-bottom: 0 -} - -.card-link:hover { - text-decoration: none -} - -.card-link + .card-link { - margin-left: 1.25rem -} - -.card-header { - padding: 1rem 1.25rem; - margin-bottom: 0; - background-color: #fff; - border-bottom: 0 solid transparent -} - -.card-header:first-child { - border-radius: .25rem .25rem 0 0 -} - -.card-footer { - padding: 1rem 1.25rem; - background-color: #fff; - border-top: 0 solid transparent -} - -.card-footer:last-child { - border-radius: 0 0 .25rem .25rem -} - -.card-header-tabs { - margin-right: -.625rem; - margin-bottom: -1rem; - margin-left: -.625rem; - border-bottom: 0 -} - -.card-header-tabs .nav-link.active { - background-color: #fff; - border-bottom-color: #fff -} - -.card-header-pills { - margin-right: -.625rem; - margin-left: -.625rem -} - -.card-img-overlay { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - padding: 1rem; - border-radius: .25rem -} - -.card-img, .card-img-bottom, .card-img-top { - width: 100% -} - -.card-img, .card-img-top { - border-top-left-radius: .25rem; - border-top-right-radius: .25rem -} - -.card-img, .card-img-bottom { - border-bottom-right-radius: .25rem; - border-bottom-left-radius: .25rem -} - -.card-group > .card { - margin-bottom: 12px -} - -@media (min-width: 576px) { - .card-group { - display: flex; - flex-flow: row wrap - } - - .card-group > .card { - 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 - } -} - -.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: 0 -} - -.breadcrumb { - flex-wrap: wrap; - padding: .5rem 1rem; - margin-bottom: 1rem; - list-style: none; - background-color: #e9ecef; - border-radius: .2rem -} - -.breadcrumb, .breadcrumb-item { - display: flex -} - -.breadcrumb-item + .breadcrumb-item { - padding-left: .5rem -} - -.breadcrumb-item + .breadcrumb-item:before { - display: inline-block; - padding-right: .5rem; - color: #6c757d; - content: "/" -} - -.breadcrumb-item.active { - color: #6c757d -} - -.pagination { - display: flex; - padding-left: 0; - list-style: none -} - -.page-link { - position: relative; - display: block; - color: #6c757d; - background-color: #fff; - border: 1px solid #dee2e6; - 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) { - .page-link { - transition: none - } -} - -.page-link:hover { - z-index: 2; - color: #343a40; - text-decoration: none; - background-color: #e9ecef; - border-color: #dee2e6 -} - -.page-link:focus { - z-index: 3; - color: #1e58ad; - background-color: #e9ecef; - outline: 0; - box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .25) -} - -.page-item:not(:first-child) .page-link { - margin-left: -1px -} - -.page-item.active .page-link { - z-index: 3; - color: #fff; - background-color: #3b7ddd; - border-color: #3b7ddd -} - -.page-item.disabled .page-link { - color: #6c757d; - pointer-events: none; - background-color: #fff; - border-color: #dee2e6 -} - -.page-link { - padding: .3rem .75rem -} - -.page-item:first-child .page-link { - border-top-left-radius: .2rem; - border-bottom-left-radius: .2rem -} - -.page-item:last-child .page-link { - border-top-right-radius: .2rem; - border-bottom-right-radius: .2rem -} - -.pagination-lg .page-link { - padding: .35rem 1rem; - font-size: .925rem -} - -.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: .15rem .5rem; - font-size: .75rem -} - -.pagination-sm .page-item:first-child .page-link { - border-top-left-radius: .1rem; - border-bottom-left-radius: .1rem -} - -.pagination-sm .page-item:last-child .page-link { - border-top-right-radius: .1rem; - border-bottom-right-radius: .1rem -} - -.badge { - display: inline-block; - padding: .3em .45em; - font-size: 80%; - font-weight: 600; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: initial; - border-radius: .2rem -} - -.badge:empty { - display: none -} - -.btn .badge { - position: relative; - top: -1px -} - -.alert { - position: relative; - padding: .95rem; - margin-bottom: 1rem; - border: 0 solid transparent; - border-radius: .2rem -} - -.alert-heading { - color: inherit -} - -.alert-link { - font-weight: 600 -} - -.alert-dismissible { - padding-right: 2.85rem -} - -.alert-dismissible .btn-close { - position: absolute; - top: 0; - right: 0; - padding: 1.1875rem .95rem -} - -.alert-primary { - color: #1f4173; - background-color: #d8e5f8; - border-color: #c8dbf5 -} - -.alert-primary .alert-link { - color: #142a4b -} - -.alert-secondary { - color: #383d41; - background-color: #e2e3e5; - border-color: #d6d8db -} - -.alert-secondary .alert-link { - color: #202326 -} - -.alert-success { - color: #155724; - background-color: #d4edda; - border-color: #c3e6cb -} - -.alert-success .alert-link { - color: #0b2e13 -} - -.alert-info { - color: #0c5460; - background-color: #d1ecf1; - border-color: #bee5eb -} - -.alert-info .alert-link { - color: #062c33 -} - -.alert-warning { - color: #856404; - background-color: #fff3cd; - border-color: #ffeeba -} - -.alert-warning .alert-link { - color: #533f03 -} - -.alert-danger { - color: #721c24; - background-color: #f8d7da; - border-color: #f5c6cb -} - -.alert-danger .alert-link { - color: #491217 -} - -.alert-light { - color: #818182; - background-color: #fefefe; - border-color: #fdfdfe -} - -.alert-light .alert-link { - color: #686868 -} - -.alert-dark { - color: #111315; - background-color: #d3d3d4; - border-color: #c1c2c3 -} - -.alert-dark .alert-link { - color: #000 -} - -@keyframes progress-bar-stripes { - 0% { - background-position-x: 1rem - } -} - -.progress { - height: 1rem; - font-size: .65625rem; - background-color: #e9ecef; - border-radius: .2rem -} - -.progress, .progress-bar { - display: flex; - overflow: hidden -} - -.progress-bar { - flex-direction: column; - justify-content: center; - color: #fff; - text-align: center; - white-space: nowrap; - background-color: #3b7ddd; - transition: width .6s ease -} - -@media (prefers-reduced-motion: reduce) { - .progress-bar { - transition: none - } -} - -.progress-bar-striped { - background-image: linear-gradient(45deg, hsla(0, 0%, 100%, .15) 25%, transparent 0, transparent 50%, hsla(0, 0%, 100%, .15) 0, hsla(0, 0%, 100%, .15) 75%, transparent 0, transparent); - background-size: 1rem 1rem -} - -.progress-bar-animated { - animation: progress-bar-stripes 1s linear infinite -} - -@media (prefers-reduced-motion: reduce) { - .progress-bar-animated { - animation: none - } -} - -.list-group { - display: flex; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; - border-radius: .2rem -} - -.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: #495057; - 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: #3b7ddd; - border-color: #3b7ddd -} - -.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 { - flex-direction: row -} - -.list-group-horizontal > .list-group-item:first-child { - border-bottom-left-radius: .2rem; - border-top-right-radius: 0 -} - -.list-group-horizontal > .list-group-item:last-child { - border-top-right-radius: .2rem; - 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 { - flex-direction: row - } - - .list-group-horizontal-sm > .list-group-item:first-child { - border-bottom-left-radius: .2rem; - border-top-right-radius: 0 - } - - .list-group-horizontal-sm > .list-group-item:last-child { - border-top-right-radius: .2rem; - 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 { - flex-direction: row - } - - .list-group-horizontal-md > .list-group-item:first-child { - border-bottom-left-radius: .2rem; - border-top-right-radius: 0 - } - - .list-group-horizontal-md > .list-group-item:last-child { - border-top-right-radius: .2rem; - 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 { - flex-direction: row - } - - .list-group-horizontal-lg > .list-group-item:first-child { - border-bottom-left-radius: .2rem; - border-top-right-radius: 0 - } - - .list-group-horizontal-lg > .list-group-item:last-child { - border-top-right-radius: .2rem; - 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 { - flex-direction: row - } - - .list-group-horizontal-xl > .list-group-item:first-child { - border-bottom-left-radius: .2rem; - border-top-right-radius: 0 - } - - .list-group-horizontal-xl > .list-group-item:last-child { - border-top-right-radius: .2rem; - 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 - } -} - -@media (min-width: 1440px) { - .list-group-horizontal-xxl { - flex-direction: row - } - - .list-group-horizontal-xxl > .list-group-item:first-child { - border-bottom-left-radius: .2rem; - border-top-right-radius: 0 - } - - .list-group-horizontal-xxl > .list-group-item:last-child { - border-top-right-radius: .2rem; - border-bottom-left-radius: 0 - } - - .list-group-horizontal-xxl > .list-group-item.active { - margin-top: 0 - } - - .list-group-horizontal-xxl > .list-group-item + .list-group-item { - border-top-width: 1px; - border-left-width: 0 - } - - .list-group-horizontal-xxl > .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: #1f4173; - background-color: #c8dbf5 -} - -.list-group-item-primary.list-group-item-action:focus, .list-group-item-primary.list-group-item-action:hover { - color: #1f4173; - background-color: #b2cdf1 -} - -.list-group-item-primary.list-group-item-action.active { - color: #fff; - background-color: #1f4173; - border-color: #1f4173 -} - -.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: #111315; - background-color: #c1c2c3 -} - -.list-group-item-dark.list-group-item-action:focus, .list-group-item-dark.list-group-item-action:hover { - color: #111315; - background-color: #b4b5b6 -} - -.list-group-item-dark.list-group-item-action.active { - color: #fff; - background-color: #111315; - border-color: #111315 -} - -.btn-close { - box-sizing: initial; - width: 1em; - height: 1em; - padding: .25em; - color: #000; - background: transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3E%3C/svg%3E") no-repeat 50%/1em auto; - background-clip: content-box; - border: 0; - border-radius: .2rem; - opacity: .5 -} - -.btn-close:hover { - color: #000; - text-decoration: none; - opacity: .75 -} - -.btn-close:focus { - outline: none; - box-shadow: 0 0 0 .2rem rgba(59, 125, 221, .25); - opacity: 1 -} - -.btn-close.disabled, .btn-close:disabled { - pointer-events: none; - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; - opacity: .25 -} - -.btn-close-white { - filter: invert(1) grayscale(100%) brightness(200%) -} - -.toast { - max-width: 350px; - font-size: .875rem; - background-color: hsla(0, 0%, 100%, .85); - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, .1); - box-shadow: 0 .1rem .2rem rgba(0, 0, 0, .05); - opacity: 0; - border-radius: .2rem -} - -.toast:not(:last-child) { - margin-bottom: .75rem -} - -.toast.showing { - opacity: 1 -} - -.toast.show { - display: block; - opacity: 1 -} - -.toast.hide { - display: none -} - -.toast-header { - display: flex; - align-items: center; - padding: .5rem .75rem; - color: #6c757d; - background-color: hsla(0, 0%, 100%, .85); - background-clip: padding-box; - border-bottom: 1px solid rgba(0, 0, 0, .05); - border-top-left-radius: calc(.2rem - 1px); - border-top-right-radius: calc(.2rem - 1px) -} - -.toast-header .btn-close { - margin-right: -.375rem; - margin-left: .75rem -} - -.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: transform .25s ease-out; - transform: translateY(-50px) -} - -@media (prefers-reduced-motion: reduce) { - .modal.fade .modal-dialog { - transition: none - } -} - -.modal.show .modal-dialog { - transform: none -} - -.modal.modal-static .modal-dialog { - transform: scale(1.02) -} - -.modal-dialog-scrollable { - height: calc(100% - 1rem) -} - -.modal-dialog-scrollable .modal-content { - max-height: 100%; - overflow: hidden -} - -.modal-dialog-scrollable .modal-body { - overflow-y: auto -} - -.modal-dialog-centered { - display: flex; - align-items: center; - min-height: calc(100% - 1rem) -} - -.modal-content { - position: relative; - display: flex; - flex-direction: column; - width: 100%; - pointer-events: auto; - background-color: #fff; - background-clip: padding-box; - border: 0 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: flex; - flex-shrink: 0; - align-items: center; - justify-content: space-between; - padding: 1rem; - border-bottom: 1px solid #dee2e6; - border-top-left-radius: .3rem; - border-top-right-radius: .3rem -} - -.modal-header .btn-close { - padding: .5rem; - margin: -.5rem -.5rem -.5rem auto -} - -.modal-title { - margin-bottom: 0; - line-height: 1.5 -} - -.modal-body { - position: relative; - flex: 1 1 auto; - padding: 1rem -} - -.modal-footer { - display: flex; - flex-wrap: wrap; - flex-shrink: 0; - align-items: center; - justify-content: flex-end; - padding: .75rem; - border-top: 1px solid #dee2e6; - border-bottom-right-radius: .3rem; - border-bottom-left-radius: .3rem -} - -.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: 600px; - margin: 1.75rem auto - } - - .modal-dialog-scrollable { - height: calc(100% - 3.5rem) - } - - .modal-dialog-centered { - min-height: calc(100% - 3.5rem) - } - - .modal-sm { - max-width: 400px - } -} - -@media (min-width: 992px) { - .modal-lg, .modal-xl { - max-width: 900px - } -} - -@media (min-width: 1200px) { - .modal-xl { - max-width: 1140px - } -} - -.modal-fullscreen { - width: 100vw; - max-width: none; - height: 100%; - margin: 0 -} - -.modal-fullscreen .modal-content { - height: 100%; - border: 0; - border-radius: 0 -} - -.modal-fullscreen .modal-header { - border-radius: 0 -} - -.modal-fullscreen .modal-body { - overflow-y: auto -} - -.modal-fullscreen .modal-footer { - border-radius: 0 -} - -@media (max-width: 575.98px) { - .modal-fullscreen-sm-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0 - } - - .modal-fullscreen-sm-down .modal-content { - height: 100%; - border: 0; - border-radius: 0 - } - - .modal-fullscreen-sm-down .modal-header { - border-radius: 0 - } - - .modal-fullscreen-sm-down .modal-body { - overflow-y: auto - } - - .modal-fullscreen-sm-down .modal-footer { - border-radius: 0 - } -} - -@media (max-width: 767.98px) { - .modal-fullscreen-md-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0 - } - - .modal-fullscreen-md-down .modal-content { - height: 100%; - border: 0; - border-radius: 0 - } - - .modal-fullscreen-md-down .modal-header { - border-radius: 0 - } - - .modal-fullscreen-md-down .modal-body { - overflow-y: auto - } - - .modal-fullscreen-md-down .modal-footer { - border-radius: 0 - } -} - -@media (max-width: 991.98px) { - .modal-fullscreen-lg-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0 - } - - .modal-fullscreen-lg-down .modal-content { - height: 100%; - border: 0; - border-radius: 0 - } - - .modal-fullscreen-lg-down .modal-header { - border-radius: 0 - } - - .modal-fullscreen-lg-down .modal-body { - overflow-y: auto - } - - .modal-fullscreen-lg-down .modal-footer { - border-radius: 0 - } -} - -@media (max-width: 1199.98px) { - .modal-fullscreen-xl-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0 - } - - .modal-fullscreen-xl-down .modal-content { - height: 100%; - border: 0; - border-radius: 0 - } - - .modal-fullscreen-xl-down .modal-header { - border-radius: 0 - } - - .modal-fullscreen-xl-down .modal-body { - overflow-y: auto - } - - .modal-fullscreen-xl-down .modal-footer { - border-radius: 0 - } -} - -@media (max-width: 1439.98px) { - .modal-fullscreen-xxl-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0 - } - - .modal-fullscreen-xxl-down .modal-content { - height: 100%; - border: 0; - border-radius: 0 - } - - .modal-fullscreen-xxl-down .modal-header { - border-radius: 0 - } - - .modal-fullscreen-xxl-down .modal-body { - overflow-y: auto - } - - .modal-fullscreen-xxl-down .modal-footer { - border-radius: 0 - } -} - -.tooltip { - position: absolute; - z-index: 1070; - display: block; - margin: 0; - font-family: var(--bs-font-sans-serif); - 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: .75rem; - word-wrap: break-word; - opacity: 0 -} - -.tooltip.show { - opacity: .9 -} - -.tooltip .tooltip-arrow { - position: absolute; - display: block; - width: .8rem; - height: .4rem -} - -.tooltip .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] .tooltip-arrow, .bs-tooltip-top .tooltip-arrow { - bottom: 0 -} - -.bs-tooltip-auto[x-placement^=top] .tooltip-arrow:before, .bs-tooltip-top .tooltip-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] .tooltip-arrow, .bs-tooltip-right .tooltip-arrow { - left: 0; - width: .4rem; - height: .8rem -} - -.bs-tooltip-auto[x-placement^=right] .tooltip-arrow:before, .bs-tooltip-right .tooltip-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] .tooltip-arrow, .bs-tooltip-bottom .tooltip-arrow { - top: 0 -} - -.bs-tooltip-auto[x-placement^=bottom] .tooltip-arrow:before, .bs-tooltip-bottom .tooltip-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] .tooltip-arrow, .bs-tooltip-left .tooltip-arrow { - right: 0; - width: .4rem; - height: .8rem -} - -.bs-tooltip-auto[x-placement^=left] .tooltip-arrow:before, .bs-tooltip-left .tooltip-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: .2rem -} - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: block; - max-width: 276px; - font-family: var(--bs-font-sans-serif); - 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: .75rem; - word-wrap: break-word; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: .3rem -} - -.popover .popover-arrow { - position: absolute; - display: block; - width: 1rem; - height: .5rem; - margin: 0 .3rem -} - -.popover .popover-arrow:after, .popover .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] > .popover-arrow, .bs-popover-top > .popover-arrow { - bottom: calc(-.5rem - 1px) -} - -.bs-popover-auto[x-placement^=top] > .popover-arrow:before, .bs-popover-top > .popover-arrow:before { - bottom: 0; - border-width: .5rem .5rem 0; - border-top-color: rgba(0, 0, 0, .25) -} - -.bs-popover-auto[x-placement^=top] > .popover-arrow:after, .bs-popover-top > .popover-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] > .popover-arrow, .bs-popover-right > .popover-arrow { - left: calc(-.5rem - 1px); - width: .5rem; - height: 1rem; - margin: .3rem 0 -} - -.bs-popover-auto[x-placement^=right] > .popover-arrow:before, .bs-popover-right > .popover-arrow:before { - left: 0; - border-width: .5rem .5rem .5rem 0; - border-right-color: rgba(0, 0, 0, .25) -} - -.bs-popover-auto[x-placement^=right] > .popover-arrow:after, .bs-popover-right > .popover-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] > .popover-arrow, .bs-popover-bottom > .popover-arrow { - top: calc(-.5rem - 1px) -} - -.bs-popover-auto[x-placement^=bottom] > .popover-arrow:before, .bs-popover-bottom > .popover-arrow:before { - top: 0; - border-width: 0 .5rem .5rem; - border-bottom-color: rgba(0, 0, 0, .25) -} - -.bs-popover-auto[x-placement^=bottom] > .popover-arrow:after, .bs-popover-bottom > .popover-arrow:after { - top: 1px; - border-width: 0 .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] > .popover-arrow, .bs-popover-left > .popover-arrow { - right: calc(-.5rem - 1px); - width: .5rem; - height: 1rem; - margin: .3rem 0 -} - -.bs-popover-auto[x-placement^=left] > .popover-arrow:before, .bs-popover-left > .popover-arrow:before { - right: 0; - border-width: .5rem 0 .5rem .5rem; - border-left-color: rgba(0, 0, 0, .25) -} - -.bs-popover-auto[x-placement^=left] > .popover-arrow:after, .bs-popover-left > .popover-arrow:after { - right: 1px; - border-width: .5rem 0 .5rem .5rem; - border-left-color: #fff -} - -.popover-header { - padding: .5rem 1rem; - margin-bottom: 0; - font-size: .875rem; - color: #000; - 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: 1rem; - color: #495057 -} - -.carousel { - position: relative -} - -.carousel.pointer-event { - 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: 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) { - transform: translateX(100%) -} - -.active.carousel-item-left, .carousel-item-prev:not(.carousel-item-right) { - transform: translateX(-100%) -} - -.carousel-fade .carousel-item { - opacity: 0; - transition-property: opacity; - 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: flex; - align-items: 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: 2rem; - height: 2rem; - background-repeat: no-repeat; - background-position: 50%; - background-size: 100% 100% -} - -.carousel-control-prev-icon { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M11.354 1.646a.5.5 0 010 .708L5.707 8l5.647 5.646a.5.5 0 01-.708.708l-6-6a.5.5 0 010-.708l6-6a.5.5 0 01.708 0z'/%3E%3C/svg%3E") -} - -.carousel-control-next-icon { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 1.646a.5.5 0 01.708 0l6 6a.5.5 0 010 .708l-6 6a.5.5 0 01-.708-.708L10.293 8 4.646 2.354a.5.5 0 010-.708z'/%3E%3C/svg%3E") -} - -.carousel-indicators { - position: absolute; - right: 0; - bottom: 0; - left: 0; - z-index: 2; - display: flex; - justify-content: center; - padding-left: 0; - margin-right: 15%; - margin-left: 15%; - list-style: none -} - -.carousel-indicators li { - box-sizing: initial; - 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: 1.25rem; - left: 15%; - padding-top: 1.25rem; - padding-bottom: 1.25rem; - color: #fff; - text-align: center -} - -.carousel-dark .carousel-control-next-icon, .carousel-dark .carousel-control-prev-icon { - filter: invert(1) grayscale(100) -} - -.carousel-dark .carousel-indicators li { - background-color: #000 -} - -.carousel-dark .carousel-caption { - color: #000 -} - -@keyframes spinner-border { - to { - transform: rotate(1turn) - } -} - -.spinner-border { - display: inline-block; - width: 2rem; - height: 2rem; - vertical-align: text-bottom; - border: .25em solid; - border-right: .25em solid transparent; - border-radius: 50%; - animation: spinner-border .75s linear infinite -} - -.spinner-border-sm { - width: 1rem; - height: 1rem; - border-width: .2em -} - -@keyframes spinner-grow { - 0% { - transform: scale(0) - } - 50% { - opacity: 1; - transform: none - } -} - -.spinner-grow { - display: inline-block; - width: 2rem; - height: 2rem; - vertical-align: text-bottom; - background-color: currentColor; - border-radius: 50%; - opacity: 0; - animation: spinner-grow .75s linear infinite -} - -.spinner-grow-sm { - width: 1rem; - height: 1rem -} - -.clearfix:after { - display: block; - clear: both; - content: "" -} - -.link-primary { - color: #3b7ddd -} - -.link-primary:focus, .link-primary:hover { - color: #7ca8e8 -} - -.link-secondary { - color: #6c757d -} - -.link-secondary:focus, .link-secondary:hover { - color: #494f54 -} - -.link-success { - color: #28a745 -} - -.link-success:focus, .link-success:hover { - color: #48d368 -} - -.link-info { - color: #17a2b8 -} - -.link-info:focus, .link-info:hover { - color: #36cee6 -} - -.link-warning { - color: #ffc107 -} - -.link-warning:focus, .link-warning:hover { - color: #ffd454 -} - -.link-danger { - color: #dc3545 -} - -.link-danger:focus, .link-danger:hover { - color: #a71d2a -} - -.link-light { - color: #f8f9fa -} - -.link-light:focus, .link-light:hover { - color: #fff -} - -.link-dark { - color: #212529 -} - -.link-dark:focus, .link-dark:hover { - color: #000 -} - -.ratio { - position: relative; - width: 100% -} - -.ratio:before { - display: block; - padding-top: var(--aspect-ratio); - content: "" -} - -.ratio > * { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100% -} - -.ratio-1x1 { - --aspect-ratio: 100% -} - -.ratio-4x3 { - --aspect-ratio: 75% -} - -.ratio-16x9 { - --aspect-ratio: 56.25% -} - -.ratio-21x9 { - --aspect-ratio: 42.85714% -} - -.fixed-top { - top: 0 -} - -.fixed-bottom, .fixed-top { - position: fixed; - right: 0; - left: 0; - z-index: 1030 -} - -.fixed-bottom { - bottom: 0 -} - -.sticky-top { - position: -webkit-sticky; - position: sticky; - top: 0; - z-index: 1020 -} - -@media (min-width: 576px) { - .sticky-sm-top { - position: -webkit-sticky; - position: sticky; - top: 0; - z-index: 1020 - } -} - -@media (min-width: 768px) { - .sticky-md-top { - position: -webkit-sticky; - position: sticky; - top: 0; - z-index: 1020 - } -} - -@media (min-width: 992px) { - .sticky-lg-top { - position: -webkit-sticky; - position: sticky; - top: 0; - z-index: 1020 - } -} - -@media (min-width: 1200px) { - .sticky-xl-top { - position: -webkit-sticky; - position: sticky; - top: 0; - z-index: 1020 - } -} - -@media (min-width: 1440px) { - .sticky-xxl-top { - position: -webkit-sticky; - position: sticky; - top: 0; - z-index: 1020 - } -} - -.visually-hidden, .visually-hidden-focusable:not(:focus) { - position: absolute !important; - width: 1px !important; - height: 1px !important; - padding: 0 !important; - margin: -1px !important; - overflow: hidden !important; - clip: rect(0, 0, 0, 0) !important; - white-space: nowrap !important; - border: 0 !important -} - -.stretched-link:after { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1; - content: "" -} - -.text-truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap -} - -.align-baseline { - vertical-align: initial !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 -} - -.float-left { - float: left !important -} - -.float-right { - float: right !important -} - -.float-none { - float: none !important -} - -.overflow-auto { - overflow: auto !important -} - -.overflow-hidden { - overflow: hidden !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: flex !important -} - -.d-inline-flex { - display: inline-flex !important -} - -.d-none { - display: none !important -} - -.shadow { - box-shadow: 0 .1rem .2rem rgba(0, 0, 0, .05) !important -} - -.shadow-sm { - box-shadow: 0 .05rem .2rem rgba(0, 0, 0, .05) !important -} - -.shadow-lg { - box-shadow: 0 .2rem .2rem rgba(0, 0, 0, .05) !important -} - -.shadow-none { - box-shadow: none !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 -} - -.top-0 { - top: 0 !important -} - -.top-50 { - top: 50% !important -} - -.top-100 { - top: 100% !important -} - -.bottom-0 { - bottom: 0 !important -} - -.bottom-50 { - bottom: 50% !important -} - -.bottom-100 { - bottom: 100% !important -} - -.left-0 { - left: 0 !important -} - -.left-50 { - left: 50% !important -} - -.left-100 { - left: 100% !important -} - -.right-0 { - right: 0 !important -} - -.right-50 { - right: 50% !important -} - -.right-100 { - right: 100% !important -} - -.translate-middle { - transform: translateX(-50%) translateY(-50%) !important -} - -.border { - border: 1px solid #dee2e6 !important -} - -.border-0 { - border: 0 !important -} - -.border-top { - border-top: 1px solid #dee2e6 !important -} - -.border-top-0 { - border-top: 0 !important -} - -.border-right { - border-right: 1px solid #dee2e6 !important -} - -.border-right-0 { - border-right: 0 !important -} - -.border-bottom { - border-bottom: 1px solid #dee2e6 !important -} - -.border-bottom-0 { - border-bottom: 0 !important -} - -.border-left { - border-left: 1px solid #dee2e6 !important -} - -.border-left-0 { - border-left: 0 !important -} - -.border-primary { - border-color: #3b7ddd !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: #212529 !important -} - -.border-white { - border-color: #fff !important -} - -.border-0 { - border-width: 0 !important -} - -.border-1 { - border-width: 1px !important -} - -.border-2 { - border-width: 2px !important -} - -.border-3 { - border-width: 3px !important -} - -.border-4 { - border-width: 4px !important -} - -.border-5 { - border-width: 5px !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 -} - -.mw-100 { - max-width: 100% !important -} - -.vw-100 { - width: 100vw !important -} - -.min-vw-100 { - min-width: 100vw !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 -} - -.mh-100 { - max-height: 100% !important -} - -.vh-100 { - height: 100vh !important -} - -.min-vh-100 { - min-height: 100vh !important -} - -.flex-fill { - flex: 1 1 auto !important -} - -.flex-row { - flex-direction: row !important -} - -.flex-column { - flex-direction: column !important -} - -.flex-row-reverse { - flex-direction: row-reverse !important -} - -.flex-column-reverse { - flex-direction: column-reverse !important -} - -.flex-grow-0 { - flex-grow: 0 !important -} - -.flex-grow-1 { - flex-grow: 1 !important -} - -.flex-shrink-0 { - flex-shrink: 0 !important -} - -.flex-shrink-1 { - flex-shrink: 1 !important -} - -.flex-wrap { - flex-wrap: wrap !important -} - -.flex-nowrap { - flex-wrap: nowrap !important -} - -.flex-wrap-reverse { - flex-wrap: wrap-reverse !important -} - -.justify-content-start { - justify-content: flex-start !important -} - -.justify-content-end { - justify-content: flex-end !important -} - -.justify-content-center { - justify-content: center !important -} - -.justify-content-between { - justify-content: space-between !important -} - -.justify-content-around { - justify-content: space-around !important -} - -.justify-content-evenly { - justify-content: space-evenly !important -} - -.align-items-start { - align-items: flex-start !important -} - -.align-items-end { - align-items: flex-end !important -} - -.align-items-center { - align-items: center !important -} - -.align-items-baseline { - align-items: baseline !important -} - -.align-items-stretch { - align-items: stretch !important -} - -.align-content-start { - align-content: flex-start !important -} - -.align-content-end { - align-content: flex-end !important -} - -.align-content-center { - align-content: center !important -} - -.align-content-between { - align-content: space-between !important -} - -.align-content-around { - align-content: space-around !important -} - -.align-content-stretch { - align-content: stretch !important -} - -.align-self-auto { - align-self: auto !important -} - -.align-self-start { - align-self: flex-start !important -} - -.align-self-end { - align-self: flex-end !important -} - -.align-self-center { - align-self: center !important -} - -.align-self-baseline { - align-self: baseline !important -} - -.align-self-stretch { - align-self: stretch !important -} - -.order-first { - order: -1 !important -} - -.order-0 { - order: 0 !important -} - -.order-1 { - order: 1 !important -} - -.order-2 { - order: 2 !important -} - -.order-3 { - order: 3 !important -} - -.order-4 { - order: 4 !important -} - -.order-5 { - order: 5 !important -} - -.order-last { - order: 6 !important -} - -.m-0 { - margin: 0 !important -} - -.m-1 { - margin: .25rem !important -} - -.m-2 { - margin: .5rem !important -} - -.m-3 { - margin: 1rem !important -} - -.m-4 { - margin: 1.5rem !important -} - -.m-5 { - margin: 3rem !important -} - -.m-6 { - margin: 4.5rem !important -} - -.m-7 { - margin: 6rem !important -} - -.m-auto { - margin: auto !important -} - -.mx-0 { - margin-right: 0 !important; - margin-left: 0 !important -} - -.mx-1 { - margin-right: .25rem !important; - margin-left: .25rem !important -} - -.mx-2 { - margin-right: .5rem !important; - margin-left: .5rem !important -} - -.mx-3 { - margin-right: 1rem !important; - margin-left: 1rem !important -} - -.mx-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important -} - -.mx-5 { - margin-right: 3rem !important; - margin-left: 3rem !important -} - -.mx-6 { - margin-right: 4.5rem !important; - margin-left: 4.5rem !important -} - -.mx-7 { - margin-right: 6rem !important; - margin-left: 6rem !important -} - -.mx-auto { - margin-right: auto !important; - margin-left: auto !important -} - -.my-0 { - margin-top: 0 !important; - margin-bottom: 0 !important -} - -.my-1 { - margin-top: .25rem !important; - margin-bottom: .25rem !important -} - -.my-2 { - margin-top: .5rem !important; - margin-bottom: .5rem !important -} - -.my-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important -} - -.my-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important -} - -.my-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important -} - -.my-6 { - margin-top: 4.5rem !important; - margin-bottom: 4.5rem !important -} - -.my-7 { - margin-top: 6rem !important; - margin-bottom: 6rem !important -} - -.my-auto { - margin-top: auto !important; - margin-bottom: auto !important -} - -.mt-0 { - margin-top: 0 !important -} - -.mt-1 { - margin-top: .25rem !important -} - -.mt-2 { - margin-top: .5rem !important -} - -.mt-3 { - margin-top: 1rem !important -} - -.mt-4 { - margin-top: 1.5rem !important -} - -.mt-5 { - margin-top: 3rem !important -} - -.mt-6 { - margin-top: 4.5rem !important -} - -.mt-7 { - margin-top: 6rem !important -} - -.mt-auto { - margin-top: auto !important -} - -.mr-0 { - margin-right: 0 !important -} - -.mr-1 { - margin-right: .25rem !important -} - -.mr-2 { - margin-right: .5rem !important -} - -.mr-3 { - margin-right: 1rem !important -} - -.mr-4 { - margin-right: 1.5rem !important -} - -.mr-5 { - margin-right: 3rem !important -} - -.mr-6 { - margin-right: 4.5rem !important -} - -.mr-7 { - margin-right: 6rem !important -} - -.mr-auto { - margin-right: auto !important -} - -.mb-0 { - margin-bottom: 0 !important -} - -.mb-1 { - margin-bottom: .25rem !important -} - -.mb-2 { - margin-bottom: .5rem !important -} - -.mb-3 { - margin-bottom: 1rem !important -} - -.mb-4 { - margin-bottom: 1.5rem !important -} - -.mb-5 { - margin-bottom: 3rem !important -} - -.mb-6 { - margin-bottom: 4.5rem !important -} - -.mb-7 { - margin-bottom: 6rem !important -} - -.mb-auto { - margin-bottom: auto !important -} - -.ml-0 { - margin-left: 0 !important -} - -.ml-1 { - margin-left: .25rem !important -} - -.ml-2 { - margin-left: .5rem !important -} - -.ml-3 { - margin-left: 1rem !important -} - -.ml-4 { - margin-left: 1.5rem !important -} - -.ml-5 { - margin-left: 3rem !important -} - -.ml-6 { - margin-left: 4.5rem !important -} - -.ml-7 { - margin-left: 6rem !important -} - -.ml-auto { - margin-left: auto !important -} - -.m-n1 { - margin: -.25rem !important -} - -.m-n2 { - margin: -.5rem !important -} - -.m-n3 { - margin: -1rem !important -} - -.m-n4 { - margin: -1.5rem !important -} - -.m-n5 { - margin: -3rem !important -} - -.m-n6 { - margin: -4.5rem !important -} - -.m-n7 { - margin: -6rem !important -} - -.mx-n1 { - margin-right: -.25rem !important; - margin-left: -.25rem !important -} - -.mx-n2 { - margin-right: -.5rem !important; - margin-left: -.5rem !important -} - -.mx-n3 { - margin-right: -1rem !important; - margin-left: -1rem !important -} - -.mx-n4 { - margin-right: -1.5rem !important; - margin-left: -1.5rem !important -} - -.mx-n5 { - margin-right: -3rem !important; - margin-left: -3rem !important -} - -.mx-n6 { - margin-right: -4.5rem !important; - margin-left: -4.5rem !important -} - -.mx-n7 { - margin-right: -6rem !important; - margin-left: -6rem !important -} - -.my-n1 { - margin-top: -.25rem !important; - margin-bottom: -.25rem !important -} - -.my-n2 { - margin-top: -.5rem !important; - margin-bottom: -.5rem !important -} - -.my-n3 { - margin-top: -1rem !important; - margin-bottom: -1rem !important -} - -.my-n4 { - margin-top: -1.5rem !important; - margin-bottom: -1.5rem !important -} - -.my-n5 { - margin-top: -3rem !important; - margin-bottom: -3rem !important -} - -.my-n6 { - margin-top: -4.5rem !important; - margin-bottom: -4.5rem !important -} - -.my-n7 { - margin-top: -6rem !important; - margin-bottom: -6rem !important -} - -.mt-n1 { - margin-top: -.25rem !important -} - -.mt-n2 { - margin-top: -.5rem !important -} - -.mt-n3 { - margin-top: -1rem !important -} - -.mt-n4 { - margin-top: -1.5rem !important -} - -.mt-n5 { - margin-top: -3rem !important -} - -.mt-n6 { - margin-top: -4.5rem !important -} - -.mt-n7 { - margin-top: -6rem !important -} - -.mr-n1 { - margin-right: -.25rem !important -} - -.mr-n2 { - margin-right: -.5rem !important -} - -.mr-n3 { - margin-right: -1rem !important -} - -.mr-n4 { - margin-right: -1.5rem !important -} - -.mr-n5 { - margin-right: -3rem !important -} - -.mr-n6 { - margin-right: -4.5rem !important -} - -.mr-n7 { - margin-right: -6rem !important -} - -.mb-n1 { - margin-bottom: -.25rem !important -} - -.mb-n2 { - margin-bottom: -.5rem !important -} - -.mb-n3 { - margin-bottom: -1rem !important -} - -.mb-n4 { - margin-bottom: -1.5rem !important -} - -.mb-n5 { - margin-bottom: -3rem !important -} - -.mb-n6 { - margin-bottom: -4.5rem !important -} - -.mb-n7 { - margin-bottom: -6rem !important -} - -.ml-n1 { - margin-left: -.25rem !important -} - -.ml-n2 { - margin-left: -.5rem !important -} - -.ml-n3 { - margin-left: -1rem !important -} - -.ml-n4 { - margin-left: -1.5rem !important -} - -.ml-n5 { - margin-left: -3rem !important -} - -.ml-n6 { - margin-left: -4.5rem !important -} - -.ml-n7 { - margin-left: -6rem !important -} - -.p-0 { - padding: 0 !important -} - -.p-1 { - padding: .25rem !important -} - -.p-2 { - padding: .5rem !important -} - -.p-3 { - padding: 1rem !important -} - -.p-4 { - padding: 1.5rem !important -} - -.p-5 { - padding: 3rem !important -} - -.p-6 { - padding: 4.5rem !important -} - -.p-7 { - padding: 6rem !important -} - -.px-0 { - padding-right: 0 !important; - padding-left: 0 !important -} - -.px-1 { - padding-right: .25rem !important; - padding-left: .25rem !important -} - -.px-2 { - padding-right: .5rem !important; - padding-left: .5rem !important -} - -.px-3 { - padding-right: 1rem !important; - padding-left: 1rem !important -} - -.px-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important -} - -.px-5 { - padding-right: 3rem !important; - padding-left: 3rem !important -} - -.px-6 { - padding-right: 4.5rem !important; - padding-left: 4.5rem !important -} - -.px-7 { - padding-right: 6rem !important; - padding-left: 6rem !important -} - -.py-0 { - padding-top: 0 !important; - padding-bottom: 0 !important -} - -.py-1 { - padding-top: .25rem !important; - padding-bottom: .25rem !important -} - -.py-2 { - padding-top: .5rem !important; - padding-bottom: .5rem !important -} - -.py-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important -} - -.py-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important -} - -.py-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important -} - -.py-6 { - padding-top: 4.5rem !important; - padding-bottom: 4.5rem !important -} - -.py-7 { - padding-top: 6rem !important; - padding-bottom: 6rem !important -} - -.pt-0 { - padding-top: 0 !important -} - -.pt-1 { - padding-top: .25rem !important -} - -.pt-2 { - padding-top: .5rem !important -} - -.pt-3 { - padding-top: 1rem !important -} - -.pt-4 { - padding-top: 1.5rem !important -} - -.pt-5 { - padding-top: 3rem !important -} - -.pt-6 { - padding-top: 4.5rem !important -} - -.pt-7 { - padding-top: 6rem !important -} - -.pr-0 { - padding-right: 0 !important -} - -.pr-1 { - padding-right: .25rem !important -} - -.pr-2 { - padding-right: .5rem !important -} - -.pr-3 { - padding-right: 1rem !important -} - -.pr-4 { - padding-right: 1.5rem !important -} - -.pr-5 { - padding-right: 3rem !important -} - -.pr-6 { - padding-right: 4.5rem !important -} - -.pr-7 { - padding-right: 6rem !important -} - -.pb-0 { - padding-bottom: 0 !important -} - -.pb-1 { - padding-bottom: .25rem !important -} - -.pb-2 { - padding-bottom: .5rem !important -} - -.pb-3 { - padding-bottom: 1rem !important -} - -.pb-4 { - padding-bottom: 1.5rem !important -} - -.pb-5 { - padding-bottom: 3rem !important -} - -.pb-6 { - padding-bottom: 4.5rem !important -} - -.pb-7 { - padding-bottom: 6rem !important -} - -.pl-0 { - padding-left: 0 !important -} - -.pl-1 { - padding-left: .25rem !important -} - -.pl-2 { - padding-left: .5rem !important -} - -.pl-3 { - padding-left: 1rem !important -} - -.pl-4 { - padding-left: 1.5rem !important -} - -.pl-5 { - padding-left: 3rem !important -} - -.pl-6 { - padding-left: 4.5rem !important -} - -.pl-7 { - padding-left: 6rem !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: 600 !important -} - -.font-weight-bolder { - font-weight: bolder !important -} - -.text-lowercase { - text-transform: lowercase !important -} - -.text-uppercase { - text-transform: uppercase !important -} - -.text-capitalize { - text-transform: capitalize !important -} - -.text-left { - text-align: left !important -} - -.text-right { - text-align: right !important -} - -.text-center { - text-align: center !important -} - -.text-primary { - color: #3b7ddd !important -} - -.text-secondary { - color: #6c757d !important -} - -.text-success { - color: #28a745 !important -} - -.text-info { - color: #17a2b8 !important -} - -.text-warning { - color: #ffc107 !important -} - -.text-danger { - color: #dc3545 !important -} - -.text-light { - color: #f8f9fa !important -} - -.text-dark { - color: #212529 !important -} - -.text-white { - color: #fff !important -} - -.text-body { - color: #495057 !important -} - -.text-muted { - color: #6c757d !important -} - -.text-black-50 { - color: rgba(0, 0, 0, .5) !important -} - -.text-white-50 { - color: hsla(0, 0%, 100%, .5) !important -} - -.text-reset { - color: inherit !important -} - -.lh-1 { - line-height: 1 !important -} - -.lh-base, .lh-lg, .lh-sm { - line-height: 1.5 !important -} - -.bg-primary { - background-color: #3b7ddd !important -} - -.bg-secondary { - background-color: #6c757d !important -} - -.bg-success { - background-color: #28a745 !important -} - -.bg-info { - background-color: #17a2b8 !important -} - -.bg-warning { - background-color: #ffc107 !important -} - -.bg-danger { - background-color: #dc3545 !important -} - -.bg-light { - background-color: #f8f9fa !important -} - -.bg-dark { - background-color: #212529 !important -} - -.bg-body { - background-color: #f7f7fc !important -} - -.bg-white { - background-color: #fff !important -} - -.bg-transparent { - background-color: transparent !important -} - -.bg-gradient { - background-image: var(--bs-gradient) !important -} - -.text-wrap { - white-space: normal !important -} - -.text-nowrap { - white-space: nowrap !important -} - -.text-decoration-none { - text-decoration: none !important -} - -.text-decoration-underline { - text-decoration: underline !important -} - -.text-decoration-line-through { - text-decoration: line-through !important -} - -.font-italic { - font-style: italic !important -} - -.font-normal { - font-style: normal !important -} - -.text-break { - word-wrap: break-word !important; - word-break: break-word !important -} - -.font-monospace { - font-family: var(--bs-font-monospace) !important -} - -.user-select-all { - -webkit-user-select: all !important; - -ms-user-select: all !important; - user-select: all !important -} - -.user-select-auto { - -webkit-user-select: auto !important; - -ms-user-select: auto !important; - user-select: auto !important -} - -.user-select-none { - -webkit-user-select: none !important; - -ms-user-select: none !important; - user-select: none !important -} - -.pe-none { - pointer-events: none !important -} - -.pe-auto { - pointer-events: auto !important -} - -.rounded { - border-radius: .2rem !important -} - -.rounded-circle { - border-radius: 50% !important -} - -.rounded-pill { - border-radius: 50rem !important -} - -.rounded-0 { - border-radius: 0 !important -} - -.rounded-top { - border-top-left-radius: .2rem !important -} - -.rounded-right, .rounded-top { - border-top-right-radius: .2rem !important -} - -.rounded-bottom, .rounded-right { - border-bottom-right-radius: .2rem !important -} - -.rounded-bottom, .rounded-left { - border-bottom-left-radius: .2rem !important -} - -.rounded-left { - border-top-left-radius: .2rem !important -} - -.visible { - visibility: visible !important -} - -.invisible { - visibility: hidden !important -} - -@media (min-width: 576px) { - .float-sm-left { - float: left !important - } - - .float-sm-right { - float: right !important - } - - .float-sm-none { - float: 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: flex !important - } - - .d-sm-inline-flex { - display: inline-flex !important - } - - .d-sm-none { - display: none !important - } - - .flex-sm-fill { - flex: 1 1 auto !important - } - - .flex-sm-row { - flex-direction: row !important - } - - .flex-sm-column { - flex-direction: column !important - } - - .flex-sm-row-reverse { - flex-direction: row-reverse !important - } - - .flex-sm-column-reverse { - flex-direction: column-reverse !important - } - - .flex-sm-grow-0 { - flex-grow: 0 !important - } - - .flex-sm-grow-1 { - flex-grow: 1 !important - } - - .flex-sm-shrink-0 { - flex-shrink: 0 !important - } - - .flex-sm-shrink-1 { - flex-shrink: 1 !important - } - - .flex-sm-wrap { - flex-wrap: wrap !important - } - - .flex-sm-nowrap { - flex-wrap: nowrap !important - } - - .flex-sm-wrap-reverse { - flex-wrap: wrap-reverse !important - } - - .justify-content-sm-start { - justify-content: flex-start !important - } - - .justify-content-sm-end { - justify-content: flex-end !important - } - - .justify-content-sm-center { - justify-content: center !important - } - - .justify-content-sm-between { - justify-content: space-between !important - } - - .justify-content-sm-around { - justify-content: space-around !important - } - - .justify-content-sm-evenly { - justify-content: space-evenly !important - } - - .align-items-sm-start { - align-items: flex-start !important - } - - .align-items-sm-end { - align-items: flex-end !important - } - - .align-items-sm-center { - align-items: center !important - } - - .align-items-sm-baseline { - align-items: baseline !important - } - - .align-items-sm-stretch { - align-items: stretch !important - } - - .align-content-sm-start { - align-content: flex-start !important - } - - .align-content-sm-end { - align-content: flex-end !important - } - - .align-content-sm-center { - align-content: center !important - } - - .align-content-sm-between { - align-content: space-between !important - } - - .align-content-sm-around { - align-content: space-around !important - } - - .align-content-sm-stretch { - align-content: stretch !important - } - - .align-self-sm-auto { - align-self: auto !important - } - - .align-self-sm-start { - align-self: flex-start !important - } - - .align-self-sm-end { - align-self: flex-end !important - } - - .align-self-sm-center { - align-self: center !important - } - - .align-self-sm-baseline { - align-self: baseline !important - } - - .align-self-sm-stretch { - align-self: stretch !important - } - - .order-sm-first { - order: -1 !important - } - - .order-sm-0 { - order: 0 !important - } - - .order-sm-1 { - order: 1 !important - } - - .order-sm-2 { - order: 2 !important - } - - .order-sm-3 { - order: 3 !important - } - - .order-sm-4 { - order: 4 !important - } - - .order-sm-5 { - order: 5 !important - } - - .order-sm-last { - order: 6 !important - } - - .m-sm-0 { - margin: 0 !important - } - - .m-sm-1 { - margin: .25rem !important - } - - .m-sm-2 { - margin: .5rem !important - } - - .m-sm-3 { - margin: 1rem !important - } - - .m-sm-4 { - margin: 1.5rem !important - } - - .m-sm-5 { - margin: 3rem !important - } - - .m-sm-6 { - margin: 4.5rem !important - } - - .m-sm-7 { - margin: 6rem !important - } - - .m-sm-auto { - margin: auto !important - } - - .mx-sm-0 { - margin-right: 0 !important; - margin-left: 0 !important - } - - .mx-sm-1 { - margin-right: .25rem !important; - margin-left: .25rem !important - } - - .mx-sm-2 { - margin-right: .5rem !important; - margin-left: .5rem !important - } - - .mx-sm-3 { - margin-right: 1rem !important; - margin-left: 1rem !important - } - - .mx-sm-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important - } - - .mx-sm-5 { - margin-right: 3rem !important; - margin-left: 3rem !important - } - - .mx-sm-6 { - margin-right: 4.5rem !important; - margin-left: 4.5rem !important - } - - .mx-sm-7 { - margin-right: 6rem !important; - margin-left: 6rem !important - } - - .mx-sm-auto { - margin-right: auto !important; - margin-left: auto !important - } - - .my-sm-0 { - margin-top: 0 !important; - margin-bottom: 0 !important - } - - .my-sm-1 { - margin-top: .25rem !important; - margin-bottom: .25rem !important - } - - .my-sm-2 { - margin-top: .5rem !important; - margin-bottom: .5rem !important - } - - .my-sm-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important - } - - .my-sm-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important - } - - .my-sm-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important - } - - .my-sm-6 { - margin-top: 4.5rem !important; - margin-bottom: 4.5rem !important - } - - .my-sm-7 { - margin-top: 6rem !important; - margin-bottom: 6rem !important - } - - .my-sm-auto { - margin-top: auto !important; - margin-bottom: auto !important - } - - .mt-sm-0 { - margin-top: 0 !important - } - - .mt-sm-1 { - margin-top: .25rem !important - } - - .mt-sm-2 { - margin-top: .5rem !important - } - - .mt-sm-3 { - margin-top: 1rem !important - } - - .mt-sm-4 { - margin-top: 1.5rem !important - } - - .mt-sm-5 { - margin-top: 3rem !important - } - - .mt-sm-6 { - margin-top: 4.5rem !important - } - - .mt-sm-7 { - margin-top: 6rem !important - } - - .mt-sm-auto { - margin-top: auto !important - } - - .mr-sm-0 { - margin-right: 0 !important - } - - .mr-sm-1 { - margin-right: .25rem !important - } - - .mr-sm-2 { - margin-right: .5rem !important - } - - .mr-sm-3 { - margin-right: 1rem !important - } - - .mr-sm-4 { - margin-right: 1.5rem !important - } - - .mr-sm-5 { - margin-right: 3rem !important - } - - .mr-sm-6 { - margin-right: 4.5rem !important - } - - .mr-sm-7 { - margin-right: 6rem !important - } - - .mr-sm-auto { - margin-right: auto !important - } - - .mb-sm-0 { - margin-bottom: 0 !important - } - - .mb-sm-1 { - margin-bottom: .25rem !important - } - - .mb-sm-2 { - margin-bottom: .5rem !important - } - - .mb-sm-3 { - margin-bottom: 1rem !important - } - - .mb-sm-4 { - margin-bottom: 1.5rem !important - } - - .mb-sm-5 { - margin-bottom: 3rem !important - } - - .mb-sm-6 { - margin-bottom: 4.5rem !important - } - - .mb-sm-7 { - margin-bottom: 6rem !important - } - - .mb-sm-auto { - margin-bottom: auto !important - } - - .ml-sm-0 { - margin-left: 0 !important - } - - .ml-sm-1 { - margin-left: .25rem !important - } - - .ml-sm-2 { - margin-left: .5rem !important - } - - .ml-sm-3 { - margin-left: 1rem !important - } - - .ml-sm-4 { - margin-left: 1.5rem !important - } - - .ml-sm-5 { - margin-left: 3rem !important - } - - .ml-sm-6 { - margin-left: 4.5rem !important - } - - .ml-sm-7 { - margin-left: 6rem !important - } - - .ml-sm-auto { - margin-left: auto !important - } - - .m-sm-n1 { - margin: -.25rem !important - } - - .m-sm-n2 { - margin: -.5rem !important - } - - .m-sm-n3 { - margin: -1rem !important - } - - .m-sm-n4 { - margin: -1.5rem !important - } - - .m-sm-n5 { - margin: -3rem !important - } - - .m-sm-n6 { - margin: -4.5rem !important - } - - .m-sm-n7 { - margin: -6rem !important - } - - .mx-sm-n1 { - margin-right: -.25rem !important; - margin-left: -.25rem !important - } - - .mx-sm-n2 { - margin-right: -.5rem !important; - margin-left: -.5rem !important - } - - .mx-sm-n3 { - margin-right: -1rem !important; - margin-left: -1rem !important - } - - .mx-sm-n4 { - margin-right: -1.5rem !important; - margin-left: -1.5rem !important - } - - .mx-sm-n5 { - margin-right: -3rem !important; - margin-left: -3rem !important - } - - .mx-sm-n6 { - margin-right: -4.5rem !important; - margin-left: -4.5rem !important - } - - .mx-sm-n7 { - margin-right: -6rem !important; - margin-left: -6rem !important - } - - .my-sm-n1 { - margin-top: -.25rem !important; - margin-bottom: -.25rem !important - } - - .my-sm-n2 { - margin-top: -.5rem !important; - margin-bottom: -.5rem !important - } - - .my-sm-n3 { - margin-top: -1rem !important; - margin-bottom: -1rem !important - } - - .my-sm-n4 { - margin-top: -1.5rem !important; - margin-bottom: -1.5rem !important - } - - .my-sm-n5 { - margin-top: -3rem !important; - margin-bottom: -3rem !important - } - - .my-sm-n6 { - margin-top: -4.5rem !important; - margin-bottom: -4.5rem !important - } - - .my-sm-n7 { - margin-top: -6rem !important; - margin-bottom: -6rem !important - } - - .mt-sm-n1 { - margin-top: -.25rem !important - } - - .mt-sm-n2 { - margin-top: -.5rem !important - } - - .mt-sm-n3 { - margin-top: -1rem !important - } - - .mt-sm-n4 { - margin-top: -1.5rem !important - } - - .mt-sm-n5 { - margin-top: -3rem !important - } - - .mt-sm-n6 { - margin-top: -4.5rem !important - } - - .mt-sm-n7 { - margin-top: -6rem !important - } - - .mr-sm-n1 { - margin-right: -.25rem !important - } - - .mr-sm-n2 { - margin-right: -.5rem !important - } - - .mr-sm-n3 { - margin-right: -1rem !important - } - - .mr-sm-n4 { - margin-right: -1.5rem !important - } - - .mr-sm-n5 { - margin-right: -3rem !important - } - - .mr-sm-n6 { - margin-right: -4.5rem !important - } - - .mr-sm-n7 { - margin-right: -6rem !important - } - - .mb-sm-n1 { - margin-bottom: -.25rem !important - } - - .mb-sm-n2 { - margin-bottom: -.5rem !important - } - - .mb-sm-n3 { - margin-bottom: -1rem !important - } - - .mb-sm-n4 { - margin-bottom: -1.5rem !important - } - - .mb-sm-n5 { - margin-bottom: -3rem !important - } - - .mb-sm-n6 { - margin-bottom: -4.5rem !important - } - - .mb-sm-n7 { - margin-bottom: -6rem !important - } - - .ml-sm-n1 { - margin-left: -.25rem !important - } - - .ml-sm-n2 { - margin-left: -.5rem !important - } - - .ml-sm-n3 { - margin-left: -1rem !important - } - - .ml-sm-n4 { - margin-left: -1.5rem !important - } - - .ml-sm-n5 { - margin-left: -3rem !important - } - - .ml-sm-n6 { - margin-left: -4.5rem !important - } - - .ml-sm-n7 { - margin-left: -6rem !important - } - - .p-sm-0 { - padding: 0 !important - } - - .p-sm-1 { - padding: .25rem !important - } - - .p-sm-2 { - padding: .5rem !important - } - - .p-sm-3 { - padding: 1rem !important - } - - .p-sm-4 { - padding: 1.5rem !important - } - - .p-sm-5 { - padding: 3rem !important - } - - .p-sm-6 { - padding: 4.5rem !important - } - - .p-sm-7 { - padding: 6rem !important - } - - .px-sm-0 { - padding-right: 0 !important; - padding-left: 0 !important - } - - .px-sm-1 { - padding-right: .25rem !important; - padding-left: .25rem !important - } - - .px-sm-2 { - padding-right: .5rem !important; - padding-left: .5rem !important - } - - .px-sm-3 { - padding-right: 1rem !important; - padding-left: 1rem !important - } - - .px-sm-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important - } - - .px-sm-5 { - padding-right: 3rem !important; - padding-left: 3rem !important - } - - .px-sm-6 { - padding-right: 4.5rem !important; - padding-left: 4.5rem !important - } - - .px-sm-7 { - padding-right: 6rem !important; - padding-left: 6rem !important - } - - .py-sm-0 { - padding-top: 0 !important; - padding-bottom: 0 !important - } - - .py-sm-1 { - padding-top: .25rem !important; - padding-bottom: .25rem !important - } - - .py-sm-2 { - padding-top: .5rem !important; - padding-bottom: .5rem !important - } - - .py-sm-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important - } - - .py-sm-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important - } - - .py-sm-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important - } - - .py-sm-6 { - padding-top: 4.5rem !important; - padding-bottom: 4.5rem !important - } - - .py-sm-7 { - padding-top: 6rem !important; - padding-bottom: 6rem !important - } - - .pt-sm-0 { - padding-top: 0 !important - } - - .pt-sm-1 { - padding-top: .25rem !important - } - - .pt-sm-2 { - padding-top: .5rem !important - } - - .pt-sm-3 { - padding-top: 1rem !important - } - - .pt-sm-4 { - padding-top: 1.5rem !important - } - - .pt-sm-5 { - padding-top: 3rem !important - } - - .pt-sm-6 { - padding-top: 4.5rem !important - } - - .pt-sm-7 { - padding-top: 6rem !important - } - - .pr-sm-0 { - padding-right: 0 !important - } - - .pr-sm-1 { - padding-right: .25rem !important - } - - .pr-sm-2 { - padding-right: .5rem !important - } - - .pr-sm-3 { - padding-right: 1rem !important - } - - .pr-sm-4 { - padding-right: 1.5rem !important - } - - .pr-sm-5 { - padding-right: 3rem !important - } - - .pr-sm-6 { - padding-right: 4.5rem !important - } - - .pr-sm-7 { - padding-right: 6rem !important - } - - .pb-sm-0 { - padding-bottom: 0 !important - } - - .pb-sm-1 { - padding-bottom: .25rem !important - } - - .pb-sm-2 { - padding-bottom: .5rem !important - } - - .pb-sm-3 { - padding-bottom: 1rem !important - } - - .pb-sm-4 { - padding-bottom: 1.5rem !important - } - - .pb-sm-5 { - padding-bottom: 3rem !important - } - - .pb-sm-6 { - padding-bottom: 4.5rem !important - } - - .pb-sm-7 { - padding-bottom: 6rem !important - } - - .pl-sm-0 { - padding-left: 0 !important - } - - .pl-sm-1 { - padding-left: .25rem !important - } - - .pl-sm-2 { - padding-left: .5rem !important - } - - .pl-sm-3 { - padding-left: 1rem !important - } - - .pl-sm-4 { - padding-left: 1.5rem !important - } - - .pl-sm-5 { - padding-left: 3rem !important - } - - .pl-sm-6 { - padding-left: 4.5rem !important - } - - .pl-sm-7 { - padding-left: 6rem !important - } - - .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) { - .float-md-left { - float: left !important - } - - .float-md-right { - float: right !important - } - - .float-md-none { - float: 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: flex !important - } - - .d-md-inline-flex { - display: inline-flex !important - } - - .d-md-none { - display: none !important - } - - .flex-md-fill { - flex: 1 1 auto !important - } - - .flex-md-row { - flex-direction: row !important - } - - .flex-md-column { - flex-direction: column !important - } - - .flex-md-row-reverse { - flex-direction: row-reverse !important - } - - .flex-md-column-reverse { - flex-direction: column-reverse !important - } - - .flex-md-grow-0 { - flex-grow: 0 !important - } - - .flex-md-grow-1 { - flex-grow: 1 !important - } - - .flex-md-shrink-0 { - flex-shrink: 0 !important - } - - .flex-md-shrink-1 { - flex-shrink: 1 !important - } - - .flex-md-wrap { - flex-wrap: wrap !important - } - - .flex-md-nowrap { - flex-wrap: nowrap !important - } - - .flex-md-wrap-reverse { - flex-wrap: wrap-reverse !important - } - - .justify-content-md-start { - justify-content: flex-start !important - } - - .justify-content-md-end { - justify-content: flex-end !important - } - - .justify-content-md-center { - justify-content: center !important - } - - .justify-content-md-between { - justify-content: space-between !important - } - - .justify-content-md-around { - justify-content: space-around !important - } - - .justify-content-md-evenly { - justify-content: space-evenly !important - } - - .align-items-md-start { - align-items: flex-start !important - } - - .align-items-md-end { - align-items: flex-end !important - } - - .align-items-md-center { - align-items: center !important - } - - .align-items-md-baseline { - align-items: baseline !important - } - - .align-items-md-stretch { - align-items: stretch !important - } - - .align-content-md-start { - align-content: flex-start !important - } - - .align-content-md-end { - align-content: flex-end !important - } - - .align-content-md-center { - align-content: center !important - } - - .align-content-md-between { - align-content: space-between !important - } - - .align-content-md-around { - align-content: space-around !important - } - - .align-content-md-stretch { - align-content: stretch !important - } - - .align-self-md-auto { - align-self: auto !important - } - - .align-self-md-start { - align-self: flex-start !important - } - - .align-self-md-end { - align-self: flex-end !important - } - - .align-self-md-center { - align-self: center !important - } - - .align-self-md-baseline { - align-self: baseline !important - } - - .align-self-md-stretch { - align-self: stretch !important - } - - .order-md-first { - order: -1 !important - } - - .order-md-0 { - order: 0 !important - } - - .order-md-1 { - order: 1 !important - } - - .order-md-2 { - order: 2 !important - } - - .order-md-3 { - order: 3 !important - } - - .order-md-4 { - order: 4 !important - } - - .order-md-5 { - order: 5 !important - } - - .order-md-last { - order: 6 !important - } - - .m-md-0 { - margin: 0 !important - } - - .m-md-1 { - margin: .25rem !important - } - - .m-md-2 { - margin: .5rem !important - } - - .m-md-3 { - margin: 1rem !important - } - - .m-md-4 { - margin: 1.5rem !important - } - - .m-md-5 { - margin: 3rem !important - } - - .m-md-6 { - margin: 4.5rem !important - } - - .m-md-7 { - margin: 6rem !important - } - - .m-md-auto { - margin: auto !important - } - - .mx-md-0 { - margin-right: 0 !important; - margin-left: 0 !important - } - - .mx-md-1 { - margin-right: .25rem !important; - margin-left: .25rem !important - } - - .mx-md-2 { - margin-right: .5rem !important; - margin-left: .5rem !important - } - - .mx-md-3 { - margin-right: 1rem !important; - margin-left: 1rem !important - } - - .mx-md-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important - } - - .mx-md-5 { - margin-right: 3rem !important; - margin-left: 3rem !important - } - - .mx-md-6 { - margin-right: 4.5rem !important; - margin-left: 4.5rem !important - } - - .mx-md-7 { - margin-right: 6rem !important; - margin-left: 6rem !important - } - - .mx-md-auto { - margin-right: auto !important; - margin-left: auto !important - } - - .my-md-0 { - margin-top: 0 !important; - margin-bottom: 0 !important - } - - .my-md-1 { - margin-top: .25rem !important; - margin-bottom: .25rem !important - } - - .my-md-2 { - margin-top: .5rem !important; - margin-bottom: .5rem !important - } - - .my-md-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important - } - - .my-md-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important - } - - .my-md-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important - } - - .my-md-6 { - margin-top: 4.5rem !important; - margin-bottom: 4.5rem !important - } - - .my-md-7 { - margin-top: 6rem !important; - margin-bottom: 6rem !important - } - - .my-md-auto { - margin-top: auto !important; - margin-bottom: auto !important - } - - .mt-md-0 { - margin-top: 0 !important - } - - .mt-md-1 { - margin-top: .25rem !important - } - - .mt-md-2 { - margin-top: .5rem !important - } - - .mt-md-3 { - margin-top: 1rem !important - } - - .mt-md-4 { - margin-top: 1.5rem !important - } - - .mt-md-5 { - margin-top: 3rem !important - } - - .mt-md-6 { - margin-top: 4.5rem !important - } - - .mt-md-7 { - margin-top: 6rem !important - } - - .mt-md-auto { - margin-top: auto !important - } - - .mr-md-0 { - margin-right: 0 !important - } - - .mr-md-1 { - margin-right: .25rem !important - } - - .mr-md-2 { - margin-right: .5rem !important - } - - .mr-md-3 { - margin-right: 1rem !important - } - - .mr-md-4 { - margin-right: 1.5rem !important - } - - .mr-md-5 { - margin-right: 3rem !important - } - - .mr-md-6 { - margin-right: 4.5rem !important - } - - .mr-md-7 { - margin-right: 6rem !important - } - - .mr-md-auto { - margin-right: auto !important - } - - .mb-md-0 { - margin-bottom: 0 !important - } - - .mb-md-1 { - margin-bottom: .25rem !important - } - - .mb-md-2 { - margin-bottom: .5rem !important - } - - .mb-md-3 { - margin-bottom: 1rem !important - } - - .mb-md-4 { - margin-bottom: 1.5rem !important - } - - .mb-md-5 { - margin-bottom: 3rem !important - } - - .mb-md-6 { - margin-bottom: 4.5rem !important - } - - .mb-md-7 { - margin-bottom: 6rem !important - } - - .mb-md-auto { - margin-bottom: auto !important - } - - .ml-md-0 { - margin-left: 0 !important - } - - .ml-md-1 { - margin-left: .25rem !important - } - - .ml-md-2 { - margin-left: .5rem !important - } - - .ml-md-3 { - margin-left: 1rem !important - } - - .ml-md-4 { - margin-left: 1.5rem !important - } - - .ml-md-5 { - margin-left: 3rem !important - } - - .ml-md-6 { - margin-left: 4.5rem !important - } - - .ml-md-7 { - margin-left: 6rem !important - } - - .ml-md-auto { - margin-left: auto !important - } - - .m-md-n1 { - margin: -.25rem !important - } - - .m-md-n2 { - margin: -.5rem !important - } - - .m-md-n3 { - margin: -1rem !important - } - - .m-md-n4 { - margin: -1.5rem !important - } - - .m-md-n5 { - margin: -3rem !important - } - - .m-md-n6 { - margin: -4.5rem !important - } - - .m-md-n7 { - margin: -6rem !important - } - - .mx-md-n1 { - margin-right: -.25rem !important; - margin-left: -.25rem !important - } - - .mx-md-n2 { - margin-right: -.5rem !important; - margin-left: -.5rem !important - } - - .mx-md-n3 { - margin-right: -1rem !important; - margin-left: -1rem !important - } - - .mx-md-n4 { - margin-right: -1.5rem !important; - margin-left: -1.5rem !important - } - - .mx-md-n5 { - margin-right: -3rem !important; - margin-left: -3rem !important - } - - .mx-md-n6 { - margin-right: -4.5rem !important; - margin-left: -4.5rem !important - } - - .mx-md-n7 { - margin-right: -6rem !important; - margin-left: -6rem !important - } - - .my-md-n1 { - margin-top: -.25rem !important; - margin-bottom: -.25rem !important - } - - .my-md-n2 { - margin-top: -.5rem !important; - margin-bottom: -.5rem !important - } - - .my-md-n3 { - margin-top: -1rem !important; - margin-bottom: -1rem !important - } - - .my-md-n4 { - margin-top: -1.5rem !important; - margin-bottom: -1.5rem !important - } - - .my-md-n5 { - margin-top: -3rem !important; - margin-bottom: -3rem !important - } - - .my-md-n6 { - margin-top: -4.5rem !important; - margin-bottom: -4.5rem !important - } - - .my-md-n7 { - margin-top: -6rem !important; - margin-bottom: -6rem !important - } - - .mt-md-n1 { - margin-top: -.25rem !important - } - - .mt-md-n2 { - margin-top: -.5rem !important - } - - .mt-md-n3 { - margin-top: -1rem !important - } - - .mt-md-n4 { - margin-top: -1.5rem !important - } - - .mt-md-n5 { - margin-top: -3rem !important - } - - .mt-md-n6 { - margin-top: -4.5rem !important - } - - .mt-md-n7 { - margin-top: -6rem !important - } - - .mr-md-n1 { - margin-right: -.25rem !important - } - - .mr-md-n2 { - margin-right: -.5rem !important - } - - .mr-md-n3 { - margin-right: -1rem !important - } - - .mr-md-n4 { - margin-right: -1.5rem !important - } - - .mr-md-n5 { - margin-right: -3rem !important - } - - .mr-md-n6 { - margin-right: -4.5rem !important - } - - .mr-md-n7 { - margin-right: -6rem !important - } - - .mb-md-n1 { - margin-bottom: -.25rem !important - } - - .mb-md-n2 { - margin-bottom: -.5rem !important - } - - .mb-md-n3 { - margin-bottom: -1rem !important - } - - .mb-md-n4 { - margin-bottom: -1.5rem !important - } - - .mb-md-n5 { - margin-bottom: -3rem !important - } - - .mb-md-n6 { - margin-bottom: -4.5rem !important - } - - .mb-md-n7 { - margin-bottom: -6rem !important - } - - .ml-md-n1 { - margin-left: -.25rem !important - } - - .ml-md-n2 { - margin-left: -.5rem !important - } - - .ml-md-n3 { - margin-left: -1rem !important - } - - .ml-md-n4 { - margin-left: -1.5rem !important - } - - .ml-md-n5 { - margin-left: -3rem !important - } - - .ml-md-n6 { - margin-left: -4.5rem !important - } - - .ml-md-n7 { - margin-left: -6rem !important - } - - .p-md-0 { - padding: 0 !important - } - - .p-md-1 { - padding: .25rem !important - } - - .p-md-2 { - padding: .5rem !important - } - - .p-md-3 { - padding: 1rem !important - } - - .p-md-4 { - padding: 1.5rem !important - } - - .p-md-5 { - padding: 3rem !important - } - - .p-md-6 { - padding: 4.5rem !important - } - - .p-md-7 { - padding: 6rem !important - } - - .px-md-0 { - padding-right: 0 !important; - padding-left: 0 !important - } - - .px-md-1 { - padding-right: .25rem !important; - padding-left: .25rem !important - } - - .px-md-2 { - padding-right: .5rem !important; - padding-left: .5rem !important - } - - .px-md-3 { - padding-right: 1rem !important; - padding-left: 1rem !important - } - - .px-md-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important - } - - .px-md-5 { - padding-right: 3rem !important; - padding-left: 3rem !important - } - - .px-md-6 { - padding-right: 4.5rem !important; - padding-left: 4.5rem !important - } - - .px-md-7 { - padding-right: 6rem !important; - padding-left: 6rem !important - } - - .py-md-0 { - padding-top: 0 !important; - padding-bottom: 0 !important - } - - .py-md-1 { - padding-top: .25rem !important; - padding-bottom: .25rem !important - } - - .py-md-2 { - padding-top: .5rem !important; - padding-bottom: .5rem !important - } - - .py-md-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important - } - - .py-md-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important - } - - .py-md-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important - } - - .py-md-6 { - padding-top: 4.5rem !important; - padding-bottom: 4.5rem !important - } - - .py-md-7 { - padding-top: 6rem !important; - padding-bottom: 6rem !important - } - - .pt-md-0 { - padding-top: 0 !important - } - - .pt-md-1 { - padding-top: .25rem !important - } - - .pt-md-2 { - padding-top: .5rem !important - } - - .pt-md-3 { - padding-top: 1rem !important - } - - .pt-md-4 { - padding-top: 1.5rem !important - } - - .pt-md-5 { - padding-top: 3rem !important - } - - .pt-md-6 { - padding-top: 4.5rem !important - } - - .pt-md-7 { - padding-top: 6rem !important - } - - .pr-md-0 { - padding-right: 0 !important - } - - .pr-md-1 { - padding-right: .25rem !important - } - - .pr-md-2 { - padding-right: .5rem !important - } - - .pr-md-3 { - padding-right: 1rem !important - } - - .pr-md-4 { - padding-right: 1.5rem !important - } - - .pr-md-5 { - padding-right: 3rem !important - } - - .pr-md-6 { - padding-right: 4.5rem !important - } - - .pr-md-7 { - padding-right: 6rem !important - } - - .pb-md-0 { - padding-bottom: 0 !important - } - - .pb-md-1 { - padding-bottom: .25rem !important - } - - .pb-md-2 { - padding-bottom: .5rem !important - } - - .pb-md-3 { - padding-bottom: 1rem !important - } - - .pb-md-4 { - padding-bottom: 1.5rem !important - } - - .pb-md-5 { - padding-bottom: 3rem !important - } - - .pb-md-6 { - padding-bottom: 4.5rem !important - } - - .pb-md-7 { - padding-bottom: 6rem !important - } - - .pl-md-0 { - padding-left: 0 !important - } - - .pl-md-1 { - padding-left: .25rem !important - } - - .pl-md-2 { - padding-left: .5rem !important - } - - .pl-md-3 { - padding-left: 1rem !important - } - - .pl-md-4 { - padding-left: 1.5rem !important - } - - .pl-md-5 { - padding-left: 3rem !important - } - - .pl-md-6 { - padding-left: 4.5rem !important - } - - .pl-md-7 { - padding-left: 6rem !important - } - - .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) { - .float-lg-left { - float: left !important - } - - .float-lg-right { - float: right !important - } - - .float-lg-none { - float: 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: flex !important - } - - .d-lg-inline-flex { - display: inline-flex !important - } - - .d-lg-none { - display: none !important - } - - .flex-lg-fill { - flex: 1 1 auto !important - } - - .flex-lg-row { - flex-direction: row !important - } - - .flex-lg-column { - flex-direction: column !important - } - - .flex-lg-row-reverse { - flex-direction: row-reverse !important - } - - .flex-lg-column-reverse { - flex-direction: column-reverse !important - } - - .flex-lg-grow-0 { - flex-grow: 0 !important - } - - .flex-lg-grow-1 { - flex-grow: 1 !important - } - - .flex-lg-shrink-0 { - flex-shrink: 0 !important - } - - .flex-lg-shrink-1 { - flex-shrink: 1 !important - } - - .flex-lg-wrap { - flex-wrap: wrap !important - } - - .flex-lg-nowrap { - flex-wrap: nowrap !important - } - - .flex-lg-wrap-reverse { - flex-wrap: wrap-reverse !important - } - - .justify-content-lg-start { - justify-content: flex-start !important - } - - .justify-content-lg-end { - justify-content: flex-end !important - } - - .justify-content-lg-center { - justify-content: center !important - } - - .justify-content-lg-between { - justify-content: space-between !important - } - - .justify-content-lg-around { - justify-content: space-around !important - } - - .justify-content-lg-evenly { - justify-content: space-evenly !important - } - - .align-items-lg-start { - align-items: flex-start !important - } - - .align-items-lg-end { - align-items: flex-end !important - } - - .align-items-lg-center { - align-items: center !important - } - - .align-items-lg-baseline { - align-items: baseline !important - } - - .align-items-lg-stretch { - align-items: stretch !important - } - - .align-content-lg-start { - align-content: flex-start !important - } - - .align-content-lg-end { - align-content: flex-end !important - } - - .align-content-lg-center { - align-content: center !important - } - - .align-content-lg-between { - align-content: space-between !important - } - - .align-content-lg-around { - align-content: space-around !important - } - - .align-content-lg-stretch { - align-content: stretch !important - } - - .align-self-lg-auto { - align-self: auto !important - } - - .align-self-lg-start { - align-self: flex-start !important - } - - .align-self-lg-end { - align-self: flex-end !important - } - - .align-self-lg-center { - align-self: center !important - } - - .align-self-lg-baseline { - align-self: baseline !important - } - - .align-self-lg-stretch { - align-self: stretch !important - } - - .order-lg-first { - order: -1 !important - } - - .order-lg-0 { - order: 0 !important - } - - .order-lg-1 { - order: 1 !important - } - - .order-lg-2 { - order: 2 !important - } - - .order-lg-3 { - order: 3 !important - } - - .order-lg-4 { - order: 4 !important - } - - .order-lg-5 { - order: 5 !important - } - - .order-lg-last { - order: 6 !important - } - - .m-lg-0 { - margin: 0 !important - } - - .m-lg-1 { - margin: .25rem !important - } - - .m-lg-2 { - margin: .5rem !important - } - - .m-lg-3 { - margin: 1rem !important - } - - .m-lg-4 { - margin: 1.5rem !important - } - - .m-lg-5 { - margin: 3rem !important - } - - .m-lg-6 { - margin: 4.5rem !important - } - - .m-lg-7 { - margin: 6rem !important - } - - .m-lg-auto { - margin: auto !important - } - - .mx-lg-0 { - margin-right: 0 !important; - margin-left: 0 !important - } - - .mx-lg-1 { - margin-right: .25rem !important; - margin-left: .25rem !important - } - - .mx-lg-2 { - margin-right: .5rem !important; - margin-left: .5rem !important - } - - .mx-lg-3 { - margin-right: 1rem !important; - margin-left: 1rem !important - } - - .mx-lg-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important - } - - .mx-lg-5 { - margin-right: 3rem !important; - margin-left: 3rem !important - } - - .mx-lg-6 { - margin-right: 4.5rem !important; - margin-left: 4.5rem !important - } - - .mx-lg-7 { - margin-right: 6rem !important; - margin-left: 6rem !important - } - - .mx-lg-auto { - margin-right: auto !important; - margin-left: auto !important - } - - .my-lg-0 { - margin-top: 0 !important; - margin-bottom: 0 !important - } - - .my-lg-1 { - margin-top: .25rem !important; - margin-bottom: .25rem !important - } - - .my-lg-2 { - margin-top: .5rem !important; - margin-bottom: .5rem !important - } - - .my-lg-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important - } - - .my-lg-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important - } - - .my-lg-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important - } - - .my-lg-6 { - margin-top: 4.5rem !important; - margin-bottom: 4.5rem !important - } - - .my-lg-7 { - margin-top: 6rem !important; - margin-bottom: 6rem !important - } - - .my-lg-auto { - margin-top: auto !important; - margin-bottom: auto !important - } - - .mt-lg-0 { - margin-top: 0 !important - } - - .mt-lg-1 { - margin-top: .25rem !important - } - - .mt-lg-2 { - margin-top: .5rem !important - } - - .mt-lg-3 { - margin-top: 1rem !important - } - - .mt-lg-4 { - margin-top: 1.5rem !important - } - - .mt-lg-5 { - margin-top: 3rem !important - } - - .mt-lg-6 { - margin-top: 4.5rem !important - } - - .mt-lg-7 { - margin-top: 6rem !important - } - - .mt-lg-auto { - margin-top: auto !important - } - - .mr-lg-0 { - margin-right: 0 !important - } - - .mr-lg-1 { - margin-right: .25rem !important - } - - .mr-lg-2 { - margin-right: .5rem !important - } - - .mr-lg-3 { - margin-right: 1rem !important - } - - .mr-lg-4 { - margin-right: 1.5rem !important - } - - .mr-lg-5 { - margin-right: 3rem !important - } - - .mr-lg-6 { - margin-right: 4.5rem !important - } - - .mr-lg-7 { - margin-right: 6rem !important - } - - .mr-lg-auto { - margin-right: auto !important - } - - .mb-lg-0 { - margin-bottom: 0 !important - } - - .mb-lg-1 { - margin-bottom: .25rem !important - } - - .mb-lg-2 { - margin-bottom: .5rem !important - } - - .mb-lg-3 { - margin-bottom: 1rem !important - } - - .mb-lg-4 { - margin-bottom: 1.5rem !important - } - - .mb-lg-5 { - margin-bottom: 3rem !important - } - - .mb-lg-6 { - margin-bottom: 4.5rem !important - } - - .mb-lg-7 { - margin-bottom: 6rem !important - } - - .mb-lg-auto { - margin-bottom: auto !important - } - - .ml-lg-0 { - margin-left: 0 !important - } - - .ml-lg-1 { - margin-left: .25rem !important - } - - .ml-lg-2 { - margin-left: .5rem !important - } - - .ml-lg-3 { - margin-left: 1rem !important - } - - .ml-lg-4 { - margin-left: 1.5rem !important - } - - .ml-lg-5 { - margin-left: 3rem !important - } - - .ml-lg-6 { - margin-left: 4.5rem !important - } - - .ml-lg-7 { - margin-left: 6rem !important - } - - .ml-lg-auto { - margin-left: auto !important - } - - .m-lg-n1 { - margin: -.25rem !important - } - - .m-lg-n2 { - margin: -.5rem !important - } - - .m-lg-n3 { - margin: -1rem !important - } - - .m-lg-n4 { - margin: -1.5rem !important - } - - .m-lg-n5 { - margin: -3rem !important - } - - .m-lg-n6 { - margin: -4.5rem !important - } - - .m-lg-n7 { - margin: -6rem !important - } - - .mx-lg-n1 { - margin-right: -.25rem !important; - margin-left: -.25rem !important - } - - .mx-lg-n2 { - margin-right: -.5rem !important; - margin-left: -.5rem !important - } - - .mx-lg-n3 { - margin-right: -1rem !important; - margin-left: -1rem !important - } - - .mx-lg-n4 { - margin-right: -1.5rem !important; - margin-left: -1.5rem !important - } - - .mx-lg-n5 { - margin-right: -3rem !important; - margin-left: -3rem !important - } - - .mx-lg-n6 { - margin-right: -4.5rem !important; - margin-left: -4.5rem !important - } - - .mx-lg-n7 { - margin-right: -6rem !important; - margin-left: -6rem !important - } - - .my-lg-n1 { - margin-top: -.25rem !important; - margin-bottom: -.25rem !important - } - - .my-lg-n2 { - margin-top: -.5rem !important; - margin-bottom: -.5rem !important - } - - .my-lg-n3 { - margin-top: -1rem !important; - margin-bottom: -1rem !important - } - - .my-lg-n4 { - margin-top: -1.5rem !important; - margin-bottom: -1.5rem !important - } - - .my-lg-n5 { - margin-top: -3rem !important; - margin-bottom: -3rem !important - } - - .my-lg-n6 { - margin-top: -4.5rem !important; - margin-bottom: -4.5rem !important - } - - .my-lg-n7 { - margin-top: -6rem !important; - margin-bottom: -6rem !important - } - - .mt-lg-n1 { - margin-top: -.25rem !important - } - - .mt-lg-n2 { - margin-top: -.5rem !important - } - - .mt-lg-n3 { - margin-top: -1rem !important - } - - .mt-lg-n4 { - margin-top: -1.5rem !important - } - - .mt-lg-n5 { - margin-top: -3rem !important - } - - .mt-lg-n6 { - margin-top: -4.5rem !important - } - - .mt-lg-n7 { - margin-top: -6rem !important - } - - .mr-lg-n1 { - margin-right: -.25rem !important - } - - .mr-lg-n2 { - margin-right: -.5rem !important - } - - .mr-lg-n3 { - margin-right: -1rem !important - } - - .mr-lg-n4 { - margin-right: -1.5rem !important - } - - .mr-lg-n5 { - margin-right: -3rem !important - } - - .mr-lg-n6 { - margin-right: -4.5rem !important - } - - .mr-lg-n7 { - margin-right: -6rem !important - } - - .mb-lg-n1 { - margin-bottom: -.25rem !important - } - - .mb-lg-n2 { - margin-bottom: -.5rem !important - } - - .mb-lg-n3 { - margin-bottom: -1rem !important - } - - .mb-lg-n4 { - margin-bottom: -1.5rem !important - } - - .mb-lg-n5 { - margin-bottom: -3rem !important - } - - .mb-lg-n6 { - margin-bottom: -4.5rem !important - } - - .mb-lg-n7 { - margin-bottom: -6rem !important - } - - .ml-lg-n1 { - margin-left: -.25rem !important - } - - .ml-lg-n2 { - margin-left: -.5rem !important - } - - .ml-lg-n3 { - margin-left: -1rem !important - } - - .ml-lg-n4 { - margin-left: -1.5rem !important - } - - .ml-lg-n5 { - margin-left: -3rem !important - } - - .ml-lg-n6 { - margin-left: -4.5rem !important - } - - .ml-lg-n7 { - margin-left: -6rem !important - } - - .p-lg-0 { - padding: 0 !important - } - - .p-lg-1 { - padding: .25rem !important - } - - .p-lg-2 { - padding: .5rem !important - } - - .p-lg-3 { - padding: 1rem !important - } - - .p-lg-4 { - padding: 1.5rem !important - } - - .p-lg-5 { - padding: 3rem !important - } - - .p-lg-6 { - padding: 4.5rem !important - } - - .p-lg-7 { - padding: 6rem !important - } - - .px-lg-0 { - padding-right: 0 !important; - padding-left: 0 !important - } - - .px-lg-1 { - padding-right: .25rem !important; - padding-left: .25rem !important - } - - .px-lg-2 { - padding-right: .5rem !important; - padding-left: .5rem !important - } - - .px-lg-3 { - padding-right: 1rem !important; - padding-left: 1rem !important - } - - .px-lg-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important - } - - .px-lg-5 { - padding-right: 3rem !important; - padding-left: 3rem !important - } - - .px-lg-6 { - padding-right: 4.5rem !important; - padding-left: 4.5rem !important - } - - .px-lg-7 { - padding-right: 6rem !important; - padding-left: 6rem !important - } - - .py-lg-0 { - padding-top: 0 !important; - padding-bottom: 0 !important - } - - .py-lg-1 { - padding-top: .25rem !important; - padding-bottom: .25rem !important - } - - .py-lg-2 { - padding-top: .5rem !important; - padding-bottom: .5rem !important - } - - .py-lg-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important - } - - .py-lg-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important - } - - .py-lg-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important - } - - .py-lg-6 { - padding-top: 4.5rem !important; - padding-bottom: 4.5rem !important - } - - .py-lg-7 { - padding-top: 6rem !important; - padding-bottom: 6rem !important - } - - .pt-lg-0 { - padding-top: 0 !important - } - - .pt-lg-1 { - padding-top: .25rem !important - } - - .pt-lg-2 { - padding-top: .5rem !important - } - - .pt-lg-3 { - padding-top: 1rem !important - } - - .pt-lg-4 { - padding-top: 1.5rem !important - } - - .pt-lg-5 { - padding-top: 3rem !important - } - - .pt-lg-6 { - padding-top: 4.5rem !important - } - - .pt-lg-7 { - padding-top: 6rem !important - } - - .pr-lg-0 { - padding-right: 0 !important - } - - .pr-lg-1 { - padding-right: .25rem !important - } - - .pr-lg-2 { - padding-right: .5rem !important - } - - .pr-lg-3 { - padding-right: 1rem !important - } - - .pr-lg-4 { - padding-right: 1.5rem !important - } - - .pr-lg-5 { - padding-right: 3rem !important - } - - .pr-lg-6 { - padding-right: 4.5rem !important - } - - .pr-lg-7 { - padding-right: 6rem !important - } - - .pb-lg-0 { - padding-bottom: 0 !important - } - - .pb-lg-1 { - padding-bottom: .25rem !important - } - - .pb-lg-2 { - padding-bottom: .5rem !important - } - - .pb-lg-3 { - padding-bottom: 1rem !important - } - - .pb-lg-4 { - padding-bottom: 1.5rem !important - } - - .pb-lg-5 { - padding-bottom: 3rem !important - } - - .pb-lg-6 { - padding-bottom: 4.5rem !important - } - - .pb-lg-7 { - padding-bottom: 6rem !important - } - - .pl-lg-0 { - padding-left: 0 !important - } - - .pl-lg-1 { - padding-left: .25rem !important - } - - .pl-lg-2 { - padding-left: .5rem !important - } - - .pl-lg-3 { - padding-left: 1rem !important - } - - .pl-lg-4 { - padding-left: 1.5rem !important - } - - .pl-lg-5 { - padding-left: 3rem !important - } - - .pl-lg-6 { - padding-left: 4.5rem !important - } - - .pl-lg-7 { - padding-left: 6rem !important - } - - .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) { - .float-xl-left { - float: left !important - } - - .float-xl-right { - float: right !important - } - - .float-xl-none { - float: 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: flex !important - } - - .d-xl-inline-flex { - display: inline-flex !important - } - - .d-xl-none { - display: none !important - } - - .flex-xl-fill { - flex: 1 1 auto !important - } - - .flex-xl-row { - flex-direction: row !important - } - - .flex-xl-column { - flex-direction: column !important - } - - .flex-xl-row-reverse { - flex-direction: row-reverse !important - } - - .flex-xl-column-reverse { - flex-direction: column-reverse !important - } - - .flex-xl-grow-0 { - flex-grow: 0 !important - } - - .flex-xl-grow-1 { - flex-grow: 1 !important - } - - .flex-xl-shrink-0 { - flex-shrink: 0 !important - } - - .flex-xl-shrink-1 { - flex-shrink: 1 !important - } - - .flex-xl-wrap { - flex-wrap: wrap !important - } - - .flex-xl-nowrap { - flex-wrap: nowrap !important - } - - .flex-xl-wrap-reverse { - flex-wrap: wrap-reverse !important - } - - .justify-content-xl-start { - justify-content: flex-start !important - } - - .justify-content-xl-end { - justify-content: flex-end !important - } - - .justify-content-xl-center { - justify-content: center !important - } - - .justify-content-xl-between { - justify-content: space-between !important - } - - .justify-content-xl-around { - justify-content: space-around !important - } - - .justify-content-xl-evenly { - justify-content: space-evenly !important - } - - .align-items-xl-start { - align-items: flex-start !important - } - - .align-items-xl-end { - align-items: flex-end !important - } - - .align-items-xl-center { - align-items: center !important - } - - .align-items-xl-baseline { - align-items: baseline !important - } - - .align-items-xl-stretch { - align-items: stretch !important - } - - .align-content-xl-start { - align-content: flex-start !important - } - - .align-content-xl-end { - align-content: flex-end !important - } - - .align-content-xl-center { - align-content: center !important - } - - .align-content-xl-between { - align-content: space-between !important - } - - .align-content-xl-around { - align-content: space-around !important - } - - .align-content-xl-stretch { - align-content: stretch !important - } - - .align-self-xl-auto { - align-self: auto !important - } - - .align-self-xl-start { - align-self: flex-start !important - } - - .align-self-xl-end { - align-self: flex-end !important - } - - .align-self-xl-center { - align-self: center !important - } - - .align-self-xl-baseline { - align-self: baseline !important - } - - .align-self-xl-stretch { - align-self: stretch !important - } - - .order-xl-first { - order: -1 !important - } - - .order-xl-0 { - order: 0 !important - } - - .order-xl-1 { - order: 1 !important - } - - .order-xl-2 { - order: 2 !important - } - - .order-xl-3 { - order: 3 !important - } - - .order-xl-4 { - order: 4 !important - } - - .order-xl-5 { - order: 5 !important - } - - .order-xl-last { - order: 6 !important - } - - .m-xl-0 { - margin: 0 !important - } - - .m-xl-1 { - margin: .25rem !important - } - - .m-xl-2 { - margin: .5rem !important - } - - .m-xl-3 { - margin: 1rem !important - } - - .m-xl-4 { - margin: 1.5rem !important - } - - .m-xl-5 { - margin: 3rem !important - } - - .m-xl-6 { - margin: 4.5rem !important - } - - .m-xl-7 { - margin: 6rem !important - } - - .m-xl-auto { - margin: auto !important - } - - .mx-xl-0 { - margin-right: 0 !important; - margin-left: 0 !important - } - - .mx-xl-1 { - margin-right: .25rem !important; - margin-left: .25rem !important - } - - .mx-xl-2 { - margin-right: .5rem !important; - margin-left: .5rem !important - } - - .mx-xl-3 { - margin-right: 1rem !important; - margin-left: 1rem !important - } - - .mx-xl-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important - } - - .mx-xl-5 { - margin-right: 3rem !important; - margin-left: 3rem !important - } - - .mx-xl-6 { - margin-right: 4.5rem !important; - margin-left: 4.5rem !important - } - - .mx-xl-7 { - margin-right: 6rem !important; - margin-left: 6rem !important - } - - .mx-xl-auto { - margin-right: auto !important; - margin-left: auto !important - } - - .my-xl-0 { - margin-top: 0 !important; - margin-bottom: 0 !important - } - - .my-xl-1 { - margin-top: .25rem !important; - margin-bottom: .25rem !important - } - - .my-xl-2 { - margin-top: .5rem !important; - margin-bottom: .5rem !important - } - - .my-xl-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important - } - - .my-xl-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important - } - - .my-xl-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important - } - - .my-xl-6 { - margin-top: 4.5rem !important; - margin-bottom: 4.5rem !important - } - - .my-xl-7 { - margin-top: 6rem !important; - margin-bottom: 6rem !important - } - - .my-xl-auto { - margin-top: auto !important; - margin-bottom: auto !important - } - - .mt-xl-0 { - margin-top: 0 !important - } - - .mt-xl-1 { - margin-top: .25rem !important - } - - .mt-xl-2 { - margin-top: .5rem !important - } - - .mt-xl-3 { - margin-top: 1rem !important - } - - .mt-xl-4 { - margin-top: 1.5rem !important - } - - .mt-xl-5 { - margin-top: 3rem !important - } - - .mt-xl-6 { - margin-top: 4.5rem !important - } - - .mt-xl-7 { - margin-top: 6rem !important - } - - .mt-xl-auto { - margin-top: auto !important - } - - .mr-xl-0 { - margin-right: 0 !important - } - - .mr-xl-1 { - margin-right: .25rem !important - } - - .mr-xl-2 { - margin-right: .5rem !important - } - - .mr-xl-3 { - margin-right: 1rem !important - } - - .mr-xl-4 { - margin-right: 1.5rem !important - } - - .mr-xl-5 { - margin-right: 3rem !important - } - - .mr-xl-6 { - margin-right: 4.5rem !important - } - - .mr-xl-7 { - margin-right: 6rem !important - } - - .mr-xl-auto { - margin-right: auto !important - } - - .mb-xl-0 { - margin-bottom: 0 !important - } - - .mb-xl-1 { - margin-bottom: .25rem !important - } - - .mb-xl-2 { - margin-bottom: .5rem !important - } - - .mb-xl-3 { - margin-bottom: 1rem !important - } - - .mb-xl-4 { - margin-bottom: 1.5rem !important - } - - .mb-xl-5 { - margin-bottom: 3rem !important - } - - .mb-xl-6 { - margin-bottom: 4.5rem !important - } - - .mb-xl-7 { - margin-bottom: 6rem !important - } - - .mb-xl-auto { - margin-bottom: auto !important - } - - .ml-xl-0 { - margin-left: 0 !important - } - - .ml-xl-1 { - margin-left: .25rem !important - } - - .ml-xl-2 { - margin-left: .5rem !important - } - - .ml-xl-3 { - margin-left: 1rem !important - } - - .ml-xl-4 { - margin-left: 1.5rem !important - } - - .ml-xl-5 { - margin-left: 3rem !important - } - - .ml-xl-6 { - margin-left: 4.5rem !important - } - - .ml-xl-7 { - margin-left: 6rem !important - } - - .ml-xl-auto { - margin-left: auto !important - } - - .m-xl-n1 { - margin: -.25rem !important - } - - .m-xl-n2 { - margin: -.5rem !important - } - - .m-xl-n3 { - margin: -1rem !important - } - - .m-xl-n4 { - margin: -1.5rem !important - } - - .m-xl-n5 { - margin: -3rem !important - } - - .m-xl-n6 { - margin: -4.5rem !important - } - - .m-xl-n7 { - margin: -6rem !important - } - - .mx-xl-n1 { - margin-right: -.25rem !important; - margin-left: -.25rem !important - } - - .mx-xl-n2 { - margin-right: -.5rem !important; - margin-left: -.5rem !important - } - - .mx-xl-n3 { - margin-right: -1rem !important; - margin-left: -1rem !important - } - - .mx-xl-n4 { - margin-right: -1.5rem !important; - margin-left: -1.5rem !important - } - - .mx-xl-n5 { - margin-right: -3rem !important; - margin-left: -3rem !important - } - - .mx-xl-n6 { - margin-right: -4.5rem !important; - margin-left: -4.5rem !important - } - - .mx-xl-n7 { - margin-right: -6rem !important; - margin-left: -6rem !important - } - - .my-xl-n1 { - margin-top: -.25rem !important; - margin-bottom: -.25rem !important - } - - .my-xl-n2 { - margin-top: -.5rem !important; - margin-bottom: -.5rem !important - } - - .my-xl-n3 { - margin-top: -1rem !important; - margin-bottom: -1rem !important - } - - .my-xl-n4 { - margin-top: -1.5rem !important; - margin-bottom: -1.5rem !important - } - - .my-xl-n5 { - margin-top: -3rem !important; - margin-bottom: -3rem !important - } - - .my-xl-n6 { - margin-top: -4.5rem !important; - margin-bottom: -4.5rem !important - } - - .my-xl-n7 { - margin-top: -6rem !important; - margin-bottom: -6rem !important - } - - .mt-xl-n1 { - margin-top: -.25rem !important - } - - .mt-xl-n2 { - margin-top: -.5rem !important - } - - .mt-xl-n3 { - margin-top: -1rem !important - } - - .mt-xl-n4 { - margin-top: -1.5rem !important - } - - .mt-xl-n5 { - margin-top: -3rem !important - } - - .mt-xl-n6 { - margin-top: -4.5rem !important - } - - .mt-xl-n7 { - margin-top: -6rem !important - } - - .mr-xl-n1 { - margin-right: -.25rem !important - } - - .mr-xl-n2 { - margin-right: -.5rem !important - } - - .mr-xl-n3 { - margin-right: -1rem !important - } - - .mr-xl-n4 { - margin-right: -1.5rem !important - } - - .mr-xl-n5 { - margin-right: -3rem !important - } - - .mr-xl-n6 { - margin-right: -4.5rem !important - } - - .mr-xl-n7 { - margin-right: -6rem !important - } - - .mb-xl-n1 { - margin-bottom: -.25rem !important - } - - .mb-xl-n2 { - margin-bottom: -.5rem !important - } - - .mb-xl-n3 { - margin-bottom: -1rem !important - } - - .mb-xl-n4 { - margin-bottom: -1.5rem !important - } - - .mb-xl-n5 { - margin-bottom: -3rem !important - } - - .mb-xl-n6 { - margin-bottom: -4.5rem !important - } - - .mb-xl-n7 { - margin-bottom: -6rem !important - } - - .ml-xl-n1 { - margin-left: -.25rem !important - } - - .ml-xl-n2 { - margin-left: -.5rem !important - } - - .ml-xl-n3 { - margin-left: -1rem !important - } - - .ml-xl-n4 { - margin-left: -1.5rem !important - } - - .ml-xl-n5 { - margin-left: -3rem !important - } - - .ml-xl-n6 { - margin-left: -4.5rem !important - } - - .ml-xl-n7 { - margin-left: -6rem !important - } - - .p-xl-0 { - padding: 0 !important - } - - .p-xl-1 { - padding: .25rem !important - } - - .p-xl-2 { - padding: .5rem !important - } - - .p-xl-3 { - padding: 1rem !important - } - - .p-xl-4 { - padding: 1.5rem !important - } - - .p-xl-5 { - padding: 3rem !important - } - - .p-xl-6 { - padding: 4.5rem !important - } - - .p-xl-7 { - padding: 6rem !important - } - - .px-xl-0 { - padding-right: 0 !important; - padding-left: 0 !important - } - - .px-xl-1 { - padding-right: .25rem !important; - padding-left: .25rem !important - } - - .px-xl-2 { - padding-right: .5rem !important; - padding-left: .5rem !important - } - - .px-xl-3 { - padding-right: 1rem !important; - padding-left: 1rem !important - } - - .px-xl-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important - } - - .px-xl-5 { - padding-right: 3rem !important; - padding-left: 3rem !important - } - - .px-xl-6 { - padding-right: 4.5rem !important; - padding-left: 4.5rem !important - } - - .px-xl-7 { - padding-right: 6rem !important; - padding-left: 6rem !important - } - - .py-xl-0 { - padding-top: 0 !important; - padding-bottom: 0 !important - } - - .py-xl-1 { - padding-top: .25rem !important; - padding-bottom: .25rem !important - } - - .py-xl-2 { - padding-top: .5rem !important; - padding-bottom: .5rem !important - } - - .py-xl-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important - } - - .py-xl-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important - } - - .py-xl-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important - } - - .py-xl-6 { - padding-top: 4.5rem !important; - padding-bottom: 4.5rem !important - } - - .py-xl-7 { - padding-top: 6rem !important; - padding-bottom: 6rem !important - } - - .pt-xl-0 { - padding-top: 0 !important - } - - .pt-xl-1 { - padding-top: .25rem !important - } - - .pt-xl-2 { - padding-top: .5rem !important - } - - .pt-xl-3 { - padding-top: 1rem !important - } - - .pt-xl-4 { - padding-top: 1.5rem !important - } - - .pt-xl-5 { - padding-top: 3rem !important - } - - .pt-xl-6 { - padding-top: 4.5rem !important - } - - .pt-xl-7 { - padding-top: 6rem !important - } - - .pr-xl-0 { - padding-right: 0 !important - } - - .pr-xl-1 { - padding-right: .25rem !important - } - - .pr-xl-2 { - padding-right: .5rem !important - } - - .pr-xl-3 { - padding-right: 1rem !important - } - - .pr-xl-4 { - padding-right: 1.5rem !important - } - - .pr-xl-5 { - padding-right: 3rem !important - } - - .pr-xl-6 { - padding-right: 4.5rem !important - } - - .pr-xl-7 { - padding-right: 6rem !important - } - - .pb-xl-0 { - padding-bottom: 0 !important - } - - .pb-xl-1 { - padding-bottom: .25rem !important - } - - .pb-xl-2 { - padding-bottom: .5rem !important - } - - .pb-xl-3 { - padding-bottom: 1rem !important - } - - .pb-xl-4 { - padding-bottom: 1.5rem !important - } - - .pb-xl-5 { - padding-bottom: 3rem !important - } - - .pb-xl-6 { - padding-bottom: 4.5rem !important - } - - .pb-xl-7 { - padding-bottom: 6rem !important - } - - .pl-xl-0 { - padding-left: 0 !important - } - - .pl-xl-1 { - padding-left: .25rem !important - } - - .pl-xl-2 { - padding-left: .5rem !important - } - - .pl-xl-3 { - padding-left: 1rem !important - } - - .pl-xl-4 { - padding-left: 1.5rem !important - } - - .pl-xl-5 { - padding-left: 3rem !important - } - - .pl-xl-6 { - padding-left: 4.5rem !important - } - - .pl-xl-7 { - padding-left: 6rem !important - } - - .text-xl-left { - text-align: left !important - } - - .text-xl-right { - text-align: right !important - } - - .text-xl-center { - text-align: center !important - } -} - -@media (min-width: 1440px) { - .float-xxl-left { - float: left !important - } - - .float-xxl-right { - float: right !important - } - - .float-xxl-none { - float: none !important - } - - .d-xxl-inline { - display: inline !important - } - - .d-xxl-inline-block { - display: inline-block !important - } - - .d-xxl-block { - display: block !important - } - - .d-xxl-table { - display: table !important - } - - .d-xxl-table-row { - display: table-row !important - } - - .d-xxl-table-cell { - display: table-cell !important - } - - .d-xxl-flex { - display: flex !important - } - - .d-xxl-inline-flex { - display: inline-flex !important - } - - .d-xxl-none { - display: none !important - } - - .flex-xxl-fill { - flex: 1 1 auto !important - } - - .flex-xxl-row { - flex-direction: row !important - } - - .flex-xxl-column { - flex-direction: column !important - } - - .flex-xxl-row-reverse { - flex-direction: row-reverse !important - } - - .flex-xxl-column-reverse { - flex-direction: column-reverse !important - } - - .flex-xxl-grow-0 { - flex-grow: 0 !important - } - - .flex-xxl-grow-1 { - flex-grow: 1 !important - } - - .flex-xxl-shrink-0 { - flex-shrink: 0 !important - } - - .flex-xxl-shrink-1 { - flex-shrink: 1 !important - } - - .flex-xxl-wrap { - flex-wrap: wrap !important - } - - .flex-xxl-nowrap { - flex-wrap: nowrap !important - } - - .flex-xxl-wrap-reverse { - flex-wrap: wrap-reverse !important - } - - .justify-content-xxl-start { - justify-content: flex-start !important - } - - .justify-content-xxl-end { - justify-content: flex-end !important - } - - .justify-content-xxl-center { - justify-content: center !important - } - - .justify-content-xxl-between { - justify-content: space-between !important - } - - .justify-content-xxl-around { - justify-content: space-around !important - } - - .justify-content-xxl-evenly { - justify-content: space-evenly !important - } - - .align-items-xxl-start { - align-items: flex-start !important - } - - .align-items-xxl-end { - align-items: flex-end !important - } - - .align-items-xxl-center { - align-items: center !important - } - - .align-items-xxl-baseline { - align-items: baseline !important - } - - .align-items-xxl-stretch { - align-items: stretch !important - } - - .align-content-xxl-start { - align-content: flex-start !important - } - - .align-content-xxl-end { - align-content: flex-end !important - } - - .align-content-xxl-center { - align-content: center !important - } - - .align-content-xxl-between { - align-content: space-between !important - } - - .align-content-xxl-around { - align-content: space-around !important - } - - .align-content-xxl-stretch { - align-content: stretch !important - } - - .align-self-xxl-auto { - align-self: auto !important - } - - .align-self-xxl-start { - align-self: flex-start !important - } - - .align-self-xxl-end { - align-self: flex-end !important - } - - .align-self-xxl-center { - align-self: center !important - } - - .align-self-xxl-baseline { - align-self: baseline !important - } - - .align-self-xxl-stretch { - align-self: stretch !important - } - - .order-xxl-first { - order: -1 !important - } - - .order-xxl-0 { - order: 0 !important - } - - .order-xxl-1 { - order: 1 !important - } - - .order-xxl-2 { - order: 2 !important - } - - .order-xxl-3 { - order: 3 !important - } - - .order-xxl-4 { - order: 4 !important - } - - .order-xxl-5 { - order: 5 !important - } - - .order-xxl-last { - order: 6 !important - } - - .m-xxl-0 { - margin: 0 !important - } - - .m-xxl-1 { - margin: .25rem !important - } - - .m-xxl-2 { - margin: .5rem !important - } - - .m-xxl-3 { - margin: 1rem !important - } - - .m-xxl-4 { - margin: 1.5rem !important - } - - .m-xxl-5 { - margin: 3rem !important - } - - .m-xxl-6 { - margin: 4.5rem !important - } - - .m-xxl-7 { - margin: 6rem !important - } - - .m-xxl-auto { - margin: auto !important - } - - .mx-xxl-0 { - margin-right: 0 !important; - margin-left: 0 !important - } - - .mx-xxl-1 { - margin-right: .25rem !important; - margin-left: .25rem !important - } - - .mx-xxl-2 { - margin-right: .5rem !important; - margin-left: .5rem !important - } - - .mx-xxl-3 { - margin-right: 1rem !important; - margin-left: 1rem !important - } - - .mx-xxl-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important - } - - .mx-xxl-5 { - margin-right: 3rem !important; - margin-left: 3rem !important - } - - .mx-xxl-6 { - margin-right: 4.5rem !important; - margin-left: 4.5rem !important - } - - .mx-xxl-7 { - margin-right: 6rem !important; - margin-left: 6rem !important - } - - .mx-xxl-auto { - margin-right: auto !important; - margin-left: auto !important - } - - .my-xxl-0 { - margin-top: 0 !important; - margin-bottom: 0 !important - } - - .my-xxl-1 { - margin-top: .25rem !important; - margin-bottom: .25rem !important - } - - .my-xxl-2 { - margin-top: .5rem !important; - margin-bottom: .5rem !important - } - - .my-xxl-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important - } - - .my-xxl-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important - } - - .my-xxl-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important - } - - .my-xxl-6 { - margin-top: 4.5rem !important; - margin-bottom: 4.5rem !important - } - - .my-xxl-7 { - margin-top: 6rem !important; - margin-bottom: 6rem !important - } - - .my-xxl-auto { - margin-top: auto !important; - margin-bottom: auto !important - } - - .mt-xxl-0 { - margin-top: 0 !important - } - - .mt-xxl-1 { - margin-top: .25rem !important - } - - .mt-xxl-2 { - margin-top: .5rem !important - } - - .mt-xxl-3 { - margin-top: 1rem !important - } - - .mt-xxl-4 { - margin-top: 1.5rem !important - } - - .mt-xxl-5 { - margin-top: 3rem !important - } - - .mt-xxl-6 { - margin-top: 4.5rem !important - } - - .mt-xxl-7 { - margin-top: 6rem !important - } - - .mt-xxl-auto { - margin-top: auto !important - } - - .mr-xxl-0 { - margin-right: 0 !important - } - - .mr-xxl-1 { - margin-right: .25rem !important - } - - .mr-xxl-2 { - margin-right: .5rem !important - } - - .mr-xxl-3 { - margin-right: 1rem !important - } - - .mr-xxl-4 { - margin-right: 1.5rem !important - } - - .mr-xxl-5 { - margin-right: 3rem !important - } - - .mr-xxl-6 { - margin-right: 4.5rem !important - } - - .mr-xxl-7 { - margin-right: 6rem !important - } - - .mr-xxl-auto { - margin-right: auto !important - } - - .mb-xxl-0 { - margin-bottom: 0 !important - } - - .mb-xxl-1 { - margin-bottom: .25rem !important - } - - .mb-xxl-2 { - margin-bottom: .5rem !important - } - - .mb-xxl-3 { - margin-bottom: 1rem !important - } - - .mb-xxl-4 { - margin-bottom: 1.5rem !important - } - - .mb-xxl-5 { - margin-bottom: 3rem !important - } - - .mb-xxl-6 { - margin-bottom: 4.5rem !important - } - - .mb-xxl-7 { - margin-bottom: 6rem !important - } - - .mb-xxl-auto { - margin-bottom: auto !important - } - - .ml-xxl-0 { - margin-left: 0 !important - } - - .ml-xxl-1 { - margin-left: .25rem !important - } - - .ml-xxl-2 { - margin-left: .5rem !important - } - - .ml-xxl-3 { - margin-left: 1rem !important - } - - .ml-xxl-4 { - margin-left: 1.5rem !important - } - - .ml-xxl-5 { - margin-left: 3rem !important - } - - .ml-xxl-6 { - margin-left: 4.5rem !important - } - - .ml-xxl-7 { - margin-left: 6rem !important - } - - .ml-xxl-auto { - margin-left: auto !important - } - - .m-xxl-n1 { - margin: -.25rem !important - } - - .m-xxl-n2 { - margin: -.5rem !important - } - - .m-xxl-n3 { - margin: -1rem !important - } - - .m-xxl-n4 { - margin: -1.5rem !important - } - - .m-xxl-n5 { - margin: -3rem !important - } - - .m-xxl-n6 { - margin: -4.5rem !important - } - - .m-xxl-n7 { - margin: -6rem !important - } - - .mx-xxl-n1 { - margin-right: -.25rem !important; - margin-left: -.25rem !important - } - - .mx-xxl-n2 { - margin-right: -.5rem !important; - margin-left: -.5rem !important - } - - .mx-xxl-n3 { - margin-right: -1rem !important; - margin-left: -1rem !important - } - - .mx-xxl-n4 { - margin-right: -1.5rem !important; - margin-left: -1.5rem !important - } - - .mx-xxl-n5 { - margin-right: -3rem !important; - margin-left: -3rem !important - } - - .mx-xxl-n6 { - margin-right: -4.5rem !important; - margin-left: -4.5rem !important - } - - .mx-xxl-n7 { - margin-right: -6rem !important; - margin-left: -6rem !important - } - - .my-xxl-n1 { - margin-top: -.25rem !important; - margin-bottom: -.25rem !important - } - - .my-xxl-n2 { - margin-top: -.5rem !important; - margin-bottom: -.5rem !important - } - - .my-xxl-n3 { - margin-top: -1rem !important; - margin-bottom: -1rem !important - } - - .my-xxl-n4 { - margin-top: -1.5rem !important; - margin-bottom: -1.5rem !important - } - - .my-xxl-n5 { - margin-top: -3rem !important; - margin-bottom: -3rem !important - } - - .my-xxl-n6 { - margin-top: -4.5rem !important; - margin-bottom: -4.5rem !important - } - - .my-xxl-n7 { - margin-top: -6rem !important; - margin-bottom: -6rem !important - } - - .mt-xxl-n1 { - margin-top: -.25rem !important - } - - .mt-xxl-n2 { - margin-top: -.5rem !important - } - - .mt-xxl-n3 { - margin-top: -1rem !important - } - - .mt-xxl-n4 { - margin-top: -1.5rem !important - } - - .mt-xxl-n5 { - margin-top: -3rem !important - } - - .mt-xxl-n6 { - margin-top: -4.5rem !important - } - - .mt-xxl-n7 { - margin-top: -6rem !important - } - - .mr-xxl-n1 { - margin-right: -.25rem !important - } - - .mr-xxl-n2 { - margin-right: -.5rem !important - } - - .mr-xxl-n3 { - margin-right: -1rem !important - } - - .mr-xxl-n4 { - margin-right: -1.5rem !important - } - - .mr-xxl-n5 { - margin-right: -3rem !important - } - - .mr-xxl-n6 { - margin-right: -4.5rem !important - } - - .mr-xxl-n7 { - margin-right: -6rem !important - } - - .mb-xxl-n1 { - margin-bottom: -.25rem !important - } - - .mb-xxl-n2 { - margin-bottom: -.5rem !important - } - - .mb-xxl-n3 { - margin-bottom: -1rem !important - } - - .mb-xxl-n4 { - margin-bottom: -1.5rem !important - } - - .mb-xxl-n5 { - margin-bottom: -3rem !important - } - - .mb-xxl-n6 { - margin-bottom: -4.5rem !important - } - - .mb-xxl-n7 { - margin-bottom: -6rem !important - } - - .ml-xxl-n1 { - margin-left: -.25rem !important - } - - .ml-xxl-n2 { - margin-left: -.5rem !important - } - - .ml-xxl-n3 { - margin-left: -1rem !important - } - - .ml-xxl-n4 { - margin-left: -1.5rem !important - } - - .ml-xxl-n5 { - margin-left: -3rem !important - } - - .ml-xxl-n6 { - margin-left: -4.5rem !important - } - - .ml-xxl-n7 { - margin-left: -6rem !important - } - - .p-xxl-0 { - padding: 0 !important - } - - .p-xxl-1 { - padding: .25rem !important - } - - .p-xxl-2 { - padding: .5rem !important - } - - .p-xxl-3 { - padding: 1rem !important - } - - .p-xxl-4 { - padding: 1.5rem !important - } - - .p-xxl-5 { - padding: 3rem !important - } - - .p-xxl-6 { - padding: 4.5rem !important - } - - .p-xxl-7 { - padding: 6rem !important - } - - .px-xxl-0 { - padding-right: 0 !important; - padding-left: 0 !important - } - - .px-xxl-1 { - padding-right: .25rem !important; - padding-left: .25rem !important - } - - .px-xxl-2 { - padding-right: .5rem !important; - padding-left: .5rem !important - } - - .px-xxl-3 { - padding-right: 1rem !important; - padding-left: 1rem !important - } - - .px-xxl-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important - } - - .px-xxl-5 { - padding-right: 3rem !important; - padding-left: 3rem !important - } - - .px-xxl-6 { - padding-right: 4.5rem !important; - padding-left: 4.5rem !important - } - - .px-xxl-7 { - padding-right: 6rem !important; - padding-left: 6rem !important - } - - .py-xxl-0 { - padding-top: 0 !important; - padding-bottom: 0 !important - } - - .py-xxl-1 { - padding-top: .25rem !important; - padding-bottom: .25rem !important - } - - .py-xxl-2 { - padding-top: .5rem !important; - padding-bottom: .5rem !important - } - - .py-xxl-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important - } - - .py-xxl-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important - } - - .py-xxl-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important - } - - .py-xxl-6 { - padding-top: 4.5rem !important; - padding-bottom: 4.5rem !important - } - - .py-xxl-7 { - padding-top: 6rem !important; - padding-bottom: 6rem !important - } - - .pt-xxl-0 { - padding-top: 0 !important - } - - .pt-xxl-1 { - padding-top: .25rem !important - } - - .pt-xxl-2 { - padding-top: .5rem !important - } - - .pt-xxl-3 { - padding-top: 1rem !important - } - - .pt-xxl-4 { - padding-top: 1.5rem !important - } - - .pt-xxl-5 { - padding-top: 3rem !important - } - - .pt-xxl-6 { - padding-top: 4.5rem !important - } - - .pt-xxl-7 { - padding-top: 6rem !important - } - - .pr-xxl-0 { - padding-right: 0 !important - } - - .pr-xxl-1 { - padding-right: .25rem !important - } - - .pr-xxl-2 { - padding-right: .5rem !important - } - - .pr-xxl-3 { - padding-right: 1rem !important - } - - .pr-xxl-4 { - padding-right: 1.5rem !important - } - - .pr-xxl-5 { - padding-right: 3rem !important - } - - .pr-xxl-6 { - padding-right: 4.5rem !important - } - - .pr-xxl-7 { - padding-right: 6rem !important - } - - .pb-xxl-0 { - padding-bottom: 0 !important - } - - .pb-xxl-1 { - padding-bottom: .25rem !important - } - - .pb-xxl-2 { - padding-bottom: .5rem !important - } - - .pb-xxl-3 { - padding-bottom: 1rem !important - } - - .pb-xxl-4 { - padding-bottom: 1.5rem !important - } - - .pb-xxl-5 { - padding-bottom: 3rem !important - } - - .pb-xxl-6 { - padding-bottom: 4.5rem !important - } - - .pb-xxl-7 { - padding-bottom: 6rem !important - } - - .pl-xxl-0 { - padding-left: 0 !important - } - - .pl-xxl-1 { - padding-left: .25rem !important - } - - .pl-xxl-2 { - padding-left: .5rem !important - } - - .pl-xxl-3 { - padding-left: 1rem !important - } - - .pl-xxl-4 { - padding-left: 1.5rem !important - } - - .pl-xxl-5 { - padding-left: 3rem !important - } - - .pl-xxl-6 { - padding-left: 4.5rem !important - } - - .pl-xxl-7 { - padding-left: 6rem !important - } - - .text-xxl-left { - text-align: left !important - } - - .text-xxl-right { - text-align: right !important - } - - .text-xxl-center { - text-align: center !important - } -} - -@media print { - .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: flex !important - } - - .d-print-inline-flex { - display: inline-flex !important - } - - .d-print-none { - display: none !important - } -} - -.accordion .card:not(:last-child) { - margin-bottom: 0 -} - -.accordion .card-header { - border-bottom: 0 -} - -.accordion .card-body { - border-top: 1px solid transparent -} - -.accordion .card-title a { - color: #495057 -} - -.alert { - padding: 0; - display: flex -} - -.alert .close:focus, .alert .close:hover { - opacity: 1 -} - -.alert-outline, .alert-outline-coloured { - color: #495057; - background: #fff -} - -.alert-outline-coloured hr, .alert-outline hr { - border-top-color: #ced4da -} - -.alert-outline-coloured .close:focus, .alert-outline-coloured .close:hover, .alert-outline .close:focus, .alert-outline .close:hover { - color: #343a40 -} - -.alert-outline-coloured .alert-message, .alert-outline .alert-message { - border-top-right-radius: .2rem; - border-bottom-right-radius: .2rem; - border-top-left-radius: .2rem; - border-bottom-left-radius: .2rem; - border: 1px solid #ced4da -} - -.alert-outline-coloured .alert-message:not(:nth-child(2)), .alert-outline .alert-message:not(:nth-child(2)) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - border-left: 0 -} - -.alert-outline-coloured .alert-icon, .alert-outline .alert-icon { - border-top-left-radius: .2rem; - border-bottom-left-radius: .2rem; - color: #fff -} - -.alert-outline-coloured.alert-primary .alert-icon, .alert-outline.alert-primary .alert-icon { - background-color: #3b7ddd -} - -.alert-outline-coloured.alert-secondary .alert-icon, .alert-outline.alert-secondary .alert-icon { - background-color: #6c757d -} - -.alert-outline-coloured.alert-success .alert-icon, .alert-outline.alert-success .alert-icon { - background-color: #28a745 -} - -.alert-outline-coloured.alert-info .alert-icon, .alert-outline.alert-info .alert-icon { - background-color: #17a2b8 -} - -.alert-outline-coloured.alert-warning .alert-icon, .alert-outline.alert-warning .alert-icon { - background-color: #ffc107 -} - -.alert-outline-coloured.alert-danger .alert-icon, .alert-outline.alert-danger .alert-icon { - background-color: #dc3545 -} - -.alert-outline-coloured.alert-light .alert-icon, .alert-outline.alert-light .alert-icon { - background-color: #f8f9fa -} - -.alert-outline-coloured.alert-dark .alert-icon, .alert-outline.alert-dark .alert-icon { - background-color: #212529 -} - -.alert-outline-coloured.alert-primary .alert-message { - border-color: #3b7ddd -} - -.alert-outline-coloured.alert-secondary .alert-message { - border-color: #6c757d -} - -.alert-outline-coloured.alert-success .alert-message { - border-color: #28a745 -} - -.alert-outline-coloured.alert-info .alert-message { - border-color: #17a2b8 -} - -.alert-outline-coloured.alert-warning .alert-message { - border-color: #ffc107 -} - -.alert-outline-coloured.alert-danger .alert-message { - border-color: #dc3545 -} - -.alert-outline-coloured.alert-light .alert-message { - border-color: #f8f9fa -} - -.alert-outline-coloured.alert-dark .alert-message { - border-color: #212529 -} - -.alert-icon { - padding: .95rem; - background: rgba(0, 0, 0, .05) -} - -.alert-message { - padding: .95rem; - width: 100%; - box-sizing: border-box -} - -.avatar { - width: 40px; - height: 40px -} - -.avatar-title { - display: flex; - width: 100%; - height: 100%; - align-items: center; - justify-content: center; - color: #3b7ddd -} - -.btn-pill { - border-radius: 10rem -} - -.btn-square { - border-radius: 0 -} - -.btn .feather { - width: 14px; - height: 14px -} - -.btn-danger, .btn-danger.disabled, .btn-danger.focus, .btn-danger.hover:not(:disabled):not(.disabled), .btn-danger:disabled, .btn-danger:focus, .btn-danger:hover:not(:disabled):not(.disabled), .btn-dark, .btn-dark.disabled, .btn-dark.focus, .btn-dark.hover:not(:disabled):not(.disabled), .btn-dark:disabled, .btn-dark:focus, .btn-dark:hover:not(:disabled):not(.disabled), .btn-info, .btn-info.disabled, .btn-info.focus, .btn-info.hover:not(:disabled):not(.disabled), .btn-info:disabled, .btn-info:focus, .btn-info:hover:not(:disabled):not(.disabled), .btn-light, .btn-light.disabled, .btn-light.focus, .btn-light.hover:not(:disabled):not(.disabled), .btn-light:disabled, .btn-light:focus, .btn-light:hover:not(:disabled):not(.disabled), .btn-outline-danger.hover:not(:disabled):not(.disabled), .btn-outline-danger:hover:not(:disabled):not(.disabled), .btn-outline-danger:not(:disabled):not(.disabled).active, .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-dark.hover:not(:disabled):not(.disabled), .btn-outline-dark:hover:not(:disabled):not(.disabled), .btn-outline-dark:not(:disabled):not(.disabled).active, .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-info.hover:not(:disabled):not(.disabled), .btn-outline-info:hover:not(:disabled):not(.disabled), .btn-outline-info:not(:disabled):not(.disabled).active, .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-light.hover:not(:disabled):not(.disabled), .btn-outline-light:hover:not(:disabled):not(.disabled), .btn-outline-light:not(:disabled):not(.disabled).active, .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-primary.hover:not(:disabled):not(.disabled), .btn-outline-primary:hover:not(:disabled):not(.disabled), .btn-outline-primary:not(:disabled):not(.disabled).active, .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-secondary.hover:not(:disabled):not(.disabled), .btn-outline-secondary:hover:not(:disabled):not(.disabled), .btn-outline-secondary:not(:disabled):not(.disabled).active, .btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-success.hover:not(:disabled):not(.disabled), .btn-outline-success:hover:not(:disabled):not(.disabled), .btn-outline-success:not(:disabled):not(.disabled).active, .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-warning.hover:not(:disabled):not(.disabled), .btn-outline-warning:hover:not(:disabled):not(.disabled), .btn-outline-warning:not(:disabled):not(.disabled).active, .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-primary, .btn-primary.disabled, .btn-primary.focus, .btn-primary.hover:not(:disabled):not(.disabled), .btn-primary:disabled, .btn-primary:focus, .btn-primary:hover:not(:disabled):not(.disabled), .btn-secondary, .btn-secondary.disabled, .btn-secondary.focus, .btn-secondary.hover:not(:disabled):not(.disabled), .btn-secondary:disabled, .btn-secondary:focus, .btn-secondary:hover:not(:disabled):not(.disabled), .btn-success, .btn-success.disabled, .btn-success.focus, .btn-success.hover:not(:disabled):not(.disabled), .btn-success:disabled, .btn-success:focus, .btn-success:hover:not(:disabled):not(.disabled), .btn-warning, .btn-warning.disabled, .btn-warning.focus, .btn-warning.hover:not(:disabled):not(.disabled), .btn-warning:disabled, .btn-warning:focus, .btn-warning:hover:not(:disabled):not(.disabled), .show > .btn-danger.dropdown-toggle, .show > .btn-dark.dropdown-toggle, .show > .btn-info.dropdown-toggle, .show > .btn-light.dropdown-toggle, .show > .btn-primary.dropdown-toggle, .show > .btn-secondary.dropdown-toggle, .show > .btn-success.dropdown-toggle, .show > .btn-warning.dropdown-toggle { - color: #fff -} - -.btn-facebook { - color: #fff; - background-color: #3b5998; - border-color: #3b5998 -} - -.btn-check:focus + .btn-facebook, .btn-facebook:focus, .btn-facebook:hover { - color: #fff; - background-color: #30497c; - border-color: #2d4373 -} - -.btn-check:focus + .btn-facebook, .btn-facebook:focus { - box-shadow: 0 0 0 .2rem rgba(88, 114, 167, .5) -} - -.btn-check:active + .btn-facebook, .btn-check:checked + .btn-facebook, .btn-facebook.active, .btn-facebook:active, .show > .btn-facebook.dropdown-toggle { - color: #fff; - background-color: #2d4373; - border-color: #293e6a -} - -.btn-check:active + .btn-facebook:focus, .btn-check:checked + .btn-facebook:focus, .btn-facebook.active:focus, .btn-facebook:active:focus, .show > .btn-facebook.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem rgba(88, 114, 167, .5) -} - -.btn-facebook.disabled, .btn-facebook:disabled { - color: #fff; - background-color: #3b5998; - border-color: #3b5998 -} - -.btn-facebook, .btn-facebook.disabled, .btn-facebook.focus, .btn-facebook.hover:not(:disabled):not(.disabled), .btn-facebook:disabled, .btn-facebook:focus, .btn-facebook:hover:not(:disabled):not(.disabled), .show > .btn-facebook.dropdown-toggle { - color: #fff -} - -.btn-twitter { - color: #000; - background-color: #1da1f2; - border-color: #1da1f2 -} - -.btn-check:focus + .btn-twitter, .btn-twitter:focus, .btn-twitter:hover { - color: #000; - background-color: #41b0f4; - border-color: #35abf3 -} - -.btn-check:focus + .btn-twitter, .btn-twitter:focus { - box-shadow: 0 0 0 .2rem rgba(25, 137, 206, .5) -} - -.btn-check:active + .btn-twitter, .btn-check:checked + .btn-twitter, .btn-twitter.active, .btn-twitter:active, .show > .btn-twitter.dropdown-toggle { - color: #000; - background-color: #4db5f5; - border-color: #35abf3 -} - -.btn-check:active + .btn-twitter:focus, .btn-check:checked + .btn-twitter:focus, .btn-twitter.active:focus, .btn-twitter:active:focus, .show > .btn-twitter.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem rgba(25, 137, 206, .5) -} - -.btn-twitter.disabled, .btn-twitter:disabled { - color: #000; - background-color: #1da1f2; - border-color: #1da1f2 -} - -.btn-twitter, .btn-twitter.disabled, .btn-twitter.focus, .btn-twitter.hover:not(:disabled):not(.disabled), .btn-twitter:disabled, .btn-twitter:focus, .btn-twitter:hover:not(:disabled):not(.disabled), .show > .btn-twitter.dropdown-toggle { - color: #fff -} - -.btn-google { - color: #000; - background-color: #dc4e41; - border-color: #dc4e41 -} - -.btn-check:focus + .btn-google, .btn-google:focus, .btn-google:hover { - color: #000; - background-color: #e26c61; - border-color: #e06257 -} - -.btn-check:focus + .btn-google, .btn-google:focus { - box-shadow: 0 0 0 .2rem rgba(187, 66, 55, .5) -} - -.btn-check:active + .btn-google, .btn-check:checked + .btn-google, .btn-google.active, .btn-google:active, .show > .btn-google.dropdown-toggle { - color: #000; - background-color: #e4766c; - border-color: #e06257 -} - -.btn-check:active + .btn-google:focus, .btn-check:checked + .btn-google:focus, .btn-google.active:focus, .btn-google:active:focus, .show > .btn-google.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem rgba(187, 66, 55, .5) -} - -.btn-google.disabled, .btn-google:disabled { - color: #000; - background-color: #dc4e41; - border-color: #dc4e41 -} - -.btn-google, .btn-google.disabled, .btn-google.focus, .btn-google.hover:not(:disabled):not(.disabled), .btn-google:disabled, .btn-google:focus, .btn-google:hover:not(:disabled):not(.disabled), .show > .btn-google.dropdown-toggle { - color: #fff -} - -.btn-youtube { - color: #000; - background-color: red; - border-color: red -} - -.btn-check:focus + .btn-youtube, .btn-youtube:focus, .btn-youtube:hover { - color: #000; - background-color: #ff2626; - border-color: #ff1a1a -} - -.btn-check:focus + .btn-youtube, .btn-youtube:focus { - box-shadow: 0 0 0 .2rem rgba(217, 0, 0, .5) -} - -.btn-check:active + .btn-youtube, .btn-check:checked + .btn-youtube, .btn-youtube.active, .btn-youtube:active, .show > .btn-youtube.dropdown-toggle { - color: #000; - background-color: #f33; - border-color: #ff1a1a -} - -.btn-check:active + .btn-youtube:focus, .btn-check:checked + .btn-youtube:focus, .btn-youtube.active:focus, .btn-youtube:active:focus, .show > .btn-youtube.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem rgba(217, 0, 0, .5) -} - -.btn-youtube.disabled, .btn-youtube:disabled { - color: #000; - background-color: red; - border-color: red -} - -.btn-youtube, .btn-youtube.disabled, .btn-youtube.focus, .btn-youtube.hover:not(:disabled):not(.disabled), .btn-youtube:disabled, .btn-youtube:focus, .btn-youtube:hover:not(:disabled):not(.disabled), .show > .btn-youtube.dropdown-toggle { - color: #fff -} - -.btn-vimeo { - color: #000; - background-color: #1ab7ea; - border-color: #1ab7ea -} - -.btn-check:focus + .btn-vimeo, .btn-vimeo:focus, .btn-vimeo:hover { - color: #000; - background-color: #3dc2ed; - border-color: #31beec -} - -.btn-check:focus + .btn-vimeo, .btn-vimeo:focus { - box-shadow: 0 0 0 .2rem rgba(22, 156, 199, .5) -} - -.btn-check:active + .btn-vimeo, .btn-check:checked + .btn-vimeo, .btn-vimeo.active, .btn-vimeo:active, .show > .btn-vimeo.dropdown-toggle { - color: #000; - background-color: #49c6ee; - border-color: #31beec -} - -.btn-check:active + .btn-vimeo:focus, .btn-check:checked + .btn-vimeo:focus, .btn-vimeo.active:focus, .btn-vimeo:active:focus, .show > .btn-vimeo.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem rgba(22, 156, 199, .5) -} - -.btn-vimeo.disabled, .btn-vimeo:disabled { - color: #000; - background-color: #1ab7ea; - border-color: #1ab7ea -} - -.btn-vimeo, .btn-vimeo.disabled, .btn-vimeo.focus, .btn-vimeo.hover:not(:disabled):not(.disabled), .btn-vimeo:disabled, .btn-vimeo:focus, .btn-vimeo:hover:not(:disabled):not(.disabled), .show > .btn-vimeo.dropdown-toggle { - color: #fff -} - -.btn-dribbble { - color: #000; - background-color: #ea4c89; - border-color: #ea4c89 -} - -.btn-check:focus + .btn-dribbble, .btn-dribbble:focus, .btn-dribbble:hover { - color: #000; - background-color: #ee6ea0; - border-color: #ed6398 -} - -.btn-check:focus + .btn-dribbble, .btn-dribbble:focus { - box-shadow: 0 0 0 .2rem rgba(199, 65, 116, .5) -} - -.btn-check:active + .btn-dribbble, .btn-check:checked + .btn-dribbble, .btn-dribbble.active, .btn-dribbble:active, .show > .btn-dribbble.dropdown-toggle { - color: #000; - background-color: #ef7aa7; - border-color: #ed6398 -} - -.btn-check:active + .btn-dribbble:focus, .btn-check:checked + .btn-dribbble:focus, .btn-dribbble.active:focus, .btn-dribbble:active:focus, .show > .btn-dribbble.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem rgba(199, 65, 116, .5) -} - -.btn-dribbble.disabled, .btn-dribbble:disabled { - color: #000; - background-color: #ea4c89; - border-color: #ea4c89 -} - -.btn-dribbble, .btn-dribbble.disabled, .btn-dribbble.focus, .btn-dribbble.hover:not(:disabled):not(.disabled), .btn-dribbble:disabled, .btn-dribbble:focus, .btn-dribbble:hover:not(:disabled):not(.disabled), .show > .btn-dribbble.dropdown-toggle { - color: #fff -} - -.btn-github { - color: #fff; - background-color: #181717; - border-color: #181717 -} - -.btn-check:focus + .btn-github, .btn-github:focus, .btn-github:hover { - color: #fff; - background-color: #040404; - border-color: #000 -} - -.btn-check:focus + .btn-github, .btn-github:focus { - box-shadow: 0 0 0 .2rem rgba(59, 58, 58, .5) -} - -.btn-check:active + .btn-github, .btn-check:checked + .btn-github, .btn-github.active, .btn-github:active, .show > .btn-github.dropdown-toggle { - color: #fff; - background-color: #000; - border-color: #000 -} - -.btn-check:active + .btn-github:focus, .btn-check:checked + .btn-github:focus, .btn-github.active:focus, .btn-github:active:focus, .show > .btn-github.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem rgba(59, 58, 58, .5) -} - -.btn-github.disabled, .btn-github:disabled { - color: #fff; - background-color: #181717; - border-color: #181717 -} - -.btn-github, .btn-github.disabled, .btn-github.focus, .btn-github.hover:not(:disabled):not(.disabled), .btn-github:disabled, .btn-github:focus, .btn-github:hover:not(:disabled):not(.disabled), .show > .btn-github.dropdown-toggle { - color: #fff -} - -.btn-instagram { - color: #000; - background-color: #e4405f; - border-color: #e4405f -} - -.btn-check:focus + .btn-instagram, .btn-instagram:focus, .btn-instagram:hover { - color: #000; - background-color: #e9627b; - border-color: #e75672 -} - -.btn-check:focus + .btn-instagram, .btn-instagram:focus { - box-shadow: 0 0 0 .2rem rgba(194, 54, 81, .5) -} - -.btn-check:active + .btn-instagram, .btn-check:checked + .btn-instagram, .btn-instagram.active, .btn-instagram:active, .show > .btn-instagram.dropdown-toggle { - color: #000; - background-color: #ea6d84; - border-color: #e75672 -} - -.btn-check:active + .btn-instagram:focus, .btn-check:checked + .btn-instagram:focus, .btn-instagram.active:focus, .btn-instagram:active:focus, .show > .btn-instagram.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem rgba(194, 54, 81, .5) -} - -.btn-instagram.disabled, .btn-instagram:disabled { - color: #000; - background-color: #e4405f; - border-color: #e4405f -} - -.btn-instagram, .btn-instagram.disabled, .btn-instagram.focus, .btn-instagram.hover:not(:disabled):not(.disabled), .btn-instagram:disabled, .btn-instagram:focus, .btn-instagram:hover:not(:disabled):not(.disabled), .show > .btn-instagram.dropdown-toggle { - color: #fff -} - -.btn-pinterest { - color: #fff; - background-color: #bd081c; - border-color: #bd081c -} - -.btn-check:focus + .btn-pinterest, .btn-pinterest:focus, .btn-pinterest:hover { - color: #fff; - background-color: #980617; - border-color: #8c0615 -} - -.btn-check:focus + .btn-pinterest, .btn-pinterest:focus { - box-shadow: 0 0 0 .2rem rgba(199, 45, 62, .5) -} - -.btn-check:active + .btn-pinterest, .btn-check:checked + .btn-pinterest, .btn-pinterest.active, .btn-pinterest:active, .show > .btn-pinterest.dropdown-toggle { - color: #fff; - background-color: #8c0615; - border-color: #800513 -} - -.btn-check:active + .btn-pinterest:focus, .btn-check:checked + .btn-pinterest:focus, .btn-pinterest.active:focus, .btn-pinterest:active:focus, .show > .btn-pinterest.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem rgba(199, 45, 62, .5) -} - -.btn-pinterest.disabled, .btn-pinterest:disabled { - color: #fff; - background-color: #bd081c; - border-color: #bd081c -} - -.btn-pinterest, .btn-pinterest.disabled, .btn-pinterest.focus, .btn-pinterest.hover:not(:disabled):not(.disabled), .btn-pinterest:disabled, .btn-pinterest:focus, .btn-pinterest:hover:not(:disabled):not(.disabled), .show > .btn-pinterest.dropdown-toggle { - color: #fff -} - -.btn-flickr { - color: #fff; - background-color: #0063dc; - border-color: #0063dc -} - -.btn-check:focus + .btn-flickr, .btn-flickr:focus, .btn-flickr:hover { - color: #fff; - background-color: #0052b6; - border-color: #004ca9 -} - -.btn-check:focus + .btn-flickr, .btn-flickr:focus { - box-shadow: 0 0 0 .2rem rgba(38, 122, 225, .5) -} - -.btn-check:active + .btn-flickr, .btn-check:checked + .btn-flickr, .btn-flickr.active, .btn-flickr:active, .show > .btn-flickr.dropdown-toggle { - color: #fff; - background-color: #004ca9; - border-color: #00469c -} - -.btn-check:active + .btn-flickr:focus, .btn-check:checked + .btn-flickr:focus, .btn-flickr.active:focus, .btn-flickr:active:focus, .show > .btn-flickr.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem rgba(38, 122, 225, .5) -} - -.btn-flickr.disabled, .btn-flickr:disabled { - color: #fff; - background-color: #0063dc; - border-color: #0063dc -} - -.btn-flickr, .btn-flickr.disabled, .btn-flickr.focus, .btn-flickr.hover:not(:disabled):not(.disabled), .btn-flickr:disabled, .btn-flickr:focus, .btn-flickr:hover:not(:disabled):not(.disabled), .show > .btn-flickr.dropdown-toggle { - color: #fff -} - -.btn-bitbucket { - color: #fff; - background-color: #0052cc; - border-color: #0052cc -} - -.btn-bitbucket:focus, .btn-bitbucket:hover, .btn-check:focus + .btn-bitbucket { - color: #fff; - background-color: #0043a6; - border-color: #003e99 -} - -.btn-bitbucket:focus, .btn-check:focus + .btn-bitbucket { - box-shadow: 0 0 0 .2rem rgba(38, 108, 212, .5) -} - -.btn-bitbucket.active, .btn-bitbucket:active, .btn-check:active + .btn-bitbucket, .btn-check:checked + .btn-bitbucket, .show > .btn-bitbucket.dropdown-toggle { - color: #fff; - background-color: #003e99; - border-color: #00388c -} - -.btn-bitbucket.active:focus, .btn-bitbucket:active:focus, .btn-check:active + .btn-bitbucket:focus, .btn-check:checked + .btn-bitbucket:focus, .show > .btn-bitbucket.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem rgba(38, 108, 212, .5) -} - -.btn-bitbucket.disabled, .btn-bitbucket:disabled { - color: #fff; - background-color: #0052cc; - border-color: #0052cc -} - -.btn-bitbucket, .btn-bitbucket.disabled, .btn-bitbucket.focus, .btn-bitbucket.hover:not(:disabled):not(.disabled), .btn-bitbucket:disabled, .btn-bitbucket:focus, .btn-bitbucket:hover:not(:disabled):not(.disabled), .show > .btn-bitbucket.dropdown-toggle { - color: #fff -} - -.btn-light, .btn-light.disabled, .btn-light.focus, .btn-light.hover:not(:disabled):not(.disabled), .btn-light:disabled, .btn-light:focus, .btn-light:hover:not(:disabled):not(.disabled), .btn-outline-light.hover:not(:disabled):not(.disabled), .btn-outline-light:hover:not(:disabled):not(.disabled), .btn-outline-light:not(:disabled):not(.disabled).active, .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-white.hover:not(:disabled):not(.disabled), .btn-outline-white:hover:not(:disabled):not(.disabled), .btn-outline-white:not(:disabled):not(.disabled).active, .btn-outline-white:not(:disabled):not(.disabled):active, .btn-white, .btn-white.disabled, .btn-white.focus, .btn-white.hover:not(:disabled):not(.disabled), .btn-white:disabled, .btn-white:focus, .btn-white:hover:not(:disabled):not(.disabled), .show > .btn-light.dropdown-toggle, .show > .btn-white.dropdown-toggle { - color: #343a40 -} - -.card { - margin-bottom: 24px; - box-shadow: 0 0 .875rem 0 rgba(33, 37, 41, .05) -} - -.card-header { - border-bottom-width: 1px -} - -.card-actions a { - color: #495057; - text-decoration: none -} - -.card-actions svg { - width: 16px; - height: 16px -} - -.card-actions .dropdown { - line-height: 1.4 -} - -.card-title { - font-size: .875rem; - color: #495057 -} - -.card-subtitle, .card-title { - font-weight: 400 -} - -.card-table { - margin-bottom: 0 -} - -.card-table tr td:first-child, .card-table tr th:first-child { - padding-left: 1.25rem -} - -.card-table tr td:last-child, .card-table tr th:last-child { - padding-right: 1.25rem -} - -.card-img, .card-img-bottom, .card-img-top { - max-width: 100%; - height: auto -} - -@media (-ms-high-contrast: none) { - .card-img, .card-img-bottom, .card-img-top { - height: 100% - } -} - -.chart { - margin: auto; - position: relative; - width: 100%; - min-height: 300px -} - -.chart-xs { - min-height: 200px -} - -.chart-sm { - min-height: 252px -} - -.chart-lg { - min-height: 350px -} - -.chart-xl { - min-height: 500px -} - -.chart canvas { - max-width: 100% -} - -.content { - padding: 1.5rem 1.5rem .75rem; - flex: 1; - width: 100vw; - max-width: 100vw; - direction: ltr -} - -@media (min-width: 768px) { - .content { - width: auto; - max-width: auto - } -} - -@media (min-width: 992px) { - .content { - padding: 2.5rem 2.5rem 1rem - } -} - -.navbar-nav .dropdown-menu { - box-shadow: 0 .1rem .2rem rgba(0, 0, 0, .05) -} - -.dropdown .dropdown-menu.show { - animation-name: dropdownAnimation; - animation-duration: .25s; - animation-iteration-count: 1; - animation-timing-function: ease; - animation-fill-mode: forwards -} - -@keyframes dropdownAnimation { - 0% { - opacity: 0; - transform: translateY(-8px) - } - to { - opacity: 1; - transform: translate(0) - } -} - -.dropdown-toggle:after { - border: solid; - border-width: 0 2px 2px 0; - display: inline-block; - padding: 2px; - transform: rotate(45deg) -} - -.dropdown-item { - transition: background .1s ease-in-out, color .1s ease-in-out -} - -.dropdown-menu { - top: auto -} - -.dropdown-menu-lg { - min-width: 20rem -} - -.dropdown .list-group .list-group-item { - border-width: 0 0 1px; - margin-bottom: 0 -} - -.dropdown .list-group .list-group-item:first-child, .dropdown .list-group .list-group-item:last-child { - border-radius: 0 -} - -.dropdown .list-group .list-group-item:hover { - background: #f8f9fa -} - -.dropdown-menu-header { - padding: .75rem; - text-align: center; - font-weight: 600; - border-bottom: 1px solid #dee2e6 -} - -.dropdown-menu-footer { - padding: .5rem; - text-align: center; - display: block; - font-size: .75rem -} - -.feather { - width: 18px; - height: 18px; - stroke-width: 1.5 -} - -.feather-sm { - width: 14px; - height: 14px -} - -.feather-lg { - width: 36px; - height: 36px -} - -footer.footer { - padding: 1rem .875rem; - direction: ltr; - background: #fff -} - -footer.footer ul { - margin-bottom: 0 -} - -@media (max-width: 767.98px) { - footer.footer { - width: 100vw - } -} - -.input-group-navbar .btn, .input-group-navbar .form-control { - height: calc(2.0875rem + 2px); - background: #f7f7fc; - box-shadow: none; - border: 0; - padding: .35rem .75rem -} - -.input-group-navbar .btn:focus, .input-group-navbar .form-control:focus { - background: #f7f7fc; - box-shadow: none; - outline: 0 -} - -.input-group-navbar .btn { - color: #6c757d -} - -.input-group-navbar .btn .feather { - width: 20px; - height: 20px -} - -.hamburger, .hamburger:after, .hamburger:before { - cursor: pointer; - border-radius: 1px; - height: 3px; - width: 24px; - background: #495057; - display: block; - content: ""; - transition: background .1s ease-in-out, color .1s ease-in-out -} - -.hamburger { - position: relative -} - -.hamburger:before { - top: -7.5px; - width: 24px; - position: absolute -} - -.hamburger:after { - bottom: -7.5px; - width: 16px; - position: absolute -} - -.sidebar-toggle:hover .hamburger, .sidebar-toggle:hover .hamburger:after, .sidebar-toggle:hover .hamburger:before { - background: #3b7ddd -} - -.hamburger-right, .hamburger-right:after, .hamburger-right:before { - right: 0 -} - -a.list-group-item { - text-decoration: none -} - -.main { - display: flex; - width: 100%; - min-width: 0; - min-height: 100vh; - transition: margin-left .35s ease-in-out, left .35s ease-in-out, margin-right .35s ease-in-out, right .35s ease-in-out; - /*background: #f7f7fc;*/ - background-color: #ddd; - flex-direction: column; - overflow: hidden; - border-top-left-radius: 0; - border-bottom-left-radius: 0 -} - -@media (min-width: 992px) { - .main { - box-shadow: inset .75rem 0 1.5rem 0 rgba(0, 0, 0, .075) - } -} - -.modal-colored .modal-footer, .modal-colored .modal-header { - border-color: hsla(0, 0%, 100%, .33) -} - -.navbar { - border-bottom: 0; - box-shadow: 0 0 2rem 0 rgba(33, 37, 41, .1) -} - -@media (max-width: 767.98px) { - .navbar { - width: 100vw - } -} - -.navbar .avatar { - margin-top: -15px; - margin-bottom: -15px -} - -.navbar-nav { - direction: ltr -} - -.navbar-align { - margin-left: auto -} - -.navbar-bg { - background: #fff -} - -.navbar-brand { - font-weight: 400; - font-size: 1.15rem; - padding: .875rem 0; - color: #f8f9fa; - display: block -} - -.navbar-brand .feather, .navbar-brand svg { - color: #3b7ddd; - height: 24px; - width: 24px; - margin-left: -.15rem; - margin-right: .375rem; - margin-top: -.375rem -} - -.nav-flag, .nav-icon { - padding: .1rem .8rem; - display: block; - font-size: 1.5rem; - color: #6c757d; - transition: background .1s ease-in-out, color .1s ease-in-out; - line-height: 1.4 -} - -.nav-flag:after, .nav-icon:after { - display: none !important -} - -.nav-flag.active, .nav-flag:hover, .nav-icon.active, .nav-icon:hover { - color: #3b7ddd -} - -.nav-flag .feather, .nav-flag svg, .nav-icon .feather, .nav-icon svg { - width: 20px; - height: 20px -} - -.nav-item .indicator { - background: #3b7ddd; - box-shadow: 0 .1rem .2rem rgba(0, 0, 0, .05); - border-radius: 50%; - display: block; - height: 18px; - width: 18px; - padding: 1px; - position: absolute; - top: 0; - right: -8px; - text-align: center; - transition: top .1s ease-out; - font-size: .675rem; - color: #fff -} - -.nav-item:hover .indicator { - top: -4px -} - -.nav-item a:focus { - outline: 0 -} - -@media (-ms-high-contrast: none), screen and (-ms-high-contrast: active) { - .navbar .avatar { - max-height: 47px - } -} - -@media (max-width: 575.98px) { - .navbar { - padding: .75rem - } - - .nav-icon { - padding: .1rem .75rem - } - - .dropdown, .dropleft, .dropright, .dropup { - position: inherit - } - - .navbar-expand .navbar-nav .dropdown-menu-lg { - min-width: 100% - } - - .nav-item .nav-link:after { - display: none - } -} - -.nav-flag img { - border-radius: 50%; - width: 20px; - height: 20px; - object-fit: cover -} - -.navbar input { - direction: ltr -} - -.progress-sm { - height: .5rem -} - -.progress-lg { - height: 1.5rem -} - -#root, body, html { - height: 100% -} - -body { - overflow-y: scroll; - opacity: 1 !important -} - -@media (-ms-high-contrast: none), screen and (-ms-high-contrast: active) { - html { - overflow-x: hidden - } -} - -.sidebar { - min-width: 260px; - max-width: 260px; - direction: ltr -} - -.sidebar, .sidebar-content { - transition: margin-left .35s ease-in-out, left .35s ease-in-out, margin-right .35s ease-in-out, right .35s ease-in-out; - background: #222e3c -} - -.sidebar-content { - display: flex; - height: 100vh; - flex-direction: column -} - -.sidebar-nav { - padding-left: 0; - margin-bottom: 0; - list-style: none; - flex-grow: 1 -} - -.sidebar-link, a.sidebar-link { - display: block; - padding: .625rem 1.625rem; - font-weight: 400; - transition: background .1s ease-in-out; - position: relative; - text-decoration: none; - cursor: pointer; - color: rgba(233, 236, 239, .5); - background: #222e3c; - border-left: 3px solid transparent -} - -.sidebar-link i, .sidebar-link svg, a.sidebar-link i, a.sidebar-link svg { - margin-right: .75rem; - color: rgba(233, 236, 239, .5) -} - -.sidebar-link:focus { - outline: 0 -} - -.sidebar-link:hover { - background: #222e3c; - border-left-color: transparent -} - -.sidebar-link:hover, .sidebar-link:hover i, .sidebar-link:hover svg { - color: rgba(233, 236, 239, .75) -} - -.sidebar-item.active .sidebar-link:hover, .sidebar-item.active > .sidebar-link { - color: #e9ecef; - background: linear-gradient(90deg, rgba(59, 125, 221, .1), rgba(59, 125, 221, .0875) 50%, transparent); - border-left-color: #3b7ddd -} - -.sidebar-item.active .sidebar-link:hover i, .sidebar-item.active .sidebar-link:hover svg, .sidebar-item.active > .sidebar-link i, .sidebar-item.active > .sidebar-link svg { - color: #e9ecef -} - -.sidebar-dropdown .sidebar-link { - padding: .625rem 1.5rem .625rem 3.25rem; - font-weight: 400; - font-size: 90%; - border-left: 0; - color: #adb5bd; - background: transparent -} - -.sidebar-dropdown .sidebar-link:before { - content: "→"; - display: inline-block; - position: relative; - left: -14px; - transition: all .1s ease; - transform: translateX(0) -} - -.sidebar-dropdown .sidebar-item .sidebar-link:hover { - font-weight: 400; - border-left: 0; - color: #e9ecef; - background: transparent -} - -.sidebar-dropdown .sidebar-item .sidebar-link:hover:hover:before { - transform: translateX(4px) -} - -.sidebar-dropdown .sidebar-item.active .sidebar-link { - font-weight: 400; - border-left: 0; - color: #518be1; - background: transparent -} - -.sidebar [data-toggle=collapse] { - position: relative -} - -.sidebar [data-toggle=collapse]:after { - content: " "; - border: solid; - border-width: 0 .075rem .075rem 0; - display: inline-block; - padding: 2px; - transform: rotate(45deg); - position: absolute; - top: 1.2rem; - right: 1.5rem; - transition: all .2s ease-out -} - -.sidebar [aria-expanded=true]:after, .sidebar [data-toggle=collapse]:not(.collapsed):after { - transform: rotate(-135deg); - top: 1.4rem -} - -.sidebar-brand { - font-weight: 600; - font-size: 1.15rem; - padding: 1.15rem 1.5rem; - display: block; - color: #f8f9fa -} - -.sidebar-brand:hover { - text-decoration: none; - color: #f8f9fa -} - -.sidebar-brand:focus { - outline: 0 -} - -.sidebar-toggle { - cursor: pointer; - width: 26px; - height: 26px -} - -.sidebar.collapsed { - margin-left: -260px -} - -@media (min-width: 1px) and (max-width: 991.98px) { - .sidebar { - margin-left: -260px - } - - .sidebar.collapsed { - margin-left: 0 - } -} - -.sidebar-toggle { - margin-right: 1rem -} - -.sidebar-header { - background: transparent; - padding: 1.5rem 1.5rem .375rem; - font-size: .75rem; - color: #ced4da -} - -.sidebar-badge { - position: absolute; - right: 15px; - top: 14px; - z-index: 1 -} - -.sidebar-cta-content { - padding: 1.5rem; - margin: 1.75rem; - border-radius: .3rem; - background: #2b3947; - color: #e9ecef -} - -.min-vw-50 { - min-width: 50vw !important -} - -.min-vh-50 { - min-height: 50vh !important -} - -.vw-50 { - width: 50vw !important -} - -.vh-50 { - height: 50vh !important -} - -.table > :not(:last-child) > :last-child > *, .table tbody, .table td, .table tfoot, .table th, .table thead, .table tr { - border-color: #dee2e6 -} - -.card > .dataTables_wrapper .table.dataTable, .card > .table, .card > .table-responsive-lg .table, .card > .table-responsive-md .table, .card > .table-responsive-sm .table, .card > .table-responsive-xl .table, .card > .table-responsive .table { - border-right: 0; - border-bottom: 0; - border-left: 0; - margin-bottom: 0 -} - -.card > .dataTables_wrapper .table.dataTable td:first-child, .card > .dataTables_wrapper .table.dataTable th:first-child, .card > .table-responsive-lg .table td:first-child, .card > .table-responsive-lg .table th:first-child, .card > .table-responsive-md .table td:first-child, .card > .table-responsive-md .table th:first-child, .card > .table-responsive-sm .table td:first-child, .card > .table-responsive-sm .table th:first-child, .card > .table-responsive-xl .table td:first-child, .card > .table-responsive-xl .table th:first-child, .card > .table-responsive .table td:first-child, .card > .table-responsive .table th:first-child, .card > .table td:first-child, .card > .table th:first-child { - border-left: 0; - padding-left: 1.25rem -} - -.card > .dataTables_wrapper .table.dataTable td:last-child, .card > .dataTables_wrapper .table.dataTable th:last-child, .card > .table-responsive-lg .table td:last-child, .card > .table-responsive-lg .table th:last-child, .card > .table-responsive-md .table td:last-child, .card > .table-responsive-md .table th:last-child, .card > .table-responsive-sm .table td:last-child, .card > .table-responsive-sm .table th:last-child, .card > .table-responsive-xl .table td:last-child, .card > .table-responsive-xl .table th:last-child, .card > .table-responsive .table td:last-child, .card > .table-responsive .table th:last-child, .card > .table td:last-child, .card > .table th:last-child { - border-right: 0; - padding-right: 1.25rem -} - -.card > .dataTables_wrapper .table.dataTable tr:first-child td, .card > .dataTables_wrapper .table.dataTable tr:first-child th, .card > .table-responsive-lg .table tr:first-child td, .card > .table-responsive-lg .table tr:first-child th, .card > .table-responsive-md .table tr:first-child td, .card > .table-responsive-md .table tr:first-child th, .card > .table-responsive-sm .table tr:first-child td, .card > .table-responsive-sm .table tr:first-child th, .card > .table-responsive-xl .table tr:first-child td, .card > .table-responsive-xl .table tr:first-child th, .card > .table-responsive .table tr:first-child td, .card > .table-responsive .table tr:first-child th, .card > .table tr:first-child td, .card > .table tr:first-child th { - border-top: 0 -} - -.card > .dataTables_wrapper .table.dataTable tr:last-child td, .card > .table-responsive-lg .table tr:last-child td, .card > .table-responsive-md .table tr:last-child td, .card > .table-responsive-sm .table tr:last-child td, .card > .table-responsive-xl .table tr:last-child td, .card > .table-responsive .table tr:last-child td, .card > .table tr:last-child td { - border-bottom: 0 -} - -.card .card-header + .table { - border-top: 0 -} - -.table-action a { - color: #6c757d -} - -.table-action a:hover { - color: #212529 -} - -.table-action .feather { - width: 18px; - height: 18px -} - -.table > tbody > tr > td { - vertical-align: middle -} - -.card > .dataTables_wrapper .table.dataTable { - margin-top: 0 !important; - margin-bottom: 0 !important -} - -.card > .dataTables_wrapper .dataTables_info { - padding: 1rem 1.25rem -} - -.card > .dataTables_wrapper .dataTables_paginate { - padding: .6rem 1.25rem -} - -.dt-bootstrap4 { - width: calc(100% - 2px) -} - -.text-sm { - font-size: .75rem -} - -.text-lg { - font-size: .925rem -} - -b, strong { - font-weight: 600 -} - -pre.snippet { - white-space: pre-wrap; - word-wrap: break-word; - text-align: justify -} - -a { - cursor: pointer -} - -.wrapper { - align-items: stretch; - display: flex; - width: 100%; - background: #222e3c -} - -.bg-primary-light { - background: #d3e2f7 -} - -.bg-secondary-light { - background: #caced1 -} - -.bg-success-light { - background: #9be7ac -} - -.bg-info-light { - background: #90e4f1 -} - -.bg-warning-light { - background: #ffeeba -} - -.bg-danger-light { - background: #f6cdd1 -} - -.bg-light-light { - background: #fff -} - -.bg-dark-light { - background: #717e8c -} - -.bg-primary-dark { - background: #0f2c56 -} - -.bg-secondary-dark { - background: #191b1d -} - -.bg-success-dark { - background: #06170a -} - -.bg-info-dark { - background: #031619 -} - -.bg-warning-dark { - background: #543f00 -} - -.bg-danger-dark { - background: #510e14 -} - -.bg-light-dark { - background: #90a0b0 -} - -.bg-dark-dark { - background: #000 -} - -.rounded-lg { - border-radius: .3rem !important -} - -.rounded-top-lg { - border-top-left-radius: .3rem !important -} - -.rounded-right-lg, .rounded-top-lg { - border-top-right-radius: .3rem !important -} - -.rounded-bottom-lg, .rounded-right-lg { - border-bottom-right-radius: .3rem !important -} - -.rounded-bottom-lg, .rounded-left-lg { - border-bottom-left-radius: .3rem !important -} - -.rounded-left-lg { - border-top-left-radius: .3rem !important -} - -.rounded-sm { - border-radius: .1rem !important -} - -.rounded-top-sm { - border-top-left-radius: .1rem !important -} - -.rounded-right-sm, .rounded-top-sm { - border-top-right-radius: .1rem !important -} - -.rounded-bottom-sm, .rounded-right-sm { - border-bottom-right-radius: .1rem !important -} - -.rounded-bottom-sm, .rounded-left-sm { - border-bottom-left-radius: .1rem !important -} - -.rounded-left-sm { - border-top-left-radius: .1rem !important -} - -.cursor-grab { - cursor: move; - cursor: grab; - cursor: -webkit-grab -} - -.cursor-pointer { - cursor: pointer -} - -.overflow-scroll { - overflow: scroll -} - -.overflow-hidden { - overflow: hidden -} - -.overflow-auto { - overflow: auto -} - -.overflow-visible { - overflow: visible -} - -/*! - * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -.fa, .fab, .fad, .fal, .far, .fas { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - line-height: 1 -} - -.fa-lg { - font-size: 1.33333em; - line-height: .75em; - vertical-align: -.0667em -} - -.fa-xs { - font-size: .75em -} - -.fa-sm { - font-size: .875em -} - -.fa-1x { - font-size: 1em -} - -.fa-2x { - font-size: 2em -} - -.fa-3x { - font-size: 3em -} - -.fa-4x { - font-size: 4em -} - -.fa-5x { - font-size: 5em -} - -.fa-6x { - font-size: 6em -} - -.fa-7x { - font-size: 7em -} - -.fa-8x { - font-size: 8em -} - -.fa-9x { - font-size: 9em -} - -.fa-10x { - font-size: 10em -} - -.fa-fw { - text-align: center; - width: 1.25em -} - -.fa-ul { - list-style-type: none; - margin-left: 2.5em; - padding-left: 0 -} - -.fa-ul > li { - position: relative -} - -.fa-li { - left: -2em; - position: absolute; - text-align: center; - width: 2em; - line-height: inherit -} - -.fa-border { - border: .08em solid #eee; - border-radius: .1em; - padding: .2em .25em .15em -} - -.fa-pull-left { - float: left -} - -.fa-pull-right { - float: right -} - -.fa.fa-pull-left, .fab.fa-pull-left, .fal.fa-pull-left, .far.fa-pull-left, .fas.fa-pull-left { - margin-right: .3em -} - -.fa.fa-pull-right, .fab.fa-pull-right, .fal.fa-pull-right, .far.fa-pull-right, .fas.fa-pull-right { - margin-left: .3em -} - -.fa-spin { - animation: fa-spin 2s linear infinite -} - -.fa-pulse { - animation: fa-spin 1s steps(8) infinite -} - -@keyframes fa-spin { - 0% { - transform: rotate(0deg) - } - to { - transform: rotate(1turn) - } -} - -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - transform: rotate(90deg) -} - -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - transform: rotate(180deg) -} - -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - transform: rotate(270deg) -} - -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - transform: scaleX(-1) -} - -.fa-flip-vertical { - transform: scaleY(-1) -} - -.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical, .fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)" -} - -.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical { - transform: scale(-1) -} - -:root .fa-flip-both, :root .fa-flip-horizontal, :root .fa-flip-vertical, :root .fa-rotate-90, :root .fa-rotate-180, :root .fa-rotate-270 { - filter: none -} - -.fa-stack { - display: inline-block; - height: 2em; - line-height: 2em; - position: relative; - vertical-align: middle; - width: 2.5em -} - -.fa-stack-1x, .fa-stack-2x { - left: 0; - position: absolute; - text-align: center; - width: 100% -} - -.fa-stack-1x { - line-height: inherit -} - -.fa-stack-2x { - font-size: 2em -} - -.fa-inverse { - color: #fff -} - -.fa-500px:before { - content: "\f26e" -} - -.fa-accessible-icon:before { - content: "\f368" -} - -.fa-accusoft:before { - content: "\f369" -} - -.fa-acquisitions-incorporated:before { - content: "\f6af" -} - -.fa-ad:before { - content: "\f641" -} - -.fa-address-book:before { - content: "\f2b9" -} - -.fa-address-card:before { - content: "\f2bb" -} - -.fa-adjust:before { - content: "\f042" -} - -.fa-adn:before { - content: "\f170" -} - -.fa-adversal:before { - content: "\f36a" -} - -.fa-affiliatetheme:before { - content: "\f36b" -} - -.fa-air-freshener:before { - content: "\f5d0" -} - -.fa-airbnb:before { - content: "\f834" -} - -.fa-algolia:before { - content: "\f36c" -} - -.fa-align-center:before { - content: "\f037" -} - -.fa-align-justify:before { - content: "\f039" -} - -.fa-align-left:before { - content: "\f036" -} - -.fa-align-right:before { - content: "\f038" -} - -.fa-alipay:before { - content: "\f642" -} - -.fa-allergies:before { - content: "\f461" -} - -.fa-amazon:before { - content: "\f270" -} - -.fa-amazon-pay:before { - content: "\f42c" -} - -.fa-ambulance:before { - content: "\f0f9" -} - -.fa-american-sign-language-interpreting:before { - content: "\f2a3" -} - -.fa-amilia:before { - content: "\f36d" -} - -.fa-anchor:before { - content: "\f13d" -} - -.fa-android:before { - content: "\f17b" -} - -.fa-angellist:before { - content: "\f209" -} - -.fa-angle-double-down:before { - content: "\f103" -} - -.fa-angle-double-left:before { - content: "\f100" -} - -.fa-angle-double-right:before { - content: "\f101" -} - -.fa-angle-double-up:before { - content: "\f102" -} - -.fa-angle-down:before { - content: "\f107" -} - -.fa-angle-left:before { - content: "\f104" -} - -.fa-angle-right:before { - content: "\f105" -} - -.fa-angle-up:before { - content: "\f106" -} - -.fa-angry:before { - content: "\f556" -} - -.fa-angrycreative:before { - content: "\f36e" -} - -.fa-angular:before { - content: "\f420" -} - -.fa-ankh:before { - content: "\f644" -} - -.fa-app-store:before { - content: "\f36f" -} - -.fa-app-store-ios:before { - content: "\f370" -} - -.fa-apper:before { - content: "\f371" -} - -.fa-apple:before { - content: "\f179" -} - -.fa-apple-alt:before { - content: "\f5d1" -} - -.fa-apple-pay:before { - content: "\f415" -} - -.fa-archive:before { - content: "\f187" -} - -.fa-archway:before { - content: "\f557" -} - -.fa-arrow-alt-circle-down:before { - content: "\f358" -} - -.fa-arrow-alt-circle-left:before { - content: "\f359" -} - -.fa-arrow-alt-circle-right:before { - content: "\f35a" -} - -.fa-arrow-alt-circle-up:before { - content: "\f35b" -} - -.fa-arrow-circle-down:before { - content: "\f0ab" -} - -.fa-arrow-circle-left:before { - content: "\f0a8" -} - -.fa-arrow-circle-right:before { - content: "\f0a9" -} - -.fa-arrow-circle-up:before { - content: "\f0aa" -} - -.fa-arrow-down:before { - content: "\f063" -} - -.fa-arrow-left:before { - content: "\f060" -} - -.fa-arrow-right:before { - content: "\f061" -} - -.fa-arrow-up:before { - content: "\f062" -} - -.fa-arrows-alt:before { - content: "\f0b2" -} - -.fa-arrows-alt-h:before { - content: "\f337" -} - -.fa-arrows-alt-v:before { - content: "\f338" -} - -.fa-artstation:before { - content: "\f77a" -} - -.fa-assistive-listening-systems:before { - content: "\f2a2" -} - -.fa-asterisk:before { - content: "\f069" -} - -.fa-asymmetrik:before { - content: "\f372" -} - -.fa-at:before { - content: "\f1fa" -} - -.fa-atlas:before { - content: "\f558" -} - -.fa-atlassian:before { - content: "\f77b" -} - -.fa-atom:before { - content: "\f5d2" -} - -.fa-audible:before { - content: "\f373" -} - -.fa-audio-description:before { - content: "\f29e" -} - -.fa-autoprefixer:before { - content: "\f41c" -} - -.fa-avianex:before { - content: "\f374" -} - -.fa-aviato:before { - content: "\f421" -} - -.fa-award:before { - content: "\f559" -} - -.fa-aws:before { - content: "\f375" -} - -.fa-baby:before { - content: "\f77c" -} - -.fa-baby-carriage:before { - content: "\f77d" -} - -.fa-backspace:before { - content: "\f55a" -} - -.fa-backward:before { - content: "\f04a" -} - -.fa-bacon:before { - content: "\f7e5" -} - -.fa-bacteria:before { - content: "\e059" -} - -.fa-bacterium:before { - content: "\e05a" -} - -.fa-bahai:before { - content: "\f666" -} - -.fa-balance-scale:before { - content: "\f24e" -} - -.fa-balance-scale-left:before { - content: "\f515" -} - -.fa-balance-scale-right:before { - content: "\f516" -} - -.fa-ban:before { - content: "\f05e" -} - -.fa-band-aid:before { - content: "\f462" -} - -.fa-bandcamp:before { - content: "\f2d5" -} - -.fa-barcode:before { - content: "\f02a" -} - -.fa-bars:before { - content: "\f0c9" -} - -.fa-baseball-ball:before { - content: "\f433" -} - -.fa-basketball-ball:before { - content: "\f434" -} - -.fa-bath:before { - content: "\f2cd" -} - -.fa-battery-empty:before { - content: "\f244" -} - -.fa-battery-full:before { - content: "\f240" -} - -.fa-battery-half:before { - content: "\f242" -} - -.fa-battery-quarter:before { - content: "\f243" -} - -.fa-battery-three-quarters:before { - content: "\f241" -} - -.fa-battle-net:before { - content: "\f835" -} - -.fa-bed:before { - content: "\f236" -} - -.fa-beer:before { - content: "\f0fc" -} - -.fa-behance:before { - content: "\f1b4" -} - -.fa-behance-square:before { - content: "\f1b5" -} - -.fa-bell:before { - content: "\f0f3" -} - -.fa-bell-slash:before { - content: "\f1f6" -} - -.fa-bezier-curve:before { - content: "\f55b" -} - -.fa-bible:before { - content: "\f647" -} - -.fa-bicycle:before { - content: "\f206" -} - -.fa-biking:before { - content: "\f84a" -} - -.fa-bimobject:before { - content: "\f378" -} - -.fa-binoculars:before { - content: "\f1e5" -} - -.fa-biohazard:before { - content: "\f780" -} - -.fa-birthday-cake:before { - content: "\f1fd" -} - -.fa-bitbucket:before { - content: "\f171" -} - -.fa-bitcoin:before { - content: "\f379" -} - -.fa-bity:before { - content: "\f37a" -} - -.fa-black-tie:before { - content: "\f27e" -} - -.fa-blackberry:before { - content: "\f37b" -} - -.fa-blender:before { - content: "\f517" -} - -.fa-blender-phone:before { - content: "\f6b6" -} - -.fa-blind:before { - content: "\f29d" -} - -.fa-blog:before { - content: "\f781" -} - -.fa-blogger:before { - content: "\f37c" -} - -.fa-blogger-b:before { - content: "\f37d" -} - -.fa-bluetooth:before { - content: "\f293" -} - -.fa-bluetooth-b:before { - content: "\f294" -} - -.fa-bold:before { - content: "\f032" -} - -.fa-bolt:before { - content: "\f0e7" -} - -.fa-bomb:before { - content: "\f1e2" -} - -.fa-bone:before { - content: "\f5d7" -} - -.fa-bong:before { - content: "\f55c" -} - -.fa-book:before { - content: "\f02d" -} - -.fa-book-dead:before { - content: "\f6b7" -} - -.fa-book-medical:before { - content: "\f7e6" -} - -.fa-book-open:before { - content: "\f518" -} - -.fa-book-reader:before { - content: "\f5da" -} - -.fa-bookmark:before { - content: "\f02e" -} - -.fa-bootstrap:before { - content: "\f836" -} - -.fa-border-all:before { - content: "\f84c" -} - -.fa-border-none:before { - content: "\f850" -} - -.fa-border-style:before { - content: "\f853" -} - -.fa-bowling-ball:before { - content: "\f436" -} - -.fa-box:before { - content: "\f466" -} - -.fa-box-open:before { - content: "\f49e" -} - -.fa-box-tissue:before { - content: "\e05b" -} - -.fa-boxes:before { - content: "\f468" -} - -.fa-braille:before { - content: "\f2a1" -} - -.fa-brain:before { - content: "\f5dc" -} - -.fa-bread-slice:before { - content: "\f7ec" -} - -.fa-briefcase:before { - content: "\f0b1" -} - -.fa-briefcase-medical:before { - content: "\f469" -} - -.fa-broadcast-tower:before { - content: "\f519" -} - -.fa-broom:before { - content: "\f51a" -} - -.fa-brush:before { - content: "\f55d" -} - -.fa-btc:before { - content: "\f15a" -} - -.fa-buffer:before { - content: "\f837" -} - -.fa-bug:before { - content: "\f188" -} - -.fa-building:before { - content: "\f1ad" -} - -.fa-bullhorn:before { - content: "\f0a1" -} - -.fa-bullseye:before { - content: "\f140" -} - -.fa-burn:before { - content: "\f46a" -} - -.fa-buromobelexperte:before { - content: "\f37f" -} - -.fa-bus:before { - content: "\f207" -} - -.fa-bus-alt:before { - content: "\f55e" -} - -.fa-business-time:before { - content: "\f64a" -} - -.fa-buy-n-large:before { - content: "\f8a6" -} - -.fa-buysellads:before { - content: "\f20d" -} - -.fa-calculator:before { - content: "\f1ec" -} - -.fa-calendar:before { - content: "\f133" -} - -.fa-calendar-alt:before { - content: "\f073" -} - -.fa-calendar-check:before { - content: "\f274" -} - -.fa-calendar-day:before { - content: "\f783" -} - -.fa-calendar-minus:before { - content: "\f272" -} - -.fa-calendar-plus:before { - content: "\f271" -} - -.fa-calendar-times:before { - content: "\f273" -} - -.fa-calendar-week:before { - content: "\f784" -} - -.fa-camera:before { - content: "\f030" -} - -.fa-camera-retro:before { - content: "\f083" -} - -.fa-campground:before { - content: "\f6bb" -} - -.fa-canadian-maple-leaf:before { - content: "\f785" -} - -.fa-candy-cane:before { - content: "\f786" -} - -.fa-cannabis:before { - content: "\f55f" -} - -.fa-capsules:before { - content: "\f46b" -} - -.fa-car:before { - content: "\f1b9" -} - -.fa-car-alt:before { - content: "\f5de" -} - -.fa-car-battery:before { - content: "\f5df" -} - -.fa-car-crash:before { - content: "\f5e1" -} - -.fa-car-side:before { - content: "\f5e4" -} - -.fa-caravan:before { - content: "\f8ff" -} - -.fa-caret-down:before { - content: "\f0d7" -} - -.fa-caret-left:before { - content: "\f0d9" -} - -.fa-caret-right:before { - content: "\f0da" -} - -.fa-caret-square-down:before { - content: "\f150" -} - -.fa-caret-square-left:before { - content: "\f191" -} - -.fa-caret-square-right:before { - content: "\f152" -} - -.fa-caret-square-up:before { - content: "\f151" -} - -.fa-caret-up:before { - content: "\f0d8" -} - -.fa-carrot:before { - content: "\f787" -} - -.fa-cart-arrow-down:before { - content: "\f218" -} - -.fa-cart-plus:before { - content: "\f217" -} - -.fa-cash-register:before { - content: "\f788" -} - -.fa-cat:before { - content: "\f6be" -} - -.fa-cc-amazon-pay:before { - content: "\f42d" -} - -.fa-cc-amex:before { - content: "\f1f3" -} - -.fa-cc-apple-pay:before { - content: "\f416" -} - -.fa-cc-diners-club:before { - content: "\f24c" -} - -.fa-cc-discover:before { - content: "\f1f2" -} - -.fa-cc-jcb:before { - content: "\f24b" -} - -.fa-cc-mastercard:before { - content: "\f1f1" -} - -.fa-cc-paypal:before { - content: "\f1f4" -} - -.fa-cc-stripe:before { - content: "\f1f5" -} - -.fa-cc-visa:before { - content: "\f1f0" -} - -.fa-centercode:before { - content: "\f380" -} - -.fa-centos:before { - content: "\f789" -} - -.fa-certificate:before { - content: "\f0a3" -} - -.fa-chair:before { - content: "\f6c0" -} - -.fa-chalkboard:before { - content: "\f51b" -} - -.fa-chalkboard-teacher:before { - content: "\f51c" -} - -.fa-charging-station:before { - content: "\f5e7" -} - -.fa-chart-area:before { - content: "\f1fe" -} - -.fa-chart-bar:before { - content: "\f080" -} - -.fa-chart-line:before { - content: "\f201" -} - -.fa-chart-pie:before { - content: "\f200" -} - -.fa-check:before { - content: "\f00c" -} - -.fa-check-circle:before { - content: "\f058" -} - -.fa-check-double:before { - content: "\f560" -} - -.fa-check-square:before { - content: "\f14a" -} - -.fa-cheese:before { - content: "\f7ef" -} - -.fa-chess:before { - content: "\f439" -} - -.fa-chess-bishop:before { - content: "\f43a" -} - -.fa-chess-board:before { - content: "\f43c" -} - -.fa-chess-king:before { - content: "\f43f" -} - -.fa-chess-knight:before { - content: "\f441" -} - -.fa-chess-pawn:before { - content: "\f443" -} - -.fa-chess-queen:before { - content: "\f445" -} - -.fa-chess-rook:before { - content: "\f447" -} - -.fa-chevron-circle-down:before { - content: "\f13a" -} - -.fa-chevron-circle-left:before { - content: "\f137" -} - -.fa-chevron-circle-right:before { - content: "\f138" -} - -.fa-chevron-circle-up:before { - content: "\f139" -} - -.fa-chevron-down:before { - content: "\f078" -} - -.fa-chevron-left:before { - content: "\f053" -} - -.fa-chevron-right:before { - content: "\f054" -} - -.fa-chevron-up:before { - content: "\f077" -} - -.fa-child:before { - content: "\f1ae" -} - -.fa-chrome:before { - content: "\f268" -} - -.fa-chromecast:before { - content: "\f838" -} - -.fa-church:before { - content: "\f51d" -} - -.fa-circle:before { - content: "\f111" -} - -.fa-circle-notch:before { - content: "\f1ce" -} - -.fa-city:before { - content: "\f64f" -} - -.fa-clinic-medical:before { - content: "\f7f2" -} - -.fa-clipboard:before { - content: "\f328" -} - -.fa-clipboard-check:before { - content: "\f46c" -} - -.fa-clipboard-list:before { - content: "\f46d" -} - -.fa-clock:before { - content: "\f017" -} - -.fa-clone:before { - content: "\f24d" -} - -.fa-closed-captioning:before { - content: "\f20a" -} - -.fa-cloud:before { - content: "\f0c2" -} - -.fa-cloud-download-alt:before { - content: "\f381" -} - -.fa-cloud-meatball:before { - content: "\f73b" -} - -.fa-cloud-moon:before { - content: "\f6c3" -} - -.fa-cloud-moon-rain:before { - content: "\f73c" -} - -.fa-cloud-rain:before { - content: "\f73d" -} - -.fa-cloud-showers-heavy:before { - content: "\f740" -} - -.fa-cloud-sun:before { - content: "\f6c4" -} - -.fa-cloud-sun-rain:before { - content: "\f743" -} - -.fa-cloud-upload-alt:before { - content: "\f382" -} - -.fa-cloudflare:before { - content: "\e07d" -} - -.fa-cloudscale:before { - content: "\f383" -} - -.fa-cloudsmith:before { - content: "\f384" -} - -.fa-cloudversify:before { - content: "\f385" -} - -.fa-cocktail:before { - content: "\f561" -} - -.fa-code:before { - content: "\f121" -} - -.fa-code-branch:before { - content: "\f126" -} - -.fa-codepen:before { - content: "\f1cb" -} - -.fa-codiepie:before { - content: "\f284" -} - -.fa-coffee:before { - content: "\f0f4" -} - -.fa-cog:before { - content: "\f013" -} - -.fa-cogs:before { - content: "\f085" -} - -.fa-coins:before { - content: "\f51e" -} - -.fa-columns:before { - content: "\f0db" -} - -.fa-comment:before { - content: "\f075" -} - -.fa-comment-alt:before { - content: "\f27a" -} - -.fa-comment-dollar:before { - content: "\f651" -} - -.fa-comment-dots:before { - content: "\f4ad" -} - -.fa-comment-medical:before { - content: "\f7f5" -} - -.fa-comment-slash:before { - content: "\f4b3" -} - -.fa-comments:before { - content: "\f086" -} - -.fa-comments-dollar:before { - content: "\f653" -} - -.fa-compact-disc:before { - content: "\f51f" -} - -.fa-compass:before { - content: "\f14e" -} - -.fa-compress:before { - content: "\f066" -} - -.fa-compress-alt:before { - content: "\f422" -} - -.fa-compress-arrows-alt:before { - content: "\f78c" -} - -.fa-concierge-bell:before { - content: "\f562" -} - -.fa-confluence:before { - content: "\f78d" -} - -.fa-connectdevelop:before { - content: "\f20e" -} - -.fa-contao:before { - content: "\f26d" -} - -.fa-cookie:before { - content: "\f563" -} - -.fa-cookie-bite:before { - content: "\f564" -} - -.fa-copy:before { - content: "\f0c5" -} - -.fa-copyright:before { - content: "\f1f9" -} - -.fa-cotton-bureau:before { - content: "\f89e" -} - -.fa-couch:before { - content: "\f4b8" -} - -.fa-cpanel:before { - content: "\f388" -} - -.fa-creative-commons:before { - content: "\f25e" -} - -.fa-creative-commons-by:before { - content: "\f4e7" -} - -.fa-creative-commons-nc:before { - content: "\f4e8" -} - -.fa-creative-commons-nc-eu:before { - content: "\f4e9" -} - -.fa-creative-commons-nc-jp:before { - content: "\f4ea" -} - -.fa-creative-commons-nd:before { - content: "\f4eb" -} - -.fa-creative-commons-pd:before { - content: "\f4ec" -} - -.fa-creative-commons-pd-alt:before { - content: "\f4ed" -} - -.fa-creative-commons-remix:before { - content: "\f4ee" -} - -.fa-creative-commons-sa:before { - content: "\f4ef" -} - -.fa-creative-commons-sampling:before { - content: "\f4f0" -} - -.fa-creative-commons-sampling-plus:before { - content: "\f4f1" -} - -.fa-creative-commons-share:before { - content: "\f4f2" -} - -.fa-creative-commons-zero:before { - content: "\f4f3" -} - -.fa-credit-card:before { - content: "\f09d" -} - -.fa-critical-role:before { - content: "\f6c9" -} - -.fa-crop:before { - content: "\f125" -} - -.fa-crop-alt:before { - content: "\f565" -} - -.fa-cross:before { - content: "\f654" -} - -.fa-crosshairs:before { - content: "\f05b" -} - -.fa-crow:before { - content: "\f520" -} - -.fa-crown:before { - content: "\f521" -} - -.fa-crutch:before { - content: "\f7f7" -} - -.fa-css3:before { - content: "\f13c" -} - -.fa-css3-alt:before { - content: "\f38b" -} - -.fa-cube:before { - content: "\f1b2" -} - -.fa-cubes:before { - content: "\f1b3" -} - -.fa-cut:before { - content: "\f0c4" -} - -.fa-cuttlefish:before { - content: "\f38c" -} - -.fa-d-and-d:before { - content: "\f38d" -} - -.fa-d-and-d-beyond:before { - content: "\f6ca" -} - -.fa-dailymotion:before { - content: "\e052" -} - -.fa-dashcube:before { - content: "\f210" -} - -.fa-database:before { - content: "\f1c0" -} - -.fa-deaf:before { - content: "\f2a4" -} - -.fa-deezer:before { - content: "\e077" -} - -.fa-delicious:before { - content: "\f1a5" -} - -.fa-democrat:before { - content: "\f747" -} - -.fa-deploydog:before { - content: "\f38e" -} - -.fa-deskpro:before { - content: "\f38f" -} - -.fa-desktop:before { - content: "\f108" -} - -.fa-dev:before { - content: "\f6cc" -} - -.fa-deviantart:before { - content: "\f1bd" -} - -.fa-dharmachakra:before { - content: "\f655" -} - -.fa-dhl:before { - content: "\f790" -} - -.fa-diagnoses:before { - content: "\f470" -} - -.fa-diaspora:before { - content: "\f791" -} - -.fa-dice:before { - content: "\f522" -} - -.fa-dice-d20:before { - content: "\f6cf" -} - -.fa-dice-d6:before { - content: "\f6d1" -} - -.fa-dice-five:before { - content: "\f523" -} - -.fa-dice-four:before { - content: "\f524" -} - -.fa-dice-one:before { - content: "\f525" -} - -.fa-dice-six:before { - content: "\f526" -} - -.fa-dice-three:before { - content: "\f527" -} - -.fa-dice-two:before { - content: "\f528" -} - -.fa-digg:before { - content: "\f1a6" -} - -.fa-digital-ocean:before { - content: "\f391" -} - -.fa-digital-tachograph:before { - content: "\f566" -} - -.fa-directions:before { - content: "\f5eb" -} - -.fa-discord:before { - content: "\f392" -} - -.fa-discourse:before { - content: "\f393" -} - -.fa-disease:before { - content: "\f7fa" -} - -.fa-divide:before { - content: "\f529" -} - -.fa-dizzy:before { - content: "\f567" -} - -.fa-dna:before { - content: "\f471" -} - -.fa-dochub:before { - content: "\f394" -} - -.fa-docker:before { - content: "\f395" -} - -.fa-dog:before { - content: "\f6d3" -} - -.fa-dollar-sign:before { - content: "\f155" -} - -.fa-dolly:before { - content: "\f472" -} - -.fa-dolly-flatbed:before { - content: "\f474" -} - -.fa-donate:before { - content: "\f4b9" -} - -.fa-door-closed:before { - content: "\f52a" -} - -.fa-door-open:before { - content: "\f52b" -} - -.fa-dot-circle:before { - content: "\f192" -} - -.fa-dove:before { - content: "\f4ba" -} - -.fa-download:before { - content: "\f019" -} - -.fa-draft2digital:before { - content: "\f396" -} - -.fa-drafting-compass:before { - content: "\f568" -} - -.fa-dragon:before { - content: "\f6d5" -} - -.fa-draw-polygon:before { - content: "\f5ee" -} - -.fa-dribbble:before { - content: "\f17d" -} - -.fa-dribbble-square:before { - content: "\f397" -} - -.fa-dropbox:before { - content: "\f16b" -} - -.fa-drum:before { - content: "\f569" -} - -.fa-drum-steelpan:before { - content: "\f56a" -} - -.fa-drumstick-bite:before { - content: "\f6d7" -} - -.fa-drupal:before { - content: "\f1a9" -} - -.fa-dumbbell:before { - content: "\f44b" -} - -.fa-dumpster:before { - content: "\f793" -} - -.fa-dumpster-fire:before { - content: "\f794" -} - -.fa-dungeon:before { - content: "\f6d9" -} - -.fa-dyalog:before { - content: "\f399" -} - -.fa-earlybirds:before { - content: "\f39a" -} - -.fa-ebay:before { - content: "\f4f4" -} - -.fa-edge:before { - content: "\f282" -} - -.fa-edge-legacy:before { - content: "\e078" -} - -.fa-edit:before { - content: "\f044" -} - -.fa-egg:before { - content: "\f7fb" -} - -.fa-eject:before { - content: "\f052" -} - -.fa-elementor:before { - content: "\f430" -} - -.fa-ellipsis-h:before { - content: "\f141" -} - -.fa-ellipsis-v:before { - content: "\f142" -} - -.fa-ello:before { - content: "\f5f1" -} - -.fa-ember:before { - content: "\f423" -} - -.fa-empire:before { - content: "\f1d1" -} - -.fa-envelope:before { - content: "\f0e0" -} - -.fa-envelope-open:before { - content: "\f2b6" -} - -.fa-envelope-open-text:before { - content: "\f658" -} - -.fa-envelope-square:before { - content: "\f199" -} - -.fa-envira:before { - content: "\f299" -} - -.fa-equals:before { - content: "\f52c" -} - -.fa-eraser:before { - content: "\f12d" -} - -.fa-erlang:before { - content: "\f39d" -} - -.fa-ethereum:before { - content: "\f42e" -} - -.fa-ethernet:before { - content: "\f796" -} - -.fa-etsy:before { - content: "\f2d7" -} - -.fa-euro-sign:before { - content: "\f153" -} - -.fa-evernote:before { - content: "\f839" -} - -.fa-exchange-alt:before { - content: "\f362" -} - -.fa-exclamation:before { - content: "\f12a" -} - -.fa-exclamation-circle:before { - content: "\f06a" -} - -.fa-exclamation-triangle:before { - content: "\f071" -} - -.fa-expand:before { - content: "\f065" -} - -.fa-expand-alt:before { - content: "\f424" -} - -.fa-expand-arrows-alt:before { - content: "\f31e" -} - -.fa-expeditedssl:before { - content: "\f23e" -} - -.fa-external-link-alt:before { - content: "\f35d" -} - -.fa-external-link-square-alt:before { - content: "\f360" -} - -.fa-eye:before { - content: "\f06e" -} - -.fa-eye-dropper:before { - content: "\f1fb" -} - -.fa-eye-slash:before { - content: "\f070" -} - -.fa-facebook:before { - content: "\f09a" -} - -.fa-facebook-f:before { - content: "\f39e" -} - -.fa-facebook-messenger:before { - content: "\f39f" -} - -.fa-facebook-square:before { - content: "\f082" -} - -.fa-fan:before { - content: "\f863" -} - -.fa-fantasy-flight-games:before { - content: "\f6dc" -} - -.fa-fast-backward:before { - content: "\f049" -} - -.fa-fast-forward:before { - content: "\f050" -} - -.fa-faucet:before { - content: "\e005" -} - -.fa-fax:before { - content: "\f1ac" -} - -.fa-feather:before { - content: "\f52d" -} - -.fa-feather-alt:before { - content: "\f56b" -} - -.fa-fedex:before { - content: "\f797" -} - -.fa-fedora:before { - content: "\f798" -} - -.fa-female:before { - content: "\f182" -} - -.fa-fighter-jet:before { - content: "\f0fb" -} - -.fa-figma:before { - content: "\f799" -} - -.fa-file:before { - content: "\f15b" -} - -.fa-file-alt:before { - content: "\f15c" -} - -.fa-file-archive:before { - content: "\f1c6" -} - -.fa-file-audio:before { - content: "\f1c7" -} - -.fa-file-code:before { - content: "\f1c9" -} - -.fa-file-contract:before { - content: "\f56c" -} - -.fa-file-csv:before { - content: "\f6dd" -} - -.fa-file-download:before { - content: "\f56d" -} - -.fa-file-excel:before { - content: "\f1c3" -} - -.fa-file-export:before { - content: "\f56e" -} - -.fa-file-image:before { - content: "\f1c5" -} - -.fa-file-import:before { - content: "\f56f" -} - -.fa-file-invoice:before { - content: "\f570" -} - -.fa-file-invoice-dollar:before { - content: "\f571" -} - -.fa-file-medical:before { - content: "\f477" -} - -.fa-file-medical-alt:before { - content: "\f478" -} - -.fa-file-pdf:before { - content: "\f1c1" -} - -.fa-file-powerpoint:before { - content: "\f1c4" -} - -.fa-file-prescription:before { - content: "\f572" -} - -.fa-file-signature:before { - content: "\f573" -} - -.fa-file-upload:before { - content: "\f574" -} - -.fa-file-video:before { - content: "\f1c8" -} - -.fa-file-word:before { - content: "\f1c2" -} - -.fa-fill:before { - content: "\f575" -} - -.fa-fill-drip:before { - content: "\f576" -} - -.fa-film:before { - content: "\f008" -} - -.fa-filter:before { - content: "\f0b0" -} - -.fa-fingerprint:before { - content: "\f577" -} - -.fa-fire:before { - content: "\f06d" -} - -.fa-fire-alt:before { - content: "\f7e4" -} - -.fa-fire-extinguisher:before { - content: "\f134" -} - -.fa-firefox:before { - content: "\f269" -} - -.fa-firefox-browser:before { - content: "\e007" -} - -.fa-first-aid:before { - content: "\f479" -} - -.fa-first-order:before { - content: "\f2b0" -} - -.fa-first-order-alt:before { - content: "\f50a" -} - -.fa-firstdraft:before { - content: "\f3a1" -} - -.fa-fish:before { - content: "\f578" -} - -.fa-fist-raised:before { - content: "\f6de" -} - -.fa-flag:before { - content: "\f024" -} - -.fa-flag-checkered:before { - content: "\f11e" -} - -.fa-flag-usa:before { - content: "\f74d" -} - -.fa-flask:before { - content: "\f0c3" -} - -.fa-flickr:before { - content: "\f16e" -} - -.fa-flipboard:before { - content: "\f44d" -} - -.fa-flushed:before { - content: "\f579" -} - -.fa-fly:before { - content: "\f417" -} - -.fa-folder:before { - content: "\f07b" -} - -.fa-folder-minus:before { - content: "\f65d" -} - -.fa-folder-open:before { - content: "\f07c" -} - -.fa-folder-plus:before { - content: "\f65e" -} - -.fa-font:before { - content: "\f031" -} - -.fa-font-awesome:before { - content: "\f2b4" -} - -.fa-font-awesome-alt:before { - content: "\f35c" -} - -.fa-font-awesome-flag:before { - content: "\f425" -} - -.fa-font-awesome-logo-full:before { - content: "\f4e6" -} - -.fa-fonticons:before { - content: "\f280" -} - -.fa-fonticons-fi:before { - content: "\f3a2" -} - -.fa-football-ball:before { - content: "\f44e" -} - -.fa-fort-awesome:before { - content: "\f286" -} - -.fa-fort-awesome-alt:before { - content: "\f3a3" -} - -.fa-forumbee:before { - content: "\f211" -} - -.fa-forward:before { - content: "\f04e" -} - -.fa-foursquare:before { - content: "\f180" -} - -.fa-free-code-camp:before { - content: "\f2c5" -} - -.fa-freebsd:before { - content: "\f3a4" -} - -.fa-frog:before { - content: "\f52e" -} - -.fa-frown:before { - content: "\f119" -} - -.fa-frown-open:before { - content: "\f57a" -} - -.fa-fulcrum:before { - content: "\f50b" -} - -.fa-funnel-dollar:before { - content: "\f662" -} - -.fa-futbol:before { - content: "\f1e3" -} - -.fa-galactic-republic:before { - content: "\f50c" -} - -.fa-galactic-senate:before { - content: "\f50d" -} - -.fa-gamepad:before { - content: "\f11b" -} - -.fa-gas-pump:before { - content: "\f52f" -} - -.fa-gavel:before { - content: "\f0e3" -} - -.fa-gem:before { - content: "\f3a5" -} - -.fa-genderless:before { - content: "\f22d" -} - -.fa-get-pocket:before { - content: "\f265" -} - -.fa-gg:before { - content: "\f260" -} - -.fa-gg-circle:before { - content: "\f261" -} - -.fa-ghost:before { - content: "\f6e2" -} - -.fa-gift:before { - content: "\f06b" -} - -.fa-gifts:before { - content: "\f79c" -} - -.fa-git:before { - content: "\f1d3" -} - -.fa-git-alt:before { - content: "\f841" -} - -.fa-git-square:before { - content: "\f1d2" -} - -.fa-github:before { - content: "\f09b" -} - -.fa-github-alt:before { - content: "\f113" -} - -.fa-github-square:before { - content: "\f092" -} - -.fa-gitkraken:before { - content: "\f3a6" -} - -.fa-gitlab:before { - content: "\f296" -} - -.fa-gitter:before { - content: "\f426" -} - -.fa-glass-cheers:before { - content: "\f79f" -} - -.fa-glass-martini:before { - content: "\f000" -} - -.fa-glass-martini-alt:before { - content: "\f57b" -} - -.fa-glass-whiskey:before { - content: "\f7a0" -} - -.fa-glasses:before { - content: "\f530" -} - -.fa-glide:before { - content: "\f2a5" -} - -.fa-glide-g:before { - content: "\f2a6" -} - -.fa-globe:before { - content: "\f0ac" -} - -.fa-globe-africa:before { - content: "\f57c" -} - -.fa-globe-americas:before { - content: "\f57d" -} - -.fa-globe-asia:before { - content: "\f57e" -} - -.fa-globe-europe:before { - content: "\f7a2" -} - -.fa-gofore:before { - content: "\f3a7" -} - -.fa-golf-ball:before { - content: "\f450" -} - -.fa-goodreads:before { - content: "\f3a8" -} - -.fa-goodreads-g:before { - content: "\f3a9" -} - -.fa-google:before { - content: "\f1a0" -} - -.fa-google-drive:before { - content: "\f3aa" -} - -.fa-google-pay:before { - content: "\e079" -} - -.fa-google-play:before { - content: "\f3ab" -} - -.fa-google-plus:before { - content: "\f2b3" -} - -.fa-google-plus-g:before { - content: "\f0d5" -} - -.fa-google-plus-square:before { - content: "\f0d4" -} - -.fa-google-wallet:before { - content: "\f1ee" -} - -.fa-gopuram:before { - content: "\f664" -} - -.fa-graduation-cap:before { - content: "\f19d" -} - -.fa-gratipay:before { - content: "\f184" -} - -.fa-grav:before { - content: "\f2d6" -} - -.fa-greater-than:before { - content: "\f531" -} - -.fa-greater-than-equal:before { - content: "\f532" -} - -.fa-grimace:before { - content: "\f57f" -} - -.fa-grin:before { - content: "\f580" -} - -.fa-grin-alt:before { - content: "\f581" -} - -.fa-grin-beam:before { - content: "\f582" -} - -.fa-grin-beam-sweat:before { - content: "\f583" -} - -.fa-grin-hearts:before { - content: "\f584" -} - -.fa-grin-squint:before { - content: "\f585" -} - -.fa-grin-squint-tears:before { - content: "\f586" -} - -.fa-grin-stars:before { - content: "\f587" -} - -.fa-grin-tears:before { - content: "\f588" -} - -.fa-grin-tongue:before { - content: "\f589" -} - -.fa-grin-tongue-squint:before { - content: "\f58a" -} - -.fa-grin-tongue-wink:before { - content: "\f58b" -} - -.fa-grin-wink:before { - content: "\f58c" -} - -.fa-grip-horizontal:before { - content: "\f58d" -} - -.fa-grip-lines:before { - content: "\f7a4" -} - -.fa-grip-lines-vertical:before { - content: "\f7a5" -} - -.fa-grip-vertical:before { - content: "\f58e" -} - -.fa-gripfire:before { - content: "\f3ac" -} - -.fa-grunt:before { - content: "\f3ad" -} - -.fa-guilded:before { - content: "\e07e" -} - -.fa-guitar:before { - content: "\f7a6" -} - -.fa-gulp:before { - content: "\f3ae" -} - -.fa-h-square:before { - content: "\f0fd" -} - -.fa-hacker-news:before { - content: "\f1d4" -} - -.fa-hacker-news-square:before { - content: "\f3af" -} - -.fa-hackerrank:before { - content: "\f5f7" -} - -.fa-hamburger:before { - content: "\f805" -} - -.fa-hammer:before { - content: "\f6e3" -} - -.fa-hamsa:before { - content: "\f665" -} - -.fa-hand-holding:before { - content: "\f4bd" -} - -.fa-hand-holding-heart:before { - content: "\f4be" -} - -.fa-hand-holding-medical:before { - content: "\e05c" -} - -.fa-hand-holding-usd:before { - content: "\f4c0" -} - -.fa-hand-holding-water:before { - content: "\f4c1" -} - -.fa-hand-lizard:before { - content: "\f258" -} - -.fa-hand-middle-finger:before { - content: "\f806" -} - -.fa-hand-paper:before { - content: "\f256" -} - -.fa-hand-peace:before { - content: "\f25b" -} - -.fa-hand-point-down:before { - content: "\f0a7" -} - -.fa-hand-point-left:before { - content: "\f0a5" -} - -.fa-hand-point-right:before { - content: "\f0a4" -} - -.fa-hand-point-up:before { - content: "\f0a6" -} - -.fa-hand-pointer:before { - content: "\f25a" -} - -.fa-hand-rock:before { - content: "\f255" -} - -.fa-hand-scissors:before { - content: "\f257" -} - -.fa-hand-sparkles:before { - content: "\e05d" -} - -.fa-hand-spock:before { - content: "\f259" -} - -.fa-hands:before { - content: "\f4c2" -} - -.fa-hands-helping:before { - content: "\f4c4" -} - -.fa-hands-wash:before { - content: "\e05e" -} - -.fa-handshake:before { - content: "\f2b5" -} - -.fa-handshake-alt-slash:before { - content: "\e05f" -} - -.fa-handshake-slash:before { - content: "\e060" -} - -.fa-hanukiah:before { - content: "\f6e6" -} - -.fa-hard-hat:before { - content: "\f807" -} - -.fa-hashtag:before { - content: "\f292" -} - -.fa-hat-cowboy:before { - content: "\f8c0" -} - -.fa-hat-cowboy-side:before { - content: "\f8c1" -} - -.fa-hat-wizard:before { - content: "\f6e8" -} - -.fa-hdd:before { - content: "\f0a0" -} - -.fa-head-side-cough:before { - content: "\e061" -} - -.fa-head-side-cough-slash:before { - content: "\e062" -} - -.fa-head-side-mask:before { - content: "\e063" -} - -.fa-head-side-virus:before { - content: "\e064" -} - -.fa-heading:before { - content: "\f1dc" -} - -.fa-headphones:before { - content: "\f025" -} - -.fa-headphones-alt:before { - content: "\f58f" -} - -.fa-headset:before { - content: "\f590" -} - -.fa-heart:before { - content: "\f004" -} - -.fa-heart-broken:before { - content: "\f7a9" -} - -.fa-heartbeat:before { - content: "\f21e" -} - -.fa-helicopter:before { - content: "\f533" -} - -.fa-highlighter:before { - content: "\f591" -} - -.fa-hiking:before { - content: "\f6ec" -} - -.fa-hippo:before { - content: "\f6ed" -} - -.fa-hips:before { - content: "\f452" -} - -.fa-hire-a-helper:before { - content: "\f3b0" -} - -.fa-history:before { - content: "\f1da" -} - -.fa-hive:before { - content: "\e07f" -} - -.fa-hockey-puck:before { - content: "\f453" -} - -.fa-holly-berry:before { - content: "\f7aa" -} - -.fa-home:before { - content: "\f015" -} - -.fa-hooli:before { - content: "\f427" -} - -.fa-hornbill:before { - content: "\f592" -} - -.fa-horse:before { - content: "\f6f0" -} - -.fa-horse-head:before { - content: "\f7ab" -} - -.fa-hospital:before { - content: "\f0f8" -} - -.fa-hospital-alt:before { - content: "\f47d" -} - -.fa-hospital-symbol:before { - content: "\f47e" -} - -.fa-hospital-user:before { - content: "\f80d" -} - -.fa-hot-tub:before { - content: "\f593" -} - -.fa-hotdog:before { - content: "\f80f" -} - -.fa-hotel:before { - content: "\f594" -} - -.fa-hotjar:before { - content: "\f3b1" -} - -.fa-hourglass:before { - content: "\f254" -} - -.fa-hourglass-end:before { - content: "\f253" -} - -.fa-hourglass-half:before { - content: "\f252" -} - -.fa-hourglass-start:before { - content: "\f251" -} - -.fa-house-damage:before { - content: "\f6f1" -} - -.fa-house-user:before { - content: "\e065" -} - -.fa-houzz:before { - content: "\f27c" -} - -.fa-hryvnia:before { - content: "\f6f2" -} - -.fa-html5:before { - content: "\f13b" -} - -.fa-hubspot:before { - content: "\f3b2" -} - -.fa-i-cursor:before { - content: "\f246" -} - -.fa-ice-cream:before { - content: "\f810" -} - -.fa-icicles:before { - content: "\f7ad" -} - -.fa-icons:before { - content: "\f86d" -} - -.fa-id-badge:before { - content: "\f2c1" -} - -.fa-id-card:before { - content: "\f2c2" -} - -.fa-id-card-alt:before { - content: "\f47f" -} - -.fa-ideal:before { - content: "\e013" -} - -.fa-igloo:before { - content: "\f7ae" -} - -.fa-image:before { - content: "\f03e" -} - -.fa-images:before { - content: "\f302" -} - -.fa-imdb:before { - content: "\f2d8" -} - -.fa-inbox:before { - content: "\f01c" -} - -.fa-indent:before { - content: "\f03c" -} - -.fa-industry:before { - content: "\f275" -} - -.fa-infinity:before { - content: "\f534" -} - -.fa-info:before { - content: "\f129" -} - -.fa-info-circle:before { - content: "\f05a" -} - -.fa-innosoft:before { - content: "\e080" -} - -.fa-instagram:before { - content: "\f16d" -} - -.fa-instagram-square:before { - content: "\e055" -} - -.fa-instalod:before { - content: "\e081" -} - -.fa-intercom:before { - content: "\f7af" -} - -.fa-internet-explorer:before { - content: "\f26b" -} - -.fa-invision:before { - content: "\f7b0" -} - -.fa-ioxhost:before { - content: "\f208" -} - -.fa-italic:before { - content: "\f033" -} - -.fa-itch-io:before { - content: "\f83a" -} - -.fa-itunes:before { - content: "\f3b4" -} - -.fa-itunes-note:before { - content: "\f3b5" -} - -.fa-java:before { - content: "\f4e4" -} - -.fa-jedi:before { - content: "\f669" -} - -.fa-jedi-order:before { - content: "\f50e" -} - -.fa-jenkins:before { - content: "\f3b6" -} - -.fa-jira:before { - content: "\f7b1" -} - -.fa-joget:before { - content: "\f3b7" -} - -.fa-joint:before { - content: "\f595" -} - -.fa-joomla:before { - content: "\f1aa" -} - -.fa-journal-whills:before { - content: "\f66a" -} - -.fa-js:before { - content: "\f3b8" -} - -.fa-js-square:before { - content: "\f3b9" -} - -.fa-jsfiddle:before { - content: "\f1cc" -} - -.fa-kaaba:before { - content: "\f66b" -} - -.fa-kaggle:before { - content: "\f5fa" -} - -.fa-key:before { - content: "\f084" -} - -.fa-keybase:before { - content: "\f4f5" -} - -.fa-keyboard:before { - content: "\f11c" -} - -.fa-keycdn:before { - content: "\f3ba" -} - -.fa-khanda:before { - content: "\f66d" -} - -.fa-kickstarter:before { - content: "\f3bb" -} - -.fa-kickstarter-k:before { - content: "\f3bc" -} - -.fa-kiss:before { - content: "\f596" -} - -.fa-kiss-beam:before { - content: "\f597" -} - -.fa-kiss-wink-heart:before { - content: "\f598" -} - -.fa-kiwi-bird:before { - content: "\f535" -} - -.fa-korvue:before { - content: "\f42f" -} - -.fa-landmark:before { - content: "\f66f" -} - -.fa-language:before { - content: "\f1ab" -} - -.fa-laptop:before { - content: "\f109" -} - -.fa-laptop-code:before { - content: "\f5fc" -} - -.fa-laptop-house:before { - content: "\e066" -} - -.fa-laptop-medical:before { - content: "\f812" -} - -.fa-laravel:before { - content: "\f3bd" -} - -.fa-lastfm:before { - content: "\f202" -} - -.fa-lastfm-square:before { - content: "\f203" -} - -.fa-laugh:before { - content: "\f599" -} - -.fa-laugh-beam:before { - content: "\f59a" -} - -.fa-laugh-squint:before { - content: "\f59b" -} - -.fa-laugh-wink:before { - content: "\f59c" -} - -.fa-layer-group:before { - content: "\f5fd" -} - -.fa-leaf:before { - content: "\f06c" -} - -.fa-leanpub:before { - content: "\f212" -} - -.fa-lemon:before { - content: "\f094" -} - -.fa-less:before { - content: "\f41d" -} - -.fa-less-than:before { - content: "\f536" -} - -.fa-less-than-equal:before { - content: "\f537" -} - -.fa-level-down-alt:before { - content: "\f3be" -} - -.fa-level-up-alt:before { - content: "\f3bf" -} - -.fa-life-ring:before { - content: "\f1cd" -} - -.fa-lightbulb:before { - content: "\f0eb" -} - -.fa-line:before { - content: "\f3c0" -} - -.fa-link:before { - content: "\f0c1" -} - -.fa-linkedin:before { - content: "\f08c" -} - -.fa-linkedin-in:before { - content: "\f0e1" -} - -.fa-linode:before { - content: "\f2b8" -} - -.fa-linux:before { - content: "\f17c" -} - -.fa-lira-sign:before { - content: "\f195" -} - -.fa-list:before { - content: "\f03a" -} - -.fa-list-alt:before { - content: "\f022" -} - -.fa-list-ol:before { - content: "\f0cb" -} - -.fa-list-ul:before { - content: "\f0ca" -} - -.fa-location-arrow:before { - content: "\f124" -} - -.fa-lock:before { - content: "\f023" -} - -.fa-lock-open:before { - content: "\f3c1" -} - -.fa-long-arrow-alt-down:before { - content: "\f309" -} - -.fa-long-arrow-alt-left:before { - content: "\f30a" -} - -.fa-long-arrow-alt-right:before { - content: "\f30b" -} - -.fa-long-arrow-alt-up:before { - content: "\f30c" -} - -.fa-low-vision:before { - content: "\f2a8" -} - -.fa-luggage-cart:before { - content: "\f59d" -} - -.fa-lungs:before { - content: "\f604" -} - -.fa-lungs-virus:before { - content: "\e067" -} - -.fa-lyft:before { - content: "\f3c3" -} - -.fa-magento:before { - content: "\f3c4" -} - -.fa-magic:before { - content: "\f0d0" -} - -.fa-magnet:before { - content: "\f076" -} - -.fa-mail-bulk:before { - content: "\f674" -} - -.fa-mailchimp:before { - content: "\f59e" -} - -.fa-male:before { - content: "\f183" -} - -.fa-mandalorian:before { - content: "\f50f" -} - -.fa-map:before { - content: "\f279" -} - -.fa-map-marked:before { - content: "\f59f" -} - -.fa-map-marked-alt:before { - content: "\f5a0" -} - -.fa-map-marker:before { - content: "\f041" -} - -.fa-map-marker-alt:before { - content: "\f3c5" -} - -.fa-map-pin:before { - content: "\f276" -} - -.fa-map-signs:before { - content: "\f277" -} - -.fa-markdown:before { - content: "\f60f" -} - -.fa-marker:before { - content: "\f5a1" -} - -.fa-mars:before { - content: "\f222" -} - -.fa-mars-double:before { - content: "\f227" -} - -.fa-mars-stroke:before { - content: "\f229" -} - -.fa-mars-stroke-h:before { - content: "\f22b" -} - -.fa-mars-stroke-v:before { - content: "\f22a" -} - -.fa-mask:before { - content: "\f6fa" -} - -.fa-mastodon:before { - content: "\f4f6" -} - -.fa-maxcdn:before { - content: "\f136" -} - -.fa-mdb:before { - content: "\f8ca" -} - -.fa-medal:before { - content: "\f5a2" -} - -.fa-medapps:before { - content: "\f3c6" -} - -.fa-medium:before { - content: "\f23a" -} - -.fa-medium-m:before { - content: "\f3c7" -} - -.fa-medkit:before { - content: "\f0fa" -} - -.fa-medrt:before { - content: "\f3c8" -} - -.fa-meetup:before { - content: "\f2e0" -} - -.fa-megaport:before { - content: "\f5a3" -} - -.fa-meh:before { - content: "\f11a" -} - -.fa-meh-blank:before { - content: "\f5a4" -} - -.fa-meh-rolling-eyes:before { - content: "\f5a5" -} - -.fa-memory:before { - content: "\f538" -} - -.fa-mendeley:before { - content: "\f7b3" -} - -.fa-menorah:before { - content: "\f676" -} - -.fa-mercury:before { - content: "\f223" -} - -.fa-meteor:before { - content: "\f753" -} - -.fa-microblog:before { - content: "\e01a" -} - -.fa-microchip:before { - content: "\f2db" -} - -.fa-microphone:before { - content: "\f130" -} - -.fa-microphone-alt:before { - content: "\f3c9" -} - -.fa-microphone-alt-slash:before { - content: "\f539" -} - -.fa-microphone-slash:before { - content: "\f131" -} - -.fa-microscope:before { - content: "\f610" -} - -.fa-microsoft:before { - content: "\f3ca" -} - -.fa-minus:before { - content: "\f068" -} - -.fa-minus-circle:before { - content: "\f056" -} - -.fa-minus-square:before { - content: "\f146" -} - -.fa-mitten:before { - content: "\f7b5" -} - -.fa-mix:before { - content: "\f3cb" -} - -.fa-mixcloud:before { - content: "\f289" -} - -.fa-mixer:before { - content: "\e056" -} - -.fa-mizuni:before { - content: "\f3cc" -} - -.fa-mobile:before { - content: "\f10b" -} - -.fa-mobile-alt:before { - content: "\f3cd" -} - -.fa-modx:before { - content: "\f285" -} - -.fa-monero:before { - content: "\f3d0" -} - -.fa-money-bill:before { - content: "\f0d6" -} - -.fa-money-bill-alt:before { - content: "\f3d1" -} - -.fa-money-bill-wave:before { - content: "\f53a" -} - -.fa-money-bill-wave-alt:before { - content: "\f53b" -} - -.fa-money-check:before { - content: "\f53c" -} - -.fa-money-check-alt:before { - content: "\f53d" -} - -.fa-monument:before { - content: "\f5a6" -} - -.fa-moon:before { - content: "\f186" -} - -.fa-mortar-pestle:before { - content: "\f5a7" -} - -.fa-mosque:before { - content: "\f678" -} - -.fa-motorcycle:before { - content: "\f21c" -} - -.fa-mountain:before { - content: "\f6fc" -} - -.fa-mouse:before { - content: "\f8cc" -} - -.fa-mouse-pointer:before { - content: "\f245" -} - -.fa-mug-hot:before { - content: "\f7b6" -} - -.fa-music:before { - content: "\f001" -} - -.fa-napster:before { - content: "\f3d2" -} - -.fa-neos:before { - content: "\f612" -} - -.fa-network-wired:before { - content: "\f6ff" -} - -.fa-neuter:before { - content: "\f22c" -} - -.fa-newspaper:before { - content: "\f1ea" -} - -.fa-nimblr:before { - content: "\f5a8" -} - -.fa-node:before { - content: "\f419" -} - -.fa-node-js:before { - content: "\f3d3" -} - -.fa-not-equal:before { - content: "\f53e" -} - -.fa-notes-medical:before { - content: "\f481" -} - -.fa-npm:before { - content: "\f3d4" -} - -.fa-ns8:before { - content: "\f3d5" -} - -.fa-nutritionix:before { - content: "\f3d6" -} - -.fa-object-group:before { - content: "\f247" -} - -.fa-object-ungroup:before { - content: "\f248" -} - -.fa-octopus-deploy:before { - content: "\e082" -} - -.fa-odnoklassniki:before { - content: "\f263" -} - -.fa-odnoklassniki-square:before { - content: "\f264" -} - -.fa-oil-can:before { - content: "\f613" -} - -.fa-old-republic:before { - content: "\f510" -} - -.fa-om:before { - content: "\f679" -} - -.fa-opencart:before { - content: "\f23d" -} - -.fa-openid:before { - content: "\f19b" -} - -.fa-opera:before { - content: "\f26a" -} - -.fa-optin-monster:before { - content: "\f23c" -} - -.fa-orcid:before { - content: "\f8d2" -} - -.fa-osi:before { - content: "\f41a" -} - -.fa-otter:before { - content: "\f700" -} - -.fa-outdent:before { - content: "\f03b" -} - -.fa-page4:before { - content: "\f3d7" -} - -.fa-pagelines:before { - content: "\f18c" -} - -.fa-pager:before { - content: "\f815" -} - -.fa-paint-brush:before { - content: "\f1fc" -} - -.fa-paint-roller:before { - content: "\f5aa" -} - -.fa-palette:before { - content: "\f53f" -} - -.fa-palfed:before { - content: "\f3d8" -} - -.fa-pallet:before { - content: "\f482" -} - -.fa-paper-plane:before { - content: "\f1d8" -} - -.fa-paperclip:before { - content: "\f0c6" -} - -.fa-parachute-box:before { - content: "\f4cd" -} - -.fa-paragraph:before { - content: "\f1dd" -} - -.fa-parking:before { - content: "\f540" -} - -.fa-passport:before { - content: "\f5ab" -} - -.fa-pastafarianism:before { - content: "\f67b" -} - -.fa-paste:before { - content: "\f0ea" -} - -.fa-patreon:before { - content: "\f3d9" -} - -.fa-pause:before { - content: "\f04c" -} - -.fa-pause-circle:before { - content: "\f28b" -} - -.fa-paw:before { - content: "\f1b0" -} - -.fa-paypal:before { - content: "\f1ed" -} - -.fa-peace:before { - content: "\f67c" -} - -.fa-pen:before { - content: "\f304" -} - -.fa-pen-alt:before { - content: "\f305" -} - -.fa-pen-fancy:before { - content: "\f5ac" -} - -.fa-pen-nib:before { - content: "\f5ad" -} - -.fa-pen-square:before { - content: "\f14b" -} - -.fa-pencil-alt:before { - content: "\f303" -} - -.fa-pencil-ruler:before { - content: "\f5ae" -} - -.fa-penny-arcade:before { - content: "\f704" -} - -.fa-people-arrows:before { - content: "\e068" -} - -.fa-people-carry:before { - content: "\f4ce" -} - -.fa-pepper-hot:before { - content: "\f816" -} - -.fa-perbyte:before { - content: "\e083" -} - -.fa-percent:before { - content: "\f295" -} - -.fa-percentage:before { - content: "\f541" -} - -.fa-periscope:before { - content: "\f3da" -} - -.fa-person-booth:before { - content: "\f756" -} - -.fa-phabricator:before { - content: "\f3db" -} - -.fa-phoenix-framework:before { - content: "\f3dc" -} - -.fa-phoenix-squadron:before { - content: "\f511" -} - -.fa-phone:before { - content: "\f095" -} - -.fa-phone-alt:before { - content: "\f879" -} - -.fa-phone-slash:before { - content: "\f3dd" -} - -.fa-phone-square:before { - content: "\f098" -} - -.fa-phone-square-alt:before { - content: "\f87b" -} - -.fa-phone-volume:before { - content: "\f2a0" -} - -.fa-photo-video:before { - content: "\f87c" -} - -.fa-php:before { - content: "\f457" -} - -.fa-pied-piper:before { - content: "\f2ae" -} - -.fa-pied-piper-alt:before { - content: "\f1a8" -} - -.fa-pied-piper-hat:before { - content: "\f4e5" -} - -.fa-pied-piper-pp:before { - content: "\f1a7" -} - -.fa-pied-piper-square:before { - content: "\e01e" -} - -.fa-piggy-bank:before { - content: "\f4d3" -} - -.fa-pills:before { - content: "\f484" -} - -.fa-pinterest:before { - content: "\f0d2" -} - -.fa-pinterest-p:before { - content: "\f231" -} - -.fa-pinterest-square:before { - content: "\f0d3" -} - -.fa-pizza-slice:before { - content: "\f818" -} - -.fa-place-of-worship:before { - content: "\f67f" -} - -.fa-plane:before { - content: "\f072" -} - -.fa-plane-arrival:before { - content: "\f5af" -} - -.fa-plane-departure:before { - content: "\f5b0" -} - -.fa-plane-slash:before { - content: "\e069" -} - -.fa-play:before { - content: "\f04b" -} - -.fa-play-circle:before { - content: "\f144" -} - -.fa-playstation:before { - content: "\f3df" -} - -.fa-plug:before { - content: "\f1e6" -} - -.fa-plus:before { - content: "\f067" -} - -.fa-plus-circle:before { - content: "\f055" -} - -.fa-plus-square:before { - content: "\f0fe" -} - -.fa-podcast:before { - content: "\f2ce" -} - -.fa-poll:before { - content: "\f681" -} - -.fa-poll-h:before { - content: "\f682" -} - -.fa-poo:before { - content: "\f2fe" -} - -.fa-poo-storm:before { - content: "\f75a" -} - -.fa-poop:before { - content: "\f619" -} - -.fa-portrait:before { - content: "\f3e0" -} - -.fa-pound-sign:before { - content: "\f154" -} - -.fa-power-off:before { - content: "\f011" -} - -.fa-pray:before { - content: "\f683" -} - -.fa-praying-hands:before { - content: "\f684" -} - -.fa-prescription:before { - content: "\f5b1" -} - -.fa-prescription-bottle:before { - content: "\f485" -} - -.fa-prescription-bottle-alt:before { - content: "\f486" -} - -.fa-print:before { - content: "\f02f" -} - -.fa-procedures:before { - content: "\f487" -} - -.fa-product-hunt:before { - content: "\f288" -} - -.fa-project-diagram:before { - content: "\f542" -} - -.fa-pump-medical:before { - content: "\e06a" -} - -.fa-pump-soap:before { - content: "\e06b" -} - -.fa-pushed:before { - content: "\f3e1" -} - -.fa-puzzle-piece:before { - content: "\f12e" -} - -.fa-python:before { - content: "\f3e2" -} - -.fa-qq:before { - content: "\f1d6" -} - -.fa-qrcode:before { - content: "\f029" -} - -.fa-question:before { - content: "\f128" -} - -.fa-question-circle:before { - content: "\f059" -} - -.fa-quidditch:before { - content: "\f458" -} - -.fa-quinscape:before { - content: "\f459" -} - -.fa-quora:before { - content: "\f2c4" -} - -.fa-quote-left:before { - content: "\f10d" -} - -.fa-quote-right:before { - content: "\f10e" -} - -.fa-quran:before { - content: "\f687" -} - -.fa-r-project:before { - content: "\f4f7" -} - -.fa-radiation:before { - content: "\f7b9" -} - -.fa-radiation-alt:before { - content: "\f7ba" -} - -.fa-rainbow:before { - content: "\f75b" -} - -.fa-random:before { - content: "\f074" -} - -.fa-raspberry-pi:before { - content: "\f7bb" -} - -.fa-ravelry:before { - content: "\f2d9" -} - -.fa-react:before { - content: "\f41b" -} - -.fa-reacteurope:before { - content: "\f75d" -} - -.fa-readme:before { - content: "\f4d5" -} - -.fa-rebel:before { - content: "\f1d0" -} - -.fa-receipt:before { - content: "\f543" -} - -.fa-record-vinyl:before { - content: "\f8d9" -} - -.fa-recycle:before { - content: "\f1b8" -} - -.fa-red-river:before { - content: "\f3e3" -} - -.fa-reddit:before { - content: "\f1a1" -} - -.fa-reddit-alien:before { - content: "\f281" -} - -.fa-reddit-square:before { - content: "\f1a2" -} - -.fa-redhat:before { - content: "\f7bc" -} - -.fa-redo:before { - content: "\f01e" -} - -.fa-redo-alt:before { - content: "\f2f9" -} - -.fa-registered:before { - content: "\f25d" -} - -.fa-remove-format:before { - content: "\f87d" -} - -.fa-renren:before { - content: "\f18b" -} - -.fa-reply:before { - content: "\f3e5" -} - -.fa-reply-all:before { - content: "\f122" -} - -.fa-replyd:before { - content: "\f3e6" -} - -.fa-republican:before { - content: "\f75e" -} - -.fa-researchgate:before { - content: "\f4f8" -} - -.fa-resolving:before { - content: "\f3e7" -} - -.fa-restroom:before { - content: "\f7bd" -} - -.fa-retweet:before { - content: "\f079" -} - -.fa-rev:before { - content: "\f5b2" -} - -.fa-ribbon:before { - content: "\f4d6" -} - -.fa-ring:before { - content: "\f70b" -} - -.fa-road:before { - content: "\f018" -} - -.fa-robot:before { - content: "\f544" -} - -.fa-rocket:before { - content: "\f135" -} - -.fa-rocketchat:before { - content: "\f3e8" -} - -.fa-rockrms:before { - content: "\f3e9" -} - -.fa-route:before { - content: "\f4d7" -} - -.fa-rss:before { - content: "\f09e" -} - -.fa-rss-square:before { - content: "\f143" -} - -.fa-ruble-sign:before { - content: "\f158" -} - -.fa-ruler:before { - content: "\f545" -} - -.fa-ruler-combined:before { - content: "\f546" -} - -.fa-ruler-horizontal:before { - content: "\f547" -} - -.fa-ruler-vertical:before { - content: "\f548" -} - -.fa-running:before { - content: "\f70c" -} - -.fa-rupee-sign:before { - content: "\f156" -} - -.fa-rust:before { - content: "\e07a" -} - -.fa-sad-cry:before { - content: "\f5b3" -} - -.fa-sad-tear:before { - content: "\f5b4" -} - -.fa-safari:before { - content: "\f267" -} - -.fa-salesforce:before { - content: "\f83b" -} - -.fa-sass:before { - content: "\f41e" -} - -.fa-satellite:before { - content: "\f7bf" -} - -.fa-satellite-dish:before { - content: "\f7c0" -} - -.fa-save:before { - content: "\f0c7" -} - -.fa-schlix:before { - content: "\f3ea" -} - -.fa-school:before { - content: "\f549" -} - -.fa-screwdriver:before { - content: "\f54a" -} - -.fa-scribd:before { - content: "\f28a" -} - -.fa-scroll:before { - content: "\f70e" -} - -.fa-sd-card:before { - content: "\f7c2" -} - -.fa-search:before { - content: "\f002" -} - -.fa-search-dollar:before { - content: "\f688" -} - -.fa-search-location:before { - content: "\f689" -} - -.fa-search-minus:before { - content: "\f010" -} - -.fa-search-plus:before { - content: "\f00e" -} - -.fa-searchengin:before { - content: "\f3eb" -} - -.fa-seedling:before { - content: "\f4d8" -} - -.fa-sellcast:before { - content: "\f2da" -} - -.fa-sellsy:before { - content: "\f213" -} - -.fa-server:before { - content: "\f233" -} - -.fa-servicestack:before { - content: "\f3ec" -} - -.fa-shapes:before { - content: "\f61f" -} - -.fa-share:before { - content: "\f064" -} - -.fa-share-alt:before { - content: "\f1e0" -} - -.fa-share-alt-square:before { - content: "\f1e1" -} - -.fa-share-square:before { - content: "\f14d" -} - -.fa-shekel-sign:before { - content: "\f20b" -} - -.fa-shield-alt:before { - content: "\f3ed" -} - -.fa-shield-virus:before { - content: "\e06c" -} - -.fa-ship:before { - content: "\f21a" -} - -.fa-shipping-fast:before { - content: "\f48b" -} - -.fa-shirtsinbulk:before { - content: "\f214" -} - -.fa-shoe-prints:before { - content: "\f54b" -} - -.fa-shopify:before { - content: "\e057" -} - -.fa-shopping-bag:before { - content: "\f290" -} - -.fa-shopping-basket:before { - content: "\f291" -} - -.fa-shopping-cart:before { - content: "\f07a" -} - -.fa-shopware:before { - content: "\f5b5" -} - -.fa-shower:before { - content: "\f2cc" -} - -.fa-shuttle-van:before { - content: "\f5b6" -} - -.fa-sign:before { - content: "\f4d9" -} - -.fa-sign-in-alt:before { - content: "\f2f6" -} - -.fa-sign-language:before { - content: "\f2a7" -} - -.fa-sign-out-alt:before { - content: "\f2f5" -} - -.fa-signal:before { - content: "\f012" -} - -.fa-signature:before { - content: "\f5b7" -} - -.fa-sim-card:before { - content: "\f7c4" -} - -.fa-simplybuilt:before { - content: "\f215" -} - -.fa-sink:before { - content: "\e06d" -} - -.fa-sistrix:before { - content: "\f3ee" -} - -.fa-sitemap:before { - content: "\f0e8" -} - -.fa-sith:before { - content: "\f512" -} - -.fa-skating:before { - content: "\f7c5" -} - -.fa-sketch:before { - content: "\f7c6" -} - -.fa-skiing:before { - content: "\f7c9" -} - -.fa-skiing-nordic:before { - content: "\f7ca" -} - -.fa-skull:before { - content: "\f54c" -} - -.fa-skull-crossbones:before { - content: "\f714" -} - -.fa-skyatlas:before { - content: "\f216" -} - -.fa-skype:before { - content: "\f17e" -} - -.fa-slack:before { - content: "\f198" -} - -.fa-slack-hash:before { - content: "\f3ef" -} - -.fa-slash:before { - content: "\f715" -} - -.fa-sleigh:before { - content: "\f7cc" -} - -.fa-sliders-h:before { - content: "\f1de" -} - -.fa-slideshare:before { - content: "\f1e7" -} - -.fa-smile:before { - content: "\f118" -} - -.fa-smile-beam:before { - content: "\f5b8" -} - -.fa-smile-wink:before { - content: "\f4da" -} - -.fa-smog:before { - content: "\f75f" -} - -.fa-smoking:before { - content: "\f48d" -} - -.fa-smoking-ban:before { - content: "\f54d" -} - -.fa-sms:before { - content: "\f7cd" -} - -.fa-snapchat:before { - content: "\f2ab" -} - -.fa-snapchat-ghost:before { - content: "\f2ac" -} - -.fa-snapchat-square:before { - content: "\f2ad" -} - -.fa-snowboarding:before { - content: "\f7ce" -} - -.fa-snowflake:before { - content: "\f2dc" -} - -.fa-snowman:before { - content: "\f7d0" -} - -.fa-snowplow:before { - content: "\f7d2" -} - -.fa-soap:before { - content: "\e06e" -} - -.fa-socks:before { - content: "\f696" -} - -.fa-solar-panel:before { - content: "\f5ba" -} - -.fa-sort:before { - content: "\f0dc" -} - -.fa-sort-alpha-down:before { - content: "\f15d" -} - -.fa-sort-alpha-down-alt:before { - content: "\f881" -} - -.fa-sort-alpha-up:before { - content: "\f15e" -} - -.fa-sort-alpha-up-alt:before { - content: "\f882" -} - -.fa-sort-amount-down:before { - content: "\f160" -} - -.fa-sort-amount-down-alt:before { - content: "\f884" -} - -.fa-sort-amount-up:before { - content: "\f161" -} - -.fa-sort-amount-up-alt:before { - content: "\f885" -} - -.fa-sort-down:before { - content: "\f0dd" -} - -.fa-sort-numeric-down:before { - content: "\f162" -} - -.fa-sort-numeric-down-alt:before { - content: "\f886" -} - -.fa-sort-numeric-up:before { - content: "\f163" -} - -.fa-sort-numeric-up-alt:before { - content: "\f887" -} - -.fa-sort-up:before { - content: "\f0de" -} - -.fa-soundcloud:before { - content: "\f1be" -} - -.fa-sourcetree:before { - content: "\f7d3" -} - -.fa-spa:before { - content: "\f5bb" -} - -.fa-space-shuttle:before { - content: "\f197" -} - -.fa-speakap:before { - content: "\f3f3" -} - -.fa-speaker-deck:before { - content: "\f83c" -} - -.fa-spell-check:before { - content: "\f891" -} - -.fa-spider:before { - content: "\f717" -} - -.fa-spinner:before { - content: "\f110" -} - -.fa-splotch:before { - content: "\f5bc" -} - -.fa-spotify:before { - content: "\f1bc" -} - -.fa-spray-can:before { - content: "\f5bd" -} - -.fa-square:before { - content: "\f0c8" -} - -.fa-square-full:before { - content: "\f45c" -} - -.fa-square-root-alt:before { - content: "\f698" -} - -.fa-squarespace:before { - content: "\f5be" -} - -.fa-stack-exchange:before { - content: "\f18d" -} - -.fa-stack-overflow:before { - content: "\f16c" -} - -.fa-stackpath:before { - content: "\f842" -} - -.fa-stamp:before { - content: "\f5bf" -} - -.fa-star:before { - content: "\f005" -} - -.fa-star-and-crescent:before { - content: "\f699" -} - -.fa-star-half:before { - content: "\f089" -} - -.fa-star-half-alt:before { - content: "\f5c0" -} - -.fa-star-of-david:before { - content: "\f69a" -} - -.fa-star-of-life:before { - content: "\f621" -} - -.fa-staylinked:before { - content: "\f3f5" -} - -.fa-steam:before { - content: "\f1b6" -} - -.fa-steam-square:before { - content: "\f1b7" -} - -.fa-steam-symbol:before { - content: "\f3f6" -} - -.fa-step-backward:before { - content: "\f048" -} - -.fa-step-forward:before { - content: "\f051" -} - -.fa-stethoscope:before { - content: "\f0f1" -} - -.fa-sticker-mule:before { - content: "\f3f7" -} - -.fa-sticky-note:before { - content: "\f249" -} - -.fa-stop:before { - content: "\f04d" -} - -.fa-stop-circle:before { - content: "\f28d" -} - -.fa-stopwatch:before { - content: "\f2f2" -} - -.fa-stopwatch-20:before { - content: "\e06f" -} - -.fa-store:before { - content: "\f54e" -} - -.fa-store-alt:before { - content: "\f54f" -} - -.fa-store-alt-slash:before { - content: "\e070" -} - -.fa-store-slash:before { - content: "\e071" -} - -.fa-strava:before { - content: "\f428" -} - -.fa-stream:before { - content: "\f550" -} - -.fa-street-view:before { - content: "\f21d" -} - -.fa-strikethrough:before { - content: "\f0cc" -} - -.fa-stripe:before { - content: "\f429" -} - -.fa-stripe-s:before { - content: "\f42a" -} - -.fa-stroopwafel:before { - content: "\f551" -} - -.fa-studiovinari:before { - content: "\f3f8" -} - -.fa-stumbleupon:before { - content: "\f1a4" -} - -.fa-stumbleupon-circle:before { - content: "\f1a3" -} - -.fa-subscript:before { - content: "\f12c" -} - -.fa-subway:before { - content: "\f239" -} - -.fa-suitcase:before { - content: "\f0f2" -} - -.fa-suitcase-rolling:before { - content: "\f5c1" -} - -.fa-sun:before { - content: "\f185" -} - -.fa-superpowers:before { - content: "\f2dd" -} - -.fa-superscript:before { - content: "\f12b" -} - -.fa-supple:before { - content: "\f3f9" -} - -.fa-surprise:before { - content: "\f5c2" -} - -.fa-suse:before { - content: "\f7d6" -} - -.fa-swatchbook:before { - content: "\f5c3" -} - -.fa-swift:before { - content: "\f8e1" -} - -.fa-swimmer:before { - content: "\f5c4" -} - -.fa-swimming-pool:before { - content: "\f5c5" -} - -.fa-symfony:before { - content: "\f83d" -} - -.fa-synagogue:before { - content: "\f69b" -} - -.fa-sync:before { - content: "\f021" -} - -.fa-sync-alt:before { - content: "\f2f1" -} - -.fa-syringe:before { - content: "\f48e" -} - -.fa-table:before { - content: "\f0ce" -} - -.fa-table-tennis:before { - content: "\f45d" -} - -.fa-tablet:before { - content: "\f10a" -} - -.fa-tablet-alt:before { - content: "\f3fa" -} - -.fa-tablets:before { - content: "\f490" -} - -.fa-tachometer-alt:before { - content: "\f3fd" -} - -.fa-tag:before { - content: "\f02b" -} - -.fa-tags:before { - content: "\f02c" -} - -.fa-tape:before { - content: "\f4db" -} - -.fa-tasks:before { - content: "\f0ae" -} - -.fa-taxi:before { - content: "\f1ba" -} - -.fa-teamspeak:before { - content: "\f4f9" -} - -.fa-teeth:before { - content: "\f62e" -} - -.fa-teeth-open:before { - content: "\f62f" -} - -.fa-telegram:before { - content: "\f2c6" -} - -.fa-telegram-plane:before { - content: "\f3fe" -} - -.fa-temperature-high:before { - content: "\f769" -} - -.fa-temperature-low:before { - content: "\f76b" -} - -.fa-tencent-weibo:before { - content: "\f1d5" -} - -.fa-tenge:before { - content: "\f7d7" -} - -.fa-terminal:before { - content: "\f120" -} - -.fa-text-height:before { - content: "\f034" -} - -.fa-text-width:before { - content: "\f035" -} - -.fa-th:before { - content: "\f00a" -} - -.fa-th-large:before { - content: "\f009" -} - -.fa-th-list:before { - content: "\f00b" -} - -.fa-the-red-yeti:before { - content: "\f69d" -} - -.fa-theater-masks:before { - content: "\f630" -} - -.fa-themeco:before { - content: "\f5c6" -} - -.fa-themeisle:before { - content: "\f2b2" -} - -.fa-thermometer:before { - content: "\f491" -} - -.fa-thermometer-empty:before { - content: "\f2cb" -} - -.fa-thermometer-full:before { - content: "\f2c7" -} - -.fa-thermometer-half:before { - content: "\f2c9" -} - -.fa-thermometer-quarter:before { - content: "\f2ca" -} - -.fa-thermometer-three-quarters:before { - content: "\f2c8" -} - -.fa-think-peaks:before { - content: "\f731" -} - -.fa-thumbs-down:before { - content: "\f165" -} - -.fa-thumbs-up:before { - content: "\f164" -} - -.fa-thumbtack:before { - content: "\f08d" -} - -.fa-ticket-alt:before { - content: "\f3ff" -} - -.fa-tiktok:before { - content: "\e07b" -} - -.fa-times:before { - content: "\f00d" -} - -.fa-times-circle:before { - content: "\f057" -} - -.fa-tint:before { - content: "\f043" -} - -.fa-tint-slash:before { - content: "\f5c7" -} - -.fa-tired:before { - content: "\f5c8" -} - -.fa-toggle-off:before { - content: "\f204" -} - -.fa-toggle-on:before { - content: "\f205" -} - -.fa-toilet:before { - content: "\f7d8" -} - -.fa-toilet-paper:before { - content: "\f71e" -} - -.fa-toilet-paper-slash:before { - content: "\e072" -} - -.fa-toolbox:before { - content: "\f552" -} - -.fa-tools:before { - content: "\f7d9" -} - -.fa-tooth:before { - content: "\f5c9" -} - -.fa-torah:before { - content: "\f6a0" -} - -.fa-torii-gate:before { - content: "\f6a1" -} - -.fa-tractor:before { - content: "\f722" -} - -.fa-trade-federation:before { - content: "\f513" -} - -.fa-trademark:before { - content: "\f25c" -} - -.fa-traffic-light:before { - content: "\f637" -} - -.fa-trailer:before { - content: "\e041" -} - -.fa-train:before { - content: "\f238" -} - -.fa-tram:before { - content: "\f7da" -} - -.fa-transgender:before { - content: "\f224" -} - -.fa-transgender-alt:before { - content: "\f225" -} - -.fa-trash:before { - content: "\f1f8" -} - -.fa-trash-alt:before { - content: "\f2ed" -} - -.fa-trash-restore:before { - content: "\f829" -} - -.fa-trash-restore-alt:before { - content: "\f82a" -} - -.fa-tree:before { - content: "\f1bb" -} - -.fa-trello:before { - content: "\f181" -} - -.fa-tripadvisor:before { - content: "\f262" -} - -.fa-trophy:before { - content: "\f091" -} - -.fa-truck:before { - content: "\f0d1" -} - -.fa-truck-loading:before { - content: "\f4de" -} - -.fa-truck-monster:before { - content: "\f63b" -} - -.fa-truck-moving:before { - content: "\f4df" -} - -.fa-truck-pickup:before { - content: "\f63c" -} - -.fa-tshirt:before { - content: "\f553" -} - -.fa-tty:before { - content: "\f1e4" -} - -.fa-tumblr:before { - content: "\f173" -} - -.fa-tumblr-square:before { - content: "\f174" -} - -.fa-tv:before { - content: "\f26c" -} - -.fa-twitch:before { - content: "\f1e8" -} - -.fa-twitter:before { - content: "\f099" -} - -.fa-twitter-square:before { - content: "\f081" -} - -.fa-typo3:before { - content: "\f42b" -} - -.fa-uber:before { - content: "\f402" -} - -.fa-ubuntu:before { - content: "\f7df" -} - -.fa-uikit:before { - content: "\f403" -} - -.fa-umbraco:before { - content: "\f8e8" -} - -.fa-umbrella:before { - content: "\f0e9" -} - -.fa-umbrella-beach:before { - content: "\f5ca" -} - -.fa-uncharted:before { - content: "\e084" -} - -.fa-underline:before { - content: "\f0cd" -} - -.fa-undo:before { - content: "\f0e2" -} - -.fa-undo-alt:before { - content: "\f2ea" -} - -.fa-uniregistry:before { - content: "\f404" -} - -.fa-unity:before { - content: "\e049" -} - -.fa-universal-access:before { - content: "\f29a" -} - -.fa-university:before { - content: "\f19c" -} - -.fa-unlink:before { - content: "\f127" -} - -.fa-unlock:before { - content: "\f09c" -} - -.fa-unlock-alt:before { - content: "\f13e" -} - -.fa-unsplash:before { - content: "\e07c" -} - -.fa-untappd:before { - content: "\f405" -} - -.fa-upload:before { - content: "\f093" -} - -.fa-ups:before { - content: "\f7e0" -} - -.fa-usb:before { - content: "\f287" -} - -.fa-user:before { - content: "\f007" -} - -.fa-user-alt:before { - content: "\f406" -} - -.fa-user-alt-slash:before { - content: "\f4fa" -} - -.fa-user-astronaut:before { - content: "\f4fb" -} - -.fa-user-check:before { - content: "\f4fc" -} - -.fa-user-circle:before { - content: "\f2bd" -} - -.fa-user-clock:before { - content: "\f4fd" -} - -.fa-user-cog:before { - content: "\f4fe" -} - -.fa-user-edit:before { - content: "\f4ff" -} - -.fa-user-friends:before { - content: "\f500" -} - -.fa-user-graduate:before { - content: "\f501" -} - -.fa-user-injured:before { - content: "\f728" -} - -.fa-user-lock:before { - content: "\f502" -} - -.fa-user-md:before { - content: "\f0f0" -} - -.fa-user-minus:before { - content: "\f503" -} - -.fa-user-ninja:before { - content: "\f504" -} - -.fa-user-nurse:before { - content: "\f82f" -} - -.fa-user-plus:before { - content: "\f234" -} - -.fa-user-secret:before { - content: "\f21b" -} - -.fa-user-shield:before { - content: "\f505" -} - -.fa-user-slash:before { - content: "\f506" -} - -.fa-user-tag:before { - content: "\f507" -} - -.fa-user-tie:before { - content: "\f508" -} - -.fa-user-times:before { - content: "\f235" -} - -.fa-users:before { - content: "\f0c0" -} - -.fa-users-cog:before { - content: "\f509" -} - -.fa-users-slash:before { - content: "\e073" -} - -.fa-usps:before { - content: "\f7e1" -} - -.fa-ussunnah:before { - content: "\f407" -} - -.fa-utensil-spoon:before { - content: "\f2e5" -} - -.fa-utensils:before { - content: "\f2e7" -} - -.fa-vaadin:before { - content: "\f408" -} - -.fa-vector-square:before { - content: "\f5cb" -} - -.fa-venus:before { - content: "\f221" -} - -.fa-venus-double:before { - content: "\f226" -} - -.fa-venus-mars:before { - content: "\f228" -} - -.fa-vest:before { - content: "\e085" -} - -.fa-vest-patches:before { - content: "\e086" -} - -.fa-viacoin:before { - content: "\f237" -} - -.fa-viadeo:before { - content: "\f2a9" -} - -.fa-viadeo-square:before { - content: "\f2aa" -} - -.fa-vial:before { - content: "\f492" -} - -.fa-vials:before { - content: "\f493" -} - -.fa-viber:before { - content: "\f409" -} - -.fa-video:before { - content: "\f03d" -} - -.fa-video-slash:before { - content: "\f4e2" -} - -.fa-vihara:before { - content: "\f6a7" -} - -.fa-vimeo:before { - content: "\f40a" -} - -.fa-vimeo-square:before { - content: "\f194" -} - -.fa-vimeo-v:before { - content: "\f27d" -} - -.fa-vine:before { - content: "\f1ca" -} - -.fa-virus:before { - content: "\e074" -} - -.fa-virus-slash:before { - content: "\e075" -} - -.fa-viruses:before { - content: "\e076" -} - -.fa-vk:before { - content: "\f189" -} - -.fa-vnv:before { - content: "\f40b" -} - -.fa-voicemail:before { - content: "\f897" -} - -.fa-volleyball-ball:before { - content: "\f45f" -} - -.fa-volume-down:before { - content: "\f027" -} - -.fa-volume-mute:before { - content: "\f6a9" -} - -.fa-volume-off:before { - content: "\f026" -} - -.fa-volume-up:before { - content: "\f028" -} - -.fa-vote-yea:before { - content: "\f772" -} - -.fa-vr-cardboard:before { - content: "\f729" -} - -.fa-vuejs:before { - content: "\f41f" -} - -.fa-walking:before { - content: "\f554" -} - -.fa-wallet:before { - content: "\f555" -} - -.fa-warehouse:before { - content: "\f494" -} - -.fa-watchman-monitoring:before { - content: "\e087" -} - -.fa-water:before { - content: "\f773" -} - -.fa-wave-square:before { - content: "\f83e" -} - -.fa-waze:before { - content: "\f83f" -} - -.fa-weebly:before { - content: "\f5cc" -} - -.fa-weibo:before { - content: "\f18a" -} - -.fa-weight:before { - content: "\f496" -} - -.fa-weight-hanging:before { - content: "\f5cd" -} - -.fa-weixin:before { - content: "\f1d7" -} - -.fa-whatsapp:before { - content: "\f232" -} - -.fa-whatsapp-square:before { - content: "\f40c" -} - -.fa-wheelchair:before { - content: "\f193" -} - -.fa-whmcs:before { - content: "\f40d" -} - -.fa-wifi:before { - content: "\f1eb" -} - -.fa-wikipedia-w:before { - content: "\f266" -} - -.fa-wind:before { - content: "\f72e" -} - -.fa-window-close:before { - content: "\f410" -} - -.fa-window-maximize:before { - content: "\f2d0" -} - -.fa-window-minimize:before { - content: "\f2d1" -} - -.fa-window-restore:before { - content: "\f2d2" -} - -.fa-windows:before { - content: "\f17a" -} - -.fa-wine-bottle:before { - content: "\f72f" -} - -.fa-wine-glass:before { - content: "\f4e3" -} - -.fa-wine-glass-alt:before { - content: "\f5ce" -} - -.fa-wix:before { - content: "\f5cf" -} - -.fa-wizards-of-the-coast:before { - content: "\f730" -} - -.fa-wodu:before { - content: "\e088" -} - -.fa-wolf-pack-battalion:before { - content: "\f514" -} - -.fa-won-sign:before { - content: "\f159" -} - -.fa-wordpress:before { - content: "\f19a" -} - -.fa-wordpress-simple:before { - content: "\f411" -} - -.fa-wpbeginner:before { - content: "\f297" -} - -.fa-wpexplorer:before { - content: "\f2de" -} - -.fa-wpforms:before { - content: "\f298" -} - -.fa-wpressr:before { - content: "\f3e4" -} - -.fa-wrench:before { - content: "\f0ad" -} - -.fa-x-ray:before { - content: "\f497" -} - -.fa-xbox:before { - content: "\f412" -} - -.fa-xing:before { - content: "\f168" -} - -.fa-xing-square:before { - content: "\f169" -} - -.fa-y-combinator:before { - content: "\f23b" -} - -.fa-yahoo:before { - content: "\f19e" -} - -.fa-yammer:before { - content: "\f840" -} - -.fa-yandex:before { - content: "\f413" -} - -.fa-yandex-international:before { - content: "\f414" -} - -.fa-yarn:before { - content: "\f7e3" -} - -.fa-yelp:before { - content: "\f1e9" -} - -.fa-yen-sign:before { - content: "\f157" -} - -.fa-yin-yang:before { - content: "\f6ad" -} - -.fa-yoast:before { - content: "\f2b1" -} - -.fa-youtube:before { - content: "\f167" -} - -.fa-youtube-square:before { - content: "\f431" -} - -.fa-zhihu:before { - content: "\f63f" -} - -.sr-only { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px -} - -.sr-only-focusable:active, .sr-only-focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto -} - -/*! - * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -@font-face { - font-family: Font Awesome\ 5 Free; - font-style: normal; - font-weight: 400; - font-display: block; - src: url(../fonts/fa-regular-400.eot); - src: url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"), url(../fonts/fa-regular-400.woff2) format("woff2"), url(../fonts/fa-regular-400.woff) format("woff"), url(../fonts/fa-regular-400.ttf) format("truetype"), url(../fonts/fa-regular-400.svg#fontawesome) format("svg") -} - -.far { - font-weight: 400 -} - -/*! - * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -@font-face { - font-family: Font Awesome\ 5 Free; - font-style: normal; - font-weight: 900; - font-display: block; - src: url(../fonts/fa-solid-900.eot); - src: url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"), url(../fonts/fa-solid-900.woff2) format("woff2"), url(../fonts/fa-solid-900.woff) format("woff"), url(../fonts/fa-solid-900.ttf) format("truetype"), url(../fonts/fa-solid-900.svg#fontawesome) format("svg") -} - -.fa, .far, .fas { - font-family: Font Awesome\ 5 Free -} - -.fa, .fas { - font-weight: 900 -} - -svg { - touch-action: none -} - -.jsvmap-zoomin, .jsvmap-zoomout, image, text { - -ms-user-select: none; - -webkit-user-select: none; - user-select: none -} - -.jsvmap-container { - touch-action: none; - position: relative; - overflow: hidden; - height: 100%; - width: 100% -} - -.jsvmap-tooltip { - background-color: #5c5cff; - font-family: sans-serif, Verdana; - font-size: smaller; - box-shadow: 1px 2px 12px rgba(0, 0, 0, .2); - padding: 3px 5px; - display: none -} - -.jsvmap-tooltip, .jsvmap-zoom-btn { - border-radius: 3px; - position: absolute; - color: #fff -} - -.jsvmap-zoom-btn { - background-color: #292929; - padding: 3px; - box-sizing: border-box; - line-height: 10px; - cursor: pointer; - height: 15px; - width: 15px; - left: 10px -} - -.jsvmap-zoom-btn.jsvmap-zoomout { - top: 30px -} - -.jsvmap-zoom-btn.jsvmap-zoomin { - top: 10px -} - -.jsvmap-series-container { - right: 15px; - position: absolute -} - -.jsvmap-series-container.jsvmap-series-h { - bottom: 15px -} - -.jsvmap-series-container.jsvmap-series-v { - top: 15px -} - -.jsvmap-series-container .jsvmap-legend { - background-color: #fff; - border: 1px solid #e6e6e6; - margin-left: 15px; - border-radius: 3px; - padding: .5rem; - float: left -} - -.jsvmap-series-container .jsvmap-legend .jsvmap-legend-title { - border-bottom: 1px solid #e6e6e6; - padding-bottom: 3px; - margin-bottom: 7px; - text-align: left -} - -.jsvmap-series-container .jsvmap-legend .jsvmap-legend-inner { - overflow: hidden -} - -.jsvmap-series-container .jsvmap-legend .jsvmap-legend-inner .jsvmap-legend-tick { - margin-top: 10px; - min-width: 40px -} - -.jsvmap-series-container .jsvmap-legend .jsvmap-legend-inner .jsvmap-legend-tick .jsvmap-legend-tick-sample { - border-radius: 4px; - margin: 4px auto; - height: 20px; - width: 20px -} - -.jsvmap-series-container .jsvmap-legend .jsvmap-legend-inner .jsvmap-legend-tick .jsvmap-legend-tick-text { - margin-top: 3px; - font-size: 12px; - text-align: center -} - -[data-simplebar] { - position: relative; - flex-direction: column; - flex-wrap: wrap; - justify-content: flex-start; - align-content: flex-start; - align-items: flex-start -} - -.simplebar-wrapper { - overflow: hidden; - width: inherit; - height: inherit; - max-width: inherit; - max-height: inherit -} - -.simplebar-mask { - direction: inherit; - overflow: hidden; - width: auto !important; - height: auto !important; - z-index: 0 -} - -.simplebar-mask, .simplebar-offset { - position: absolute; - padding: 0; - margin: 0; - left: 0; - top: 0; - bottom: 0; - right: 0 -} - -.simplebar-offset { - direction: inherit !important; - box-sizing: inherit !important; - resize: none !important; - -webkit-overflow-scrolling: touch -} - -.simplebar-content-wrapper { - direction: inherit; - box-sizing: border-box !important; - position: relative; - display: block; - height: 100%; - width: auto; - max-width: 100%; - max-height: 100%; - scrollbar-width: none; - -ms-overflow-style: none -} - -.simplebar-content-wrapper::-webkit-scrollbar, .simplebar-hide-scrollbar::-webkit-scrollbar { - width: 0; - height: 0 -} - -.simplebar-content:after, .simplebar-content:before { - content: " "; - display: table -} - -.simplebar-placeholder { - max-height: 100%; - max-width: 100%; - width: 100%; - pointer-events: none -} - -.simplebar-height-auto-observer-wrapper { - box-sizing: inherit !important; - height: 100%; - width: 100%; - max-width: 1px; - position: relative; - float: left; - max-height: 1px; - overflow: hidden; - z-index: -1; - padding: 0; - margin: 0; - pointer-events: none; - flex-grow: inherit; - flex-shrink: 0; - flex-basis: 0 -} - -.simplebar-height-auto-observer { - box-sizing: inherit; - display: block; - opacity: 0; - top: 0; - left: 0; - height: 1000%; - width: 1000%; - min-height: 1px; - min-width: 1px; - z-index: -1 -} - -.simplebar-height-auto-observer, .simplebar-track { - position: absolute; - overflow: hidden; - pointer-events: none -} - -.simplebar-track { - z-index: 1; - right: 0; - bottom: 0 -} - -[data-simplebar].simplebar-dragging .simplebar-content { - pointer-events: none; - -ms-user-select: none; - user-select: none; - -webkit-user-select: none -} - -[data-simplebar].simplebar-dragging .simplebar-track { - pointer-events: all -} - -.simplebar-scrollbar { - position: absolute; - left: 0; - right: 0; - min-height: 10px -} - -.simplebar-scrollbar:before { - position: absolute; - content: ""; - background: #000; - border-radius: 7px; - left: 2px; - right: 2px; - opacity: 0; - transition: opacity .2s linear -} - -.simplebar-scrollbar.simplebar-visible:before { - opacity: .5; - transition: opacity 0s linear -} - -.simplebar-track.simplebar-vertical { - top: 0; - width: 11px -} - -.simplebar-track.simplebar-vertical .simplebar-scrollbar:before { - top: 2px; - bottom: 2px -} - -.simplebar-track.simplebar-horizontal { - left: 0; - height: 11px -} - -.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before { - height: 100%; - left: 2px; - right: 2px -} - -.simplebar-track.simplebar-horizontal .simplebar-scrollbar { - right: auto; - left: 0; - top: 2px; - height: 7px; - min-height: 0; - min-width: 10px; - width: auto -} - -[data-simplebar-direction=rtl] .simplebar-track.simplebar-vertical { - right: auto; - left: 0 -} - -.hs-dummy-scrollbar-size { - direction: rtl; - position: fixed; - opacity: 0; - visibility: hidden; - height: 500px; - width: 500px; - overflow-y: hidden; - overflow-x: scroll -} - -.simplebar-hide-scrollbar { - position: fixed; - left: 0; - visibility: hidden; - overflow-y: scroll; - scrollbar-width: none; - -ms-overflow-style: none -} - -.flatpickr-calendar { - background: transparent; - opacity: 0; - display: none; - text-align: center; - visibility: hidden; - padding: 0; - animation: none; - direction: ltr; - border: 0; - font-size: 14px; - line-height: 24px; - border-radius: 5px; - position: absolute; - width: 307.875px; - box-sizing: border-box; - touch-action: manipulation; - background: #fff; - box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0, 0, 0, .08) -} - -.flatpickr-calendar.inline, .flatpickr-calendar.open { - opacity: 1; - max-height: 640px; - visibility: visible -} - -.flatpickr-calendar.open { - display: inline-block; - z-index: 99999 -} - -.flatpickr-calendar.animate.open { - animation: fpFadeInDown .3s cubic-bezier(.23, 1, .32, 1) -} - -.flatpickr-calendar.inline { - display: block; - position: relative; - top: 2px -} - -.flatpickr-calendar.static { - position: absolute; - top: calc(100% + 2px) -} - -.flatpickr-calendar.static.open { - z-index: 999; - display: block -} - -.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) { - box-shadow: none !important -} - -.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) { - box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6 -} - -.flatpickr-calendar .hasTime .dayContainer, .flatpickr-calendar .hasWeeks .dayContainer { - border-bottom: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0 -} - -.flatpickr-calendar .hasWeeks .dayContainer { - border-left: 0 -} - -.flatpickr-calendar.hasTime .flatpickr-time { - height: 40px; - border-top: 1px solid #e6e6e6 -} - -.flatpickr-calendar.noCalendar.hasTime .flatpickr-time { - height: auto -} - -.flatpickr-calendar:after, .flatpickr-calendar:before { - position: absolute; - display: block; - pointer-events: none; - border: solid transparent; - content: ""; - height: 0; - width: 0; - left: 22px -} - -.flatpickr-calendar.arrowRight:after, .flatpickr-calendar.arrowRight:before, .flatpickr-calendar.rightMost:after, .flatpickr-calendar.rightMost:before { - left: auto; - right: 22px -} - -.flatpickr-calendar.arrowCenter:after, .flatpickr-calendar.arrowCenter:before { - left: 50%; - right: 50% -} - -.flatpickr-calendar:before { - border-width: 5px; - margin: 0 -5px -} - -.flatpickr-calendar:after { - border-width: 4px; - margin: 0 -4px -} - -.flatpickr-calendar.arrowTop:after, .flatpickr-calendar.arrowTop:before { - bottom: 100% -} - -.flatpickr-calendar.arrowTop:before { - border-bottom-color: #e6e6e6 -} - -.flatpickr-calendar.arrowTop:after { - border-bottom-color: #fff -} - -.flatpickr-calendar.arrowBottom:after, .flatpickr-calendar.arrowBottom:before { - top: 100% -} - -.flatpickr-calendar.arrowBottom:before { - border-top-color: #e6e6e6 -} - -.flatpickr-calendar.arrowBottom:after { - border-top-color: #fff -} - -.flatpickr-calendar:focus { - outline: 0 -} - -.flatpickr-wrapper { - position: relative; - display: inline-block -} - -.flatpickr-months { - display: flex -} - -.flatpickr-months .flatpickr-month { - background: transparent; - color: rgba(0, 0, 0, .9); - fill: rgba(0, 0, 0, .9); - height: 34px; - line-height: 1; - text-align: center; - position: relative; - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; - overflow: hidden; - flex: 1 -} - -.flatpickr-months .flatpickr-next-month, .flatpickr-months .flatpickr-prev-month { - text-decoration: none; - cursor: pointer; - position: absolute; - top: 0; - height: 34px; - padding: 10px; - z-index: 3; - color: rgba(0, 0, 0, .9); - fill: rgba(0, 0, 0, .9) -} - -.flatpickr-months .flatpickr-next-month.flatpickr-disabled, .flatpickr-months .flatpickr-prev-month.flatpickr-disabled { - display: none -} - -.flatpickr-months .flatpickr-next-month i, .flatpickr-months .flatpickr-prev-month i { - position: relative -} - -.flatpickr-months .flatpickr-next-month.flatpickr-prev-month, .flatpickr-months .flatpickr-prev-month.flatpickr-prev-month { - left: 0 -} - -.flatpickr-months .flatpickr-next-month.flatpickr-next-month, .flatpickr-months .flatpickr-prev-month.flatpickr-next-month { - right: 0 -} - -.flatpickr-months .flatpickr-next-month:hover, .flatpickr-months .flatpickr-prev-month:hover { - color: #959ea9 -} - -.flatpickr-months .flatpickr-next-month:hover svg, .flatpickr-months .flatpickr-prev-month:hover svg { - fill: #f64747 -} - -.flatpickr-months .flatpickr-next-month svg, .flatpickr-months .flatpickr-prev-month svg { - width: 14px; - height: 14px -} - -.flatpickr-months .flatpickr-next-month svg path, .flatpickr-months .flatpickr-prev-month svg path { - transition: fill .1s; - fill: inherit -} - -.numInputWrapper { - position: relative; - height: auto -} - -.numInputWrapper input, .numInputWrapper span { - display: inline-block -} - -.numInputWrapper input { - width: 100% -} - -.numInputWrapper input::-ms-clear { - display: none -} - -.numInputWrapper input::-webkit-inner-spin-button, .numInputWrapper input::-webkit-outer-spin-button { - margin: 0; - -webkit-appearance: none -} - -.numInputWrapper span { - position: absolute; - right: 0; - width: 14px; - padding: 0 4px 0 2px; - height: 50%; - line-height: 50%; - opacity: 0; - cursor: pointer; - border: 1px solid rgba(57, 57, 57, .15); - box-sizing: border-box -} - -.numInputWrapper span:hover { - background: rgba(0, 0, 0, .1) -} - -.numInputWrapper span:active { - background: rgba(0, 0, 0, .2) -} - -.numInputWrapper span:after { - display: block; - content: ""; - position: absolute -} - -.numInputWrapper span.arrowUp { - top: 0; - border-bottom: 0 -} - -.numInputWrapper span.arrowUp:after { - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-bottom: 4px solid rgba(57, 57, 57, .6); - top: 26% -} - -.numInputWrapper span.arrowDown { - top: 50% -} - -.numInputWrapper span.arrowDown:after { - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid rgba(57, 57, 57, .6); - top: 40% -} - -.numInputWrapper span svg { - width: inherit; - height: auto -} - -.numInputWrapper span svg path { - fill: rgba(0, 0, 0, .5) -} - -.numInputWrapper:hover { - background: rgba(0, 0, 0, .05) -} - -.numInputWrapper:hover span { - opacity: 1 -} diff --git a/frontend/src/assets/fonts/Inter-Black.woff b/frontend/src/assets/fonts/Inter-Black.woff deleted file mode 100644 index 1b7a081..0000000 Binary files a/frontend/src/assets/fonts/Inter-Black.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-Black.woff2 b/frontend/src/assets/fonts/Inter-Black.woff2 deleted file mode 100644 index 1db877f..0000000 Binary files a/frontend/src/assets/fonts/Inter-Black.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-BlackItalic.woff b/frontend/src/assets/fonts/Inter-BlackItalic.woff deleted file mode 100644 index 98f5391..0000000 Binary files a/frontend/src/assets/fonts/Inter-BlackItalic.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-BlackItalic.woff2 b/frontend/src/assets/fonts/Inter-BlackItalic.woff2 deleted file mode 100644 index 831279a..0000000 Binary files a/frontend/src/assets/fonts/Inter-BlackItalic.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-Bold.woff b/frontend/src/assets/fonts/Inter-Bold.woff deleted file mode 100644 index 4b05629..0000000 Binary files a/frontend/src/assets/fonts/Inter-Bold.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-Bold.woff2 b/frontend/src/assets/fonts/Inter-Bold.woff2 deleted file mode 100644 index e372976..0000000 Binary files a/frontend/src/assets/fonts/Inter-Bold.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-BoldItalic.woff b/frontend/src/assets/fonts/Inter-BoldItalic.woff deleted file mode 100644 index 6792723..0000000 Binary files a/frontend/src/assets/fonts/Inter-BoldItalic.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-BoldItalic.woff2 b/frontend/src/assets/fonts/Inter-BoldItalic.woff2 deleted file mode 100644 index c2e8502..0000000 Binary files a/frontend/src/assets/fonts/Inter-BoldItalic.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-ExtraBold.woff b/frontend/src/assets/fonts/Inter-ExtraBold.woff deleted file mode 100644 index c2c1355..0000000 Binary files a/frontend/src/assets/fonts/Inter-ExtraBold.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-ExtraBold.woff2 b/frontend/src/assets/fonts/Inter-ExtraBold.woff2 deleted file mode 100644 index 125d981..0000000 Binary files a/frontend/src/assets/fonts/Inter-ExtraBold.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-ExtraBoldItalic.woff b/frontend/src/assets/fonts/Inter-ExtraBoldItalic.woff deleted file mode 100644 index 0cde9dc..0000000 Binary files a/frontend/src/assets/fonts/Inter-ExtraBoldItalic.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-ExtraBoldItalic.woff2 b/frontend/src/assets/fonts/Inter-ExtraBoldItalic.woff2 deleted file mode 100644 index b8c0987..0000000 Binary files a/frontend/src/assets/fonts/Inter-ExtraBoldItalic.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-ExtraLight-BETA.woff b/frontend/src/assets/fonts/Inter-ExtraLight-BETA.woff deleted file mode 100644 index 7d5eb03..0000000 Binary files a/frontend/src/assets/fonts/Inter-ExtraLight-BETA.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-ExtraLight-BETA.woff2 b/frontend/src/assets/fonts/Inter-ExtraLight-BETA.woff2 deleted file mode 100644 index 9a40440..0000000 Binary files a/frontend/src/assets/fonts/Inter-ExtraLight-BETA.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-ExtraLightItalic-BETA.woff b/frontend/src/assets/fonts/Inter-ExtraLightItalic-BETA.woff deleted file mode 100644 index 3e039a7..0000000 Binary files a/frontend/src/assets/fonts/Inter-ExtraLightItalic-BETA.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-ExtraLightItalic-BETA.woff2 b/frontend/src/assets/fonts/Inter-ExtraLightItalic-BETA.woff2 deleted file mode 100644 index 0ac33f9..0000000 Binary files a/frontend/src/assets/fonts/Inter-ExtraLightItalic-BETA.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-Italic.woff b/frontend/src/assets/fonts/Inter-Italic.woff deleted file mode 100644 index 0444e7f..0000000 Binary files a/frontend/src/assets/fonts/Inter-Italic.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-Italic.woff2 b/frontend/src/assets/fonts/Inter-Italic.woff2 deleted file mode 100644 index 9f134e4..0000000 Binary files a/frontend/src/assets/fonts/Inter-Italic.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-Light-BETA.woff b/frontend/src/assets/fonts/Inter-Light-BETA.woff deleted file mode 100644 index 8c0556c..0000000 Binary files a/frontend/src/assets/fonts/Inter-Light-BETA.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-Light-BETA.woff2 b/frontend/src/assets/fonts/Inter-Light-BETA.woff2 deleted file mode 100644 index e5a1561..0000000 Binary files a/frontend/src/assets/fonts/Inter-Light-BETA.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-LightItalic-BETA.woff b/frontend/src/assets/fonts/Inter-LightItalic-BETA.woff deleted file mode 100644 index 56f9a3f..0000000 Binary files a/frontend/src/assets/fonts/Inter-LightItalic-BETA.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-LightItalic-BETA.woff2 b/frontend/src/assets/fonts/Inter-LightItalic-BETA.woff2 deleted file mode 100644 index 2fe1b5f..0000000 Binary files a/frontend/src/assets/fonts/Inter-LightItalic-BETA.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-Medium.woff b/frontend/src/assets/fonts/Inter-Medium.woff deleted file mode 100644 index b7561d0..0000000 Binary files a/frontend/src/assets/fonts/Inter-Medium.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-Medium.woff2 b/frontend/src/assets/fonts/Inter-Medium.woff2 deleted file mode 100644 index 66528cd..0000000 Binary files a/frontend/src/assets/fonts/Inter-Medium.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-MediumItalic.woff b/frontend/src/assets/fonts/Inter-MediumItalic.woff deleted file mode 100644 index e0ac074..0000000 Binary files a/frontend/src/assets/fonts/Inter-MediumItalic.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-MediumItalic.woff2 b/frontend/src/assets/fonts/Inter-MediumItalic.woff2 deleted file mode 100644 index f39af2e..0000000 Binary files a/frontend/src/assets/fonts/Inter-MediumItalic.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-Regular.woff b/frontend/src/assets/fonts/Inter-Regular.woff deleted file mode 100644 index ea75a90..0000000 Binary files a/frontend/src/assets/fonts/Inter-Regular.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-Regular.woff2 b/frontend/src/assets/fonts/Inter-Regular.woff2 deleted file mode 100644 index d015841..0000000 Binary files a/frontend/src/assets/fonts/Inter-Regular.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-SemiBold.woff b/frontend/src/assets/fonts/Inter-SemiBold.woff deleted file mode 100644 index 26b1713..0000000 Binary files a/frontend/src/assets/fonts/Inter-SemiBold.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-SemiBold.woff2 b/frontend/src/assets/fonts/Inter-SemiBold.woff2 deleted file mode 100644 index c092053..0000000 Binary files a/frontend/src/assets/fonts/Inter-SemiBold.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-SemiBoldItalic.woff b/frontend/src/assets/fonts/Inter-SemiBoldItalic.woff deleted file mode 100644 index 1bd17a1..0000000 Binary files a/frontend/src/assets/fonts/Inter-SemiBoldItalic.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-SemiBoldItalic.woff2 b/frontend/src/assets/fonts/Inter-SemiBoldItalic.woff2 deleted file mode 100644 index 3c67c54..0000000 Binary files a/frontend/src/assets/fonts/Inter-SemiBoldItalic.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-Thin-BETA.woff b/frontend/src/assets/fonts/Inter-Thin-BETA.woff deleted file mode 100644 index 42be3bc..0000000 Binary files a/frontend/src/assets/fonts/Inter-Thin-BETA.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-Thin-BETA.woff2 b/frontend/src/assets/fonts/Inter-Thin-BETA.woff2 deleted file mode 100644 index 3b35a12..0000000 Binary files a/frontend/src/assets/fonts/Inter-Thin-BETA.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-ThinItalic-BETA.woff b/frontend/src/assets/fonts/Inter-ThinItalic-BETA.woff deleted file mode 100644 index 9addfb6..0000000 Binary files a/frontend/src/assets/fonts/Inter-ThinItalic-BETA.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-ThinItalic-BETA.woff2 b/frontend/src/assets/fonts/Inter-ThinItalic-BETA.woff2 deleted file mode 100644 index c8ecf3a..0000000 Binary files a/frontend/src/assets/fonts/Inter-ThinItalic-BETA.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-italic.var.woff2 b/frontend/src/assets/fonts/Inter-italic.var.woff2 deleted file mode 100644 index 2300488..0000000 Binary files a/frontend/src/assets/fonts/Inter-italic.var.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter-upright.var.woff2 b/frontend/src/assets/fonts/Inter-upright.var.woff2 deleted file mode 100644 index 37d9900..0000000 Binary files a/frontend/src/assets/fonts/Inter-upright.var.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/Inter.var.woff2 b/frontend/src/assets/fonts/Inter.var.woff2 deleted file mode 100644 index 1c91452..0000000 Binary files a/frontend/src/assets/fonts/Inter.var.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/fa-brands-400.eot b/frontend/src/assets/fonts/fa-brands-400.eot deleted file mode 100644 index e4ccce2..0000000 Binary files a/frontend/src/assets/fonts/fa-brands-400.eot and /dev/null differ diff --git a/frontend/src/assets/fonts/fa-brands-400.svg b/frontend/src/assets/fonts/fa-brands-400.svg deleted file mode 100644 index eb0f26f..0000000 --- a/frontend/src/assets/fonts/fa-brands-400.svg +++ /dev/null @@ -1,3570 +0,0 @@ - - - - - -Created by FontForge 20190801 at Tue Feb 4 18:05:39 2020 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/src/assets/fonts/fa-brands-400.ttf b/frontend/src/assets/fonts/fa-brands-400.ttf deleted file mode 100644 index 08622a3..0000000 Binary files a/frontend/src/assets/fonts/fa-brands-400.ttf and /dev/null differ diff --git a/frontend/src/assets/fonts/fa-brands-400.woff b/frontend/src/assets/fonts/fa-brands-400.woff deleted file mode 100644 index a43870c..0000000 Binary files a/frontend/src/assets/fonts/fa-brands-400.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/fa-brands-400.woff2 b/frontend/src/assets/fonts/fa-brands-400.woff2 deleted file mode 100644 index 3c5189d..0000000 Binary files a/frontend/src/assets/fonts/fa-brands-400.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/fa-regular-400.eot b/frontend/src/assets/fonts/fa-regular-400.eot deleted file mode 100644 index bef9f72..0000000 Binary files a/frontend/src/assets/fonts/fa-regular-400.eot and /dev/null differ diff --git a/frontend/src/assets/fonts/fa-regular-400.svg b/frontend/src/assets/fonts/fa-regular-400.svg deleted file mode 100644 index bccc256..0000000 --- a/frontend/src/assets/fonts/fa-regular-400.svg +++ /dev/null @@ -1,801 +0,0 @@ - - - - -Created by FontForge 20200314 at Mon Oct 5 09:50:45 2020 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/src/assets/fonts/fa-regular-400.ttf b/frontend/src/assets/fonts/fa-regular-400.ttf deleted file mode 100644 index 659527a..0000000 Binary files a/frontend/src/assets/fonts/fa-regular-400.ttf and /dev/null differ diff --git a/frontend/src/assets/fonts/fa-regular-400.woff b/frontend/src/assets/fonts/fa-regular-400.woff deleted file mode 100644 index 31f44b2..0000000 Binary files a/frontend/src/assets/fonts/fa-regular-400.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/fa-regular-400.woff2 b/frontend/src/assets/fonts/fa-regular-400.woff2 deleted file mode 100644 index 0332a9b..0000000 Binary files a/frontend/src/assets/fonts/fa-regular-400.woff2 and /dev/null differ diff --git a/frontend/src/assets/fonts/fa-solid-900.eot b/frontend/src/assets/fonts/fa-solid-900.eot deleted file mode 100644 index 5da4fa0..0000000 Binary files a/frontend/src/assets/fonts/fa-solid-900.eot and /dev/null differ diff --git a/frontend/src/assets/fonts/fa-solid-900.svg b/frontend/src/assets/fonts/fa-solid-900.svg deleted file mode 100644 index 313b311..0000000 --- a/frontend/src/assets/fonts/fa-solid-900.svg +++ /dev/null @@ -1,5028 +0,0 @@ - - - - -Created by FontForge 20200314 at Mon Oct 5 09:50:45 2020 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/src/assets/fonts/fa-solid-900.ttf b/frontend/src/assets/fonts/fa-solid-900.ttf deleted file mode 100644 index e074608..0000000 Binary files a/frontend/src/assets/fonts/fa-solid-900.ttf and /dev/null differ diff --git a/frontend/src/assets/fonts/fa-solid-900.woff b/frontend/src/assets/fonts/fa-solid-900.woff deleted file mode 100644 index ef6b447..0000000 Binary files a/frontend/src/assets/fonts/fa-solid-900.woff and /dev/null differ diff --git a/frontend/src/assets/fonts/fa-solid-900.woff2 b/frontend/src/assets/fonts/fa-solid-900.woff2 deleted file mode 100644 index 120b300..0000000 Binary files a/frontend/src/assets/fonts/fa-solid-900.woff2 and /dev/null differ diff --git a/frontend/src/assets/js/app.js b/frontend/src/assets/js/app.js deleted file mode 100644 index e32287b..0000000 --- a/frontend/src/assets/js/app.js +++ /dev/null @@ -1,25141 +0,0 @@ -/*! For license information please see app.js.LICENSE.txt */ -!function (e) { - var t = {}; - - function n(i) { - if (t[i]) return t[i].exports; - var a = t[i] = {i: i, l: !1, exports: {}}; - return e[i].call(a.exports, a, a.exports, n), a.l = !0, a.exports - } - - n.m = e, n.c = t, n.d = function (e, t, i) { - n.o(e, t) || Object.defineProperty(e, t, {enumerable: !0, get: i}) - }, n.r = function (e) { - "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {value: "Module"}), Object.defineProperty(e, "__esModule", {value: !0}) - }, n.t = function (e, t) { - if (1 & t && (e = n(e)), 8 & t) return e; - if (4 & t && "object" == typeof e && e && e.__esModule) return e; - var i = Object.create(null); - if (n.r(i), Object.defineProperty(i, "default", { - enumerable: !0, - value: e - }), 2 & t && "string" != typeof e) for (var a in e) n.d(i, a, function (t) { - return e[t] - }.bind(null, a)); - return i - }, n.n = function (e) { - var t = e && e.__esModule ? function () { - return e.default - } : function () { - return e - }; - return n.d(t, "a", t), t - }, n.o = function (e, t) { - return Object.prototype.hasOwnProperty.call(e, t) - }, n.p = "", n(n.s = 304) -}([function (e, t, n) { - (function (e) { - e.exports = function () { - "use strict"; - var t, i; - - function a() { - return t.apply(null, arguments) - } - - function r(e) { - t = e - } - - function l(e) { - return e instanceof Array || "[object Array]" === Object.prototype.toString.call(e) - } - - function o(e) { - return null != e && "[object Object]" === Object.prototype.toString.call(e) - } - - function s(e, t) { - return Object.prototype.hasOwnProperty.call(e, t) - } - - function d(e) { - if (Object.getOwnPropertyNames) return 0 === Object.getOwnPropertyNames(e).length; - var t; - for (t in e) if (s(e, t)) return !1; - return !0 - } - - function u(e) { - return void 0 === e - } - - function c(e) { - return "number" == typeof e || "[object Number]" === Object.prototype.toString.call(e) - } - - function h(e) { - return e instanceof Date || "[object Date]" === Object.prototype.toString.call(e) - } - - function m(e, t) { - var n, i = []; - for (n = 0; n < e.length; ++n) i.push(t(e[n], n)); - return i - } - - function f(e, t) { - for (var n in t) s(t, n) && (e[n] = t[n]); - return s(t, "toString") && (e.toString = t.toString), s(t, "valueOf") && (e.valueOf = t.valueOf), e - } - - function _(e, t, n, i) { - return Gn(e, t, n, i, !0).utc() - } - - function p() { - return { - empty: !1, - unusedTokens: [], - unusedInput: [], - overflow: -2, - charsLeftOver: 0, - nullInput: !1, - invalidEra: null, - invalidMonth: null, - invalidFormat: !1, - userInvalidated: !1, - iso: !1, - parsedDateParts: [], - era: null, - meridiem: null, - rfc2822: !1, - weekdayMismatch: !1 - } - } - - function g(e) { - return null == e._pf && (e._pf = p()), e._pf - } - - function y(e) { - if (null == e._isValid) { - var t = g(e), n = i.call(t.parsedDateParts, (function (e) { - return null != e - })), - a = !isNaN(e._d.getTime()) && t.overflow < 0 && !t.empty && !t.invalidEra && !t.invalidMonth && !t.invalidWeekday && !t.weekdayMismatch && !t.nullInput && !t.invalidFormat && !t.userInvalidated && (!t.meridiem || t.meridiem && n); - if (e._strict && (a = a && 0 === t.charsLeftOver && 0 === t.unusedTokens.length && void 0 === t.bigHour), null != Object.isFrozen && Object.isFrozen(e)) return a; - e._isValid = a - } - return e._isValid - } - - function v(e) { - var t = _(NaN); - return null != e ? f(g(t), e) : g(t).userInvalidated = !0, t - } - - i = Array.prototype.some ? Array.prototype.some : function (e) { - var t, n = Object(this), i = n.length >>> 0; - for (t = 0; t < i; t++) if (t in n && e.call(this, n[t], t, n)) return !0; - return !1 - }; - var M = a.momentProperties = [], b = !1; - - function x(e, t) { - var n, i, a; - if (u(t._isAMomentObject) || (e._isAMomentObject = t._isAMomentObject), u(t._i) || (e._i = t._i), u(t._f) || (e._f = t._f), u(t._l) || (e._l = t._l), u(t._strict) || (e._strict = t._strict), u(t._tzm) || (e._tzm = t._tzm), u(t._isUTC) || (e._isUTC = t._isUTC), u(t._offset) || (e._offset = t._offset), u(t._pf) || (e._pf = g(t)), u(t._locale) || (e._locale = t._locale), M.length > 0) for (n = 0; n < M.length; n++) u(a = t[i = M[n]]) || (e[i] = a); - return e - } - - function L(e) { - x(this, e), this._d = new Date(null != e._d ? e._d.getTime() : NaN), this.isValid() || (this._d = new Date(NaN)), !1 === b && (b = !0, a.updateOffset(this), b = !1) - } - - function w(e) { - return e instanceof L || null != e && null != e._isAMomentObject - } - - function k(e) { - !1 === a.suppressDeprecationWarnings && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + e) - } - - function Y(e, t) { - var n = !0; - return f((function () { - if (null != a.deprecationHandler && a.deprecationHandler(null, e), n) { - var i, r, l, o = []; - for (r = 0; r < arguments.length; r++) { - if (i = "", "object" == typeof arguments[r]) { - for (l in i += "\n[" + r + "] ", arguments[0]) s(arguments[0], l) && (i += l + ": " + arguments[0][l] + ", "); - i = i.slice(0, -2) - } else i = arguments[r]; - o.push(i) - } - k(e + "\nArguments: " + Array.prototype.slice.call(o).join("") + "\n" + (new Error).stack), n = !1 - } - return t.apply(this, arguments) - }), t) - } - - var D, T = {}; - - function S(e, t) { - null != a.deprecationHandler && a.deprecationHandler(e, t), T[e] || (k(t), T[e] = !0) - } - - function j(e) { - return "undefined" != typeof Function && e instanceof Function || "[object Function]" === Object.prototype.toString.call(e) - } - - function E(e) { - var t, n; - for (n in e) s(e, n) && (j(t = e[n]) ? this[n] = t : this["_" + n] = t); - this._config = e, this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source) - } - - function H(e, t) { - var n, i = f({}, e); - for (n in t) s(t, n) && (o(e[n]) && o(t[n]) ? (i[n] = {}, f(i[n], e[n]), f(i[n], t[n])) : null != t[n] ? i[n] = t[n] : delete i[n]); - for (n in e) s(e, n) && !s(t, n) && o(e[n]) && (i[n] = f({}, i[n])); - return i - } - - function O(e) { - null != e && this.set(e) - } - - a.suppressDeprecationWarnings = !1, a.deprecationHandler = null, D = Object.keys ? Object.keys : function (e) { - var t, n = []; - for (t in e) s(e, t) && n.push(t); - return n - }; - var A = { - sameDay: "[Today at] LT", - nextDay: "[Tomorrow at] LT", - nextWeek: "dddd [at] LT", - lastDay: "[Yesterday at] LT", - lastWeek: "[Last] dddd [at] LT", - sameElse: "L" - }; - - function P(e, t, n) { - var i = this._calendar[e] || this._calendar.sameElse; - return j(i) ? i.call(t, n) : i - } - - function C(e, t, n) { - var i = "" + Math.abs(e), a = t - i.length; - return (e >= 0 ? n ? "+" : "" : "-") + Math.pow(10, Math.max(0, a)).toString().substr(1) + i - } - - var F = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, - I = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, W = {}, N = {}; - - function z(e, t, n, i) { - var a = i; - "string" == typeof i && (a = function () { - return this[i]() - }), e && (N[e] = a), t && (N[t[0]] = function () { - return C(a.apply(this, arguments), t[1], t[2]) - }), n && (N[n] = function () { - return this.localeData().ordinal(a.apply(this, arguments), e) - }) - } - - function R(e) { - return e.match(/\[[\s\S]/) ? e.replace(/^\[|\]$/g, "") : e.replace(/\\/g, "") - } - - function V(e) { - var t, n, i = e.match(F); - for (t = 0, n = i.length; t < n; t++) N[i[t]] ? i[t] = N[i[t]] : i[t] = R(i[t]); - return function (t) { - var a, r = ""; - for (a = 0; a < n; a++) r += j(i[a]) ? i[a].call(t, e) : i[a]; - return r - } - } - - function B(e, t) { - return e.isValid() ? (t = Z(t, e.localeData()), W[t] = W[t] || V(t), W[t](e)) : e.localeData().invalidDate() - } - - function Z(e, t) { - var n = 5; - - function i(e) { - return t.longDateFormat(e) || e - } - - for (I.lastIndex = 0; n >= 0 && I.test(e);) e = e.replace(I, i), I.lastIndex = 0, n -= 1; - return e - } - - var U = { - LTS: "h:mm:ss A", - LT: "h:mm A", - L: "MM/DD/YYYY", - LL: "MMMM D, YYYY", - LLL: "MMMM D, YYYY h:mm A", - LLLL: "dddd, MMMM D, YYYY h:mm A" - }; - - function J(e) { - var t = this._longDateFormat[e], n = this._longDateFormat[e.toUpperCase()]; - return t || !n ? t : (this._longDateFormat[e] = n.match(F).map((function (e) { - return "MMMM" === e || "MM" === e || "DD" === e || "dddd" === e ? e.slice(1) : e - })).join(""), this._longDateFormat[e]) - } - - var G = "Invalid date"; - - function q() { - return this._invalidDate - } - - var K = "%d", X = /\d{1,2}/; - - function $(e) { - return this._ordinal.replace("%d", e) - } - - var Q = { - future: "in %s", - past: "%s ago", - s: "a few seconds", - ss: "%d seconds", - m: "a minute", - mm: "%d minutes", - h: "an hour", - hh: "%d hours", - d: "a day", - dd: "%d days", - w: "a week", - ww: "%d weeks", - M: "a month", - MM: "%d months", - y: "a year", - yy: "%d years" - }; - - function ee(e, t, n, i) { - var a = this._relativeTime[n]; - return j(a) ? a(e, t, n, i) : a.replace(/%d/i, e) - } - - function te(e, t) { - var n = this._relativeTime[e > 0 ? "future" : "past"]; - return j(n) ? n(t) : n.replace(/%s/i, t) - } - - var ne = {}; - - function ie(e, t) { - var n = e.toLowerCase(); - ne[n] = ne[n + "s"] = ne[t] = e - } - - function ae(e) { - return "string" == typeof e ? ne[e] || ne[e.toLowerCase()] : void 0 - } - - function re(e) { - var t, n, i = {}; - for (n in e) s(e, n) && (t = ae(n)) && (i[t] = e[n]); - return i - } - - var le = {}; - - function oe(e, t) { - le[e] = t - } - - function se(e) { - var t, n = []; - for (t in e) s(e, t) && n.push({unit: t, priority: le[t]}); - return n.sort((function (e, t) { - return e.priority - t.priority - })), n - } - - function de(e) { - return e % 4 == 0 && e % 100 != 0 || e % 400 == 0 - } - - function ue(e) { - return e < 0 ? Math.ceil(e) || 0 : Math.floor(e) - } - - function ce(e) { - var t = +e, n = 0; - return 0 !== t && isFinite(t) && (n = ue(t)), n - } - - function he(e, t) { - return function (n) { - return null != n ? (fe(this, e, n), a.updateOffset(this, t), this) : me(this, e) - } - } - - function me(e, t) { - return e.isValid() ? e._d["get" + (e._isUTC ? "UTC" : "") + t]() : NaN - } - - function fe(e, t, n) { - e.isValid() && !isNaN(n) && ("FullYear" === t && de(e.year()) && 1 === e.month() && 29 === e.date() ? (n = ce(n), e._d["set" + (e._isUTC ? "UTC" : "") + t](n, e.month(), et(n, e.month()))) : e._d["set" + (e._isUTC ? "UTC" : "") + t](n)) - } - - function _e(e) { - return j(this[e = ae(e)]) ? this[e]() : this - } - - function pe(e, t) { - if ("object" == typeof e) { - var n, i = se(e = re(e)); - for (n = 0; n < i.length; n++) this[i[n].unit](e[i[n].unit]) - } else if (j(this[e = ae(e)])) return this[e](t); - return this - } - - var ge, ye = /\d/, ve = /\d\d/, Me = /\d{3}/, be = /\d{4}/, xe = /[+-]?\d{6}/, Le = /\d\d?/, - we = /\d\d\d\d?/, ke = /\d\d\d\d\d\d?/, Ye = /\d{1,3}/, De = /\d{1,4}/, Te = /[+-]?\d{1,6}/, Se = /\d+/, - je = /[+-]?\d+/, Ee = /Z|[+-]\d\d:?\d\d/gi, He = /Z|[+-]\d\d(?::?\d\d)?/gi, Oe = /[+-]?\d+(\.\d{1,3})?/, - Ae = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i; - - function Pe(e, t, n) { - ge[e] = j(t) ? t : function (e, i) { - return e && n ? n : t - } - } - - function Ce(e, t) { - return s(ge, e) ? ge[e](t._strict, t._locale) : new RegExp(Fe(e)) - } - - function Fe(e) { - return Ie(e.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, (function (e, t, n, i, a) { - return t || n || i || a - }))) - } - - function Ie(e) { - return e.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&") - } - - ge = {}; - var We = {}; - - function Ne(e, t) { - var n, i = t; - for ("string" == typeof e && (e = [e]), c(t) && (i = function (e, n) { - n[t] = ce(e) - }), n = 0; n < e.length; n++) We[e[n]] = i - } - - function ze(e, t) { - Ne(e, (function (e, n, i, a) { - i._w = i._w || {}, t(e, i._w, i, a) - })) - } - - function Re(e, t, n) { - null != t && s(We, e) && We[e](t, n._a, n, e) - } - - var Ve, Be = 0, Ze = 1, Ue = 2, Je = 3, Ge = 4, qe = 5, Ke = 6, Xe = 7, $e = 8; - - function Qe(e, t) { - return (e % t + t) % t - } - - function et(e, t) { - if (isNaN(e) || isNaN(t)) return NaN; - var n = Qe(t, 12); - return e += (t - n) / 12, 1 === n ? de(e) ? 29 : 28 : 31 - n % 7 % 2 - } - - Ve = Array.prototype.indexOf ? Array.prototype.indexOf : function (e) { - var t; - for (t = 0; t < this.length; ++t) if (this[t] === e) return t; - return -1 - }, z("M", ["MM", 2], "Mo", (function () { - return this.month() + 1 - })), z("MMM", 0, 0, (function (e) { - return this.localeData().monthsShort(this, e) - })), z("MMMM", 0, 0, (function (e) { - return this.localeData().months(this, e) - })), ie("month", "M"), oe("month", 8), Pe("M", Le), Pe("MM", Le, ve), Pe("MMM", (function (e, t) { - return t.monthsShortRegex(e) - })), Pe("MMMM", (function (e, t) { - return t.monthsRegex(e) - })), Ne(["M", "MM"], (function (e, t) { - t[Ze] = ce(e) - 1 - })), Ne(["MMM", "MMMM"], (function (e, t, n, i) { - var a = n._locale.monthsParse(e, i, n._strict); - null != a ? t[Ze] = a : g(n).invalidMonth = e - })); - var tt = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), - nt = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), it = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, - at = Ae, rt = Ae; - - function lt(e, t) { - return e ? l(this._months) ? this._months[e.month()] : this._months[(this._months.isFormat || it).test(t) ? "format" : "standalone"][e.month()] : l(this._months) ? this._months : this._months.standalone - } - - function ot(e, t) { - return e ? l(this._monthsShort) ? this._monthsShort[e.month()] : this._monthsShort[it.test(t) ? "format" : "standalone"][e.month()] : l(this._monthsShort) ? this._monthsShort : this._monthsShort.standalone - } - - function st(e, t, n) { - var i, a, r, l = e.toLocaleLowerCase(); - if (!this._monthsParse) for (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], i = 0; i < 12; ++i) r = _([2e3, i]), this._shortMonthsParse[i] = this.monthsShort(r, "").toLocaleLowerCase(), this._longMonthsParse[i] = this.months(r, "").toLocaleLowerCase(); - return n ? "MMM" === t ? -1 !== (a = Ve.call(this._shortMonthsParse, l)) ? a : null : -1 !== (a = Ve.call(this._longMonthsParse, l)) ? a : null : "MMM" === t ? -1 !== (a = Ve.call(this._shortMonthsParse, l)) || -1 !== (a = Ve.call(this._longMonthsParse, l)) ? a : null : -1 !== (a = Ve.call(this._longMonthsParse, l)) || -1 !== (a = Ve.call(this._shortMonthsParse, l)) ? a : null - } - - function dt(e, t, n) { - var i, a, r; - if (this._monthsParseExact) return st.call(this, e, t, n); - for (this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), i = 0; i < 12; i++) { - if (a = _([2e3, i]), n && !this._longMonthsParse[i] && (this._longMonthsParse[i] = new RegExp("^" + this.months(a, "").replace(".", "") + "$", "i"), this._shortMonthsParse[i] = new RegExp("^" + this.monthsShort(a, "").replace(".", "") + "$", "i")), n || this._monthsParse[i] || (r = "^" + this.months(a, "") + "|^" + this.monthsShort(a, ""), this._monthsParse[i] = new RegExp(r.replace(".", ""), "i")), n && "MMMM" === t && this._longMonthsParse[i].test(e)) return i; - if (n && "MMM" === t && this._shortMonthsParse[i].test(e)) return i; - if (!n && this._monthsParse[i].test(e)) return i - } - } - - function ut(e, t) { - var n; - if (!e.isValid()) return e; - if ("string" == typeof t) if (/^\d+$/.test(t)) t = ce(t); else if (!c(t = e.localeData().monthsParse(t))) return e; - return n = Math.min(e.date(), et(e.year(), t)), e._d["set" + (e._isUTC ? "UTC" : "") + "Month"](t, n), e - } - - function ct(e) { - return null != e ? (ut(this, e), a.updateOffset(this, !0), this) : me(this, "Month") - } - - function ht() { - return et(this.year(), this.month()) - } - - function mt(e) { - return this._monthsParseExact ? (s(this, "_monthsRegex") || _t.call(this), e ? this._monthsShortStrictRegex : this._monthsShortRegex) : (s(this, "_monthsShortRegex") || (this._monthsShortRegex = at), this._monthsShortStrictRegex && e ? this._monthsShortStrictRegex : this._monthsShortRegex) - } - - function ft(e) { - return this._monthsParseExact ? (s(this, "_monthsRegex") || _t.call(this), e ? this._monthsStrictRegex : this._monthsRegex) : (s(this, "_monthsRegex") || (this._monthsRegex = rt), this._monthsStrictRegex && e ? this._monthsStrictRegex : this._monthsRegex) - } - - function _t() { - function e(e, t) { - return t.length - e.length - } - - var t, n, i = [], a = [], r = []; - for (t = 0; t < 12; t++) n = _([2e3, t]), i.push(this.monthsShort(n, "")), a.push(this.months(n, "")), r.push(this.months(n, "")), r.push(this.monthsShort(n, "")); - for (i.sort(e), a.sort(e), r.sort(e), t = 0; t < 12; t++) i[t] = Ie(i[t]), a[t] = Ie(a[t]); - for (t = 0; t < 24; t++) r[t] = Ie(r[t]); - this._monthsRegex = new RegExp("^(" + r.join("|") + ")", "i"), this._monthsShortRegex = this._monthsRegex, this._monthsStrictRegex = new RegExp("^(" + a.join("|") + ")", "i"), this._monthsShortStrictRegex = new RegExp("^(" + i.join("|") + ")", "i") - } - - function pt(e) { - return de(e) ? 366 : 365 - } - - z("Y", 0, 0, (function () { - var e = this.year(); - return e <= 9999 ? C(e, 4) : "+" + e - })), z(0, ["YY", 2], 0, (function () { - return this.year() % 100 - })), z(0, ["YYYY", 4], 0, "year"), z(0, ["YYYYY", 5], 0, "year"), z(0, ["YYYYYY", 6, !0], 0, "year"), ie("year", "y"), oe("year", 1), Pe("Y", je), Pe("YY", Le, ve), Pe("YYYY", De, be), Pe("YYYYY", Te, xe), Pe("YYYYYY", Te, xe), Ne(["YYYYY", "YYYYYY"], Be), Ne("YYYY", (function (e, t) { - t[Be] = 2 === e.length ? a.parseTwoDigitYear(e) : ce(e) - })), Ne("YY", (function (e, t) { - t[Be] = a.parseTwoDigitYear(e) - })), Ne("Y", (function (e, t) { - t[Be] = parseInt(e, 10) - })), a.parseTwoDigitYear = function (e) { - return ce(e) + (ce(e) > 68 ? 1900 : 2e3) - }; - var gt = he("FullYear", !0); - - function yt() { - return de(this.year()) - } - - function vt(e, t, n, i, a, r, l) { - var o; - return e < 100 && e >= 0 ? (o = new Date(e + 400, t, n, i, a, r, l), isFinite(o.getFullYear()) && o.setFullYear(e)) : o = new Date(e, t, n, i, a, r, l), o - } - - function Mt(e) { - var t, n; - return e < 100 && e >= 0 ? ((n = Array.prototype.slice.call(arguments))[0] = e + 400, t = new Date(Date.UTC.apply(null, n)), isFinite(t.getUTCFullYear()) && t.setUTCFullYear(e)) : t = new Date(Date.UTC.apply(null, arguments)), t - } - - function bt(e, t, n) { - var i = 7 + t - n; - return -(7 + Mt(e, 0, i).getUTCDay() - t) % 7 + i - 1 - } - - function xt(e, t, n, i, a) { - var r, l, o = 1 + 7 * (t - 1) + (7 + n - i) % 7 + bt(e, i, a); - return o <= 0 ? l = pt(r = e - 1) + o : o > pt(e) ? (r = e + 1, l = o - pt(e)) : (r = e, l = o), { - year: r, - dayOfYear: l - } - } - - function Lt(e, t, n) { - var i, a, r = bt(e.year(), t, n), l = Math.floor((e.dayOfYear() - r - 1) / 7) + 1; - return l < 1 ? i = l + wt(a = e.year() - 1, t, n) : l > wt(e.year(), t, n) ? (i = l - wt(e.year(), t, n), a = e.year() + 1) : (a = e.year(), i = l), { - week: i, - year: a - } - } - - function wt(e, t, n) { - var i = bt(e, t, n), a = bt(e + 1, t, n); - return (pt(e) - i + a) / 7 - } - - function kt(e) { - return Lt(e, this._week.dow, this._week.doy).week - } - - z("w", ["ww", 2], "wo", "week"), z("W", ["WW", 2], "Wo", "isoWeek"), ie("week", "w"), ie("isoWeek", "W"), oe("week", 5), oe("isoWeek", 5), Pe("w", Le), Pe("ww", Le, ve), Pe("W", Le), Pe("WW", Le, ve), ze(["w", "ww", "W", "WW"], (function (e, t, n, i) { - t[i.substr(0, 1)] = ce(e) - })); - var Yt = {dow: 0, doy: 6}; - - function Dt() { - return this._week.dow - } - - function Tt() { - return this._week.doy - } - - function St(e) { - var t = this.localeData().week(this); - return null == e ? t : this.add(7 * (e - t), "d") - } - - function jt(e) { - var t = Lt(this, 1, 4).week; - return null == e ? t : this.add(7 * (e - t), "d") - } - - function Et(e, t) { - return "string" != typeof e ? e : isNaN(e) ? "number" == typeof (e = t.weekdaysParse(e)) ? e : null : parseInt(e, 10) - } - - function Ht(e, t) { - return "string" == typeof e ? t.weekdaysParse(e) % 7 || 7 : isNaN(e) ? null : e - } - - function Ot(e, t) { - return e.slice(t, 7).concat(e.slice(0, t)) - } - - z("d", 0, "do", "day"), z("dd", 0, 0, (function (e) { - return this.localeData().weekdaysMin(this, e) - })), z("ddd", 0, 0, (function (e) { - return this.localeData().weekdaysShort(this, e) - })), z("dddd", 0, 0, (function (e) { - return this.localeData().weekdays(this, e) - })), z("e", 0, 0, "weekday"), z("E", 0, 0, "isoWeekday"), ie("day", "d"), ie("weekday", "e"), ie("isoWeekday", "E"), oe("day", 11), oe("weekday", 11), oe("isoWeekday", 11), Pe("d", Le), Pe("e", Le), Pe("E", Le), Pe("dd", (function (e, t) { - return t.weekdaysMinRegex(e) - })), Pe("ddd", (function (e, t) { - return t.weekdaysShortRegex(e) - })), Pe("dddd", (function (e, t) { - return t.weekdaysRegex(e) - })), ze(["dd", "ddd", "dddd"], (function (e, t, n, i) { - var a = n._locale.weekdaysParse(e, i, n._strict); - null != a ? t.d = a : g(n).invalidWeekday = e - })), ze(["d", "e", "E"], (function (e, t, n, i) { - t[i] = ce(e) - })); - var At = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), - Pt = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), Ct = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), Ft = Ae, It = Ae, - Wt = Ae; - - function Nt(e, t) { - var n = l(this._weekdays) ? this._weekdays : this._weekdays[e && !0 !== e && this._weekdays.isFormat.test(t) ? "format" : "standalone"]; - return !0 === e ? Ot(n, this._week.dow) : e ? n[e.day()] : n - } - - function zt(e) { - return !0 === e ? Ot(this._weekdaysShort, this._week.dow) : e ? this._weekdaysShort[e.day()] : this._weekdaysShort - } - - function Rt(e) { - return !0 === e ? Ot(this._weekdaysMin, this._week.dow) : e ? this._weekdaysMin[e.day()] : this._weekdaysMin - } - - function Vt(e, t, n) { - var i, a, r, l = e.toLocaleLowerCase(); - if (!this._weekdaysParse) for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], i = 0; i < 7; ++i) r = _([2e3, 1]).day(i), this._minWeekdaysParse[i] = this.weekdaysMin(r, "").toLocaleLowerCase(), this._shortWeekdaysParse[i] = this.weekdaysShort(r, "").toLocaleLowerCase(), this._weekdaysParse[i] = this.weekdays(r, "").toLocaleLowerCase(); - return n ? "dddd" === t ? -1 !== (a = Ve.call(this._weekdaysParse, l)) ? a : null : "ddd" === t ? -1 !== (a = Ve.call(this._shortWeekdaysParse, l)) ? a : null : -1 !== (a = Ve.call(this._minWeekdaysParse, l)) ? a : null : "dddd" === t ? -1 !== (a = Ve.call(this._weekdaysParse, l)) || -1 !== (a = Ve.call(this._shortWeekdaysParse, l)) || -1 !== (a = Ve.call(this._minWeekdaysParse, l)) ? a : null : "ddd" === t ? -1 !== (a = Ve.call(this._shortWeekdaysParse, l)) || -1 !== (a = Ve.call(this._weekdaysParse, l)) || -1 !== (a = Ve.call(this._minWeekdaysParse, l)) ? a : null : -1 !== (a = Ve.call(this._minWeekdaysParse, l)) || -1 !== (a = Ve.call(this._weekdaysParse, l)) || -1 !== (a = Ve.call(this._shortWeekdaysParse, l)) ? a : null - } - - function Bt(e, t, n) { - var i, a, r; - if (this._weekdaysParseExact) return Vt.call(this, e, t, n); - for (this._weekdaysParse || (this._weekdaysParse = [], this._minWeekdaysParse = [], this._shortWeekdaysParse = [], this._fullWeekdaysParse = []), i = 0; i < 7; i++) { - if (a = _([2e3, 1]).day(i), n && !this._fullWeekdaysParse[i] && (this._fullWeekdaysParse[i] = new RegExp("^" + this.weekdays(a, "").replace(".", "\\.?") + "$", "i"), this._shortWeekdaysParse[i] = new RegExp("^" + this.weekdaysShort(a, "").replace(".", "\\.?") + "$", "i"), this._minWeekdaysParse[i] = new RegExp("^" + this.weekdaysMin(a, "").replace(".", "\\.?") + "$", "i")), this._weekdaysParse[i] || (r = "^" + this.weekdays(a, "") + "|^" + this.weekdaysShort(a, "") + "|^" + this.weekdaysMin(a, ""), this._weekdaysParse[i] = new RegExp(r.replace(".", ""), "i")), n && "dddd" === t && this._fullWeekdaysParse[i].test(e)) return i; - if (n && "ddd" === t && this._shortWeekdaysParse[i].test(e)) return i; - if (n && "dd" === t && this._minWeekdaysParse[i].test(e)) return i; - if (!n && this._weekdaysParse[i].test(e)) return i - } - } - - function Zt(e) { - if (!this.isValid()) return null != e ? this : NaN; - var t = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); - return null != e ? (e = Et(e, this.localeData()), this.add(e - t, "d")) : t - } - - function Ut(e) { - if (!this.isValid()) return null != e ? this : NaN; - var t = (this.day() + 7 - this.localeData()._week.dow) % 7; - return null == e ? t : this.add(e - t, "d") - } - - function Jt(e) { - if (!this.isValid()) return null != e ? this : NaN; - if (null != e) { - var t = Ht(e, this.localeData()); - return this.day(this.day() % 7 ? t : t - 7) - } - return this.day() || 7 - } - - function Gt(e) { - return this._weekdaysParseExact ? (s(this, "_weekdaysRegex") || Xt.call(this), e ? this._weekdaysStrictRegex : this._weekdaysRegex) : (s(this, "_weekdaysRegex") || (this._weekdaysRegex = Ft), this._weekdaysStrictRegex && e ? this._weekdaysStrictRegex : this._weekdaysRegex) - } - - function qt(e) { - return this._weekdaysParseExact ? (s(this, "_weekdaysRegex") || Xt.call(this), e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : (s(this, "_weekdaysShortRegex") || (this._weekdaysShortRegex = It), this._weekdaysShortStrictRegex && e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) - } - - function Kt(e) { - return this._weekdaysParseExact ? (s(this, "_weekdaysRegex") || Xt.call(this), e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : (s(this, "_weekdaysMinRegex") || (this._weekdaysMinRegex = Wt), this._weekdaysMinStrictRegex && e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) - } - - function Xt() { - function e(e, t) { - return t.length - e.length - } - - var t, n, i, a, r, l = [], o = [], s = [], d = []; - for (t = 0; t < 7; t++) n = _([2e3, 1]).day(t), i = Ie(this.weekdaysMin(n, "")), a = Ie(this.weekdaysShort(n, "")), r = Ie(this.weekdays(n, "")), l.push(i), o.push(a), s.push(r), d.push(i), d.push(a), d.push(r); - l.sort(e), o.sort(e), s.sort(e), d.sort(e), this._weekdaysRegex = new RegExp("^(" + d.join("|") + ")", "i"), this._weekdaysShortRegex = this._weekdaysRegex, this._weekdaysMinRegex = this._weekdaysRegex, this._weekdaysStrictRegex = new RegExp("^(" + s.join("|") + ")", "i"), this._weekdaysShortStrictRegex = new RegExp("^(" + o.join("|") + ")", "i"), this._weekdaysMinStrictRegex = new RegExp("^(" + l.join("|") + ")", "i") - } - - function $t() { - return this.hours() % 12 || 12 - } - - function Qt() { - return this.hours() || 24 - } - - function en(e, t) { - z(e, 0, 0, (function () { - return this.localeData().meridiem(this.hours(), this.minutes(), t) - })) - } - - function tn(e, t) { - return t._meridiemParse - } - - function nn(e) { - return "p" === (e + "").toLowerCase().charAt(0) - } - - z("H", ["HH", 2], 0, "hour"), z("h", ["hh", 2], 0, $t), z("k", ["kk", 2], 0, Qt), z("hmm", 0, 0, (function () { - return "" + $t.apply(this) + C(this.minutes(), 2) - })), z("hmmss", 0, 0, (function () { - return "" + $t.apply(this) + C(this.minutes(), 2) + C(this.seconds(), 2) - })), z("Hmm", 0, 0, (function () { - return "" + this.hours() + C(this.minutes(), 2) - })), z("Hmmss", 0, 0, (function () { - return "" + this.hours() + C(this.minutes(), 2) + C(this.seconds(), 2) - })), en("a", !0), en("A", !1), ie("hour", "h"), oe("hour", 13), Pe("a", tn), Pe("A", tn), Pe("H", Le), Pe("h", Le), Pe("k", Le), Pe("HH", Le, ve), Pe("hh", Le, ve), Pe("kk", Le, ve), Pe("hmm", we), Pe("hmmss", ke), Pe("Hmm", we), Pe("Hmmss", ke), Ne(["H", "HH"], Je), Ne(["k", "kk"], (function (e, t, n) { - var i = ce(e); - t[Je] = 24 === i ? 0 : i - })), Ne(["a", "A"], (function (e, t, n) { - n._isPm = n._locale.isPM(e), n._meridiem = e - })), Ne(["h", "hh"], (function (e, t, n) { - t[Je] = ce(e), g(n).bigHour = !0 - })), Ne("hmm", (function (e, t, n) { - var i = e.length - 2; - t[Je] = ce(e.substr(0, i)), t[Ge] = ce(e.substr(i)), g(n).bigHour = !0 - })), Ne("hmmss", (function (e, t, n) { - var i = e.length - 4, a = e.length - 2; - t[Je] = ce(e.substr(0, i)), t[Ge] = ce(e.substr(i, 2)), t[qe] = ce(e.substr(a)), g(n).bigHour = !0 - })), Ne("Hmm", (function (e, t, n) { - var i = e.length - 2; - t[Je] = ce(e.substr(0, i)), t[Ge] = ce(e.substr(i)) - })), Ne("Hmmss", (function (e, t, n) { - var i = e.length - 4, a = e.length - 2; - t[Je] = ce(e.substr(0, i)), t[Ge] = ce(e.substr(i, 2)), t[qe] = ce(e.substr(a)) - })); - var an = /[ap]\.?m?\.?/i, rn = he("Hours", !0); - - function ln(e, t, n) { - return e > 11 ? n ? "pm" : "PM" : n ? "am" : "AM" - } - - var on, sn = { - calendar: A, - longDateFormat: U, - invalidDate: G, - ordinal: K, - dayOfMonthOrdinalParse: X, - relativeTime: Q, - months: tt, - monthsShort: nt, - week: Yt, - weekdays: At, - weekdaysMin: Ct, - weekdaysShort: Pt, - meridiemParse: an - }, dn = {}, un = {}; - - function cn(e, t) { - var n, i = Math.min(e.length, t.length); - for (n = 0; n < i; n += 1) if (e[n] !== t[n]) return n; - return i - } - - function hn(e) { - return e ? e.toLowerCase().replace("_", "-") : e - } - - function mn(e) { - for (var t, n, i, a, r = 0; r < e.length;) { - for (t = (a = hn(e[r]).split("-")).length, n = (n = hn(e[r + 1])) ? n.split("-") : null; t > 0;) { - if (i = fn(a.slice(0, t).join("-"))) return i; - if (n && n.length >= t && cn(a, n) >= t - 1) break; - t-- - } - r++ - } - return on - } - - function fn(t) { - var i = null; - if (void 0 === dn[t] && void 0 !== e && e && e.exports) try { - i = on._abbr, n(255)("./" + t), _n(i) - } catch (e) { - dn[t] = null - } - return dn[t] - } - - function _n(e, t) { - var n; - return e && ((n = u(t) ? yn(e) : pn(e, t)) ? on = n : "undefined" != typeof console && console.warn && console.warn("Locale " + e + " not found. Did you forget to load it?")), on._abbr - } - - function pn(e, t) { - if (null !== t) { - var n, i = sn; - if (t.abbr = e, null != dn[e]) S("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."), i = dn[e]._config; else if (null != t.parentLocale) if (null != dn[t.parentLocale]) i = dn[t.parentLocale]._config; else { - if (null == (n = fn(t.parentLocale))) return un[t.parentLocale] || (un[t.parentLocale] = []), un[t.parentLocale].push({ - name: e, - config: t - }), null; - i = n._config - } - return dn[e] = new O(H(i, t)), un[e] && un[e].forEach((function (e) { - pn(e.name, e.config) - })), _n(e), dn[e] - } - return delete dn[e], null - } - - function gn(e, t) { - if (null != t) { - var n, i, a = sn; - null != dn[e] && null != dn[e].parentLocale ? dn[e].set(H(dn[e]._config, t)) : (null != (i = fn(e)) && (a = i._config), t = H(a, t), null == i && (t.abbr = e), (n = new O(t)).parentLocale = dn[e], dn[e] = n), _n(e) - } else null != dn[e] && (null != dn[e].parentLocale ? (dn[e] = dn[e].parentLocale, e === _n() && _n(e)) : null != dn[e] && delete dn[e]); - return dn[e] - } - - function yn(e) { - var t; - if (e && e._locale && e._locale._abbr && (e = e._locale._abbr), !e) return on; - if (!l(e)) { - if (t = fn(e)) return t; - e = [e] - } - return mn(e) - } - - function vn() { - return D(dn) - } - - function Mn(e) { - var t, n = e._a; - return n && -2 === g(e).overflow && (t = n[Ze] < 0 || n[Ze] > 11 ? Ze : n[Ue] < 1 || n[Ue] > et(n[Be], n[Ze]) ? Ue : n[Je] < 0 || n[Je] > 24 || 24 === n[Je] && (0 !== n[Ge] || 0 !== n[qe] || 0 !== n[Ke]) ? Je : n[Ge] < 0 || n[Ge] > 59 ? Ge : n[qe] < 0 || n[qe] > 59 ? qe : n[Ke] < 0 || n[Ke] > 999 ? Ke : -1, g(e)._overflowDayOfYear && (t < Be || t > Ue) && (t = Ue), g(e)._overflowWeeks && -1 === t && (t = Xe), g(e)._overflowWeekday && -1 === t && (t = $e), g(e).overflow = t), e - } - - var bn = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, - xn = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, - Ln = /Z|[+-]\d\d(?::?\d\d)?/, - wn = [["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], ["GGGG-[W]WW", /\d{4}-W\d\d/, !1], ["YYYY-DDD", /\d{4}-\d{3}/], ["YYYY-MM", /\d{4}-\d\d/, !1], ["YYYYYYMMDD", /[+-]\d{10}/], ["YYYYMMDD", /\d{8}/], ["GGGG[W]WWE", /\d{4}W\d{3}/], ["GGGG[W]WW", /\d{4}W\d{2}/, !1], ["YYYYDDD", /\d{7}/], ["YYYYMM", /\d{6}/, !1], ["YYYY", /\d{4}/, !1]], - kn = [["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], ["HH:mm:ss", /\d\d:\d\d:\d\d/], ["HH:mm", /\d\d:\d\d/], ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], ["HHmmss", /\d\d\d\d\d\d/], ["HHmm", /\d\d\d\d/], ["HH", /\d\d/]], - Yn = /^\/?Date\((-?\d+)/i, - Dn = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, - Tn = { - UT: 0, - GMT: 0, - EDT: -240, - EST: -300, - CDT: -300, - CST: -360, - MDT: -360, - MST: -420, - PDT: -420, - PST: -480 - }; - - function Sn(e) { - var t, n, i, a, r, l, o = e._i, s = bn.exec(o) || xn.exec(o); - if (s) { - for (g(e).iso = !0, t = 0, n = wn.length; t < n; t++) if (wn[t][1].exec(s[1])) { - a = wn[t][0], i = !1 !== wn[t][2]; - break - } - if (null == a) return void (e._isValid = !1); - if (s[3]) { - for (t = 0, n = kn.length; t < n; t++) if (kn[t][1].exec(s[3])) { - r = (s[2] || " ") + kn[t][0]; - break - } - if (null == r) return void (e._isValid = !1) - } - if (!i && null != r) return void (e._isValid = !1); - if (s[4]) { - if (!Ln.exec(s[4])) return void (e._isValid = !1); - l = "Z" - } - e._f = a + (r || "") + (l || ""), zn(e) - } else e._isValid = !1 - } - - function jn(e, t, n, i, a, r) { - var l = [En(e), nt.indexOf(t), parseInt(n, 10), parseInt(i, 10), parseInt(a, 10)]; - return r && l.push(parseInt(r, 10)), l - } - - function En(e) { - var t = parseInt(e, 10); - return t <= 49 ? 2e3 + t : t <= 999 ? 1900 + t : t - } - - function Hn(e) { - return e.replace(/\([^)]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s\s*/, "").replace(/\s\s*$/, "") - } - - function On(e, t, n) { - return !e || Pt.indexOf(e) === new Date(t[0], t[1], t[2]).getDay() || (g(n).weekdayMismatch = !0, n._isValid = !1, !1) - } - - function An(e, t, n) { - if (e) return Tn[e]; - if (t) return 0; - var i = parseInt(n, 10), a = i % 100; - return (i - a) / 100 * 60 + a - } - - function Pn(e) { - var t, n = Dn.exec(Hn(e._i)); - if (n) { - if (t = jn(n[4], n[3], n[2], n[5], n[6], n[7]), !On(n[1], t, e)) return; - e._a = t, e._tzm = An(n[8], n[9], n[10]), e._d = Mt.apply(null, e._a), e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), g(e).rfc2822 = !0 - } else e._isValid = !1 - } - - function Cn(e) { - var t = Yn.exec(e._i); - null === t ? (Sn(e), !1 === e._isValid && (delete e._isValid, Pn(e), !1 === e._isValid && (delete e._isValid, e._strict ? e._isValid = !1 : a.createFromInputFallback(e)))) : e._d = new Date(+t[1]) - } - - function Fn(e, t, n) { - return null != e ? e : null != t ? t : n - } - - function In(e) { - var t = new Date(a.now()); - return e._useUTC ? [t.getUTCFullYear(), t.getUTCMonth(), t.getUTCDate()] : [t.getFullYear(), t.getMonth(), t.getDate()] - } - - function Wn(e) { - var t, n, i, a, r, l = []; - if (!e._d) { - for (i = In(e), e._w && null == e._a[Ue] && null == e._a[Ze] && Nn(e), null != e._dayOfYear && (r = Fn(e._a[Be], i[Be]), (e._dayOfYear > pt(r) || 0 === e._dayOfYear) && (g(e)._overflowDayOfYear = !0), n = Mt(r, 0, e._dayOfYear), e._a[Ze] = n.getUTCMonth(), e._a[Ue] = n.getUTCDate()), t = 0; t < 3 && null == e._a[t]; ++t) e._a[t] = l[t] = i[t]; - for (; t < 7; t++) e._a[t] = l[t] = null == e._a[t] ? 2 === t ? 1 : 0 : e._a[t]; - 24 === e._a[Je] && 0 === e._a[Ge] && 0 === e._a[qe] && 0 === e._a[Ke] && (e._nextDay = !0, e._a[Je] = 0), e._d = (e._useUTC ? Mt : vt).apply(null, l), a = e._useUTC ? e._d.getUTCDay() : e._d.getDay(), null != e._tzm && e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), e._nextDay && (e._a[Je] = 24), e._w && void 0 !== e._w.d && e._w.d !== a && (g(e).weekdayMismatch = !0) - } - } - - function Nn(e) { - var t, n, i, a, r, l, o, s, d; - null != (t = e._w).GG || null != t.W || null != t.E ? (r = 1, l = 4, n = Fn(t.GG, e._a[Be], Lt(qn(), 1, 4).year), i = Fn(t.W, 1), ((a = Fn(t.E, 1)) < 1 || a > 7) && (s = !0)) : (r = e._locale._week.dow, l = e._locale._week.doy, d = Lt(qn(), r, l), n = Fn(t.gg, e._a[Be], d.year), i = Fn(t.w, d.week), null != t.d ? ((a = t.d) < 0 || a > 6) && (s = !0) : null != t.e ? (a = t.e + r, (t.e < 0 || t.e > 6) && (s = !0)) : a = r), i < 1 || i > wt(n, r, l) ? g(e)._overflowWeeks = !0 : null != s ? g(e)._overflowWeekday = !0 : (o = xt(n, i, a, r, l), e._a[Be] = o.year, e._dayOfYear = o.dayOfYear) - } - - function zn(e) { - if (e._f !== a.ISO_8601) if (e._f !== a.RFC_2822) { - e._a = [], g(e).empty = !0; - var t, n, i, r, l, o, s = "" + e._i, d = s.length, u = 0; - for (i = Z(e._f, e._locale).match(F) || [], t = 0; t < i.length; t++) r = i[t], (n = (s.match(Ce(r, e)) || [])[0]) && ((l = s.substr(0, s.indexOf(n))).length > 0 && g(e).unusedInput.push(l), s = s.slice(s.indexOf(n) + n.length), u += n.length), N[r] ? (n ? g(e).empty = !1 : g(e).unusedTokens.push(r), Re(r, n, e)) : e._strict && !n && g(e).unusedTokens.push(r); - g(e).charsLeftOver = d - u, s.length > 0 && g(e).unusedInput.push(s), e._a[Je] <= 12 && !0 === g(e).bigHour && e._a[Je] > 0 && (g(e).bigHour = void 0), g(e).parsedDateParts = e._a.slice(0), g(e).meridiem = e._meridiem, e._a[Je] = Rn(e._locale, e._a[Je], e._meridiem), null !== (o = g(e).era) && (e._a[Be] = e._locale.erasConvertYear(o, e._a[Be])), Wn(e), Mn(e) - } else Pn(e); else Sn(e) - } - - function Rn(e, t, n) { - var i; - return null == n ? t : null != e.meridiemHour ? e.meridiemHour(t, n) : null != e.isPM ? ((i = e.isPM(n)) && t < 12 && (t += 12), i || 12 !== t || (t = 0), t) : t - } - - function Vn(e) { - var t, n, i, a, r, l, o = !1; - if (0 === e._f.length) return g(e).invalidFormat = !0, void (e._d = new Date(NaN)); - for (a = 0; a < e._f.length; a++) r = 0, l = !1, t = x({}, e), null != e._useUTC && (t._useUTC = e._useUTC), t._f = e._f[a], zn(t), y(t) && (l = !0), r += g(t).charsLeftOver, r += 10 * g(t).unusedTokens.length, g(t).score = r, o ? r < i && (i = r, n = t) : (null == i || r < i || l) && (i = r, n = t, l && (o = !0)); - f(e, n || t) - } - - function Bn(e) { - if (!e._d) { - var t = re(e._i), n = void 0 === t.day ? t.date : t.day; - e._a = m([t.year, t.month, n, t.hour, t.minute, t.second, t.millisecond], (function (e) { - return e && parseInt(e, 10) - })), Wn(e) - } - } - - function Zn(e) { - var t = new L(Mn(Un(e))); - return t._nextDay && (t.add(1, "d"), t._nextDay = void 0), t - } - - function Un(e) { - var t = e._i, n = e._f; - return e._locale = e._locale || yn(e._l), null === t || void 0 === n && "" === t ? v({nullInput: !0}) : ("string" == typeof t && (e._i = t = e._locale.preparse(t)), w(t) ? new L(Mn(t)) : (h(t) ? e._d = t : l(n) ? Vn(e) : n ? zn(e) : Jn(e), y(e) || (e._d = null), e)) - } - - function Jn(e) { - var t = e._i; - u(t) ? e._d = new Date(a.now()) : h(t) ? e._d = new Date(t.valueOf()) : "string" == typeof t ? Cn(e) : l(t) ? (e._a = m(t.slice(0), (function (e) { - return parseInt(e, 10) - })), Wn(e)) : o(t) ? Bn(e) : c(t) ? e._d = new Date(t) : a.createFromInputFallback(e) - } - - function Gn(e, t, n, i, a) { - var r = {}; - return !0 !== t && !1 !== t || (i = t, t = void 0), !0 !== n && !1 !== n || (i = n, n = void 0), (o(e) && d(e) || l(e) && 0 === e.length) && (e = void 0), r._isAMomentObject = !0, r._useUTC = r._isUTC = a, r._l = n, r._i = e, r._f = t, r._strict = i, Zn(r) - } - - function qn(e, t, n, i) { - return Gn(e, t, n, i, !1) - } - - a.createFromInputFallback = Y("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", (function (e) { - e._d = new Date(e._i + (e._useUTC ? " UTC" : "")) - })), a.ISO_8601 = function () { - }, a.RFC_2822 = function () { - }; - var Kn = Y("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", (function () { - var e = qn.apply(null, arguments); - return this.isValid() && e.isValid() ? e < this ? this : e : v() - })), - Xn = Y("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", (function () { - var e = qn.apply(null, arguments); - return this.isValid() && e.isValid() ? e > this ? this : e : v() - })); - - function $n(e, t) { - var n, i; - if (1 === t.length && l(t[0]) && (t = t[0]), !t.length) return qn(); - for (n = t[0], i = 1; i < t.length; ++i) t[i].isValid() && !t[i][e](n) || (n = t[i]); - return n - } - - function Qn() { - return $n("isBefore", [].slice.call(arguments, 0)) - } - - function ei() { - return $n("isAfter", [].slice.call(arguments, 0)) - } - - var ti = function () { - return Date.now ? Date.now() : +new Date - }, ni = ["year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond"]; - - function ii(e) { - var t, n, i = !1; - for (t in e) if (s(e, t) && (-1 === Ve.call(ni, t) || null != e[t] && isNaN(e[t]))) return !1; - for (n = 0; n < ni.length; ++n) if (e[ni[n]]) { - if (i) return !1; - parseFloat(e[ni[n]]) !== ce(e[ni[n]]) && (i = !0) - } - return !0 - } - - function ai() { - return this._isValid - } - - function ri() { - return Ti(NaN) - } - - function li(e) { - var t = re(e), n = t.year || 0, i = t.quarter || 0, a = t.month || 0, r = t.week || t.isoWeek || 0, - l = t.day || 0, o = t.hour || 0, s = t.minute || 0, d = t.second || 0, u = t.millisecond || 0; - this._isValid = ii(t), this._milliseconds = +u + 1e3 * d + 6e4 * s + 1e3 * o * 60 * 60, this._days = +l + 7 * r, this._months = +a + 3 * i + 12 * n, this._data = {}, this._locale = yn(), this._bubble() - } - - function oi(e) { - return e instanceof li - } - - function si(e) { - return e < 0 ? -1 * Math.round(-1 * e) : Math.round(e) - } - - function di(e, t, n) { - var i, a = Math.min(e.length, t.length), r = Math.abs(e.length - t.length), l = 0; - for (i = 0; i < a; i++) (n && e[i] !== t[i] || !n && ce(e[i]) !== ce(t[i])) && l++; - return l + r - } - - function ui(e, t) { - z(e, 0, 0, (function () { - var e = this.utcOffset(), n = "+"; - return e < 0 && (e = -e, n = "-"), n + C(~~(e / 60), 2) + t + C(~~e % 60, 2) - })) - } - - ui("Z", ":"), ui("ZZ", ""), Pe("Z", He), Pe("ZZ", He), Ne(["Z", "ZZ"], (function (e, t, n) { - n._useUTC = !0, n._tzm = hi(He, e) - })); - var ci = /([\+\-]|\d\d)/gi; - - function hi(e, t) { - var n, i, a = (t || "").match(e); - return null === a ? null : 0 === (i = 60 * (n = ((a[a.length - 1] || []) + "").match(ci) || ["-", 0, 0])[1] + ce(n[2])) ? 0 : "+" === n[0] ? i : -i - } - - function mi(e, t) { - var n, i; - return t._isUTC ? (n = t.clone(), i = (w(e) || h(e) ? e.valueOf() : qn(e).valueOf()) - n.valueOf(), n._d.setTime(n._d.valueOf() + i), a.updateOffset(n, !1), n) : qn(e).local() - } - - function fi(e) { - return -Math.round(e._d.getTimezoneOffset()) - } - - function _i(e, t, n) { - var i, r = this._offset || 0; - if (!this.isValid()) return null != e ? this : NaN; - if (null != e) { - if ("string" == typeof e) { - if (null === (e = hi(He, e))) return this - } else Math.abs(e) < 16 && !n && (e *= 60); - return !this._isUTC && t && (i = fi(this)), this._offset = e, this._isUTC = !0, null != i && this.add(i, "m"), r !== e && (!t || this._changeInProgress ? Oi(this, Ti(e - r, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, a.updateOffset(this, !0), this._changeInProgress = null)), this - } - return this._isUTC ? r : fi(this) - } - - function pi(e, t) { - return null != e ? ("string" != typeof e && (e = -e), this.utcOffset(e, t), this) : -this.utcOffset() - } - - function gi(e) { - return this.utcOffset(0, e) - } - - function yi(e) { - return this._isUTC && (this.utcOffset(0, e), this._isUTC = !1, e && this.subtract(fi(this), "m")), this - } - - function vi() { - if (null != this._tzm) this.utcOffset(this._tzm, !1, !0); else if ("string" == typeof this._i) { - var e = hi(Ee, this._i); - null != e ? this.utcOffset(e) : this.utcOffset(0, !0) - } - return this - } - - function Mi(e) { - return !!this.isValid() && (e = e ? qn(e).utcOffset() : 0, (this.utcOffset() - e) % 60 == 0) - } - - function bi() { - return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset() - } - - function xi() { - if (!u(this._isDSTShifted)) return this._isDSTShifted; - var e, t = {}; - return x(t, this), (t = Un(t))._a ? (e = t._isUTC ? _(t._a) : qn(t._a), this._isDSTShifted = this.isValid() && di(t._a, e.toArray()) > 0) : this._isDSTShifted = !1, this._isDSTShifted - } - - function Li() { - return !!this.isValid() && !this._isUTC - } - - function wi() { - return !!this.isValid() && this._isUTC - } - - function ki() { - return !!this.isValid() && this._isUTC && 0 === this._offset - } - - a.updateOffset = function () { - }; - var Yi = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, - Di = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; - - function Ti(e, t) { - var n, i, a, r = e, l = null; - return oi(e) ? r = { - ms: e._milliseconds, - d: e._days, - M: e._months - } : c(e) || !isNaN(+e) ? (r = {}, t ? r[t] = +e : r.milliseconds = +e) : (l = Yi.exec(e)) ? (n = "-" === l[1] ? -1 : 1, r = { - y: 0, - d: ce(l[Ue]) * n, - h: ce(l[Je]) * n, - m: ce(l[Ge]) * n, - s: ce(l[qe]) * n, - ms: ce(si(1e3 * l[Ke])) * n - }) : (l = Di.exec(e)) ? (n = "-" === l[1] ? -1 : 1, r = { - y: Si(l[2], n), - M: Si(l[3], n), - w: Si(l[4], n), - d: Si(l[5], n), - h: Si(l[6], n), - m: Si(l[7], n), - s: Si(l[8], n) - }) : null == r ? r = {} : "object" == typeof r && ("from" in r || "to" in r) && (a = Ei(qn(r.from), qn(r.to)), (r = {}).ms = a.milliseconds, r.M = a.months), i = new li(r), oi(e) && s(e, "_locale") && (i._locale = e._locale), oi(e) && s(e, "_isValid") && (i._isValid = e._isValid), i - } - - function Si(e, t) { - var n = e && parseFloat(e.replace(",", ".")); - return (isNaN(n) ? 0 : n) * t - } - - function ji(e, t) { - var n = {}; - return n.months = t.month() - e.month() + 12 * (t.year() - e.year()), e.clone().add(n.months, "M").isAfter(t) && --n.months, n.milliseconds = +t - +e.clone().add(n.months, "M"), n - } - - function Ei(e, t) { - var n; - return e.isValid() && t.isValid() ? (t = mi(t, e), e.isBefore(t) ? n = ji(e, t) : ((n = ji(t, e)).milliseconds = -n.milliseconds, n.months = -n.months), n) : { - milliseconds: 0, - months: 0 - } - } - - function Hi(e, t) { - return function (n, i) { - var a; - return null === i || isNaN(+i) || (S(t, "moment()." + t + "(period, number) is deprecated. Please use moment()." + t + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."), a = n, n = i, i = a), Oi(this, Ti(n, i), e), this - } - } - - function Oi(e, t, n, i) { - var r = t._milliseconds, l = si(t._days), o = si(t._months); - e.isValid() && (i = null == i || i, o && ut(e, me(e, "Month") + o * n), l && fe(e, "Date", me(e, "Date") + l * n), r && e._d.setTime(e._d.valueOf() + r * n), i && a.updateOffset(e, l || o)) - } - - Ti.fn = li.prototype, Ti.invalid = ri; - var Ai = Hi(1, "add"), Pi = Hi(-1, "subtract"); - - function Ci(e) { - return "string" == typeof e || e instanceof String - } - - function Fi(e) { - return w(e) || h(e) || Ci(e) || c(e) || Wi(e) || Ii(e) || null == e - } - - function Ii(e) { - var t, n, i = o(e) && !d(e), a = !1, - r = ["years", "year", "y", "months", "month", "M", "days", "day", "d", "dates", "date", "D", "hours", "hour", "h", "minutes", "minute", "m", "seconds", "second", "s", "milliseconds", "millisecond", "ms"]; - for (t = 0; t < r.length; t += 1) n = r[t], a = a || s(e, n); - return i && a - } - - function Wi(e) { - var t = l(e), n = !1; - return t && (n = 0 === e.filter((function (t) { - return !c(t) && Ci(e) - })).length), t && n - } - - function Ni(e) { - var t, n, i = o(e) && !d(e), a = !1, - r = ["sameDay", "nextDay", "lastDay", "nextWeek", "lastWeek", "sameElse"]; - for (t = 0; t < r.length; t += 1) n = r[t], a = a || s(e, n); - return i && a - } - - function zi(e, t) { - var n = e.diff(t, "days", !0); - return n < -6 ? "sameElse" : n < -1 ? "lastWeek" : n < 0 ? "lastDay" : n < 1 ? "sameDay" : n < 2 ? "nextDay" : n < 7 ? "nextWeek" : "sameElse" - } - - function Ri(e, t) { - 1 === arguments.length && (arguments[0] ? Fi(arguments[0]) ? (e = arguments[0], t = void 0) : Ni(arguments[0]) && (t = arguments[0], e = void 0) : (e = void 0, t = void 0)); - var n = e || qn(), i = mi(n, this).startOf("day"), r = a.calendarFormat(this, i) || "sameElse", - l = t && (j(t[r]) ? t[r].call(this, n) : t[r]); - return this.format(l || this.localeData().calendar(r, this, qn(n))) - } - - function Vi() { - return new L(this) - } - - function Bi(e, t) { - var n = w(e) ? e : qn(e); - return !(!this.isValid() || !n.isValid()) && ("millisecond" === (t = ae(t) || "millisecond") ? this.valueOf() > n.valueOf() : n.valueOf() < this.clone().startOf(t).valueOf()) - } - - function Zi(e, t) { - var n = w(e) ? e : qn(e); - return !(!this.isValid() || !n.isValid()) && ("millisecond" === (t = ae(t) || "millisecond") ? this.valueOf() < n.valueOf() : this.clone().endOf(t).valueOf() < n.valueOf()) - } - - function Ui(e, t, n, i) { - var a = w(e) ? e : qn(e), r = w(t) ? t : qn(t); - return !!(this.isValid() && a.isValid() && r.isValid()) && ("(" === (i = i || "()")[0] ? this.isAfter(a, n) : !this.isBefore(a, n)) && (")" === i[1] ? this.isBefore(r, n) : !this.isAfter(r, n)) - } - - function Ji(e, t) { - var n, i = w(e) ? e : qn(e); - return !(!this.isValid() || !i.isValid()) && ("millisecond" === (t = ae(t) || "millisecond") ? this.valueOf() === i.valueOf() : (n = i.valueOf(), this.clone().startOf(t).valueOf() <= n && n <= this.clone().endOf(t).valueOf())) - } - - function Gi(e, t) { - return this.isSame(e, t) || this.isAfter(e, t) - } - - function qi(e, t) { - return this.isSame(e, t) || this.isBefore(e, t) - } - - function Ki(e, t, n) { - var i, a, r; - if (!this.isValid()) return NaN; - if (!(i = mi(e, this)).isValid()) return NaN; - switch (a = 6e4 * (i.utcOffset() - this.utcOffset()), t = ae(t)) { - case"year": - r = Xi(this, i) / 12; - break; - case"month": - r = Xi(this, i); - break; - case"quarter": - r = Xi(this, i) / 3; - break; - case"second": - r = (this - i) / 1e3; - break; - case"minute": - r = (this - i) / 6e4; - break; - case"hour": - r = (this - i) / 36e5; - break; - case"day": - r = (this - i - a) / 864e5; - break; - case"week": - r = (this - i - a) / 6048e5; - break; - default: - r = this - i - } - return n ? r : ue(r) - } - - function Xi(e, t) { - if (e.date() < t.date()) return -Xi(t, e); - var n = 12 * (t.year() - e.year()) + (t.month() - e.month()), i = e.clone().add(n, "months"); - return -(n + (t - i < 0 ? (t - i) / (i - e.clone().add(n - 1, "months")) : (t - i) / (e.clone().add(n + 1, "months") - i))) || 0 - } - - function $i() { - return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ") - } - - function Qi(e) { - if (!this.isValid()) return null; - var t = !0 !== e, n = t ? this.clone().utc() : this; - return n.year() < 0 || n.year() > 9999 ? B(n, t ? "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYYYY-MM-DD[T]HH:mm:ss.SSSZ") : j(Date.prototype.toISOString) ? t ? this.toDate().toISOString() : new Date(this.valueOf() + 60 * this.utcOffset() * 1e3).toISOString().replace("Z", B(n, "Z")) : B(n, t ? "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYY-MM-DD[T]HH:mm:ss.SSSZ") - } - - function ea() { - if (!this.isValid()) return "moment.invalid(/* " + this._i + " */)"; - var e, t, n, i, a = "moment", r = ""; - return this.isLocal() || (a = 0 === this.utcOffset() ? "moment.utc" : "moment.parseZone", r = "Z"), e = "[" + a + '("]', t = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY", n = "-MM-DD[T]HH:mm:ss.SSS", i = r + '[")]', this.format(e + t + n + i) - } - - function ta(e) { - e || (e = this.isUtc() ? a.defaultFormatUtc : a.defaultFormat); - var t = B(this, e); - return this.localeData().postformat(t) - } - - function na(e, t) { - return this.isValid() && (w(e) && e.isValid() || qn(e).isValid()) ? Ti({ - to: this, - from: e - }).locale(this.locale()).humanize(!t) : this.localeData().invalidDate() - } - - function ia(e) { - return this.from(qn(), e) - } - - function aa(e, t) { - return this.isValid() && (w(e) && e.isValid() || qn(e).isValid()) ? Ti({ - from: this, - to: e - }).locale(this.locale()).humanize(!t) : this.localeData().invalidDate() - } - - function ra(e) { - return this.to(qn(), e) - } - - function la(e) { - var t; - return void 0 === e ? this._locale._abbr : (null != (t = yn(e)) && (this._locale = t), this) - } - - a.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ", a.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]"; - var oa = Y("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", (function (e) { - return void 0 === e ? this.localeData() : this.locale(e) - })); - - function sa() { - return this._locale - } - - var da = 1e3, ua = 60 * da, ca = 60 * ua, ha = 3506328 * ca; - - function ma(e, t) { - return (e % t + t) % t - } - - function fa(e, t, n) { - return e < 100 && e >= 0 ? new Date(e + 400, t, n) - ha : new Date(e, t, n).valueOf() - } - - function _a(e, t, n) { - return e < 100 && e >= 0 ? Date.UTC(e + 400, t, n) - ha : Date.UTC(e, t, n) - } - - function pa(e) { - var t, n; - if (void 0 === (e = ae(e)) || "millisecond" === e || !this.isValid()) return this; - switch (n = this._isUTC ? _a : fa, e) { - case"year": - t = n(this.year(), 0, 1); - break; - case"quarter": - t = n(this.year(), this.month() - this.month() % 3, 1); - break; - case"month": - t = n(this.year(), this.month(), 1); - break; - case"week": - t = n(this.year(), this.month(), this.date() - this.weekday()); - break; - case"isoWeek": - t = n(this.year(), this.month(), this.date() - (this.isoWeekday() - 1)); - break; - case"day": - case"date": - t = n(this.year(), this.month(), this.date()); - break; - case"hour": - t = this._d.valueOf(), t -= ma(t + (this._isUTC ? 0 : this.utcOffset() * ua), ca); - break; - case"minute": - t = this._d.valueOf(), t -= ma(t, ua); - break; - case"second": - t = this._d.valueOf(), t -= ma(t, da) - } - return this._d.setTime(t), a.updateOffset(this, !0), this - } - - function ga(e) { - var t, n; - if (void 0 === (e = ae(e)) || "millisecond" === e || !this.isValid()) return this; - switch (n = this._isUTC ? _a : fa, e) { - case"year": - t = n(this.year() + 1, 0, 1) - 1; - break; - case"quarter": - t = n(this.year(), this.month() - this.month() % 3 + 3, 1) - 1; - break; - case"month": - t = n(this.year(), this.month() + 1, 1) - 1; - break; - case"week": - t = n(this.year(), this.month(), this.date() - this.weekday() + 7) - 1; - break; - case"isoWeek": - t = n(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1; - break; - case"day": - case"date": - t = n(this.year(), this.month(), this.date() + 1) - 1; - break; - case"hour": - t = this._d.valueOf(), t += ca - ma(t + (this._isUTC ? 0 : this.utcOffset() * ua), ca) - 1; - break; - case"minute": - t = this._d.valueOf(), t += ua - ma(t, ua) - 1; - break; - case"second": - t = this._d.valueOf(), t += da - ma(t, da) - 1 - } - return this._d.setTime(t), a.updateOffset(this, !0), this - } - - function ya() { - return this._d.valueOf() - 6e4 * (this._offset || 0) - } - - function va() { - return Math.floor(this.valueOf() / 1e3) - } - - function Ma() { - return new Date(this.valueOf()) - } - - function ba() { - var e = this; - return [e.year(), e.month(), e.date(), e.hour(), e.minute(), e.second(), e.millisecond()] - } - - function xa() { - var e = this; - return { - years: e.year(), - months: e.month(), - date: e.date(), - hours: e.hours(), - minutes: e.minutes(), - seconds: e.seconds(), - milliseconds: e.milliseconds() - } - } - - function La() { - return this.isValid() ? this.toISOString() : null - } - - function wa() { - return y(this) - } - - function ka() { - return f({}, g(this)) - } - - function Ya() { - return g(this).overflow - } - - function Da() { - return {input: this._i, format: this._f, locale: this._locale, isUTC: this._isUTC, strict: this._strict} - } - - function Ta(e, t) { - var n, i, r, l = this._eras || yn("en")._eras; - for (n = 0, i = l.length; n < i; ++n) { - switch (typeof l[n].since) { - case"string": - r = a(l[n].since).startOf("day"), l[n].since = r.valueOf() - } - switch (typeof l[n].until) { - case"undefined": - l[n].until = 1 / 0; - break; - case"string": - r = a(l[n].until).startOf("day").valueOf(), l[n].until = r.valueOf() - } - } - return l - } - - function Sa(e, t, n) { - var i, a, r, l, o, s = this.eras(); - for (e = e.toUpperCase(), i = 0, a = s.length; i < a; ++i) if (r = s[i].name.toUpperCase(), l = s[i].abbr.toUpperCase(), o = s[i].narrow.toUpperCase(), n) switch (t) { - case"N": - case"NN": - case"NNN": - if (l === e) return s[i]; - break; - case"NNNN": - if (r === e) return s[i]; - break; - case"NNNNN": - if (o === e) return s[i] - } else if ([r, l, o].indexOf(e) >= 0) return s[i] - } - - function ja(e, t) { - var n = e.since <= e.until ? 1 : -1; - return void 0 === t ? a(e.since).year() : a(e.since).year() + (t - e.offset) * n - } - - function Ea() { - var e, t, n, i = this.localeData().eras(); - for (e = 0, t = i.length; e < t; ++e) { - if (n = this.clone().startOf("day").valueOf(), i[e].since <= n && n <= i[e].until) return i[e].name; - if (i[e].until <= n && n <= i[e].since) return i[e].name - } - return "" - } - - function Ha() { - var e, t, n, i = this.localeData().eras(); - for (e = 0, t = i.length; e < t; ++e) { - if (n = this.clone().startOf("day").valueOf(), i[e].since <= n && n <= i[e].until) return i[e].narrow; - if (i[e].until <= n && n <= i[e].since) return i[e].narrow - } - return "" - } - - function Oa() { - var e, t, n, i = this.localeData().eras(); - for (e = 0, t = i.length; e < t; ++e) { - if (n = this.clone().startOf("day").valueOf(), i[e].since <= n && n <= i[e].until) return i[e].abbr; - if (i[e].until <= n && n <= i[e].since) return i[e].abbr - } - return "" - } - - function Aa() { - var e, t, n, i, r = this.localeData().eras(); - for (e = 0, t = r.length; e < t; ++e) if (n = r[e].since <= r[e].until ? 1 : -1, i = this.clone().startOf("day").valueOf(), r[e].since <= i && i <= r[e].until || r[e].until <= i && i <= r[e].since) return (this.year() - a(r[e].since).year()) * n + r[e].offset; - return this.year() - } - - function Pa(e) { - return s(this, "_erasNameRegex") || Ra.call(this), e ? this._erasNameRegex : this._erasRegex - } - - function Ca(e) { - return s(this, "_erasAbbrRegex") || Ra.call(this), e ? this._erasAbbrRegex : this._erasRegex - } - - function Fa(e) { - return s(this, "_erasNarrowRegex") || Ra.call(this), e ? this._erasNarrowRegex : this._erasRegex - } - - function Ia(e, t) { - return t.erasAbbrRegex(e) - } - - function Wa(e, t) { - return t.erasNameRegex(e) - } - - function Na(e, t) { - return t.erasNarrowRegex(e) - } - - function za(e, t) { - return t._eraYearOrdinalRegex || Se - } - - function Ra() { - var e, t, n = [], i = [], a = [], r = [], l = this.eras(); - for (e = 0, t = l.length; e < t; ++e) i.push(Ie(l[e].name)), n.push(Ie(l[e].abbr)), a.push(Ie(l[e].narrow)), r.push(Ie(l[e].name)), r.push(Ie(l[e].abbr)), r.push(Ie(l[e].narrow)); - this._erasRegex = new RegExp("^(" + r.join("|") + ")", "i"), this._erasNameRegex = new RegExp("^(" + i.join("|") + ")", "i"), this._erasAbbrRegex = new RegExp("^(" + n.join("|") + ")", "i"), this._erasNarrowRegex = new RegExp("^(" + a.join("|") + ")", "i") - } - - function Va(e, t) { - z(0, [e, e.length], 0, t) - } - - function Ba(e) { - return Ka.call(this, e, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy) - } - - function Za(e) { - return Ka.call(this, e, this.isoWeek(), this.isoWeekday(), 1, 4) - } - - function Ua() { - return wt(this.year(), 1, 4) - } - - function Ja() { - return wt(this.isoWeekYear(), 1, 4) - } - - function Ga() { - var e = this.localeData()._week; - return wt(this.year(), e.dow, e.doy) - } - - function qa() { - var e = this.localeData()._week; - return wt(this.weekYear(), e.dow, e.doy) - } - - function Ka(e, t, n, i, a) { - var r; - return null == e ? Lt(this, i, a).year : (t > (r = wt(e, i, a)) && (t = r), Xa.call(this, e, t, n, i, a)) - } - - function Xa(e, t, n, i, a) { - var r = xt(e, t, n, i, a), l = Mt(r.year, 0, r.dayOfYear); - return this.year(l.getUTCFullYear()), this.month(l.getUTCMonth()), this.date(l.getUTCDate()), this - } - - function $a(e) { - return null == e ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (e - 1) + this.month() % 3) - } - - z("N", 0, 0, "eraAbbr"), z("NN", 0, 0, "eraAbbr"), z("NNN", 0, 0, "eraAbbr"), z("NNNN", 0, 0, "eraName"), z("NNNNN", 0, 0, "eraNarrow"), z("y", ["y", 1], "yo", "eraYear"), z("y", ["yy", 2], 0, "eraYear"), z("y", ["yyy", 3], 0, "eraYear"), z("y", ["yyyy", 4], 0, "eraYear"), Pe("N", Ia), Pe("NN", Ia), Pe("NNN", Ia), Pe("NNNN", Wa), Pe("NNNNN", Na), Ne(["N", "NN", "NNN", "NNNN", "NNNNN"], (function (e, t, n, i) { - var a = n._locale.erasParse(e, i, n._strict); - a ? g(n).era = a : g(n).invalidEra = e - })), Pe("y", Se), Pe("yy", Se), Pe("yyy", Se), Pe("yyyy", Se), Pe("yo", za), Ne(["y", "yy", "yyy", "yyyy"], Be), Ne(["yo"], (function (e, t, n, i) { - var a; - n._locale._eraYearOrdinalRegex && (a = e.match(n._locale._eraYearOrdinalRegex)), n._locale.eraYearOrdinalParse ? t[Be] = n._locale.eraYearOrdinalParse(e, a) : t[Be] = parseInt(e, 10) - })), z(0, ["gg", 2], 0, (function () { - return this.weekYear() % 100 - })), z(0, ["GG", 2], 0, (function () { - return this.isoWeekYear() % 100 - })), Va("gggg", "weekYear"), Va("ggggg", "weekYear"), Va("GGGG", "isoWeekYear"), Va("GGGGG", "isoWeekYear"), ie("weekYear", "gg"), ie("isoWeekYear", "GG"), oe("weekYear", 1), oe("isoWeekYear", 1), Pe("G", je), Pe("g", je), Pe("GG", Le, ve), Pe("gg", Le, ve), Pe("GGGG", De, be), Pe("gggg", De, be), Pe("GGGGG", Te, xe), Pe("ggggg", Te, xe), ze(["gggg", "ggggg", "GGGG", "GGGGG"], (function (e, t, n, i) { - t[i.substr(0, 2)] = ce(e) - })), ze(["gg", "GG"], (function (e, t, n, i) { - t[i] = a.parseTwoDigitYear(e) - })), z("Q", 0, "Qo", "quarter"), ie("quarter", "Q"), oe("quarter", 7), Pe("Q", ye), Ne("Q", (function (e, t) { - t[Ze] = 3 * (ce(e) - 1) - })), z("D", ["DD", 2], "Do", "date"), ie("date", "D"), oe("date", 9), Pe("D", Le), Pe("DD", Le, ve), Pe("Do", (function (e, t) { - return e ? t._dayOfMonthOrdinalParse || t._ordinalParse : t._dayOfMonthOrdinalParseLenient - })), Ne(["D", "DD"], Ue), Ne("Do", (function (e, t) { - t[Ue] = ce(e.match(Le)[0]) - })); - var Qa = he("Date", !0); - - function er(e) { - var t = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1; - return null == e ? t : this.add(e - t, "d") - } - - z("DDD", ["DDDD", 3], "DDDo", "dayOfYear"), ie("dayOfYear", "DDD"), oe("dayOfYear", 4), Pe("DDD", Ye), Pe("DDDD", Me), Ne(["DDD", "DDDD"], (function (e, t, n) { - n._dayOfYear = ce(e) - })), z("m", ["mm", 2], 0, "minute"), ie("minute", "m"), oe("minute", 14), Pe("m", Le), Pe("mm", Le, ve), Ne(["m", "mm"], Ge); - var tr = he("Minutes", !1); - z("s", ["ss", 2], 0, "second"), ie("second", "s"), oe("second", 15), Pe("s", Le), Pe("ss", Le, ve), Ne(["s", "ss"], qe); - var nr, ir, ar = he("Seconds", !1); - for (z("S", 0, 0, (function () { - return ~~(this.millisecond() / 100) - })), z(0, ["SS", 2], 0, (function () { - return ~~(this.millisecond() / 10) - })), z(0, ["SSS", 3], 0, "millisecond"), z(0, ["SSSS", 4], 0, (function () { - return 10 * this.millisecond() - })), z(0, ["SSSSS", 5], 0, (function () { - return 100 * this.millisecond() - })), z(0, ["SSSSSS", 6], 0, (function () { - return 1e3 * this.millisecond() - })), z(0, ["SSSSSSS", 7], 0, (function () { - return 1e4 * this.millisecond() - })), z(0, ["SSSSSSSS", 8], 0, (function () { - return 1e5 * this.millisecond() - })), z(0, ["SSSSSSSSS", 9], 0, (function () { - return 1e6 * this.millisecond() - })), ie("millisecond", "ms"), oe("millisecond", 16), Pe("S", Ye, ye), Pe("SS", Ye, ve), Pe("SSS", Ye, Me), nr = "SSSS"; nr.length <= 9; nr += "S") Pe(nr, Se); - - function rr(e, t) { - t[Ke] = ce(1e3 * ("0." + e)) - } - - for (nr = "S"; nr.length <= 9; nr += "S") Ne(nr, rr); - - function lr() { - return this._isUTC ? "UTC" : "" - } - - function or() { - return this._isUTC ? "Coordinated Universal Time" : "" - } - - ir = he("Milliseconds", !1), z("z", 0, 0, "zoneAbbr"), z("zz", 0, 0, "zoneName"); - var sr = L.prototype; - - function dr(e) { - return qn(1e3 * e) - } - - function ur() { - return qn.apply(null, arguments).parseZone() - } - - function cr(e) { - return e - } - - sr.add = Ai, sr.calendar = Ri, sr.clone = Vi, sr.diff = Ki, sr.endOf = ga, sr.format = ta, sr.from = na, sr.fromNow = ia, sr.to = aa, sr.toNow = ra, sr.get = _e, sr.invalidAt = Ya, sr.isAfter = Bi, sr.isBefore = Zi, sr.isBetween = Ui, sr.isSame = Ji, sr.isSameOrAfter = Gi, sr.isSameOrBefore = qi, sr.isValid = wa, sr.lang = oa, sr.locale = la, sr.localeData = sa, sr.max = Xn, sr.min = Kn, sr.parsingFlags = ka, sr.set = pe, sr.startOf = pa, sr.subtract = Pi, sr.toArray = ba, sr.toObject = xa, sr.toDate = Ma, sr.toISOString = Qi, sr.inspect = ea, "undefined" != typeof Symbol && null != Symbol.for && (sr[Symbol.for("nodejs.util.inspect.custom")] = function () { - return "Moment<" + this.format() + ">" - }), sr.toJSON = La, sr.toString = $i, sr.unix = va, sr.valueOf = ya, sr.creationData = Da, sr.eraName = Ea, sr.eraNarrow = Ha, sr.eraAbbr = Oa, sr.eraYear = Aa, sr.year = gt, sr.isLeapYear = yt, sr.weekYear = Ba, sr.isoWeekYear = Za, sr.quarter = sr.quarters = $a, sr.month = ct, sr.daysInMonth = ht, sr.week = sr.weeks = St, sr.isoWeek = sr.isoWeeks = jt, sr.weeksInYear = Ga, sr.weeksInWeekYear = qa, sr.isoWeeksInYear = Ua, sr.isoWeeksInISOWeekYear = Ja, sr.date = Qa, sr.day = sr.days = Zt, sr.weekday = Ut, sr.isoWeekday = Jt, sr.dayOfYear = er, sr.hour = sr.hours = rn, sr.minute = sr.minutes = tr, sr.second = sr.seconds = ar, sr.millisecond = sr.milliseconds = ir, sr.utcOffset = _i, sr.utc = gi, sr.local = yi, sr.parseZone = vi, sr.hasAlignedHourOffset = Mi, sr.isDST = bi, sr.isLocal = Li, sr.isUtcOffset = wi, sr.isUtc = ki, sr.isUTC = ki, sr.zoneAbbr = lr, sr.zoneName = or, sr.dates = Y("dates accessor is deprecated. Use date instead.", Qa), sr.months = Y("months accessor is deprecated. Use month instead", ct), sr.years = Y("years accessor is deprecated. Use year instead", gt), sr.zone = Y("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", pi), sr.isDSTShifted = Y("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", xi); - var hr = O.prototype; - - function mr(e, t, n, i) { - var a = yn(), r = _().set(i, t); - return a[n](r, e) - } - - function fr(e, t, n) { - if (c(e) && (t = e, e = void 0), e = e || "", null != t) return mr(e, t, n, "month"); - var i, a = []; - for (i = 0; i < 12; i++) a[i] = mr(e, i, n, "month"); - return a - } - - function _r(e, t, n, i) { - "boolean" == typeof e ? (c(t) && (n = t, t = void 0), t = t || "") : (n = t = e, e = !1, c(t) && (n = t, t = void 0), t = t || ""); - var a, r = yn(), l = e ? r._week.dow : 0, o = []; - if (null != n) return mr(t, (n + l) % 7, i, "day"); - for (a = 0; a < 7; a++) o[a] = mr(t, (a + l) % 7, i, "day"); - return o - } - - function pr(e, t) { - return fr(e, t, "months") - } - - function gr(e, t) { - return fr(e, t, "monthsShort") - } - - function yr(e, t, n) { - return _r(e, t, n, "weekdays") - } - - function vr(e, t, n) { - return _r(e, t, n, "weekdaysShort") - } - - function Mr(e, t, n) { - return _r(e, t, n, "weekdaysMin") - } - - hr.calendar = P, hr.longDateFormat = J, hr.invalidDate = q, hr.ordinal = $, hr.preparse = cr, hr.postformat = cr, hr.relativeTime = ee, hr.pastFuture = te, hr.set = E, hr.eras = Ta, hr.erasParse = Sa, hr.erasConvertYear = ja, hr.erasAbbrRegex = Ca, hr.erasNameRegex = Pa, hr.erasNarrowRegex = Fa, hr.months = lt, hr.monthsShort = ot, hr.monthsParse = dt, hr.monthsRegex = ft, hr.monthsShortRegex = mt, hr.week = kt, hr.firstDayOfYear = Tt, hr.firstDayOfWeek = Dt, hr.weekdays = Nt, hr.weekdaysMin = Rt, hr.weekdaysShort = zt, hr.weekdaysParse = Bt, hr.weekdaysRegex = Gt, hr.weekdaysShortRegex = qt, hr.weekdaysMinRegex = Kt, hr.isPM = nn, hr.meridiem = ln, _n("en", { - eras: [{ - since: "0001-01-01", - until: 1 / 0, - offset: 1, - name: "Anno Domini", - narrow: "AD", - abbr: "AD" - }, {since: "0000-12-31", until: -1 / 0, offset: 1, name: "Before Christ", narrow: "BC", abbr: "BC"}], - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal: function (e) { - var t = e % 10; - return e + (1 === ce(e % 100 / 10) ? "th" : 1 === t ? "st" : 2 === t ? "nd" : 3 === t ? "rd" : "th") - } - }), a.lang = Y("moment.lang is deprecated. Use moment.locale instead.", _n), a.langData = Y("moment.langData is deprecated. Use moment.localeData instead.", yn); - var br = Math.abs; - - function xr() { - var e = this._data; - return this._milliseconds = br(this._milliseconds), this._days = br(this._days), this._months = br(this._months), e.milliseconds = br(e.milliseconds), e.seconds = br(e.seconds), e.minutes = br(e.minutes), e.hours = br(e.hours), e.months = br(e.months), e.years = br(e.years), this - } - - function Lr(e, t, n, i) { - var a = Ti(t, n); - return e._milliseconds += i * a._milliseconds, e._days += i * a._days, e._months += i * a._months, e._bubble() - } - - function wr(e, t) { - return Lr(this, e, t, 1) - } - - function kr(e, t) { - return Lr(this, e, t, -1) - } - - function Yr(e) { - return e < 0 ? Math.floor(e) : Math.ceil(e) - } - - function Dr() { - var e, t, n, i, a, r = this._milliseconds, l = this._days, o = this._months, s = this._data; - return r >= 0 && l >= 0 && o >= 0 || r <= 0 && l <= 0 && o <= 0 || (r += 864e5 * Yr(Sr(o) + l), l = 0, o = 0), s.milliseconds = r % 1e3, e = ue(r / 1e3), s.seconds = e % 60, t = ue(e / 60), s.minutes = t % 60, n = ue(t / 60), s.hours = n % 24, l += ue(n / 24), o += a = ue(Tr(l)), l -= Yr(Sr(a)), i = ue(o / 12), o %= 12, s.days = l, s.months = o, s.years = i, this - } - - function Tr(e) { - return 4800 * e / 146097 - } - - function Sr(e) { - return 146097 * e / 4800 - } - - function jr(e) { - if (!this.isValid()) return NaN; - var t, n, i = this._milliseconds; - if ("month" === (e = ae(e)) || "quarter" === e || "year" === e) switch (t = this._days + i / 864e5, n = this._months + Tr(t), e) { - case"month": - return n; - case"quarter": - return n / 3; - case"year": - return n / 12 - } else switch (t = this._days + Math.round(Sr(this._months)), e) { - case"week": - return t / 7 + i / 6048e5; - case"day": - return t + i / 864e5; - case"hour": - return 24 * t + i / 36e5; - case"minute": - return 1440 * t + i / 6e4; - case"second": - return 86400 * t + i / 1e3; - case"millisecond": - return Math.floor(864e5 * t) + i; - default: - throw new Error("Unknown unit " + e) - } - } - - function Er() { - return this.isValid() ? this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * ce(this._months / 12) : NaN - } - - function Hr(e) { - return function () { - return this.as(e) - } - } - - var Or = Hr("ms"), Ar = Hr("s"), Pr = Hr("m"), Cr = Hr("h"), Fr = Hr("d"), Ir = Hr("w"), Wr = Hr("M"), - Nr = Hr("Q"), zr = Hr("y"); - - function Rr() { - return Ti(this) - } - - function Vr(e) { - return e = ae(e), this.isValid() ? this[e + "s"]() : NaN - } - - function Br(e) { - return function () { - return this.isValid() ? this._data[e] : NaN - } - } - - var Zr = Br("milliseconds"), Ur = Br("seconds"), Jr = Br("minutes"), Gr = Br("hours"), qr = Br("days"), - Kr = Br("months"), Xr = Br("years"); - - function $r() { - return ue(this.days() / 7) - } - - var Qr = Math.round, el = {ss: 44, s: 45, m: 45, h: 22, d: 26, w: null, M: 11}; - - function tl(e, t, n, i, a) { - return a.relativeTime(t || 1, !!n, e, i) - } - - function nl(e, t, n, i) { - var a = Ti(e).abs(), r = Qr(a.as("s")), l = Qr(a.as("m")), o = Qr(a.as("h")), s = Qr(a.as("d")), - d = Qr(a.as("M")), u = Qr(a.as("w")), c = Qr(a.as("y")), - h = r <= n.ss && ["s", r] || r < n.s && ["ss", r] || l <= 1 && ["m"] || l < n.m && ["mm", l] || o <= 1 && ["h"] || o < n.h && ["hh", o] || s <= 1 && ["d"] || s < n.d && ["dd", s]; - return null != n.w && (h = h || u <= 1 && ["w"] || u < n.w && ["ww", u]), (h = h || d <= 1 && ["M"] || d < n.M && ["MM", d] || c <= 1 && ["y"] || ["yy", c])[2] = t, h[3] = +e > 0, h[4] = i, tl.apply(null, h) - } - - function il(e) { - return void 0 === e ? Qr : "function" == typeof e && (Qr = e, !0) - } - - function al(e, t) { - return void 0 !== el[e] && (void 0 === t ? el[e] : (el[e] = t, "s" === e && (el.ss = t - 1), !0)) - } - - function rl(e, t) { - if (!this.isValid()) return this.localeData().invalidDate(); - var n, i, a = !1, r = el; - return "object" == typeof e && (t = e, e = !1), "boolean" == typeof e && (a = e), "object" == typeof t && (r = Object.assign({}, el, t), null != t.s && null == t.ss && (r.ss = t.s - 1)), i = nl(this, !a, r, n = this.localeData()), a && (i = n.pastFuture(+this, i)), n.postformat(i) - } - - var ll = Math.abs; - - function ol(e) { - return (e > 0) - (e < 0) || +e - } - - function sl() { - if (!this.isValid()) return this.localeData().invalidDate(); - var e, t, n, i, a, r, l, o, s = ll(this._milliseconds) / 1e3, d = ll(this._days), u = ll(this._months), - c = this.asSeconds(); - return c ? (e = ue(s / 60), t = ue(e / 60), s %= 60, e %= 60, n = ue(u / 12), u %= 12, i = s ? s.toFixed(3).replace(/\.?0+$/, "") : "", a = c < 0 ? "-" : "", r = ol(this._months) !== ol(c) ? "-" : "", l = ol(this._days) !== ol(c) ? "-" : "", o = ol(this._milliseconds) !== ol(c) ? "-" : "", a + "P" + (n ? r + n + "Y" : "") + (u ? r + u + "M" : "") + (d ? l + d + "D" : "") + (t || e || s ? "T" : "") + (t ? o + t + "H" : "") + (e ? o + e + "M" : "") + (s ? o + i + "S" : "")) : "P0D" - } - - var dl = li.prototype; - return dl.isValid = ai, dl.abs = xr, dl.add = wr, dl.subtract = kr, dl.as = jr, dl.asMilliseconds = Or, dl.asSeconds = Ar, dl.asMinutes = Pr, dl.asHours = Cr, dl.asDays = Fr, dl.asWeeks = Ir, dl.asMonths = Wr, dl.asQuarters = Nr, dl.asYears = zr, dl.valueOf = Er, dl._bubble = Dr, dl.clone = Rr, dl.get = Vr, dl.milliseconds = Zr, dl.seconds = Ur, dl.minutes = Jr, dl.hours = Gr, dl.days = qr, dl.weeks = $r, dl.months = Kr, dl.years = Xr, dl.humanize = rl, dl.toISOString = sl, dl.toString = sl, dl.toJSON = sl, dl.locale = la, dl.localeData = sa, dl.toIsoString = Y("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", sl), dl.lang = oa, z("X", 0, 0, "unix"), z("x", 0, 0, "valueOf"), Pe("x", je), Pe("X", Oe), Ne("X", (function (e, t, n) { - n._d = new Date(1e3 * parseFloat(e)) - })), Ne("x", (function (e, t, n) { - n._d = new Date(ce(e)) - })), a.version = "2.29.1", r(qn), a.fn = sr, a.min = Qn, a.max = ei, a.now = ti, a.utc = _, a.unix = dr, a.months = pr, a.isDate = h, a.locale = _n, a.invalid = v, a.duration = Ti, a.isMoment = w, a.weekdays = yr, a.parseZone = ur, a.localeData = yn, a.isDuration = oi, a.monthsShort = gr, a.weekdaysMin = Mr, a.defineLocale = pn, a.updateLocale = gn, a.locales = vn, a.weekdaysShort = vr, a.normalizeUnits = ae, a.relativeTimeRounding = il, a.relativeTimeThreshold = al, a.calendarFormat = zi, a.prototype = sr, a.HTML5_FMT = { - DATETIME_LOCAL: "YYYY-MM-DDTHH:mm", - DATETIME_LOCAL_SECONDS: "YYYY-MM-DDTHH:mm:ss", - DATETIME_LOCAL_MS: "YYYY-MM-DDTHH:mm:ss.SSS", - DATE: "YYYY-MM-DD", - TIME: "HH:mm", - TIME_SECONDS: "HH:mm:ss", - TIME_MS: "HH:mm:ss.SSS", - WEEK: "GGGG-[W]WW", - MONTH: "YYYY-MM" - }, a - }() - }).call(this, n(254)(e)) -}, function (e, t, n) { - (function (t) { - var n = function (e) { - return e && e.Math == Math && e - }; - e.exports = n("object" == typeof globalThis && globalThis) || n("object" == typeof window && window) || n("object" == typeof self && self) || n("object" == typeof t && t) || function () { - return this - }() || Function("return this")() - }).call(this, n(11)) -}, function (e, t) { - e.exports = function (e) { - try { - return !!e() - } catch (e) { - return !0 - } - } -}, function (e, t, n) { - var i = n(1), a = n(198), r = n(4), l = n(39), o = n(205), s = n(265), d = a("wks"), u = i.Symbol, - c = s ? u : u && u.withoutSetter || l; - e.exports = function (e) { - return r(d, e) || (o && r(u, e) ? d[e] = u[e] : d[e] = c("Symbol." + e)), d[e] - } -}, function (e, t) { - var n = {}.hasOwnProperty; - e.exports = function (e, t) { - return n.call(e, t) - } -}, function (e, t) { - e.exports = function (e) { - return "object" == typeof e ? null !== e : "function" == typeof e - } -}, function (e, t, n) { - var i = n(5); - e.exports = function (e) { - if (!i(e)) throw TypeError(String(e) + " is not an object"); - return e - } -}, function (e, t, n) { - var i = n(9), a = n(10), r = n(34); - e.exports = i ? function (e, t, n) { - return a.f(e, t, r(1, n)) - } : function (e, t, n) { - return e[t] = n, e - } -}, function (e, t, n) { - var i = n(1), a = n(191).f, r = n(7), l = n(13), o = n(35), s = n(257), d = n(201); - e.exports = function (e, t) { - var n, u, c, h, m, f = e.target, _ = e.global, p = e.stat; - if (n = _ ? i : p ? i[f] || o(f, {}) : (i[f] || {}).prototype) for (u in t) { - if (h = t[u], c = e.noTargetGet ? (m = a(n, u)) && m.value : n[u], !d(_ ? u : f + (p ? "." : "#") + u, e.forced) && void 0 !== c) { - if (typeof h == typeof c) continue; - s(h, c) - } - (e.sham || c && c.sham) && r(h, "sham", !0), l(n, u, h, e) - } - } -}, function (e, t, n) { - var i = n(2); - e.exports = !i((function () { - return 7 != Object.defineProperty({}, 1, { - get: function () { - return 7 - } - })[1] - })) -}, function (e, t, n) { - var i = n(9), a = n(194), r = n(6), l = n(193), o = Object.defineProperty; - t.f = i ? o : function (e, t, n) { - if (r(e), t = l(t, !0), r(n), a) try { - return o(e, t, n) - } catch (e) { - } - if ("get" in n || "set" in n) throw TypeError("Accessors not supported"); - return "value" in n && (e[t] = n.value), e - } -}, function (e, t) { - var n; - n = function () { - return this - }(); - try { - n = n || new Function("return this")() - } catch (e) { - "object" == typeof window && (n = window) - } - e.exports = n -}, function (e, t) { - e.exports = function (e) { - if (null == e) throw TypeError("Can't call method on " + e); - return e - } -}, function (e, t, n) { - var i = n(1), a = n(7), r = n(4), l = n(35), o = n(196), s = n(17), d = s.get, u = s.enforce, - c = String(String).split("String"); - (e.exports = function (e, t, n, o) { - var s, d = !!o && !!o.unsafe, h = !!o && !!o.enumerable, m = !!o && !!o.noTargetGet; - "function" == typeof n && ("string" != typeof t || r(n, "name") || a(n, "name", t), (s = u(n)).source || (s.source = c.join("string" == typeof t ? t : ""))), e !== i ? (d ? !m && e[t] && (h = !0) : delete e[t], h ? e[t] = n : a(e, t, n)) : h ? e[t] = n : l(t, n) - })(Function.prototype, "toString", (function () { - return "function" == typeof this && d(this).source || o(this) - })) -}, function (e, t, n) { - var i = n(24), a = Math.min; - e.exports = function (e) { - return e > 0 ? a(i(e), 9007199254740991) : 0 - } -}, function (e, t) { - var n = e.exports = "undefined" != typeof window && window.Math == Math ? window : "undefined" != typeof self && self.Math == Math ? self : Function("return this")(); - "number" == typeof __g && (__g = n) -}, function (e, t) { - var n = {}.toString; - e.exports = function (e) { - return n.call(e).slice(8, -1) - } -}, function (e, t, n) { - var i, a, r, l = n(197), o = n(1), s = n(5), d = n(7), u = n(4), c = n(36), h = n(37), m = n(23), f = o.WeakMap; - if (l) { - var _ = c.state || (c.state = new f), p = _.get, g = _.has, y = _.set; - i = function (e, t) { - return t.facade = e, y.call(_, e, t), t - }, a = function (e) { - return p.call(_, e) || {} - }, r = function (e) { - return g.call(_, e) - } - } else { - var v = h("state"); - m[v] = !0, i = function (e, t) { - return t.facade = e, d(e, v, t), t - }, a = function (e) { - return u(e, v) ? e[v] : {} - }, r = function (e) { - return u(e, v) - } - } - e.exports = { - set: i, get: a, has: r, enforce: function (e) { - return r(e) ? a(e) : i(e, {}) - }, getterFor: function (e) { - return function (t) { - var n; - if (!s(t) || (n = a(t)).type !== e) throw TypeError("Incompatible receiver, " + e + " required"); - return n - } - } - } -}, function (e, t, n) { - var i = n(12); - e.exports = function (e) { - return Object(i(e)) - } -}, function (e, t) { - e.exports = {} -}, function (e, t, n) { - "use strict"; - (function (e) { - var n = "undefined" != typeof window && "undefined" != typeof document && "undefined" != typeof navigator, - i = function () { - for (var e = ["Edge", "Trident", "Firefox"], t = 0; t < e.length; t += 1) if (n && navigator.userAgent.indexOf(e[t]) >= 0) return 1; - return 0 - }(); - var a = n && window.Promise ? function (e) { - var t = !1; - return function () { - t || (t = !0, window.Promise.resolve().then((function () { - t = !1, e() - }))) - } - } : function (e) { - var t = !1; - return function () { - t || (t = !0, setTimeout((function () { - t = !1, e() - }), i)) - } - }; - - function r(e) { - return e && "[object Function]" === {}.toString.call(e) - } - - function l(e, t) { - if (1 !== e.nodeType) return []; - var n = e.ownerDocument.defaultView.getComputedStyle(e, null); - return t ? n[t] : n - } - - function o(e) { - return "HTML" === e.nodeName ? e : e.parentNode || e.host - } - - function s(e) { - if (!e) return document.body; - switch (e.nodeName) { - case"HTML": - case"BODY": - return e.ownerDocument.body; - case"#document": - return e.body - } - var t = l(e), n = t.overflow, i = t.overflowX, a = t.overflowY; - return /(auto|scroll|overlay)/.test(n + a + i) ? e : s(o(e)) - } - - function d(e) { - return e && e.referenceNode ? e.referenceNode : e - } - - var u = n && !(!window.MSInputMethodContext || !document.documentMode), - c = n && /MSIE 10/.test(navigator.userAgent); - - function h(e) { - return 11 === e ? u : 10 === e ? c : u || c - } - - function m(e) { - if (!e) return document.documentElement; - for (var t = h(10) ? document.body : null, n = e.offsetParent || null; n === t && e.nextElementSibling;) n = (e = e.nextElementSibling).offsetParent; - var i = n && n.nodeName; - return i && "BODY" !== i && "HTML" !== i ? -1 !== ["TH", "TD", "TABLE"].indexOf(n.nodeName) && "static" === l(n, "position") ? m(n) : n : e ? e.ownerDocument.documentElement : document.documentElement - } - - function f(e) { - return null !== e.parentNode ? f(e.parentNode) : e - } - - function _(e, t) { - if (!(e && e.nodeType && t && t.nodeType)) return document.documentElement; - var n = e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING, i = n ? e : t, a = n ? t : e, - r = document.createRange(); - r.setStart(i, 0), r.setEnd(a, 0); - var l, o, s = r.commonAncestorContainer; - if (e !== s && t !== s || i.contains(a)) return "BODY" === (o = (l = s).nodeName) || "HTML" !== o && m(l.firstElementChild) !== l ? m(s) : s; - var d = f(e); - return d.host ? _(d.host, t) : _(e, f(t).host) - } - - function p(e) { - var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "top", - n = "top" === t ? "scrollTop" : "scrollLeft", i = e.nodeName; - if ("BODY" === i || "HTML" === i) { - var a = e.ownerDocument.documentElement, r = e.ownerDocument.scrollingElement || a; - return r[n] - } - return e[n] - } - - function g(e, t) { - var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], i = p(t, "top"), a = p(t, "left"), - r = n ? -1 : 1; - return e.top += i * r, e.bottom += i * r, e.left += a * r, e.right += a * r, e - } - - function y(e, t) { - var n = "x" === t ? "Left" : "Top", i = "Left" === n ? "Right" : "Bottom"; - return parseFloat(e["border" + n + "Width"]) + parseFloat(e["border" + i + "Width"]) - } - - function v(e, t, n, i) { - return Math.max(t["offset" + e], t["scroll" + e], n["client" + e], n["offset" + e], n["scroll" + e], h(10) ? parseInt(n["offset" + e]) + parseInt(i["margin" + ("Height" === e ? "Top" : "Left")]) + parseInt(i["margin" + ("Height" === e ? "Bottom" : "Right")]) : 0) - } - - function M(e) { - var t = e.body, n = e.documentElement, i = h(10) && getComputedStyle(n); - return {height: v("Height", t, n, i), width: v("Width", t, n, i)} - } - - var b = function (e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") - }, x = function () { - function e(e, t) { - for (var n = 0; n < t.length; n++) { - var i = t[n]; - i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) - } - } - - return function (t, n, i) { - return n && e(t.prototype, n), i && e(t, i), t - } - }(), L = function (e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - }, w = Object.assign || function (e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i]) - } - return e - }; - - function k(e) { - return w({}, e, {right: e.left + e.width, bottom: e.top + e.height}) - } - - function Y(e) { - var t = {}; - try { - if (h(10)) { - t = e.getBoundingClientRect(); - var n = p(e, "top"), i = p(e, "left"); - t.top += n, t.left += i, t.bottom += n, t.right += i - } else t = e.getBoundingClientRect() - } catch (e) { - } - var a = {left: t.left, top: t.top, width: t.right - t.left, height: t.bottom - t.top}, - r = "HTML" === e.nodeName ? M(e.ownerDocument) : {}, o = r.width || e.clientWidth || a.width, - s = r.height || e.clientHeight || a.height, d = e.offsetWidth - o, u = e.offsetHeight - s; - if (d || u) { - var c = l(e); - d -= y(c, "x"), u -= y(c, "y"), a.width -= d, a.height -= u - } - return k(a) - } - - function D(e, t) { - var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], i = h(10), - a = "HTML" === t.nodeName, r = Y(e), o = Y(t), d = s(e), u = l(t), c = parseFloat(u.borderTopWidth), - m = parseFloat(u.borderLeftWidth); - n && a && (o.top = Math.max(o.top, 0), o.left = Math.max(o.left, 0)); - var f = k({top: r.top - o.top - c, left: r.left - o.left - m, width: r.width, height: r.height}); - if (f.marginTop = 0, f.marginLeft = 0, !i && a) { - var _ = parseFloat(u.marginTop), p = parseFloat(u.marginLeft); - f.top -= c - _, f.bottom -= c - _, f.left -= m - p, f.right -= m - p, f.marginTop = _, f.marginLeft = p - } - return (i && !n ? t.contains(d) : t === d && "BODY" !== d.nodeName) && (f = g(f, t)), f - } - - function T(e) { - var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], - n = e.ownerDocument.documentElement, i = D(e, n), a = Math.max(n.clientWidth, window.innerWidth || 0), - r = Math.max(n.clientHeight, window.innerHeight || 0), l = t ? 0 : p(n), o = t ? 0 : p(n, "left"), - s = {top: l - i.top + i.marginTop, left: o - i.left + i.marginLeft, width: a, height: r}; - return k(s) - } - - function S(e) { - var t = e.nodeName; - if ("BODY" === t || "HTML" === t) return !1; - if ("fixed" === l(e, "position")) return !0; - var n = o(e); - return !!n && S(n) - } - - function j(e) { - if (!e || !e.parentElement || h()) return document.documentElement; - for (var t = e.parentElement; t && "none" === l(t, "transform");) t = t.parentElement; - return t || document.documentElement - } - - function E(e, t, n, i) { - var a = arguments.length > 4 && void 0 !== arguments[4] && arguments[4], r = {top: 0, left: 0}, - l = a ? j(e) : _(e, d(t)); - if ("viewport" === i) r = T(l, a); else { - var u = void 0; - "scrollParent" === i ? "BODY" === (u = s(o(t))).nodeName && (u = e.ownerDocument.documentElement) : u = "window" === i ? e.ownerDocument.documentElement : i; - var c = D(u, l, a); - if ("HTML" !== u.nodeName || S(l)) r = c; else { - var h = M(e.ownerDocument), m = h.height, f = h.width; - r.top += c.top - c.marginTop, r.bottom = m + c.top, r.left += c.left - c.marginLeft, r.right = f + c.left - } - } - var p = "number" == typeof (n = n || 0); - return r.left += p ? n : n.left || 0, r.top += p ? n : n.top || 0, r.right -= p ? n : n.right || 0, r.bottom -= p ? n : n.bottom || 0, r - } - - function H(e) { - return e.width * e.height - } - - function O(e, t, n, i, a) { - var r = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0; - if (-1 === e.indexOf("auto")) return e; - var l = E(n, i, r, a), o = { - top: {width: l.width, height: t.top - l.top}, - right: {width: l.right - t.right, height: l.height}, - bottom: {width: l.width, height: l.bottom - t.bottom}, - left: {width: t.left - l.left, height: l.height} - }, s = Object.keys(o).map((function (e) { - return w({key: e}, o[e], {area: H(o[e])}) - })).sort((function (e, t) { - return t.area - e.area - })), d = s.filter((function (e) { - var t = e.width, i = e.height; - return t >= n.clientWidth && i >= n.clientHeight - })), u = d.length > 0 ? d[0].key : s[0].key, c = e.split("-")[1]; - return u + (c ? "-" + c : "") - } - - function A(e, t, n) { - var i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null, a = i ? j(t) : _(t, d(n)); - return D(n, a, i) - } - - function P(e) { - var t = e.ownerDocument.defaultView.getComputedStyle(e), - n = parseFloat(t.marginTop || 0) + parseFloat(t.marginBottom || 0), - i = parseFloat(t.marginLeft || 0) + parseFloat(t.marginRight || 0); - return {width: e.offsetWidth + i, height: e.offsetHeight + n} - } - - function C(e) { - var t = {left: "right", right: "left", bottom: "top", top: "bottom"}; - return e.replace(/left|right|bottom|top/g, (function (e) { - return t[e] - })) - } - - function F(e, t, n) { - n = n.split("-")[0]; - var i = P(e), a = {width: i.width, height: i.height}, r = -1 !== ["right", "left"].indexOf(n), - l = r ? "top" : "left", o = r ? "left" : "top", s = r ? "height" : "width", d = r ? "width" : "height"; - return a[l] = t[l] + t[s] / 2 - i[s] / 2, a[o] = n === o ? t[o] - i[d] : t[C(o)], a - } - - function I(e, t) { - return Array.prototype.find ? e.find(t) : e.filter(t)[0] - } - - function W(e, t, n) { - return (void 0 === n ? e : e.slice(0, function (e, t, n) { - if (Array.prototype.findIndex) return e.findIndex((function (e) { - return e[t] === n - })); - var i = I(e, (function (e) { - return e[t] === n - })); - return e.indexOf(i) - }(e, "name", n))).forEach((function (e) { - e.function && console.warn("`modifier.function` is deprecated, use `modifier.fn`!"); - var n = e.function || e.fn; - e.enabled && r(n) && (t.offsets.popper = k(t.offsets.popper), t.offsets.reference = k(t.offsets.reference), t = n(t, e)) - })), t - } - - function N() { - if (!this.state.isDestroyed) { - var e = {instance: this, styles: {}, arrowStyles: {}, attributes: {}, flipped: !1, offsets: {}}; - e.offsets.reference = A(this.state, this.popper, this.reference, this.options.positionFixed), e.placement = O(this.options.placement, e.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), e.originalPlacement = e.placement, e.positionFixed = this.options.positionFixed, e.offsets.popper = F(this.popper, e.offsets.reference, e.placement), e.offsets.popper.position = this.options.positionFixed ? "fixed" : "absolute", e = W(this.modifiers, e), this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e)) - } - } - - function z(e, t) { - return e.some((function (e) { - var n = e.name; - return e.enabled && n === t - })) - } - - function R(e) { - for (var t = [!1, "ms", "Webkit", "Moz", "O"], n = e.charAt(0).toUpperCase() + e.slice(1), i = 0; i < t.length; i++) { - var a = t[i], r = a ? "" + a + n : e; - if (void 0 !== document.body.style[r]) return r - } - return null - } - - function V() { - return this.state.isDestroyed = !0, z(this.modifiers, "applyStyle") && (this.popper.removeAttribute("x-placement"), this.popper.style.position = "", this.popper.style.top = "", this.popper.style.left = "", this.popper.style.right = "", this.popper.style.bottom = "", this.popper.style.willChange = "", this.popper.style[R("transform")] = ""), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this - } - - function B(e) { - var t = e.ownerDocument; - return t ? t.defaultView : window - } - - function Z(e, t, n, i) { - var a = "BODY" === e.nodeName, r = a ? e.ownerDocument.defaultView : e; - r.addEventListener(t, n, {passive: !0}), a || Z(s(r.parentNode), t, n, i), i.push(r) - } - - function U(e, t, n, i) { - n.updateBound = i, B(e).addEventListener("resize", n.updateBound, {passive: !0}); - var a = s(e); - return Z(a, "scroll", n.updateBound, n.scrollParents), n.scrollElement = a, n.eventsEnabled = !0, n - } - - function J() { - this.state.eventsEnabled || (this.state = U(this.reference, this.options, this.state, this.scheduleUpdate)) - } - - function G() { - var e, t; - this.state.eventsEnabled && (cancelAnimationFrame(this.scheduleUpdate), this.state = (e = this.reference, t = this.state, B(e).removeEventListener("resize", t.updateBound), t.scrollParents.forEach((function (e) { - e.removeEventListener("scroll", t.updateBound) - })), t.updateBound = null, t.scrollParents = [], t.scrollElement = null, t.eventsEnabled = !1, t)) - } - - function q(e) { - return "" !== e && !isNaN(parseFloat(e)) && isFinite(e) - } - - function K(e, t) { - Object.keys(t).forEach((function (n) { - var i = ""; - -1 !== ["width", "height", "top", "right", "bottom", "left"].indexOf(n) && q(t[n]) && (i = "px"), e.style[n] = t[n] + i - })) - } - - var X = n && /Firefox/i.test(navigator.userAgent); - - function $(e, t, n) { - var i = I(e, (function (e) { - return e.name === t - })), a = !!i && e.some((function (e) { - return e.name === n && e.enabled && e.order < i.order - })); - if (!a) { - var r = "`" + t + "`", l = "`" + n + "`"; - console.warn(l + " modifier is required by " + r + " modifier in order to work, be sure to include it before " + r + "!") - } - return a - } - - var Q = ["auto-start", "auto", "auto-end", "top-start", "top", "top-end", "right-start", "right", "right-end", "bottom-end", "bottom", "bottom-start", "left-end", "left", "left-start"], - ee = Q.slice(3); - - function te(e) { - var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], n = ee.indexOf(e), - i = ee.slice(n + 1).concat(ee.slice(0, n)); - return t ? i.reverse() : i - } - - var ne = "flip", ie = "clockwise", ae = "counterclockwise"; - - function re(e, t, n, i) { - var a = [0, 0], r = -1 !== ["right", "left"].indexOf(i), l = e.split(/(\+|\-)/).map((function (e) { - return e.trim() - })), o = l.indexOf(I(l, (function (e) { - return -1 !== e.search(/,|\s/) - }))); - l[o] && -1 === l[o].indexOf(",") && console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead."); - var s = /\s*,\s*|\s+/, - d = -1 !== o ? [l.slice(0, o).concat([l[o].split(s)[0]]), [l[o].split(s)[1]].concat(l.slice(o + 1))] : [l]; - return (d = d.map((function (e, i) { - var a = (1 === i ? !r : r) ? "height" : "width", l = !1; - return e.reduce((function (e, t) { - return "" === e[e.length - 1] && -1 !== ["+", "-"].indexOf(t) ? (e[e.length - 1] = t, l = !0, e) : l ? (e[e.length - 1] += t, l = !1, e) : e.concat(t) - }), []).map((function (e) { - return function (e, t, n, i) { - var a = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/), r = +a[1], l = a[2]; - if (!r) return e; - if (0 === l.indexOf("%")) { - var o = void 0; - switch (l) { - case"%p": - o = n; - break; - case"%": - case"%r": - default: - o = i - } - return k(o)[t] / 100 * r - } - if ("vh" === l || "vw" === l) return ("vh" === l ? Math.max(document.documentElement.clientHeight, window.innerHeight || 0) : Math.max(document.documentElement.clientWidth, window.innerWidth || 0)) / 100 * r; - return r - }(e, a, t, n) - })) - }))).forEach((function (e, t) { - e.forEach((function (n, i) { - q(n) && (a[t] += n * ("-" === e[i - 1] ? -1 : 1)) - })) - })), a - } - - var le = { - placement: "bottom", positionFixed: !1, eventsEnabled: !0, removeOnDestroy: !1, onCreate: function () { - }, onUpdate: function () { - }, modifiers: { - shift: { - order: 100, enabled: !0, fn: function (e) { - var t = e.placement, n = t.split("-")[0], i = t.split("-")[1]; - if (i) { - var a = e.offsets, r = a.reference, l = a.popper, o = -1 !== ["bottom", "top"].indexOf(n), - s = o ? "left" : "top", d = o ? "width" : "height", - u = {start: L({}, s, r[s]), end: L({}, s, r[s] + r[d] - l[d])}; - e.offsets.popper = w({}, l, u[i]) - } - return e - } - }, offset: { - order: 200, enabled: !0, fn: function (e, t) { - var n = t.offset, i = e.placement, a = e.offsets, r = a.popper, l = a.reference, - o = i.split("-")[0], s = void 0; - return s = q(+n) ? [+n, 0] : re(n, r, l, o), "left" === o ? (r.top += s[0], r.left -= s[1]) : "right" === o ? (r.top += s[0], r.left += s[1]) : "top" === o ? (r.left += s[0], r.top -= s[1]) : "bottom" === o && (r.left += s[0], r.top += s[1]), e.popper = r, e - }, offset: 0 - }, preventOverflow: { - order: 300, enabled: !0, fn: function (e, t) { - var n = t.boundariesElement || m(e.instance.popper); - e.instance.reference === n && (n = m(n)); - var i = R("transform"), a = e.instance.popper.style, r = a.top, l = a.left, o = a[i]; - a.top = "", a.left = "", a[i] = ""; - var s = E(e.instance.popper, e.instance.reference, t.padding, n, e.positionFixed); - a.top = r, a.left = l, a[i] = o, t.boundaries = s; - var d = t.priority, u = e.offsets.popper, c = { - primary: function (e) { - var n = u[e]; - return u[e] < s[e] && !t.escapeWithReference && (n = Math.max(u[e], s[e])), L({}, e, n) - }, secondary: function (e) { - var n = "right" === e ? "left" : "top", i = u[n]; - return u[e] > s[e] && !t.escapeWithReference && (i = Math.min(u[n], s[e] - ("right" === e ? u.width : u.height))), L({}, n, i) - } - }; - return d.forEach((function (e) { - var t = -1 !== ["left", "top"].indexOf(e) ? "primary" : "secondary"; - u = w({}, u, c[t](e)) - })), e.offsets.popper = u, e - }, priority: ["left", "right", "top", "bottom"], padding: 5, boundariesElement: "scrollParent" - }, keepTogether: { - order: 400, enabled: !0, fn: function (e) { - var t = e.offsets, n = t.popper, i = t.reference, a = e.placement.split("-")[0], r = Math.floor, - l = -1 !== ["top", "bottom"].indexOf(a), o = l ? "right" : "bottom", s = l ? "left" : "top", - d = l ? "width" : "height"; - return n[o] < r(i[s]) && (e.offsets.popper[s] = r(i[s]) - n[d]), n[s] > r(i[o]) && (e.offsets.popper[s] = r(i[o])), e - } - }, arrow: { - order: 500, enabled: !0, fn: function (e, t) { - var n; - if (!$(e.instance.modifiers, "arrow", "keepTogether")) return e; - var i = t.element; - if ("string" == typeof i) { - if (!(i = e.instance.popper.querySelector(i))) return e - } else if (!e.instance.popper.contains(i)) return console.warn("WARNING: `arrow.element` must be child of its popper element!"), e; - var a = e.placement.split("-")[0], r = e.offsets, o = r.popper, s = r.reference, - d = -1 !== ["left", "right"].indexOf(a), u = d ? "height" : "width", c = d ? "Top" : "Left", - h = c.toLowerCase(), m = d ? "left" : "top", f = d ? "bottom" : "right", _ = P(i)[u]; - s[f] - _ < o[h] && (e.offsets.popper[h] -= o[h] - (s[f] - _)), s[h] + _ > o[f] && (e.offsets.popper[h] += s[h] + _ - o[f]), e.offsets.popper = k(e.offsets.popper); - var p = s[h] + s[u] / 2 - _ / 2, g = l(e.instance.popper), y = parseFloat(g["margin" + c]), - v = parseFloat(g["border" + c + "Width"]), M = p - e.offsets.popper[h] - y - v; - return M = Math.max(Math.min(o[u] - _, M), 0), e.arrowElement = i, e.offsets.arrow = (L(n = {}, h, Math.round(M)), L(n, m, ""), n), e - }, element: "[x-arrow]" - }, flip: { - order: 600, - enabled: !0, - fn: function (e, t) { - if (z(e.instance.modifiers, "inner")) return e; - if (e.flipped && e.placement === e.originalPlacement) return e; - var n = E(e.instance.popper, e.instance.reference, t.padding, t.boundariesElement, e.positionFixed), - i = e.placement.split("-")[0], a = C(i), r = e.placement.split("-")[1] || "", l = []; - switch (t.behavior) { - case ne: - l = [i, a]; - break; - case ie: - l = te(i); - break; - case ae: - l = te(i, !0); - break; - default: - l = t.behavior - } - return l.forEach((function (o, s) { - if (i !== o || l.length === s + 1) return e; - i = e.placement.split("-")[0], a = C(i); - var d = e.offsets.popper, u = e.offsets.reference, c = Math.floor, - h = "left" === i && c(d.right) > c(u.left) || "right" === i && c(d.left) < c(u.right) || "top" === i && c(d.bottom) > c(u.top) || "bottom" === i && c(d.top) < c(u.bottom), - m = c(d.left) < c(n.left), f = c(d.right) > c(n.right), _ = c(d.top) < c(n.top), - p = c(d.bottom) > c(n.bottom), - g = "left" === i && m || "right" === i && f || "top" === i && _ || "bottom" === i && p, - y = -1 !== ["top", "bottom"].indexOf(i), - v = !!t.flipVariations && (y && "start" === r && m || y && "end" === r && f || !y && "start" === r && _ || !y && "end" === r && p), - M = !!t.flipVariationsByContent && (y && "start" === r && f || y && "end" === r && m || !y && "start" === r && p || !y && "end" === r && _), - b = v || M; - (h || g || b) && (e.flipped = !0, (h || g) && (i = l[s + 1]), b && (r = function (e) { - return "end" === e ? "start" : "start" === e ? "end" : e - }(r)), e.placement = i + (r ? "-" + r : ""), e.offsets.popper = w({}, e.offsets.popper, F(e.instance.popper, e.offsets.reference, e.placement)), e = W(e.instance.modifiers, e, "flip")) - })), e - }, - behavior: "flip", - padding: 5, - boundariesElement: "viewport", - flipVariations: !1, - flipVariationsByContent: !1 - }, inner: { - order: 700, enabled: !1, fn: function (e) { - var t = e.placement, n = t.split("-")[0], i = e.offsets, a = i.popper, r = i.reference, - l = -1 !== ["left", "right"].indexOf(n), o = -1 === ["top", "left"].indexOf(n); - return a[l ? "left" : "top"] = r[n] - (o ? a[l ? "width" : "height"] : 0), e.placement = C(t), e.offsets.popper = k(a), e - } - }, hide: { - order: 800, enabled: !0, fn: function (e) { - if (!$(e.instance.modifiers, "hide", "preventOverflow")) return e; - var t = e.offsets.reference, n = I(e.instance.modifiers, (function (e) { - return "preventOverflow" === e.name - })).boundaries; - if (t.bottom < n.top || t.left > n.right || t.top > n.bottom || t.right < n.left) { - if (!0 === e.hide) return e; - e.hide = !0, e.attributes["x-out-of-boundaries"] = "" - } else { - if (!1 === e.hide) return e; - e.hide = !1, e.attributes["x-out-of-boundaries"] = !1 - } - return e - } - }, computeStyle: { - order: 850, enabled: !0, fn: function (e, t) { - var n = t.x, i = t.y, a = e.offsets.popper, r = I(e.instance.modifiers, (function (e) { - return "applyStyle" === e.name - })).gpuAcceleration; - void 0 !== r && console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!"); - var l = void 0 !== r ? r : t.gpuAcceleration, o = m(e.instance.popper), s = Y(o), - d = {position: a.position}, u = function (e, t) { - var n = e.offsets, i = n.popper, a = n.reference, r = Math.round, l = Math.floor, - o = function (e) { - return e - }, s = r(a.width), d = r(i.width), u = -1 !== ["left", "right"].indexOf(e.placement), - c = -1 !== e.placement.indexOf("-"), h = t ? u || c || s % 2 == d % 2 ? r : l : o, - m = t ? r : o; - return { - left: h(s % 2 == 1 && d % 2 == 1 && !c && t ? i.left - 1 : i.left), - top: m(i.top), - bottom: m(i.bottom), - right: h(i.right) - } - }(e, window.devicePixelRatio < 2 || !X), c = "bottom" === n ? "top" : "bottom", - h = "right" === i ? "left" : "right", f = R("transform"), _ = void 0, p = void 0; - if (p = "bottom" === c ? "HTML" === o.nodeName ? -o.clientHeight + u.bottom : -s.height + u.bottom : u.top, _ = "right" === h ? "HTML" === o.nodeName ? -o.clientWidth + u.right : -s.width + u.right : u.left, l && f) d[f] = "translate3d(" + _ + "px, " + p + "px, 0)", d[c] = 0, d[h] = 0, d.willChange = "transform"; else { - var g = "bottom" === c ? -1 : 1, y = "right" === h ? -1 : 1; - d[c] = p * g, d[h] = _ * y, d.willChange = c + ", " + h - } - var v = {"x-placement": e.placement}; - return e.attributes = w({}, v, e.attributes), e.styles = w({}, d, e.styles), e.arrowStyles = w({}, e.offsets.arrow, e.arrowStyles), e - }, gpuAcceleration: !0, x: "bottom", y: "right" - }, applyStyle: { - order: 900, enabled: !0, fn: function (e) { - var t, n; - return K(e.instance.popper, e.styles), t = e.instance.popper, n = e.attributes, Object.keys(n).forEach((function (e) { - !1 !== n[e] ? t.setAttribute(e, n[e]) : t.removeAttribute(e) - })), e.arrowElement && Object.keys(e.arrowStyles).length && K(e.arrowElement, e.arrowStyles), e - }, onLoad: function (e, t, n, i, a) { - var r = A(a, t, e, n.positionFixed), - l = O(n.placement, r, t, e, n.modifiers.flip.boundariesElement, n.modifiers.flip.padding); - return t.setAttribute("x-placement", l), K(t, {position: n.positionFixed ? "fixed" : "absolute"}), n - }, gpuAcceleration: void 0 - } - } - }, oe = function () { - function e(t, n) { - var i = this, l = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; - b(this, e), this.scheduleUpdate = function () { - return requestAnimationFrame(i.update) - }, this.update = a(this.update.bind(this)), this.options = w({}, e.Defaults, l), this.state = { - isDestroyed: !1, - isCreated: !1, - scrollParents: [] - }, this.reference = t && t.jquery ? t[0] : t, this.popper = n && n.jquery ? n[0] : n, this.options.modifiers = {}, Object.keys(w({}, e.Defaults.modifiers, l.modifiers)).forEach((function (t) { - i.options.modifiers[t] = w({}, e.Defaults.modifiers[t] || {}, l.modifiers ? l.modifiers[t] : {}) - })), this.modifiers = Object.keys(this.options.modifiers).map((function (e) { - return w({name: e}, i.options.modifiers[e]) - })).sort((function (e, t) { - return e.order - t.order - })), this.modifiers.forEach((function (e) { - e.enabled && r(e.onLoad) && e.onLoad(i.reference, i.popper, i.options, e, i.state) - })), this.update(); - var o = this.options.eventsEnabled; - o && this.enableEventListeners(), this.state.eventsEnabled = o - } - - return x(e, [{ - key: "update", value: function () { - return N.call(this) - } - }, { - key: "destroy", value: function () { - return V.call(this) - } - }, { - key: "enableEventListeners", value: function () { - return J.call(this) - } - }, { - key: "disableEventListeners", value: function () { - return G.call(this) - } - }]), e - }(); - oe.Utils = ("undefined" != typeof window ? window : e).PopperUtils, oe.placements = Q, oe.Defaults = le, t.a = oe - }).call(this, n(11)) -}, function (e, t, n) { - var i = n(22), a = n(12); - e.exports = function (e) { - return i(a(e)) - } -}, function (e, t, n) { - var i = n(2), a = n(16), r = "".split; - e.exports = i((function () { - return !Object("z").propertyIsEnumerable(0) - })) ? function (e) { - return "String" == a(e) ? r.call(e, "") : Object(e) - } : Object -}, function (e, t) { - e.exports = {} -}, function (e, t) { - var n = Math.ceil, i = Math.floor; - e.exports = function (e) { - return isNaN(e = +e) ? 0 : (e > 0 ? i : n)(e) - } -}, function (e, t) { - var n = !("undefined" == typeof window || !window.document || !window.document.createElement); - e.exports = n -}, function (e, t, n) { - var i = n(27); - e.exports = function (e) { - if (!i(e)) throw TypeError(e + " is not an object!"); - return e - } -}, function (e, t) { - e.exports = function (e) { - return "object" == typeof e ? null !== e : "function" == typeof e - } -}, function (e, t) { - e.exports = function (e) { - if (null == e) throw TypeError("Can't call method on " + e); - return e - } -}, function (e, t) { - var n = Math.ceil, i = Math.floor; - e.exports = function (e) { - return isNaN(e = +e) ? 0 : (e > 0 ? i : n)(e) - } -}, function (e, t) { - var n = e.exports = {version: "2.6.12"}; - "number" == typeof __e && (__e = n) -}, function (e, t, n) { - var i = n(245), a = n(249); - e.exports = n(32) ? function (e, t, n) { - return i.f(e, t, a(1, n)) - } : function (e, t, n) { - return e[t] = n, e - } -}, function (e, t, n) { - e.exports = !n(33)((function () { - return 7 != Object.defineProperty({}, "a", { - get: function () { - return 7 - } - }).a - })) -}, function (e, t) { - e.exports = function (e) { - try { - return !!e() - } catch (e) { - return !0 - } - } -}, function (e, t) { - e.exports = function (e, t) { - return {enumerable: !(1 & e), configurable: !(2 & e), writable: !(4 & e), value: t} - } -}, function (e, t, n) { - var i = n(1), a = n(7); - e.exports = function (e, t) { - try { - a(i, e, t) - } catch (n) { - i[e] = t - } - return t - } -}, function (e, t, n) { - var i = n(1), a = n(35), r = "__core-js_shared__", l = i[r] || a(r, {}); - e.exports = l -}, function (e, t, n) { - var i = n(198), a = n(39), r = i("keys"); - e.exports = function (e) { - return r[e] || (r[e] = a(e)) - } -}, function (e, t) { - e.exports = !1 -}, function (e, t) { - var n = 0, i = Math.random(); - e.exports = function (e) { - return "Symbol(" + String(void 0 === e ? "" : e) + ")_" + (++n + i).toString(36) - } -}, function (e, t, n) { - var i = n(259), a = n(1), r = function (e) { - return "function" == typeof e ? e : void 0 - }; - e.exports = function (e, t) { - return arguments.length < 2 ? r(i[e]) || r(a[e]) : i[e] && i[e][t] || a[e] && a[e][t] - } -}, function (e, t) { - e.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"] -}, function (e, t, n) { - var i = n(203), a = n(22), r = n(18), l = n(14), o = n(263), s = [].push, d = function (e) { - var t = 1 == e, n = 2 == e, d = 3 == e, u = 4 == e, c = 6 == e, h = 7 == e, m = 5 == e || c; - return function (f, _, p, g) { - for (var y, v, M = r(f), b = a(M), x = i(_, p, 3), L = l(b.length), w = 0, k = g || o, Y = t ? k(f, L) : n || h ? k(f, 0) : void 0; L > w; w++) if ((m || w in b) && (v = x(y = b[w], w, M), e)) if (t) Y[w] = v; else if (v) switch (e) { - case 3: - return !0; - case 5: - return y; - case 6: - return w; - case 2: - s.call(Y, y) - } else switch (e) { - case 4: - return !1; - case 7: - s.call(Y, y) - } - return c ? -1 : d || u ? u : Y - } - }; - e.exports = { - forEach: d(0), - map: d(1), - filter: d(2), - some: d(3), - every: d(4), - find: d(5), - findIndex: d(6), - filterOut: d(7) - } -}, function (e, t, n) { - var i = n(9), a = n(2), r = n(4), l = Object.defineProperty, o = {}, s = function (e) { - throw e - }; - e.exports = function (e, t) { - if (r(o, e)) return o[e]; - t || (t = {}); - var n = [][e], d = !!r(t, "ACCESSORS") && t.ACCESSORS, u = r(t, 0) ? t[0] : s, c = r(t, 1) ? t[1] : void 0; - return o[e] = !!n && !a((function () { - if (d && !i) return !0; - var e = {length: -1}; - d ? l(e, 1, {enumerable: !0, get: s}) : e[1] = 1, n.call(e, u, c) - })) - } -}, function (e, t, n) { - var i = n(10).f, a = n(4), r = n(3)("toStringTag"); - e.exports = function (e, t, n) { - e && !a(e = n ? e : e.prototype, r) && i(e, r, {configurable: !0, value: t}) - } -}, function (e, t, n) { - var i = {}; - i[n(3)("toStringTag")] = "z", e.exports = "[object z]" === String(i) -}, function (e, t, n) { - var i = n(23), a = n(5), r = n(4), l = n(10).f, o = n(39), s = n(285), d = o("meta"), u = 0, - c = Object.isExtensible || function () { - return !0 - }, h = function (e) { - l(e, d, {value: {objectID: "O" + ++u, weakData: {}}}) - }, m = e.exports = { - REQUIRED: !1, fastKey: function (e, t) { - if (!a(e)) return "symbol" == typeof e ? e : ("string" == typeof e ? "S" : "P") + e; - if (!r(e, d)) { - if (!c(e)) return "F"; - if (!t) return "E"; - h(e) - } - return e[d].objectID - }, getWeakData: function (e, t) { - if (!r(e, d)) { - if (!c(e)) return !0; - if (!t) return !1; - h(e) - } - return e[d].weakData - }, onFreeze: function (e) { - return s && m.REQUIRED && c(e) && !r(e, d) && h(e), e - } - }; - i[d] = !0 -}, function (e, t, n) { - "use strict"; - var i, a, r = n(298), l = n(299), o = RegExp.prototype.exec, s = String.prototype.replace, d = o, - u = (i = /a/, a = /b*/g, o.call(i, "a"), o.call(a, "a"), 0 !== i.lastIndex || 0 !== a.lastIndex), - c = l.UNSUPPORTED_Y || l.BROKEN_CARET, h = void 0 !== /()??/.exec("")[1]; - (u || h || c) && (d = function (e) { - var t, n, i, a, l = this, d = c && l.sticky, m = r.call(l), f = l.source, _ = 0, p = e; - return d && (-1 === (m = m.replace("y", "")).indexOf("g") && (m += "g"), p = String(e).slice(l.lastIndex), l.lastIndex > 0 && (!l.multiline || l.multiline && "\n" !== e[l.lastIndex - 1]) && (f = "(?: " + f + ")", p = " " + p, _++), n = new RegExp("^(?:" + f + ")", m)), h && (n = new RegExp("^" + f + "$(?!\\s)", m)), u && (t = l.lastIndex), i = o.call(d ? n : l, p), d ? i ? (i.input = i.input.slice(_), i[0] = i[0].slice(_), i.index = l.lastIndex, l.lastIndex += i[0].length) : l.lastIndex = 0 : u && i && (l.lastIndex = l.global ? i.index + i[0].length : t), h && i && i.length > 1 && s.call(i[0], n, (function () { - for (a = 1; a < arguments.length - 2; a++) void 0 === arguments[a] && (i[a] = void 0) - })), i - }), e.exports = d -}, function (e, t, n) { - var i; - "undefined" != typeof self && self, i = function () { - return function (e) { - var t = {}; - - function n(i) { - if (t[i]) return t[i].exports; - var a = t[i] = {i: i, l: !1, exports: {}}; - return e[i].call(a.exports, a, a.exports, n), a.l = !0, a.exports - } - - return n.m = e, n.c = t, n.d = function (e, t, i) { - n.o(e, t) || Object.defineProperty(e, t, {configurable: !1, enumerable: !0, get: i}) - }, n.r = function (e) { - Object.defineProperty(e, "__esModule", {value: !0}) - }, n.n = function (e) { - var t = e && e.__esModule ? function () { - return e.default - } : function () { - return e - }; - return n.d(t, "a", t), t - }, n.o = function (e, t) { - return Object.prototype.hasOwnProperty.call(e, t) - }, n.p = "", n(n.s = 0) - }({ - "./dist/icons.json": function (e) { - e.exports = { - activity: '', - airplay: '', - "alert-circle": '', - "alert-octagon": '', - "alert-triangle": '', - "align-center": '', - "align-justify": '', - "align-left": '', - "align-right": '', - anchor: '', - aperture: '', - archive: '', - "arrow-down-circle": '', - "arrow-down-left": '', - "arrow-down-right": '', - "arrow-down": '', - "arrow-left-circle": '', - "arrow-left": '', - "arrow-right-circle": '', - "arrow-right": '', - "arrow-up-circle": '', - "arrow-up-left": '', - "arrow-up-right": '', - "arrow-up": '', - "at-sign": '', - award: '', - "bar-chart-2": '', - "bar-chart": '', - "battery-charging": '', - battery: '', - "bell-off": '', - bell: '', - bluetooth: '', - bold: '', - "book-open": '', - book: '', - bookmark: '', - box: '', - briefcase: '', - calendar: '', - "camera-off": '', - camera: '', - cast: '', - "check-circle": '', - "check-square": '', - check: '', - "chevron-down": '', - "chevron-left": '', - "chevron-right": '', - "chevron-up": '', - "chevrons-down": '', - "chevrons-left": '', - "chevrons-right": '', - "chevrons-up": '', - chrome: '', - circle: '', - clipboard: '', - clock: '', - "cloud-drizzle": '', - "cloud-lightning": '', - "cloud-off": '', - "cloud-rain": '', - "cloud-snow": '', - cloud: '', - code: '', - codepen: '', - codesandbox: '', - coffee: '', - columns: '', - command: '', - compass: '', - copy: '', - "corner-down-left": '', - "corner-down-right": '', - "corner-left-down": '', - "corner-left-up": '', - "corner-right-down": '', - "corner-right-up": '', - "corner-up-left": '', - "corner-up-right": '', - cpu: '', - "credit-card": '', - crop: '', - crosshair: '', - database: '', - delete: '', - disc: '', - "divide-circle": '', - "divide-square": '', - divide: '', - "dollar-sign": '', - "download-cloud": '', - download: '', - dribbble: '', - droplet: '', - "edit-2": '', - "edit-3": '', - edit: '', - "external-link": '', - "eye-off": '', - eye: '', - facebook: '', - "fast-forward": '', - feather: '', - figma: '', - "file-minus": '', - "file-plus": '', - "file-text": '', - file: '', - film: '', - filter: '', - flag: '', - "folder-minus": '', - "folder-plus": '', - folder: '', - framer: '', - frown: '', - gift: '', - "git-branch": '', - "git-commit": '', - "git-merge": '', - "git-pull-request": '', - github: '', - gitlab: '', - globe: '', - grid: '', - "hard-drive": '', - hash: '', - headphones: '', - heart: '', - "help-circle": '', - hexagon: '', - home: '', - image: '', - inbox: '', - info: '', - instagram: '', - italic: '', - key: '', - layers: '', - layout: '', - "life-buoy": '', - "link-2": '', - link: '', - linkedin: '', - list: '', - loader: '', - lock: '', - "log-in": '', - "log-out": '', - mail: '', - "map-pin": '', - map: '', - "maximize-2": '', - maximize: '', - meh: '', - menu: '', - "message-circle": '', - "message-square": '', - "mic-off": '', - mic: '', - "minimize-2": '', - minimize: '', - "minus-circle": '', - "minus-square": '', - minus: '', - monitor: '', - moon: '', - "more-horizontal": '', - "more-vertical": '', - "mouse-pointer": '', - move: '', - music: '', - "navigation-2": '', - navigation: '', - octagon: '', - package: '', - paperclip: '', - "pause-circle": '', - pause: '', - "pen-tool": '', - percent: '', - "phone-call": '', - "phone-forwarded": '', - "phone-incoming": '', - "phone-missed": '', - "phone-off": '', - "phone-outgoing": '', - phone: '', - "pie-chart": '', - "play-circle": '', - play: '', - "plus-circle": '', - "plus-square": '', - plus: '', - pocket: '', - power: '', - printer: '', - radio: '', - "refresh-ccw": '', - "refresh-cw": '', - repeat: '', - rewind: '', - "rotate-ccw": '', - "rotate-cw": '', - rss: '', - save: '', - scissors: '', - search: '', - send: '', - server: '', - settings: '', - "share-2": '', - share: '', - "shield-off": '', - shield: '', - "shopping-bag": '', - "shopping-cart": '', - shuffle: '', - sidebar: '', - "skip-back": '', - "skip-forward": '', - slack: '', - slash: '', - sliders: '', - smartphone: '', - smile: '', - speaker: '', - square: '', - star: '', - "stop-circle": '', - sun: '', - sunrise: '', - sunset: '', - tablet: '', - tag: '', - target: '', - terminal: '', - thermometer: '', - "thumbs-down": '', - "thumbs-up": '', - "toggle-left": '', - "toggle-right": '', - tool: '', - "trash-2": '', - trash: '', - trello: '', - "trending-down": '', - "trending-up": '', - triangle: '', - truck: '', - tv: '', - twitch: '', - twitter: '', - type: '', - umbrella: '', - underline: '', - unlock: '', - "upload-cloud": '', - upload: '', - "user-check": '', - "user-minus": '', - "user-plus": '', - "user-x": '', - user: '', - users: '', - "video-off": '', - video: '', - voicemail: '', - "volume-1": '', - "volume-2": '', - "volume-x": '', - volume: '', - watch: '', - "wifi-off": '', - wifi: '', - wind: '', - "x-circle": '', - "x-octagon": '', - "x-square": '', - x: '', - youtube: '', - "zap-off": '', - zap: '', - "zoom-in": '', - "zoom-out": '' - } - }, "./node_modules/classnames/dedupe.js": function (e, t, n) { - var i; - !function () { - "use strict"; - var n = function () { - function e() { - } - - function t(e, t) { - for (var n = t.length, i = 0; i < n; ++i) a(e, t[i]) - } - - e.prototype = Object.create(null); - var n = {}.hasOwnProperty, i = /\s+/; - - function a(e, a) { - if (a) { - var r = typeof a; - "string" === r ? function (e, t) { - for (var n = t.split(i), a = n.length, r = 0; r < a; ++r) e[n[r]] = !0 - }(e, a) : Array.isArray(a) ? t(e, a) : "object" === r ? function (e, t) { - for (var i in t) n.call(t, i) && (e[i] = !!t[i]) - }(e, a) : "number" === r && function (e, t) { - e[t] = !0 - }(e, a) - } - } - - return function () { - for (var n = arguments.length, i = Array(n), a = 0; a < n; a++) i[a] = arguments[a]; - var r = new e; - t(r, i); - var l = []; - for (var o in r) r[o] && l.push(o); - return l.join(" ") - } - }(); - void 0 !== e && e.exports ? e.exports = n : void 0 === (i = function () { - return n - }.apply(t, [])) || (e.exports = i) - }() - }, "./node_modules/core-js/es/array/from.js": function (e, t, n) { - n("./node_modules/core-js/modules/es.string.iterator.js"), n("./node_modules/core-js/modules/es.array.from.js"); - var i = n("./node_modules/core-js/internals/path.js"); - e.exports = i.Array.from - }, "./node_modules/core-js/internals/a-function.js": function (e, t) { - e.exports = function (e) { - if ("function" != typeof e) throw TypeError(String(e) + " is not a function"); - return e - } - }, "./node_modules/core-js/internals/an-object.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/is-object.js"); - e.exports = function (e) { - if (!i(e)) throw TypeError(String(e) + " is not an object"); - return e - } - }, "./node_modules/core-js/internals/array-from.js": function (e, t, n) { - "use strict"; - var i = n("./node_modules/core-js/internals/bind-context.js"), - a = n("./node_modules/core-js/internals/to-object.js"), - r = n("./node_modules/core-js/internals/call-with-safe-iteration-closing.js"), - l = n("./node_modules/core-js/internals/is-array-iterator-method.js"), - o = n("./node_modules/core-js/internals/to-length.js"), - s = n("./node_modules/core-js/internals/create-property.js"), - d = n("./node_modules/core-js/internals/get-iterator-method.js"); - e.exports = function (e) { - var t, n, u, c, h = a(e), m = "function" == typeof this ? this : Array, f = arguments.length, - _ = f > 1 ? arguments[1] : void 0, p = void 0 !== _, g = 0, y = d(h); - if (p && (_ = i(_, f > 2 ? arguments[2] : void 0, 2)), null == y || m == Array && l(y)) for (n = new m(t = o(h.length)); t > g; g++) s(n, g, p ? _(h[g], g) : h[g]); else for (c = y.call(h), n = new m; !(u = c.next()).done; g++) s(n, g, p ? r(c, _, [u.value, g], !0) : u.value); - return n.length = g, n - } - }, "./node_modules/core-js/internals/array-includes.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/to-indexed-object.js"), - a = n("./node_modules/core-js/internals/to-length.js"), - r = n("./node_modules/core-js/internals/to-absolute-index.js"); - e.exports = function (e) { - return function (t, n, l) { - var o, s = i(t), d = a(s.length), u = r(l, d); - if (e && n != n) { - for (; d > u;) if ((o = s[u++]) != o) return !0 - } else for (; d > u; u++) if ((e || u in s) && s[u] === n) return e || u || 0; - return !e && -1 - } - } - }, "./node_modules/core-js/internals/bind-context.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/a-function.js"); - e.exports = function (e, t, n) { - if (i(e), void 0 === t) return e; - switch (n) { - case 0: - return function () { - return e.call(t) - }; - case 1: - return function (n) { - return e.call(t, n) - }; - case 2: - return function (n, i) { - return e.call(t, n, i) - }; - case 3: - return function (n, i, a) { - return e.call(t, n, i, a) - } - } - return function () { - return e.apply(t, arguments) - } - } - }, "./node_modules/core-js/internals/call-with-safe-iteration-closing.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/an-object.js"); - e.exports = function (e, t, n, a) { - try { - return a ? t(i(n)[0], n[1]) : t(n) - } catch (t) { - var r = e.return; - throw void 0 !== r && i(r.call(e)), t - } - } - }, "./node_modules/core-js/internals/check-correctness-of-iteration.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/well-known-symbol.js")("iterator"), a = !1; - try { - var r = 0, l = { - next: function () { - return {done: !!r++} - }, return: function () { - a = !0 - } - }; - l[i] = function () { - return this - }, Array.from(l, (function () { - throw 2 - })) - } catch (e) { - } - e.exports = function (e, t) { - if (!t && !a) return !1; - var n = !1; - try { - var r = {}; - r[i] = function () { - return { - next: function () { - return {done: n = !0} - } - } - }, e(r) - } catch (e) { - } - return n - } - }, "./node_modules/core-js/internals/classof-raw.js": function (e, t) { - var n = {}.toString; - e.exports = function (e) { - return n.call(e).slice(8, -1) - } - }, "./node_modules/core-js/internals/classof.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/classof-raw.js"), - a = n("./node_modules/core-js/internals/well-known-symbol.js")("toStringTag"), - r = "Arguments" == i(function () { - return arguments - }()); - e.exports = function (e) { - var t, n, l; - return void 0 === e ? "Undefined" : null === e ? "Null" : "string" == typeof (n = function (e, t) { - try { - return e[t] - } catch (e) { - } - }(t = Object(e), a)) ? n : r ? i(t) : "Object" == (l = i(t)) && "function" == typeof t.callee ? "Arguments" : l - } - }, "./node_modules/core-js/internals/copy-constructor-properties.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/has.js"), - a = n("./node_modules/core-js/internals/own-keys.js"), - r = n("./node_modules/core-js/internals/object-get-own-property-descriptor.js"), - l = n("./node_modules/core-js/internals/object-define-property.js"); - e.exports = function (e, t) { - for (var n = a(t), o = l.f, s = r.f, d = 0; d < n.length; d++) { - var u = n[d]; - i(e, u) || o(e, u, s(t, u)) - } - } - }, "./node_modules/core-js/internals/correct-prototype-getter.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/fails.js"); - e.exports = !i((function () { - function e() { - } - - return e.prototype.constructor = null, Object.getPrototypeOf(new e) !== e.prototype - })) - }, "./node_modules/core-js/internals/create-iterator-constructor.js": function (e, t, n) { - "use strict"; - var i = n("./node_modules/core-js/internals/iterators-core.js").IteratorPrototype, - a = n("./node_modules/core-js/internals/object-create.js"), - r = n("./node_modules/core-js/internals/create-property-descriptor.js"), - l = n("./node_modules/core-js/internals/set-to-string-tag.js"), - o = n("./node_modules/core-js/internals/iterators.js"), s = function () { - return this - }; - e.exports = function (e, t, n) { - var d = t + " Iterator"; - return e.prototype = a(i, {next: r(1, n)}), l(e, d, !1, !0), o[d] = s, e - } - }, "./node_modules/core-js/internals/create-property-descriptor.js": function (e, t) { - e.exports = function (e, t) { - return {enumerable: !(1 & e), configurable: !(2 & e), writable: !(4 & e), value: t} - } - }, "./node_modules/core-js/internals/create-property.js": function (e, t, n) { - "use strict"; - var i = n("./node_modules/core-js/internals/to-primitive.js"), - a = n("./node_modules/core-js/internals/object-define-property.js"), - r = n("./node_modules/core-js/internals/create-property-descriptor.js"); - e.exports = function (e, t, n) { - var l = i(t); - l in e ? a.f(e, l, r(0, n)) : e[l] = n - } - }, "./node_modules/core-js/internals/define-iterator.js": function (e, t, n) { - "use strict"; - var i = n("./node_modules/core-js/internals/export.js"), - a = n("./node_modules/core-js/internals/create-iterator-constructor.js"), - r = n("./node_modules/core-js/internals/object-get-prototype-of.js"), - l = n("./node_modules/core-js/internals/object-set-prototype-of.js"), - o = n("./node_modules/core-js/internals/set-to-string-tag.js"), - s = n("./node_modules/core-js/internals/hide.js"), - d = n("./node_modules/core-js/internals/redefine.js"), - u = n("./node_modules/core-js/internals/well-known-symbol.js"), - c = n("./node_modules/core-js/internals/is-pure.js"), - h = n("./node_modules/core-js/internals/iterators.js"), - m = n("./node_modules/core-js/internals/iterators-core.js"), f = m.IteratorPrototype, - _ = m.BUGGY_SAFARI_ITERATORS, p = u("iterator"), g = "keys", y = "values", v = "entries", - M = function () { - return this - }; - e.exports = function (e, t, n, u, m, b, x) { - a(n, t, u); - var L, w, k, Y = function (e) { - if (e === m && E) return E; - if (!_ && e in S) return S[e]; - switch (e) { - case g: - case y: - case v: - return function () { - return new n(this, e) - } - } - return function () { - return new n(this) - } - }, D = t + " Iterator", T = !1, S = e.prototype, j = S[p] || S["@@iterator"] || m && S[m], - E = !_ && j || Y(m), H = "Array" == t && S.entries || j; - if (H && (L = r(H.call(new e)), f !== Object.prototype && L.next && (c || r(L) === f || (l ? l(L, f) : "function" != typeof L[p] && s(L, p, M)), o(L, D, !0, !0), c && (h[D] = M))), m == y && j && j.name !== y && (T = !0, E = function () { - return j.call(this) - }), c && !x || S[p] === E || s(S, p, E), h[t] = E, m) if (w = { - values: Y(y), - keys: b ? E : Y(g), - entries: Y(v) - }, x) for (k in w) (_ || T || !(k in S)) && d(S, k, w[k]); else i({ - target: t, - proto: !0, - forced: _ || T - }, w); - return w - } - }, "./node_modules/core-js/internals/descriptors.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/fails.js"); - e.exports = !i((function () { - return 7 != Object.defineProperty({}, "a", { - get: function () { - return 7 - } - }).a - })) - }, "./node_modules/core-js/internals/document-create-element.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/global.js"), - a = n("./node_modules/core-js/internals/is-object.js"), r = i.document, - l = a(r) && a(r.createElement); - e.exports = function (e) { - return l ? r.createElement(e) : {} - } - }, "./node_modules/core-js/internals/enum-bug-keys.js": function (e, t) { - e.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"] - }, "./node_modules/core-js/internals/export.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/global.js"), - a = n("./node_modules/core-js/internals/object-get-own-property-descriptor.js").f, - r = n("./node_modules/core-js/internals/hide.js"), - l = n("./node_modules/core-js/internals/redefine.js"), - o = n("./node_modules/core-js/internals/set-global.js"), - s = n("./node_modules/core-js/internals/copy-constructor-properties.js"), - d = n("./node_modules/core-js/internals/is-forced.js"); - e.exports = function (e, t) { - var n, u, c, h, m, f = e.target, _ = e.global, p = e.stat; - if (n = _ ? i : p ? i[f] || o(f, {}) : (i[f] || {}).prototype) for (u in t) { - if (h = t[u], c = e.noTargetGet ? (m = a(n, u)) && m.value : n[u], !d(_ ? u : f + (p ? "." : "#") + u, e.forced) && void 0 !== c) { - if (typeof h == typeof c) continue; - s(h, c) - } - (e.sham || c && c.sham) && r(h, "sham", !0), l(n, u, h, e) - } - } - }, "./node_modules/core-js/internals/fails.js": function (e, t) { - e.exports = function (e) { - try { - return !!e() - } catch (e) { - return !0 - } - } - }, "./node_modules/core-js/internals/function-to-string.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/shared.js"); - e.exports = i("native-function-to-string", Function.toString) - }, "./node_modules/core-js/internals/get-iterator-method.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/classof.js"), - a = n("./node_modules/core-js/internals/iterators.js"), - r = n("./node_modules/core-js/internals/well-known-symbol.js")("iterator"); - e.exports = function (e) { - if (null != e) return e[r] || e["@@iterator"] || a[i(e)] - } - }, "./node_modules/core-js/internals/global.js": function (e, t, n) { - (function (t) { - var n = "object", i = function (e) { - return e && e.Math == Math && e - }; - e.exports = i(typeof globalThis == n && globalThis) || i(typeof window == n && window) || i(typeof self == n && self) || i(typeof t == n && t) || Function("return this")() - }).call(this, n("./node_modules/webpack/buildin/global.js")) - }, "./node_modules/core-js/internals/has.js": function (e, t) { - var n = {}.hasOwnProperty; - e.exports = function (e, t) { - return n.call(e, t) - } - }, "./node_modules/core-js/internals/hidden-keys.js": function (e, t) { - e.exports = {} - }, "./node_modules/core-js/internals/hide.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/descriptors.js"), - a = n("./node_modules/core-js/internals/object-define-property.js"), - r = n("./node_modules/core-js/internals/create-property-descriptor.js"); - e.exports = i ? function (e, t, n) { - return a.f(e, t, r(1, n)) - } : function (e, t, n) { - return e[t] = n, e - } - }, "./node_modules/core-js/internals/html.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/global.js").document; - e.exports = i && i.documentElement - }, "./node_modules/core-js/internals/ie8-dom-define.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/descriptors.js"), - a = n("./node_modules/core-js/internals/fails.js"), - r = n("./node_modules/core-js/internals/document-create-element.js"); - e.exports = !i && !a((function () { - return 7 != Object.defineProperty(r("div"), "a", { - get: function () { - return 7 - } - }).a - })) - }, "./node_modules/core-js/internals/indexed-object.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/fails.js"), - a = n("./node_modules/core-js/internals/classof-raw.js"), r = "".split; - e.exports = i((function () { - return !Object("z").propertyIsEnumerable(0) - })) ? function (e) { - return "String" == a(e) ? r.call(e, "") : Object(e) - } : Object - }, "./node_modules/core-js/internals/internal-state.js": function (e, t, n) { - var i, a, r, l = n("./node_modules/core-js/internals/native-weak-map.js"), - o = n("./node_modules/core-js/internals/global.js"), - s = n("./node_modules/core-js/internals/is-object.js"), - d = n("./node_modules/core-js/internals/hide.js"), u = n("./node_modules/core-js/internals/has.js"), - c = n("./node_modules/core-js/internals/shared-key.js"), - h = n("./node_modules/core-js/internals/hidden-keys.js"), m = o.WeakMap; - if (l) { - var f = new m, _ = f.get, p = f.has, g = f.set; - i = function (e, t) { - return g.call(f, e, t), t - }, a = function (e) { - return _.call(f, e) || {} - }, r = function (e) { - return p.call(f, e) - } - } else { - var y = c("state"); - h[y] = !0, i = function (e, t) { - return d(e, y, t), t - }, a = function (e) { - return u(e, y) ? e[y] : {} - }, r = function (e) { - return u(e, y) - } - } - e.exports = { - set: i, get: a, has: r, enforce: function (e) { - return r(e) ? a(e) : i(e, {}) - }, getterFor: function (e) { - return function (t) { - var n; - if (!s(t) || (n = a(t)).type !== e) throw TypeError("Incompatible receiver, " + e + " required"); - return n - } - } - } - }, "./node_modules/core-js/internals/is-array-iterator-method.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/well-known-symbol.js"), - a = n("./node_modules/core-js/internals/iterators.js"), r = i("iterator"), l = Array.prototype; - e.exports = function (e) { - return void 0 !== e && (a.Array === e || l[r] === e) - } - }, "./node_modules/core-js/internals/is-forced.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/fails.js"), a = /#|\.prototype\./, r = function (e, t) { - var n = o[l(e)]; - return n == d || n != s && ("function" == typeof t ? i(t) : !!t) - }, l = r.normalize = function (e) { - return String(e).replace(a, ".").toLowerCase() - }, o = r.data = {}, s = r.NATIVE = "N", d = r.POLYFILL = "P"; - e.exports = r - }, "./node_modules/core-js/internals/is-object.js": function (e, t) { - e.exports = function (e) { - return "object" == typeof e ? null !== e : "function" == typeof e - } - }, "./node_modules/core-js/internals/is-pure.js": function (e, t) { - e.exports = !1 - }, "./node_modules/core-js/internals/iterators-core.js": function (e, t, n) { - "use strict"; - var i, a, r, l = n("./node_modules/core-js/internals/object-get-prototype-of.js"), - o = n("./node_modules/core-js/internals/hide.js"), s = n("./node_modules/core-js/internals/has.js"), - d = n("./node_modules/core-js/internals/well-known-symbol.js"), - u = n("./node_modules/core-js/internals/is-pure.js"), c = d("iterator"), h = !1; - [].keys && ("next" in (r = [].keys()) ? (a = l(l(r))) !== Object.prototype && (i = a) : h = !0), null == i && (i = {}), u || s(i, c) || o(i, c, (function () { - return this - })), e.exports = {IteratorPrototype: i, BUGGY_SAFARI_ITERATORS: h} - }, "./node_modules/core-js/internals/iterators.js": function (e, t) { - e.exports = {} - }, "./node_modules/core-js/internals/native-symbol.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/fails.js"); - e.exports = !!Object.getOwnPropertySymbols && !i((function () { - return !String(Symbol()) - })) - }, "./node_modules/core-js/internals/native-weak-map.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/global.js"), - a = n("./node_modules/core-js/internals/function-to-string.js"), r = i.WeakMap; - e.exports = "function" == typeof r && /native code/.test(a.call(r)) - }, "./node_modules/core-js/internals/object-create.js": function (e, t, n) { - var i = n("./node_modules/core-js/internals/an-object.js"), - a = n("./node_modules/core-js/internals/object-define-properties.js"), - r = n("./node_modules/core-js/internals/enum-bug-keys.js"), - l = n("./node_modules/core-js/internals/hidden-keys.js"), - o = n("./node_modules/core-js/internals/html.js"), - s = n("./node_modules/core-js/internals/document-create-element.js"), - d = n("./node_modules/core-js/internals/shared-key.js")("IE_PROTO"), u = function () { - }, c = function () { - var e, t = s("iframe"), n = r.length; - for (t.style.display = "none", o.appendChild(t), t.src = String("javascript:"), (e = t.contentWindow.document).open(), e.write(" \ No newline at end of file diff --git a/frontend/src/components/BadgeSelectField.vue b/frontend/src/components/BadgeSelectField.vue deleted file mode 100644 index a86dc43..0000000 --- a/frontend/src/components/BadgeSelectField.vue +++ /dev/null @@ -1,206 +0,0 @@ - - - - - \ No newline at end of file diff --git a/frontend/src/components/BaseLayout.vue b/frontend/src/components/BaseLayout.vue index ccc0e17..21b3d75 100644 --- a/frontend/src/components/BaseLayout.vue +++ b/frontend/src/components/BaseLayout.vue @@ -6,14 +6,6 @@ - -