diff --git a/.buildpacks b/.buildpacks new file mode 100644 index 00000000..3de691dd --- /dev/null +++ b/.buildpacks @@ -0,0 +1 @@ +https://github.com/heroku/heroku-buildpack-python.git \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 20248b8e..08bb9649 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,57 @@ # Changelog -## [v1.12.2](https://github.com/babybuddy/babybuddy/tree/v1.12.2) +## [v1.13.2](https://github.com/babybuddy/babybuddy/tree/v1.13.2) (2022-10-15) + +[Full Changelog](https://github.com/babybuddy/babybuddy/compare/v1.13.1...v1.13.2) + +**Implemented enhancements:** + +- Staff users added via CLI should also be superuser [\#543](https://github.com/babybuddy/babybuddy/issues/543) + +## [v1.13.1](https://github.com/babybuddy/babybuddy/tree/v1.13.1) (2022-10-13) + +[Full Changelog](https://github.com/babybuddy/babybuddy/compare/v1.13.0...v1.13.1) + +**Fixed bugs:** + +- Database Admin: 500 Error v1.13.0 [\#540](https://github.com/babybuddy/babybuddy/issues/540) + +## [v1.13.0](https://github.com/babybuddy/babybuddy/tree/v1.13.0) (2022-10-12) + +[Full Changelog](https://github.com/babybuddy/babybuddy/compare/v1.12.2...v1.13.0) + +**Implemented enhancements:** + +- Dutch Translations updated on POEditor [\#535](https://github.com/babybuddy/babybuddy/issues/535) +- Delete Inactive Timers shouldn't appear if there are no timer entries [\#533](https://github.com/babybuddy/babybuddy/issues/533) +- Create a user add management command [\#528](https://github.com/babybuddy/babybuddy/issues/528) +- French translations updated on POEditor [\#521](https://github.com/babybuddy/babybuddy/issues/521) +- Allow REMOTE\_USER authentication [\#517](https://github.com/babybuddy/babybuddy/issues/517) +- "Recently used" shouldn't appear if no tags were recently used [\#470](https://github.com/babybuddy/babybuddy/issues/470) +- Minutes instead of minutos in Spanish [\#468](https://github.com/babybuddy/babybuddy/issues/468) +- Delete \(instead of deactivate\) completed timers [\#109](https://github.com/babybuddy/babybuddy/issues/109) +- \#468 Minutes instead of minutos in Spanish [\#538](https://github.com/babybuddy/babybuddy/pull/538) ([jmunoz94](https://github.com/jmunoz94)) +- 533 - Delete Inactive Timers shouldn't appear if there are no timer entries [\#537](https://github.com/babybuddy/babybuddy/pull/537) ([earthcomfy](https://github.com/earthcomfy)) +- 470 - "Recently used" shouldn't appear if no tags were recently used [\#536](https://github.com/babybuddy/babybuddy/pull/536) ([earthcomfy](https://github.com/earthcomfy)) +- 528 - Create a user add management command [\#534](https://github.com/babybuddy/babybuddy/pull/534) ([earthcomfy](https://github.com/earthcomfy)) +- Add forward auth by way of remote user [\#531](https://github.com/babybuddy/babybuddy/pull/531) ([EnsuingRequiem](https://github.com/EnsuingRequiem)) +- Install GNU gettext at gitpod startup [\#519](https://github.com/babybuddy/babybuddy/pull/519) ([amorphobia](https://github.com/amorphobia)) +- Update Chinese translations [\#518](https://github.com/babybuddy/babybuddy/pull/518) ([amorphobia](https://github.com/amorphobia)) + +**Fixed bugs:** + +- Data mismatch [\#520](https://github.com/babybuddy/babybuddy/issues/520) +- Data mismatch - Issue \#520 [\#527](https://github.com/babybuddy/babybuddy/pull/527) ([matthieu-kr](https://github.com/matthieu-kr)) + +**Closed issues:** + +- Feeding via API returns 400 [\#522](https://github.com/babybuddy/babybuddy/issues/522) + +**Merged pull requests:** + +- Dokku [\#526](https://github.com/babybuddy/babybuddy/pull/526) ([cdubz](https://github.com/cdubz)) + +## [v1.12.2](https://github.com/babybuddy/babybuddy/tree/v1.12.2) (2022-08-04) [Full Changelog](https://github.com/babybuddy/babybuddy/compare/v1.12.1...v1.12.2) @@ -26,7 +77,6 @@ **Fixed bugs:** -- Bug - DateTime fields don't load the current values when the language is Portuguese [\#498](https://github.com/babybuddy/babybuddy/issues/498) - Set default date during picker initialization [\#505](https://github.com/babybuddy/babybuddy/pull/505) ([cdubz](https://github.com/cdubz)) **Closed issues:** diff --git a/Pipfile b/Pipfile index b724e67a..d4c4e4af 100644 --- a/Pipfile +++ b/Pipfile @@ -1,6 +1,7 @@ [[source]] verify_ssl = true url = "https://pypi.python.org/simple" +name = "pypi" [packages] boto3 = "*" diff --git a/README.md b/README.md index a18beec1..c24eaf4e 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,7 @@ adding it here or reach out via GitHub Issues or Discussions or on Gitter! - [Sandstorm app](https://github.com/babybuddy/babybuddy-sandstorm) - [iOS shortcuts](https://github.com/babybuddy/babybuddy/discussions/300) - Newborn parenting software - [part 1](https://lutzky.net/2021/10/03/software-parenting-1/), [part 2](https://lutzky.net/2021/10/05/software-parenting-2/), [part 3](https://lutzky.net/2021/10/10/software-parenting-3/) (API, buttons, LCD information screen!) +- [Quick Entry Keypad for BabyBuddy and Home Assistant with ESPHome](https://github.com/sfgabe/OITProjects/tree/master/Baby_Buddy_Keypad) ## Reporting Vulnerabilities diff --git a/babybuddy/__init__.py b/babybuddy/__init__.py index 6b9bb4b1..c2548f5a 100644 --- a/babybuddy/__init__.py +++ b/babybuddy/__init__.py @@ -46,7 +46,7 @@ """ # noqa __title__ = "Baby Buddy" -__version__ = "1.12.2" +__version__ = "1.13.2" __license__ = "BSD 2-Clause" VERSION = __version__ diff --git a/babybuddy/forms.py b/babybuddy/forms.py index 9c91cb5b..c33c2b0a 100644 --- a/babybuddy/forms.py +++ b/babybuddy/forms.py @@ -20,6 +20,7 @@ class UserAddForm(UserCreationForm): def save(self, commit=True): user = super(UserAddForm, self).save(commit=False) + # All Baby Buddy users are superusers. user.is_superuser = True if commit: user.save() diff --git a/babybuddy/management/commands/createuser.py b/babybuddy/management/commands/createuser.py new file mode 100644 index 00000000..8d8bb1fd --- /dev/null +++ b/babybuddy/management/commands/createuser.py @@ -0,0 +1,166 @@ +# -*- coding: utf-8 -*- +""" +Management utility to create users + +Example usage: + + manage.py createuser \ + --username test \ + --email test@test.test \ + --is-staff +""" +import sys +import getpass + +from django.contrib.auth import get_user_model +from django.contrib.auth.password_validation import validate_password +from django.core import exceptions +from django.core.management.base import BaseCommand, CommandError +from django.db import DEFAULT_DB_ALIAS +from django.utils.functional import cached_property +from django.utils.text import capfirst + + +class NotRunningInTTYException(Exception): + pass + + +class Command(BaseCommand): + help = "Used to create a user" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.UserModel = get_user_model() + self.username_field = self.UserModel._meta.get_field( + self.UserModel.USERNAME_FIELD + ) + + def add_arguments(self, parser): + parser.add_argument( + f"--{self.UserModel.USERNAME_FIELD}", + help="Specifies the login for a user.", + ) + parser.add_argument( + "--email", + dest="email", + default="", + help="Specifies the email for the user. Optional.", + ) + parser.add_argument( + "--password", + dest="password", + help="Specifies the password for the user. Optional.", + ) + parser.add_argument( + "--is-staff", + dest="is_staff", + action="store_true", + default=False, + help="Specifies the staff status for the user. Default is False.", + ) + + def handle(self, *args, **options): + username = options.get(self.UserModel.USERNAME_FIELD) + password = options.get("password") + + user_data = {} + user_password = "" + verbose_field_name = self.username_field.verbose_name + + try: + error_msg = self._validate_username( + username, verbose_field_name, DEFAULT_DB_ALIAS + ) + if error_msg: + raise CommandError(error_msg) + + user_data[self.UserModel.USERNAME_FIELD] = username + + # Prompt for a password interactively (if password not set via arg) + while password is None: + password = getpass.getpass() + password2 = getpass.getpass("Password (again): ") + + if password.strip() == "": + self.stderr.write("Error: Blank passwords aren't allowed.") + password = None + # Don't validate blank passwords. + continue + + if password != password2: + self.stderr.write("Error: Your passwords didn't match.") + password = None + password2 = None + # Don't validate passwords that don't match. + continue + + try: + validate_password(password2, self.UserModel(**user_data)) + except exceptions.ValidationError as err: + self.stderr.write("\n".join(err.messages)) + response = input( + "Bypass password validation and create user anyway? [y/N]: " + ) + if response.lower() != "y": + password = None + password2 = None + continue + + user_password = password + + user = self.UserModel._default_manager.db_manager( + DEFAULT_DB_ALIAS + ).create_user(**user_data, password=user_password) + user.email = options.get("email") + user.is_staff = options.get("is_staff") + # All Baby Buddy users are superusers. + user.is_superuser = True + user.save() + + if options.get("verbosity") > 0: + self.stdout.write(f"User {username} created successfully.") + + except KeyboardInterrupt: + self.stderr.write("\nOperation cancelled.") + sys.exit(1) + except exceptions.ValidationError as e: + raise CommandError("; ".join(e.messages)) + except NotRunningInTTYException: + self.stdout.write( + "User creation skipped due to not running in a TTY. " + "You can run `manage.py createuser` in your project " + "to create one manually." + ) + + @cached_property + def username_is_unique(self): + """ + Check if username is unique. + """ + if self.username_field.unique: + return True + return any( + len(unique_constraint.fields) == 1 + and unique_constraint.fields[0] == self.username_field.name + for unique_constraint in self.UserModel._meta.total_unique_constraints + ) + + def _validate_username(self, username, verbose_field_name, database): + """ + Validate username. If invalid, return a string error message. + """ + if self.username_is_unique: + try: + self.UserModel._default_manager.db_manager(database).get_by_natural_key( + username + ) + except self.UserModel.DoesNotExist: + pass + else: + return f"Error: The {verbose_field_name} is already taken." + if not username: + return f"{capfirst(verbose_field_name)} cannot be blank." + try: + self.username_field.clean(username, None) + except exceptions.ValidationError as e: + return "; ".join(e.messages) diff --git a/babybuddy/middleware.py b/babybuddy/middleware.py index 362f8c0f..9af7cb70 100644 --- a/babybuddy/middleware.py +++ b/babybuddy/middleware.py @@ -1,4 +1,5 @@ -import time +from os import getenv +from time import time import pytz @@ -6,6 +7,7 @@ from django.conf import settings from django.utils import timezone, translation from django.conf.locale.en import formats as formats_en_us from django.conf.locale.en_GB import formats as formats_en_gb +from django.contrib.auth.middleware import RemoteUserMiddleware def update_en_us_date_formats(): @@ -134,12 +136,20 @@ class RollingSessionMiddleware: session_refresh = request.session.get("session_refresh") if session_refresh: try: - delta = int(time.time()) - session_refresh + delta = int(time()) - session_refresh except (ValueError, TypeError): delta = settings.ROLLING_SESSION_REFRESH + 1 if delta > settings.ROLLING_SESSION_REFRESH: - request.session["session_refresh"] = int(time.time()) + request.session["session_refresh"] = int(time()) request.session.set_expiry(settings.SESSION_COOKIE_AGE) else: - request.session["session_refresh"] = int(time.time()) + request.session["session_refresh"] = int(time()) return self.get_response(request) + + +class CustomRemoteUser(RemoteUserMiddleware): + """ + Middleware used for remote authentication when `REVERSE_PROXY_AUTH` is True. + """ + + header = getenv("PROXY_HEADER", "HTTP_REMOTE_USER") diff --git a/babybuddy/migrations/0023_alter_settings_timezone.py b/babybuddy/migrations/0023_alter_settings_timezone.py new file mode 100644 index 00000000..c4b44bd3 --- /dev/null +++ b/babybuddy/migrations/0023_alter_settings_timezone.py @@ -0,0 +1,470 @@ +# Generated by Django 4.1.2 on 2022-10-12 02:19 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("babybuddy", "0022_alter_settings_language"), + ] + + operations = [ + migrations.AlterField( + model_name="settings", + name="timezone", + field=models.CharField( + choices=[ + ("Africa/Abidjan", "Africa/Abidjan"), + ("Africa/Accra", "Africa/Accra"), + ("Africa/Addis_Ababa", "Africa/Addis_Ababa"), + ("Africa/Algiers", "Africa/Algiers"), + ("Africa/Asmara", "Africa/Asmara"), + ("Africa/Bamako", "Africa/Bamako"), + ("Africa/Bangui", "Africa/Bangui"), + ("Africa/Banjul", "Africa/Banjul"), + ("Africa/Bissau", "Africa/Bissau"), + ("Africa/Blantyre", "Africa/Blantyre"), + ("Africa/Brazzaville", "Africa/Brazzaville"), + ("Africa/Bujumbura", "Africa/Bujumbura"), + ("Africa/Cairo", "Africa/Cairo"), + ("Africa/Casablanca", "Africa/Casablanca"), + ("Africa/Ceuta", "Africa/Ceuta"), + ("Africa/Conakry", "Africa/Conakry"), + ("Africa/Dakar", "Africa/Dakar"), + ("Africa/Dar_es_Salaam", "Africa/Dar_es_Salaam"), + ("Africa/Djibouti", "Africa/Djibouti"), + ("Africa/Douala", "Africa/Douala"), + ("Africa/El_Aaiun", "Africa/El_Aaiun"), + ("Africa/Freetown", "Africa/Freetown"), + ("Africa/Gaborone", "Africa/Gaborone"), + ("Africa/Harare", "Africa/Harare"), + ("Africa/Johannesburg", "Africa/Johannesburg"), + ("Africa/Juba", "Africa/Juba"), + ("Africa/Kampala", "Africa/Kampala"), + ("Africa/Khartoum", "Africa/Khartoum"), + ("Africa/Kigali", "Africa/Kigali"), + ("Africa/Kinshasa", "Africa/Kinshasa"), + ("Africa/Lagos", "Africa/Lagos"), + ("Africa/Libreville", "Africa/Libreville"), + ("Africa/Lome", "Africa/Lome"), + ("Africa/Luanda", "Africa/Luanda"), + ("Africa/Lubumbashi", "Africa/Lubumbashi"), + ("Africa/Lusaka", "Africa/Lusaka"), + ("Africa/Malabo", "Africa/Malabo"), + ("Africa/Maputo", "Africa/Maputo"), + ("Africa/Maseru", "Africa/Maseru"), + ("Africa/Mbabane", "Africa/Mbabane"), + ("Africa/Mogadishu", "Africa/Mogadishu"), + ("Africa/Monrovia", "Africa/Monrovia"), + ("Africa/Nairobi", "Africa/Nairobi"), + ("Africa/Ndjamena", "Africa/Ndjamena"), + ("Africa/Niamey", "Africa/Niamey"), + ("Africa/Nouakchott", "Africa/Nouakchott"), + ("Africa/Ouagadougou", "Africa/Ouagadougou"), + ("Africa/Porto-Novo", "Africa/Porto-Novo"), + ("Africa/Sao_Tome", "Africa/Sao_Tome"), + ("Africa/Tripoli", "Africa/Tripoli"), + ("Africa/Tunis", "Africa/Tunis"), + ("Africa/Windhoek", "Africa/Windhoek"), + ("America/Adak", "America/Adak"), + ("America/Anchorage", "America/Anchorage"), + ("America/Anguilla", "America/Anguilla"), + ("America/Antigua", "America/Antigua"), + ("America/Araguaina", "America/Araguaina"), + ( + "America/Argentina/Buenos_Aires", + "America/Argentina/Buenos_Aires", + ), + ("America/Argentina/Catamarca", "America/Argentina/Catamarca"), + ("America/Argentina/Cordoba", "America/Argentina/Cordoba"), + ("America/Argentina/Jujuy", "America/Argentina/Jujuy"), + ("America/Argentina/La_Rioja", "America/Argentina/La_Rioja"), + ("America/Argentina/Mendoza", "America/Argentina/Mendoza"), + ( + "America/Argentina/Rio_Gallegos", + "America/Argentina/Rio_Gallegos", + ), + ("America/Argentina/Salta", "America/Argentina/Salta"), + ("America/Argentina/San_Juan", "America/Argentina/San_Juan"), + ("America/Argentina/San_Luis", "America/Argentina/San_Luis"), + ("America/Argentina/Tucuman", "America/Argentina/Tucuman"), + ("America/Argentina/Ushuaia", "America/Argentina/Ushuaia"), + ("America/Aruba", "America/Aruba"), + ("America/Asuncion", "America/Asuncion"), + ("America/Atikokan", "America/Atikokan"), + ("America/Bahia", "America/Bahia"), + ("America/Bahia_Banderas", "America/Bahia_Banderas"), + ("America/Barbados", "America/Barbados"), + ("America/Belem", "America/Belem"), + ("America/Belize", "America/Belize"), + ("America/Blanc-Sablon", "America/Blanc-Sablon"), + ("America/Boa_Vista", "America/Boa_Vista"), + ("America/Bogota", "America/Bogota"), + ("America/Boise", "America/Boise"), + ("America/Cambridge_Bay", "America/Cambridge_Bay"), + ("America/Campo_Grande", "America/Campo_Grande"), + ("America/Cancun", "America/Cancun"), + ("America/Caracas", "America/Caracas"), + ("America/Cayenne", "America/Cayenne"), + ("America/Cayman", "America/Cayman"), + ("America/Chicago", "America/Chicago"), + ("America/Chihuahua", "America/Chihuahua"), + ("America/Costa_Rica", "America/Costa_Rica"), + ("America/Creston", "America/Creston"), + ("America/Cuiaba", "America/Cuiaba"), + ("America/Curacao", "America/Curacao"), + ("America/Danmarkshavn", "America/Danmarkshavn"), + ("America/Dawson", "America/Dawson"), + ("America/Dawson_Creek", "America/Dawson_Creek"), + ("America/Denver", "America/Denver"), + ("America/Detroit", "America/Detroit"), + ("America/Dominica", "America/Dominica"), + ("America/Edmonton", "America/Edmonton"), + ("America/Eirunepe", "America/Eirunepe"), + ("America/El_Salvador", "America/El_Salvador"), + ("America/Fort_Nelson", "America/Fort_Nelson"), + ("America/Fortaleza", "America/Fortaleza"), + ("America/Glace_Bay", "America/Glace_Bay"), + ("America/Goose_Bay", "America/Goose_Bay"), + ("America/Grand_Turk", "America/Grand_Turk"), + ("America/Grenada", "America/Grenada"), + ("America/Guadeloupe", "America/Guadeloupe"), + ("America/Guatemala", "America/Guatemala"), + ("America/Guayaquil", "America/Guayaquil"), + ("America/Guyana", "America/Guyana"), + ("America/Halifax", "America/Halifax"), + ("America/Havana", "America/Havana"), + ("America/Hermosillo", "America/Hermosillo"), + ("America/Indiana/Indianapolis", "America/Indiana/Indianapolis"), + ("America/Indiana/Knox", "America/Indiana/Knox"), + ("America/Indiana/Marengo", "America/Indiana/Marengo"), + ("America/Indiana/Petersburg", "America/Indiana/Petersburg"), + ("America/Indiana/Tell_City", "America/Indiana/Tell_City"), + ("America/Indiana/Vevay", "America/Indiana/Vevay"), + ("America/Indiana/Vincennes", "America/Indiana/Vincennes"), + ("America/Indiana/Winamac", "America/Indiana/Winamac"), + ("America/Inuvik", "America/Inuvik"), + ("America/Iqaluit", "America/Iqaluit"), + ("America/Jamaica", "America/Jamaica"), + ("America/Juneau", "America/Juneau"), + ("America/Kentucky/Louisville", "America/Kentucky/Louisville"), + ("America/Kentucky/Monticello", "America/Kentucky/Monticello"), + ("America/Kralendijk", "America/Kralendijk"), + ("America/La_Paz", "America/La_Paz"), + ("America/Lima", "America/Lima"), + ("America/Los_Angeles", "America/Los_Angeles"), + ("America/Lower_Princes", "America/Lower_Princes"), + ("America/Maceio", "America/Maceio"), + ("America/Managua", "America/Managua"), + ("America/Manaus", "America/Manaus"), + ("America/Marigot", "America/Marigot"), + ("America/Martinique", "America/Martinique"), + ("America/Matamoros", "America/Matamoros"), + ("America/Mazatlan", "America/Mazatlan"), + ("America/Menominee", "America/Menominee"), + ("America/Merida", "America/Merida"), + ("America/Metlakatla", "America/Metlakatla"), + ("America/Mexico_City", "America/Mexico_City"), + ("America/Miquelon", "America/Miquelon"), + ("America/Moncton", "America/Moncton"), + ("America/Monterrey", "America/Monterrey"), + ("America/Montevideo", "America/Montevideo"), + ("America/Montserrat", "America/Montserrat"), + ("America/Nassau", "America/Nassau"), + ("America/New_York", "America/New_York"), + ("America/Nipigon", "America/Nipigon"), + ("America/Nome", "America/Nome"), + ("America/Noronha", "America/Noronha"), + ("America/North_Dakota/Beulah", "America/North_Dakota/Beulah"), + ("America/North_Dakota/Center", "America/North_Dakota/Center"), + ( + "America/North_Dakota/New_Salem", + "America/North_Dakota/New_Salem", + ), + ("America/Nuuk", "America/Nuuk"), + ("America/Ojinaga", "America/Ojinaga"), + ("America/Panama", "America/Panama"), + ("America/Pangnirtung", "America/Pangnirtung"), + ("America/Paramaribo", "America/Paramaribo"), + ("America/Phoenix", "America/Phoenix"), + ("America/Port-au-Prince", "America/Port-au-Prince"), + ("America/Port_of_Spain", "America/Port_of_Spain"), + ("America/Porto_Velho", "America/Porto_Velho"), + ("America/Puerto_Rico", "America/Puerto_Rico"), + ("America/Punta_Arenas", "America/Punta_Arenas"), + ("America/Rainy_River", "America/Rainy_River"), + ("America/Rankin_Inlet", "America/Rankin_Inlet"), + ("America/Recife", "America/Recife"), + ("America/Regina", "America/Regina"), + ("America/Resolute", "America/Resolute"), + ("America/Rio_Branco", "America/Rio_Branco"), + ("America/Santarem", "America/Santarem"), + ("America/Santiago", "America/Santiago"), + ("America/Santo_Domingo", "America/Santo_Domingo"), + ("America/Sao_Paulo", "America/Sao_Paulo"), + ("America/Scoresbysund", "America/Scoresbysund"), + ("America/Sitka", "America/Sitka"), + ("America/St_Barthelemy", "America/St_Barthelemy"), + ("America/St_Johns", "America/St_Johns"), + ("America/St_Kitts", "America/St_Kitts"), + ("America/St_Lucia", "America/St_Lucia"), + ("America/St_Thomas", "America/St_Thomas"), + ("America/St_Vincent", "America/St_Vincent"), + ("America/Swift_Current", "America/Swift_Current"), + ("America/Tegucigalpa", "America/Tegucigalpa"), + ("America/Thule", "America/Thule"), + ("America/Thunder_Bay", "America/Thunder_Bay"), + ("America/Tijuana", "America/Tijuana"), + ("America/Toronto", "America/Toronto"), + ("America/Tortola", "America/Tortola"), + ("America/Vancouver", "America/Vancouver"), + ("America/Whitehorse", "America/Whitehorse"), + ("America/Winnipeg", "America/Winnipeg"), + ("America/Yakutat", "America/Yakutat"), + ("America/Yellowknife", "America/Yellowknife"), + ("Antarctica/Casey", "Antarctica/Casey"), + ("Antarctica/Davis", "Antarctica/Davis"), + ("Antarctica/DumontDUrville", "Antarctica/DumontDUrville"), + ("Antarctica/Macquarie", "Antarctica/Macquarie"), + ("Antarctica/Mawson", "Antarctica/Mawson"), + ("Antarctica/McMurdo", "Antarctica/McMurdo"), + ("Antarctica/Palmer", "Antarctica/Palmer"), + ("Antarctica/Rothera", "Antarctica/Rothera"), + ("Antarctica/Syowa", "Antarctica/Syowa"), + ("Antarctica/Troll", "Antarctica/Troll"), + ("Antarctica/Vostok", "Antarctica/Vostok"), + ("Arctic/Longyearbyen", "Arctic/Longyearbyen"), + ("Asia/Aden", "Asia/Aden"), + ("Asia/Almaty", "Asia/Almaty"), + ("Asia/Amman", "Asia/Amman"), + ("Asia/Anadyr", "Asia/Anadyr"), + ("Asia/Aqtau", "Asia/Aqtau"), + ("Asia/Aqtobe", "Asia/Aqtobe"), + ("Asia/Ashgabat", "Asia/Ashgabat"), + ("Asia/Atyrau", "Asia/Atyrau"), + ("Asia/Baghdad", "Asia/Baghdad"), + ("Asia/Bahrain", "Asia/Bahrain"), + ("Asia/Baku", "Asia/Baku"), + ("Asia/Bangkok", "Asia/Bangkok"), + ("Asia/Barnaul", "Asia/Barnaul"), + ("Asia/Beirut", "Asia/Beirut"), + ("Asia/Bishkek", "Asia/Bishkek"), + ("Asia/Brunei", "Asia/Brunei"), + ("Asia/Chita", "Asia/Chita"), + ("Asia/Choibalsan", "Asia/Choibalsan"), + ("Asia/Colombo", "Asia/Colombo"), + ("Asia/Damascus", "Asia/Damascus"), + ("Asia/Dhaka", "Asia/Dhaka"), + ("Asia/Dili", "Asia/Dili"), + ("Asia/Dubai", "Asia/Dubai"), + ("Asia/Dushanbe", "Asia/Dushanbe"), + ("Asia/Famagusta", "Asia/Famagusta"), + ("Asia/Gaza", "Asia/Gaza"), + ("Asia/Hebron", "Asia/Hebron"), + ("Asia/Ho_Chi_Minh", "Asia/Ho_Chi_Minh"), + ("Asia/Hong_Kong", "Asia/Hong_Kong"), + ("Asia/Hovd", "Asia/Hovd"), + ("Asia/Irkutsk", "Asia/Irkutsk"), + ("Asia/Jakarta", "Asia/Jakarta"), + ("Asia/Jayapura", "Asia/Jayapura"), + ("Asia/Jerusalem", "Asia/Jerusalem"), + ("Asia/Kabul", "Asia/Kabul"), + ("Asia/Kamchatka", "Asia/Kamchatka"), + ("Asia/Karachi", "Asia/Karachi"), + ("Asia/Kathmandu", "Asia/Kathmandu"), + ("Asia/Khandyga", "Asia/Khandyga"), + ("Asia/Kolkata", "Asia/Kolkata"), + ("Asia/Krasnoyarsk", "Asia/Krasnoyarsk"), + ("Asia/Kuala_Lumpur", "Asia/Kuala_Lumpur"), + ("Asia/Kuching", "Asia/Kuching"), + ("Asia/Kuwait", "Asia/Kuwait"), + ("Asia/Macau", "Asia/Macau"), + ("Asia/Magadan", "Asia/Magadan"), + ("Asia/Makassar", "Asia/Makassar"), + ("Asia/Manila", "Asia/Manila"), + ("Asia/Muscat", "Asia/Muscat"), + ("Asia/Nicosia", "Asia/Nicosia"), + ("Asia/Novokuznetsk", "Asia/Novokuznetsk"), + ("Asia/Novosibirsk", "Asia/Novosibirsk"), + ("Asia/Omsk", "Asia/Omsk"), + ("Asia/Oral", "Asia/Oral"), + ("Asia/Phnom_Penh", "Asia/Phnom_Penh"), + ("Asia/Pontianak", "Asia/Pontianak"), + ("Asia/Pyongyang", "Asia/Pyongyang"), + ("Asia/Qatar", "Asia/Qatar"), + ("Asia/Qostanay", "Asia/Qostanay"), + ("Asia/Qyzylorda", "Asia/Qyzylorda"), + ("Asia/Riyadh", "Asia/Riyadh"), + ("Asia/Sakhalin", "Asia/Sakhalin"), + ("Asia/Samarkand", "Asia/Samarkand"), + ("Asia/Seoul", "Asia/Seoul"), + ("Asia/Shanghai", "Asia/Shanghai"), + ("Asia/Singapore", "Asia/Singapore"), + ("Asia/Srednekolymsk", "Asia/Srednekolymsk"), + ("Asia/Taipei", "Asia/Taipei"), + ("Asia/Tashkent", "Asia/Tashkent"), + ("Asia/Tbilisi", "Asia/Tbilisi"), + ("Asia/Tehran", "Asia/Tehran"), + ("Asia/Thimphu", "Asia/Thimphu"), + ("Asia/Tokyo", "Asia/Tokyo"), + ("Asia/Tomsk", "Asia/Tomsk"), + ("Asia/Ulaanbaatar", "Asia/Ulaanbaatar"), + ("Asia/Urumqi", "Asia/Urumqi"), + ("Asia/Ust-Nera", "Asia/Ust-Nera"), + ("Asia/Vientiane", "Asia/Vientiane"), + ("Asia/Vladivostok", "Asia/Vladivostok"), + ("Asia/Yakutsk", "Asia/Yakutsk"), + ("Asia/Yangon", "Asia/Yangon"), + ("Asia/Yekaterinburg", "Asia/Yekaterinburg"), + ("Asia/Yerevan", "Asia/Yerevan"), + ("Atlantic/Azores", "Atlantic/Azores"), + ("Atlantic/Bermuda", "Atlantic/Bermuda"), + ("Atlantic/Canary", "Atlantic/Canary"), + ("Atlantic/Cape_Verde", "Atlantic/Cape_Verde"), + ("Atlantic/Faroe", "Atlantic/Faroe"), + ("Atlantic/Madeira", "Atlantic/Madeira"), + ("Atlantic/Reykjavik", "Atlantic/Reykjavik"), + ("Atlantic/South_Georgia", "Atlantic/South_Georgia"), + ("Atlantic/St_Helena", "Atlantic/St_Helena"), + ("Atlantic/Stanley", "Atlantic/Stanley"), + ("Australia/Adelaide", "Australia/Adelaide"), + ("Australia/Brisbane", "Australia/Brisbane"), + ("Australia/Broken_Hill", "Australia/Broken_Hill"), + ("Australia/Darwin", "Australia/Darwin"), + ("Australia/Eucla", "Australia/Eucla"), + ("Australia/Hobart", "Australia/Hobart"), + ("Australia/Lindeman", "Australia/Lindeman"), + ("Australia/Lord_Howe", "Australia/Lord_Howe"), + ("Australia/Melbourne", "Australia/Melbourne"), + ("Australia/Perth", "Australia/Perth"), + ("Australia/Sydney", "Australia/Sydney"), + ("Canada/Atlantic", "Canada/Atlantic"), + ("Canada/Central", "Canada/Central"), + ("Canada/Eastern", "Canada/Eastern"), + ("Canada/Mountain", "Canada/Mountain"), + ("Canada/Newfoundland", "Canada/Newfoundland"), + ("Canada/Pacific", "Canada/Pacific"), + ("Europe/Amsterdam", "Europe/Amsterdam"), + ("Europe/Andorra", "Europe/Andorra"), + ("Europe/Astrakhan", "Europe/Astrakhan"), + ("Europe/Athens", "Europe/Athens"), + ("Europe/Belgrade", "Europe/Belgrade"), + ("Europe/Berlin", "Europe/Berlin"), + ("Europe/Bratislava", "Europe/Bratislava"), + ("Europe/Brussels", "Europe/Brussels"), + ("Europe/Bucharest", "Europe/Bucharest"), + ("Europe/Budapest", "Europe/Budapest"), + ("Europe/Busingen", "Europe/Busingen"), + ("Europe/Chisinau", "Europe/Chisinau"), + ("Europe/Copenhagen", "Europe/Copenhagen"), + ("Europe/Dublin", "Europe/Dublin"), + ("Europe/Gibraltar", "Europe/Gibraltar"), + ("Europe/Guernsey", "Europe/Guernsey"), + ("Europe/Helsinki", "Europe/Helsinki"), + ("Europe/Isle_of_Man", "Europe/Isle_of_Man"), + ("Europe/Istanbul", "Europe/Istanbul"), + ("Europe/Jersey", "Europe/Jersey"), + ("Europe/Kaliningrad", "Europe/Kaliningrad"), + ("Europe/Kirov", "Europe/Kirov"), + ("Europe/Kyiv", "Europe/Kyiv"), + ("Europe/Lisbon", "Europe/Lisbon"), + ("Europe/Ljubljana", "Europe/Ljubljana"), + ("Europe/London", "Europe/London"), + ("Europe/Luxembourg", "Europe/Luxembourg"), + ("Europe/Madrid", "Europe/Madrid"), + ("Europe/Malta", "Europe/Malta"), + ("Europe/Mariehamn", "Europe/Mariehamn"), + ("Europe/Minsk", "Europe/Minsk"), + ("Europe/Monaco", "Europe/Monaco"), + ("Europe/Moscow", "Europe/Moscow"), + ("Europe/Oslo", "Europe/Oslo"), + ("Europe/Paris", "Europe/Paris"), + ("Europe/Podgorica", "Europe/Podgorica"), + ("Europe/Prague", "Europe/Prague"), + ("Europe/Riga", "Europe/Riga"), + ("Europe/Rome", "Europe/Rome"), + ("Europe/Samara", "Europe/Samara"), + ("Europe/San_Marino", "Europe/San_Marino"), + ("Europe/Sarajevo", "Europe/Sarajevo"), + ("Europe/Saratov", "Europe/Saratov"), + ("Europe/Simferopol", "Europe/Simferopol"), + ("Europe/Skopje", "Europe/Skopje"), + ("Europe/Sofia", "Europe/Sofia"), + ("Europe/Stockholm", "Europe/Stockholm"), + ("Europe/Tallinn", "Europe/Tallinn"), + ("Europe/Tirane", "Europe/Tirane"), + ("Europe/Ulyanovsk", "Europe/Ulyanovsk"), + ("Europe/Vaduz", "Europe/Vaduz"), + ("Europe/Vatican", "Europe/Vatican"), + ("Europe/Vienna", "Europe/Vienna"), + ("Europe/Vilnius", "Europe/Vilnius"), + ("Europe/Volgograd", "Europe/Volgograd"), + ("Europe/Warsaw", "Europe/Warsaw"), + ("Europe/Zagreb", "Europe/Zagreb"), + ("Europe/Zurich", "Europe/Zurich"), + ("GMT", "GMT"), + ("Indian/Antananarivo", "Indian/Antananarivo"), + ("Indian/Chagos", "Indian/Chagos"), + ("Indian/Christmas", "Indian/Christmas"), + ("Indian/Cocos", "Indian/Cocos"), + ("Indian/Comoro", "Indian/Comoro"), + ("Indian/Kerguelen", "Indian/Kerguelen"), + ("Indian/Mahe", "Indian/Mahe"), + ("Indian/Maldives", "Indian/Maldives"), + ("Indian/Mauritius", "Indian/Mauritius"), + ("Indian/Mayotte", "Indian/Mayotte"), + ("Indian/Reunion", "Indian/Reunion"), + ("Pacific/Apia", "Pacific/Apia"), + ("Pacific/Auckland", "Pacific/Auckland"), + ("Pacific/Bougainville", "Pacific/Bougainville"), + ("Pacific/Chatham", "Pacific/Chatham"), + ("Pacific/Chuuk", "Pacific/Chuuk"), + ("Pacific/Easter", "Pacific/Easter"), + ("Pacific/Efate", "Pacific/Efate"), + ("Pacific/Fakaofo", "Pacific/Fakaofo"), + ("Pacific/Fiji", "Pacific/Fiji"), + ("Pacific/Funafuti", "Pacific/Funafuti"), + ("Pacific/Galapagos", "Pacific/Galapagos"), + ("Pacific/Gambier", "Pacific/Gambier"), + ("Pacific/Guadalcanal", "Pacific/Guadalcanal"), + ("Pacific/Guam", "Pacific/Guam"), + ("Pacific/Honolulu", "Pacific/Honolulu"), + ("Pacific/Kanton", "Pacific/Kanton"), + ("Pacific/Kiritimati", "Pacific/Kiritimati"), + ("Pacific/Kosrae", "Pacific/Kosrae"), + ("Pacific/Kwajalein", "Pacific/Kwajalein"), + ("Pacific/Majuro", "Pacific/Majuro"), + ("Pacific/Marquesas", "Pacific/Marquesas"), + ("Pacific/Midway", "Pacific/Midway"), + ("Pacific/Nauru", "Pacific/Nauru"), + ("Pacific/Niue", "Pacific/Niue"), + ("Pacific/Norfolk", "Pacific/Norfolk"), + ("Pacific/Noumea", "Pacific/Noumea"), + ("Pacific/Pago_Pago", "Pacific/Pago_Pago"), + ("Pacific/Palau", "Pacific/Palau"), + ("Pacific/Pitcairn", "Pacific/Pitcairn"), + ("Pacific/Pohnpei", "Pacific/Pohnpei"), + ("Pacific/Port_Moresby", "Pacific/Port_Moresby"), + ("Pacific/Rarotonga", "Pacific/Rarotonga"), + ("Pacific/Saipan", "Pacific/Saipan"), + ("Pacific/Tahiti", "Pacific/Tahiti"), + ("Pacific/Tarawa", "Pacific/Tarawa"), + ("Pacific/Tongatapu", "Pacific/Tongatapu"), + ("Pacific/Wake", "Pacific/Wake"), + ("Pacific/Wallis", "Pacific/Wallis"), + ("US/Alaska", "US/Alaska"), + ("US/Arizona", "US/Arizona"), + ("US/Central", "US/Central"), + ("US/Eastern", "US/Eastern"), + ("US/Hawaii", "US/Hawaii"), + ("US/Mountain", "US/Mountain"), + ("US/Pacific", "US/Pacific"), + ("UTC", "UTC"), + ], + default="UTC", + max_length=100, + verbose_name="Timezone", + ), + ), + ] diff --git a/babybuddy/settings/base.py b/babybuddy/settings/base.py index 27d813e8..5b026e50 100644 --- a/babybuddy/settings/base.py +++ b/babybuddy/settings/base.py @@ -144,6 +144,14 @@ LOGIN_URL = "babybuddy:login" LOGOUT_REDIRECT_URL = "babybuddy:login" +REVERSE_PROXY_AUTH = bool(strtobool(os.environ.get("REVERSE_PROXY_AUTH") or "False")) + +# Use remote user middleware when reverse proxy auth is enabled. +if REVERSE_PROXY_AUTH: + # Must appear AFTER AuthenticationMiddleware. + MIDDLEWARE.append("babybuddy.middleware.CustomRemoteUser") + AUTHENTICATION_BACKENDS.append("django.contrib.auth.backends.RemoteUserBackend") + # Timezone # https://docs.djangoproject.com/en/4.0/topics/i18n/timezones/ diff --git a/babybuddy/tests/tests_commands.py b/babybuddy/tests/tests_commands.py index ccdb70cd..43c18461 100644 --- a/babybuddy/tests/tests_commands.py +++ b/babybuddy/tests/tests_commands.py @@ -22,3 +22,24 @@ class CommandsTestCase(TransactionTestCase): call_command("reset", verbosity=0, interactive=False) self.assertIsInstance(User.objects.get(username="admin"), User) self.assertEqual(Child.objects.count(), 1) + + def test_createuser(self): + call_command( + "createuser", + username="test", + email="test@test.test", + password="test", + verbosity=0, + ) + self.assertIsInstance(User.objects.get(username="test"), User) + self.assertFalse(User.objects.filter(username="test", is_staff=True)) + call_command( + "createuser", + "--is-staff", + username="testadmin", + email="testadmin@testadmin.testadmin", + password="test", + verbosity=0, + ) + self.assertIsInstance(User.objects.get(username="testadmin"), User) + self.assertTrue(User.objects.filter(username="testadmin", is_staff=True)) diff --git a/babybuddy/tests/tests_reverse_proxy_auth.py b/babybuddy/tests/tests_reverse_proxy_auth.py new file mode 100644 index 00000000..22b6bac2 --- /dev/null +++ b/babybuddy/tests/tests_reverse_proxy_auth.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +from django.core.management import call_command +from django.test import Client as HttpClient, TestCase, modify_settings + + +class ReverseProxyAuthTestCase(TestCase): + """ + Notes: + - A class method cannot be used to establish the HTTP client because of the + settings overrides required for these tests. + - Overriding the `REVERSE_PROXY_AUTH` environment variable directly is not + possible because environments variables are only evaluated once for the run. + """ + + def test_remote_user_authentication_disabled(self): + call_command("migrate", verbosity=0) + c = HttpClient() + response = c.get("/welcome/", HTTP_REMOTE_USER="admin", follow=True) + self.assertRedirects(response, "/login/?next=/welcome/") + + @modify_settings( + MIDDLEWARE={"append": "babybuddy.middleware.CustomRemoteUser"}, + AUTHENTICATION_BACKENDS={ + "append": "django.contrib.auth.backends.RemoteUserBackend" + }, + ) + def test_remote_user_authentication_enabled(self): + call_command("migrate", verbosity=0) + c = HttpClient() + response = c.get("/welcome/", HTTP_REMOTE_USER="admin") + self.assertEqual(response.status_code, 200) diff --git a/core/migrations/0024_alter_tag_slug.py b/core/migrations/0024_alter_tag_slug.py new file mode 100644 index 00000000..466c269a --- /dev/null +++ b/core/migrations/0024_alter_tag_slug.py @@ -0,0 +1,20 @@ +# Generated by Django 4.1.2 on 2022-10-12 02:19 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("core", "0023_alter_tag_options_alter_bmi_tags_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="tag", + name="slug", + field=models.SlugField( + allow_unicode=True, max_length=100, unique=True, verbose_name="slug" + ), + ), + ] diff --git a/core/templates/core/timer_list.html b/core/templates/core/timer_list.html index 8043d38e..30c69e00 100644 --- a/core/templates/core/timer_list.html +++ b/core/templates/core/timer_list.html @@ -63,7 +63,7 @@ {% include 'babybuddy/paginator.html' %} - {% if perms.core.delete_timer %} + {% if object_list and perms.core.delete_timer %} {% trans "Delete Inactive Timers" %} diff --git a/core/templates/core/widget_tag_editor.html b/core/templates/core/widget_tag_editor.html index 3d988bd6..3b4a7eed 100644 --- a/core/templates/core/widget_tag_editor.html +++ b/core/templates/core/widget_tag_editor.html @@ -24,13 +24,21 @@ - {% trans "Recently used:" %} - {% for t in widget.tag_suggestions.quick %} - - {{ t.name }} - + - - {% endfor %} + {% if widget.tag_suggestions.quick %} + {% trans "Recently used:" %} + {% for t in widget.tag_suggestions.quick %} + + {{ t.name }} + + + + {% endfor %} + {% else %} + + {%endif%} @@ -9,7 +9,7 @@ {% block title %} {% if change %} - {% blocktrans trimmed with since=change.time|timesince time=change.time|time %} + {% blocktrans trimmed with since=change.time|deltasince|duration_string:'m' time=change.time|time %}
{{ since }} ago
{{ time }} {% endblocktrans %} diff --git a/dashboard/templates/cards/feeding_last.html b/dashboard/templates/cards/feeding_last.html index 596b9471..a97ec858 100644 --- a/dashboard/templates/cards/feeding_last.html +++ b/dashboard/templates/cards/feeding_last.html @@ -1,5 +1,5 @@ {% extends 'cards/base.html' %} -{% load i18n %} +{% load duration i18n %} {% block header %} @@ -9,7 +9,7 @@ {% block title %} {% if feeding %} - {% blocktrans trimmed with since=feeding.start|timesince time=feeding.start|time %} + {% blocktrans trimmed with since=feeding.start|deltasince|duration_string:'m' time=feeding.start|time %}
{{ since }} ago
{{ time }} {% endblocktrans %} diff --git a/dashboard/templates/cards/sleep_last.html b/dashboard/templates/cards/sleep_last.html index 2a7a9017..57327022 100644 --- a/dashboard/templates/cards/sleep_last.html +++ b/dashboard/templates/cards/sleep_last.html @@ -9,7 +9,7 @@ {% block title %} {% if sleep %} - {% blocktrans trimmed with since=sleep.end|timesince time=sleep.end|time %} + {% blocktrans trimmed with since=sleep.end|deltasince|duration_string:'m' time=sleep.end|time %}
{{ since }} ago
{{ time }} {% endblocktrans %} diff --git a/dashboard/templates/cards/tummytime_last.html b/dashboard/templates/cards/tummytime_last.html index a28b3017..520d89e7 100644 --- a/dashboard/templates/cards/tummytime_last.html +++ b/dashboard/templates/cards/tummytime_last.html @@ -10,7 +10,7 @@ {% block title %} {% if tummytime %} - {% blocktrans trimmed with since=tummytime.time|timesince time=tummytime.time|time %} + {% blocktrans trimmed with since=tummytime.time|deltasince|duration_string:'m' time=tummytime.time|time %}
{{ since }} ago
{{ time }} {% endblocktrans %} diff --git a/dashboard/templatetags/cards.py b/dashboard/templatetags/cards.py index d5e9400c..110686a3 100644 --- a/dashboard/templatetags/cards.py +++ b/dashboard/templatetags/cards.py @@ -135,7 +135,7 @@ def card_feeding_day(context, child, end_date=None): # do one pass over the data and add it to the appropriate day for instance in instances: # convert to local tz and push feed_date to end so we're comparing apples to apples for the date - feed_date = timezone.localtime(instance.start).replace( + feed_date = timezone.localtime(instance.end).replace( hour=23, minute=59, second=59, microsecond=9999 ) idx = (end_date - feed_date).days diff --git a/docs/configuration/security.md b/docs/configuration/security.md index 30d8fca5..4dcc7819 100644 --- a/docs/configuration/security.md +++ b/docs/configuration/security.md @@ -38,6 +38,34 @@ Each entry must contain both the scheme (http, https) and fully-qualified domain - [`ALLOWED_HOSTS`](#allowed_hosts) - [`SECURE_PROXY_SSL_HEADER`](#secure_proxy_ssl_header) +## `PROXY_HEADER` + +*Default:* `HTTP_REMOTE_USER` + +Sets the header to read the authenticated username from when +`REVERSE_PROXY_AUTH` has been enabled. + +**Example value** + + HTTP_X_AUTH_USER + +**See also** + +- [Django's documentation on the `REMOTE_USER` authentication method](https://docs.djangoproject.com/en/4.1/howto/auth-remote-user/) +- [`REVERSE_PROXY_AUTH`](#reverse_proxy_auth) + +## `REVERSE_PROXY_AUTH` + +*Default:* `False` + +Enable use of `PROXY_HEADER` to pass the username of an authenticated user. +This setting should *only* be used with a properly configured reverse proxy to +ensure the headers are not forwarded from sources other than your proxy. + +**See also** + +- [`PROXY_HEADER`](#proxy_header) + ## `SECRET_KEY` *Default:* `None` diff --git a/docs/user-guide/managing-users.md b/docs/user-guide/managing-users.md index a105455b..0f2667ed 100644 --- a/docs/user-guide/managing-users.md +++ b/docs/user-guide/managing-users.md @@ -17,3 +17,39 @@ + +## Creating a User from the Command Line + +There are 2 ways you can create a user from the command line: + +1. Passing user's password as an argument: + +```shell +python manage.py createuser --username --password +``` + +2. Interactively setting user's password: + +```shell +python manage.py createuser --username +``` + +You will then be prompted to enter and confirm a password. + +- If you want to make the user a staff, you can append the `--is-staff` argument: + +```shell +python manage.py createuser --username --is-staff +``` + +- Another argument you can use with this command is `--email` + +```shell +python manage.py createuser --username --email +``` + +- To get a list of supported commands: + +```shell +python manage.py createuser --help +``` diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index c8cabb54..0bb684d8 100644 Binary files a/locale/de/LC_MESSAGES/django.mo and b/locale/de/LC_MESSAGES/django.mo differ diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 754b606d..fec365c8 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -1,22 +1,20 @@ msgid "" msgstr "" -"Project-Id-Version: Baby Buddy\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 21:13+0000\n" -"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" +"Project-Id-Version: Baby Buddy\n" +"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: babybuddy/admin.py:12 babybuddy/admin.py:13 -#: babybuddy/templates/babybuddy/nav-dropdown.html:324 +#: babybuddy/templates/babybuddy/nav-dropdown.html:347 #: babybuddy/templates/babybuddy/user_settings_form.html:8 msgid "Settings" msgstr "Einstellungen" -#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:89 +#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:111 #: babybuddy/templates/babybuddy/user_settings_form.html:61 #: dashboard/templates/dashboard/child.html:4 #: dashboard/templates/dashboard/child.html:9 @@ -31,17 +29,16 @@ msgid "Refresh rate" msgstr "Aktualisierungs-Intervall" #: babybuddy/models.py:21 -msgid "" -"If supported by browser, the dashboard will only refresh when visible, and " -"also when receiving focus." -msgstr "" -"Wenn dies vom Browser unterstützt wird, wird das Dashboard nur aktualisiert, " -"wenn es sichtbar ist und auch wenn es den Fokus erhält." +msgid "This setting will only be used when a browser does not support refresh on focus." +msgstr "Diese Einstellung wird nur verwendet, wenn ein Browser \"refresh on focus\" nicht unterstützt." #: babybuddy/models.py:28 msgid "disabled" msgstr "deaktiviert" +#. Minute is a SI unit. The symbol is "min" without a dot. This is the same for German and English. +#. https://en.wikipedia.org/wiki/Minute +#. https://de.wikipedia.org/wiki/Minute #: babybuddy/models.py:29 msgid "1 min." msgstr "1 min." @@ -74,117 +71,30 @@ msgstr "15 min." msgid "30 min." msgstr "30 min." -#: babybuddy/models.py:40 -msgid "Hide Empty Dashboard Cards" -msgstr "Dashboard Karten ohne Inhalt verbergen" - -#: babybuddy/models.py:43 -msgid "Hide data older than" -msgstr "Verstecke Daten älter als" - -#: babybuddy/models.py:45 -msgid "This setting controls which data will be shown in the dashboard." -msgstr "" -"Diese Einstellung kontrolliert welche Daten im Dashboard angezeigt werden." - -#: babybuddy/models.py:51 -msgid "show all data" -msgstr "alle Daten anzeigen" - -#: babybuddy/models.py:52 -msgid "1 day" -msgstr "1 Tag" - -#: babybuddy/models.py:53 -msgid "2 days" -msgstr "2 Tage" - -#: babybuddy/models.py:54 -msgid "3 days" -msgstr "3 Tage" - -#: babybuddy/models.py:55 -msgid "1 week" -msgstr "1 Woche" - -#: babybuddy/models.py:56 -msgid "4 weeks" -msgstr "4 Wochen" - #: babybuddy/models.py:63 msgid "Language" msgstr "Sprache" -#: babybuddy/models.py:69 -msgid "Timezone" -msgstr "Zeitzone" - #: babybuddy/models.py:73 -#, python-brace-format msgid "{user}'s Settings" msgstr "{user} Einstellungen" -#: babybuddy/settings/base.py:166 -msgid "Catalan" -msgstr "" - -#: babybuddy/settings/base.py:167 -msgid "Chinese (simplified)" -msgstr "Chinesisch (vereinfacht)" - -#: babybuddy/settings/base.py:168 -msgid "Dutch" -msgstr "Niederländisch" - -#: babybuddy/settings/base.py:169 -msgid "English (US)" -msgstr "Englisch (US)" - -#: babybuddy/settings/base.py:170 -msgid "English (UK)" -msgstr "Englisch (UK)" +#: babybuddy/settings/base.py:171 +msgid "English" +msgstr "Englisch" #: babybuddy/settings/base.py:171 msgid "French" msgstr "Französisch" -#: babybuddy/settings/base.py:172 -msgid "Finnish" -msgstr "Finnisch" +#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 +msgid "Permission Denied" +msgstr "Zugriff verweigert" -#: babybuddy/settings/base.py:173 -msgid "German" -msgstr "Deutsch" - -#: babybuddy/settings/base.py:174 -msgid "Italian" -msgstr "Italienisch" - -#: babybuddy/settings/base.py:175 -msgid "Polish" -msgstr "Polnisch" - -#: babybuddy/settings/base.py:176 -msgid "Portuguese" -msgstr "Portugiesisch" - -#: babybuddy/settings/base.py:177 -msgid "Spanish" -msgstr "Spanisch" - -#: babybuddy/settings/base.py:178 -msgid "Swedish" -msgstr "Schwedisch" - -#: babybuddy/settings/base.py:179 -msgid "Turkish" -msgstr "Türkisch" - -#: babybuddy/templates/admin/base_site.html:4 -#: babybuddy/templates/admin/base_site.html:7 -#: babybuddy/templates/babybuddy/nav-dropdown.html:336 -msgid "Database Admin" -msgstr "Datenbankadministration" +#: babybuddy/templates/403.html:12 +msgid "You do not have permission to access this resource.\n" +" Contact a site administrator for assistance." +msgstr "Du hast keine Berechtigung auf diese Ressource zuzugreifen. Bitte kontaktiere einen Administrator." #: babybuddy/templates/babybuddy/base.html:36 msgid "Home" @@ -209,36 +119,32 @@ msgstr "Senden" #: babybuddy/templates/babybuddy/messages.html:18 #: babybuddy/templates/babybuddy/user_settings_form.html:19 -#, python-format msgid "Error: %(error)s" msgstr "Fehler: %(error)s" #: babybuddy/templates/babybuddy/messages.html:23 -#: babybuddy/templates/babybuddy/user_settings_form.html:26 -msgid "Error: Some fields have errors. See below for details." -msgstr "" -"Fehler: Gewisse Felder sind fehlerhaft. Details sind unten " -"ersichtlich." +msgid "Error: Some fields have errors. See below for details. " +msgstr "Fehler: Manche Felder sind fehlerhaft. Details sind unten ersichtlich. " -#: babybuddy/templates/babybuddy/nav-dropdown.html:48 core/models.py:248 +#: babybuddy/templates/babybuddy/nav-dropdown.html:51 core/models.py:248 #: core/models.py:252 msgid "Diaper Change" msgstr "Windelwechsel" -#: babybuddy/templates/babybuddy/nav-dropdown.html:54 -#: babybuddy/templates/babybuddy/nav-dropdown.html:259 core/models.py:312 +#: babybuddy/templates/babybuddy/nav-dropdown.html:57 +#: babybuddy/templates/babybuddy/nav-dropdown.html:281 core/models.py:312 #: core/models.py:316 core/templates/core/timer_detail.html:43 msgid "Feeding" msgstr "Mahlzeit" -#: babybuddy/templates/babybuddy/nav-dropdown.html:60 -#: babybuddy/templates/babybuddy/nav-dropdown.html:135 core/models.py:396 +#: babybuddy/templates/babybuddy/nav-dropdown.html:63 +#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:396 #: core/models.py:407 core/models.py:411 core/templates/core/note_list.html:29 msgid "Note" msgstr "Notiz" -#: babybuddy/templates/babybuddy/nav-dropdown.html:66 -#: babybuddy/templates/babybuddy/nav-dropdown.html:280 +#: babybuddy/templates/babybuddy/nav-dropdown.html:69 +#: babybuddy/templates/babybuddy/nav-dropdown.html:288 #: babybuddy/templates/babybuddy/welcome.html:42 core/models.py:467 #: core/models.py:468 core/models.py:471 #: core/templates/core/sleep_confirm_delete.html:7 @@ -248,8 +154,8 @@ msgstr "Notiz" msgid "Sleep" msgstr "Schlafen" -#: babybuddy/templates/babybuddy/nav-dropdown.html:72 -#: babybuddy/templates/babybuddy/nav-dropdown.html:293 +#: babybuddy/templates/babybuddy/nav-dropdown.html:81 +#: babybuddy/templates/babybuddy/nav-dropdown.html:301 #: babybuddy/templates/babybuddy/welcome.html:50 core/models.py:647 #: core/models.py:648 core/models.py:651 #: core/templates/core/timer_detail.html:59 @@ -261,15 +167,24 @@ msgstr "Schlafen" msgid "Tummy Time" msgstr "Bauchzeit" -#: babybuddy/templates/babybuddy/nav-dropdown.html:96 -#: core/templates/timeline/timeline.html:4 -#: core/templates/timeline/timeline.html:7 -#: dashboard/templates/dashboard/child_button_group.html:9 -msgid "Timeline" -msgstr "Zeitverlauf" +#: babybuddy/templates/babybuddy/nav-dropdown.html:87 +#: babybuddy/templates/babybuddy/nav-dropdown.html:193 core/models.py:673 +#: core/models.py:685 core/models.py:686 core/models.py:689 +#: core/templates/core/weight_confirm_delete.html:7 +#: core/templates/core/weight_form.html:13 +#: core/templates/core/weight_list.html:4 +#: core/templates/core/weight_list.html:7 +#: core/templates/core/weight_list.html:12 +#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 +#: reports/graphs/weight_change.py:30 +#: reports/templates/reports/report_list.html:22 +#: reports/templates/reports/weight_change.html:4 +#: reports/templates/reports/weight_change.html:8 +msgid "Weight" +msgstr "Gewicht" -#: babybuddy/templates/babybuddy/nav-dropdown.html:107 -#: babybuddy/templates/babybuddy/nav-dropdown.html:115 core/models.py:188 +#: babybuddy/templates/babybuddy/nav-dropdown.html:129 +#: babybuddy/templates/babybuddy/nav-dropdown.html:137 core/models.py:188 #: core/templates/core/child_confirm_delete.html:7 #: core/templates/core/child_detail.html:7 #: core/templates/core/child_form.html:13 core/templates/core/child_list.html:4 @@ -279,7 +194,7 @@ msgstr "Zeitverlauf" msgid "Children" msgstr "Kinder" -#: babybuddy/templates/babybuddy/nav-dropdown.html:121 core/models.py:137 +#: babybuddy/templates/babybuddy/nav-dropdown.html:143 core/models.py:137 #: core/models.py:187 core/models.py:221 core/models.py:274 core/models.py:335 #: core/models.py:367 core/models.py:394 core/models.py:426 core/models.py:450 #: core/models.py:503 core/models.py:537 core/models.py:630 core/models.py:671 @@ -298,7 +213,7 @@ msgstr "Kinder" msgid "Child" msgstr "Kind" -#: babybuddy/templates/babybuddy/nav-dropdown.html:129 core/models.py:143 +#: babybuddy/templates/babybuddy/nav-dropdown.html:151 core/models.py:143 #: core/models.py:240 core/models.py:304 core/models.py:343 core/models.py:373 #: core/models.py:408 core/models.py:430 core/models.py:458 core/models.py:511 #: core/models.py:677 core/templates/core/note_confirm_delete.html:7 @@ -307,112 +222,24 @@ msgstr "Kind" msgid "Notes" msgstr "Notizen" -#: babybuddy/templates/babybuddy/nav-dropdown.html:149 -msgid "Measurements" -msgstr "Messungen" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:139 -#: core/models.py:151 core/models.py:152 core/models.py:155 -#: core/templates/core/bmi_confirm_delete.html:7 -#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 -#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 -#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 -#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 -#: reports/templates/reports/bmi_change.html:8 -msgid "BMI" -msgstr "BMI" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:163 -msgid "BMI entry" -msgstr "BMI Eintrag" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:171 core/models.py:338 -#: core/models.py:351 core/models.py:352 core/models.py:355 -#: core/templates/core/head_circumference_confirm_delete.html:7 -#: core/templates/core/head_circumference_form.html:13 -#: core/templates/core/head_circumference_list.html:4 -#: core/templates/core/head_circumference_list.html:7 -#: core/templates/core/head_circumference_list.html:12 -#: core/templates/core/head_circumference_list.html:29 -#: reports/graphs/head_circumference_change.py:19 -#: reports/graphs/head_circumference_change.py:30 -#: reports/templates/reports/head_circumference_change.html:4 -#: reports/templates/reports/head_circumference_change.html:8 -#: reports/templates/reports/report_list.html:16 -msgid "Head Circumference" -msgstr "Kopfumfang" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:177 -msgid "Head Circumference entry" -msgstr "Kopfumfang Eintrag" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:185 core/models.py:369 -#: core/models.py:381 core/models.py:382 core/models.py:385 -#: core/templates/core/height_confirm_delete.html:7 -#: core/templates/core/height_form.html:13 -#: core/templates/core/height_list.html:4 -#: core/templates/core/height_list.html:7 -#: core/templates/core/height_list.html:12 -#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 -#: reports/graphs/height_change.py:30 -#: reports/templates/reports/height_change.html:4 -#: reports/templates/reports/height_change.html:8 -#: reports/templates/reports/report_list.html:17 -msgid "Height" -msgstr "Größe" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:191 -msgid "Height entry" -msgstr "Größen Eintrag" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:199 core/models.py:506 -#: core/models.py:519 core/models.py:520 core/models.py:523 -#: core/templates/core/temperature_confirm_delete.html:7 -#: core/templates/core/temperature_form.html:13 -#: core/templates/core/temperature_list.html:4 -#: core/templates/core/temperature_list.html:7 -#: core/templates/core/temperature_list.html:12 -#: core/templates/core/temperature_list.html:29 -msgid "Temperature" -msgstr "Temperatur" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:205 -msgid "Temperature reading" -msgstr "Temperatur Messung" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:213 core/models.py:673 -#: core/models.py:685 core/models.py:686 core/models.py:689 -#: core/templates/core/weight_confirm_delete.html:7 -#: core/templates/core/weight_form.html:13 -#: core/templates/core/weight_list.html:4 -#: core/templates/core/weight_list.html:7 -#: core/templates/core/weight_list.html:12 -#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 -#: reports/graphs/weight_change.py:30 -#: reports/templates/reports/report_list.html:22 -#: reports/templates/reports/weight_change.html:4 -#: reports/templates/reports/weight_change.html:8 -msgid "Weight" -msgstr "Gewicht" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:219 +#: babybuddy/templates/babybuddy/nav-dropdown.html:199 msgid "Weight entry" msgstr "Gewichtseintrag" -#: babybuddy/templates/babybuddy/nav-dropdown.html:233 +#: babybuddy/templates/babybuddy/nav-dropdown.html:255 msgid "Activities" msgstr "Aktivitäten" -#: babybuddy/templates/babybuddy/nav-dropdown.html:240 +#: babybuddy/templates/babybuddy/nav-dropdown.html:262 #: reports/graphs/diaperchange_lifetimes.py:27 msgid "Changes" msgstr "Wechsel" -#: babybuddy/templates/babybuddy/nav-dropdown.html:246 +#: babybuddy/templates/babybuddy/nav-dropdown.html:268 msgid "Change" msgstr "Wechsel" -#: babybuddy/templates/babybuddy/nav-dropdown.html:253 +#: babybuddy/templates/babybuddy/nav-dropdown.html:275 #: babybuddy/templates/babybuddy/welcome.html:34 core/models.py:313 #: core/templates/core/feeding_confirm_delete.html:7 #: core/templates/core/feeding_form.html:13 @@ -422,31 +249,15 @@ msgstr "Wechsel" msgid "Feedings" msgstr "Mahlzeiten" -#: babybuddy/templates/babybuddy/nav-dropdown.html:267 core/models.py:437 -#: core/models.py:438 core/models.py:441 -#: core/templates/core/pumping_confirm_delete.html:7 -#: core/templates/core/pumping_form.html:13 -#: core/templates/core/pumping_list.html:4 -#: core/templates/core/pumping_list.html:7 -#: core/templates/core/pumping_list.html:12 -#: reports/templates/reports/pumping_amounts.html:4 -#: reports/templates/reports/pumping_amounts.html:8 -msgid "Pumping" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:273 -msgid "Pumping entry" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:286 +#: babybuddy/templates/babybuddy/nav-dropdown.html:294 msgid "Sleep entry" msgstr "Schlaf-Eintrag" -#: babybuddy/templates/babybuddy/nav-dropdown.html:299 +#: babybuddy/templates/babybuddy/nav-dropdown.html:307 msgid "Tummy Time entry" msgstr "Bauchzeit-Eintrag" -#: babybuddy/templates/babybuddy/nav-dropdown.html:323 +#: babybuddy/templates/babybuddy/nav-dropdown.html:346 #: babybuddy/templates/babybuddy/user_list.html:17 #: babybuddy/templates/babybuddy/user_password_form.html:7 #: babybuddy/templates/babybuddy/user_settings_form.html:7 core/models.py:556 @@ -454,23 +265,23 @@ msgstr "Bauchzeit-Eintrag" msgid "User" msgstr "Benutzer" -#: babybuddy/templates/babybuddy/nav-dropdown.html:325 +#: babybuddy/templates/babybuddy/nav-dropdown.html:348 msgid "Password" msgstr "Passwort" -#: babybuddy/templates/babybuddy/nav-dropdown.html:329 +#: babybuddy/templates/babybuddy/nav-dropdown.html:352 msgid "Logout" msgstr "Logout" -#: babybuddy/templates/babybuddy/nav-dropdown.html:332 +#: babybuddy/templates/babybuddy/nav-dropdown.html:355 msgid "Site" msgstr "Seite" -#: babybuddy/templates/babybuddy/nav-dropdown.html:333 +#: babybuddy/templates/babybuddy/nav-dropdown.html:356 msgid "API Browser" msgstr "API Browser" -#: babybuddy/templates/babybuddy/nav-dropdown.html:335 +#: babybuddy/templates/babybuddy/nav-dropdown.html:358 #: babybuddy/templates/babybuddy/user_confirm_delete.html:7 #: babybuddy/templates/babybuddy/user_form.html:13 #: babybuddy/templates/babybuddy/user_list.html:4 @@ -478,15 +289,19 @@ msgstr "API Browser" msgid "Users" msgstr "Benutzer" -#: babybuddy/templates/babybuddy/nav-dropdown.html:338 +#: babybuddy/templates/babybuddy/nav-dropdown.html:250 +msgid "Backend Admin" +msgstr "Backend Admin" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:361 msgid "Support" msgstr "Support" -#: babybuddy/templates/babybuddy/nav-dropdown.html:340 +#: babybuddy/templates/babybuddy/nav-dropdown.html:363 msgid "Source Code" msgstr "Quellcode" -#: babybuddy/templates/babybuddy/nav-dropdown.html:342 +#: babybuddy/templates/babybuddy/nav-dropdown.html:365 msgid "Chat / Support" msgstr "Chat / Support" @@ -497,7 +312,6 @@ msgstr "Chat / Support" #: core/templates/timeline/_timeline.html:73 #: dashboard/templates/cards/feeding_day.html:43 #: dashboard/templates/cards/feeding_last_method.html:34 -#: dashboard/templates/cards/sleep_recent.html:43 #: dashboard/templates/cards/statistics.html:34 msgid "Previous" msgstr "Zurück" @@ -509,7 +323,6 @@ msgstr "Zurück" #: core/templates/timeline/_timeline.html:80 #: dashboard/templates/cards/feeding_day.html:47 #: dashboard/templates/cards/feeding_last_method.html:38 -#: dashboard/templates/cards/sleep_recent.html:47 #: dashboard/templates/cards/statistics.html:38 msgid "Next" msgstr "Weiter" @@ -565,13 +378,8 @@ msgstr "löschen" #: core/templates/core/timer_confirm_delete.html:17 #: core/templates/core/tummytime_confirm_delete.html:14 #: core/templates/core/weight_confirm_delete.html:14 -#, python-format -msgid "" -"

Are you sure you want to delete %(object)s?

" -msgstr "" -"

Bist du sicher, dass du %(object)s " -"löschen möchtest?

" +msgid "

Are you sure you want to delete %(object)s?

" +msgstr "

Bist du sicher, dass du %(object)s löschen möchtest?

" #: babybuddy/templates/babybuddy/user_confirm_delete.html:19 #: core/templates/core/bmi_confirm_delete.html:18 @@ -627,7 +435,6 @@ msgstr "Aktualisieren" #: core/templates/core/timer_form.html:18 #: core/templates/core/tummytime_form.html:23 #: core/templates/core/weight_form.html:23 -#, python-format msgid "

Update %(object)s

" msgstr "

%(object)s ändern

" @@ -657,7 +464,7 @@ msgstr "Aktiv" #: babybuddy/templates/babybuddy/user_list.html:23 #: core/templates/core/bmi_list.html:24 core/templates/core/bmi_list.html:38 #: core/templates/core/child_list.html:28 -#: core/templates/core/child_list.html:43 +#: core/templates/core/child_list.html:48 #: core/templates/core/diaperchange_list.html:24 #: core/templates/core/diaperchange_list.html:40 #: core/templates/core/feeding_list.html:24 @@ -695,6 +502,11 @@ msgstr "Passwort ändern" msgid "User Settings" msgstr "Benutzereinstellungen" +#: babybuddy/templates/babybuddy/messages.html:23 +#: babybuddy/templates/babybuddy/user_settings_form.html:26 +msgid "Error: Some fields have errors. See below for details." +msgstr "Fehler: Gewisse Felder sind fehlerhaft. Details sind unten ersichtlich." + #: babybuddy/templates/babybuddy/user_settings_form.html:33 msgid "User Profile" msgstr "Benutzerprofil" @@ -721,12 +533,10 @@ msgid "Welcome to Baby Buddy!" msgstr "Willkommen bei Baby Buddy!" #: babybuddy/templates/babybuddy/welcome.html:14 -msgid "" -"Learn about and predict baby's needs without (as much) guess work " -"by using Baby Buddy to track —" -msgstr "" -"Lerne und sehe die Bedürfnisse deines Babys voraus, ohne (allzu viel)Spekulation indem du Baby Buddy verwendest —" +msgid "Learn about and predict baby's needs without\n" +" (as much) guess work by using Baby Buddy to track —" +msgstr "Lerne und sehe die Bedürfnisse deines Babys voraus, ohne \n" +" (allzu viel) Spekulation indem du Baby Buddy verwendest —" #: babybuddy/templates/babybuddy/welcome.html:26 core/models.py:249 #: core/templates/core/diaperchange_confirm_delete.html:7 @@ -738,21 +548,14 @@ msgstr "" msgid "Diaper Changes" msgstr "Windelwechsel" -#: babybuddy/templates/babybuddy/welcome.html:56 -msgid "" -"As the amount of entries grows, Baby Buddy will help parents and caregivers " -"to identify small patterns in baby's habits using the dashboard and graphs. " -"Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and " -"dads with 2AM feedings and changings. To get started, just click the button " -"below to add your first (or second, third, etc.) child!" -msgstr "" -"Während die Anzahl Einträge wächst, hilft Baby Buddy Eltern und Pflegenden, " -"mit Hilfe des Dashboards und Diagrammen, kleine Muster im Verhalten ihres " -"Babys zu erkennen. Baby Buddy ist Mobiltelefon-Freundlich und benutzt ein " -"dunkles Design, um erschöpften Müttern und Vätern beim Füttern und Windel-" -"Wechseln um 2 Uhr Nachts zu unterstützen. Um loszulegen, klicke einfach auf " -"den untenstehenden Button, um das erste (oder zweite, dritte, etc.) Kind " -"hinzuzufügen!" +#: babybuddy/templates/babybuddy/welcome.html:54 +msgid "As the amount of entries grows, Baby Buddy will help\n" +" parents and caregivers to identify small patterns in baby's habits\n" +" using the dashboard and graphs. Baby Buddy is mobile-friendly and\n" +" uses a dark theme to help weary moms and dads with 2AM feedings and\n" +" changings. To get started, just click the button below to add your\n" +" first (or second, third, etc.) child!" +msgstr "Während die Anzahl der Einträge wächst, hilft Baby Buddy Eltern und Pflegenden, mit Hilfe des Dashboards und Diagrammen, kleine Muster im Verhalten ihres Babys zu erkennen. Baby Buddy ist mobiltelefonfreundlich und benutzt ein dunkles Design, um erschöpften Müttern und Vätern beim Füttern und Windelwechseln um 2 Uhr Nachts zu unterstützen. Um loszulegen, klicke einfach auf den untenstehenden Button, um das erste (oder zweite, dritte, etc.) Kind hinzuzufügen!" #: babybuddy/templates/babybuddy/welcome.html:68 #: core/templates/core/child_form.html:8 core/templates/core/child_form.html:18 @@ -760,52 +563,6 @@ msgstr "" msgid "Add a Child" msgstr "Kind hinzufügen" -#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 -msgid "Bad Request" -msgstr "Falsche Anfrage" - -#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 -msgid "Permission Denied" -msgstr "Zugriff verweigert" - -#: babybuddy/templates/error/403.html:9 -msgid "" -"You do not have permission to access this resource. Contact a site " -"administrator for assistance." -msgstr "" -"Du hast keine Berechtigung auf diese Ressource zuzugreifen. Für " -"Unterstützung kontaktiere bitte den Administrator." - -#: babybuddy/templates/error/403_csrf_bad_origin.html:14 -msgid "How to Fix" -msgstr "Wie reparieren" - -#: babybuddy/templates/error/403_csrf_bad_origin.html:15 -#, python-format -msgid "" -"Add %(origin)s to the CSRF_TRUSTED_ORIGINS " -"environment variable. If multiple origins are required separate with commas." -msgstr "" -"Füge %(origin)s zur CSRF_TRUSTED_ORIGINS " -"Umgebungsvariable hinzu. Teile mehrere Ursprünge mit Kommas." - -#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 -msgid "Page Not Found" -msgstr "Seite nicht gefunden" - -#: babybuddy/templates/error/404.html:9 -#, python-format -msgid "The path %(request_path)s does not exist." -msgstr "Der Pfad %(request_path)s existiert nicht." - -#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 -msgid "Server Error" -msgstr "Serverfehler" - -#: babybuddy/templates/error/base.html:14 -msgid "Return to Baby Buddy" -msgstr "Zurück zu Baby Buddy" - #: babybuddy/templates/registration/login.html:32 msgid "Login" msgstr "Login" @@ -820,8 +577,7 @@ msgstr "Passwort erfolgreich zurückgesetzt!" #: babybuddy/templates/registration/password_reset_complete.html:8 msgid "Your password has been set. You may go ahead and log in now." -msgstr "" -"Dein Passwort wurde gesetzt. Du kannst nun weiter gehen und dich einloggen." +msgstr "Dein Passwort wurde gesetzt. Du kannst nun weiter gehen und dich einloggen." #: babybuddy/templates/registration/password_reset_complete.html:9 msgid "Log in" @@ -831,12 +587,10 @@ msgstr "Login" msgid "Password Reset" msgstr "Passwort zurücksetzen" -#: babybuddy/templates/registration/password_reset_confirm.html:13 -msgid "" -"Oh snap! The two passwords did not match. Please try again." -msgstr "" -"Oh nein! Die beiden Passwörter stimmen nicht überein. Bitte " -"versuche es erneut." +#: babybuddy/templates/registration/password_reset_confirm.html:12 +msgid "

Oh snap! The\n" +" two passwords did not match. Please try again.

" +msgstr "

Oh nein! Die beiden Passwörter stimmen nicht überein. Bitte versuche es erneut.

" #: babybuddy/templates/registration/password_reset_confirm.html:22 msgid "Enter your new password in each field below." @@ -851,73 +605,35 @@ msgstr "Passwort zurücksetzen" msgid "Reset Email Sent" msgstr "Gesendete Email zurücksetzen" -#: babybuddy/templates/registration/password_reset_done.html:9 -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Wenn ein Account mit dieser E-Mail-Adresse existiert, haben wir dir " -"Anweisungen zum Zurücksetzen des Passworts an dieselbe Adresse gesendet." - -#: babybuddy/templates/registration/password_reset_done.html:15 -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Falls du die E-Mail nicht erhältst, überprüfe, dass du die registrierte " -"Adresse eingegeben hast und überprüfe deinen Spam-Ordner." - -#: babybuddy/templates/registration/password_reset_email.html:2 -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:4 -msgid "Please go to the following page and choose a new password:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:8 -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:10 -msgid "Thanks for using Baby Buddy!" -msgstr "" +#: babybuddy/templates/registration/password_reset_done.html:8 +msgid "

We've emailed you instructions for setting your\n" +" password, if an account exists with the email you entered. You\n" +" should receive them shortly.

\n" +"

If you don't receive an email, please make sure you've\n" +" entered the address you registered with, and check your spam\n" +" folder.

" +msgstr "

Wenn ein Account mit dieser E-Mail-Adresse existiert, haben wir dir Anweisungen zum Zurücksetzen des Passworts an dieselbe Adresse gesendet.

\n" +"

Falls du keine E-Mail erhältst, überprüfe ob du die E-Mail-Adresse eingegeben hast, mit der du dich registriert hast, und überprüfe deinen Spam-Ordner.

" #: babybuddy/templates/registration/password_reset_form.html:4 msgid "Forgot Password" msgstr "Passwort vergessen" -#: babybuddy/templates/registration/password_reset_form.html:9 -msgid "" -"Enter your account email address in the form below. If the address is valid, " -"you will receive instructions for resetting your password." -msgstr "" -"Bitte gib deine Account E-Mail-Adresse ins folgende Formular ein. Wenn die " -"Adresse gültig ist, erhältst du Anweisungen um das Passwort zurückzusetzen." - -#: babybuddy/views.py:43 -msgid "Forbidden" -msgstr "Verboten" - -#: babybuddy/views.py:44 -msgid "CSRF verification failed. Request aborted." -msgstr "CSRF Verifikation fehlgeschlagen. Anfrage abgebrochen." +#: babybuddy/templates/registration/password_reset_form.html:8 +msgid "

Enter your account email address in the\n" +" form below. If the address is valid, you will receive instructions for\n" +" resetting your password.

" +msgstr "

Bitte gib deine Account-E-Mail-Adresse ins folgende Formular ein. Wenn die Adresse gültig ist, erhältst du Anweisungen um das Passwort zurückzusetzen.

" #: babybuddy/views.py:102 -#, python-format msgid "User %(username)s added!" msgstr "User %(username)s hinzugefügt!" #: babybuddy/views.py:113 -#, python-format msgid "User %(username)s updated." msgstr "User %(username)s geändert." #: babybuddy/views.py:125 -#, python-brace-format msgid "User {user} deleted." msgstr "User {user} gelöscht." @@ -933,20 +649,10 @@ msgstr "User API-Key neu generiert." msgid "Settings saved!" msgstr "Einstellungen gespeichert!" -#: core/filters.py:11 core/models.py:96 core/models.py:115 -msgid "Tag" -msgstr "" - #: core/forms.py:120 msgid "Name does not match child name." msgstr "Name entspricht nicht dem Kindernamen." -#: core/forms.py:136 -msgid "" -"Click on the tags to add (+) or remove (-) tags or use the text editor to " -"create new tags." -msgstr "" - #: core/models.py:28 msgid "Date can not be in the future." msgstr "Datum darf nicht in der Zukunft liegen." @@ -967,43 +673,6 @@ msgstr "Ein anderer Eintrag schneidet sich mit der angegebenen Zeitperiode." msgid "Date/time can not be in the future." msgstr "Datum/Zeit darf nicht in der Zukunft liegen." -#: core/models.py:84 core/models.py:237 -#: core/templates/core/diaperchange_list.html:30 -msgid "Color" -msgstr "Farbe" - -#: core/models.py:90 -msgid "Last used" -msgstr "" - -#: core/models.py:97 core/templates/core/bmi_list.html:30 -#: core/templates/core/diaperchange_list.html:32 -#: core/templates/core/feeding_list.html:35 -#: core/templates/core/head_circumference_list.html:30 -#: core/templates/core/height_list.html:30 -#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 -#: core/templates/core/temperature_list.html:30 -#: core/templates/core/tummytime_list.html:31 -#: core/templates/core/weight_list.html:30 -msgid "Tags" -msgstr "" - -#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 -#: core/templates/core/bmi_list.html:25 -#: core/templates/core/feeding_list.html:25 -#: core/templates/core/head_circumference_list.html:25 -#: core/templates/core/height_list.html:25 -#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 -#: reports/graphs/diaperchange_amounts.py:37 -#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 -#: reports/graphs/feeding_duration.py:56 -#: reports/graphs/head_circumference_change.py:28 -#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:60 -#: reports/graphs/sleep_pattern.py:153 reports/graphs/sleep_totals.py:59 -#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 -msgid "Date" -msgstr "Datum" - #: core/models.py:163 msgid "First name" msgstr "Vorname" @@ -1058,11 +727,14 @@ msgstr "Grün" msgid "Yellow" msgstr "Gelb" -#: core/models.py:239 core/models.py:303 core/models.py:428 -#: core/templates/core/diaperchange_list.html:31 -#: core/templates/core/pumping_list.html:29 -msgid "Amount" -msgstr "Menge" +#: core/models.py:84 core/models.py:237 +#: core/templates/core/diaperchange_list.html:30 +msgid "Color" +msgstr "Farbe" + +#: core/models.py:180 +msgid "Wet and/or solid is required." +msgstr "Nass und/oder fest wird benötigt." #: core/models.py:276 core/models.py:453 core/models.py:543 core/models.py:632 msgid "Start time" @@ -1088,14 +760,6 @@ msgstr "Brustmilch" msgid "Formula" msgstr "Formula" -#: core/models.py:285 -msgid "Fortified breast milk" -msgstr "Angereicherte Brustmilch" - -#: core/models.py:286 -msgid "Solid food" -msgstr "Feste Nahrung" - #: core/models.py:289 core/templates/core/feeding_list.html:30 msgid "Type" msgstr "Typ" @@ -1112,25 +776,19 @@ msgstr "Linke Brust" msgid "Right breast" msgstr "Rechte Brust" -#: core/models.py:296 -msgid "Both breasts" -msgstr "Beide Brüste" - -#: core/models.py:297 -msgid "Parent fed" -msgstr "Durch Eltern gefüttert" - -#: core/models.py:298 -msgid "Self fed" -msgstr "Selber gefüttert" - #: core/models.py:301 core/templates/core/feeding_list.html:29 msgid "Method" msgstr "Methode" -#: core/models.py:452 -msgid "Napping" -msgstr "Nickerchen" +#: core/models.py:239 core/models.py:303 core/models.py:428 +#: core/templates/core/diaperchange_list.html:31 +#: core/templates/core/pumping_list.html:29 +msgid "Amount" +msgstr "Menge" + +#: core/models.py:243 +msgid "Only \"Bottle\" method is allowed with \"Formula\" type." +msgstr "Nur die Methode \"Fläschchen\" ist mit Typ \"Säuglingsnahrung\" erlaubt." #: core/models.py:540 core/templates/core/timer_list.html:25 msgid "Name" @@ -1150,7 +808,6 @@ msgid "Timers" msgstr "Timer" #: core/models.py:568 -#, python-brace-format msgid "Timer #{id}" msgstr "Timer #{id}" @@ -1158,24 +815,21 @@ msgstr "Timer #{id}" msgid "Milestone" msgstr "Meilenstein" -#: core/templates/core/bmi_confirm_delete.html:4 -msgid "Delete a BMI Entry" -msgstr "Lösche BMI Eintrag" - -#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 -#: core/templates/core/bmi_form.html:27 -msgid "Add a BMI Entry" -msgstr "Füge BMI Eintrag hinzu" - -#: core/templates/core/bmi_list.html:15 -msgid "Add BMI" -msgstr "Füge BMI hinzu" - -#: core/templates/core/bmi_list.html:70 -#, fuzzy -#| msgid "No bmi entries found." -msgid "No BMI entries found." -msgstr "Keine BMI Einträge gefunden." +#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 +#: core/templates/core/bmi_list.html:25 +#: core/templates/core/feeding_list.html:25 +#: core/templates/core/head_circumference_list.html:25 +#: core/templates/core/height_list.html:25 +#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 +#: reports/graphs/diaperchange_amounts.py:37 +#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 +#: reports/graphs/feeding_duration.py:56 +#: reports/graphs/head_circumference_change.py:28 +#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:58 +#: reports/graphs/sleep_pattern.py:151 reports/graphs/sleep_totals.py:59 +#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 +msgid "Date" +msgstr "Datum" #: core/templates/core/child_confirm_delete.html:4 msgid "Delete a Child" @@ -1183,8 +837,7 @@ msgstr "Lösche ein Kind" #: core/templates/core/child_confirm_delete.html:20 msgid "To confirm this action. Type the full name of the child below." -msgstr "" -"Um diese Aktion zu bestätigen, gib unten den vollen Namen des Kindes ein." +msgstr "Um diese Aktion zu bestätigen, gib unten den vollen Namen des Kindes ein." #: core/templates/core/child_detail.html:23 #: dashboard/templates/dashboard/dashboard.html:32 @@ -1196,15 +849,15 @@ msgstr "Geboren" msgid "Age" msgstr "Alter" -#: core/templates/core/child_list.html:15 -msgid "Add Child" -msgstr "Kind hinzufügen" +#: core/templates/timeline/_timeline.html:38 +msgid "%(since)s ago (%(time)s)" +msgstr "Vor %(since)s : (%(time)s)" #: core/templates/core/child_list.html:27 msgid "Birth Date" msgstr "Geburtsdatum" -#: core/templates/core/child_list.html:62 +#: core/templates/core/child_list.html:67 msgid "No children found." msgstr "Keine Kinder gefunden." @@ -1229,18 +882,14 @@ msgstr "Windelwechsel hinzufügen" msgid "Add" msgstr "Hinzufügen" -#: core/templates/core/diaperchange_list.html:15 -msgid "Add Diaper Change" -msgstr "Windelwechsel hinzufügen" - -#: core/templates/core/diaperchange_list.html:29 -msgid "Contents" -msgstr "Inhalte" - #: core/templates/core/diaperchange_list.html:77 msgid "No diaper changes found." msgstr "Keine Windelwechsel gefunden." +#: core/templates/core/diaperchange_list.html:63 +msgid "Add a Change" +msgstr "Änderung hinzufügen" + #: core/templates/core/feeding_confirm_delete.html:4 msgid "Delete a Feeding" msgstr "Mahlzeit löschen" @@ -1254,10 +903,6 @@ msgstr "Mahlzeit ändern" msgid "Add a Feeding" msgstr "Mahlzeit hinzufügen" -#: core/templates/core/feeding_list.html:15 -msgid "Add Feeding" -msgstr "Mahlzeit hinzufügen" - #: core/templates/core/feeding_list.html:33 msgid "Amt." msgstr "Menge" @@ -1266,6 +911,935 @@ msgstr "Menge" msgid "No feedings found." msgstr "Keine Mahlzeit gefunden." +#: core/templates/core/note_confirm_delete.html:4 +msgid "Delete a Note" +msgstr "Eine Notiz löschen" + +#: core/templates/core/note_form.html:6 +msgid "Update a Note" +msgstr "Eine Notiz ändern" + +#: core/templates/core/note_form.html:8 core/templates/core/note_form.html:27 +msgid "Add a Note" +msgstr "Notiz hinzufügen" + +#: core/templates/core/note_list.html:64 +msgid "No notes found." +msgstr "Keine Notizen gefunden." + +#: core/templates/core/sleep_confirm_delete.html:4 +msgid "Delete a Sleep Entry" +msgstr "Einen Schlaf-Eintrag löschen" + +#: core/templates/core/sleep_form.html:6 +msgid "Update a Sleep Entry" +msgstr "Einen Schlaf-Eintrag ändern" + +#: core/templates/core/sleep_form.html:8 core/templates/core/sleep_form.html:27 +msgid "Add a Sleep Entry" +msgstr "Schlaf-Eintrag hinzufügen" + +#: core/templates/core/sleep_list.html:25 +#: core/templates/core/timer_form.html:12 +#: core/templates/core/timer_list.html:24 +#: core/templates/core/tummytime_list.html:24 +msgid "Start" +msgstr "Start" + +#: core/templates/core/sleep_list.html:26 +#: core/templates/core/timer_list.html:30 +#: core/templates/core/tummytime_list.html:25 +msgid "End" +msgstr "Ende" + +#: core/templates/core/sleep_list.html:31 +msgid "Nap" +msgstr "Nickerchen" + +#: core/templates/core/sleep_list.html:74 +msgid "No sleep entries found." +msgstr "Keine Schlaf-Einträge gefunden." + +#: core/templates/core/timer_confirm_delete.html:5 +msgid "Delete %(object)s" +msgstr "Lösche %(object)s" + +#: core/templates/core/timer_detail.html:28 +msgid "Started" +msgstr "Gestartet" + +#: core/templates/core/timer_detail.html:30 +msgid "Stopped" +msgstr "Gestoppt" + +#: core/templates/core/timer_detail.html:26 +msgid "%(timer)s created by %(object.user)s" +msgstr "%(timer)s von %(object.user)s erstellt" + +#: core/templates/core/timer_detail.html:63 +msgid "Timer actions" +msgstr "Timer Aktionen" + +#: core/templates/core/timer_form.html:22 +#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:23 +msgid "Start Timer" +msgstr "Starte Timer" + +#: core/templates/core/timer_list.html:58 +msgid "No timer entries found." +msgstr "Keine Timer-Einträge gefunden." + +#: babybuddy/templates/babybuddy/nav-dropdown.html:32 +#: core/templates/core/timer_nav.html:18 +msgid "Quick Start Timer" +msgstr "Quick-Start Timer" + +#: core/templates/core/timer_nav.html:28 +msgid "View Timers" +msgstr "Zeige Timer" + +#: core/templates/core/timer_nav.html:32 +#: dashboard/templates/cards/timer_list.html:6 +msgid "Active Timers" +msgstr "Aktive Timer" + +#: core/templates/core/timer_nav.html:38 +#: dashboard/templates/cards/diaperchange_last.html:17 +#: dashboard/templates/cards/diaperchange_types.html:12 +#: dashboard/templates/cards/feeding_day.html:20 +#: dashboard/templates/cards/feeding_day.html:52 +#: dashboard/templates/cards/feeding_last.html:17 +#: dashboard/templates/cards/feeding_last_method.html:43 +#: dashboard/templates/cards/sleep_day.html:14 +#: dashboard/templates/cards/sleep_last.html:17 +#: dashboard/templates/cards/sleep_naps_day.html:18 +#: dashboard/templates/cards/tummytime_day.html:14 +msgid "None" +msgstr "Keine" + +#: core/templates/core/tummytime_confirm_delete.html:4 +msgid "Delete a Tummy Time Entry" +msgstr "Bauchzeit-Eintrag löschen" + +#: core/templates/core/tummytime_form.html:6 +msgid "Update a Tummy Time Entry" +msgstr "Bauchzeit-Eintrag ändern" + +#: core/templates/core/tummytime_form.html:8 +#: core/templates/core/tummytime_form.html:27 +msgid "Add a Tummy Time Entry" +msgstr "Bauchzeit-Eintrag hinzufügen" + +#: core/templates/core/tummytime_list.html:67 +msgid "No tummy time entries found." +msgstr "Keine Bauchzeit-Einträge gefunden." + +#: core/templates/core/weight_confirm_delete.html:4 +msgid "Delete a Weight Entry" +msgstr "Gewichts-Eintrag löschen" + +#: core/templates/core/weight_form.html:8 +#: core/templates/core/weight_form.html:17 +#: core/templates/core/weight_form.html:27 +msgid "Add a Weight Entry" +msgstr "Gewichts-Eintrag hinzufügen" + +#: core/templates/core/weight_list.html:70 +msgid "No weight entries found." +msgstr "Keine Gewichts-Einträge gefunden." + +#: core/timeline.py:164 +msgid "%(child)s had a diaper change." +msgstr "%(child)s bekam die Windel gewechselt." + +#: core/timeline.py:145 +msgid "%(child)s started feeding." +msgstr "%(child)s hat begonnen zu essen." + +#: core/timeline.py:158 +msgid "%(child)s finished feeding." +msgstr "%(child)s hat fertig gegessen." + +#: core/timeline.py:91 +msgid "%(child)s fell asleep." +msgstr "%(child)s ist eingeschlafen." + +#: core/timeline.py:103 +msgid "%(child)s woke up." +msgstr "%(child)s ist aufgewacht." + +#: core/timeline.py:53 +msgid "%(child)s started tummy time!" +msgstr "%(child)s liegt nun auf dem Bauch." + +#: core/timeline.py:65 +msgid "%(child)s finished tummy time." +msgstr "%(child)s liegt nicht mehr auf dem Bauch." + +#: core/views.py:33 +msgid "%(model)s entry for %(child)s added!" +msgstr "%(model)s Eintrag für %(child)s hinzugefügt!" + +#: core/views.py:35 core/views.py:308 +msgid "%(model)s entry added!" +msgstr "%(model)s Eintrag hinzugefügt!" + +#: core/views.py:61 core/views.py:316 +msgid "%(model)s entry for %(child)s updated." +msgstr "%(model)s Eintrag für %(child)s geändert." + +#: core/views.py:63 +msgid "%(model)s entry updated." +msgstr "%(model)s Eintrag geändert." + +#: core/views.py:115 +msgid "%(first_name)s %(last_name)s added!" +msgstr "%(first_name)s %(last_name)s added!" + +#: core/views.py:478 +msgid "%(timer)s stopped." +msgstr "%(timer)s gestoppt." + +#: dashboard/templates/cards/diaperchange_last.html:6 +msgid "Last Diaper Change" +msgstr "Letzer Windelwechsel" + +#: dashboard/templates/cards/diaperchange_last.html:8 +#: dashboard/templates/cards/feeding_last.html:8 +#: dashboard/templates/cards/sleep_last.html:8 +#: dashboard/templates/cards/tummytime_last.html:8 +msgid "%(time)s ago" +msgstr "vor %(time)s" + +#: dashboard/templates/cards/tummytime_last.html:18 +msgid "Never" +msgstr "Nie" + +#: dashboard/templates/cards/diaperchange_types.html:14 +msgid "Past Week" +msgstr "Letzte Woche" + +#: dashboard/templates/cards/diaperchange_types.html:27 +msgid "wet" +msgstr "nass" + +#: dashboard/templates/cards/diaperchange_types.html:35 +msgid "solid" +msgstr "fest" + +#: dashboard/templates/cards/diaperchange_types.html:49 +msgid "today" +msgstr "heute" + +#: dashboard/templates/cards/diaperchange_types.html:51 +msgid "yesterday" +msgstr "gestern" + +#: dashboard/templates/cards/diaperchange_types.html:53 +msgid "%(key)s days ago" +msgstr "Vor %(key)s Tagen" + +#: dashboard/templates/cards/feeding_last.html:6 +msgid "Last Feeding" +msgstr "Letzte Mahlzeit" + +#: dashboard/templates/cards/feeding_last_method.html:6 +msgid "Last Feeding Method" +msgstr "Letzte Mahlzeitart" + +#: dashboard/templates/cards/sleep_day.html:6 +msgid "Today's Sleep" +msgstr "Schlaf heute" + +#: dashboard/templates/cards/sleep_day.html:11 +#: dashboard/templates/cards/sleep_naps_day.html:13 +#: dashboard/templates/cards/tummytime_day.html:11 +msgid "None yet today" +msgstr "Noch keine heute" + +#: dashboard/templates/cards/sleep_day.html:20 +msgid "%(count)s sleep entries" +msgstr "%(count)s Schlaf-Einträge" + +#: dashboard/templates/cards/sleep_last.html:4 +msgid "Last Slept" +msgstr "Zuletzt geschlafen" + +#: dashboard/templates/cards/sleep_naps_day.html:6 +msgid "Today's Naps" +msgstr "Heutige Nickerchen" + +#: dashboard/templates/cards/sleep_naps_day.html:12 +msgid "%(count)s nap%(plural)s" +msgstr "%(count)s Nickerchen%(plural)s." + +#: dashboard/templates/cards/statistics.html:7 +msgid "Statistics" +msgstr "Statistiken" + +#: dashboard/templates/cards/statistics.html:25 +msgid "Not enough data" +msgstr "Nicht genügend Daten" + +#: dashboard/templates/cards/timer_list.html:12 +msgid "%(count)s active timer%(plural)s" +msgstr "%(count)s Timer%(plural)s aktiv" + +#: dashboard/templates/cards/timer_list.html:19 +msgid "Started by %(instance.user)s at %(start)s" +msgstr "Gestartet von %(instance.user)s um %(start)s" + +#: dashboard/templates/cards/tummytime_day.html:6 +msgid "Today's Tummy Time" +msgstr "Heutige Bauchzeit" + +#: dashboard/templates/cards/tummytime_day.html:22 +msgid "%(duration)s at %(end)s" +msgstr "%(duration)s um %(end)s" + +#: dashboard/templates/cards/tummytime_last.html:6 +msgid "Last Tummy Time" +msgstr "Letzte Bauchzeit" + +#: dashboard/templates/dashboard/child_button_group.html:3 +msgid "Child actions" +msgstr "Aktionen des Kindes" + +#: reports/templates/reports/diaperchange_types.html:4 +#: reports/templates/reports/diaperchange_types.html:8 +#: reports/templates/reports/report_list.html:12 +msgid "Diaper Change Types" +msgstr "Windewechsel Typen" + +#: reports/templates/reports/diaperchange_lifetimes.html:4 +#: reports/templates/reports/diaperchange_lifetimes.html:8 +#: reports/templates/reports/report_list.html:13 +msgid "Diaper Lifetimes" +msgstr "Windel-Lebensdauer" + +#: reports/templates/reports/report_list.html:15 +msgid "Feeding Durations (Average)" +msgstr "Mahlzeit Dauer (Durschschnitt)" + +#: reports/templates/reports/report_list.html:19 +#: reports/templates/reports/sleep_pattern.html:4 +#: reports/templates/reports/sleep_pattern.html:8 +msgid "Sleep Pattern" +msgstr "Schlafrhythmus" + +#: reports/templates/reports/report_list.html:20 +#: reports/templates/reports/sleep_totals.html:4 +#: reports/templates/reports/sleep_totals.html:8 +msgid "Sleep Totals" +msgstr "Schlaf Total" + +#: dashboard/templatetags/cards.py:420 +msgid "Diaper change frequency" +msgstr "Frequenz Windelwechsel" + +#: dashboard/templatetags/cards.py:466 +msgid "Feeding frequency" +msgstr "Frequenz Mahlzeiten" + +#: dashboard/templatetags/cards.py:328 +msgid "Average nap duration" +msgstr "Durschnittliche Nickerchen-Dauer" + +#: dashboard/templatetags/cards.py:335 +msgid "Average naps per day" +msgstr "Durschnittliche Anzahl Nickerchen" + +#: dashboard/templatetags/cards.py:345 +msgid "Average sleep duration" +msgstr "Durchschnittliche Schlafdauer" + +#: dashboard/templatetags/cards.py:352 +msgid "Average awake duration" +msgstr "Durchschnittlich wach" + +#: dashboard/templatetags/cards.py:362 +msgid "Weight change per week" +msgstr "Gewichtsänderung pro Woche" + +#: reports/graphs/diaperchange_lifetimes.py:35 +msgid "Diaper Lifetimes" +msgstr "Windel-Lebensdauer" + +#: reports/graphs/diaperchange_lifetimes.py:36 +msgid "Time between changes (hours)" +msgstr "Zeit zwischen Wechseln (Stunden)" + +#: reports/graphs/diaperchange_types.py:41 reports/graphs/feeding_amounts.py:58 +msgid "Total" +msgstr "Total" + +#: reports/graphs/diaperchange_types.py:48 +msgid "Diaper Change Types" +msgstr "Windelwechsel Typen" + +#: reports/graphs/diaperchange_types.py:51 +msgid "Number of changes" +msgstr "Anzahl Wechsel" + +#: reports/graphs/feeding_duration.py:38 +msgid "Average duration" +msgstr "Durchschnittliche Dauer" + +#: reports/graphs/feeding_duration.py:46 +msgid "Total feedings" +msgstr "Total Mahlzeiten" + +#: reports/graphs/feeding_duration.py:55 +msgid "Average Feeding Durations" +msgstr "Durchschnittliche Mahlzeiten-Dauer" + +#: reports/graphs/feeding_duration.py:58 +msgid "Average duration (minutes)" +msgstr "Durchschnittlicher Dauer (Minuten)" + +#: reports/graphs/feeding_duration.py:60 +msgid "Number of feedings" +msgstr "Anzahl Mahlzeiten" + +#: reports/graphs/sleep_pattern.py:148 +msgid "Sleep Pattern" +msgstr "Schlaf-Rhythmus" + +#: reports/graphs/sleep_pattern.py:165 +msgid "Time of day" +msgstr "Tageszeit" + +#: reports/graphs/sleep_totals.py:48 +msgid "Total sleep" +msgstr "Total Schlaf" + +#: reports/graphs/sleep_totals.py:58 +msgid "Sleep Totals" +msgstr "Totale Schlafzeit" + +#: reports/graphs/sleep_totals.py:61 +msgid "Hours of sleep" +msgstr "Schlafstunden" + +#: reports/graphs/weight_change.py:27 +msgid "Weight" +msgstr "Gewicht" + +#: reports/templates/reports/feeding_duration.html:4 +#: reports/templates/reports/feeding_duration.html:8 +msgid "Average Feeding Durations" +msgstr "Durchschnittliche Mahlzeitendauer" + +#: dashboard/templates/dashboard/child_button_group.html:12 +#: reports/templates/reports/base.html:9 +#: reports/templates/reports/report_list.html:4 +msgid "Reports" +msgstr "Reports" + +#: reports/templates/reports/report_base.html:19 +msgid "There is no enough data to generate this report." +msgstr "Es gibt nicht genügend Daten um diesen Bericht zu generieren." + +#: core/models.py:296 +msgid "Both breasts" +msgstr "Beide Brüste" + +#: babybuddy/settings/base.py:173 +msgid "German" +msgstr "Deutsch" + +#: babybuddy/settings/base.py:177 +msgid "Spanish" +msgstr "Spanisch" + +#: babybuddy/settings/base.py:178 +msgid "Swedish" +msgstr "Schwedisch" + +#: babybuddy/settings/base.py:179 +msgid "Turkish" +msgstr "Türkisch" + +#: babybuddy/templates/error/403.html:9 +msgid "You do not have permission to access this resource. Contact a site administrator for assistance." +msgstr "Du hast keine Berechtigung auf diese Ressource zuzugreifen. Für Unterstützung kontaktiere bitte den Administrator." + +#: babybuddy/templates/babybuddy/nav-dropdown.html:75 +#: babybuddy/templates/babybuddy/nav-dropdown.html:179 core/models.py:506 +#: core/models.py:519 core/models.py:520 core/models.py:523 +#: core/templates/core/temperature_confirm_delete.html:7 +#: core/templates/core/temperature_form.html:13 +#: core/templates/core/temperature_list.html:4 +#: core/templates/core/temperature_list.html:7 +#: core/templates/core/temperature_list.html:12 +#: core/templates/core/temperature_list.html:29 +msgid "Temperature" +msgstr "Temperatur" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:185 +msgid "Temperature reading" +msgstr "Temperatur Messung" + +#: babybuddy/templates/babybuddy/welcome.html:14 +msgid "Learn about and predict baby's needs without (as much) guess work by using Baby Buddy to track —" +msgstr "Lerne und sehe die Bedürfnisse deines Babys voraus, ohne (allzu viel)Spekulation indem du Baby Buddy verwendest —" + +#: babybuddy/templates/babybuddy/welcome.html:56 +msgid "As the amount of entries grows, Baby Buddy will help parents and caregivers to identify small patterns in baby's habits using the dashboard and graphs. Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and dads with 2AM feedings and changings. To get started, just click the button below to add your first (or second, third, etc.) child!" +msgstr "Während die Anzahl Einträge wächst, hilft Baby Buddy Eltern und Pflegenden, mit Hilfe des Dashboards und Diagrammen, kleine Muster im Verhalten ihres Babys zu erkennen. Baby Buddy ist Mobiltelefon-Freundlich und benutzt ein dunkles Design, um erschöpften Müttern und Vätern beim Füttern und Windel-Wechseln um 2 Uhr Nachts zu unterstützen. Um loszulegen, klicke einfach auf den untenstehenden Button, um das erste (oder zweite, dritte, etc.) Kind hinzuzufügen!" + +#: babybuddy/templates/registration/password_reset_confirm.html:13 +msgid "Oh snap! The two passwords did not match. Please try again." +msgstr "Oh nein! Die beiden Passwörter stimmen nicht überein. Bitte versuche es erneut." + +#: babybuddy/templates/registration/password_reset_done.html:9 +msgid "We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly." +msgstr "Wenn ein Account mit dieser E-Mail-Adresse existiert, haben wir dir Anweisungen zum Zurücksetzen des Passworts an dieselbe Adresse gesendet." + +#: babybuddy/templates/registration/password_reset_done.html:15 +msgid "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder." +msgstr "Falls du die E-Mail nicht erhältst, überprüfe, dass du die registrierte Adresse eingegeben hast und überprüfe deinen Spam-Ordner." + +#: babybuddy/templates/registration/password_reset_form.html:9 +msgid "Enter your account email address in the form below. If the address is valid, you will receive instructions for resetting your password." +msgstr "Bitte gib deine Account E-Mail-Adresse ins folgende Formular ein. Wenn die Adresse gültig ist, erhältst du Anweisungen um das Passwort zurückzusetzen." + +#: core/models.py:285 +msgid "Fortified breast milk" +msgstr "Angereicherte Brustmilch" + +#: core/templates/core/temperature_confirm_delete.html:4 +msgid "Delete a Temperature Reading" +msgstr "Temperaturmessung löschen" + +#: core/templates/core/temperature_form.html:8 +#: core/templates/core/temperature_form.html:17 +msgid "Add a Temperature Reading" +msgstr "Temperaturmessung hinzufügen" + +#: core/templates/core/temperature_form.html:27 +msgid "Add a Temperature Entry" +msgstr "Temperaturmessung hinzufügen" + +#: core/templates/core/temperature_list.html:70 +msgid "No temperature entries found." +msgstr "Keine Temperaturmessungen gefunden." + +#: core/templates/core/timer_detail.html:34 +msgid "%(timer)s created by %(user)s" +msgstr "%(timer)s von %(user)s erstellt" + +#: core/utils.py:40 +msgid "%(hours)s hour" +msgid_plural "%(hours)s hours" +msgstr[0] "%(hours)s Stunde" +msgstr[1] "%(hours)s Stunden" + +#: core/utils.py:44 +msgid "%(minutes)s minute" +msgid_plural "%(minutes)s minutes" +msgstr[0] "%(minutes)s Minute" +msgstr[1] "%(minutes)s Minuten" + +#: core/utils.py:50 +msgid "%(seconds)s second" +msgid_plural "%(seconds)s seconds" +msgstr[0] "%(seconds)s Sekunde" +msgstr[1] "%(seconds)s Sekunden" + +#: core/views.py:69 core/views.py:146 +msgid "%(model)s entry deleted." +msgstr "%(model)s Eintrag geändert! " + +#: core/views.py:366 +msgid "%(model)s reading added!" +msgstr "%(model)s Eintrag hinzugefügt!" + +#: core/views.py:374 +msgid "%(model)s reading for %(child)s updated." +msgstr "%(model)s Eintrag für %(child)s geändert! " + +#: dashboard/templates/cards/timer_list.html:27 +msgid "Started by %(user)s at %(start)s" +msgstr "Gestartet von %(user)s um %(start)s" + +#: reports/templates/reports/feeding_amounts.html:4 +#: reports/templates/reports/feeding_amounts.html:8 +#: reports/templates/reports/report_list.html:14 +msgid "Feeding Amounts" +msgstr "Mahlzeiten" + +#: reports/graphs/feeding_amounts.py:27 +msgid "Total feeding amount" +msgstr "Total Mahlzeiten" + +#: reports/graphs/feeding_amounts.py:36 +msgid "Total Feeding Amounts" +msgstr "Durchschnittliche Mahlzeiten-Dauer" + +#: reports/graphs/feeding_amounts.py:72 +msgid "Feeding amount" +msgstr "Mahlzeit" + +#: reports/templates/reports/report_base.html:17 +msgid "There is not enough data to generate this report." +msgstr "Es gibt nicht genügend Daten um diesen Report zu generieren." + +#: babybuddy/models.py:69 +msgid "Timezone" +msgstr "Zeitzone" + +#: babybuddy/templates/admin/base_site.html:4 +#: babybuddy/templates/admin/base_site.html:7 +#: babybuddy/templates/babybuddy/nav-dropdown.html:359 +msgid "Database Admin" +msgstr "Datenbankadministration" + +#: core/templates/core/child_list.html:15 +msgid "Add Child" +msgstr "Kind hinzufügen" + +#: core/templates/core/diaperchange_list.html:15 +msgid "Add Diaper Change" +msgstr "Windelwechsel hinzufügen" + +#: core/templates/core/feeding_list.html:15 +msgid "Add Feeding" +msgstr "Mahlzeit hinzufügen" + +#: core/templates/core/note_list.html:15 +msgid "Add Note" +msgstr "Notiz hinzufügen" + +#: core/templates/core/sleep_list.html:15 +msgid "Add Sleep" +msgstr "Nickerchen hinzufügen" + +#: core/templates/core/temperature_list.html:15 +msgid "Add Temperature Reading" +msgstr "Temperaturmessung hinzufügen" + +#: core/templates/core/timer_confirm_delete_inactive.html:5 +msgid "Delete All Inactive Timers" +msgstr "Alle inaktiven Timer löschen" + +#: core/templates/core/timer_confirm_delete_inactive.html:10 +msgid "Delete Inactive" +msgstr "Inaktive löschen" + +#: core/templates/core/timer_confirm_delete_inactive.html:17 +msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" +msgstr "Bist du dicher, dass du %(number)s inaktive timer%(plural)s löschen möchtest?" + +#: core/templates/core/timer_list.html:68 +msgid "Delete Inactive Timers" +msgstr "Inaktive Timer löschen" + +#: core/templates/core/tummytime_list.html:15 +msgid "Add Tummy Time" +msgstr "Bauchzeit hinzufügen" + +#: core/templates/core/weight_list.html:15 +msgid "Add Weight" +msgstr "Gewicht hinzufügen" + +#: core/views.py:501 +msgid "All inactive timers deleted." +msgstr "Alle inaktiven Timer gelöscht." + +#: core/views.py:511 +msgid "No inactive timers exist." +msgstr "Keine inaktiven Timer vorhanden." + +#: dashboard/templates/cards/feeding_last_method.html:19 +msgid "most recent" +msgstr "letzte" + +#: dashboard/templates/cards/feeding_last_method.html:21 +msgid "%(n)s feeding%(plural)s ago" +msgstr "vor %(n)s Mahlzeit%(plural)sen" + +#: dashboard/templates/cards/sleep_last.html:6 +msgid "Last Sleep" +msgstr "Letzter Schlaf" + +#: reports/templates/reports/report_list.html:11 +msgid "Diaper Change Amounts" +msgstr "Windelwechsel Mengen" + +#: reports/graphs/diaperchange_amounts.py:27 +msgid "Diaper change amount" +msgstr "Windelwechsel Mengen" + +#: reports/graphs/diaperchange_amounts.py:36 +msgid "Diaper Change Amounts" +msgstr "Windelwechsel Mengen" + +#: reports/graphs/diaperchange_amounts.py:39 +msgid "Change amount" +msgstr "Windel Menge" + +#: reports/templates/reports/diaperchange_amounts.html:4 +#: reports/templates/reports/diaperchange_amounts.html:8 +msgid "Diaper Amounts" +msgstr "Windel Mengen" + +#: babybuddy/models.py:21 +msgid "If supported by browser, the dashboard will only refresh when visible, and also when receiving focus." +msgstr "Wenn dies vom Browser unterstützt wird, wird das Dashboard nur aktualisiert, wenn es sichtbar ist und auch wenn es den Fokus erhält." + +#: babybuddy/models.py:40 +msgid "Hide Empty Dashboard Cards" +msgstr "Dashboard Karten ohne Inhalt verbergen" + +#: babybuddy/models.py:43 +msgid "Hide data older than" +msgstr "Verstecke Daten älter als" + +#: babybuddy/models.py:45 +msgid "This setting controls which data will be shown in the dashboard." +msgstr "Diese Einstellung kontrolliert welche Daten im Dashboard angezeigt werden." + +#: babybuddy/models.py:51 +msgid "show all data" +msgstr "alle Daten anzeigen" + +#: babybuddy/models.py:52 +msgid "1 day" +msgstr "1 Tag" + +#: babybuddy/models.py:53 +msgid "2 days" +msgstr "2 Tage" + +#: babybuddy/models.py:54 +msgid "3 days" +msgstr "3 Tage" + +#: babybuddy/models.py:55 +msgid "1 week" +msgstr "1 Woche" + +#: babybuddy/models.py:56 +msgid "4 weeks" +msgstr "4 Wochen" + +#: babybuddy/settings/base.py:168 +msgid "Dutch" +msgstr "Niederländisch" + +#: babybuddy/settings/base.py:172 +msgid "Finnish" +msgstr "Finnisch" + +#: babybuddy/settings/base.py:174 +msgid "Italian" +msgstr "Italienisch" + +#: babybuddy/settings/base.py:175 +msgid "Polish" +msgstr "Polnisch" + +#: babybuddy/settings/base.py:176 +msgid "Portuguese" +msgstr "Portugiesisch" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:118 +#: core/templates/timeline/timeline.html:4 +#: core/templates/timeline/timeline.html:7 +#: dashboard/templates/dashboard/child_button_group.html:9 +msgid "Timeline" +msgstr "Zeitverlauf" + +#: core/models.py:286 +msgid "Solid food" +msgstr "Feste Nahrung" + +#: core/models.py:297 +msgid "Parent fed" +msgstr "Durch Eltern gefüttert" + +#: core/models.py:298 +msgid "Self fed" +msgstr "Selber gefüttert" + +#: core/templates/core/diaperchange_list.html:29 +msgid "Contents" +msgstr "Inhalte" + +#: core/templates/core/timer_detail.html:77 +msgid "Restart timer" +msgstr "Timer neustarten" + +#: core/templates/core/timer_detail.html:84 +msgid "Delete timer" +msgstr "Timer löschen" + +#: core/templatetags/datetime.py:60 +msgid "Today" +msgstr "heute" + +#: core/templatetags/datetime.py:75 +msgid "{}, {}" +msgstr "{}, {}" + +#: core/templatetags/duration.py:25 +msgid "0 days" +msgstr "0 Tage" + +#: core/timeline.py:137 +msgid "Amount: %(amount).0f" +msgstr "Menge: %(amount).0f" + +#: core/timeline.py:157 +msgid "Contents: %(contents)s" +msgstr "Inhalte: %(contents)s" + +#: dashboard/templates/cards/diaperchange_last.html:12 +#: dashboard/templates/cards/feeding_last.html:12 +#: dashboard/templates/cards/sleep_last.html:12 +#: dashboard/templates/cards/tummytime_last.html:13 +msgid "
%(since)s ago
%(time)s" +msgstr "
vor %(since)s
%(time)s" + +#: dashboard/templates/cards/feeding_day.html:6 +msgid "Today's Feeding" +msgstr "Heute gefüttert" + +#: dashboard/templates/cards/feeding_day.html:20 +msgid "%(count)s feeding entries" +msgstr "%(count)s Fütterungseinträge" + +#: dashboard/templates/cards/statistics.html:42 +msgid "No data yet" +msgstr "Noch keine Daten" + +#: reports/templates/reports/report_list.html:21 +msgid "Tummy Time Durations (Sum)" +msgstr "Bauchzeit Dauer (Summe)" + +#: core/templates/timeline/_timeline.html:61 +#: dashboard/templates/dashboard/child_button_group.html:20 +msgid "Edit" +msgstr "Bearbeiten" + +#: dashboard/templatetags/cards.py:456 +msgid "Feeding frequency (past 3 days)" +msgstr "Mahlzeitenintervall (letzte 3 Tage)" + +#: dashboard/templatetags/cards.py:460 +msgid "Feeding frequency (past 2 weeks)" +msgstr "Mahlzeitenintervall (letzte 2 Wochen)" + +#: reports/graphs/tummytime_duration.py:34 +msgid "Total duration" +msgstr "Länge insgesamt" + +#: reports/graphs/tummytime_duration.py:41 +#: reports/graphs/tummytime_duration.py:55 +msgid "Number of sessions" +msgstr "Anzahl der Sessions" + +#: reports/graphs/tummytime_duration.py:50 +msgid "Total Tummy Time Durations" +msgstr "Totalle Bauchzeit Dauer" + +#: reports/graphs/tummytime_duration.py:53 +msgid "Total duration (minutes)" +msgstr "Länge insgesamt (Minuten)" + +#: reports/templates/reports/tummytime_duration.html:4 +#: reports/templates/reports/tummytime_duration.html:8 +msgid "Total Tummy Time Durations" +msgstr "Totalle Bauchzeit Dauer" + +#: babybuddy/settings/base.py:169 +msgid "English (US)" +msgstr "Englisch (US)" + +#: babybuddy/settings/base.py:170 +msgid "English (UK)" +msgstr "Englisch (UK)" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:171 +msgid "Measurements" +msgstr "Messungen" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:207 core/models.py:369 +#: core/models.py:381 core/models.py:382 core/models.py:385 +#: core/templates/core/height_confirm_delete.html:7 +#: core/templates/core/height_form.html:13 +#: core/templates/core/height_list.html:4 +#: core/templates/core/height_list.html:7 +#: core/templates/core/height_list.html:12 +#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 +#: reports/graphs/height_change.py:30 +#: reports/templates/reports/height_change.html:4 +#: reports/templates/reports/height_change.html:8 +#: reports/templates/reports/report_list.html:17 +msgid "Height" +msgstr "Größe" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:213 +msgid "Height entry" +msgstr "Größen Eintrag" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:221 core/models.py:338 +#: core/models.py:351 core/models.py:352 core/models.py:355 +#: core/templates/core/head_circumference_confirm_delete.html:7 +#: core/templates/core/head_circumference_form.html:13 +#: core/templates/core/head_circumference_list.html:4 +#: core/templates/core/head_circumference_list.html:7 +#: core/templates/core/head_circumference_list.html:12 +#: core/templates/core/head_circumference_list.html:29 +#: reports/graphs/head_circumference_change.py:19 +#: reports/graphs/head_circumference_change.py:30 +#: reports/templates/reports/head_circumference_change.html:4 +#: reports/templates/reports/head_circumference_change.html:8 +#: reports/templates/reports/report_list.html:16 +msgid "Head Circumference" +msgstr "Kopfumfang" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:227 +msgid "Head Circumference entry" +msgstr "Kopfumfang Eintrag" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:235 core/models.py:139 +#: core/models.py:151 core/models.py:152 core/models.py:155 +#: core/templates/core/bmi_confirm_delete.html:7 +#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 +#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 +#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 +#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 +#: reports/templates/reports/bmi_change.html:8 +msgid "BMI" +msgstr "BMI" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:241 +msgid "BMI entry" +msgstr "BMI Eintrag" + +#: core/models.py:452 +msgid "Napping" +msgstr "Nickerchen" + +#: core/templates/core/bmi_confirm_delete.html:4 +msgid "Delete a BMI Entry" +msgstr "Lösche BMI Eintrag" + +#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 +#: core/templates/core/bmi_form.html:27 +msgid "Add a BMI Entry" +msgstr "Füge BMI Eintrag hinzu" + +#: core/templates/core/bmi_list.html:15 +msgid "Add BMI" +msgstr "Füge BMI hinzu" + +#: core/templates/core/bmi_list.html:70 +msgid "No bmi entries found." +msgstr "Keine BMI Einträge gefunden." + #: core/templates/core/head_circumference_confirm_delete.html:4 msgid "Delete a Head Circumference Entry" msgstr "Lösche Kopfumfang Eintrag" @@ -1302,25 +1876,134 @@ msgstr "Füge Größe hinzu" msgid "No height entries found." msgstr "Keine Größen Einträge gefunden." -#: core/templates/core/note_confirm_delete.html:4 -msgid "Delete a Note" -msgstr "Eine Notiz löschen" +#: core/templates/timeline/_timeline.html:44 +msgid "Duration: %(duration)s" +msgstr "Dauer: %(duration)s" -#: core/templates/core/note_form.html:6 -msgid "Update a Note" -msgstr "Eine Notiz ändern" +#: core/templates/timeline/_timeline.html:53 +msgid "%(since)s since previous" +msgstr "%(since)s seit vorherigem" -#: core/templates/core/note_form.html:8 core/templates/core/note_form.html:27 -msgid "Add a Note" -msgstr "Notiz hinzufügen" +#: core/templates/timeline/_timeline.html:85 +msgid "No events" +msgstr "Keine Ereignisse" -#: core/templates/core/note_list.html:15 -msgid "Add Note" -msgstr "Notiz hinzufügen" +#: core/timeline.py:185 +msgid "%(child)s had a %(type)s diaper change." +msgstr "%(child)s hatten einen %(type)s Windelwechsel." -#: core/templates/core/note_list.html:64 -msgid "No notes found." -msgstr "Keine Notizen gefunden." +#: dashboard/templatetags/cards.py:372 +msgid "Height change per week" +msgstr "Größenänderung pro Woche" + +#: dashboard/templatetags/cards.py:382 +msgid "Head circumference change per week" +msgstr "Kopfumfang Änderung pro woche" + +#: dashboard/templatetags/cards.py:392 +msgid "BMI change per week" +msgstr "BMI Änderung pro Woche" + +#: reports/graphs/bmi_change.py:27 +msgid "BMI" +msgstr "BMI" + +#: reports/graphs/feeding_amounts.py:69 +msgid "Total Feeding Amount by Type" +msgstr "Gesamt Fütterungsmenge pro Typ" + +#: reports/graphs/head_circumference_change.py:27 +msgid "Head Circumference" +msgstr "Kopfumfang" + +#: reports/graphs/height_change.py:27 +msgid "Height" +msgstr "Größe" + +#: babybuddy/settings/base.py:167 +msgid "Chinese (simplified)" +msgstr "Chinesisch (vereinfacht)" + +#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 +msgid "Bad Request" +msgstr "Falsche Anfrage" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:14 +msgid "How to Fix" +msgstr "Wie reparieren" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:15 +msgid "Add %(origin)s to the CSRF_TRUSTED_ORIGINS environment variable. If multiple origins are required separate with commas." +msgstr "Füge %(origin)s zur CSRF_TRUSTED_ORIGINS Umgebungsvariable hinzu. Teile mehrere Ursprünge mit Kommas." + +#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 +msgid "Page Not Found" +msgstr "Seite nicht gefunden" + +#: babybuddy/templates/error/404.html:9 +msgid "The path %(request_path)s does not exist." +msgstr "Der Pfad %(request_path)s existiert nicht." + +#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 +msgid "Server Error" +msgstr "Serverfehler" + +#: babybuddy/templates/error/base.html:14 +msgid "Return to Baby Buddy" +msgstr "Zurück zu Baby Buddy" + +#: babybuddy/views.py:43 +msgid "Forbidden" +msgstr "Verboten" + +#: babybuddy/views.py:44 +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF Verifikation fehlgeschlagen. Anfrage abgebrochen." + +#: babybuddy/settings/base.py:166 +msgid "Catalan" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:93 +#: babybuddy/templates/babybuddy/nav-dropdown.html:316 core/models.py:437 +#: core/models.py:438 core/models.py:441 +#: core/templates/core/pumping_confirm_delete.html:7 +#: core/templates/core/pumping_form.html:13 +#: core/templates/core/pumping_list.html:4 +#: core/templates/core/pumping_list.html:7 +#: core/templates/core/pumping_list.html:12 +#: reports/templates/reports/pumping_amounts.html:4 +#: reports/templates/reports/pumping_amounts.html:8 +msgid "Pumping" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:322 +msgid "Pumping entry" +msgstr "" + +#: core/filters.py:11 core/models.py:96 core/models.py:115 +msgid "Tag" +msgstr "" + +#: core/forms.py:136 +msgid "Click on the tags to add (+) or remove (-) tags or use the text editor to create new tags." +msgstr "" + +#: core/models.py:90 +msgid "Last used" +msgstr "" + +#: core/models.py:97 core/templates/core/bmi_list.html:30 +#: core/templates/core/diaperchange_list.html:32 +#: core/templates/core/feeding_list.html:35 +#: core/templates/core/head_circumference_list.html:30 +#: core/templates/core/height_list.html:30 +#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 +#: core/templates/core/temperature_list.html:30 +#: core/templates/core/tummytime_list.html:31 +#: core/templates/core/weight_list.html:30 +msgid "Tags" +msgstr "" #: core/templates/core/pumping_confirm_delete.html:4 msgid "Delete a Pumping Entry" @@ -1340,201 +2023,6 @@ msgstr "" msgid "No pumping entries found." msgstr "" -#: core/templates/core/quick_timer_nav.html:9 -#: core/templates/core/quick_timer_nav.html:29 -#: core/templates/core/timer_nav.html:37 -msgid "Quick Start Timer" -msgstr "Quick-Start Timer" - -#: core/templates/core/quick_timer_nav.html:19 -#: core/templates/core/timer_nav.html:28 -#, fuzzy -#| msgid "Quick Start Timer" -msgid "Quick Start Timer For…" -msgstr "Quick-Start Timer" - -#: core/templates/core/sleep_confirm_delete.html:4 -msgid "Delete a Sleep Entry" -msgstr "Einen Schlaf-Eintrag löschen" - -#: core/templates/core/sleep_form.html:6 -msgid "Update a Sleep Entry" -msgstr "Einen Schlaf-Eintrag ändern" - -#: core/templates/core/sleep_form.html:8 core/templates/core/sleep_form.html:27 -msgid "Add a Sleep Entry" -msgstr "Schlaf-Eintrag hinzufügen" - -#: core/templates/core/sleep_list.html:15 -msgid "Add Sleep" -msgstr "Nickerchen hinzufügen" - -#: core/templates/core/sleep_list.html:25 -#: core/templates/core/timer_form.html:12 -#: core/templates/core/timer_list.html:24 -#: core/templates/core/tummytime_list.html:24 -msgid "Start" -msgstr "Start" - -#: core/templates/core/sleep_list.html:26 -#: core/templates/core/timer_list.html:30 -#: core/templates/core/tummytime_list.html:25 -msgid "End" -msgstr "Ende" - -#: core/templates/core/sleep_list.html:31 -msgid "Nap" -msgstr "Nickerchen" - -#: core/templates/core/sleep_list.html:74 -msgid "No sleep entries found." -msgstr "Keine Schlaf-Einträge gefunden." - -#: core/templates/core/temperature_confirm_delete.html:4 -msgid "Delete a Temperature Reading" -msgstr "Temperaturmessung löschen" - -#: core/templates/core/temperature_form.html:8 -#: core/templates/core/temperature_form.html:17 -msgid "Add a Temperature Reading" -msgstr "Temperaturmessung hinzufügen" - -#: core/templates/core/temperature_form.html:27 -msgid "Add a Temperature Entry" -msgstr "Temperaturmessung hinzufügen" - -#: core/templates/core/temperature_list.html:15 -msgid "Add Temperature Reading" -msgstr "Temperaturmessung hinzufügen" - -#: core/templates/core/temperature_list.html:70 -msgid "No temperature entries found." -msgstr "Keine Temperaturmessungen gefunden." - -#: core/templates/core/timer_confirm_delete.html:5 -#, python-format -msgid "Delete %(object)s" -msgstr "Lösche %(object)s" - -#: core/templates/core/timer_confirm_delete_inactive.html:5 -msgid "Delete All Inactive Timers" -msgstr "Alle inaktiven Timer löschen" - -#: core/templates/core/timer_confirm_delete_inactive.html:10 -msgid "Delete Inactive" -msgstr "Inaktive löschen" - -#: core/templates/core/timer_confirm_delete_inactive.html:17 -#, fuzzy, python-format -#| msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" -msgid "Are you sure you want to delete %(number)s inactive timer?" -msgid_plural "Are you sure you want to delete %(number)s inactive timers?" -msgstr[0] "" -"Bist du dicher, dass du %(number)s inaktive timer%(plural)s löschen möchtest?" -msgstr[1] "" -"Bist du dicher, dass du %(number)s inaktive timer%(plural)s löschen möchtest?" - -#: core/templates/core/timer_detail.html:28 -msgid "Started" -msgstr "Gestartet" - -#: core/templates/core/timer_detail.html:30 -msgid "Stopped" -msgstr "Gestoppt" - -#: core/templates/core/timer_detail.html:34 -#, python-format -msgid "%(timer)s created by %(user)s" -msgstr "%(timer)s von %(user)s erstellt" - -#: core/templates/core/timer_detail.html:63 -msgid "Timer actions" -msgstr "Timer Aktionen" - -#: core/templates/core/timer_detail.html:77 -msgid "Restart timer" -msgstr "Timer neustarten" - -#: core/templates/core/timer_detail.html:84 -msgid "Delete timer" -msgstr "Timer löschen" - -#: core/templates/core/timer_form.html:22 -#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:15 -msgid "Start Timer" -msgstr "Starte Timer" - -#: core/templates/core/timer_list.html:58 -msgid "No timer entries found." -msgstr "Keine Timer-Einträge gefunden." - -#: core/templates/core/timer_list.html:68 -msgid "Delete Inactive Timers" -msgstr "Inaktive Timer löschen" - -#: core/templates/core/timer_nav.html:20 -msgid "View Timers" -msgstr "Zeige Timer" - -#: core/templates/core/timer_nav.html:44 -#: dashboard/templates/cards/timer_list.html:6 -msgid "Active Timers" -msgstr "Aktive Timer" - -#: core/templates/core/timer_nav.html:50 -#: dashboard/templates/cards/diaperchange_last.html:17 -#: dashboard/templates/cards/diaperchange_types.html:12 -#: dashboard/templates/cards/feeding_day.html:20 -#: dashboard/templates/cards/feeding_day.html:52 -#: dashboard/templates/cards/feeding_last.html:17 -#: dashboard/templates/cards/feeding_last_method.html:43 -#: dashboard/templates/cards/sleep_last.html:17 -#: dashboard/templates/cards/sleep_naps_day.html:18 -#: dashboard/templates/cards/sleep_recent.html:20 -#: dashboard/templates/cards/sleep_recent.html:52 -#: dashboard/templates/cards/tummytime_day.html:14 -msgid "None" -msgstr "Keine" - -#: core/templates/core/tummytime_confirm_delete.html:4 -msgid "Delete a Tummy Time Entry" -msgstr "Bauchzeit-Eintrag löschen" - -#: core/templates/core/tummytime_form.html:6 -msgid "Update a Tummy Time Entry" -msgstr "Bauchzeit-Eintrag ändern" - -#: core/templates/core/tummytime_form.html:8 -#: core/templates/core/tummytime_form.html:27 -msgid "Add a Tummy Time Entry" -msgstr "Bauchzeit-Eintrag hinzufügen" - -#: core/templates/core/tummytime_list.html:15 -msgid "Add Tummy Time" -msgstr "Bauchzeit hinzufügen" - -#: core/templates/core/tummytime_list.html:67 -msgid "No tummy time entries found." -msgstr "Keine Bauchzeit-Einträge gefunden." - -#: core/templates/core/weight_confirm_delete.html:4 -msgid "Delete a Weight Entry" -msgstr "Gewichts-Eintrag löschen" - -#: core/templates/core/weight_form.html:8 -#: core/templates/core/weight_form.html:17 -#: core/templates/core/weight_form.html:27 -msgid "Add a Weight Entry" -msgstr "Gewichts-Eintrag hinzufügen" - -#: core/templates/core/weight_list.html:15 -msgid "Add Weight" -msgstr "Gewicht hinzufügen" - -#: core/templates/core/weight_list.html:70 -msgid "No weight entries found." -msgstr "Keine Gewichts-Einträge gefunden." - #: core/templates/core/widget_tag_editor.html:22 msgid "Tag name" msgstr "" @@ -1573,570 +2061,66 @@ msgctxt "Error modal" msgid "Close" msgstr "" -#: core/templates/timeline/_timeline.html:38 -#, python-format -msgid "%(since)s ago (%(time)s)" -msgstr "Vor %(since)s : (%(time)s)" - -#: core/templates/timeline/_timeline.html:44 -#, python-format -msgid "Duration: %(duration)s" -msgstr "Dauer: %(duration)s" - -#: core/templates/timeline/_timeline.html:53 -#, python-format -msgid "%(since)s since previous" -msgstr "%(since)s seit vorherigem" - -#: core/templates/timeline/_timeline.html:61 -#: dashboard/templates/dashboard/child_button_group.html:20 -msgid "Edit" -msgstr "Bearbeiten" - -#: core/templates/timeline/_timeline.html:85 -msgid "No events" -msgstr "Keine Ereignisse" - -#: core/templatetags/datetime.py:60 -msgid "Today" -msgstr "heute" - -#: core/templatetags/datetime.py:75 -msgid "{}, {}" -msgstr "{}, {}" - -#: core/templatetags/duration.py:25 -msgid "0 days" -msgstr "0 Tage" - -#: core/templatetags/duration.py:111 -#: dashboard/templates/cards/diaperchange_types.html:49 -msgid "today" -msgstr "heute" - -#: core/templatetags/duration.py:113 -#: dashboard/templates/cards/diaperchange_types.html:51 -msgid "yesterday" -msgstr "gestern" - -#: core/templatetags/duration.py:116 -#, fuzzy -#| msgid "%(key)s days ago" -msgid " days ago" -msgstr "Vor %(key)s Tagen" - -#: core/timeline.py:53 -#, python-format -msgid "%(child)s started tummy time!" -msgstr "%(child)s liegt nun auf dem Bauch." - -#: core/timeline.py:65 -#, python-format -msgid "%(child)s finished tummy time." -msgstr "%(child)s liegt nicht mehr auf dem Bauch." - -#: core/timeline.py:91 -#, python-format -msgid "%(child)s fell asleep." -msgstr "%(child)s ist eingeschlafen." - -#: core/timeline.py:103 -#, python-format -msgid "%(child)s woke up." -msgstr "%(child)s ist aufgewacht." - -#: core/timeline.py:137 -#, python-format -msgid "Amount: %(amount).0f" -msgstr "Menge: %(amount).0f" - -#: core/timeline.py:145 -#, python-format -msgid "%(child)s started feeding." -msgstr "%(child)s hat begonnen zu essen." - -#: core/timeline.py:158 -#, python-format -msgid "%(child)s finished feeding." -msgstr "%(child)s hat fertig gegessen." - -#: core/timeline.py:185 -#, python-format -msgid "%(child)s had a %(type)s diaper change." -msgstr "%(child)s hatten einen %(type)s Windelwechsel." - -#: core/utils.py:40 -#, python-format -msgid "%(hours)s hour" -msgid_plural "%(hours)s hours" -msgstr[0] "%(hours)s Stunde" -msgstr[1] "%(hours)s Stunden" - -#: core/utils.py:44 -#, python-format -msgid "%(minutes)s minute" -msgid_plural "%(minutes)s minutes" -msgstr[0] "%(minutes)s Minute" -msgstr[1] "%(minutes)s Minuten" - -#: core/utils.py:50 -#, python-format -msgid "%(seconds)s second" -msgid_plural "%(seconds)s seconds" -msgstr[0] "%(seconds)s Sekunde" -msgstr[1] "%(seconds)s Sekunden" - -#: core/views.py:33 -#, python-format -msgid "%(model)s entry for %(child)s added!" -msgstr "%(model)s Eintrag für %(child)s hinzugefügt!" - -#: core/views.py:35 core/views.py:308 -#, python-format -msgid "%(model)s entry added!" -msgstr "%(model)s Eintrag hinzugefügt!" - -#: core/views.py:61 core/views.py:316 -#, python-format -msgid "%(model)s entry for %(child)s updated." -msgstr "%(model)s Eintrag für %(child)s geändert." - -#: core/views.py:63 -#, python-format -msgid "%(model)s entry updated." -msgstr "%(model)s Eintrag geändert." - -#: core/views.py:69 core/views.py:146 -#, python-format -msgid "%(model)s entry deleted." -msgstr "%(model)s Eintrag geändert! " - -#: core/views.py:115 -#, python-format -msgid "%(first_name)s %(last_name)s added!" -msgstr "%(first_name)s %(last_name)s added!" - -#: core/views.py:366 -#, python-format -msgid "%(model)s reading added!" -msgstr "%(model)s Eintrag hinzugefügt!" - -#: core/views.py:374 -#, python-format -msgid "%(model)s reading for %(child)s updated." -msgstr "%(model)s Eintrag für %(child)s geändert! " - -#: core/views.py:483 -#, python-format -msgid "%(timer)s stopped." -msgstr "%(timer)s gestoppt." - -#: core/views.py:506 -msgid "All inactive timers deleted." -msgstr "Alle inaktiven Timer gelöscht." - -#: core/views.py:516 -msgid "No inactive timers exist." -msgstr "Keine inaktiven Timer vorhanden." - -#: dashboard/templates/cards/diaperchange_last.html:6 -msgid "Last Diaper Change" -msgstr "Letzer Windelwechsel" - -#: dashboard/templates/cards/diaperchange_last.html:12 -#: dashboard/templates/cards/feeding_last.html:12 -#: dashboard/templates/cards/sleep_last.html:12 -#: dashboard/templates/cards/tummytime_last.html:13 -#, python-format -msgid "
%(since)s ago
%(time)s" -msgstr "
vor %(since)s
%(time)s" - -#: dashboard/templates/cards/diaperchange_types.html:14 -msgid "Past Week" -msgstr "Letzte Woche" - -#: dashboard/templates/cards/diaperchange_types.html:27 -msgid "wet" -msgstr "nass" - -#: dashboard/templates/cards/diaperchange_types.html:35 -msgid "solid" -msgstr "fest" - -#: dashboard/templates/cards/diaperchange_types.html:53 -#, python-format -msgid "%(key)s days ago" -msgstr "Vor %(key)s Tagen" - -#: dashboard/templates/cards/feeding_day.html:6 -msgid "Today's Feeding" -msgstr "Heute gefüttert" - -#: dashboard/templates/cards/feeding_day.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s feeding" -msgid_plural "%(counter)s feedings" -msgstr[0] "%(count)s Schlaf-Einträge" -msgstr[1] "%(count)s Schlaf-Einträge" - #: dashboard/templates/cards/feeding_day.html:32 -#: dashboard/templates/cards/sleep_recent.html:32 -#, python-format msgid "
%(since)s
" msgstr "" -#: dashboard/templates/cards/feeding_last.html:6 -msgid "Last Feeding" -msgstr "Letzte Mahlzeit" - -#: dashboard/templates/cards/feeding_last_method.html:6 -msgid "Last Feeding Method" -msgstr "Letzte Mahlzeitart" - -#: dashboard/templates/cards/feeding_last_method.html:19 -msgid "most recent" -msgstr "letzte" - -#: dashboard/templates/cards/feeding_last_method.html:21 -#, fuzzy, python-format -#| msgid "%(n)s feeding%(plural)s ago" -msgid "%(n)s feeding ago" -msgid_plural "%(n)s feedings ago" -msgstr[0] "vor %(n)s Mahlzeit%(plural)sen" -msgstr[1] "vor %(n)s Mahlzeit%(plural)sen" - -#: dashboard/templates/cards/sleep_last.html:6 -msgid "Last Sleep" -msgstr "Letzter Schlaf" - -#: dashboard/templates/cards/sleep_naps_day.html:6 -msgid "Today's Naps" -msgstr "Heutige Nickerchen" - -#: dashboard/templates/cards/sleep_naps_day.html:12 -#, fuzzy, python-format -#| msgid "%(count)s nap%(plural)s" -msgid "%(count)s nap" -msgid_plural "%(count)s naps" -msgstr[0] "%(count)s Nickerchen%(plural)s." -msgstr[1] "%(count)s Nickerchen%(plural)s." - -#: dashboard/templates/cards/sleep_recent.html:6 -#, fuzzy -#| msgid "Last Sleep" -msgid "Recent Sleep" -msgstr "Letzter Schlaf" - -#: dashboard/templates/cards/sleep_recent.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s sleep" -msgid_plural "%(counter)s sleep" -msgstr[0] "%(count)s Schlaf-Einträge" -msgstr[1] "%(count)s Schlaf-Einträge" - -#: dashboard/templates/cards/statistics.html:7 -msgid "Statistics" -msgstr "Statistiken" - -#: dashboard/templates/cards/statistics.html:25 -msgid "Not enough data" -msgstr "Nicht genügend Daten" - -#: dashboard/templates/cards/statistics.html:42 -msgid "No data yet" -msgstr "Noch keine Daten" - -#: dashboard/templates/cards/timer_list.html:12 -#, fuzzy, python-format -#| msgid "%(count)s active timer%(plural)s" -msgid "%(count)s active timer" -msgid_plural "%(count)s active timers" -msgstr[0] "%(count)s Timer%(plural)s aktiv" -msgstr[1] "%(count)s Timer%(plural)s aktiv" - -#: dashboard/templates/cards/timer_list.html:27 -#, python-format -msgid "Started by %(user)s at %(start)s" -msgstr "Gestartet von %(user)s um %(start)s" - -#: dashboard/templates/cards/tummytime_day.html:6 -msgid "Today's Tummy Time" -msgstr "Heutige Bauchzeit" - -#: dashboard/templates/cards/tummytime_day.html:22 -#, python-format -msgid "%(duration)s at %(end)s" -msgstr "%(duration)s um %(end)s" - -#: dashboard/templates/cards/tummytime_last.html:6 -msgid "Last Tummy Time" -msgstr "Letzte Bauchzeit" - -#: dashboard/templates/cards/tummytime_last.html:18 -msgid "Never" -msgstr "Nie" - -#: dashboard/templates/dashboard/child_button_group.html:3 -msgid "Child actions" -msgstr "Aktionen des Kindes" - -#: dashboard/templates/dashboard/child_button_group.html:12 -#: reports/templates/reports/base.html:9 -#: reports/templates/reports/report_list.html:4 -msgid "Reports" -msgstr "Reports" - -#: dashboard/templatetags/cards.py:357 -msgid "Average nap duration" -msgstr "Durschnittliche Nickerchen-Dauer" - -#: dashboard/templatetags/cards.py:364 -msgid "Average naps per day" -msgstr "Durschnittliche Anzahl Nickerchen" - -#: dashboard/templatetags/cards.py:374 -msgid "Average sleep duration" -msgstr "Durchschnittliche Schlafdauer" - -#: dashboard/templatetags/cards.py:381 -msgid "Average awake duration" -msgstr "Durchschnittlich wach" - -#: dashboard/templatetags/cards.py:391 -msgid "Weight change per week" -msgstr "Gewichtsänderung pro Woche" - -#: dashboard/templatetags/cards.py:401 -msgid "Height change per week" -msgstr "Größenänderung pro Woche" - -#: dashboard/templatetags/cards.py:411 -msgid "Head circumference change per week" -msgstr "Kopfumfang Änderung pro woche" - -#: dashboard/templatetags/cards.py:421 -msgid "BMI change per week" -msgstr "BMI Änderung pro Woche" - -#: dashboard/templatetags/cards.py:439 +#: dashboard/templatetags/cards.py:410 msgid "Diaper change frequency (past 3 days)" msgstr "" -#: dashboard/templatetags/cards.py:443 +#: dashboard/templatetags/cards.py:414 msgid "Diaper change frequency (past 2 weeks)" msgstr "" -#: dashboard/templatetags/cards.py:449 -msgid "Diaper change frequency" -msgstr "Frequenz Windelwechsel" - -#: dashboard/templatetags/cards.py:485 -msgid "Feeding frequency (past 3 days)" -msgstr "Mahlzeitenintervall (letzte 3 Tage)" - -#: dashboard/templatetags/cards.py:489 -msgid "Feeding frequency (past 2 weeks)" -msgstr "Mahlzeitenintervall (letzte 2 Wochen)" - -#: dashboard/templatetags/cards.py:495 -msgid "Feeding frequency" -msgstr "Frequenz Mahlzeiten" - -#: reports/graphs/bmi_change.py:27 -msgid "BMI" -msgstr "BMI" - -#: reports/graphs/diaperchange_amounts.py:27 -msgid "Diaper change amount" -msgstr "Windelwechsel Mengen" - -#: reports/graphs/diaperchange_amounts.py:36 -msgid "Diaper Change Amounts" -msgstr "Windelwechsel Mengen" - -#: reports/graphs/diaperchange_amounts.py:39 -msgid "Change amount" -msgstr "Windel Menge" - -#: reports/graphs/diaperchange_lifetimes.py:35 -msgid "Diaper Lifetimes" -msgstr "Windel-Lebensdauer" - -#: reports/graphs/diaperchange_lifetimes.py:36 -msgid "Time between changes (hours)" -msgstr "Zeit zwischen Wechseln (Stunden)" - -#: reports/graphs/diaperchange_types.py:41 reports/graphs/feeding_amounts.py:58 -msgid "Total" -msgstr "Total" - -#: reports/graphs/diaperchange_types.py:48 -msgid "Diaper Change Types" -msgstr "Windelwechsel Typen" - -#: reports/graphs/diaperchange_types.py:51 -msgid "Number of changes" -msgstr "Anzahl Wechsel" - -#: reports/graphs/feeding_amounts.py:69 -msgid "Total Feeding Amount by Type" -msgstr "Gesamt Fütterungsmenge pro Typ" - -#: reports/graphs/feeding_amounts.py:72 -msgid "Feeding amount" -msgstr "Mahlzeit" - -#: reports/graphs/feeding_duration.py:38 -msgid "Average duration" -msgstr "Durchschnittliche Dauer" - -#: reports/graphs/feeding_duration.py:46 -msgid "Total feedings" -msgstr "Total Mahlzeiten" - -#: reports/graphs/feeding_duration.py:55 -msgid "Average Feeding Durations" -msgstr "Durchschnittliche Mahlzeiten-Dauer" - -#: reports/graphs/feeding_duration.py:58 -msgid "Average duration (minutes)" -msgstr "Durchschnittlicher Dauer (Minuten)" - -#: reports/graphs/feeding_duration.py:60 -msgid "Number of feedings" -msgstr "Anzahl Mahlzeiten" - -#: reports/graphs/head_circumference_change.py:27 -msgid "Head Circumference" -msgstr "Kopfumfang" - -#: reports/graphs/height_change.py:27 -msgid "Height" -msgstr "Größe" - -#: reports/graphs/pumping_amounts.py:59 +#: reports/graphs/pumping_amounts.py:57 msgid "Total Pumping Amount" msgstr "" -#: reports/graphs/pumping_amounts.py:62 +#: reports/graphs/pumping_amounts.py:60 msgid "Pumping Amount" msgstr "" -#: reports/graphs/sleep_pattern.py:150 -msgid "Sleep Pattern" -msgstr "Schlaf-Rhythmus" - -#: reports/graphs/sleep_pattern.py:167 -msgid "Time of day" -msgstr "Tageszeit" - -#: reports/graphs/sleep_totals.py:48 -msgid "Total sleep" -msgstr "Total Schlaf" - -#: reports/graphs/sleep_totals.py:58 -msgid "Sleep Totals" -msgstr "Totale Schlafzeit" - -#: reports/graphs/sleep_totals.py:61 -msgid "Hours of sleep" -msgstr "Schlafstunden" - -#: reports/graphs/tummytime_duration.py:34 -msgid "Total duration" -msgstr "Länge insgesamt" - -#: reports/graphs/tummytime_duration.py:41 -#: reports/graphs/tummytime_duration.py:55 -msgid "Number of sessions" -msgstr "Anzahl der Sessions" - -#: reports/graphs/tummytime_duration.py:50 -msgid "Total Tummy Time Durations" -msgstr "Totalle Bauchzeit Dauer" - -#: reports/graphs/tummytime_duration.py:53 -msgid "Total duration (minutes)" -msgstr "Länge insgesamt (Minuten)" - -#: reports/graphs/weight_change.py:27 -msgid "Weight" -msgstr "Gewicht" - -#: reports/templates/reports/diaperchange_amounts.html:4 -#: reports/templates/reports/diaperchange_amounts.html:8 -msgid "Diaper Amounts" -msgstr "Windel Mengen" - -#: reports/templates/reports/diaperchange_lifetimes.html:4 -#: reports/templates/reports/diaperchange_lifetimes.html:8 -#: reports/templates/reports/report_list.html:13 -msgid "Diaper Lifetimes" -msgstr "Windel-Lebensdauer" - -#: reports/templates/reports/diaperchange_types.html:4 -#: reports/templates/reports/diaperchange_types.html:8 -#: reports/templates/reports/report_list.html:12 -msgid "Diaper Change Types" -msgstr "Windewechsel Typen" - -#: reports/templates/reports/feeding_amounts.html:4 -#: reports/templates/reports/feeding_amounts.html:8 -#: reports/templates/reports/report_list.html:14 -msgid "Feeding Amounts" -msgstr "Mahlzeiten" - -#: reports/templates/reports/feeding_duration.html:4 -#: reports/templates/reports/feeding_duration.html:8 -msgid "Average Feeding Durations" -msgstr "Durchschnittliche Mahlzeitendauer" - -#: reports/templates/reports/report_base.html:17 -msgid "There is not enough data to generate this report." -msgstr "Es gibt nicht genügend Daten um diesen Report zu generieren." - #: reports/templates/reports/report_list.html:10 msgid "Body Mass Index (BMI)" msgstr "" -#: reports/templates/reports/report_list.html:11 -msgid "Diaper Change Amounts" -msgstr "Windelwechsel Mengen" - -#: reports/templates/reports/report_list.html:15 -msgid "Feeding Durations (Average)" -msgstr "Mahlzeit Dauer (Durschschnitt)" - #: reports/templates/reports/report_list.html:18 msgid "Pumping Amounts" msgstr "" -#: reports/templates/reports/report_list.html:19 -#: reports/templates/reports/sleep_pattern.html:4 -#: reports/templates/reports/sleep_pattern.html:8 -msgid "Sleep Pattern" -msgstr "Schlafrhythmus" +#: core/templates/core/timer_confirm_delete_inactive.html:17 +#, fuzzy +msgid "Are you sure you want to delete %(number)s inactive timer?" +msgid_plural "Are you sure you want to delete %(number)s inactive timers?" +msgstr[0] "Bist du dicher, dass du %(number)s inaktive timer%(plural)s löschen möchtest?" +msgstr[1] "Bist du dicher, dass du %(number)s inaktive timer%(plural)s löschen möchtest?" -#: reports/templates/reports/report_list.html:20 -#: reports/templates/reports/sleep_totals.html:4 -#: reports/templates/reports/sleep_totals.html:8 -msgid "Sleep Totals" -msgstr "Schlaf Total" +#: dashboard/templates/cards/feeding_day.html:25 +#, fuzzy +msgid "%(counter)s feeding" +msgid_plural "%(counter)s feedings" +msgstr[0] "%(count)s Schlaf-Einträge" +msgstr[1] "%(count)s Schlaf-Einträge" -#: reports/templates/reports/report_list.html:21 -msgid "Tummy Time Durations (Sum)" -msgstr "Bauchzeit Dauer (Summe)" +#: dashboard/templates/cards/feeding_last_method.html:21 +#, fuzzy +msgid "%(n)s feeding ago" +msgid_plural "%(n)s feedings ago" +msgstr[0] "vor %(n)s Mahlzeit%(plural)sen" +msgstr[1] "vor %(n)s Mahlzeit%(plural)sen" -#: reports/templates/reports/tummytime_duration.html:4 -#: reports/templates/reports/tummytime_duration.html:8 -msgid "Total Tummy Time Durations" -msgstr "Totalle Bauchzeit Dauer" +#: dashboard/templates/cards/sleep_naps_day.html:12 +#, fuzzy +msgid "%(count)s nap" +msgid_plural "%(count)s naps" +msgstr[0] "%(count)s Nickerchen%(plural)s." +msgstr[1] "%(count)s Nickerchen%(plural)s." -#~ msgid "Today's Sleep" -#~ msgstr "Schlaf heute" +#: dashboard/templates/cards/timer_list.html:12 +#, fuzzy +msgid "%(count)s active timer" +msgid_plural "%(count)s active timers" +msgstr[0] "%(count)s Timer%(plural)s aktiv" +msgstr[1] "%(count)s Timer%(plural)s aktiv" -#, python-format -#~ msgid "%(count)s sleep entries" -#~ msgstr "%(count)s Schlaf-Einträge" diff --git a/locale/es/LC_MESSAGES/django.mo b/locale/es/LC_MESSAGES/django.mo index 178ed4d9..09d6c80c 100644 Binary files a/locale/es/LC_MESSAGES/django.mo and b/locale/es/LC_MESSAGES/django.mo differ diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po index ef4a07aa..587f08fe 100644 --- a/locale/es/LC_MESSAGES/django.po +++ b/locale/es/LC_MESSAGES/django.po @@ -1,22 +1,20 @@ msgid "" msgstr "" -"Project-Id-Version: Baby Buddy\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 21:13+0000\n" -"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" +"Project-Id-Version: Baby Buddy\n" +"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: babybuddy/admin.py:12 babybuddy/admin.py:13 -#: babybuddy/templates/babybuddy/nav-dropdown.html:324 +#: babybuddy/templates/babybuddy/nav-dropdown.html:347 #: babybuddy/templates/babybuddy/user_settings_form.html:8 msgid "Settings" msgstr "Configuración" -#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:89 +#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:111 #: babybuddy/templates/babybuddy/user_settings_form.html:61 #: dashboard/templates/dashboard/child.html:4 #: dashboard/templates/dashboard/child.html:9 @@ -31,12 +29,8 @@ msgid "Refresh rate" msgstr "Tasa de refresco" #: babybuddy/models.py:21 -msgid "" -"If supported by browser, the dashboard will only refresh when visible, and " -"also when receiving focus." -msgstr "" -"Si el navegador lo soporta, el dashboard sólo se refrescará cuando esté " -"visible y recibiendo el foco." +msgid "This setting will only be used when a browser does not support refresh on focus." +msgstr "Este parámetro solo será utilizado en caso de que tu navegador no soporte la opción de refrescar al hacer foco." #: babybuddy/models.py:28 msgid "disabled" @@ -74,116 +68,31 @@ msgstr "15 min." msgid "30 min." msgstr "30 min." -#: babybuddy/models.py:40 -msgid "Hide Empty Dashboard Cards" -msgstr "Ocultar tarjetas vacías del dashboard" - -#: babybuddy/models.py:43 -msgid "Hide data older than" -msgstr "Ocultar datos más antiguos que" - -#: babybuddy/models.py:45 -msgid "This setting controls which data will be shown in the dashboard." -msgstr "Esta configuración ajusta que datos serán mostrados en el dashboard." - -#: babybuddy/models.py:51 -msgid "show all data" -msgstr "mostrar todos los datos" - -#: babybuddy/models.py:52 -msgid "1 day" -msgstr "1 día" - -#: babybuddy/models.py:53 -msgid "2 days" -msgstr "2 días" - -#: babybuddy/models.py:54 -msgid "3 days" -msgstr "3 días" - -#: babybuddy/models.py:55 -msgid "1 week" -msgstr "1 semana" - -#: babybuddy/models.py:56 -msgid "4 weeks" -msgstr "4 semanas" - #: babybuddy/models.py:63 msgid "Language" msgstr "Idioma" -#: babybuddy/models.py:69 -msgid "Timezone" -msgstr "Zona horaria" - #: babybuddy/models.py:73 -#, python-brace-format msgid "{user}'s Settings" msgstr "Configuración de {user}" -#: babybuddy/settings/base.py:166 -msgid "Catalan" -msgstr "Catalán" - -#: babybuddy/settings/base.py:167 -msgid "Chinese (simplified)" -msgstr "Chino (simplificado)" - -#: babybuddy/settings/base.py:168 -msgid "Dutch" -msgstr "Neerlandés" - -#: babybuddy/settings/base.py:169 -msgid "English (US)" -msgstr "Inglés (EE.UU.)" - -#: babybuddy/settings/base.py:170 -msgid "English (UK)" -msgstr "Inglés (RU)" +#: babybuddy/settings/base.py:171 +msgid "English" +msgstr "Inglés" #: babybuddy/settings/base.py:171 msgid "French" msgstr "Francés" -#: babybuddy/settings/base.py:172 -msgid "Finnish" -msgstr "Finlandés" +#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 +msgid "Permission Denied" +msgstr "Acceso denegado" -#: babybuddy/settings/base.py:173 -msgid "German" -msgstr "Alemán" - -#: babybuddy/settings/base.py:174 -msgid "Italian" -msgstr "Italiano" - -#: babybuddy/settings/base.py:175 -msgid "Polish" -msgstr "Polaco" - -#: babybuddy/settings/base.py:176 -msgid "Portuguese" -msgstr "Portugués" - -#: babybuddy/settings/base.py:177 -msgid "Spanish" -msgstr "Español" - -#: babybuddy/settings/base.py:178 -msgid "Swedish" -msgstr "Sueco" - -#: babybuddy/settings/base.py:179 -msgid "Turkish" -msgstr "Turco" - -#: babybuddy/templates/admin/base_site.html:4 -#: babybuddy/templates/admin/base_site.html:7 -#: babybuddy/templates/babybuddy/nav-dropdown.html:336 -msgid "Database Admin" -msgstr "Administrar Base de Datos" +#: babybuddy/templates/403.html:12 +msgid "You do not have permission to access this resource.\n" +" Contact a site administrator for assistance." +msgstr "No tienes permiso para acceder a este recurso.\n" +"Contacta con un administrador si necesitas asistencia." #: babybuddy/templates/babybuddy/base.html:36 msgid "Home" @@ -208,36 +117,32 @@ msgstr "Enviar" #: babybuddy/templates/babybuddy/messages.html:18 #: babybuddy/templates/babybuddy/user_settings_form.html:19 -#, python-format msgid "Error: %(error)s" msgstr "Error: %(error)s" #: babybuddy/templates/babybuddy/messages.html:23 -#: babybuddy/templates/babybuddy/user_settings_form.html:26 -msgid "Error: Some fields have errors. See below for details." -msgstr "" -"Error: Algunos campos contienen errores. Mira más abajo " -"para más detalles." +msgid "Error: Some fields have errors. See below for details. " +msgstr "Error: Algunos campos contienen errores. Mira más abajo para más detalles. " -#: babybuddy/templates/babybuddy/nav-dropdown.html:48 core/models.py:248 +#: babybuddy/templates/babybuddy/nav-dropdown.html:51 core/models.py:248 #: core/models.py:252 msgid "Diaper Change" msgstr "Cambio de Pañal" -#: babybuddy/templates/babybuddy/nav-dropdown.html:54 -#: babybuddy/templates/babybuddy/nav-dropdown.html:259 core/models.py:312 +#: babybuddy/templates/babybuddy/nav-dropdown.html:57 +#: babybuddy/templates/babybuddy/nav-dropdown.html:281 core/models.py:312 #: core/models.py:316 core/templates/core/timer_detail.html:43 msgid "Feeding" msgstr "Toma" -#: babybuddy/templates/babybuddy/nav-dropdown.html:60 -#: babybuddy/templates/babybuddy/nav-dropdown.html:135 core/models.py:396 +#: babybuddy/templates/babybuddy/nav-dropdown.html:63 +#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:396 #: core/models.py:407 core/models.py:411 core/templates/core/note_list.html:29 msgid "Note" msgstr "Nota" -#: babybuddy/templates/babybuddy/nav-dropdown.html:66 -#: babybuddy/templates/babybuddy/nav-dropdown.html:280 +#: babybuddy/templates/babybuddy/nav-dropdown.html:69 +#: babybuddy/templates/babybuddy/nav-dropdown.html:288 #: babybuddy/templates/babybuddy/welcome.html:42 core/models.py:467 #: core/models.py:468 core/models.py:471 #: core/templates/core/sleep_confirm_delete.html:7 @@ -247,8 +152,8 @@ msgstr "Nota" msgid "Sleep" msgstr "Sueño" -#: babybuddy/templates/babybuddy/nav-dropdown.html:72 -#: babybuddy/templates/babybuddy/nav-dropdown.html:293 +#: babybuddy/templates/babybuddy/nav-dropdown.html:81 +#: babybuddy/templates/babybuddy/nav-dropdown.html:301 #: babybuddy/templates/babybuddy/welcome.html:50 core/models.py:647 #: core/models.py:648 core/models.py:651 #: core/templates/core/timer_detail.html:59 @@ -260,15 +165,24 @@ msgstr "Sueño" msgid "Tummy Time" msgstr "Tiempo boca abajo" -#: babybuddy/templates/babybuddy/nav-dropdown.html:96 -#: core/templates/timeline/timeline.html:4 -#: core/templates/timeline/timeline.html:7 -#: dashboard/templates/dashboard/child_button_group.html:9 -msgid "Timeline" -msgstr "Cronología" +#: babybuddy/templates/babybuddy/nav-dropdown.html:87 +#: babybuddy/templates/babybuddy/nav-dropdown.html:193 core/models.py:673 +#: core/models.py:685 core/models.py:686 core/models.py:689 +#: core/templates/core/weight_confirm_delete.html:7 +#: core/templates/core/weight_form.html:13 +#: core/templates/core/weight_list.html:4 +#: core/templates/core/weight_list.html:7 +#: core/templates/core/weight_list.html:12 +#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 +#: reports/graphs/weight_change.py:30 +#: reports/templates/reports/report_list.html:22 +#: reports/templates/reports/weight_change.html:4 +#: reports/templates/reports/weight_change.html:8 +msgid "Weight" +msgstr "Peso" -#: babybuddy/templates/babybuddy/nav-dropdown.html:107 -#: babybuddy/templates/babybuddy/nav-dropdown.html:115 core/models.py:188 +#: babybuddy/templates/babybuddy/nav-dropdown.html:129 +#: babybuddy/templates/babybuddy/nav-dropdown.html:137 core/models.py:188 #: core/templates/core/child_confirm_delete.html:7 #: core/templates/core/child_detail.html:7 #: core/templates/core/child_form.html:13 core/templates/core/child_list.html:4 @@ -278,7 +192,7 @@ msgstr "Cronología" msgid "Children" msgstr "Niños" -#: babybuddy/templates/babybuddy/nav-dropdown.html:121 core/models.py:137 +#: babybuddy/templates/babybuddy/nav-dropdown.html:143 core/models.py:137 #: core/models.py:187 core/models.py:221 core/models.py:274 core/models.py:335 #: core/models.py:367 core/models.py:394 core/models.py:426 core/models.py:450 #: core/models.py:503 core/models.py:537 core/models.py:630 core/models.py:671 @@ -297,7 +211,7 @@ msgstr "Niños" msgid "Child" msgstr "Niño" -#: babybuddy/templates/babybuddy/nav-dropdown.html:129 core/models.py:143 +#: babybuddy/templates/babybuddy/nav-dropdown.html:151 core/models.py:143 #: core/models.py:240 core/models.py:304 core/models.py:343 core/models.py:373 #: core/models.py:408 core/models.py:430 core/models.py:458 core/models.py:511 #: core/models.py:677 core/templates/core/note_confirm_delete.html:7 @@ -306,112 +220,24 @@ msgstr "Niño" msgid "Notes" msgstr "Notas" -#: babybuddy/templates/babybuddy/nav-dropdown.html:149 -msgid "Measurements" -msgstr "Mediciones" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:139 -#: core/models.py:151 core/models.py:152 core/models.py:155 -#: core/templates/core/bmi_confirm_delete.html:7 -#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 -#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 -#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 -#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 -#: reports/templates/reports/bmi_change.html:8 -msgid "BMI" -msgstr "IMC" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:163 -msgid "BMI entry" -msgstr "Entrada de IMC" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:171 core/models.py:338 -#: core/models.py:351 core/models.py:352 core/models.py:355 -#: core/templates/core/head_circumference_confirm_delete.html:7 -#: core/templates/core/head_circumference_form.html:13 -#: core/templates/core/head_circumference_list.html:4 -#: core/templates/core/head_circumference_list.html:7 -#: core/templates/core/head_circumference_list.html:12 -#: core/templates/core/head_circumference_list.html:29 -#: reports/graphs/head_circumference_change.py:19 -#: reports/graphs/head_circumference_change.py:30 -#: reports/templates/reports/head_circumference_change.html:4 -#: reports/templates/reports/head_circumference_change.html:8 -#: reports/templates/reports/report_list.html:16 -msgid "Head Circumference" -msgstr "Perímetro craneal" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:177 -msgid "Head Circumference entry" -msgstr "Entrada de perímetro craneal" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:185 core/models.py:369 -#: core/models.py:381 core/models.py:382 core/models.py:385 -#: core/templates/core/height_confirm_delete.html:7 -#: core/templates/core/height_form.html:13 -#: core/templates/core/height_list.html:4 -#: core/templates/core/height_list.html:7 -#: core/templates/core/height_list.html:12 -#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 -#: reports/graphs/height_change.py:30 -#: reports/templates/reports/height_change.html:4 -#: reports/templates/reports/height_change.html:8 -#: reports/templates/reports/report_list.html:17 -msgid "Height" -msgstr "Altura" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:191 -msgid "Height entry" -msgstr "Entrada de altura" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:199 core/models.py:506 -#: core/models.py:519 core/models.py:520 core/models.py:523 -#: core/templates/core/temperature_confirm_delete.html:7 -#: core/templates/core/temperature_form.html:13 -#: core/templates/core/temperature_list.html:4 -#: core/templates/core/temperature_list.html:7 -#: core/templates/core/temperature_list.html:12 -#: core/templates/core/temperature_list.html:29 -msgid "Temperature" -msgstr "Temperatura" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:205 -msgid "Temperature reading" -msgstr "Lectura de temperatura" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:213 core/models.py:673 -#: core/models.py:685 core/models.py:686 core/models.py:689 -#: core/templates/core/weight_confirm_delete.html:7 -#: core/templates/core/weight_form.html:13 -#: core/templates/core/weight_list.html:4 -#: core/templates/core/weight_list.html:7 -#: core/templates/core/weight_list.html:12 -#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 -#: reports/graphs/weight_change.py:30 -#: reports/templates/reports/report_list.html:22 -#: reports/templates/reports/weight_change.html:4 -#: reports/templates/reports/weight_change.html:8 -msgid "Weight" -msgstr "Peso" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:219 +#: babybuddy/templates/babybuddy/nav-dropdown.html:199 msgid "Weight entry" msgstr "Introducir peso" -#: babybuddy/templates/babybuddy/nav-dropdown.html:233 +#: babybuddy/templates/babybuddy/nav-dropdown.html:255 msgid "Activities" msgstr "Actividades" -#: babybuddy/templates/babybuddy/nav-dropdown.html:240 +#: babybuddy/templates/babybuddy/nav-dropdown.html:262 #: reports/graphs/diaperchange_lifetimes.py:27 msgid "Changes" msgstr "Cambios" -#: babybuddy/templates/babybuddy/nav-dropdown.html:246 +#: babybuddy/templates/babybuddy/nav-dropdown.html:268 msgid "Change" msgstr "Cambio" -#: babybuddy/templates/babybuddy/nav-dropdown.html:253 +#: babybuddy/templates/babybuddy/nav-dropdown.html:275 #: babybuddy/templates/babybuddy/welcome.html:34 core/models.py:313 #: core/templates/core/feeding_confirm_delete.html:7 #: core/templates/core/feeding_form.html:13 @@ -421,31 +247,15 @@ msgstr "Cambio" msgid "Feedings" msgstr "Tomas" -#: babybuddy/templates/babybuddy/nav-dropdown.html:267 core/models.py:437 -#: core/models.py:438 core/models.py:441 -#: core/templates/core/pumping_confirm_delete.html:7 -#: core/templates/core/pumping_form.html:13 -#: core/templates/core/pumping_list.html:4 -#: core/templates/core/pumping_list.html:7 -#: core/templates/core/pumping_list.html:12 -#: reports/templates/reports/pumping_amounts.html:4 -#: reports/templates/reports/pumping_amounts.html:8 -msgid "Pumping" -msgstr "Extracciones" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:273 -msgid "Pumping entry" -msgstr "Entrada de extracción" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:286 +#: babybuddy/templates/babybuddy/nav-dropdown.html:294 msgid "Sleep entry" msgstr "Entrada de sueño" -#: babybuddy/templates/babybuddy/nav-dropdown.html:299 +#: babybuddy/templates/babybuddy/nav-dropdown.html:307 msgid "Tummy Time entry" msgstr "Entrada de tiempo boca abajo" -#: babybuddy/templates/babybuddy/nav-dropdown.html:323 +#: babybuddy/templates/babybuddy/nav-dropdown.html:346 #: babybuddy/templates/babybuddy/user_list.html:17 #: babybuddy/templates/babybuddy/user_password_form.html:7 #: babybuddy/templates/babybuddy/user_settings_form.html:7 core/models.py:556 @@ -453,23 +263,23 @@ msgstr "Entrada de tiempo boca abajo" msgid "User" msgstr "Usuario" -#: babybuddy/templates/babybuddy/nav-dropdown.html:325 +#: babybuddy/templates/babybuddy/nav-dropdown.html:348 msgid "Password" msgstr "Contraseña" -#: babybuddy/templates/babybuddy/nav-dropdown.html:329 +#: babybuddy/templates/babybuddy/nav-dropdown.html:352 msgid "Logout" msgstr "Cerrar sesión" -#: babybuddy/templates/babybuddy/nav-dropdown.html:332 +#: babybuddy/templates/babybuddy/nav-dropdown.html:355 msgid "Site" msgstr "Sitio" -#: babybuddy/templates/babybuddy/nav-dropdown.html:333 +#: babybuddy/templates/babybuddy/nav-dropdown.html:356 msgid "API Browser" msgstr "Navegador API" -#: babybuddy/templates/babybuddy/nav-dropdown.html:335 +#: babybuddy/templates/babybuddy/nav-dropdown.html:358 #: babybuddy/templates/babybuddy/user_confirm_delete.html:7 #: babybuddy/templates/babybuddy/user_form.html:13 #: babybuddy/templates/babybuddy/user_list.html:4 @@ -477,15 +287,19 @@ msgstr "Navegador API" msgid "Users" msgstr "Usuarios" -#: babybuddy/templates/babybuddy/nav-dropdown.html:338 +#: babybuddy/templates/babybuddy/nav-dropdown.html:250 +msgid "Backend Admin" +msgstr "Administrar Backend" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:361 msgid "Support" msgstr "Soporte" -#: babybuddy/templates/babybuddy/nav-dropdown.html:340 +#: babybuddy/templates/babybuddy/nav-dropdown.html:363 msgid "Source Code" msgstr "Código Fuente" -#: babybuddy/templates/babybuddy/nav-dropdown.html:342 +#: babybuddy/templates/babybuddy/nav-dropdown.html:365 msgid "Chat / Support" msgstr "Chat / Soporte" @@ -496,7 +310,6 @@ msgstr "Chat / Soporte" #: core/templates/timeline/_timeline.html:73 #: dashboard/templates/cards/feeding_day.html:43 #: dashboard/templates/cards/feeding_last_method.html:34 -#: dashboard/templates/cards/sleep_recent.html:43 #: dashboard/templates/cards/statistics.html:34 msgid "Previous" msgstr "Anterior" @@ -508,7 +321,6 @@ msgstr "Anterior" #: core/templates/timeline/_timeline.html:80 #: dashboard/templates/cards/feeding_day.html:47 #: dashboard/templates/cards/feeding_last_method.html:38 -#: dashboard/templates/cards/sleep_recent.html:47 #: dashboard/templates/cards/statistics.html:38 msgid "Next" msgstr "Siguiente" @@ -564,13 +376,8 @@ msgstr "Eliminar" #: core/templates/core/timer_confirm_delete.html:17 #: core/templates/core/tummytime_confirm_delete.html:14 #: core/templates/core/weight_confirm_delete.html:14 -#, python-format -msgid "" -"

Are you sure you want to delete %(object)s?

" -msgstr "" -"

¿Estás seguro de querer eliminar %(object)s?

" +msgid "

Are you sure you want to delete %(object)s?

" +msgstr "

¿Estás seguro de querer eliminar %(object)s?

" #: babybuddy/templates/babybuddy/user_confirm_delete.html:19 #: core/templates/core/bmi_confirm_delete.html:18 @@ -626,7 +433,6 @@ msgstr "Actualizar" #: core/templates/core/timer_form.html:18 #: core/templates/core/tummytime_form.html:23 #: core/templates/core/weight_form.html:23 -#, python-format msgid "

Update %(object)s

" msgstr "

Actualizar %(object)s

" @@ -656,7 +462,7 @@ msgstr "Activo" #: babybuddy/templates/babybuddy/user_list.html:23 #: core/templates/core/bmi_list.html:24 core/templates/core/bmi_list.html:38 #: core/templates/core/child_list.html:28 -#: core/templates/core/child_list.html:43 +#: core/templates/core/child_list.html:48 #: core/templates/core/diaperchange_list.html:24 #: core/templates/core/diaperchange_list.html:40 #: core/templates/core/feeding_list.html:24 @@ -694,6 +500,11 @@ msgstr "Cambiar Contraseña" msgid "User Settings" msgstr "Configuración del Usuario" +#: babybuddy/templates/babybuddy/messages.html:23 +#: babybuddy/templates/babybuddy/user_settings_form.html:26 +msgid "Error: Some fields have errors. See below for details." +msgstr "Error: Algunos campos contienen errores. Mira más abajo para más detalles." + #: babybuddy/templates/babybuddy/user_settings_form.html:33 msgid "User Profile" msgstr "Perfil del Usuario" @@ -720,12 +531,10 @@ msgid "Welcome to Baby Buddy!" msgstr "¡Bienvenido a Baby Buddy!" #: babybuddy/templates/babybuddy/welcome.html:14 -msgid "" -"Learn about and predict baby's needs without (as much) guess work " -"by using Baby Buddy to track —" -msgstr "" -"Aprende a predecir las necesidades de tu bebé sin tener que adivinar " -"haciendo track con Baby Buddy —" +msgid "Learn about and predict baby's needs without\n" +" (as much) guess work by using Baby Buddy to track —" +msgstr "Aprende y predice las necesidades de tu bebé sin\n" +" tener que adivinar (tanto) usando Baby Buddy —" #: babybuddy/templates/babybuddy/welcome.html:26 core/models.py:249 #: core/templates/core/diaperchange_confirm_delete.html:7 @@ -737,20 +546,19 @@ msgstr "" msgid "Diaper Changes" msgstr "Cambios de Pañal" -#: babybuddy/templates/babybuddy/welcome.html:56 -msgid "" -"As the amount of entries grows, Baby Buddy will help parents and caregivers " -"to identify small patterns in baby's habits using the dashboard and graphs. " -"Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and " -"dads with 2AM feedings and changings. To get started, just click the button " -"below to add your first (or second, third, etc.) child!" -msgstr "" -"A medida que el número de entradas crece, Baby Buddy ayudará a los padres y " -"cuidadores a identificar pequeños patrones y hábitos del bebé usando los " -"dashboards y gráficas. Baby Buddy funciona en el móvil y usa un tema oscuro " -"para ayudar a los padres y madres en las tomas y cambios de las 2 de la " -"mañana. Para comenzar, haz click en el botón y añade tu primer (o segundo, o " -"tercer) hijo!" +#: babybuddy/templates/babybuddy/welcome.html:54 +msgid "As the amount of entries grows, Baby Buddy will help\n" +" parents and caregivers to identify small patterns in baby's habits\n" +" using the dashboard and graphs. Baby Buddy is mobile-friendly and\n" +" uses a dark theme to help weary moms and dads with 2AM feedings and\n" +" changings. To get started, just click the button below to add your\n" +" first (or second, third, etc.) child!" +msgstr "A medida que las entradas van aumentando, Baby Buddy ayudará\n" +" a padres y cuidadores a identificar pequeños patrones en los hábitos\n" +" del bebé usando las gráficas y el dashboard. Baby Buddy funciona en\n" +" el móvil y usa un tema oscuro para ayudar a las mamás y papás cansados\n" +" con las tomas y cambios de las 2 de la mañana. Para empezar, haz click\n" +" en el enlace más abajo para añadir tu primer (o segundo, tercero, etc.) hijo!" #: babybuddy/templates/babybuddy/welcome.html:68 #: core/templates/core/child_form.html:8 core/templates/core/child_form.html:18 @@ -758,57 +566,6 @@ msgstr "" msgid "Add a Child" msgstr "Añadir Niño" -#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 -msgid "Bad Request" -msgstr "Petición incorrecta" - -#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 -msgid "Permission Denied" -msgstr "Acceso denegado" - -#: babybuddy/templates/error/403.html:9 -msgid "" -"You do not have permission to access this resource. Contact a site " -"administrator for assistance." -msgstr "" -"No tienes permisos para acceder a este recurso. Contacta con un " -"administrador si necesitas ayuda." - -#: babybuddy/templates/error/403_csrf_bad_origin.html:14 -msgid "How to Fix" -msgstr "Cómo arreglarlo" - -#: babybuddy/templates/error/403_csrf_bad_origin.html:15 -#, fuzzy, python-format -#| msgid "" -#| "Add %(origin)s to the CSRF_TRUSTED_ORIGINS " -#| "environment variable. If multiple origins are required separate with " -#| "commas.\n" -msgid "" -"Add %(origin)s to the CSRF_TRUSTED_ORIGINS " -"environment variable. If multiple origins are required separate with commas." -msgstr "" -"Añade %(origin)s a la variable de entorno " -"CSRF_TRUSTED_ORIGINS. Si se requieren orígenes múltiples, " -"sepáralos por comas.\n" - -#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 -msgid "Page Not Found" -msgstr "Página no encontrada" - -#: babybuddy/templates/error/404.html:9 -#, python-format -msgid "The path %(request_path)s does not exist." -msgstr "La ruta %(request_path)s no existe." - -#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 -msgid "Server Error" -msgstr "Error del servidor" - -#: babybuddy/templates/error/base.html:14 -msgid "Return to Baby Buddy" -msgstr "Volver a Baby Buddy" - #: babybuddy/templates/registration/login.html:32 msgid "Login" msgstr "Iniciar Sesión" @@ -833,12 +590,10 @@ msgstr "Iniciar Sesión" msgid "Password Reset" msgstr "Resetear Contraseña" -#: babybuddy/templates/registration/password_reset_confirm.html:13 -msgid "" -"Oh snap! The two passwords did not match. Please try again." -msgstr "" -"¡Vaya! Las dos contraseñas no coinciden. Por favor, " -"inténtalo otra vez." +#: babybuddy/templates/registration/password_reset_confirm.html:12 +msgid "

Oh snap! The\n" +" two passwords did not match. Please try again.

" +msgstr "

¡Vaya! Las contraseñas no coinciden. Por favor, inténtalo de nuevo.

" #: babybuddy/templates/registration/password_reset_confirm.html:22 msgid "Enter your new password in each field below." @@ -853,73 +608,41 @@ msgstr "Resetear Contraseña" msgid "Reset Email Sent" msgstr "Correo de reseteo enviado" -#: babybuddy/templates/registration/password_reset_done.html:9 -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Te hemos enviado por email las instrucciones para establecer tu contraseña, " -"si la cuenta que has introducido existe. Deberías recibirlo en breve." - -#: babybuddy/templates/registration/password_reset_done.html:15 -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Si no recibes el email, asegúrate de haber introducido la dirección de " -"correo con la que te has registrado y comprueba tu carpeta de spam." - -#: babybuddy/templates/registration/password_reset_email.html:2 -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:4 -msgid "Please go to the following page and choose a new password:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:8 -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:10 -msgid "Thanks for using Baby Buddy!" -msgstr "" +#: babybuddy/templates/registration/password_reset_done.html:8 +msgid "

We've emailed you instructions for setting your\n" +" password, if an account exists with the email you entered. You\n" +" should receive them shortly.

\n" +"

If you don't receive an email, please make sure you've\n" +" entered the address you registered with, and check your spam\n" +" folder.

" +msgstr "

Te hemos enviado instrucciones para configurar tu\n" +" contraseña, si la cuenta existe y coincide con el email introducido, \n" +" deberías recibirlas en breve.

\n" +"

Si no recibes el email, por favor comprueba que\n" +" has introducido el email con el que te has registrado y tu carpeta\n" +" de spam.

" #: babybuddy/templates/registration/password_reset_form.html:4 msgid "Forgot Password" msgstr "Contraseña Olvidada" -#: babybuddy/templates/registration/password_reset_form.html:9 -msgid "" -"Enter your account email address in the form below. If the address is valid, " -"you will receive instructions for resetting your password." -msgstr "" -"Introduce tu dirección de correo electrónico en el siguiente formulario. Si " -"la dirección es válida, recibirás instrucciones para respetar tu contraseña." - -#: babybuddy/views.py:43 -msgid "Forbidden" -msgstr "Prohibido" - -#: babybuddy/views.py:44 -msgid "CSRF verification failed. Request aborted." -msgstr "Verificación CSRF fallida. Petición abortada." +#: babybuddy/templates/registration/password_reset_form.html:8 +msgid "

Enter your account email address in the\n" +" form below. If the address is valid, you will receive instructions for\n" +" resetting your password.

" +msgstr "

Introduce tu dirección de email en el siguiente \n" +" formulario. Si la direción es valida, recibirás las instrucciones\n" +" para resetear tu contraseña.

" #: babybuddy/views.py:102 -#, python-format msgid "User %(username)s added!" msgstr "¡Se ha añadido el usuario %(username)s!" #: babybuddy/views.py:113 -#, python-format msgid "User %(username)s updated." msgstr "¡Se ha actualizado el usuario %(username)s!" #: babybuddy/views.py:125 -#, python-brace-format msgid "User {user} deleted." msgstr "Usuario {user} eliminado." @@ -935,22 +658,10 @@ msgstr "Regenerada clave API del usuario." msgid "Settings saved!" msgstr "¡Configuraciones guardadas!" -#: core/filters.py:11 core/models.py:96 core/models.py:115 -msgid "Tag" -msgstr "Etiqueta" - #: core/forms.py:120 msgid "Name does not match child name." msgstr "El nombre no coincide con el nombre del niño." -#: core/forms.py:136 -msgid "" -"Click on the tags to add (+) or remove (-) tags or use the text editor to " -"create new tags." -msgstr "" -"Haz click en las etiquetas para añadirlas (+) o eliminarlas (-). O usa el " -"editor de texto para crearlas nuevas." - #: core/models.py:28 msgid "Date can not be in the future." msgstr "La fecha no puede establecerse en el futuro." @@ -971,43 +682,6 @@ msgstr "Otra entrada coincide con el periodo de tiempo indicado." msgid "Date/time can not be in the future." msgstr "La fecha/hora no puede establecerse en el futuro." -#: core/models.py:84 core/models.py:237 -#: core/templates/core/diaperchange_list.html:30 -msgid "Color" -msgstr "Color" - -#: core/models.py:90 -msgid "Last used" -msgstr "Últimas usadas" - -#: core/models.py:97 core/templates/core/bmi_list.html:30 -#: core/templates/core/diaperchange_list.html:32 -#: core/templates/core/feeding_list.html:35 -#: core/templates/core/head_circumference_list.html:30 -#: core/templates/core/height_list.html:30 -#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 -#: core/templates/core/temperature_list.html:30 -#: core/templates/core/tummytime_list.html:31 -#: core/templates/core/weight_list.html:30 -msgid "Tags" -msgstr "Etiquetas" - -#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 -#: core/templates/core/bmi_list.html:25 -#: core/templates/core/feeding_list.html:25 -#: core/templates/core/head_circumference_list.html:25 -#: core/templates/core/height_list.html:25 -#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 -#: reports/graphs/diaperchange_amounts.py:37 -#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 -#: reports/graphs/feeding_duration.py:56 -#: reports/graphs/head_circumference_change.py:28 -#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:60 -#: reports/graphs/sleep_pattern.py:153 reports/graphs/sleep_totals.py:59 -#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 -msgid "Date" -msgstr "Fecha" - #: core/models.py:163 msgid "First name" msgstr "Nombre" @@ -1062,11 +736,14 @@ msgstr "Verde" msgid "Yellow" msgstr "Amarillo" -#: core/models.py:239 core/models.py:303 core/models.py:428 -#: core/templates/core/diaperchange_list.html:31 -#: core/templates/core/pumping_list.html:29 -msgid "Amount" -msgstr "Cantidad" +#: core/models.py:84 core/models.py:237 +#: core/templates/core/diaperchange_list.html:30 +msgid "Color" +msgstr "Color" + +#: core/models.py:180 +msgid "Wet and/or solid is required." +msgstr "Se requiere mojado y/o sólido." #: core/models.py:276 core/models.py:453 core/models.py:543 core/models.py:632 msgid "Start time" @@ -1092,14 +769,6 @@ msgstr "Leche de pecho" msgid "Formula" msgstr "Fórmula" -#: core/models.py:285 -msgid "Fortified breast milk" -msgstr "Leche de pecho fortificada" - -#: core/models.py:286 -msgid "Solid food" -msgstr "Comida sólida" - #: core/models.py:289 core/templates/core/feeding_list.html:30 msgid "Type" msgstr "Tipo" @@ -1116,25 +785,19 @@ msgstr "Pecho izquierdo" msgid "Right breast" msgstr "Pecho derecho" -#: core/models.py:296 -msgid "Both breasts" -msgstr "Ambos pechos" - -#: core/models.py:297 -msgid "Parent fed" -msgstr "Comió con ayuda" - -#: core/models.py:298 -msgid "Self fed" -msgstr "Comió solo" - #: core/models.py:301 core/templates/core/feeding_list.html:29 msgid "Method" msgstr "Método" -#: core/models.py:452 -msgid "Napping" -msgstr "Siesteando" +#: core/models.py:239 core/models.py:303 core/models.py:428 +#: core/templates/core/diaperchange_list.html:31 +#: core/templates/core/pumping_list.html:29 +msgid "Amount" +msgstr "Cantidad" + +#: core/models.py:243 +msgid "Only \"Bottle\" method is allowed with \"Formula\" type." +msgstr "Solo se permite método \"botella\" para el tipo \"Fórmula\"." #: core/models.py:540 core/templates/core/timer_list.html:25 msgid "Name" @@ -1154,7 +817,6 @@ msgid "Timers" msgstr "Temporizadores" #: core/models.py:568 -#, python-brace-format msgid "Timer #{id}" msgstr "Temporizador #{id}" @@ -1162,24 +824,21 @@ msgstr "Temporizador #{id}" msgid "Milestone" msgstr "Hito" -#: core/templates/core/bmi_confirm_delete.html:4 -msgid "Delete a BMI Entry" -msgstr "Eliminar una entrada de IMC" - -#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 -#: core/templates/core/bmi_form.html:27 -msgid "Add a BMI Entry" -msgstr "Añadir una entrada de IMC" - -#: core/templates/core/bmi_list.html:15 -msgid "Add BMI" -msgstr "Añadir IMC" - -#: core/templates/core/bmi_list.html:70 -#, fuzzy -#| msgid "No bmi entries found." -msgid "No BMI entries found." -msgstr "No hay entradas de IMC." +#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 +#: core/templates/core/bmi_list.html:25 +#: core/templates/core/feeding_list.html:25 +#: core/templates/core/head_circumference_list.html:25 +#: core/templates/core/height_list.html:25 +#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 +#: reports/graphs/diaperchange_amounts.py:37 +#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 +#: reports/graphs/feeding_duration.py:56 +#: reports/graphs/head_circumference_change.py:28 +#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:58 +#: reports/graphs/sleep_pattern.py:151 reports/graphs/sleep_totals.py:59 +#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 +msgid "Date" +msgstr "Fecha" #: core/templates/core/child_confirm_delete.html:4 msgid "Delete a Child" @@ -1199,15 +858,15 @@ msgstr "Nacimiento" msgid "Age" msgstr "Edad" -#: core/templates/core/child_list.html:15 -msgid "Add Child" -msgstr "Añadir Niño" +#: core/templates/timeline/_timeline.html:38 +msgid "%(since)s ago (%(time)s)" +msgstr "hace %(since)s (%(time)s)" #: core/templates/core/child_list.html:27 msgid "Birth Date" msgstr "Fecha Nacimiento" -#: core/templates/core/child_list.html:62 +#: core/templates/core/child_list.html:67 msgid "No children found." msgstr "No se ha encontrado ningún niño." @@ -1232,18 +891,14 @@ msgstr "Añadir un Cambio de Pañal" msgid "Add" msgstr "Añadir" -#: core/templates/core/diaperchange_list.html:15 -msgid "Add Diaper Change" -msgstr "Añadir Cambio de Pañal" - -#: core/templates/core/diaperchange_list.html:29 -msgid "Contents" -msgstr "Contenidos" - #: core/templates/core/diaperchange_list.html:77 msgid "No diaper changes found." msgstr "No se han encontrado cambios de pañal." +#: core/templates/core/diaperchange_list.html:63 +msgid "Add a Change" +msgstr "Añadir Cambio" + #: core/templates/core/feeding_confirm_delete.html:4 msgid "Delete a Feeding" msgstr "Eliminar una Toma" @@ -1257,10 +912,6 @@ msgstr "Actualizar una Toma" msgid "Add a Feeding" msgstr "Añadir una Toma" -#: core/templates/core/feeding_list.html:15 -msgid "Add Feeding" -msgstr "Añadir Toma" - #: core/templates/core/feeding_list.html:33 msgid "Amt." msgstr "Cant." @@ -1269,6 +920,935 @@ msgstr "Cant." msgid "No feedings found." msgstr "No se han encontrado tomas." +#: core/templates/core/note_confirm_delete.html:4 +msgid "Delete a Note" +msgstr "Eliminar una Nota" + +#: core/templates/core/note_form.html:6 +msgid "Update a Note" +msgstr "Actualizar una Nota" + +#: core/templates/core/note_form.html:8 core/templates/core/note_form.html:27 +msgid "Add a Note" +msgstr "Añadir una Nota" + +#: core/templates/core/note_list.html:64 +msgid "No notes found." +msgstr "No se han encontrado notas." + +#: core/templates/core/sleep_confirm_delete.html:4 +msgid "Delete a Sleep Entry" +msgstr "Eliminar Entrada de Sueño" + +#: core/templates/core/sleep_form.html:6 +msgid "Update a Sleep Entry" +msgstr "Actualizar Entrada de Sueño" + +#: core/templates/core/sleep_form.html:8 core/templates/core/sleep_form.html:27 +msgid "Add a Sleep Entry" +msgstr "Añadir Entrada de Sueño" + +#: core/templates/core/sleep_list.html:25 +#: core/templates/core/timer_form.html:12 +#: core/templates/core/timer_list.html:24 +#: core/templates/core/tummytime_list.html:24 +msgid "Start" +msgstr "Inicio" + +#: core/templates/core/sleep_list.html:26 +#: core/templates/core/timer_list.html:30 +#: core/templates/core/tummytime_list.html:25 +msgid "End" +msgstr "Fin" + +#: core/templates/core/sleep_list.html:31 +msgid "Nap" +msgstr "Siesta" + +#: core/templates/core/sleep_list.html:74 +msgid "No sleep entries found." +msgstr "No se han encontrado entradas de sueño." + +#: core/templates/core/timer_confirm_delete.html:5 +msgid "Delete %(object)s" +msgstr "Eliminar %(object)s" + +#: core/templates/core/timer_detail.html:28 +msgid "Started" +msgstr "Iniciado" + +#: core/templates/core/timer_detail.html:30 +msgid "Stopped" +msgstr "Parado" + +#: core/templates/core/timer_detail.html:26 +msgid "%(timer)s created by %(object.user)s" +msgstr "%(timer)s creado por %(object.user)s" + +#: core/templates/core/timer_detail.html:63 +msgid "Timer actions" +msgstr "Acciones de temporizador" + +#: core/templates/core/timer_form.html:22 +#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:23 +msgid "Start Timer" +msgstr "Iniciar Temporizador" + +#: core/templates/core/timer_list.html:58 +msgid "No timer entries found." +msgstr "No se han encontrado temporizadores." + +#: babybuddy/templates/babybuddy/nav-dropdown.html:32 +#: core/templates/core/timer_nav.html:18 +msgid "Quick Start Timer" +msgstr "Iniciar Temporizador Rápido" + +#: core/templates/core/timer_nav.html:28 +msgid "View Timers" +msgstr "Ver Temporizadores" + +#: core/templates/core/timer_nav.html:32 +#: dashboard/templates/cards/timer_list.html:6 +msgid "Active Timers" +msgstr "Temporizadores Activos" + +#: core/templates/core/timer_nav.html:38 +#: dashboard/templates/cards/diaperchange_last.html:17 +#: dashboard/templates/cards/diaperchange_types.html:12 +#: dashboard/templates/cards/feeding_day.html:20 +#: dashboard/templates/cards/feeding_day.html:52 +#: dashboard/templates/cards/feeding_last.html:17 +#: dashboard/templates/cards/feeding_last_method.html:43 +#: dashboard/templates/cards/sleep_day.html:14 +#: dashboard/templates/cards/sleep_last.html:17 +#: dashboard/templates/cards/sleep_naps_day.html:18 +#: dashboard/templates/cards/tummytime_day.html:14 +msgid "None" +msgstr "Ninguno" + +#: core/templates/core/tummytime_confirm_delete.html:4 +msgid "Delete a Tummy Time Entry" +msgstr "Eliminar entrada de Tiempo Boca Abajo" + +#: core/templates/core/tummytime_form.html:6 +msgid "Update a Tummy Time Entry" +msgstr "Actualizar entrada de Tiempo Boca Abajo" + +#: core/templates/core/tummytime_form.html:8 +#: core/templates/core/tummytime_form.html:27 +msgid "Add a Tummy Time Entry" +msgstr "Añadir entrada de Tiempo Boca Abajo" + +#: core/templates/core/tummytime_list.html:67 +msgid "No tummy time entries found." +msgstr "No se han encontrado entradas de tiempo boca abajo." + +#: core/templates/core/weight_confirm_delete.html:4 +msgid "Delete a Weight Entry" +msgstr "Eliminar Entrada de Peso" + +#: core/templates/core/weight_form.html:8 +#: core/templates/core/weight_form.html:17 +#: core/templates/core/weight_form.html:27 +msgid "Add a Weight Entry" +msgstr "Añadir Entrada de Peso" + +#: core/templates/core/weight_list.html:70 +msgid "No weight entries found." +msgstr "No se han encontrado entradas de peso." + +#: core/timeline.py:164 +msgid "%(child)s had a diaper change." +msgstr "%(child)s ha tenido un cambio de pañal." + +#: core/timeline.py:145 +msgid "%(child)s started feeding." +msgstr "%(child)s ha empezado una toma." + +#: core/timeline.py:158 +msgid "%(child)s finished feeding." +msgstr "%(child)s ha finalizado una toma." + +#: core/timeline.py:91 +msgid "%(child)s fell asleep." +msgstr "%(child)s se ha dormido." + +#: core/timeline.py:103 +msgid "%(child)s woke up." +msgstr "%(child)s se ha despertado." + +#: core/timeline.py:53 +msgid "%(child)s started tummy time!" +msgstr "¡%(child)s ha empezado tiempo boca abajo!" + +#: core/timeline.py:65 +msgid "%(child)s finished tummy time." +msgstr "%(child)s ha finalizado tiempo boca abajo." + +#: core/views.py:33 +msgid "%(model)s entry for %(child)s added!" +msgstr "¡Entrada de %(model)s para %(child)s añadida!" + +#: core/views.py:35 core/views.py:308 +msgid "%(model)s entry added!" +msgstr "¡Entrada de %(model)s añadida!" + +#: core/views.py:61 core/views.py:316 +msgid "%(model)s entry for %(child)s updated." +msgstr "Entrada de %(model)s para %(child)s actualizada." + +#: core/views.py:63 +msgid "%(model)s entry updated." +msgstr "%(model)s entrada actualizada." + +#: core/views.py:115 +msgid "%(first_name)s %(last_name)s added!" +msgstr "¡%(first_name)s %(last_name)s añadido!" + +#: core/views.py:478 +msgid "%(timer)s stopped." +msgstr "%(timer)s parado." + +#: dashboard/templates/cards/diaperchange_last.html:6 +msgid "Last Diaper Change" +msgstr "Último Cambio Pañal" + +#: dashboard/templates/cards/diaperchange_last.html:8 +#: dashboard/templates/cards/feeding_last.html:8 +#: dashboard/templates/cards/sleep_last.html:8 +#: dashboard/templates/cards/tummytime_last.html:8 +msgid "%(time)s ago" +msgstr "hace %(time)s" + +#: dashboard/templates/cards/tummytime_last.html:18 +msgid "Never" +msgstr "Nunca" + +#: dashboard/templates/cards/diaperchange_types.html:14 +msgid "Past Week" +msgstr "Última semana" + +#: dashboard/templates/cards/diaperchange_types.html:27 +msgid "wet" +msgstr "mojado" + +#: dashboard/templates/cards/diaperchange_types.html:35 +msgid "solid" +msgstr "sólido" + +#: dashboard/templates/cards/diaperchange_types.html:49 +msgid "today" +msgstr "hoy" + +#: dashboard/templates/cards/diaperchange_types.html:51 +msgid "yesterday" +msgstr "ayer" + +#: dashboard/templates/cards/diaperchange_types.html:53 +msgid "%(key)s days ago" +msgstr "hace %(key)s días" + +#: dashboard/templates/cards/feeding_last.html:6 +msgid "Last Feeding" +msgstr "Última Toma" + +#: dashboard/templates/cards/feeding_last_method.html:6 +msgid "Last Feeding Method" +msgstr "Último Método de Toma" + +#: dashboard/templates/cards/sleep_day.html:6 +msgid "Today's Sleep" +msgstr "Sueño Hoy" + +#: dashboard/templates/cards/sleep_day.html:11 +#: dashboard/templates/cards/sleep_naps_day.html:13 +#: dashboard/templates/cards/tummytime_day.html:11 +msgid "None yet today" +msgstr "Ninguno hoy todavía" + +#: dashboard/templates/cards/sleep_day.html:20 +msgid "%(count)s sleep entries" +msgstr "%(count)s entradas de sueño" + +#: dashboard/templates/cards/sleep_last.html:4 +msgid "Last Slept" +msgstr "Último Sueño" + +#: dashboard/templates/cards/sleep_naps_day.html:6 +msgid "Today's Naps" +msgstr "Siestas de Hoy" + +#: dashboard/templates/cards/sleep_naps_day.html:12 +msgid "%(count)s nap%(plural)s" +msgstr "%(count)s siesta%(plural)s" + +#: dashboard/templates/cards/statistics.html:7 +msgid "Statistics" +msgstr "Estadísticas" + +#: dashboard/templates/cards/statistics.html:25 +msgid "Not enough data" +msgstr "No hay suficientes datos" + +#: dashboard/templates/cards/timer_list.html:12 +msgid "%(count)s active timer%(plural)s" +msgstr "%(count)s temporizador%(plural)s activo%(plural)s" + +#: dashboard/templates/cards/timer_list.html:19 +msgid "Started by %(instance.user)s at %(start)s" +msgstr "Iniciado por %(instance.user)s a las %(start)s" + +#: dashboard/templates/cards/tummytime_day.html:6 +msgid "Today's Tummy Time" +msgstr "Tiempo Boca Abajo Hoy" + +#: dashboard/templates/cards/tummytime_day.html:22 +msgid "%(duration)s at %(end)s" +msgstr "%(duration)s en %(end)s" + +#: dashboard/templates/cards/tummytime_last.html:6 +msgid "Last Tummy Time" +msgstr "Último Tiempo Boca Abajo" + +#: dashboard/templates/dashboard/child_button_group.html:3 +msgid "Child actions" +msgstr "Acciones de niño" + +#: reports/templates/reports/diaperchange_types.html:4 +#: reports/templates/reports/diaperchange_types.html:8 +#: reports/templates/reports/report_list.html:12 +msgid "Diaper Change Types" +msgstr "Tipos de Cambio de Pañal" + +#: reports/templates/reports/diaperchange_lifetimes.html:4 +#: reports/templates/reports/diaperchange_lifetimes.html:8 +#: reports/templates/reports/report_list.html:13 +msgid "Diaper Lifetimes" +msgstr "Duración Pañal" + +#: reports/templates/reports/report_list.html:15 +msgid "Feeding Durations (Average)" +msgstr "Duración de Tomas (Media)" + +#: reports/templates/reports/report_list.html:19 +#: reports/templates/reports/sleep_pattern.html:4 +#: reports/templates/reports/sleep_pattern.html:8 +msgid "Sleep Pattern" +msgstr "Patrón de Sueño" + +#: reports/templates/reports/report_list.html:20 +#: reports/templates/reports/sleep_totals.html:4 +#: reports/templates/reports/sleep_totals.html:8 +msgid "Sleep Totals" +msgstr "Totales de Sueño" + +#: dashboard/templatetags/cards.py:420 +msgid "Diaper change frequency" +msgstr "Frecuencia de cambio de pañal" + +#: dashboard/templatetags/cards.py:466 +msgid "Feeding frequency" +msgstr "Frecuencia de tomas" + +#: dashboard/templatetags/cards.py:328 +msgid "Average nap duration" +msgstr "Duración media siesta" + +#: dashboard/templatetags/cards.py:335 +msgid "Average naps per day" +msgstr "Media de siestas por día" + +#: dashboard/templatetags/cards.py:345 +msgid "Average sleep duration" +msgstr "Duración media sueño" + +#: dashboard/templatetags/cards.py:352 +msgid "Average awake duration" +msgstr "Duración media despierto" + +#: dashboard/templatetags/cards.py:362 +msgid "Weight change per week" +msgstr "Cambio de peso por semana" + +#: reports/graphs/diaperchange_lifetimes.py:35 +msgid "Diaper Lifetimes" +msgstr "Duración Pañal" + +#: reports/graphs/diaperchange_lifetimes.py:36 +msgid "Time between changes (hours)" +msgstr "Tiempo entre cambios (horas)" + +#: reports/graphs/diaperchange_types.py:41 reports/graphs/feeding_amounts.py:58 +msgid "Total" +msgstr "Total" + +#: reports/graphs/diaperchange_types.py:48 +msgid "Diaper Change Types" +msgstr "Tipo de Cambio de Pañal" + +#: reports/graphs/diaperchange_types.py:51 +msgid "Number of changes" +msgstr "Número de cambios" + +#: reports/graphs/feeding_duration.py:38 +msgid "Average duration" +msgstr "Duración media" + +#: reports/graphs/feeding_duration.py:46 +msgid "Total feedings" +msgstr "Total de tomas" + +#: reports/graphs/feeding_duration.py:55 +msgid "Average Feeding Durations" +msgstr "Duración Media Tomas" + +#: reports/graphs/feeding_duration.py:58 +msgid "Average duration (minutes)" +msgstr "Duración media (minutos)" + +#: reports/graphs/feeding_duration.py:60 +msgid "Number of feedings" +msgstr "Número de tomas" + +#: reports/graphs/sleep_pattern.py:148 +msgid "Sleep Pattern" +msgstr "

Patrón de Sueño

" + +#: reports/graphs/sleep_pattern.py:165 +msgid "Time of day" +msgstr "Hora del día" + +#: reports/graphs/sleep_totals.py:48 +msgid "Total sleep" +msgstr "Sueño total" + +#: reports/graphs/sleep_totals.py:58 +msgid "Sleep Totals" +msgstr "Totales de Sueño" + +#: reports/graphs/sleep_totals.py:61 +msgid "Hours of sleep" +msgstr "Horas de sueño" + +#: reports/graphs/weight_change.py:27 +msgid "Weight" +msgstr "Peso" + +#: reports/templates/reports/feeding_duration.html:4 +#: reports/templates/reports/feeding_duration.html:8 +msgid "Average Feeding Durations" +msgstr "Duración Media Tomas" + +#: dashboard/templates/dashboard/child_button_group.html:12 +#: reports/templates/reports/base.html:9 +#: reports/templates/reports/report_list.html:4 +msgid "Reports" +msgstr "Reportes" + +#: reports/templates/reports/report_base.html:19 +msgid "There is no enough data to generate this report." +msgstr "No hay suficientes datos para generar este reporte." + +#: core/models.py:296 +msgid "Both breasts" +msgstr "Ambos pechos" + +#: babybuddy/settings/base.py:173 +msgid "German" +msgstr "Alemán" + +#: babybuddy/settings/base.py:177 +msgid "Spanish" +msgstr "Español" + +#: babybuddy/settings/base.py:178 +msgid "Swedish" +msgstr "Sueco" + +#: babybuddy/settings/base.py:179 +msgid "Turkish" +msgstr "Turco" + +#: babybuddy/templates/error/403.html:9 +msgid "You do not have permission to access this resource. Contact a site administrator for assistance." +msgstr "No tienes permisos para acceder a este recurso. Contacta con un administrador si necesitas ayuda." + +#: babybuddy/templates/babybuddy/nav-dropdown.html:75 +#: babybuddy/templates/babybuddy/nav-dropdown.html:179 core/models.py:506 +#: core/models.py:519 core/models.py:520 core/models.py:523 +#: core/templates/core/temperature_confirm_delete.html:7 +#: core/templates/core/temperature_form.html:13 +#: core/templates/core/temperature_list.html:4 +#: core/templates/core/temperature_list.html:7 +#: core/templates/core/temperature_list.html:12 +#: core/templates/core/temperature_list.html:29 +msgid "Temperature" +msgstr "Temperatura" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:185 +msgid "Temperature reading" +msgstr "Lectura de temperatura" + +#: babybuddy/templates/babybuddy/welcome.html:14 +msgid "Learn about and predict baby's needs without (as much) guess work by using Baby Buddy to track —" +msgstr "Aprende a predecir las necesidades de tu bebé sin tener que adivinar haciendo track con Baby Buddy —" + +#: babybuddy/templates/babybuddy/welcome.html:56 +msgid "As the amount of entries grows, Baby Buddy will help parents and caregivers to identify small patterns in baby's habits using the dashboard and graphs. Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and dads with 2AM feedings and changings. To get started, just click the button below to add your first (or second, third, etc.) child!" +msgstr "A medida que el número de entradas crece, Baby Buddy ayudará a los padres y cuidadores a identificar pequeños patrones y hábitos del bebé usando los dashboards y gráficas. Baby Buddy funciona en el móvil y usa un tema oscuro para ayudar a los padres y madres en las tomas y cambios de las 2 de la mañana. Para comenzar, haz click en el botón y añade tu primer (o segundo, o tercer) hijo!" + +#: babybuddy/templates/registration/password_reset_confirm.html:13 +msgid "Oh snap! The two passwords did not match. Please try again." +msgstr "¡Vaya! Las dos contraseñas no coinciden. Por favor, inténtalo otra vez." + +#: babybuddy/templates/registration/password_reset_done.html:9 +msgid "We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly." +msgstr "Te hemos enviado por email las instrucciones para establecer tu contraseña, si la cuenta que has introducido existe. Deberías recibirlo en breve." + +#: babybuddy/templates/registration/password_reset_done.html:15 +msgid "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder." +msgstr "Si no recibes el email, asegúrate de haber introducido la dirección de correo con la que te has registrado y comprueba tu carpeta de spam." + +#: babybuddy/templates/registration/password_reset_form.html:9 +msgid "Enter your account email address in the form below. If the address is valid, you will receive instructions for resetting your password." +msgstr "Introduce tu dirección de correo electrónico en el siguiente formulario. Si la dirección es válida, recibirás instrucciones para respetar tu contraseña." + +#: core/models.py:285 +msgid "Fortified breast milk" +msgstr "Leche de pecho fortificada" + +#: core/templates/core/temperature_confirm_delete.html:4 +msgid "Delete a Temperature Reading" +msgstr "Eliminar Lectura de Temperatura" + +#: core/templates/core/temperature_form.html:8 +#: core/templates/core/temperature_form.html:17 +msgid "Add a Temperature Reading" +msgstr "Añadir Lectura de Temperatura" + +#: core/templates/core/temperature_form.html:27 +msgid "Add a Temperature Entry" +msgstr "Añadir Entrada de Temperatura" + +#: core/templates/core/temperature_list.html:70 +msgid "No temperature entries found." +msgstr "No se han encontrada registros de temperatura." + +#: core/templates/core/timer_detail.html:34 +msgid "%(timer)s created by %(user)s" +msgstr "%(timer)s creado por %(user)s" + +#: core/utils.py:40 +msgid "%(hours)s hour" +msgid_plural "%(hours)s hours" +msgstr[0] "%(hours)s hora" +msgstr[1] "%(hours)s horas" + +#: core/utils.py:44 +msgid "%(minutes)s minute" +msgid_plural "%(minutes)s minutes" +msgstr[0] "%(minutes)s minuto" +msgstr[1] "%(minutes)s minutos" + +#: core/utils.py:50 +msgid "%(seconds)s second" +msgid_plural "%(seconds)s seconds" +msgstr[0] "%(seconds)s segundo" +msgstr[1] "%(seconds)s segundos" + +#: core/views.py:69 core/views.py:146 +msgid "%(model)s entry deleted." +msgstr "%(model)s entradas borradas." + +#: core/views.py:366 +msgid "%(model)s reading added!" +msgstr "%(model)s lectura añadida!" + +#: core/views.py:374 +msgid "%(model)s reading for %(child)s updated." +msgstr "%(model)s lectura para %(child)s actualizada." + +#: dashboard/templates/cards/timer_list.html:27 +msgid "Started by %(user)s at %(start)s" +msgstr "Iniciado por %(user)s el %(start)s" + +#: reports/templates/reports/feeding_amounts.html:4 +#: reports/templates/reports/feeding_amounts.html:8 +#: reports/templates/reports/report_list.html:14 +msgid "Feeding Amounts" +msgstr "Cantidad de Tomas" + +#: reports/graphs/feeding_amounts.py:27 +msgid "Total feeding amount" +msgstr "Total cantidad toma" + +#: reports/graphs/feeding_amounts.py:36 +msgid "Total Feeding Amounts" +msgstr "Cantidad Total Tomas" + +#: reports/graphs/feeding_amounts.py:72 +msgid "Feeding amount" +msgstr "Cantidad toma" + +#: reports/templates/reports/report_base.html:17 +msgid "There is not enough data to generate this report." +msgstr "No hay suficientes datos para generar este informe." + +#: babybuddy/models.py:69 +msgid "Timezone" +msgstr "Zona horaria" + +#: babybuddy/templates/admin/base_site.html:4 +#: babybuddy/templates/admin/base_site.html:7 +#: babybuddy/templates/babybuddy/nav-dropdown.html:359 +msgid "Database Admin" +msgstr "Administrar Base de Datos" + +#: core/templates/core/child_list.html:15 +msgid "Add Child" +msgstr "Añadir Niño" + +#: core/templates/core/diaperchange_list.html:15 +msgid "Add Diaper Change" +msgstr "Añadir Cambio de Pañal" + +#: core/templates/core/feeding_list.html:15 +msgid "Add Feeding" +msgstr "Añadir Toma" + +#: core/templates/core/note_list.html:15 +msgid "Add Note" +msgstr "Añadir Nota" + +#: core/templates/core/sleep_list.html:15 +msgid "Add Sleep" +msgstr "Añadir Sueño" + +#: core/templates/core/temperature_list.html:15 +msgid "Add Temperature Reading" +msgstr "Añadir Lectura de Temperatura" + +#: core/templates/core/timer_confirm_delete_inactive.html:5 +msgid "Delete All Inactive Timers" +msgstr "Eliminar Todos los Temporizadores Inactivos" + +#: core/templates/core/timer_confirm_delete_inactive.html:10 +msgid "Delete Inactive" +msgstr "Eliminar Inactivo" + +#: core/templates/core/timer_confirm_delete_inactive.html:17 +msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" +msgstr "¿Está seguro de que desea eliminar %(number)s temporizador%(plural)s inactivo%(plural)s?" + +#: core/templates/core/timer_list.html:68 +msgid "Delete Inactive Timers" +msgstr "Eliminar Temporizadores Inactivos" + +#: core/templates/core/tummytime_list.html:15 +msgid "Add Tummy Time" +msgstr "Añadir Tiempo Boca Abajo" + +#: core/templates/core/weight_list.html:15 +msgid "Add Weight" +msgstr "Añadir Peso" + +#: core/views.py:501 +msgid "All inactive timers deleted." +msgstr "Todos los temporizadores inactivos eliminados." + +#: core/views.py:511 +msgid "No inactive timers exist." +msgstr "No hay temporizadores inactivos." + +#: dashboard/templates/cards/feeding_last_method.html:19 +msgid "most recent" +msgstr "más reciente" + +#: dashboard/templates/cards/feeding_last_method.html:21 +msgid "%(n)s feeding%(plural)s ago" +msgstr "hace %(n)s toma%(plural)s" + +#: dashboard/templates/cards/sleep_last.html:6 +msgid "Last Sleep" +msgstr "Último sueño" + +#: reports/templates/reports/report_list.html:11 +msgid "Diaper Change Amounts" +msgstr "Cantidades de Cambio de Pañal" + +#: reports/graphs/diaperchange_amounts.py:27 +msgid "Diaper change amount" +msgstr "Cantidad de Cambio de Pañal" + +#: reports/graphs/diaperchange_amounts.py:36 +msgid "Diaper Change Amounts" +msgstr "Cantidades de Cambio de Pañal" + +#: reports/graphs/diaperchange_amounts.py:39 +msgid "Change amount" +msgstr "Cambiar cantidad" + +#: reports/templates/reports/diaperchange_amounts.html:4 +#: reports/templates/reports/diaperchange_amounts.html:8 +msgid "Diaper Amounts" +msgstr "Cantidades de Pañal" + +#: babybuddy/models.py:21 +msgid "If supported by browser, the dashboard will only refresh when visible, and also when receiving focus." +msgstr "Si el navegador lo soporta, el dashboard sólo se refrescará cuando esté visible y recibiendo el foco." + +#: babybuddy/models.py:40 +msgid "Hide Empty Dashboard Cards" +msgstr "Ocultar tarjetas vacías del dashboard" + +#: babybuddy/models.py:43 +msgid "Hide data older than" +msgstr "Ocultar datos más antiguos que" + +#: babybuddy/models.py:45 +msgid "This setting controls which data will be shown in the dashboard." +msgstr "Esta configuración ajusta que datos serán mostrados en el dashboard." + +#: babybuddy/models.py:51 +msgid "show all data" +msgstr "mostrar todos los datos" + +#: babybuddy/models.py:52 +msgid "1 day" +msgstr "1 día" + +#: babybuddy/models.py:53 +msgid "2 days" +msgstr "2 días" + +#: babybuddy/models.py:54 +msgid "3 days" +msgstr "3 días" + +#: babybuddy/models.py:55 +msgid "1 week" +msgstr "1 semana" + +#: babybuddy/models.py:56 +msgid "4 weeks" +msgstr "4 semanas" + +#: babybuddy/settings/base.py:168 +msgid "Dutch" +msgstr "Neerlandés" + +#: babybuddy/settings/base.py:172 +msgid "Finnish" +msgstr "Finlandés" + +#: babybuddy/settings/base.py:174 +msgid "Italian" +msgstr "Italiano" + +#: babybuddy/settings/base.py:175 +msgid "Polish" +msgstr "Polaco" + +#: babybuddy/settings/base.py:176 +msgid "Portuguese" +msgstr "Portugués" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:118 +#: core/templates/timeline/timeline.html:4 +#: core/templates/timeline/timeline.html:7 +#: dashboard/templates/dashboard/child_button_group.html:9 +msgid "Timeline" +msgstr "Cronología" + +#: core/models.py:286 +msgid "Solid food" +msgstr "Comida sólida" + +#: core/models.py:297 +msgid "Parent fed" +msgstr "Comió con ayuda" + +#: core/models.py:298 +msgid "Self fed" +msgstr "Comió solo" + +#: core/templates/core/diaperchange_list.html:29 +msgid "Contents" +msgstr "Contenidos" + +#: core/templates/core/timer_detail.html:77 +msgid "Restart timer" +msgstr "Reiniciar temporizador" + +#: core/templates/core/timer_detail.html:84 +msgid "Delete timer" +msgstr "Eliminar temporizador" + +#: core/templatetags/datetime.py:60 +msgid "Today" +msgstr "hoy" + +#: core/templatetags/datetime.py:75 +msgid "{}, {}" +msgstr "{}, {}" + +#: core/templatetags/duration.py:25 +msgid "0 days" +msgstr "0 días" + +#: core/timeline.py:137 +msgid "Amount: %(amount).0f" +msgstr "Cantidad: %(amount).0f" + +#: core/timeline.py:157 +msgid "Contents: %(contents)s" +msgstr "Contenidos: %(contents)s" + +#: dashboard/templates/cards/diaperchange_last.html:12 +#: dashboard/templates/cards/feeding_last.html:12 +#: dashboard/templates/cards/sleep_last.html:12 +#: dashboard/templates/cards/tummytime_last.html:13 +msgid "
%(since)s ago
%(time)s" +msgstr "
hace %(since)s
%(time)s" + +#: dashboard/templates/cards/feeding_day.html:6 +msgid "Today's Feeding" +msgstr "Tomas de Hoy" + +#: dashboard/templates/cards/feeding_day.html:20 +msgid "%(count)s feeding entries" +msgstr "%(count)s entradas de tomas" + +#: dashboard/templates/cards/statistics.html:42 +msgid "No data yet" +msgstr "No hay datos todavía" + +#: reports/templates/reports/report_list.html:21 +msgid "Tummy Time Durations (Sum)" +msgstr "Tiempo Boca Abajo (Suma)" + +#: core/templates/timeline/_timeline.html:61 +#: dashboard/templates/dashboard/child_button_group.html:20 +msgid "Edit" +msgstr "Editar" + +#: dashboard/templatetags/cards.py:456 +msgid "Feeding frequency (past 3 days)" +msgstr "Frecuenca de tomas (últimos 3 días)" + +#: dashboard/templatetags/cards.py:460 +msgid "Feeding frequency (past 2 weeks)" +msgstr "Frecuenca de tomas (últimas 2 semanas)" + +#: reports/graphs/tummytime_duration.py:34 +msgid "Total duration" +msgstr "Duración total" + +#: reports/graphs/tummytime_duration.py:41 +#: reports/graphs/tummytime_duration.py:55 +msgid "Number of sessions" +msgstr "Número de sesiones" + +#: reports/graphs/tummytime_duration.py:50 +msgid "Total Tummy Time Durations" +msgstr "Tiempo Boca Abajo Total" + +#: reports/graphs/tummytime_duration.py:53 +msgid "Total duration (minutes)" +msgstr "Duración total (minutos)" + +#: reports/templates/reports/tummytime_duration.html:4 +#: reports/templates/reports/tummytime_duration.html:8 +msgid "Total Tummy Time Durations" +msgstr "Duración Total Tiempo Boca Abajo" + +#: babybuddy/settings/base.py:169 +msgid "English (US)" +msgstr "Inglés (EE.UU.)" + +#: babybuddy/settings/base.py:170 +msgid "English (UK)" +msgstr "Inglés (RU)" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:171 +msgid "Measurements" +msgstr "Mediciones" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:207 core/models.py:369 +#: core/models.py:381 core/models.py:382 core/models.py:385 +#: core/templates/core/height_confirm_delete.html:7 +#: core/templates/core/height_form.html:13 +#: core/templates/core/height_list.html:4 +#: core/templates/core/height_list.html:7 +#: core/templates/core/height_list.html:12 +#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 +#: reports/graphs/height_change.py:30 +#: reports/templates/reports/height_change.html:4 +#: reports/templates/reports/height_change.html:8 +#: reports/templates/reports/report_list.html:17 +msgid "Height" +msgstr "Altura" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:213 +msgid "Height entry" +msgstr "Entrada de altura" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:221 core/models.py:338 +#: core/models.py:351 core/models.py:352 core/models.py:355 +#: core/templates/core/head_circumference_confirm_delete.html:7 +#: core/templates/core/head_circumference_form.html:13 +#: core/templates/core/head_circumference_list.html:4 +#: core/templates/core/head_circumference_list.html:7 +#: core/templates/core/head_circumference_list.html:12 +#: core/templates/core/head_circumference_list.html:29 +#: reports/graphs/head_circumference_change.py:19 +#: reports/graphs/head_circumference_change.py:30 +#: reports/templates/reports/head_circumference_change.html:4 +#: reports/templates/reports/head_circumference_change.html:8 +#: reports/templates/reports/report_list.html:16 +msgid "Head Circumference" +msgstr "Perímetro craneal" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:227 +msgid "Head Circumference entry" +msgstr "Entrada de perímetro craneal" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:235 core/models.py:139 +#: core/models.py:151 core/models.py:152 core/models.py:155 +#: core/templates/core/bmi_confirm_delete.html:7 +#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 +#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 +#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 +#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 +#: reports/templates/reports/bmi_change.html:8 +msgid "BMI" +msgstr "IMC" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:241 +msgid "BMI entry" +msgstr "Entrada de IMC" + +#: core/models.py:452 +msgid "Napping" +msgstr "Siesteando" + +#: core/templates/core/bmi_confirm_delete.html:4 +msgid "Delete a BMI Entry" +msgstr "Eliminar una entrada de IMC" + +#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 +#: core/templates/core/bmi_form.html:27 +msgid "Add a BMI Entry" +msgstr "Añadir una entrada de IMC" + +#: core/templates/core/bmi_list.html:15 +msgid "Add BMI" +msgstr "Añadir IMC" + +#: core/templates/core/bmi_list.html:70 +msgid "No bmi entries found." +msgstr "No hay entradas de IMC." + #: core/templates/core/head_circumference_confirm_delete.html:4 msgid "Delete a Head Circumference Entry" msgstr "Eliminar una entrada de perímetro craneal" @@ -1305,25 +1885,135 @@ msgstr "Añadir altura" msgid "No height entries found." msgstr "No hay entradas de altura." -#: core/templates/core/note_confirm_delete.html:4 -msgid "Delete a Note" -msgstr "Eliminar una Nota" +#: core/templates/timeline/_timeline.html:44 +msgid "Duration: %(duration)s" +msgstr "Duración: %(duration)s" -#: core/templates/core/note_form.html:6 -msgid "Update a Note" -msgstr "Actualizar una Nota" +#: core/templates/timeline/_timeline.html:53 +msgid "%(since)s since previous" +msgstr "%(since)s desde anterior" -#: core/templates/core/note_form.html:8 core/templates/core/note_form.html:27 -msgid "Add a Note" -msgstr "Añadir una Nota" +#: core/templates/timeline/_timeline.html:85 +msgid "No events" +msgstr "Sin eventos" -#: core/templates/core/note_list.html:15 -msgid "Add Note" -msgstr "Añadir Nota" +#: core/timeline.py:185 +msgid "%(child)s had a %(type)s diaper change." +msgstr "%(child)s tuvo un cambio de pañal %(type)s." -#: core/templates/core/note_list.html:64 -msgid "No notes found." -msgstr "No se han encontrado notas." +#: dashboard/templatetags/cards.py:372 +msgid "Height change per week" +msgstr "Cambio de altura por semana" + +#: dashboard/templatetags/cards.py:382 +msgid "Head circumference change per week" +msgstr "Cambio de perímetro craneal por semana" + +#: dashboard/templatetags/cards.py:392 +msgid "BMI change per week" +msgstr "Cambio de IMC por semana" + +#: reports/graphs/bmi_change.py:27 +msgid "BMI" +msgstr "IMC" + +#: reports/graphs/feeding_amounts.py:69 +msgid "Total Feeding Amount by Type" +msgstr "Cantidad de tomas totales por tipo" + +#: reports/graphs/head_circumference_change.py:27 +msgid "Head Circumference" +msgstr "Perímetro craneal" + +#: reports/graphs/height_change.py:27 +msgid "Height" +msgstr "Altura" + +#: babybuddy/settings/base.py:167 +msgid "Chinese (simplified)" +msgstr "Chino (simplificado)" + +#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 +msgid "Bad Request" +msgstr "Petición incorrecta" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:14 +msgid "How to Fix" +msgstr "Cómo arreglarlo" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:15 +msgid "Add %(origin)s to the CSRF_TRUSTED_ORIGINS environment variable. If multiple origins are required separate with commas." +msgstr "Añade %(origin)s a la variable de entorno CSRF_TRUSTED_ORIGINS. Si se requieren orígenes múltiples, sepáralos por comas.\n" +"" + +#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 +msgid "Page Not Found" +msgstr "Página no encontrada" + +#: babybuddy/templates/error/404.html:9 +msgid "The path %(request_path)s does not exist." +msgstr "La ruta %(request_path)s no existe." + +#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 +msgid "Server Error" +msgstr "Error del servidor" + +#: babybuddy/templates/error/base.html:14 +msgid "Return to Baby Buddy" +msgstr "Volver a Baby Buddy" + +#: babybuddy/views.py:43 +msgid "Forbidden" +msgstr "Prohibido" + +#: babybuddy/views.py:44 +msgid "CSRF verification failed. Request aborted." +msgstr "Verificación CSRF fallida. Petición abortada." + +#: babybuddy/settings/base.py:166 +msgid "Catalan" +msgstr "Catalán" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:93 +#: babybuddy/templates/babybuddy/nav-dropdown.html:316 core/models.py:437 +#: core/models.py:438 core/models.py:441 +#: core/templates/core/pumping_confirm_delete.html:7 +#: core/templates/core/pumping_form.html:13 +#: core/templates/core/pumping_list.html:4 +#: core/templates/core/pumping_list.html:7 +#: core/templates/core/pumping_list.html:12 +#: reports/templates/reports/pumping_amounts.html:4 +#: reports/templates/reports/pumping_amounts.html:8 +msgid "Pumping" +msgstr "Extracciones" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:322 +msgid "Pumping entry" +msgstr "Entrada de extracción" + +#: core/filters.py:11 core/models.py:96 core/models.py:115 +msgid "Tag" +msgstr "Etiqueta" + +#: core/forms.py:136 +msgid "Click on the tags to add (+) or remove (-) tags or use the text editor to create new tags." +msgstr "Haz click en las etiquetas para añadirlas (+) o eliminarlas (-). O usa el editor de texto para crearlas nuevas." + +#: core/models.py:90 +msgid "Last used" +msgstr "Últimas usadas" + +#: core/models.py:97 core/templates/core/bmi_list.html:30 +#: core/templates/core/diaperchange_list.html:32 +#: core/templates/core/feeding_list.html:35 +#: core/templates/core/head_circumference_list.html:30 +#: core/templates/core/height_list.html:30 +#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 +#: core/templates/core/temperature_list.html:30 +#: core/templates/core/tummytime_list.html:31 +#: core/templates/core/weight_list.html:30 +msgid "Tags" +msgstr "Etiquetas" #: core/templates/core/pumping_confirm_delete.html:4 msgid "Delete a Pumping Entry" @@ -1343,203 +2033,6 @@ msgstr "Añadir extracción" msgid "No pumping entries found." msgstr "No se encontraron extracciones." -#: core/templates/core/quick_timer_nav.html:9 -#: core/templates/core/quick_timer_nav.html:29 -#: core/templates/core/timer_nav.html:37 -msgid "Quick Start Timer" -msgstr "Iniciar Temporizador Rápido" - -#: core/templates/core/quick_timer_nav.html:19 -#: core/templates/core/timer_nav.html:28 -#, fuzzy -#| msgid "Quick Start Timer" -msgid "Quick Start Timer For…" -msgstr "Iniciar Temporizador Rápido" - -#: core/templates/core/sleep_confirm_delete.html:4 -msgid "Delete a Sleep Entry" -msgstr "Eliminar Entrada de Sueño" - -#: core/templates/core/sleep_form.html:6 -msgid "Update a Sleep Entry" -msgstr "Actualizar Entrada de Sueño" - -#: core/templates/core/sleep_form.html:8 core/templates/core/sleep_form.html:27 -msgid "Add a Sleep Entry" -msgstr "Añadir Entrada de Sueño" - -#: core/templates/core/sleep_list.html:15 -msgid "Add Sleep" -msgstr "Añadir Sueño" - -#: core/templates/core/sleep_list.html:25 -#: core/templates/core/timer_form.html:12 -#: core/templates/core/timer_list.html:24 -#: core/templates/core/tummytime_list.html:24 -msgid "Start" -msgstr "Inicio" - -#: core/templates/core/sleep_list.html:26 -#: core/templates/core/timer_list.html:30 -#: core/templates/core/tummytime_list.html:25 -msgid "End" -msgstr "Fin" - -#: core/templates/core/sleep_list.html:31 -msgid "Nap" -msgstr "Siesta" - -#: core/templates/core/sleep_list.html:74 -msgid "No sleep entries found." -msgstr "No se han encontrado entradas de sueño." - -#: core/templates/core/temperature_confirm_delete.html:4 -msgid "Delete a Temperature Reading" -msgstr "Eliminar Lectura de Temperatura" - -#: core/templates/core/temperature_form.html:8 -#: core/templates/core/temperature_form.html:17 -msgid "Add a Temperature Reading" -msgstr "Añadir Lectura de Temperatura" - -#: core/templates/core/temperature_form.html:27 -msgid "Add a Temperature Entry" -msgstr "Añadir Entrada de Temperatura" - -#: core/templates/core/temperature_list.html:15 -msgid "Add Temperature Reading" -msgstr "Añadir Lectura de Temperatura" - -#: core/templates/core/temperature_list.html:70 -msgid "No temperature entries found." -msgstr "No se han encontrada registros de temperatura." - -#: core/templates/core/timer_confirm_delete.html:5 -#, python-format -msgid "Delete %(object)s" -msgstr "Eliminar %(object)s" - -#: core/templates/core/timer_confirm_delete_inactive.html:5 -msgid "Delete All Inactive Timers" -msgstr "Eliminar Todos los Temporizadores Inactivos" - -#: core/templates/core/timer_confirm_delete_inactive.html:10 -msgid "Delete Inactive" -msgstr "Eliminar Inactivo" - -#: core/templates/core/timer_confirm_delete_inactive.html:17 -#, fuzzy, python-format -#| msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" -msgid "Are you sure you want to delete %(number)s inactive timer?" -msgid_plural "Are you sure you want to delete %(number)s inactive timers?" -msgstr[0] "" -"¿Está seguro de que desea eliminar %(number)s temporizador%(plural)s inactivo" -"%(plural)s?" -msgstr[1] "" -"¿Está seguro de que desea eliminar %(number)s temporizador%(plural)s inactivo" -"%(plural)s?" - -#: core/templates/core/timer_detail.html:28 -msgid "Started" -msgstr "Iniciado" - -#: core/templates/core/timer_detail.html:30 -msgid "Stopped" -msgstr "Parado" - -#: core/templates/core/timer_detail.html:34 -#, python-format -msgid "%(timer)s created by %(user)s" -msgstr "%(timer)s creado por %(user)s" - -#: core/templates/core/timer_detail.html:63 -msgid "Timer actions" -msgstr "Acciones de temporizador" - -#: core/templates/core/timer_detail.html:77 -msgid "Restart timer" -msgstr "Reiniciar temporizador" - -#: core/templates/core/timer_detail.html:84 -msgid "Delete timer" -msgstr "Eliminar temporizador" - -#: core/templates/core/timer_form.html:22 -#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:15 -msgid "Start Timer" -msgstr "Iniciar Temporizador" - -#: core/templates/core/timer_list.html:58 -msgid "No timer entries found." -msgstr "No se han encontrado temporizadores." - -#: core/templates/core/timer_list.html:68 -msgid "Delete Inactive Timers" -msgstr "Eliminar Temporizadores Inactivos" - -#: core/templates/core/timer_nav.html:20 -msgid "View Timers" -msgstr "Ver Temporizadores" - -#: core/templates/core/timer_nav.html:44 -#: dashboard/templates/cards/timer_list.html:6 -msgid "Active Timers" -msgstr "Temporizadores Activos" - -#: core/templates/core/timer_nav.html:50 -#: dashboard/templates/cards/diaperchange_last.html:17 -#: dashboard/templates/cards/diaperchange_types.html:12 -#: dashboard/templates/cards/feeding_day.html:20 -#: dashboard/templates/cards/feeding_day.html:52 -#: dashboard/templates/cards/feeding_last.html:17 -#: dashboard/templates/cards/feeding_last_method.html:43 -#: dashboard/templates/cards/sleep_last.html:17 -#: dashboard/templates/cards/sleep_naps_day.html:18 -#: dashboard/templates/cards/sleep_recent.html:20 -#: dashboard/templates/cards/sleep_recent.html:52 -#: dashboard/templates/cards/tummytime_day.html:14 -msgid "None" -msgstr "Ninguno" - -#: core/templates/core/tummytime_confirm_delete.html:4 -msgid "Delete a Tummy Time Entry" -msgstr "Eliminar entrada de Tiempo Boca Abajo" - -#: core/templates/core/tummytime_form.html:6 -msgid "Update a Tummy Time Entry" -msgstr "Actualizar entrada de Tiempo Boca Abajo" - -#: core/templates/core/tummytime_form.html:8 -#: core/templates/core/tummytime_form.html:27 -msgid "Add a Tummy Time Entry" -msgstr "Añadir entrada de Tiempo Boca Abajo" - -#: core/templates/core/tummytime_list.html:15 -msgid "Add Tummy Time" -msgstr "Añadir Tiempo Boca Abajo" - -#: core/templates/core/tummytime_list.html:67 -msgid "No tummy time entries found." -msgstr "No se han encontrado entradas de tiempo boca abajo." - -#: core/templates/core/weight_confirm_delete.html:4 -msgid "Delete a Weight Entry" -msgstr "Eliminar Entrada de Peso" - -#: core/templates/core/weight_form.html:8 -#: core/templates/core/weight_form.html:17 -#: core/templates/core/weight_form.html:27 -msgid "Add a Weight Entry" -msgstr "Añadir Entrada de Peso" - -#: core/templates/core/weight_list.html:15 -msgid "Add Weight" -msgstr "Añadir Peso" - -#: core/templates/core/weight_list.html:70 -msgid "No weight entries found." -msgstr "No se han encontrado entradas de peso." - #: core/templates/core/widget_tag_editor.html:22 msgid "Tag name" msgstr "Etiqueta" @@ -1578,708 +2071,66 @@ msgctxt "Error modal" msgid "Close" msgstr "Cerrar" -#: core/templates/timeline/_timeline.html:38 -#, python-format -msgid "%(since)s ago (%(time)s)" -msgstr "hace %(since)s (%(time)s)" - -#: core/templates/timeline/_timeline.html:44 -#, python-format -msgid "Duration: %(duration)s" -msgstr "Duración: %(duration)s" - -#: core/templates/timeline/_timeline.html:53 -#, python-format -msgid "%(since)s since previous" -msgstr "%(since)s desde anterior" - -#: core/templates/timeline/_timeline.html:61 -#: dashboard/templates/dashboard/child_button_group.html:20 -msgid "Edit" -msgstr "Editar" - -#: core/templates/timeline/_timeline.html:85 -msgid "No events" -msgstr "Sin eventos" - -#: core/templatetags/datetime.py:60 -msgid "Today" -msgstr "hoy" - -#: core/templatetags/datetime.py:75 -msgid "{}, {}" -msgstr "{}, {}" - -#: core/templatetags/duration.py:25 -msgid "0 days" -msgstr "0 días" - -#: core/templatetags/duration.py:111 -#: dashboard/templates/cards/diaperchange_types.html:49 -msgid "today" -msgstr "hoy" - -#: core/templatetags/duration.py:113 -#: dashboard/templates/cards/diaperchange_types.html:51 -msgid "yesterday" -msgstr "ayer" - -#: core/templatetags/duration.py:116 -#, fuzzy -#| msgid "%(key)s days ago" -msgid " days ago" -msgstr "hace %(key)s días" - -#: core/timeline.py:53 -#, python-format -msgid "%(child)s started tummy time!" -msgstr "¡%(child)s ha empezado tiempo boca abajo!" - -#: core/timeline.py:65 -#, python-format -msgid "%(child)s finished tummy time." -msgstr "%(child)s ha finalizado tiempo boca abajo." - -#: core/timeline.py:91 -#, python-format -msgid "%(child)s fell asleep." -msgstr "%(child)s se ha dormido." - -#: core/timeline.py:103 -#, python-format -msgid "%(child)s woke up." -msgstr "%(child)s se ha despertado." - -#: core/timeline.py:137 -#, python-format -msgid "Amount: %(amount).0f" -msgstr "Cantidad: %(amount).0f" - -#: core/timeline.py:145 -#, python-format -msgid "%(child)s started feeding." -msgstr "%(child)s ha empezado una toma." - -#: core/timeline.py:158 -#, python-format -msgid "%(child)s finished feeding." -msgstr "%(child)s ha finalizado una toma." - -#: core/timeline.py:185 -#, python-format -msgid "%(child)s had a %(type)s diaper change." -msgstr "%(child)s tuvo un cambio de pañal %(type)s." - -#: core/utils.py:40 -#, python-format -msgid "%(hours)s hour" -msgid_plural "%(hours)s hours" -msgstr[0] "%(hours)s hora" -msgstr[1] "%(hours)s horas" - -#: core/utils.py:44 -#, python-format -msgid "%(minutes)s minute" -msgid_plural "%(minutes)s minutes" -msgstr[0] "%(minutes)s minuto" -msgstr[1] "%(minutes)s minutos" - -#: core/utils.py:50 -#, python-format -msgid "%(seconds)s second" -msgid_plural "%(seconds)s seconds" -msgstr[0] "%(seconds)s segundo" -msgstr[1] "%(seconds)s segundos" - -#: core/views.py:33 -#, python-format -msgid "%(model)s entry for %(child)s added!" -msgstr "¡Entrada de %(model)s para %(child)s añadida!" - -#: core/views.py:35 core/views.py:308 -#, python-format -msgid "%(model)s entry added!" -msgstr "¡Entrada de %(model)s añadida!" - -#: core/views.py:61 core/views.py:316 -#, python-format -msgid "%(model)s entry for %(child)s updated." -msgstr "Entrada de %(model)s para %(child)s actualizada." - -#: core/views.py:63 -#, python-format -msgid "%(model)s entry updated." -msgstr "%(model)s entrada actualizada." - -#: core/views.py:69 core/views.py:146 -#, python-format -msgid "%(model)s entry deleted." -msgstr "%(model)s entradas borradas." - -#: core/views.py:115 -#, python-format -msgid "%(first_name)s %(last_name)s added!" -msgstr "¡%(first_name)s %(last_name)s añadido!" - -#: core/views.py:366 -#, python-format -msgid "%(model)s reading added!" -msgstr "%(model)s lectura añadida!" - -#: core/views.py:374 -#, python-format -msgid "%(model)s reading for %(child)s updated." -msgstr "%(model)s lectura para %(child)s actualizada." - -#: core/views.py:483 -#, python-format -msgid "%(timer)s stopped." -msgstr "%(timer)s parado." - -#: core/views.py:506 -msgid "All inactive timers deleted." -msgstr "Todos los temporizadores inactivos eliminados." - -#: core/views.py:516 -msgid "No inactive timers exist." -msgstr "No hay temporizadores inactivos." - -#: dashboard/templates/cards/diaperchange_last.html:6 -msgid "Last Diaper Change" -msgstr "Último Cambio Pañal" - -#: dashboard/templates/cards/diaperchange_last.html:12 -#: dashboard/templates/cards/feeding_last.html:12 -#: dashboard/templates/cards/sleep_last.html:12 -#: dashboard/templates/cards/tummytime_last.html:13 -#, python-format -msgid "
%(since)s ago
%(time)s" -msgstr "
hace %(since)s
%(time)s" - -#: dashboard/templates/cards/diaperchange_types.html:14 -msgid "Past Week" -msgstr "Última semana" - -#: dashboard/templates/cards/diaperchange_types.html:27 -msgid "wet" -msgstr "mojado" - -#: dashboard/templates/cards/diaperchange_types.html:35 -msgid "solid" -msgstr "sólido" - -#: dashboard/templates/cards/diaperchange_types.html:53 -#, python-format -msgid "%(key)s days ago" -msgstr "hace %(key)s días" - -#: dashboard/templates/cards/feeding_day.html:6 -msgid "Today's Feeding" -msgstr "Tomas de Hoy" - -#: dashboard/templates/cards/feeding_day.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s feeding" -msgid_plural "%(counter)s feedings" -msgstr[0] "%(count)s entradas de sueño" -msgstr[1] "%(count)s entradas de sueño" - #: dashboard/templates/cards/feeding_day.html:32 -#: dashboard/templates/cards/sleep_recent.html:32 -#, python-format msgid "
%(since)s
" msgstr "
%(since)s
" -#: dashboard/templates/cards/feeding_last.html:6 -msgid "Last Feeding" -msgstr "Última Toma" - -#: dashboard/templates/cards/feeding_last_method.html:6 -msgid "Last Feeding Method" -msgstr "Último Método de Toma" - -#: dashboard/templates/cards/feeding_last_method.html:19 -msgid "most recent" -msgstr "más reciente" - -#: dashboard/templates/cards/feeding_last_method.html:21 -#, fuzzy, python-format -#| msgid "%(n)s feeding%(plural)s ago" -msgid "%(n)s feeding ago" -msgid_plural "%(n)s feedings ago" -msgstr[0] "hace %(n)s toma%(plural)s" -msgstr[1] "hace %(n)s toma%(plural)s" - -#: dashboard/templates/cards/sleep_last.html:6 -msgid "Last Sleep" -msgstr "Último sueño" - -#: dashboard/templates/cards/sleep_naps_day.html:6 -msgid "Today's Naps" -msgstr "Siestas de Hoy" - -#: dashboard/templates/cards/sleep_naps_day.html:12 -#, fuzzy, python-format -#| msgid "%(count)s nap%(plural)s" -msgid "%(count)s nap" -msgid_plural "%(count)s naps" -msgstr[0] "%(count)s siesta%(plural)s" -msgstr[1] "%(count)s siesta%(plural)s" - -#: dashboard/templates/cards/sleep_recent.html:6 -#, fuzzy -#| msgid "Last Sleep" -msgid "Recent Sleep" -msgstr "Último sueño" - -#: dashboard/templates/cards/sleep_recent.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s sleep" -msgid_plural "%(counter)s sleep" -msgstr[0] "%(count)s entradas de sueño" -msgstr[1] "%(count)s entradas de sueño" - -#: dashboard/templates/cards/statistics.html:7 -msgid "Statistics" -msgstr "Estadísticas" - -#: dashboard/templates/cards/statistics.html:25 -msgid "Not enough data" -msgstr "No hay suficientes datos" - -#: dashboard/templates/cards/statistics.html:42 -msgid "No data yet" -msgstr "No hay datos todavía" - -#: dashboard/templates/cards/timer_list.html:12 -#, fuzzy, python-format -#| msgid "%(count)s active timer%(plural)s" -msgid "%(count)s active timer" -msgid_plural "%(count)s active timers" -msgstr[0] "%(count)s temporizador%(plural)s activo%(plural)s" -msgstr[1] "%(count)s temporizador%(plural)s activo%(plural)s" - -#: dashboard/templates/cards/timer_list.html:27 -#, python-format -msgid "Started by %(user)s at %(start)s" -msgstr "Iniciado por %(user)s el %(start)s" - -#: dashboard/templates/cards/tummytime_day.html:6 -msgid "Today's Tummy Time" -msgstr "Tiempo Boca Abajo Hoy" - -#: dashboard/templates/cards/tummytime_day.html:22 -#, python-format -msgid "%(duration)s at %(end)s" -msgstr "%(duration)s en %(end)s" - -#: dashboard/templates/cards/tummytime_last.html:6 -msgid "Last Tummy Time" -msgstr "Último Tiempo Boca Abajo" - -#: dashboard/templates/cards/tummytime_last.html:18 -msgid "Never" -msgstr "Nunca" - -#: dashboard/templates/dashboard/child_button_group.html:3 -msgid "Child actions" -msgstr "Acciones de niño" - -#: dashboard/templates/dashboard/child_button_group.html:12 -#: reports/templates/reports/base.html:9 -#: reports/templates/reports/report_list.html:4 -msgid "Reports" -msgstr "Reportes" - -#: dashboard/templatetags/cards.py:357 -msgid "Average nap duration" -msgstr "Duración media siesta" - -#: dashboard/templatetags/cards.py:364 -msgid "Average naps per day" -msgstr "Media de siestas por día" - -#: dashboard/templatetags/cards.py:374 -msgid "Average sleep duration" -msgstr "Duración media sueño" - -#: dashboard/templatetags/cards.py:381 -msgid "Average awake duration" -msgstr "Duración media despierto" - -#: dashboard/templatetags/cards.py:391 -msgid "Weight change per week" -msgstr "Cambio de peso por semana" - -#: dashboard/templatetags/cards.py:401 -msgid "Height change per week" -msgstr "Cambio de altura por semana" - -#: dashboard/templatetags/cards.py:411 -msgid "Head circumference change per week" -msgstr "Cambio de perímetro craneal por semana" - -#: dashboard/templatetags/cards.py:421 -msgid "BMI change per week" -msgstr "Cambio de IMC por semana" - -#: dashboard/templatetags/cards.py:439 +#: dashboard/templatetags/cards.py:410 msgid "Diaper change frequency (past 3 days)" msgstr "Frecuencia de pañales (últimos 3 días)" -#: dashboard/templatetags/cards.py:443 +#: dashboard/templatetags/cards.py:414 msgid "Diaper change frequency (past 2 weeks)" msgstr "Frecuencia de pañales (últimas 2 semanas)" -#: dashboard/templatetags/cards.py:449 -msgid "Diaper change frequency" -msgstr "Frecuencia de cambio de pañal" - -#: dashboard/templatetags/cards.py:485 -msgid "Feeding frequency (past 3 days)" -msgstr "Frecuenca de tomas (últimos 3 días)" - -#: dashboard/templatetags/cards.py:489 -msgid "Feeding frequency (past 2 weeks)" -msgstr "Frecuenca de tomas (últimas 2 semanas)" - -#: dashboard/templatetags/cards.py:495 -msgid "Feeding frequency" -msgstr "Frecuencia de tomas" - -#: reports/graphs/bmi_change.py:27 -msgid "BMI" -msgstr "IMC" - -#: reports/graphs/diaperchange_amounts.py:27 -msgid "Diaper change amount" -msgstr "Cantidad de Cambio de Pañal" - -#: reports/graphs/diaperchange_amounts.py:36 -msgid "Diaper Change Amounts" -msgstr "Cantidades de Cambio de Pañal" - -#: reports/graphs/diaperchange_amounts.py:39 -msgid "Change amount" -msgstr "Cambiar cantidad" - -#: reports/graphs/diaperchange_lifetimes.py:35 -msgid "Diaper Lifetimes" -msgstr "Duración Pañal" - -#: reports/graphs/diaperchange_lifetimes.py:36 -msgid "Time between changes (hours)" -msgstr "Tiempo entre cambios (horas)" - -#: reports/graphs/diaperchange_types.py:41 reports/graphs/feeding_amounts.py:58 -msgid "Total" -msgstr "Total" - -#: reports/graphs/diaperchange_types.py:48 -msgid "Diaper Change Types" -msgstr "Tipo de Cambio de Pañal" - -#: reports/graphs/diaperchange_types.py:51 -msgid "Number of changes" -msgstr "Número de cambios" - -#: reports/graphs/feeding_amounts.py:69 -msgid "Total Feeding Amount by Type" -msgstr "Cantidad de tomas totales por tipo" - -#: reports/graphs/feeding_amounts.py:72 -msgid "Feeding amount" -msgstr "Cantidad toma" - -#: reports/graphs/feeding_duration.py:38 -msgid "Average duration" -msgstr "Duración media" - -#: reports/graphs/feeding_duration.py:46 -msgid "Total feedings" -msgstr "Total de tomas" - -#: reports/graphs/feeding_duration.py:55 -msgid "Average Feeding Durations" -msgstr "Duración Media Tomas" - -#: reports/graphs/feeding_duration.py:58 -msgid "Average duration (minutes)" -msgstr "Duración media (minutos)" - -#: reports/graphs/feeding_duration.py:60 -msgid "Number of feedings" -msgstr "Número de tomas" - -#: reports/graphs/head_circumference_change.py:27 -msgid "Head Circumference" -msgstr "Perímetro craneal" - -#: reports/graphs/height_change.py:27 -msgid "Height" -msgstr "Altura" - -#: reports/graphs/pumping_amounts.py:59 +#: reports/graphs/pumping_amounts.py:57 msgid "Total Pumping Amount" msgstr "Cantidad total extraída" -#: reports/graphs/pumping_amounts.py:62 +#: reports/graphs/pumping_amounts.py:60 msgid "Pumping Amount" msgstr "Cantidad de extracción" -#: reports/graphs/sleep_pattern.py:150 -msgid "Sleep Pattern" -msgstr "

Patrón de Sueño

" - -#: reports/graphs/sleep_pattern.py:167 -msgid "Time of day" -msgstr "Hora del día" - -#: reports/graphs/sleep_totals.py:48 -msgid "Total sleep" -msgstr "Sueño total" - -#: reports/graphs/sleep_totals.py:58 -msgid "Sleep Totals" -msgstr "Totales de Sueño" - -#: reports/graphs/sleep_totals.py:61 -msgid "Hours of sleep" -msgstr "Horas de sueño" - -#: reports/graphs/tummytime_duration.py:34 -msgid "Total duration" -msgstr "Duración total" - -#: reports/graphs/tummytime_duration.py:41 -#: reports/graphs/tummytime_duration.py:55 -msgid "Number of sessions" -msgstr "Número de sesiones" - -#: reports/graphs/tummytime_duration.py:50 -msgid "Total Tummy Time Durations" -msgstr "Tiempo Boca Abajo Total" - -#: reports/graphs/tummytime_duration.py:53 -msgid "Total duration (minutes)" -msgstr "Duración total (minutos)" - -#: reports/graphs/weight_change.py:27 -msgid "Weight" -msgstr "Peso" - -#: reports/templates/reports/diaperchange_amounts.html:4 -#: reports/templates/reports/diaperchange_amounts.html:8 -msgid "Diaper Amounts" -msgstr "Cantidades de Pañal" - -#: reports/templates/reports/diaperchange_lifetimes.html:4 -#: reports/templates/reports/diaperchange_lifetimes.html:8 -#: reports/templates/reports/report_list.html:13 -msgid "Diaper Lifetimes" -msgstr "Duración Pañal" - -#: reports/templates/reports/diaperchange_types.html:4 -#: reports/templates/reports/diaperchange_types.html:8 -#: reports/templates/reports/report_list.html:12 -msgid "Diaper Change Types" -msgstr "Tipos de Cambio de Pañal" - -#: reports/templates/reports/feeding_amounts.html:4 -#: reports/templates/reports/feeding_amounts.html:8 -#: reports/templates/reports/report_list.html:14 -msgid "Feeding Amounts" -msgstr "Cantidad de Tomas" - -#: reports/templates/reports/feeding_duration.html:4 -#: reports/templates/reports/feeding_duration.html:8 -msgid "Average Feeding Durations" -msgstr "Duración Media Tomas" - -#: reports/templates/reports/report_base.html:17 -msgid "There is not enough data to generate this report." -msgstr "No hay suficientes datos para generar este informe." - #: reports/templates/reports/report_list.html:10 msgid "Body Mass Index (BMI)" msgstr "Índice de Masa Corporal (IMC)" -#: reports/templates/reports/report_list.html:11 -msgid "Diaper Change Amounts" -msgstr "Cantidades de Cambio de Pañal" - -#: reports/templates/reports/report_list.html:15 -msgid "Feeding Durations (Average)" -msgstr "Duración de Tomas (Media)" - #: reports/templates/reports/report_list.html:18 msgid "Pumping Amounts" msgstr "Cantidad de extracciones" -#: reports/templates/reports/report_list.html:19 -#: reports/templates/reports/sleep_pattern.html:4 -#: reports/templates/reports/sleep_pattern.html:8 -msgid "Sleep Pattern" -msgstr "Patrón de Sueño" +#: core/templates/core/timer_confirm_delete_inactive.html:17 +#, fuzzy +msgid "Are you sure you want to delete %(number)s inactive timer?" +msgid_plural "Are you sure you want to delete %(number)s inactive timers?" +msgstr[0] "¿Está seguro de que desea eliminar %(number)s temporizador%(plural)s inactivo%(plural)s?" +msgstr[1] "¿Está seguro de que desea eliminar %(number)s temporizador%(plural)s inactivo%(plural)s?" -#: reports/templates/reports/report_list.html:20 -#: reports/templates/reports/sleep_totals.html:4 -#: reports/templates/reports/sleep_totals.html:8 -msgid "Sleep Totals" -msgstr "Totales de Sueño" +#: dashboard/templates/cards/feeding_day.html:25 +#, fuzzy +msgid "%(counter)s feeding" +msgid_plural "%(counter)s feedings" +msgstr[0] "%(count)s entradas de sueño" +msgstr[1] "%(count)s entradas de sueño" -#: reports/templates/reports/report_list.html:21 -msgid "Tummy Time Durations (Sum)" -msgstr "Tiempo Boca Abajo (Suma)" +#: dashboard/templates/cards/feeding_last_method.html:21 +#, fuzzy +msgid "%(n)s feeding ago" +msgid_plural "%(n)s feedings ago" +msgstr[0] "hace %(n)s toma%(plural)s" +msgstr[1] "hace %(n)s toma%(plural)s" -#: reports/templates/reports/tummytime_duration.html:4 -#: reports/templates/reports/tummytime_duration.html:8 -msgid "Total Tummy Time Durations" -msgstr "Duración Total Tiempo Boca Abajo" +#: dashboard/templates/cards/sleep_naps_day.html:12 +#, fuzzy +msgid "%(count)s nap" +msgid_plural "%(count)s naps" +msgstr[0] "%(count)s siesta%(plural)s" +msgstr[1] "%(count)s siesta%(plural)s" -#~ msgid "Today's Sleep" -#~ msgstr "Sueño Hoy" +#: dashboard/templates/cards/timer_list.html:12 +#, fuzzy +msgid "%(count)s active timer" +msgid_plural "%(count)s active timers" +msgstr[0] "%(count)s temporizador%(plural)s activo%(plural)s" +msgstr[1] "%(count)s temporizador%(plural)s activo%(plural)s" -#, python-format -#~ msgid "%(count)s sleep entries" -#~ msgstr "%(count)s entradas de sueño" - -#~ msgid "" -#~ "This setting will only be used when a browser does not support refresh on " -#~ "focus." -#~ msgstr "" -#~ "Este parámetro solo será utilizado en caso de que tu navegador no soporte " -#~ "la opción de refrescar al hacer foco." - -#~ msgid "English" -#~ msgstr "Inglés" - -#~ msgid "" -#~ "You do not have permission to access this resource.\n" -#~ " Contact a site administrator for assistance." -#~ msgstr "" -#~ "No tienes permiso para acceder a este recurso.\n" -#~ "Contacta con un administrador si necesitas asistencia." - -#~ msgid "" -#~ "Error: Some fields have errors. See below for details. " -#~ msgstr "" -#~ "Error: Algunos campos contienen errores. Mira más abajo " -#~ "para más detalles. " - -#~ msgid "Backend Admin" -#~ msgstr "Administrar Backend" - -#~ msgid "" -#~ "Learn about and predict baby's needs without\n" -#~ " (as much) guess work by using Baby Buddy to track " -#~ "—" -#~ msgstr "" -#~ "Aprende y predice las necesidades de tu bebé sin\n" -#~ " tener que adivinar (tanto) usando Baby Buddy —" - -#~ msgid "" -#~ "As the amount of entries grows, Baby Buddy will help\n" -#~ " parents and caregivers to identify small patterns in baby's " -#~ "habits\n" -#~ " using the dashboard and graphs. Baby Buddy is mobile-friendly " -#~ "and\n" -#~ " uses a dark theme to help weary moms and dads with 2AM " -#~ "feedings and\n" -#~ " changings. To get started, just click the button below to add " -#~ "your\n" -#~ " first (or second, third, etc.) child!" -#~ msgstr "" -#~ "A medida que las entradas van aumentando, Baby Buddy ayudará\n" -#~ " a padres y cuidadores a identificar pequeños patrones en los " -#~ "hábitos\n" -#~ " del bebé usando las gráficas y el dashboard. Baby Buddy " -#~ "funciona en\n" -#~ " el móvil y usa un tema oscuro para ayudar a las mamás y papás " -#~ "cansados\n" -#~ " con las tomas y cambios de las 2 de la mañana. Para empezar, " -#~ "haz click\n" -#~ " en el enlace más abajo para añadir tu primer (o segundo, " -#~ "tercero, etc.) hijo!" - -#~ msgid "" -#~ "

Oh snap! The\n" -#~ " two passwords did not match. Please try again.

" -#~ msgstr "" -#~ "

¡Vaya! Las contraseñas no coinciden. " -#~ "Por favor, inténtalo de nuevo.

" - -#~ msgid "" -#~ "

We've emailed you instructions for setting your\n" -#~ " password, if an account exists with the email you entered. " -#~ "You\n" -#~ " should receive them shortly.

\n" -#~ "

If you don't receive an email, please make sure " -#~ "you've\n" -#~ " entered the address you registered with, and check your spam\n" -#~ " folder.

" -#~ msgstr "" -#~ "

Te hemos enviado instrucciones para configurar tu\n" -#~ " contraseña, si la cuenta existe y coincide con el email " -#~ "introducido, \n" -#~ " deberías recibirlas en breve.

\n" -#~ "

Si no recibes el email, por favor comprueba " -#~ "que\n" -#~ " has introducido el email con el que te has registrado y tu " -#~ "carpeta\n" -#~ " de spam.

" - -#~ msgid "" -#~ "

Enter your account email address in the\n" -#~ " form below. If the address is valid, you will receive " -#~ "instructions for\n" -#~ " resetting your password.

" -#~ msgstr "" -#~ "

Introduce tu dirección de email en el siguiente \n" -#~ " formulario. Si la direción es valida, recibirás las " -#~ "instrucciones\n" -#~ " para resetear tu contraseña.

" - -#~ msgid "Wet and/or solid is required." -#~ msgstr "Se requiere mojado y/o sólido." - -#~ msgid "Only \"Bottle\" method is allowed with \"Formula\" type." -#~ msgstr "Solo se permite método \"botella\" para el tipo \"Fórmula\"." - -#~ msgid "Add a Change" -#~ msgstr "Añadir Cambio" - -#~ msgid "%(timer)s created by %(object.user)s" -#~ msgstr "%(timer)s creado por %(object.user)s" - -#~ msgid "%(child)s had a diaper change." -#~ msgstr "%(child)s ha tenido un cambio de pañal." - -#~ msgid "%(time)s ago" -#~ msgstr "hace %(time)s" - -#~ msgid "None yet today" -#~ msgstr "Ninguno hoy todavía" - -#~ msgid "Last Slept" -#~ msgstr "Último Sueño" - -#~ msgid "Started by %(instance.user)s at %(start)s" -#~ msgstr "Iniciado por %(instance.user)s a las %(start)s" - -#~ msgid "There is no enough data to generate this report." -#~ msgstr "No hay suficientes datos para generar este reporte." - -#~ msgid "Total feeding amount" -#~ msgstr "Total cantidad toma" - -#~ msgid "Total Feeding Amounts" -#~ msgstr "Cantidad Total Tomas" - -#~ msgid "Contents: %(contents)s" -#~ msgstr "Contenidos: %(contents)s" - -#~ msgid "%(count)s feeding entries" -#~ msgstr "%(count)s entradas de tomas" diff --git a/locale/fi/LC_MESSAGES/django.mo b/locale/fi/LC_MESSAGES/django.mo index 99173f45..c95c3d3b 100644 Binary files a/locale/fi/LC_MESSAGES/django.mo and b/locale/fi/LC_MESSAGES/django.mo differ diff --git a/locale/fi/LC_MESSAGES/django.po b/locale/fi/LC_MESSAGES/django.po index e7979c7b..bc0931f4 100644 --- a/locale/fi/LC_MESSAGES/django.po +++ b/locale/fi/LC_MESSAGES/django.po @@ -1,22 +1,20 @@ msgid "" msgstr "" -"Project-Id-Version: Baby Buddy\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 21:13+0000\n" -"Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" +"Project-Id-Version: Baby Buddy\n" +"Language: fi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: babybuddy/admin.py:12 babybuddy/admin.py:13 -#: babybuddy/templates/babybuddy/nav-dropdown.html:324 +#: babybuddy/templates/babybuddy/nav-dropdown.html:347 #: babybuddy/templates/babybuddy/user_settings_form.html:8 msgid "Settings" msgstr "Asetukset" -#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:89 +#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:111 #: babybuddy/templates/babybuddy/user_settings_form.html:61 #: dashboard/templates/dashboard/child.html:4 #: dashboard/templates/dashboard/child.html:9 @@ -31,10 +29,8 @@ msgid "Refresh rate" msgstr "Päivitystaajuus" #: babybuddy/models.py:21 -msgid "" -"If supported by browser, the dashboard will only refresh when visible, and " -"also when receiving focus." -msgstr "" +msgid "This setting will only be used when a browser does not support refresh on focus." +msgstr "Tätä asetusta käytetään vain, jos selain ei \"refresh on focus\" -toimintoa." #: babybuddy/models.py:28 msgid "disabled" @@ -72,116 +68,30 @@ msgstr "15 min." msgid "30 min." msgstr "30 min." -#: babybuddy/models.py:40 -msgid "Hide Empty Dashboard Cards" -msgstr "" - -#: babybuddy/models.py:43 -msgid "Hide data older than" -msgstr "" - -#: babybuddy/models.py:45 -msgid "This setting controls which data will be shown in the dashboard." -msgstr "" - -#: babybuddy/models.py:51 -msgid "show all data" -msgstr "" - -#: babybuddy/models.py:52 -msgid "1 day" -msgstr "" - -#: babybuddy/models.py:53 -msgid "2 days" -msgstr "" - -#: babybuddy/models.py:54 -msgid "3 days" -msgstr "" - -#: babybuddy/models.py:55 -msgid "1 week" -msgstr "" - -#: babybuddy/models.py:56 -msgid "4 weeks" -msgstr "" - #: babybuddy/models.py:63 msgid "Language" msgstr "Kieli" -#: babybuddy/models.py:69 -msgid "Timezone" -msgstr "Aikavyöhyke" - #: babybuddy/models.py:73 -#, python-brace-format msgid "{user}'s Settings" msgstr "Käyttäjän {user} asetukset" -#: babybuddy/settings/base.py:166 -msgid "Catalan" -msgstr "" - -#: babybuddy/settings/base.py:167 -msgid "Chinese (simplified)" -msgstr "" - -#: babybuddy/settings/base.py:168 -msgid "Dutch" -msgstr "" - -#: babybuddy/settings/base.py:169 -msgid "English (US)" -msgstr "englanti (Yhdysvallat)" - -#: babybuddy/settings/base.py:170 -msgid "English (UK)" -msgstr "englanti (Yhdistynyt kuningaskunta)" +#: babybuddy/settings/base.py:171 +msgid "English" +msgstr "englanti" #: babybuddy/settings/base.py:171 msgid "French" msgstr "ranska" -#: babybuddy/settings/base.py:172 -msgid "Finnish" -msgstr "" +#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 +msgid "Permission Denied" +msgstr "Pääsy kielletty" -#: babybuddy/settings/base.py:173 -msgid "German" -msgstr "saksa" - -#: babybuddy/settings/base.py:174 -msgid "Italian" -msgstr "" - -#: babybuddy/settings/base.py:175 -msgid "Polish" -msgstr "englanti" - -#: babybuddy/settings/base.py:176 -msgid "Portuguese" -msgstr "" - -#: babybuddy/settings/base.py:177 -msgid "Spanish" -msgstr "espanja" - -#: babybuddy/settings/base.py:178 -msgid "Swedish" -msgstr "ruotsi" - -#: babybuddy/settings/base.py:179 -msgid "Turkish" -msgstr "turkki" - -#: babybuddy/templates/admin/base_site.html:4 -#: babybuddy/templates/admin/base_site.html:7 -#: babybuddy/templates/babybuddy/nav-dropdown.html:336 -msgid "Database Admin" -msgstr "Tietokantahallinta" +#: babybuddy/templates/403.html:12 +msgid "You do not have permission to access this resource.\n" +" Contact a site administrator for assistance." +msgstr "Sinulla ei ole oikeutta tähän resurssiin." #: babybuddy/templates/babybuddy/base.html:36 msgid "Home" @@ -206,35 +116,32 @@ msgstr "Lähetä" #: babybuddy/templates/babybuddy/messages.html:18 #: babybuddy/templates/babybuddy/user_settings_form.html:19 -#, python-format msgid "Error: %(error)s" msgstr "Virhe: %(error)s" #: babybuddy/templates/babybuddy/messages.html:23 -#: babybuddy/templates/babybuddy/user_settings_form.html:26 -msgid "Error: Some fields have errors. See below for details." -msgstr "" -"Virhe: Joissakin kentissä on virheitä. Tarkista ne alta." +msgid "Error: Some fields have errors. See below for details. " +msgstr "Virhe: Joissakin kentissä on virheitä. Tarkista ne alta." -#: babybuddy/templates/babybuddy/nav-dropdown.html:48 core/models.py:248 +#: babybuddy/templates/babybuddy/nav-dropdown.html:51 core/models.py:248 #: core/models.py:252 msgid "Diaper Change" msgstr "Vaipanvaihto" -#: babybuddy/templates/babybuddy/nav-dropdown.html:54 -#: babybuddy/templates/babybuddy/nav-dropdown.html:259 core/models.py:312 +#: babybuddy/templates/babybuddy/nav-dropdown.html:57 +#: babybuddy/templates/babybuddy/nav-dropdown.html:281 core/models.py:312 #: core/models.py:316 core/templates/core/timer_detail.html:43 msgid "Feeding" msgstr "Syöttö" -#: babybuddy/templates/babybuddy/nav-dropdown.html:60 -#: babybuddy/templates/babybuddy/nav-dropdown.html:135 core/models.py:396 +#: babybuddy/templates/babybuddy/nav-dropdown.html:63 +#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:396 #: core/models.py:407 core/models.py:411 core/templates/core/note_list.html:29 msgid "Note" msgstr "Muistiinpano" -#: babybuddy/templates/babybuddy/nav-dropdown.html:66 -#: babybuddy/templates/babybuddy/nav-dropdown.html:280 +#: babybuddy/templates/babybuddy/nav-dropdown.html:69 +#: babybuddy/templates/babybuddy/nav-dropdown.html:288 #: babybuddy/templates/babybuddy/welcome.html:42 core/models.py:467 #: core/models.py:468 core/models.py:471 #: core/templates/core/sleep_confirm_delete.html:7 @@ -244,8 +151,8 @@ msgstr "Muistiinpano" msgid "Sleep" msgstr "Uni" -#: babybuddy/templates/babybuddy/nav-dropdown.html:72 -#: babybuddy/templates/babybuddy/nav-dropdown.html:293 +#: babybuddy/templates/babybuddy/nav-dropdown.html:81 +#: babybuddy/templates/babybuddy/nav-dropdown.html:301 #: babybuddy/templates/babybuddy/welcome.html:50 core/models.py:647 #: core/models.py:648 core/models.py:651 #: core/templates/core/timer_detail.html:59 @@ -257,15 +164,24 @@ msgstr "Uni" msgid "Tummy Time" msgstr "Ihokontakti" -#: babybuddy/templates/babybuddy/nav-dropdown.html:96 -#: core/templates/timeline/timeline.html:4 -#: core/templates/timeline/timeline.html:7 -#: dashboard/templates/dashboard/child_button_group.html:9 -msgid "Timeline" -msgstr "" +#: babybuddy/templates/babybuddy/nav-dropdown.html:87 +#: babybuddy/templates/babybuddy/nav-dropdown.html:193 core/models.py:673 +#: core/models.py:685 core/models.py:686 core/models.py:689 +#: core/templates/core/weight_confirm_delete.html:7 +#: core/templates/core/weight_form.html:13 +#: core/templates/core/weight_list.html:4 +#: core/templates/core/weight_list.html:7 +#: core/templates/core/weight_list.html:12 +#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 +#: reports/graphs/weight_change.py:30 +#: reports/templates/reports/report_list.html:22 +#: reports/templates/reports/weight_change.html:4 +#: reports/templates/reports/weight_change.html:8 +msgid "Weight" +msgstr "Paino" -#: babybuddy/templates/babybuddy/nav-dropdown.html:107 -#: babybuddy/templates/babybuddy/nav-dropdown.html:115 core/models.py:188 +#: babybuddy/templates/babybuddy/nav-dropdown.html:129 +#: babybuddy/templates/babybuddy/nav-dropdown.html:137 core/models.py:188 #: core/templates/core/child_confirm_delete.html:7 #: core/templates/core/child_detail.html:7 #: core/templates/core/child_form.html:13 core/templates/core/child_list.html:4 @@ -275,7 +191,7 @@ msgstr "" msgid "Children" msgstr "Lapset" -#: babybuddy/templates/babybuddy/nav-dropdown.html:121 core/models.py:137 +#: babybuddy/templates/babybuddy/nav-dropdown.html:143 core/models.py:137 #: core/models.py:187 core/models.py:221 core/models.py:274 core/models.py:335 #: core/models.py:367 core/models.py:394 core/models.py:426 core/models.py:450 #: core/models.py:503 core/models.py:537 core/models.py:630 core/models.py:671 @@ -294,7 +210,7 @@ msgstr "Lapset" msgid "Child" msgstr "Lapsi" -#: babybuddy/templates/babybuddy/nav-dropdown.html:129 core/models.py:143 +#: babybuddy/templates/babybuddy/nav-dropdown.html:151 core/models.py:143 #: core/models.py:240 core/models.py:304 core/models.py:343 core/models.py:373 #: core/models.py:408 core/models.py:430 core/models.py:458 core/models.py:511 #: core/models.py:677 core/templates/core/note_confirm_delete.html:7 @@ -303,112 +219,24 @@ msgstr "Lapsi" msgid "Notes" msgstr "Muistiinpanot" -#: babybuddy/templates/babybuddy/nav-dropdown.html:149 -msgid "Measurements" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:139 -#: core/models.py:151 core/models.py:152 core/models.py:155 -#: core/templates/core/bmi_confirm_delete.html:7 -#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 -#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 -#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 -#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 -#: reports/templates/reports/bmi_change.html:8 -msgid "BMI" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:163 -msgid "BMI entry" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:171 core/models.py:338 -#: core/models.py:351 core/models.py:352 core/models.py:355 -#: core/templates/core/head_circumference_confirm_delete.html:7 -#: core/templates/core/head_circumference_form.html:13 -#: core/templates/core/head_circumference_list.html:4 -#: core/templates/core/head_circumference_list.html:7 -#: core/templates/core/head_circumference_list.html:12 -#: core/templates/core/head_circumference_list.html:29 -#: reports/graphs/head_circumference_change.py:19 -#: reports/graphs/head_circumference_change.py:30 -#: reports/templates/reports/head_circumference_change.html:4 -#: reports/templates/reports/head_circumference_change.html:8 -#: reports/templates/reports/report_list.html:16 -msgid "Head Circumference" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:177 -msgid "Head Circumference entry" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:185 core/models.py:369 -#: core/models.py:381 core/models.py:382 core/models.py:385 -#: core/templates/core/height_confirm_delete.html:7 -#: core/templates/core/height_form.html:13 -#: core/templates/core/height_list.html:4 -#: core/templates/core/height_list.html:7 -#: core/templates/core/height_list.html:12 -#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 -#: reports/graphs/height_change.py:30 -#: reports/templates/reports/height_change.html:4 -#: reports/templates/reports/height_change.html:8 -#: reports/templates/reports/report_list.html:17 -msgid "Height" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:191 -msgid "Height entry" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:199 core/models.py:506 -#: core/models.py:519 core/models.py:520 core/models.py:523 -#: core/templates/core/temperature_confirm_delete.html:7 -#: core/templates/core/temperature_form.html:13 -#: core/templates/core/temperature_list.html:4 -#: core/templates/core/temperature_list.html:7 -#: core/templates/core/temperature_list.html:12 -#: core/templates/core/temperature_list.html:29 -msgid "Temperature" -msgstr "Lämpötila" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:205 -msgid "Temperature reading" -msgstr "Lämpötilalukema" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:213 core/models.py:673 -#: core/models.py:685 core/models.py:686 core/models.py:689 -#: core/templates/core/weight_confirm_delete.html:7 -#: core/templates/core/weight_form.html:13 -#: core/templates/core/weight_list.html:4 -#: core/templates/core/weight_list.html:7 -#: core/templates/core/weight_list.html:12 -#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 -#: reports/graphs/weight_change.py:30 -#: reports/templates/reports/report_list.html:22 -#: reports/templates/reports/weight_change.html:4 -#: reports/templates/reports/weight_change.html:8 -msgid "Weight" -msgstr "Paino" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:219 +#: babybuddy/templates/babybuddy/nav-dropdown.html:199 msgid "Weight entry" msgstr "Painomerkintä" -#: babybuddy/templates/babybuddy/nav-dropdown.html:233 +#: babybuddy/templates/babybuddy/nav-dropdown.html:255 msgid "Activities" msgstr "Aktiviteetit" -#: babybuddy/templates/babybuddy/nav-dropdown.html:240 +#: babybuddy/templates/babybuddy/nav-dropdown.html:262 #: reports/graphs/diaperchange_lifetimes.py:27 msgid "Changes" msgstr "Muutokset" -#: babybuddy/templates/babybuddy/nav-dropdown.html:246 +#: babybuddy/templates/babybuddy/nav-dropdown.html:268 msgid "Change" msgstr "Muutos" -#: babybuddy/templates/babybuddy/nav-dropdown.html:253 +#: babybuddy/templates/babybuddy/nav-dropdown.html:275 #: babybuddy/templates/babybuddy/welcome.html:34 core/models.py:313 #: core/templates/core/feeding_confirm_delete.html:7 #: core/templates/core/feeding_form.html:13 @@ -418,31 +246,15 @@ msgstr "Muutos" msgid "Feedings" msgstr "Syötöt" -#: babybuddy/templates/babybuddy/nav-dropdown.html:267 core/models.py:437 -#: core/models.py:438 core/models.py:441 -#: core/templates/core/pumping_confirm_delete.html:7 -#: core/templates/core/pumping_form.html:13 -#: core/templates/core/pumping_list.html:4 -#: core/templates/core/pumping_list.html:7 -#: core/templates/core/pumping_list.html:12 -#: reports/templates/reports/pumping_amounts.html:4 -#: reports/templates/reports/pumping_amounts.html:8 -msgid "Pumping" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:273 -msgid "Pumping entry" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:286 +#: babybuddy/templates/babybuddy/nav-dropdown.html:294 msgid "Sleep entry" msgstr "Unimerkintä" -#: babybuddy/templates/babybuddy/nav-dropdown.html:299 +#: babybuddy/templates/babybuddy/nav-dropdown.html:307 msgid "Tummy Time entry" msgstr "Ihokontakti" -#: babybuddy/templates/babybuddy/nav-dropdown.html:323 +#: babybuddy/templates/babybuddy/nav-dropdown.html:346 #: babybuddy/templates/babybuddy/user_list.html:17 #: babybuddy/templates/babybuddy/user_password_form.html:7 #: babybuddy/templates/babybuddy/user_settings_form.html:7 core/models.py:556 @@ -450,23 +262,23 @@ msgstr "Ihokontakti" msgid "User" msgstr "Käyttäjä" -#: babybuddy/templates/babybuddy/nav-dropdown.html:325 +#: babybuddy/templates/babybuddy/nav-dropdown.html:348 msgid "Password" msgstr "Salasana" -#: babybuddy/templates/babybuddy/nav-dropdown.html:329 +#: babybuddy/templates/babybuddy/nav-dropdown.html:352 msgid "Logout" msgstr "Kirjaudu ulos" -#: babybuddy/templates/babybuddy/nav-dropdown.html:332 +#: babybuddy/templates/babybuddy/nav-dropdown.html:355 msgid "Site" msgstr "Sivusto" -#: babybuddy/templates/babybuddy/nav-dropdown.html:333 +#: babybuddy/templates/babybuddy/nav-dropdown.html:356 msgid "API Browser" msgstr "API-selain" -#: babybuddy/templates/babybuddy/nav-dropdown.html:335 +#: babybuddy/templates/babybuddy/nav-dropdown.html:358 #: babybuddy/templates/babybuddy/user_confirm_delete.html:7 #: babybuddy/templates/babybuddy/user_form.html:13 #: babybuddy/templates/babybuddy/user_list.html:4 @@ -474,15 +286,19 @@ msgstr "API-selain" msgid "Users" msgstr "Käyttäjät" -#: babybuddy/templates/babybuddy/nav-dropdown.html:338 +#: babybuddy/templates/babybuddy/nav-dropdown.html:250 +msgid "Backend Admin" +msgstr "Backend Admin" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:361 msgid "Support" msgstr "Tuki" -#: babybuddy/templates/babybuddy/nav-dropdown.html:340 +#: babybuddy/templates/babybuddy/nav-dropdown.html:363 msgid "Source Code" msgstr "Lähdekoodi" -#: babybuddy/templates/babybuddy/nav-dropdown.html:342 +#: babybuddy/templates/babybuddy/nav-dropdown.html:365 msgid "Chat / Support" msgstr "Chat / tuki" @@ -493,7 +309,6 @@ msgstr "Chat / tuki" #: core/templates/timeline/_timeline.html:73 #: dashboard/templates/cards/feeding_day.html:43 #: dashboard/templates/cards/feeding_last_method.html:34 -#: dashboard/templates/cards/sleep_recent.html:43 #: dashboard/templates/cards/statistics.html:34 msgid "Previous" msgstr "Edellinen" @@ -505,7 +320,6 @@ msgstr "Edellinen" #: core/templates/timeline/_timeline.html:80 #: dashboard/templates/cards/feeding_day.html:47 #: dashboard/templates/cards/feeding_last_method.html:38 -#: dashboard/templates/cards/sleep_recent.html:47 #: dashboard/templates/cards/statistics.html:38 msgid "Next" msgstr "Seuraava" @@ -561,13 +375,8 @@ msgstr "Poista" #: core/templates/core/timer_confirm_delete.html:17 #: core/templates/core/tummytime_confirm_delete.html:14 #: core/templates/core/weight_confirm_delete.html:14 -#, python-format -msgid "" -"

Are you sure you want to delete %(object)s?

" -msgstr "" -"

Haluatko varmasti poistaa %(object)s?" +msgid "

Are you sure you want to delete %(object)s?

" +msgstr "

Haluatko varmasti poistaa %(object)s?

" #: babybuddy/templates/babybuddy/user_confirm_delete.html:19 #: core/templates/core/bmi_confirm_delete.html:18 @@ -623,7 +432,6 @@ msgstr "Päivitä" #: core/templates/core/timer_form.html:18 #: core/templates/core/tummytime_form.html:23 #: core/templates/core/weight_form.html:23 -#, python-format msgid "

Update %(object)s

" msgstr "

Päivitä %(object)sError: Some fields have errors. See below for details." +msgstr "Virhe: Joissakin kentissä on virheitä. Tarkista ne alta." + #: babybuddy/templates/babybuddy/user_settings_form.html:33 msgid "User Profile" msgstr "Profiili" @@ -717,12 +530,9 @@ msgid "Welcome to Baby Buddy!" msgstr "Tervetuloa Baby Buddyyn!" #: babybuddy/templates/babybuddy/welcome.html:14 -msgid "" -"Learn about and predict baby's needs without (as much) guess work " -"by using Baby Buddy to track —" -msgstr "" -"Opi ennustamaan lapsen tarpeita ilman (niin suurta) arvailua " -"käyttämällä BabyBuddy-sovellusta —" +msgid "Learn about and predict baby's needs without\n" +" (as much) guess work by using Baby Buddy to track —" +msgstr "Opi ennakoimaan lapsesi tarpeita ilman (niin suurta) arvailua käyttämällä BabyBuddy-sovellusta —" #: babybuddy/templates/babybuddy/welcome.html:26 core/models.py:249 #: core/templates/core/diaperchange_confirm_delete.html:7 @@ -734,20 +544,14 @@ msgstr "" msgid "Diaper Changes" msgstr "Vaipanvaihdot" -#: babybuddy/templates/babybuddy/welcome.html:56 -msgid "" -"As the amount of entries grows, Baby Buddy will help parents and caregivers " -"to identify small patterns in baby's habits using the dashboard and graphs. " -"Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and " -"dads with 2AM feedings and changings. To get started, just click the button " -"below to add your first (or second, third, etc.) child!" -msgstr "" -"Sitä mukaan, kun datamäärä kasvaa, BabyBuddy tulee auttamaan vanhempia ja " -"huoltajia huomaamaan mallit vauvan tavoista käyttämällä työpöytää ja " -"kuvaajia. BabyBuddy on mobiiliystävällinen ja käyttää tummaa teemaa " -"auttaakseen väsyneitä vanhempia aamuyön vaipanvaihdoissa ja syötöissä. " -"Aloittaaksesi paina alla olevaa painiketta ja lisää ensimmäinen (tai toinen, " -"kolmas, jne.) lapsi!" +#: babybuddy/templates/babybuddy/welcome.html:54 +msgid "As the amount of entries grows, Baby Buddy will help\n" +" parents and caregivers to identify small patterns in baby's habits\n" +" using the dashboard and graphs. Baby Buddy is mobile-friendly and\n" +" uses a dark theme to help weary moms and dads with 2AM feedings and\n" +" changings. To get started, just click the button below to add your\n" +" first (or second, third, etc.) child!" +msgstr "Sitä mukaan, kun datamäärä kasvaa, BabyBuddy tulee auttamaan vanhempia ja huoltajia huomaamaan mallit vauvan tavoista käyttämällä työpöytää ja kuvaajia. BabyBuddy on mobiiliystävällinen ja käyttää tummaa teemaa auttaakseen väsyneitä vanhempia aamuyön vaipanvaihdoissa ja syötöissä. Aloittaaksesi paina alla olevaa painiketta ja lisää ensimmäinen (tai toinen, kolmas, jne.) lapsi!" #: babybuddy/templates/babybuddy/welcome.html:68 #: core/templates/core/child_form.html:8 core/templates/core/child_form.html:18 @@ -755,48 +559,6 @@ msgstr "" msgid "Add a Child" msgstr "Lisää lapsi" -#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 -msgid "Bad Request" -msgstr "" - -#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 -msgid "Permission Denied" -msgstr "Pääsy kielletty" - -#: babybuddy/templates/error/403.html:9 -msgid "" -"You do not have permission to access this resource. Contact a site " -"administrator for assistance." -msgstr "Sinulla ei ole oikeutta tähän resurssiin." - -#: babybuddy/templates/error/403_csrf_bad_origin.html:14 -msgid "How to Fix" -msgstr "" - -#: babybuddy/templates/error/403_csrf_bad_origin.html:15 -#, python-format -msgid "" -"Add %(origin)s to the CSRF_TRUSTED_ORIGINS " -"environment variable. If multiple origins are required separate with commas." -msgstr "" - -#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 -msgid "Page Not Found" -msgstr "" - -#: babybuddy/templates/error/404.html:9 -#, python-format -msgid "The path %(request_path)s does not exist." -msgstr "" - -#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 -msgid "Server Error" -msgstr "" - -#: babybuddy/templates/error/base.html:14 -msgid "Return to Baby Buddy" -msgstr "" - #: babybuddy/templates/registration/login.html:32 msgid "Login" msgstr "Kirjaudu" @@ -821,12 +583,10 @@ msgstr "Kirjaudu" msgid "Password Reset" msgstr "Salasanan nollaus" -#: babybuddy/templates/registration/password_reset_confirm.html:13 -msgid "" -"Oh snap! The two passwords did not match. Please try again." -msgstr "" -"Oh snap! Salasanat eivät täsmänneet. Ole hyvä ja yritä " -"uudelleen." +#: babybuddy/templates/registration/password_reset_confirm.html:12 +msgid "

Oh snap! The\n" +" two passwords did not match. Please try again.

" +msgstr "

Oh snap! Salasanat eivät täsmänneet. Yritä uudelleen.

" #: babybuddy/templates/registration/password_reset_confirm.html:22 msgid "Enter your new password in each field below." @@ -841,71 +601,37 @@ msgstr "Nollaa salasana" msgid "Reset Email Sent" msgstr "Salasanan vaihtosähköposti lähetetty" -#: babybuddy/templates/registration/password_reset_done.html:9 -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Olemme lähettäneet sähköpostiisi ohjeet salasanan palautukselle, jos " -"sähköpostiosoitteella oleva tili on olemassa." - -#: babybuddy/templates/registration/password_reset_done.html:15 -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "Jos viestiä ei tule, tarkista roskapostikansiosi." - -#: babybuddy/templates/registration/password_reset_email.html:2 -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:4 -msgid "Please go to the following page and choose a new password:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:8 -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:10 -msgid "Thanks for using Baby Buddy!" -msgstr "" +#: babybuddy/templates/registration/password_reset_done.html:8 +msgid "

We've emailed you instructions for setting your\n" +" password, if an account exists with the email you entered. You\n" +" should receive them shortly.

\n" +"

If you don't receive an email, please make sure you've\n" +" entered the address you registered with, and check your spam\n" +" folder.

" +msgstr "

\n" +"Lähetimme sähköpostitse ohjeita salasanan palauttamiseksi, jos syöttämäsi sähköpostiosoite löytyy järjestelmästä. Sähköpostin pitäisi saapua piakkoin.\n" +"

\n" +"

Mikäli sähköpostia ei saavu, ole hyvä ja tarkista roskapostikansiosi.

" #: babybuddy/templates/registration/password_reset_form.html:4 msgid "Forgot Password" msgstr "Unohditko salasanan?" -#: babybuddy/templates/registration/password_reset_form.html:9 -msgid "" -"Enter your account email address in the form below. If the address is valid, " -"you will receive instructions for resetting your password." -msgstr "" -"Syötä sähköpostiosoitteesi alla olevaan kenttään. Sähköpostiin lähetetään " -"ohjeet salasanan palautukselle." - -#: babybuddy/views.py:43 -msgid "Forbidden" -msgstr "" - -#: babybuddy/views.py:44 -msgid "CSRF verification failed. Request aborted." -msgstr "" +#: babybuddy/templates/registration/password_reset_form.html:8 +msgid "

Enter your account email address in the\n" +" form below. If the address is valid, you will receive instructions for\n" +" resetting your password.

" +msgstr "

Syötä sähköpostiosoite alla olevaan kenttään. Saat sähköpostiisi ohjeita salasanan palauttamiseksi.

" #: babybuddy/views.py:102 -#, python-format msgid "User %(username)s added!" msgstr "Käyttäjä %(username)s lisätty!" #: babybuddy/views.py:113 -#, python-format msgid "User %(username)s updated." msgstr "Käyttäjä %(username)s päivitetty." #: babybuddy/views.py:125 -#, python-brace-format msgid "User {user} deleted." msgstr "Käyttäjä {user} poistettu." @@ -921,20 +647,10 @@ msgstr "Käyttäjän API-avain luotu uudelleen." msgid "Settings saved!" msgstr "Asetukset tallennettu!" -#: core/filters.py:11 core/models.py:96 core/models.py:115 -msgid "Tag" -msgstr "" - #: core/forms.py:120 msgid "Name does not match child name." msgstr "Nimi ei täsmää lapseen." -#: core/forms.py:136 -msgid "" -"Click on the tags to add (+) or remove (-) tags or use the text editor to " -"create new tags." -msgstr "" - #: core/models.py:28 msgid "Date can not be in the future." msgstr "Päivämäärä ei voi olla tulevaisuudessa." @@ -955,43 +671,6 @@ msgstr "Toinen merkintä on päällekkäin annetun aikavälin kanssa." msgid "Date/time can not be in the future." msgstr "Aika ei voi olla tulevaisuudessa." -#: core/models.py:84 core/models.py:237 -#: core/templates/core/diaperchange_list.html:30 -msgid "Color" -msgstr "Väri" - -#: core/models.py:90 -msgid "Last used" -msgstr "" - -#: core/models.py:97 core/templates/core/bmi_list.html:30 -#: core/templates/core/diaperchange_list.html:32 -#: core/templates/core/feeding_list.html:35 -#: core/templates/core/head_circumference_list.html:30 -#: core/templates/core/height_list.html:30 -#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 -#: core/templates/core/temperature_list.html:30 -#: core/templates/core/tummytime_list.html:31 -#: core/templates/core/weight_list.html:30 -msgid "Tags" -msgstr "" - -#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 -#: core/templates/core/bmi_list.html:25 -#: core/templates/core/feeding_list.html:25 -#: core/templates/core/head_circumference_list.html:25 -#: core/templates/core/height_list.html:25 -#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 -#: reports/graphs/diaperchange_amounts.py:37 -#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 -#: reports/graphs/feeding_duration.py:56 -#: reports/graphs/head_circumference_change.py:28 -#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:60 -#: reports/graphs/sleep_pattern.py:153 reports/graphs/sleep_totals.py:59 -#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 -msgid "Date" -msgstr "Päivämäärä" - #: core/models.py:163 msgid "First name" msgstr "Etunimi" @@ -1046,11 +725,14 @@ msgstr "Vihreä" msgid "Yellow" msgstr "Keltainen" -#: core/models.py:239 core/models.py:303 core/models.py:428 -#: core/templates/core/diaperchange_list.html:31 -#: core/templates/core/pumping_list.html:29 -msgid "Amount" -msgstr "Määrä" +#: core/models.py:84 core/models.py:237 +#: core/templates/core/diaperchange_list.html:30 +msgid "Color" +msgstr "Väri" + +#: core/models.py:180 +msgid "Wet and/or solid is required." +msgstr "Märkä/kiinteä on valittava." #: core/models.py:276 core/models.py:453 core/models.py:543 core/models.py:632 msgid "Start time" @@ -1076,14 +758,6 @@ msgstr "Rintamaito" msgid "Formula" msgstr "Korvike" -#: core/models.py:285 -msgid "Fortified breast milk" -msgstr "Rikastettu rintamaito" - -#: core/models.py:286 -msgid "Solid food" -msgstr "" - #: core/models.py:289 core/templates/core/feeding_list.html:30 msgid "Type" msgstr "Tyyppi" @@ -1100,25 +774,19 @@ msgstr "Vasen" msgid "Right breast" msgstr "Oikea" -#: core/models.py:296 -msgid "Both breasts" -msgstr "Molemmat tissit" - -#: core/models.py:297 -msgid "Parent fed" -msgstr "" - -#: core/models.py:298 -msgid "Self fed" -msgstr "" - #: core/models.py:301 core/templates/core/feeding_list.html:29 msgid "Method" msgstr "Tapa" -#: core/models.py:452 -msgid "Napping" -msgstr "" +#: core/models.py:239 core/models.py:303 core/models.py:428 +#: core/templates/core/diaperchange_list.html:31 +#: core/templates/core/pumping_list.html:29 +msgid "Amount" +msgstr "Määrä" + +#: core/models.py:243 +msgid "Only \"Bottle\" method is allowed with \"Formula\" type." +msgstr "Vain \"pullo\"-metodi on sallittu käytettäessä äidinmaidonkorviketta." #: core/models.py:540 core/templates/core/timer_list.html:25 msgid "Name" @@ -1138,7 +806,6 @@ msgid "Timers" msgstr "Ajastimet" #: core/models.py:568 -#, python-brace-format msgid "Timer #{id}" msgstr "Ajastin {id}" @@ -1146,24 +813,21 @@ msgstr "Ajastin {id}" msgid "Milestone" msgstr "Virstanpylväs" -#: core/templates/core/bmi_confirm_delete.html:4 -msgid "Delete a BMI Entry" -msgstr "" - -#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 -#: core/templates/core/bmi_form.html:27 -msgid "Add a BMI Entry" -msgstr "" - -#: core/templates/core/bmi_list.html:15 -msgid "Add BMI" -msgstr "" - -#: core/templates/core/bmi_list.html:70 -#, fuzzy -#| msgid "No sleep entries found." -msgid "No BMI entries found." -msgstr "Unia ei löytynyt." +#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 +#: core/templates/core/bmi_list.html:25 +#: core/templates/core/feeding_list.html:25 +#: core/templates/core/head_circumference_list.html:25 +#: core/templates/core/height_list.html:25 +#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 +#: reports/graphs/diaperchange_amounts.py:37 +#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 +#: reports/graphs/feeding_duration.py:56 +#: reports/graphs/head_circumference_change.py:28 +#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:58 +#: reports/graphs/sleep_pattern.py:151 reports/graphs/sleep_totals.py:59 +#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 +msgid "Date" +msgstr "Päivämäärä" #: core/templates/core/child_confirm_delete.html:4 msgid "Delete a Child" @@ -1183,15 +847,15 @@ msgstr "Syntyi" msgid "Age" msgstr "Ikä" -#: core/templates/core/child_list.html:15 -msgid "Add Child" -msgstr "Lisää lapsi" +#: core/templates/timeline/_timeline.html:38 +msgid "%(since)s ago (%(time)s)" +msgstr "%(since)s sitten (%(time)s)" #: core/templates/core/child_list.html:27 msgid "Birth Date" msgstr "Syntymäpäivä" -#: core/templates/core/child_list.html:62 +#: core/templates/core/child_list.html:67 msgid "No children found." msgstr "Lapsia ei löytynyt." @@ -1216,18 +880,14 @@ msgstr "Lisää vaipanvaihto" msgid "Add" msgstr "Lisää" -#: core/templates/core/diaperchange_list.html:15 -msgid "Add Diaper Change" -msgstr "Lisää vaipanvaihto" - -#: core/templates/core/diaperchange_list.html:29 -msgid "Contents" -msgstr "" - #: core/templates/core/diaperchange_list.html:77 msgid "No diaper changes found." msgstr "Vaipanvaihtoja ei löytynyt." +#: core/templates/core/diaperchange_list.html:63 +msgid "Add a Change" +msgstr "Lisää vaipanvaihto" + #: core/templates/core/feeding_confirm_delete.html:4 msgid "Delete a Feeding" msgstr "Poista syöttö" @@ -1241,10 +901,6 @@ msgstr "Päivitä syöttö" msgid "Add a Feeding" msgstr "Lisää syöttö" -#: core/templates/core/feeding_list.html:15 -msgid "Add Feeding" -msgstr "Lisää syöttö" - #: core/templates/core/feeding_list.html:33 msgid "Amt." msgstr "määrä" @@ -1253,6 +909,937 @@ msgstr "määrä" msgid "No feedings found." msgstr "Syöttöjä ei löytynyt." +#: core/templates/core/note_confirm_delete.html:4 +msgid "Delete a Note" +msgstr "Poista muistiinpano" + +#: core/templates/core/note_form.html:6 +msgid "Update a Note" +msgstr "Päivitä muistiinpano" + +#: core/templates/core/note_form.html:8 core/templates/core/note_form.html:27 +msgid "Add a Note" +msgstr "Lisää muistiinpano" + +#: core/templates/core/note_list.html:64 +msgid "No notes found." +msgstr "Muistiinpanoja ei löytynyt." + +#: core/templates/core/sleep_confirm_delete.html:4 +msgid "Delete a Sleep Entry" +msgstr "Poista uni" + +#: core/templates/core/sleep_form.html:6 +msgid "Update a Sleep Entry" +msgstr "Päivitä uni" + +#: core/templates/core/sleep_form.html:8 core/templates/core/sleep_form.html:27 +msgid "Add a Sleep Entry" +msgstr "Lisää uni" + +#: core/templates/core/sleep_list.html:25 +#: core/templates/core/timer_form.html:12 +#: core/templates/core/timer_list.html:24 +#: core/templates/core/tummytime_list.html:24 +msgid "Start" +msgstr "Aloitus" + +#: core/templates/core/sleep_list.html:26 +#: core/templates/core/timer_list.html:30 +#: core/templates/core/tummytime_list.html:25 +msgid "End" +msgstr "Lopetus" + +#: core/templates/core/sleep_list.html:31 +msgid "Nap" +msgstr "Päiväuni" + +#: core/templates/core/sleep_list.html:74 +msgid "No sleep entries found." +msgstr "Unia ei löytynyt." + +#: core/templates/core/timer_confirm_delete.html:5 +msgid "Delete %(object)s" +msgstr "Poista %(object)s" + +#: core/templates/core/timer_detail.html:28 +msgid "Started" +msgstr "Alkoi" + +#: core/templates/core/timer_detail.html:30 +msgid "Stopped" +msgstr "Pysäytetty" + +#: core/templates/core/timer_detail.html:26 +msgid "%(timer)s created by %(object.user)s" +msgstr "%(timer)s loi %(object.user)s" + +#: core/templates/core/timer_detail.html:63 +msgid "Timer actions" +msgstr "Ajastintoiminnot" + +#: core/templates/core/timer_form.html:22 +#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:23 +msgid "Start Timer" +msgstr "Aloita ajastin" + +#: core/templates/core/timer_list.html:58 +msgid "No timer entries found." +msgstr "Akastimia ei löytynyt." + +#: babybuddy/templates/babybuddy/nav-dropdown.html:32 +#: core/templates/core/timer_nav.html:18 +msgid "Quick Start Timer" +msgstr "Pika-ajastin" + +#: core/templates/core/timer_nav.html:28 +msgid "View Timers" +msgstr "Näytä ajastimet" + +#: core/templates/core/timer_nav.html:32 +#: dashboard/templates/cards/timer_list.html:6 +msgid "Active Timers" +msgstr "Aktiiviset ajastimet" + +#: core/templates/core/timer_nav.html:38 +#: dashboard/templates/cards/diaperchange_last.html:17 +#: dashboard/templates/cards/diaperchange_types.html:12 +#: dashboard/templates/cards/feeding_day.html:20 +#: dashboard/templates/cards/feeding_day.html:52 +#: dashboard/templates/cards/feeding_last.html:17 +#: dashboard/templates/cards/feeding_last_method.html:43 +#: dashboard/templates/cards/sleep_day.html:14 +#: dashboard/templates/cards/sleep_last.html:17 +#: dashboard/templates/cards/sleep_naps_day.html:18 +#: dashboard/templates/cards/tummytime_day.html:14 +msgid "None" +msgstr "Ei mitään" + +#: core/templates/core/tummytime_confirm_delete.html:4 +msgid "Delete a Tummy Time Entry" +msgstr "Poista ihokontakti" + +#: core/templates/core/tummytime_form.html:6 +msgid "Update a Tummy Time Entry" +msgstr "Päivitä ihokontakti" + +#: core/templates/core/tummytime_form.html:8 +#: core/templates/core/tummytime_form.html:27 +msgid "Add a Tummy Time Entry" +msgstr "Lisää ihokontakti" + +#: core/templates/core/tummytime_list.html:67 +msgid "No tummy time entries found." +msgstr "Ei ihokontakteja." + +#: core/templates/core/weight_confirm_delete.html:4 +msgid "Delete a Weight Entry" +msgstr "Poista paino" + +#: core/templates/core/weight_form.html:8 +#: core/templates/core/weight_form.html:17 +#: core/templates/core/weight_form.html:27 +msgid "Add a Weight Entry" +msgstr "Lisää paino" + +#: core/templates/core/weight_list.html:70 +msgid "No weight entries found." +msgstr "Painomerkintöjä ei löytynyt." + +#: core/timeline.py:164 +msgid "%(child)s had a diaper change." +msgstr "%(child)s sai\n" +" tuoreen vaipan." + +#: core/timeline.py:145 +msgid "%(child)s started feeding." +msgstr "%(child)s aloitti syömisen." + +#: core/timeline.py:158 +msgid "%(child)s finished feeding." +msgstr "%(child)s lopetti syömisen." + +#: core/timeline.py:91 +msgid "%(child)s fell asleep." +msgstr "%(child)s nukahti." + +#: core/timeline.py:103 +msgid "%(child)s woke up." +msgstr "%(child)s heräsi." + +#: core/timeline.py:53 +msgid "%(child)s started tummy time!" +msgstr "%(child)s aloitti ihokontaktin." + +#: core/timeline.py:65 +msgid "%(child)s finished tummy time." +msgstr "%(child)s lopetti ihokontaktin." + +#: core/views.py:33 +msgid "%(model)s entry for %(child)s added!" +msgstr "%(model)s -merkintä lapselle %(child)s lisätty!" + +#: core/views.py:35 core/views.py:308 +msgid "%(model)s entry added!" +msgstr "%(model)s -merkintä lisätty!" + +#: core/views.py:61 core/views.py:316 +msgid "%(model)s entry for %(child)s updated." +msgstr "%(model)s -merkintä lapselle %(child)s päivitetty." + +#: core/views.py:63 +msgid "%(model)s entry updated." +msgstr "%(model)s -merkintä päivitetty." + +#: core/views.py:115 +msgid "%(first_name)s %(last_name)s added!" +msgstr "%(first_name)s %(last_name)s lisätty!" + +#: core/views.py:478 +msgid "%(timer)s stopped." +msgstr "%(timer)s pysäytetty." + +#: dashboard/templates/cards/diaperchange_last.html:6 +msgid "Last Diaper Change" +msgstr "Viimeisin vaipanvaihto" + +#: dashboard/templates/cards/diaperchange_last.html:8 +#: dashboard/templates/cards/feeding_last.html:8 +#: dashboard/templates/cards/sleep_last.html:8 +#: dashboard/templates/cards/tummytime_last.html:8 +msgid "%(time)s ago" +msgstr "%(time)s sitten" + +#: dashboard/templates/cards/tummytime_last.html:18 +msgid "Never" +msgstr "Ei koskaan" + +#: dashboard/templates/cards/diaperchange_types.html:14 +msgid "Past Week" +msgstr "Viime viikko" + +#: dashboard/templates/cards/diaperchange_types.html:27 +msgid "wet" +msgstr "märkä" + +#: dashboard/templates/cards/diaperchange_types.html:35 +msgid "solid" +msgstr "kiinteä" + +#: dashboard/templates/cards/diaperchange_types.html:49 +msgid "today" +msgstr "tänään" + +#: dashboard/templates/cards/diaperchange_types.html:51 +msgid "yesterday" +msgstr "eilen" + +#: dashboard/templates/cards/diaperchange_types.html:53 +msgid "%(key)s days ago" +msgstr "%(key)s päivää sitten" + +#: dashboard/templates/cards/feeding_last.html:6 +msgid "Last Feeding" +msgstr "Edellinen syöttö" + +#: dashboard/templates/cards/feeding_last_method.html:6 +msgid "Last Feeding Method" +msgstr "Viimeisin syöttötapa" + +#: dashboard/templates/cards/sleep_day.html:6 +msgid "Today's Sleep" +msgstr "Uni tänään" + +#: dashboard/templates/cards/sleep_day.html:11 +#: dashboard/templates/cards/sleep_naps_day.html:13 +#: dashboard/templates/cards/tummytime_day.html:11 +msgid "None yet today" +msgstr "Ei mitään tänään" + +#: dashboard/templates/cards/sleep_day.html:20 +msgid "%(count)s sleep entries" +msgstr "%(count)s unimerkintä" + +#: dashboard/templates/cards/sleep_last.html:4 +msgid "Last Slept" +msgstr "Edellinen uni" + +#: dashboard/templates/cards/sleep_naps_day.html:6 +msgid "Today's Naps" +msgstr "Päiväunet tänään" + +#: dashboard/templates/cards/sleep_naps_day.html:12 +msgid "%(count)s nap%(plural)s" +msgstr "%(count)s päiväunta" + +#: dashboard/templates/cards/statistics.html:7 +msgid "Statistics" +msgstr "Tilastot" + +#: dashboard/templates/cards/statistics.html:25 +msgid "Not enough data" +msgstr "Ei riittävästi dataa" + +#: dashboard/templates/cards/timer_list.html:12 +msgid "%(count)s active timer%(plural)s" +msgstr "%(count)s aktiivista ajastinta" + +#: dashboard/templates/cards/timer_list.html:19 +msgid "Started by %(instance.user)s at %(start)s" +msgstr "%(instance.user)s aloitti %(start)s" + +#: dashboard/templates/cards/tummytime_day.html:6 +msgid "Today's Tummy Time" +msgstr "Ihokontakti tänään" + +#: dashboard/templates/cards/tummytime_day.html:22 +msgid "%(duration)s at %(end)s" +msgstr "%(duration)s %(end)s" + +#: dashboard/templates/cards/tummytime_last.html:6 +msgid "Last Tummy Time" +msgstr "Viimeisin ihokontakti" + +#: dashboard/templates/dashboard/child_button_group.html:3 +msgid "Child actions" +msgstr "Lapsen toiminnot" + +#: reports/templates/reports/diaperchange_types.html:4 +#: reports/templates/reports/diaperchange_types.html:8 +#: reports/templates/reports/report_list.html:12 +msgid "Diaper Change Types" +msgstr "Vaipanvaihtotyypit" + +#: reports/templates/reports/diaperchange_lifetimes.html:4 +#: reports/templates/reports/diaperchange_lifetimes.html:8 +#: reports/templates/reports/report_list.html:13 +msgid "Diaper Lifetimes" +msgstr "Vaippojen eliniät" + +#: reports/templates/reports/report_list.html:15 +msgid "Feeding Durations (Average)" +msgstr "Syötön kesto keskimäärin" + +#: reports/templates/reports/report_list.html:19 +#: reports/templates/reports/sleep_pattern.html:4 +#: reports/templates/reports/sleep_pattern.html:8 +msgid "Sleep Pattern" +msgstr "Unikuvio" + +#: reports/templates/reports/report_list.html:20 +#: reports/templates/reports/sleep_totals.html:4 +#: reports/templates/reports/sleep_totals.html:8 +msgid "Sleep Totals" +msgstr "Uni yhteensä" + +#: dashboard/templatetags/cards.py:420 +msgid "Diaper change frequency" +msgstr "Vaipanvaihtotaajuus" + +#: dashboard/templatetags/cards.py:466 +msgid "Feeding frequency" +msgstr "Syöttötaajuus" + +#: dashboard/templatetags/cards.py:328 +msgid "Average nap duration" +msgstr "Päiväunen kesto keskimäärin" + +#: dashboard/templatetags/cards.py:335 +msgid "Average naps per day" +msgstr "Päiväunia päivässä" + +#: dashboard/templatetags/cards.py:345 +msgid "Average sleep duration" +msgstr "Unen kesto keskimäärin" + +#: dashboard/templatetags/cards.py:352 +msgid "Average awake duration" +msgstr "Hereilläoloaika keskimäärin" + +#: dashboard/templatetags/cards.py:362 +msgid "Weight change per week" +msgstr "Painonmuutos viikossa" + +#: reports/graphs/diaperchange_lifetimes.py:35 +msgid "Diaper Lifetimes" +msgstr "Vaippojen eliniät" + +#: reports/graphs/diaperchange_lifetimes.py:36 +msgid "Time between changes (hours)" +msgstr "Vaihtoväli" + +#: reports/graphs/diaperchange_types.py:41 reports/graphs/feeding_amounts.py:58 +msgid "Total" +msgstr "Yhteensä" + +#: reports/graphs/diaperchange_types.py:48 +msgid "Diaper Change Types" +msgstr "Vaipanvaihtotyypit" + +#: reports/graphs/diaperchange_types.py:51 +msgid "Number of changes" +msgstr "Vaihtojen määrä" + +#: reports/graphs/feeding_duration.py:38 +msgid "Average duration" +msgstr "Kesto keskimäärin" + +#: reports/graphs/feeding_duration.py:46 +msgid "Total feedings" +msgstr "Syötöt yhteenså" + +#: reports/graphs/feeding_duration.py:55 +msgid "Average Feeding Durations" +msgstr "Imetyksen kesto keskimäärin" + +#: reports/graphs/feeding_duration.py:58 +msgid "Average duration (minutes)" +msgstr "Kesto keskimäärin minuuteissa" + +#: reports/graphs/feeding_duration.py:60 +msgid "Number of feedings" +msgstr "Syöttöjen määrä" + +#: reports/graphs/sleep_pattern.py:148 +msgid "Sleep Pattern" +msgstr "Unimallit" + +#: reports/graphs/sleep_pattern.py:165 +msgid "Time of day" +msgstr "Ajankohta" + +#: reports/graphs/sleep_totals.py:48 +msgid "Total sleep" +msgstr "Uni yhteensä" + +#: reports/graphs/sleep_totals.py:58 +msgid "Sleep Totals" +msgstr "Unet yhteensä" + +#: reports/graphs/sleep_totals.py:61 +msgid "Hours of sleep" +msgstr "Unitunnit" + +#: reports/graphs/weight_change.py:27 +msgid "Weight" +msgstr "Paino" + +#: reports/templates/reports/feeding_duration.html:4 +#: reports/templates/reports/feeding_duration.html:8 +msgid "Average Feeding Durations" +msgstr "Syöttöjen kesto keskimäärin" + +#: dashboard/templates/dashboard/child_button_group.html:12 +#: reports/templates/reports/base.html:9 +#: reports/templates/reports/report_list.html:4 +msgid "Reports" +msgstr "Raportit" + +#: reports/templates/reports/report_base.html:19 +msgid "There is no enough data to generate this report." +msgstr "Ei riittävästi dataa tämän raportin luomiseen." + +#: core/models.py:296 +msgid "Both breasts" +msgstr "Molemmat tissit" + +#: babybuddy/settings/base.py:173 +msgid "German" +msgstr "saksa" + +#: babybuddy/settings/base.py:177 +msgid "Spanish" +msgstr "espanja" + +#: babybuddy/settings/base.py:178 +msgid "Swedish" +msgstr "ruotsi" + +#: babybuddy/settings/base.py:179 +msgid "Turkish" +msgstr "turkki" + +#: babybuddy/templates/error/403.html:9 +msgid "You do not have permission to access this resource. Contact a site administrator for assistance." +msgstr "Sinulla ei ole oikeutta tähän resurssiin." + +#: babybuddy/templates/babybuddy/nav-dropdown.html:75 +#: babybuddy/templates/babybuddy/nav-dropdown.html:179 core/models.py:506 +#: core/models.py:519 core/models.py:520 core/models.py:523 +#: core/templates/core/temperature_confirm_delete.html:7 +#: core/templates/core/temperature_form.html:13 +#: core/templates/core/temperature_list.html:4 +#: core/templates/core/temperature_list.html:7 +#: core/templates/core/temperature_list.html:12 +#: core/templates/core/temperature_list.html:29 +msgid "Temperature" +msgstr "Lämpötila" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:185 +msgid "Temperature reading" +msgstr "Lämpötilalukema" + +#: babybuddy/templates/babybuddy/welcome.html:14 +msgid "Learn about and predict baby's needs without (as much) guess work by using Baby Buddy to track —" +msgstr "Opi ennustamaan lapsen tarpeita ilman (niin suurta) arvailua käyttämällä BabyBuddy-sovellusta —" + +#: babybuddy/templates/babybuddy/welcome.html:56 +msgid "As the amount of entries grows, Baby Buddy will help parents and caregivers to identify small patterns in baby's habits using the dashboard and graphs. Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and dads with 2AM feedings and changings. To get started, just click the button below to add your first (or second, third, etc.) child!" +msgstr "Sitä mukaan, kun datamäärä kasvaa, BabyBuddy tulee auttamaan vanhempia ja huoltajia huomaamaan mallit vauvan tavoista käyttämällä työpöytää ja kuvaajia. BabyBuddy on mobiiliystävällinen ja käyttää tummaa teemaa auttaakseen väsyneitä vanhempia aamuyön vaipanvaihdoissa ja syötöissä. Aloittaaksesi paina alla olevaa painiketta ja lisää ensimmäinen (tai toinen, kolmas, jne.) lapsi!" + +#: babybuddy/templates/registration/password_reset_confirm.html:13 +msgid "Oh snap! The two passwords did not match. Please try again." +msgstr "Oh snap! Salasanat eivät täsmänneet. Ole hyvä ja yritä uudelleen." + +#: babybuddy/templates/registration/password_reset_done.html:9 +msgid "We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly." +msgstr "Olemme lähettäneet sähköpostiisi ohjeet salasanan palautukselle, jos sähköpostiosoitteella oleva tili on olemassa." + +#: babybuddy/templates/registration/password_reset_done.html:15 +msgid "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder." +msgstr "Jos viestiä ei tule, tarkista roskapostikansiosi." + +#: babybuddy/templates/registration/password_reset_form.html:9 +msgid "Enter your account email address in the form below. If the address is valid, you will receive instructions for resetting your password." +msgstr "Syötä sähköpostiosoitteesi alla olevaan kenttään. Sähköpostiin lähetetään ohjeet salasanan palautukselle." + +#: core/models.py:285 +msgid "Fortified breast milk" +msgstr "Rikastettu rintamaito" + +#: core/templates/core/temperature_confirm_delete.html:4 +msgid "Delete a Temperature Reading" +msgstr "Poista lämpötila" + +#: core/templates/core/temperature_form.html:8 +#: core/templates/core/temperature_form.html:17 +msgid "Add a Temperature Reading" +msgstr "Lisää lämpötila" + +#: core/templates/core/temperature_form.html:27 +msgid "Add a Temperature Entry" +msgstr "Lisää lämpötila" + +#: core/templates/core/temperature_list.html:70 +msgid "No temperature entries found." +msgstr "Lämpötiloja ei löytynyt." + +#: core/templates/core/timer_detail.html:34 +msgid "%(timer)s created by %(user)s" +msgstr "%(timer)s, jonka loi %(user)s" + +#: core/utils.py:40 +msgid "%(hours)s hour" +msgid_plural "%(hours)s hours" +msgstr[0] "%(hours)s tunti" +msgstr[1] "%(hours)s tuntia" + +#: core/utils.py:44 +msgid "%(minutes)s minute" +msgid_plural "%(minutes)s minutes" +msgstr[0] "%(minutes)s minuutti" +msgstr[1] "%(minutes)s minuuttia" + +#: core/utils.py:50 +msgid "%(seconds)s second" +msgid_plural "%(seconds)s seconds" +msgstr[0] "%(seconds)s sekunti" +msgstr[1] "%(seconds)s sekuntia" + +#: core/views.py:69 core/views.py:146 +msgid "%(model)s entry deleted." +msgstr "%(model)s -merkintä poistettu." + +#: core/views.py:366 +msgid "%(model)s reading added!" +msgstr "%(model)s -lukema lisätty!" + +#: core/views.py:374 +msgid "%(model)s reading for %(child)s updated." +msgstr "%(model)s -lukema lapselle %(child)s päivitetty." + +#: dashboard/templates/cards/timer_list.html:27 +msgid "Started by %(user)s at %(start)s" +msgstr "%(user)s aloitti %(start)s" + +#: reports/templates/reports/feeding_amounts.html:4 +#: reports/templates/reports/feeding_amounts.html:8 +#: reports/templates/reports/report_list.html:14 +msgid "Feeding Amounts" +msgstr "Syöttöjen määrä" + +#: reports/graphs/feeding_amounts.py:27 +msgid "Total feeding amount" +msgstr "Syöttöjen määrä yhteensä" + +#: reports/graphs/feeding_amounts.py:36 +msgid "Total Feeding Amounts" +msgstr "Syöttöjen määrä yhteensä" + +#: reports/graphs/feeding_amounts.py:72 +msgid "Feeding amount" +msgstr "Syötön määrä" + +#: reports/templates/reports/report_base.html:17 +msgid "There is not enough data to generate this report." +msgstr "Ei riittävästi dataa tämän raportin luomiseen." + +#: babybuddy/models.py:69 +msgid "Timezone" +msgstr "Aikavyöhyke" + +#: babybuddy/templates/admin/base_site.html:4 +#: babybuddy/templates/admin/base_site.html:7 +#: babybuddy/templates/babybuddy/nav-dropdown.html:359 +msgid "Database Admin" +msgstr "Tietokantahallinta" + +#: core/templates/core/child_list.html:15 +msgid "Add Child" +msgstr "Lisää lapsi" + +#: core/templates/core/diaperchange_list.html:15 +msgid "Add Diaper Change" +msgstr "Lisää vaipanvaihto" + +#: core/templates/core/feeding_list.html:15 +msgid "Add Feeding" +msgstr "Lisää syöttö" + +#: core/templates/core/note_list.html:15 +msgid "Add Note" +msgstr "Lisää muistiinpano" + +#: core/templates/core/sleep_list.html:15 +msgid "Add Sleep" +msgstr "Lisää uni" + +#: core/templates/core/temperature_list.html:15 +msgid "Add Temperature Reading" +msgstr "Lisää lämpötila" + +#: core/templates/core/timer_confirm_delete_inactive.html:5 +msgid "Delete All Inactive Timers" +msgstr "Poista kaikki inaktiiviset ajastimet" + +#: core/templates/core/timer_confirm_delete_inactive.html:10 +msgid "Delete Inactive" +msgstr "Poista inaktiivinen" + +#: core/templates/core/timer_confirm_delete_inactive.html:17 +msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" +msgstr "Haluatko varmasti poistaa %(number)s inaktiivista timer%(plural)s?" + +#: core/templates/core/timer_list.html:68 +msgid "Delete Inactive Timers" +msgstr "Poista inaktiiviset ajastimet" + +#: core/templates/core/tummytime_list.html:15 +msgid "Add Tummy Time" +msgstr "Lisää ihokontakti" + +#: core/templates/core/weight_list.html:15 +msgid "Add Weight" +msgstr "Lisää paino" + +#: core/views.py:501 +msgid "All inactive timers deleted." +msgstr "Kaikki inaktiiviset ajastimet poistettu." + +#: core/views.py:511 +msgid "No inactive timers exist." +msgstr "Ei inaktiivisia ajastimia." + +#: dashboard/templates/cards/feeding_last_method.html:19 +msgid "most recent" +msgstr "viimeisin" + +#: dashboard/templates/cards/feeding_last_method.html:21 +msgid "%(n)s feeding%(plural)s ago" +msgstr "%(n)s syöttöä%(plural)s sitten" + +#: dashboard/templates/cards/sleep_last.html:6 +msgid "Last Sleep" +msgstr "Edellinen uni" + +#: reports/templates/reports/report_list.html:11 +msgid "Diaper Change Amounts" +msgstr "Vaipanvaihtomäärät" + +#: reports/graphs/diaperchange_amounts.py:27 +msgid "Diaper change amount" +msgstr "Vaipanvaihtomäärä" + +#: reports/graphs/diaperchange_amounts.py:36 +msgid "Diaper Change Amounts" +msgstr "Vaipanvaihtomäärät" + +#: reports/graphs/diaperchange_amounts.py:39 +msgid "Change amount" +msgstr "Vaihtojen määrä" + +#: reports/templates/reports/diaperchange_amounts.html:4 +#: reports/templates/reports/diaperchange_amounts.html:8 +msgid "Diaper Amounts" +msgstr "Vaippojen määrä" + +#: babybuddy/models.py:21 +msgid "If supported by browser, the dashboard will only refresh when visible, and also when receiving focus." +msgstr "" + +#: babybuddy/models.py:40 +msgid "Hide Empty Dashboard Cards" +msgstr "" + +#: babybuddy/models.py:43 +msgid "Hide data older than" +msgstr "" + +#: babybuddy/models.py:45 +msgid "This setting controls which data will be shown in the dashboard." +msgstr "" + +#: babybuddy/models.py:51 +msgid "show all data" +msgstr "" + +#: babybuddy/models.py:52 +msgid "1 day" +msgstr "" + +#: babybuddy/models.py:53 +msgid "2 days" +msgstr "" + +#: babybuddy/models.py:54 +msgid "3 days" +msgstr "" + +#: babybuddy/models.py:55 +msgid "1 week" +msgstr "" + +#: babybuddy/models.py:56 +msgid "4 weeks" +msgstr "" + +#: babybuddy/settings/base.py:168 +msgid "Dutch" +msgstr "" + +#: babybuddy/settings/base.py:172 +msgid "Finnish" +msgstr "" + +#: babybuddy/settings/base.py:174 +msgid "Italian" +msgstr "" + +#: babybuddy/settings/base.py:175 +msgid "Polish" +msgstr "englanti" + +#: babybuddy/settings/base.py:176 +msgid "Portuguese" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:118 +#: core/templates/timeline/timeline.html:4 +#: core/templates/timeline/timeline.html:7 +#: dashboard/templates/dashboard/child_button_group.html:9 +msgid "Timeline" +msgstr "" + +#: core/models.py:286 +msgid "Solid food" +msgstr "" + +#: core/models.py:297 +msgid "Parent fed" +msgstr "" + +#: core/models.py:298 +msgid "Self fed" +msgstr "" + +#: core/templates/core/diaperchange_list.html:29 +msgid "Contents" +msgstr "" + +#: core/templates/core/timer_detail.html:77 +msgid "Restart timer" +msgstr "" + +#: core/templates/core/timer_detail.html:84 +msgid "Delete timer" +msgstr "" + +#: core/templatetags/datetime.py:60 +msgid "Today" +msgstr "tänään" + +#: core/templatetags/datetime.py:75 +msgid "{}, {}" +msgstr "" + +#: core/templatetags/duration.py:25 +msgid "0 days" +msgstr "" + +#: core/timeline.py:137 +msgid "Amount: %(amount).0f" +msgstr "" + +#: core/timeline.py:157 +msgid "Contents: %(contents)s" +msgstr "" + +#: dashboard/templates/cards/diaperchange_last.html:12 +#: dashboard/templates/cards/feeding_last.html:12 +#: dashboard/templates/cards/sleep_last.html:12 +#: dashboard/templates/cards/tummytime_last.html:13 +msgid "
%(since)s ago
%(time)s" +msgstr "" + +#: dashboard/templates/cards/feeding_day.html:6 +msgid "Today's Feeding" +msgstr "" + +#: dashboard/templates/cards/feeding_day.html:20 +msgid "%(count)s feeding entries" +msgstr "" + +#: dashboard/templates/cards/statistics.html:42 +msgid "No data yet" +msgstr "" + +#: reports/templates/reports/report_list.html:21 +msgid "Tummy Time Durations (Sum)" +msgstr "" + +#: core/templates/timeline/_timeline.html:61 +#: dashboard/templates/dashboard/child_button_group.html:20 +msgid "Edit" +msgstr "" + +#: dashboard/templatetags/cards.py:456 +msgid "Feeding frequency (past 3 days)" +msgstr "" + +#: dashboard/templatetags/cards.py:460 +msgid "Feeding frequency (past 2 weeks)" +msgstr "" + +#: reports/graphs/tummytime_duration.py:34 +msgid "Total duration" +msgstr "" + +#: reports/graphs/tummytime_duration.py:41 +#: reports/graphs/tummytime_duration.py:55 +msgid "Number of sessions" +msgstr "" + +#: reports/graphs/tummytime_duration.py:50 +msgid "Total Tummy Time Durations" +msgstr "" + +#: reports/graphs/tummytime_duration.py:53 +msgid "Total duration (minutes)" +msgstr "" + +#: reports/templates/reports/tummytime_duration.html:4 +#: reports/templates/reports/tummytime_duration.html:8 +#, fuzzy +msgid "Total Tummy Time Durations" +msgstr "Ihokontakti tänään" + +#: babybuddy/settings/base.py:169 +msgid "English (US)" +msgstr "englanti (Yhdysvallat)" + +#: babybuddy/settings/base.py:170 +msgid "English (UK)" +msgstr "englanti (Yhdistynyt kuningaskunta)" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:171 +msgid "Measurements" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:207 core/models.py:369 +#: core/models.py:381 core/models.py:382 core/models.py:385 +#: core/templates/core/height_confirm_delete.html:7 +#: core/templates/core/height_form.html:13 +#: core/templates/core/height_list.html:4 +#: core/templates/core/height_list.html:7 +#: core/templates/core/height_list.html:12 +#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 +#: reports/graphs/height_change.py:30 +#: reports/templates/reports/height_change.html:4 +#: reports/templates/reports/height_change.html:8 +#: reports/templates/reports/report_list.html:17 +msgid "Height" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:213 +msgid "Height entry" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:221 core/models.py:338 +#: core/models.py:351 core/models.py:352 core/models.py:355 +#: core/templates/core/head_circumference_confirm_delete.html:7 +#: core/templates/core/head_circumference_form.html:13 +#: core/templates/core/head_circumference_list.html:4 +#: core/templates/core/head_circumference_list.html:7 +#: core/templates/core/head_circumference_list.html:12 +#: core/templates/core/head_circumference_list.html:29 +#: reports/graphs/head_circumference_change.py:19 +#: reports/graphs/head_circumference_change.py:30 +#: reports/templates/reports/head_circumference_change.html:4 +#: reports/templates/reports/head_circumference_change.html:8 +#: reports/templates/reports/report_list.html:16 +msgid "Head Circumference" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:227 +msgid "Head Circumference entry" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:235 core/models.py:139 +#: core/models.py:151 core/models.py:152 core/models.py:155 +#: core/templates/core/bmi_confirm_delete.html:7 +#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 +#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 +#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 +#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 +#: reports/templates/reports/bmi_change.html:8 +msgid "BMI" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:241 +msgid "BMI entry" +msgstr "" + +#: core/models.py:452 +msgid "Napping" +msgstr "" + +#: core/templates/core/bmi_confirm_delete.html:4 +msgid "Delete a BMI Entry" +msgstr "" + +#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 +#: core/templates/core/bmi_form.html:27 +msgid "Add a BMI Entry" +msgstr "" + +#: core/templates/core/bmi_list.html:15 +msgid "Add BMI" +msgstr "" + +#: core/templates/core/bmi_list.html:70 +msgid "No bmi entries found." +msgstr "" + #: core/templates/core/head_circumference_confirm_delete.html:4 msgid "Delete a Head Circumference Entry" msgstr "" @@ -1289,25 +1876,134 @@ msgstr "" msgid "No height entries found." msgstr "" -#: core/templates/core/note_confirm_delete.html:4 -msgid "Delete a Note" -msgstr "Poista muistiinpano" +#: core/templates/timeline/_timeline.html:44 +msgid "Duration: %(duration)s" +msgstr "" -#: core/templates/core/note_form.html:6 -msgid "Update a Note" -msgstr "Päivitä muistiinpano" +#: core/templates/timeline/_timeline.html:53 +msgid "%(since)s since previous" +msgstr "" -#: core/templates/core/note_form.html:8 core/templates/core/note_form.html:27 -msgid "Add a Note" -msgstr "Lisää muistiinpano" +#: core/templates/timeline/_timeline.html:85 +msgid "No events" +msgstr "" -#: core/templates/core/note_list.html:15 -msgid "Add Note" -msgstr "Lisää muistiinpano" +#: core/timeline.py:185 +msgid "%(child)s had a %(type)s diaper change." +msgstr "" -#: core/templates/core/note_list.html:64 -msgid "No notes found." -msgstr "Muistiinpanoja ei löytynyt." +#: dashboard/templatetags/cards.py:372 +msgid "Height change per week" +msgstr "" + +#: dashboard/templatetags/cards.py:382 +msgid "Head circumference change per week" +msgstr "" + +#: dashboard/templatetags/cards.py:392 +msgid "BMI change per week" +msgstr "" + +#: reports/graphs/bmi_change.py:27 +msgid "BMI" +msgstr "" + +#: reports/graphs/feeding_amounts.py:69 +msgid "Total Feeding Amount by Type" +msgstr "" + +#: reports/graphs/head_circumference_change.py:27 +msgid "Head Circumference" +msgstr "" + +#: reports/graphs/height_change.py:27 +msgid "Height" +msgstr "" + +#: babybuddy/settings/base.py:167 +msgid "Chinese (simplified)" +msgstr "" + +#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 +msgid "Bad Request" +msgstr "" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:14 +msgid "How to Fix" +msgstr "" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:15 +msgid "Add %(origin)s to the CSRF_TRUSTED_ORIGINS environment variable. If multiple origins are required separate with commas." +msgstr "" + +#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 +msgid "Page Not Found" +msgstr "" + +#: babybuddy/templates/error/404.html:9 +msgid "The path %(request_path)s does not exist." +msgstr "" + +#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 +msgid "Server Error" +msgstr "" + +#: babybuddy/templates/error/base.html:14 +msgid "Return to Baby Buddy" +msgstr "" + +#: babybuddy/views.py:43 +msgid "Forbidden" +msgstr "" + +#: babybuddy/views.py:44 +msgid "CSRF verification failed. Request aborted." +msgstr "" + +#: babybuddy/settings/base.py:166 +msgid "Catalan" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:93 +#: babybuddy/templates/babybuddy/nav-dropdown.html:316 core/models.py:437 +#: core/models.py:438 core/models.py:441 +#: core/templates/core/pumping_confirm_delete.html:7 +#: core/templates/core/pumping_form.html:13 +#: core/templates/core/pumping_list.html:4 +#: core/templates/core/pumping_list.html:7 +#: core/templates/core/pumping_list.html:12 +#: reports/templates/reports/pumping_amounts.html:4 +#: reports/templates/reports/pumping_amounts.html:8 +msgid "Pumping" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:322 +msgid "Pumping entry" +msgstr "" + +#: core/filters.py:11 core/models.py:96 core/models.py:115 +msgid "Tag" +msgstr "" + +#: core/forms.py:136 +msgid "Click on the tags to add (+) or remove (-) tags or use the text editor to create new tags." +msgstr "" + +#: core/models.py:90 +msgid "Last used" +msgstr "" + +#: core/models.py:97 core/templates/core/bmi_list.html:30 +#: core/templates/core/diaperchange_list.html:32 +#: core/templates/core/feeding_list.html:35 +#: core/templates/core/head_circumference_list.html:30 +#: core/templates/core/height_list.html:30 +#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 +#: core/templates/core/temperature_list.html:30 +#: core/templates/core/tummytime_list.html:31 +#: core/templates/core/weight_list.html:30 +msgid "Tags" +msgstr "" #: core/templates/core/pumping_confirm_delete.html:4 msgid "Delete a Pumping Entry" @@ -1327,199 +2023,6 @@ msgstr "" msgid "No pumping entries found." msgstr "" -#: core/templates/core/quick_timer_nav.html:9 -#: core/templates/core/quick_timer_nav.html:29 -#: core/templates/core/timer_nav.html:37 -msgid "Quick Start Timer" -msgstr "Pika-ajastin" - -#: core/templates/core/quick_timer_nav.html:19 -#: core/templates/core/timer_nav.html:28 -#, fuzzy -#| msgid "Quick Start Timer" -msgid "Quick Start Timer For…" -msgstr "Pika-ajastin" - -#: core/templates/core/sleep_confirm_delete.html:4 -msgid "Delete a Sleep Entry" -msgstr "Poista uni" - -#: core/templates/core/sleep_form.html:6 -msgid "Update a Sleep Entry" -msgstr "Päivitä uni" - -#: core/templates/core/sleep_form.html:8 core/templates/core/sleep_form.html:27 -msgid "Add a Sleep Entry" -msgstr "Lisää uni" - -#: core/templates/core/sleep_list.html:15 -msgid "Add Sleep" -msgstr "Lisää uni" - -#: core/templates/core/sleep_list.html:25 -#: core/templates/core/timer_form.html:12 -#: core/templates/core/timer_list.html:24 -#: core/templates/core/tummytime_list.html:24 -msgid "Start" -msgstr "Aloitus" - -#: core/templates/core/sleep_list.html:26 -#: core/templates/core/timer_list.html:30 -#: core/templates/core/tummytime_list.html:25 -msgid "End" -msgstr "Lopetus" - -#: core/templates/core/sleep_list.html:31 -msgid "Nap" -msgstr "Päiväuni" - -#: core/templates/core/sleep_list.html:74 -msgid "No sleep entries found." -msgstr "Unia ei löytynyt." - -#: core/templates/core/temperature_confirm_delete.html:4 -msgid "Delete a Temperature Reading" -msgstr "Poista lämpötila" - -#: core/templates/core/temperature_form.html:8 -#: core/templates/core/temperature_form.html:17 -msgid "Add a Temperature Reading" -msgstr "Lisää lämpötila" - -#: core/templates/core/temperature_form.html:27 -msgid "Add a Temperature Entry" -msgstr "Lisää lämpötila" - -#: core/templates/core/temperature_list.html:15 -msgid "Add Temperature Reading" -msgstr "Lisää lämpötila" - -#: core/templates/core/temperature_list.html:70 -msgid "No temperature entries found." -msgstr "Lämpötiloja ei löytynyt." - -#: core/templates/core/timer_confirm_delete.html:5 -#, python-format -msgid "Delete %(object)s" -msgstr "Poista %(object)s" - -#: core/templates/core/timer_confirm_delete_inactive.html:5 -msgid "Delete All Inactive Timers" -msgstr "Poista kaikki inaktiiviset ajastimet" - -#: core/templates/core/timer_confirm_delete_inactive.html:10 -msgid "Delete Inactive" -msgstr "Poista inaktiivinen" - -#: core/templates/core/timer_confirm_delete_inactive.html:17 -#, fuzzy, python-format -#| msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" -msgid "Are you sure you want to delete %(number)s inactive timer?" -msgid_plural "Are you sure you want to delete %(number)s inactive timers?" -msgstr[0] "Haluatko varmasti poistaa %(number)s inaktiivista timer%(plural)s?" -msgstr[1] "Haluatko varmasti poistaa %(number)s inaktiivista timer%(plural)s?" - -#: core/templates/core/timer_detail.html:28 -msgid "Started" -msgstr "Alkoi" - -#: core/templates/core/timer_detail.html:30 -msgid "Stopped" -msgstr "Pysäytetty" - -#: core/templates/core/timer_detail.html:34 -#, python-format -msgid "%(timer)s created by %(user)s" -msgstr "%(timer)s, jonka loi %(user)s" - -#: core/templates/core/timer_detail.html:63 -msgid "Timer actions" -msgstr "Ajastintoiminnot" - -#: core/templates/core/timer_detail.html:77 -msgid "Restart timer" -msgstr "" - -#: core/templates/core/timer_detail.html:84 -msgid "Delete timer" -msgstr "" - -#: core/templates/core/timer_form.html:22 -#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:15 -msgid "Start Timer" -msgstr "Aloita ajastin" - -#: core/templates/core/timer_list.html:58 -msgid "No timer entries found." -msgstr "Akastimia ei löytynyt." - -#: core/templates/core/timer_list.html:68 -msgid "Delete Inactive Timers" -msgstr "Poista inaktiiviset ajastimet" - -#: core/templates/core/timer_nav.html:20 -msgid "View Timers" -msgstr "Näytä ajastimet" - -#: core/templates/core/timer_nav.html:44 -#: dashboard/templates/cards/timer_list.html:6 -msgid "Active Timers" -msgstr "Aktiiviset ajastimet" - -#: core/templates/core/timer_nav.html:50 -#: dashboard/templates/cards/diaperchange_last.html:17 -#: dashboard/templates/cards/diaperchange_types.html:12 -#: dashboard/templates/cards/feeding_day.html:20 -#: dashboard/templates/cards/feeding_day.html:52 -#: dashboard/templates/cards/feeding_last.html:17 -#: dashboard/templates/cards/feeding_last_method.html:43 -#: dashboard/templates/cards/sleep_last.html:17 -#: dashboard/templates/cards/sleep_naps_day.html:18 -#: dashboard/templates/cards/sleep_recent.html:20 -#: dashboard/templates/cards/sleep_recent.html:52 -#: dashboard/templates/cards/tummytime_day.html:14 -msgid "None" -msgstr "Ei mitään" - -#: core/templates/core/tummytime_confirm_delete.html:4 -msgid "Delete a Tummy Time Entry" -msgstr "Poista ihokontakti" - -#: core/templates/core/tummytime_form.html:6 -msgid "Update a Tummy Time Entry" -msgstr "Päivitä ihokontakti" - -#: core/templates/core/tummytime_form.html:8 -#: core/templates/core/tummytime_form.html:27 -msgid "Add a Tummy Time Entry" -msgstr "Lisää ihokontakti" - -#: core/templates/core/tummytime_list.html:15 -msgid "Add Tummy Time" -msgstr "Lisää ihokontakti" - -#: core/templates/core/tummytime_list.html:67 -msgid "No tummy time entries found." -msgstr "Ei ihokontakteja." - -#: core/templates/core/weight_confirm_delete.html:4 -msgid "Delete a Weight Entry" -msgstr "Poista paino" - -#: core/templates/core/weight_form.html:8 -#: core/templates/core/weight_form.html:17 -#: core/templates/core/weight_form.html:27 -msgid "Add a Weight Entry" -msgstr "Lisää paino" - -#: core/templates/core/weight_list.html:15 -msgid "Add Weight" -msgstr "Lisää paino" - -#: core/templates/core/weight_list.html:70 -msgid "No weight entries found." -msgstr "Painomerkintöjä ei löytynyt." - #: core/templates/core/widget_tag_editor.html:22 msgid "Tag name" msgstr "" @@ -1558,570 +2061,66 @@ msgctxt "Error modal" msgid "Close" msgstr "" -#: core/templates/timeline/_timeline.html:38 -#, python-format -msgid "%(since)s ago (%(time)s)" -msgstr "%(since)s sitten (%(time)s)" - -#: core/templates/timeline/_timeline.html:44 -#, python-format -msgid "Duration: %(duration)s" -msgstr "" - -#: core/templates/timeline/_timeline.html:53 -#, python-format -msgid "%(since)s since previous" -msgstr "" - -#: core/templates/timeline/_timeline.html:61 -#: dashboard/templates/dashboard/child_button_group.html:20 -msgid "Edit" -msgstr "" - -#: core/templates/timeline/_timeline.html:85 -msgid "No events" -msgstr "" - -#: core/templatetags/datetime.py:60 -msgid "Today" -msgstr "tänään" - -#: core/templatetags/datetime.py:75 -msgid "{}, {}" -msgstr "" - -#: core/templatetags/duration.py:25 -msgid "0 days" -msgstr "" - -#: core/templatetags/duration.py:111 -#: dashboard/templates/cards/diaperchange_types.html:49 -msgid "today" -msgstr "tänään" - -#: core/templatetags/duration.py:113 -#: dashboard/templates/cards/diaperchange_types.html:51 -msgid "yesterday" -msgstr "eilen" - -#: core/templatetags/duration.py:116 -#, fuzzy -#| msgid "%(key)s days ago" -msgid " days ago" -msgstr "%(key)s päivää sitten" - -#: core/timeline.py:53 -#, python-format -msgid "%(child)s started tummy time!" -msgstr "%(child)s aloitti ihokontaktin." - -#: core/timeline.py:65 -#, python-format -msgid "%(child)s finished tummy time." -msgstr "%(child)s lopetti ihokontaktin." - -#: core/timeline.py:91 -#, python-format -msgid "%(child)s fell asleep." -msgstr "%(child)s nukahti." - -#: core/timeline.py:103 -#, python-format -msgid "%(child)s woke up." -msgstr "%(child)s heräsi." - -#: core/timeline.py:137 -#, python-format -msgid "Amount: %(amount).0f" -msgstr "" - -#: core/timeline.py:145 -#, python-format -msgid "%(child)s started feeding." -msgstr "%(child)s aloitti syömisen." - -#: core/timeline.py:158 -#, python-format -msgid "%(child)s finished feeding." -msgstr "%(child)s lopetti syömisen." - -#: core/timeline.py:185 -#, python-format -msgid "%(child)s had a %(type)s diaper change." -msgstr "" - -#: core/utils.py:40 -#, python-format -msgid "%(hours)s hour" -msgid_plural "%(hours)s hours" -msgstr[0] "%(hours)s tunti" -msgstr[1] "%(hours)s tuntia" - -#: core/utils.py:44 -#, python-format -msgid "%(minutes)s minute" -msgid_plural "%(minutes)s minutes" -msgstr[0] "%(minutes)s minuutti" -msgstr[1] "%(minutes)s minuuttia" - -#: core/utils.py:50 -#, python-format -msgid "%(seconds)s second" -msgid_plural "%(seconds)s seconds" -msgstr[0] "%(seconds)s sekunti" -msgstr[1] "%(seconds)s sekuntia" - -#: core/views.py:33 -#, python-format -msgid "%(model)s entry for %(child)s added!" -msgstr "%(model)s -merkintä lapselle %(child)s lisätty!" - -#: core/views.py:35 core/views.py:308 -#, python-format -msgid "%(model)s entry added!" -msgstr "%(model)s -merkintä lisätty!" - -#: core/views.py:61 core/views.py:316 -#, python-format -msgid "%(model)s entry for %(child)s updated." -msgstr "%(model)s -merkintä lapselle %(child)s päivitetty." - -#: core/views.py:63 -#, python-format -msgid "%(model)s entry updated." -msgstr "%(model)s -merkintä päivitetty." - -#: core/views.py:69 core/views.py:146 -#, python-format -msgid "%(model)s entry deleted." -msgstr "%(model)s -merkintä poistettu." - -#: core/views.py:115 -#, python-format -msgid "%(first_name)s %(last_name)s added!" -msgstr "%(first_name)s %(last_name)s lisätty!" - -#: core/views.py:366 -#, python-format -msgid "%(model)s reading added!" -msgstr "%(model)s -lukema lisätty!" - -#: core/views.py:374 -#, python-format -msgid "%(model)s reading for %(child)s updated." -msgstr "%(model)s -lukema lapselle %(child)s päivitetty." - -#: core/views.py:483 -#, python-format -msgid "%(timer)s stopped." -msgstr "%(timer)s pysäytetty." - -#: core/views.py:506 -msgid "All inactive timers deleted." -msgstr "Kaikki inaktiiviset ajastimet poistettu." - -#: core/views.py:516 -msgid "No inactive timers exist." -msgstr "Ei inaktiivisia ajastimia." - -#: dashboard/templates/cards/diaperchange_last.html:6 -msgid "Last Diaper Change" -msgstr "Viimeisin vaipanvaihto" - -#: dashboard/templates/cards/diaperchange_last.html:12 -#: dashboard/templates/cards/feeding_last.html:12 -#: dashboard/templates/cards/sleep_last.html:12 -#: dashboard/templates/cards/tummytime_last.html:13 -#, python-format -msgid "
%(since)s ago
%(time)s" -msgstr "" - -#: dashboard/templates/cards/diaperchange_types.html:14 -msgid "Past Week" -msgstr "Viime viikko" - -#: dashboard/templates/cards/diaperchange_types.html:27 -msgid "wet" -msgstr "märkä" - -#: dashboard/templates/cards/diaperchange_types.html:35 -msgid "solid" -msgstr "kiinteä" - -#: dashboard/templates/cards/diaperchange_types.html:53 -#, python-format -msgid "%(key)s days ago" -msgstr "%(key)s päivää sitten" - -#: dashboard/templates/cards/feeding_day.html:6 -msgid "Today's Feeding" -msgstr "" - -#: dashboard/templates/cards/feeding_day.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s feeding" -msgid_plural "%(counter)s feedings" -msgstr[0] "%(count)s unimerkintä" -msgstr[1] "%(count)s unimerkintä" - #: dashboard/templates/cards/feeding_day.html:32 -#: dashboard/templates/cards/sleep_recent.html:32 -#, python-format msgid "
%(since)s
" msgstr "" -#: dashboard/templates/cards/feeding_last.html:6 -msgid "Last Feeding" -msgstr "Edellinen syöttö" - -#: dashboard/templates/cards/feeding_last_method.html:6 -msgid "Last Feeding Method" -msgstr "Viimeisin syöttötapa" - -#: dashboard/templates/cards/feeding_last_method.html:19 -msgid "most recent" -msgstr "viimeisin" - -#: dashboard/templates/cards/feeding_last_method.html:21 -#, fuzzy, python-format -#| msgid "%(n)s feeding%(plural)s ago" -msgid "%(n)s feeding ago" -msgid_plural "%(n)s feedings ago" -msgstr[0] "%(n)s syöttöä%(plural)s sitten" -msgstr[1] "%(n)s syöttöä%(plural)s sitten" - -#: dashboard/templates/cards/sleep_last.html:6 -msgid "Last Sleep" -msgstr "Edellinen uni" - -#: dashboard/templates/cards/sleep_naps_day.html:6 -msgid "Today's Naps" -msgstr "Päiväunet tänään" - -#: dashboard/templates/cards/sleep_naps_day.html:12 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(count)s nap" -msgid_plural "%(count)s naps" -msgstr[0] "%(count)s unimerkintä" -msgstr[1] "%(count)s unimerkintä" - -#: dashboard/templates/cards/sleep_recent.html:6 -#, fuzzy -#| msgid "Last Sleep" -msgid "Recent Sleep" -msgstr "Edellinen uni" - -#: dashboard/templates/cards/sleep_recent.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s sleep" -msgid_plural "%(counter)s sleep" -msgstr[0] "%(count)s unimerkintä" -msgstr[1] "%(count)s unimerkintä" - -#: dashboard/templates/cards/statistics.html:7 -msgid "Statistics" -msgstr "Tilastot" - -#: dashboard/templates/cards/statistics.html:25 -msgid "Not enough data" -msgstr "Ei riittävästi dataa" - -#: dashboard/templates/cards/statistics.html:42 -msgid "No data yet" -msgstr "" - -#: dashboard/templates/cards/timer_list.html:12 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(count)s active timer" -msgid_plural "%(count)s active timers" -msgstr[0] "%(count)s unimerkintä" -msgstr[1] "%(count)s unimerkintä" - -#: dashboard/templates/cards/timer_list.html:27 -#, python-format -msgid "Started by %(user)s at %(start)s" -msgstr "%(user)s aloitti %(start)s" - -#: dashboard/templates/cards/tummytime_day.html:6 -msgid "Today's Tummy Time" -msgstr "Ihokontakti tänään" - -#: dashboard/templates/cards/tummytime_day.html:22 -#, python-format -msgid "%(duration)s at %(end)s" -msgstr "%(duration)s %(end)s" - -#: dashboard/templates/cards/tummytime_last.html:6 -msgid "Last Tummy Time" -msgstr "Viimeisin ihokontakti" - -#: dashboard/templates/cards/tummytime_last.html:18 -msgid "Never" -msgstr "Ei koskaan" - -#: dashboard/templates/dashboard/child_button_group.html:3 -msgid "Child actions" -msgstr "Lapsen toiminnot" - -#: dashboard/templates/dashboard/child_button_group.html:12 -#: reports/templates/reports/base.html:9 -#: reports/templates/reports/report_list.html:4 -msgid "Reports" -msgstr "Raportit" - -#: dashboard/templatetags/cards.py:357 -msgid "Average nap duration" -msgstr "Päiväunen kesto keskimäärin" - -#: dashboard/templatetags/cards.py:364 -msgid "Average naps per day" -msgstr "Päiväunia päivässä" - -#: dashboard/templatetags/cards.py:374 -msgid "Average sleep duration" -msgstr "Unen kesto keskimäärin" - -#: dashboard/templatetags/cards.py:381 -msgid "Average awake duration" -msgstr "Hereilläoloaika keskimäärin" - -#: dashboard/templatetags/cards.py:391 -msgid "Weight change per week" -msgstr "Painonmuutos viikossa" - -#: dashboard/templatetags/cards.py:401 -msgid "Height change per week" -msgstr "" - -#: dashboard/templatetags/cards.py:411 -msgid "Head circumference change per week" -msgstr "" - -#: dashboard/templatetags/cards.py:421 -msgid "BMI change per week" -msgstr "" - -#: dashboard/templatetags/cards.py:439 +#: dashboard/templatetags/cards.py:410 msgid "Diaper change frequency (past 3 days)" msgstr "Vaipanvaihtotaajuus (past 3 days)" -#: dashboard/templatetags/cards.py:443 +#: dashboard/templatetags/cards.py:414 msgid "Diaper change frequency (past 2 weeks)" msgstr "Vaipanvaihtotaajuus (past 2 weeks)" -#: dashboard/templatetags/cards.py:449 -msgid "Diaper change frequency" -msgstr "Vaipanvaihtotaajuus" - -#: dashboard/templatetags/cards.py:485 -msgid "Feeding frequency (past 3 days)" -msgstr "" - -#: dashboard/templatetags/cards.py:489 -msgid "Feeding frequency (past 2 weeks)" -msgstr "" - -#: dashboard/templatetags/cards.py:495 -msgid "Feeding frequency" -msgstr "Syöttötaajuus" - -#: reports/graphs/bmi_change.py:27 -msgid "BMI" -msgstr "" - -#: reports/graphs/diaperchange_amounts.py:27 -msgid "Diaper change amount" -msgstr "Vaipanvaihtomäärä" - -#: reports/graphs/diaperchange_amounts.py:36 -msgid "Diaper Change Amounts" -msgstr "Vaipanvaihtomäärät" - -#: reports/graphs/diaperchange_amounts.py:39 -msgid "Change amount" -msgstr "Vaihtojen määrä" - -#: reports/graphs/diaperchange_lifetimes.py:35 -msgid "Diaper Lifetimes" -msgstr "Vaippojen eliniät" - -#: reports/graphs/diaperchange_lifetimes.py:36 -msgid "Time between changes (hours)" -msgstr "Vaihtoväli" - -#: reports/graphs/diaperchange_types.py:41 reports/graphs/feeding_amounts.py:58 -msgid "Total" -msgstr "Yhteensä" - -#: reports/graphs/diaperchange_types.py:48 -msgid "Diaper Change Types" -msgstr "Vaipanvaihtotyypit" - -#: reports/graphs/diaperchange_types.py:51 -msgid "Number of changes" -msgstr "Vaihtojen määrä" - -#: reports/graphs/feeding_amounts.py:69 -msgid "Total Feeding Amount by Type" -msgstr "" - -#: reports/graphs/feeding_amounts.py:72 -msgid "Feeding amount" -msgstr "Syötön määrä" - -#: reports/graphs/feeding_duration.py:38 -msgid "Average duration" -msgstr "Kesto keskimäärin" - -#: reports/graphs/feeding_duration.py:46 -msgid "Total feedings" -msgstr "Syötöt yhteenså" - -#: reports/graphs/feeding_duration.py:55 -msgid "Average Feeding Durations" -msgstr "Imetyksen kesto keskimäärin" - -#: reports/graphs/feeding_duration.py:58 -msgid "Average duration (minutes)" -msgstr "Kesto keskimäärin minuuteissa" - -#: reports/graphs/feeding_duration.py:60 -msgid "Number of feedings" -msgstr "Syöttöjen määrä" - -#: reports/graphs/head_circumference_change.py:27 -msgid "Head Circumference" -msgstr "" - -#: reports/graphs/height_change.py:27 -msgid "Height" -msgstr "" - -#: reports/graphs/pumping_amounts.py:59 +#: reports/graphs/pumping_amounts.py:57 msgid "Total Pumping Amount" msgstr "" -#: reports/graphs/pumping_amounts.py:62 +#: reports/graphs/pumping_amounts.py:60 msgid "Pumping Amount" msgstr "" -#: reports/graphs/sleep_pattern.py:150 -msgid "Sleep Pattern" -msgstr "Unimallit" - -#: reports/graphs/sleep_pattern.py:167 -msgid "Time of day" -msgstr "Ajankohta" - -#: reports/graphs/sleep_totals.py:48 -msgid "Total sleep" -msgstr "Uni yhteensä" - -#: reports/graphs/sleep_totals.py:58 -msgid "Sleep Totals" -msgstr "Unet yhteensä" - -#: reports/graphs/sleep_totals.py:61 -msgid "Hours of sleep" -msgstr "Unitunnit" - -#: reports/graphs/tummytime_duration.py:34 -msgid "Total duration" -msgstr "" - -#: reports/graphs/tummytime_duration.py:41 -#: reports/graphs/tummytime_duration.py:55 -msgid "Number of sessions" -msgstr "" - -#: reports/graphs/tummytime_duration.py:50 -msgid "Total Tummy Time Durations" -msgstr "" - -#: reports/graphs/tummytime_duration.py:53 -msgid "Total duration (minutes)" -msgstr "" - -#: reports/graphs/weight_change.py:27 -msgid "Weight" -msgstr "Paino" - -#: reports/templates/reports/diaperchange_amounts.html:4 -#: reports/templates/reports/diaperchange_amounts.html:8 -msgid "Diaper Amounts" -msgstr "Vaippojen määrä" - -#: reports/templates/reports/diaperchange_lifetimes.html:4 -#: reports/templates/reports/diaperchange_lifetimes.html:8 -#: reports/templates/reports/report_list.html:13 -msgid "Diaper Lifetimes" -msgstr "Vaippojen eliniät" - -#: reports/templates/reports/diaperchange_types.html:4 -#: reports/templates/reports/diaperchange_types.html:8 -#: reports/templates/reports/report_list.html:12 -msgid "Diaper Change Types" -msgstr "Vaipanvaihtotyypit" - -#: reports/templates/reports/feeding_amounts.html:4 -#: reports/templates/reports/feeding_amounts.html:8 -#: reports/templates/reports/report_list.html:14 -msgid "Feeding Amounts" -msgstr "Syöttöjen määrä" - -#: reports/templates/reports/feeding_duration.html:4 -#: reports/templates/reports/feeding_duration.html:8 -msgid "Average Feeding Durations" -msgstr "Syöttöjen kesto keskimäärin" - -#: reports/templates/reports/report_base.html:17 -msgid "There is not enough data to generate this report." -msgstr "Ei riittävästi dataa tämän raportin luomiseen." - #: reports/templates/reports/report_list.html:10 msgid "Body Mass Index (BMI)" msgstr "" -#: reports/templates/reports/report_list.html:11 -msgid "Diaper Change Amounts" -msgstr "Vaipanvaihtomäärät" - -#: reports/templates/reports/report_list.html:15 -msgid "Feeding Durations (Average)" -msgstr "Syötön kesto keskimäärin" - #: reports/templates/reports/report_list.html:18 msgid "Pumping Amounts" msgstr "" -#: reports/templates/reports/report_list.html:19 -#: reports/templates/reports/sleep_pattern.html:4 -#: reports/templates/reports/sleep_pattern.html:8 -msgid "Sleep Pattern" -msgstr "Unikuvio" +#: core/templates/core/timer_confirm_delete_inactive.html:17 +#, fuzzy +msgid "Are you sure you want to delete %(number)s inactive timer?" +msgid_plural "Are you sure you want to delete %(number)s inactive timers?" +msgstr[0] "Haluatko varmasti poistaa %(number)s inaktiivista timer%(plural)s?" +msgstr[1] "Haluatko varmasti poistaa %(number)s inaktiivista timer%(plural)s?" -#: reports/templates/reports/report_list.html:20 -#: reports/templates/reports/sleep_totals.html:4 -#: reports/templates/reports/sleep_totals.html:8 -msgid "Sleep Totals" -msgstr "Uni yhteensä" +#: dashboard/templates/cards/feeding_day.html:25 +#, fuzzy +msgid "%(counter)s feeding" +msgid_plural "%(counter)s feedings" +msgstr[0] "%(count)s unimerkintä" +msgstr[1] "%(count)s unimerkintä" -#: reports/templates/reports/report_list.html:21 -msgid "Tummy Time Durations (Sum)" -msgstr "" +#: dashboard/templates/cards/feeding_last_method.html:21 +#, fuzzy +msgid "%(n)s feeding ago" +msgid_plural "%(n)s feedings ago" +msgstr[0] "%(n)s syöttöä%(plural)s sitten" +msgstr[1] "%(n)s syöttöä%(plural)s sitten" -#: reports/templates/reports/tummytime_duration.html:4 -#: reports/templates/reports/tummytime_duration.html:8 -msgid "Total Tummy Time Durations" -msgstr "" +#: dashboard/templates/cards/sleep_naps_day.html:12 +#, fuzzy +msgid "%(count)s nap" +msgid_plural "%(count)s naps" +msgstr[0] "%(count)s unimerkintä" +msgstr[1] "%(count)s unimerkintä" -#~ msgid "Today's Sleep" -#~ msgstr "Uni tänään" +#: dashboard/templates/cards/timer_list.html:12 +#, fuzzy +msgid "%(count)s active timer" +msgid_plural "%(count)s active timers" +msgstr[0] "%(count)s unimerkintä" +msgstr[1] "%(count)s unimerkintä" -#, python-format -#~ msgid "%(count)s sleep entries" -#~ msgstr "%(count)s unimerkintä" diff --git a/locale/fr/LC_MESSAGES/django.mo b/locale/fr/LC_MESSAGES/django.mo index 6a6f7e7e..1eeb4ff2 100644 Binary files a/locale/fr/LC_MESSAGES/django.mo and b/locale/fr/LC_MESSAGES/django.mo differ diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index ebd37103..9e9072c6 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -133,7 +133,7 @@ msgstr "Changement de couche" #: babybuddy/templates/babybuddy/nav-dropdown.html:281 core/models.py:312 #: core/models.py:316 core/templates/core/timer_detail.html:43 msgid "Feeding" -msgstr "Allaitement" +msgstr "Alimentation" #: babybuddy/templates/babybuddy/nav-dropdown.html:63 #: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:396 @@ -377,7 +377,7 @@ msgstr "Supprimer" #: core/templates/core/tummytime_confirm_delete.html:14 #: core/templates/core/weight_confirm_delete.html:14 msgid "

Are you sure you want to delete %(object)s?

" -msgstr "

Êtes-vous sûr de vouloir supprimer %(object)s ?

" +msgstr "

Êtes-vous sûr(e) de vouloir supprimer %(object)s ?

" #: babybuddy/templates/babybuddy/user_confirm_delete.html:19 #: core/templates/core/bmi_confirm_delete.html:18 @@ -452,7 +452,7 @@ msgstr "Email" #: babybuddy/templates/babybuddy/user_list.html:21 msgid "Staff" -msgstr "Personnel" +msgstr "Administrateur" #: babybuddy/templates/babybuddy/user_list.html:22 core/models.py:551 #: core/templates/core/timer_list.html:31 @@ -533,7 +533,7 @@ msgstr "Bienvenue sur Baby Buddy !" #: babybuddy/templates/babybuddy/welcome.html:14 msgid "Learn about and predict baby's needs without\n" " (as much) guess work by using Baby Buddy to track —" -msgstr "Apprendre et prédire les besoins de bébé deviens un jeu d'enfants avec Baby Buddy —" +msgstr "Apprendre et prédire les besoins de bébé devient (un peu plus) facile avec Baby Buddy —" #: babybuddy/templates/babybuddy/welcome.html:26 core/models.py:249 #: core/templates/core/diaperchange_confirm_delete.html:7 @@ -1180,7 +1180,7 @@ msgstr "Pas assez de données" #: dashboard/templates/cards/timer_list.html:12 msgid "%(count)s active timer%(plural)s" -msgstr "%(count)s chronomètre%(plural)s actif" +msgstr "%(count)s chronomètre%(plural)s actif%(plural)s" #: dashboard/templates/cards/timer_list.html:19 msgid "Started by %(instance.user)s at %(start)s" @@ -1464,7 +1464,7 @@ msgstr "Lancé par %(user)s à %(start)s" #: reports/templates/reports/feeding_amounts.html:8 #: reports/templates/reports/report_list.html:14 msgid "Feeding Amounts" -msgstr "Allaitements" +msgstr "Quantités d'alimentation" #: reports/graphs/feeding_amounts.py:27 msgid "Total feeding amount" @@ -1476,7 +1476,7 @@ msgstr "Durée moyenne d'alimentation" #: reports/graphs/feeding_amounts.py:72 msgid "Feeding amount" -msgstr "Allaitement" +msgstr "Quantité d'alimentation" #: reports/templates/reports/report_base.html:17 msgid "There is not enough data to generate this report." @@ -1887,7 +1887,7 @@ msgstr "Aucun événement" #: core/timeline.py:185 msgid "%(child)s had a %(type)s diaper change." -msgstr "%(child)s a eu sa %(type)s couche changée." +msgstr "La couche %(type)s de %(child)s a été changée." #: dashboard/templatetags/cards.py:372 msgid "Height change per week" @@ -2089,8 +2089,8 @@ msgstr "Quantités pompées" #: core/templates/core/timer_confirm_delete_inactive.html:17 msgid "Are you sure you want to delete %(number)s inactive timer?" msgid_plural "Are you sure you want to delete %(number)s inactive timers?" -msgstr[0] "Voulez-vous vraiment supprimer %(number)s chronomètre inactif%(plural)s?" -msgstr[1] "Voulez-vous vraiment supprimer %(number)s chronomètres inactif%(plural)s?" +msgstr[0] "Voulez-vous vraiment supprimer %(number)s chronomètre inactif ?" +msgstr[1] "Voulez-vous vraiment supprimer %(number)s chronomètres inactifs ?" #: dashboard/templates/cards/feeding_day.html:25 msgid "%(counter)s feeding" @@ -2101,8 +2101,8 @@ msgstr[1] "%(counter)s alimentations" #: dashboard/templates/cards/feeding_last_method.html:21 msgid "%(n)s feeding ago" msgid_plural "%(n)s feedings ago" -msgstr[0] "il y a %(n)s alimentation%(plural)s" -msgstr[1] "il y a %(n)s alimentation%(plural)s" +msgstr[0] "il y a %(n)s alimentation" +msgstr[1] "il y a %(n)s alimentations" #: dashboard/templates/cards/sleep_naps_day.html:12 msgid "%(count)s nap" @@ -2113,6 +2113,6 @@ msgstr[1] "%(count)s Sieste%(plural)s" #: dashboard/templates/cards/timer_list.html:12 msgid "%(count)s active timer" msgid_plural "%(count)s active timers" -msgstr[0] "%(count)s chronomètre%(plural)s actif" -msgstr[1] "%(count)s chronomètre%(plural)s actif" +msgstr[0] "%(count)s chronomètre actif" +msgstr[1] "%(count)s chronomètre%(plural)s actifs" diff --git a/locale/it/LC_MESSAGES/django.mo b/locale/it/LC_MESSAGES/django.mo index 104b4fb8..f611dda9 100644 Binary files a/locale/it/LC_MESSAGES/django.mo and b/locale/it/LC_MESSAGES/django.mo differ diff --git a/locale/it/LC_MESSAGES/django.po b/locale/it/LC_MESSAGES/django.po index 7a265236..4943406f 100644 --- a/locale/it/LC_MESSAGES/django.po +++ b/locale/it/LC_MESSAGES/django.po @@ -1,22 +1,20 @@ msgid "" msgstr "" -"Project-Id-Version: Baby Buddy\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 21:13+0000\n" -"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" +"Project-Id-Version: Baby Buddy\n" +"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: babybuddy/admin.py:12 babybuddy/admin.py:13 -#: babybuddy/templates/babybuddy/nav-dropdown.html:324 +#: babybuddy/templates/babybuddy/nav-dropdown.html:347 #: babybuddy/templates/babybuddy/user_settings_form.html:8 msgid "Settings" msgstr "Impostazioni" -#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:89 +#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:111 #: babybuddy/templates/babybuddy/user_settings_form.html:61 #: dashboard/templates/dashboard/child.html:4 #: dashboard/templates/dashboard/child.html:9 @@ -31,12 +29,8 @@ msgid "Refresh rate" msgstr "Frequenza d'aggiornamento" #: babybuddy/models.py:21 -msgid "" -"If supported by browser, the dashboard will only refresh when visible, and " -"also when receiving focus." -msgstr "" -"Se supportato dal browser, la dashboard sarà aggiornata quando visualizzata " -"e anche quando torna in primo piano" +msgid "This setting will only be used when a browser does not support refresh on focus." +msgstr "Questa impostazione verrà usata solo se il browser non supporta l'aggiornamento in primo piano." #: babybuddy/models.py:28 msgid "disabled" @@ -74,122 +68,31 @@ msgstr "15 min" msgid "30 min." msgstr "30 min" -#: babybuddy/models.py:40 -msgid "Hide Empty Dashboard Cards" -msgstr "Nascondi le schede vuote nella dashboard" - -#: babybuddy/models.py:43 -msgid "Hide data older than" -msgstr "Nascondi i dati più vecchi di" - -#: babybuddy/models.py:45 -msgid "This setting controls which data will be shown in the dashboard." -msgstr "" -"Questa impostazione controlla quali dati verranno visualizzati nella " -"dashboard" - -#: babybuddy/models.py:51 -msgid "show all data" -msgstr "Visualizza tutti i dati" - -#: babybuddy/models.py:52 -msgid "1 day" -msgstr "1 giorno" - -#: babybuddy/models.py:53 -msgid "2 days" -msgstr "2 giorni" - -#: babybuddy/models.py:54 -msgid "3 days" -msgstr "3 giorni" - -#: babybuddy/models.py:55 -msgid "1 week" -msgstr "1 settimana" - -#: babybuddy/models.py:56 -msgid "4 weeks" -msgstr "4 settimane" - #: babybuddy/models.py:63 msgid "Language" msgstr "Lingua" -#: babybuddy/models.py:69 -msgid "Timezone" -msgstr "Fuso orario" - #: babybuddy/models.py:73 -#, python-brace-format msgid "{user}'s Settings" msgstr "Impostazioni {user}" -#: babybuddy/settings/base.py:166 -msgid "Catalan" -msgstr "" - -#: babybuddy/settings/base.py:167 -msgid "Chinese (simplified)" -msgstr "" - -#: babybuddy/settings/base.py:168 -msgid "Dutch" -msgstr "Olandese" - -#: babybuddy/settings/base.py:169 -#, fuzzy -#| msgid "English" -msgid "English (US)" -msgstr "Inglese" - -#: babybuddy/settings/base.py:170 -#, fuzzy -#| msgid "English" -msgid "English (UK)" +#: babybuddy/settings/base.py:171 +msgid "English" msgstr "Inglese" #: babybuddy/settings/base.py:171 msgid "French" msgstr "Francese" -#: babybuddy/settings/base.py:172 -msgid "Finnish" -msgstr "Finlandese" +#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 +msgid "Permission Denied" +msgstr "Permesso Negato" -#: babybuddy/settings/base.py:173 -msgid "German" -msgstr "Tedesco" - -#: babybuddy/settings/base.py:174 -msgid "Italian" -msgstr "Italiano" - -#: babybuddy/settings/base.py:175 -msgid "Polish" -msgstr "Polacco" - -#: babybuddy/settings/base.py:176 -msgid "Portuguese" -msgstr "Portoghese" - -#: babybuddy/settings/base.py:177 -msgid "Spanish" -msgstr "Spagnolo" - -#: babybuddy/settings/base.py:178 -msgid "Swedish" -msgstr "Svedese" - -#: babybuddy/settings/base.py:179 -msgid "Turkish" -msgstr "Turco" - -#: babybuddy/templates/admin/base_site.html:4 -#: babybuddy/templates/admin/base_site.html:7 -#: babybuddy/templates/babybuddy/nav-dropdown.html:336 -msgid "Database Admin" -msgstr "Database Admin" +#: babybuddy/templates/403.html:12 +msgid "You do not have permission to access this resource.\n" +" Contact a site administrator for assistance." +msgstr "Non hai l'autorizzazione ad accedere a questa risorsa.\n" +"Contatta l'amministratore per assistenza." #: babybuddy/templates/babybuddy/base.html:36 msgid "Home" @@ -214,36 +117,32 @@ msgstr "Invia" #: babybuddy/templates/babybuddy/messages.html:18 #: babybuddy/templates/babybuddy/user_settings_form.html:19 -#, python-format msgid "Error: %(error)s" msgstr "Errore: %(error)s" #: babybuddy/templates/babybuddy/messages.html:23 -#: babybuddy/templates/babybuddy/user_settings_form.html:26 -msgid "Error: Some fields have errors. See below for details." -msgstr "" -"Errore: Alcuni campi contengono errori. I dettagli sono " -"riportati di seguito." +msgid "Error: Some fields have errors. See below for details. " +msgstr "Errore: Alcuni campi contengono degli errori. I dettagli sono riportati di seguito." -#: babybuddy/templates/babybuddy/nav-dropdown.html:48 core/models.py:248 +#: babybuddy/templates/babybuddy/nav-dropdown.html:51 core/models.py:248 #: core/models.py:252 msgid "Diaper Change" msgstr "Cambio Pannolino" -#: babybuddy/templates/babybuddy/nav-dropdown.html:54 -#: babybuddy/templates/babybuddy/nav-dropdown.html:259 core/models.py:312 +#: babybuddy/templates/babybuddy/nav-dropdown.html:57 +#: babybuddy/templates/babybuddy/nav-dropdown.html:281 core/models.py:312 #: core/models.py:316 core/templates/core/timer_detail.html:43 msgid "Feeding" msgstr "Pasto" -#: babybuddy/templates/babybuddy/nav-dropdown.html:60 -#: babybuddy/templates/babybuddy/nav-dropdown.html:135 core/models.py:396 +#: babybuddy/templates/babybuddy/nav-dropdown.html:63 +#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:396 #: core/models.py:407 core/models.py:411 core/templates/core/note_list.html:29 msgid "Note" msgstr "Note" -#: babybuddy/templates/babybuddy/nav-dropdown.html:66 -#: babybuddy/templates/babybuddy/nav-dropdown.html:280 +#: babybuddy/templates/babybuddy/nav-dropdown.html:69 +#: babybuddy/templates/babybuddy/nav-dropdown.html:288 #: babybuddy/templates/babybuddy/welcome.html:42 core/models.py:467 #: core/models.py:468 core/models.py:471 #: core/templates/core/sleep_confirm_delete.html:7 @@ -253,8 +152,8 @@ msgstr "Note" msgid "Sleep" msgstr "Riposo" -#: babybuddy/templates/babybuddy/nav-dropdown.html:72 -#: babybuddy/templates/babybuddy/nav-dropdown.html:293 +#: babybuddy/templates/babybuddy/nav-dropdown.html:81 +#: babybuddy/templates/babybuddy/nav-dropdown.html:301 #: babybuddy/templates/babybuddy/welcome.html:50 core/models.py:647 #: core/models.py:648 core/models.py:651 #: core/templates/core/timer_detail.html:59 @@ -266,15 +165,24 @@ msgstr "Riposo" msgid "Tummy Time" msgstr "Tummy Time" -#: babybuddy/templates/babybuddy/nav-dropdown.html:96 -#: core/templates/timeline/timeline.html:4 -#: core/templates/timeline/timeline.html:7 -#: dashboard/templates/dashboard/child_button_group.html:9 -msgid "Timeline" -msgstr "Andamento temporale" +#: babybuddy/templates/babybuddy/nav-dropdown.html:87 +#: babybuddy/templates/babybuddy/nav-dropdown.html:193 core/models.py:673 +#: core/models.py:685 core/models.py:686 core/models.py:689 +#: core/templates/core/weight_confirm_delete.html:7 +#: core/templates/core/weight_form.html:13 +#: core/templates/core/weight_list.html:4 +#: core/templates/core/weight_list.html:7 +#: core/templates/core/weight_list.html:12 +#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 +#: reports/graphs/weight_change.py:30 +#: reports/templates/reports/report_list.html:22 +#: reports/templates/reports/weight_change.html:4 +#: reports/templates/reports/weight_change.html:8 +msgid "Weight" +msgstr "Peso" -#: babybuddy/templates/babybuddy/nav-dropdown.html:107 -#: babybuddy/templates/babybuddy/nav-dropdown.html:115 core/models.py:188 +#: babybuddy/templates/babybuddy/nav-dropdown.html:129 +#: babybuddy/templates/babybuddy/nav-dropdown.html:137 core/models.py:188 #: core/templates/core/child_confirm_delete.html:7 #: core/templates/core/child_detail.html:7 #: core/templates/core/child_form.html:13 core/templates/core/child_list.html:4 @@ -284,7 +192,7 @@ msgstr "Andamento temporale" msgid "Children" msgstr "Bambino" -#: babybuddy/templates/babybuddy/nav-dropdown.html:121 core/models.py:137 +#: babybuddy/templates/babybuddy/nav-dropdown.html:143 core/models.py:137 #: core/models.py:187 core/models.py:221 core/models.py:274 core/models.py:335 #: core/models.py:367 core/models.py:394 core/models.py:426 core/models.py:450 #: core/models.py:503 core/models.py:537 core/models.py:630 core/models.py:671 @@ -303,7 +211,7 @@ msgstr "Bambino" msgid "Child" msgstr "Figlio" -#: babybuddy/templates/babybuddy/nav-dropdown.html:129 core/models.py:143 +#: babybuddy/templates/babybuddy/nav-dropdown.html:151 core/models.py:143 #: core/models.py:240 core/models.py:304 core/models.py:343 core/models.py:373 #: core/models.py:408 core/models.py:430 core/models.py:458 core/models.py:511 #: core/models.py:677 core/templates/core/note_confirm_delete.html:7 @@ -312,118 +220,24 @@ msgstr "Figlio" msgid "Notes" msgstr "Note" -#: babybuddy/templates/babybuddy/nav-dropdown.html:149 -msgid "Measurements" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:139 -#: core/models.py:151 core/models.py:152 core/models.py:155 -#: core/templates/core/bmi_confirm_delete.html:7 -#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 -#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 -#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 -#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 -#: reports/templates/reports/bmi_change.html:8 -msgid "BMI" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:163 -#, fuzzy -#| msgid "Sleep entry" -msgid "BMI entry" -msgstr "Aggiungi Riposo" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:171 core/models.py:338 -#: core/models.py:351 core/models.py:352 core/models.py:355 -#: core/templates/core/head_circumference_confirm_delete.html:7 -#: core/templates/core/head_circumference_form.html:13 -#: core/templates/core/head_circumference_list.html:4 -#: core/templates/core/head_circumference_list.html:7 -#: core/templates/core/head_circumference_list.html:12 -#: core/templates/core/head_circumference_list.html:29 -#: reports/graphs/head_circumference_change.py:19 -#: reports/graphs/head_circumference_change.py:30 -#: reports/templates/reports/head_circumference_change.html:4 -#: reports/templates/reports/head_circumference_change.html:8 -#: reports/templates/reports/report_list.html:16 -msgid "Head Circumference" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:177 -msgid "Head Circumference entry" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:185 core/models.py:369 -#: core/models.py:381 core/models.py:382 core/models.py:385 -#: core/templates/core/height_confirm_delete.html:7 -#: core/templates/core/height_form.html:13 -#: core/templates/core/height_list.html:4 -#: core/templates/core/height_list.html:7 -#: core/templates/core/height_list.html:12 -#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 -#: reports/graphs/height_change.py:30 -#: reports/templates/reports/height_change.html:4 -#: reports/templates/reports/height_change.html:8 -#: reports/templates/reports/report_list.html:17 -#, fuzzy -#| msgid "Weight" -msgid "Height" -msgstr "Peso" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:191 -#, fuzzy -#| msgid "Weight entry" -msgid "Height entry" -msgstr "Pesata" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:199 core/models.py:506 -#: core/models.py:519 core/models.py:520 core/models.py:523 -#: core/templates/core/temperature_confirm_delete.html:7 -#: core/templates/core/temperature_form.html:13 -#: core/templates/core/temperature_list.html:4 -#: core/templates/core/temperature_list.html:7 -#: core/templates/core/temperature_list.html:12 -#: core/templates/core/temperature_list.html:29 -msgid "Temperature" -msgstr "Temperatura" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:205 -msgid "Temperature reading" -msgstr "Lettura temperatura" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:213 core/models.py:673 -#: core/models.py:685 core/models.py:686 core/models.py:689 -#: core/templates/core/weight_confirm_delete.html:7 -#: core/templates/core/weight_form.html:13 -#: core/templates/core/weight_list.html:4 -#: core/templates/core/weight_list.html:7 -#: core/templates/core/weight_list.html:12 -#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 -#: reports/graphs/weight_change.py:30 -#: reports/templates/reports/report_list.html:22 -#: reports/templates/reports/weight_change.html:4 -#: reports/templates/reports/weight_change.html:8 -msgid "Weight" -msgstr "Peso" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:219 +#: babybuddy/templates/babybuddy/nav-dropdown.html:199 msgid "Weight entry" msgstr "Pesata" -#: babybuddy/templates/babybuddy/nav-dropdown.html:233 +#: babybuddy/templates/babybuddy/nav-dropdown.html:255 msgid "Activities" msgstr "Azioni" -#: babybuddy/templates/babybuddy/nav-dropdown.html:240 +#: babybuddy/templates/babybuddy/nav-dropdown.html:262 #: reports/graphs/diaperchange_lifetimes.py:27 msgid "Changes" msgstr "Cambi" -#: babybuddy/templates/babybuddy/nav-dropdown.html:246 +#: babybuddy/templates/babybuddy/nav-dropdown.html:268 msgid "Change" msgstr "Cambio" -#: babybuddy/templates/babybuddy/nav-dropdown.html:253 +#: babybuddy/templates/babybuddy/nav-dropdown.html:275 #: babybuddy/templates/babybuddy/welcome.html:34 core/models.py:313 #: core/templates/core/feeding_confirm_delete.html:7 #: core/templates/core/feeding_form.html:13 @@ -433,33 +247,15 @@ msgstr "Cambio" msgid "Feedings" msgstr "Pasti" -#: babybuddy/templates/babybuddy/nav-dropdown.html:267 core/models.py:437 -#: core/models.py:438 core/models.py:441 -#: core/templates/core/pumping_confirm_delete.html:7 -#: core/templates/core/pumping_form.html:13 -#: core/templates/core/pumping_list.html:4 -#: core/templates/core/pumping_list.html:7 -#: core/templates/core/pumping_list.html:12 -#: reports/templates/reports/pumping_amounts.html:4 -#: reports/templates/reports/pumping_amounts.html:8 -msgid "Pumping" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:273 -#, fuzzy -#| msgid "Weight entry" -msgid "Pumping entry" -msgstr "Pesata" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:286 +#: babybuddy/templates/babybuddy/nav-dropdown.html:294 msgid "Sleep entry" msgstr "Aggiungi Riposo" -#: babybuddy/templates/babybuddy/nav-dropdown.html:299 +#: babybuddy/templates/babybuddy/nav-dropdown.html:307 msgid "Tummy Time entry" msgstr "Aggiungi Tummy Time" -#: babybuddy/templates/babybuddy/nav-dropdown.html:323 +#: babybuddy/templates/babybuddy/nav-dropdown.html:346 #: babybuddy/templates/babybuddy/user_list.html:17 #: babybuddy/templates/babybuddy/user_password_form.html:7 #: babybuddy/templates/babybuddy/user_settings_form.html:7 core/models.py:556 @@ -467,23 +263,23 @@ msgstr "Aggiungi Tummy Time" msgid "User" msgstr "Utente" -#: babybuddy/templates/babybuddy/nav-dropdown.html:325 +#: babybuddy/templates/babybuddy/nav-dropdown.html:348 msgid "Password" msgstr "Password" -#: babybuddy/templates/babybuddy/nav-dropdown.html:329 +#: babybuddy/templates/babybuddy/nav-dropdown.html:352 msgid "Logout" msgstr "Logout" -#: babybuddy/templates/babybuddy/nav-dropdown.html:332 +#: babybuddy/templates/babybuddy/nav-dropdown.html:355 msgid "Site" msgstr "Sito" -#: babybuddy/templates/babybuddy/nav-dropdown.html:333 +#: babybuddy/templates/babybuddy/nav-dropdown.html:356 msgid "API Browser" msgstr "API Browser" -#: babybuddy/templates/babybuddy/nav-dropdown.html:335 +#: babybuddy/templates/babybuddy/nav-dropdown.html:358 #: babybuddy/templates/babybuddy/user_confirm_delete.html:7 #: babybuddy/templates/babybuddy/user_form.html:13 #: babybuddy/templates/babybuddy/user_list.html:4 @@ -491,15 +287,19 @@ msgstr "API Browser" msgid "Users" msgstr "Utenti" -#: babybuddy/templates/babybuddy/nav-dropdown.html:338 +#: babybuddy/templates/babybuddy/nav-dropdown.html:250 +msgid "Backend Admin" +msgstr "Backend Admin" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:361 msgid "Support" msgstr "Supporto" -#: babybuddy/templates/babybuddy/nav-dropdown.html:340 +#: babybuddy/templates/babybuddy/nav-dropdown.html:363 msgid "Source Code" msgstr "Codice Sorgente" -#: babybuddy/templates/babybuddy/nav-dropdown.html:342 +#: babybuddy/templates/babybuddy/nav-dropdown.html:365 msgid "Chat / Support" msgstr "Chat / Supporto" @@ -510,7 +310,6 @@ msgstr "Chat / Supporto" #: core/templates/timeline/_timeline.html:73 #: dashboard/templates/cards/feeding_day.html:43 #: dashboard/templates/cards/feeding_last_method.html:34 -#: dashboard/templates/cards/sleep_recent.html:43 #: dashboard/templates/cards/statistics.html:34 msgid "Previous" msgstr "Precedente" @@ -522,7 +321,6 @@ msgstr "Precedente" #: core/templates/timeline/_timeline.html:80 #: dashboard/templates/cards/feeding_day.html:47 #: dashboard/templates/cards/feeding_last_method.html:38 -#: dashboard/templates/cards/sleep_recent.html:47 #: dashboard/templates/cards/statistics.html:38 msgid "Next" msgstr "Successivo" @@ -578,13 +376,8 @@ msgstr "Elimina" #: core/templates/core/timer_confirm_delete.html:17 #: core/templates/core/tummytime_confirm_delete.html:14 #: core/templates/core/weight_confirm_delete.html:14 -#, python-format -msgid "" -"

Are you sure you want to delete %(object)s?

" -msgstr "" -"

Sei sicuro di voler eliminare %(object)s?

" +msgid "

Are you sure you want to delete %(object)s?

" +msgstr "

Sei sicuro di voler eliminare %(object)s?

" #: babybuddy/templates/babybuddy/user_confirm_delete.html:19 #: core/templates/core/bmi_confirm_delete.html:18 @@ -640,7 +433,6 @@ msgstr "Aggiorna" #: core/templates/core/timer_form.html:18 #: core/templates/core/tummytime_form.html:23 #: core/templates/core/weight_form.html:23 -#, python-format msgid "

Update %(object)s

" msgstr "

Aggiorna %(object)s

" @@ -670,7 +462,7 @@ msgstr "Attivo" #: babybuddy/templates/babybuddy/user_list.html:23 #: core/templates/core/bmi_list.html:24 core/templates/core/bmi_list.html:38 #: core/templates/core/child_list.html:28 -#: core/templates/core/child_list.html:43 +#: core/templates/core/child_list.html:48 #: core/templates/core/diaperchange_list.html:24 #: core/templates/core/diaperchange_list.html:40 #: core/templates/core/feeding_list.html:24 @@ -708,6 +500,11 @@ msgstr "Cambia Password" msgid "User Settings" msgstr "Impostazioni Utente" +#: babybuddy/templates/babybuddy/messages.html:23 +#: babybuddy/templates/babybuddy/user_settings_form.html:26 +msgid "Error: Some fields have errors. See below for details." +msgstr "Errore: Alcuni campi contengono errori. I dettagli sono riportati di seguito." + #: babybuddy/templates/babybuddy/user_settings_form.html:33 msgid "User Profile" msgstr "Profilo Utente" @@ -734,12 +531,10 @@ msgid "Welcome to Baby Buddy!" msgstr "Benvenuto in Baby Buddy!" #: babybuddy/templates/babybuddy/welcome.html:14 -msgid "" -"Learn about and predict baby's needs without (as much) guess work " -"by using Baby Buddy to track —" -msgstr "" -"Conosci di più e predici le necessità del tuo bimbo senza (troppo) " -"indovinare usando Baby Buddy per tracciare —" +msgid "Learn about and predict baby's needs without\n" +" (as much) guess work by using Baby Buddy to track —" +msgstr "Impara e predici le necessita del bambino senza\n" +" (troppo) indovinare usando Baby Buddy per tracciare —" #: babybuddy/templates/babybuddy/welcome.html:26 core/models.py:249 #: core/templates/core/diaperchange_confirm_delete.html:7 @@ -751,20 +546,14 @@ msgstr "" msgid "Diaper Changes" msgstr "Cambio Pannolino" -#: babybuddy/templates/babybuddy/welcome.html:56 -msgid "" -"As the amount of entries grows, Baby Buddy will help parents and caregivers " -"to identify small patterns in baby's habits using the dashboard and graphs. " -"Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and " -"dads with 2AM feedings and changings. To get started, just click the button " -"below to add your first (or second, third, etc.) child!" -msgstr "" -"Con l'incremento dei dati inseriti, Baby Buddy aiuterà i genitori a " -"identificare piccoli modelli nelle abitudini del bebè usando la dashboard e " -"i grafici. Baby Buddy è mobile-friendly e utilizza un tema scuro per non " -"affaticare gli occhi dei genitori alle 2 di notte durante il cambio " -"pannolino o l'allattamento. Per iniziare, clicca il tasto qui sotto per " -"aggiungere il primo figlio (poi il secondo, il terzo, etc..) !" +#: babybuddy/templates/babybuddy/welcome.html:54 +msgid "As the amount of entries grows, Baby Buddy will help\n" +" parents and caregivers to identify small patterns in baby's habits\n" +" using the dashboard and graphs. Baby Buddy is mobile-friendly and\n" +" uses a dark theme to help weary moms and dads with 2AM feedings and\n" +" changings. To get started, just click the button below to add your\n" +" first (or second, third, etc.) child!" +msgstr "Con l'incremento dei dati inseriti, Baby Buddy aiuterà i genitori a identificare piccoli modelli nelle abitudini del bebè usando la dashboard e i grafici. Baby Buddy è mobile-friendly e utilizza un tema scuro per non affaticare gli occhi dei genitori alle 2 di notte durante il cambio pannolino o l'allattamento. Per iniziare, clicca il tasto qui sotto per aggiungere il primo figlio (poi il secondo, il terzo, etc..) !" #: babybuddy/templates/babybuddy/welcome.html:68 #: core/templates/core/child_form.html:8 core/templates/core/child_form.html:18 @@ -772,52 +561,6 @@ msgstr "" msgid "Add a Child" msgstr "Aggiungi Figlio" -#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 -msgid "Bad Request" -msgstr "" - -#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 -msgid "Permission Denied" -msgstr "Permesso Negato" - -#: babybuddy/templates/error/403.html:9 -msgid "" -"You do not have permission to access this resource. Contact a site " -"administrator for assistance." -msgstr "" -"Non hai il permesso di accedere a questa risorsa. Contatta l'amministratore " -"del sito per assistenza." - -#: babybuddy/templates/error/403_csrf_bad_origin.html:14 -msgid "How to Fix" -msgstr "" - -#: babybuddy/templates/error/403_csrf_bad_origin.html:15 -#, python-format -msgid "" -"Add %(origin)s to the CSRF_TRUSTED_ORIGINS " -"environment variable. If multiple origins are required separate with commas." -msgstr "" - -#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 -msgid "Page Not Found" -msgstr "" - -#: babybuddy/templates/error/404.html:9 -#, python-format -msgid "The path %(request_path)s does not exist." -msgstr "" - -#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 -msgid "Server Error" -msgstr "" - -#: babybuddy/templates/error/base.html:14 -#, fuzzy -#| msgid "Welcome to Baby Buddy!" -msgid "Return to Baby Buddy" -msgstr "Benvenuto in Baby Buddy!" - #: babybuddy/templates/registration/login.html:32 msgid "Login" msgstr "Login" @@ -842,10 +585,11 @@ msgstr "Login" msgid "Password Reset" msgstr "Resetta password" -#: babybuddy/templates/registration/password_reset_confirm.html:13 -msgid "" -"Oh snap! The two passwords did not match. Please try again." -msgstr "Cavolo! Le password non corrispondono. Prova ancora." +#: babybuddy/templates/registration/password_reset_confirm.html:12 +msgid "

Oh snap! The\n" +" two passwords did not match. Please try again.

" +msgstr "

Cavolo! \n" +"Le password non corrispondono. Prova ancora.

" #: babybuddy/templates/registration/password_reset_confirm.html:22 msgid "Enter your new password in each field below." @@ -860,73 +604,35 @@ msgstr "Reset Password" msgid "Reset Email Sent" msgstr "Mail di recupero password inviata" -#: babybuddy/templates/registration/password_reset_done.html:9 -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Se l'account che hai inserito esiste, riceverai una mail a breve con le " -"istruzioni per impostare la tua password." - -#: babybuddy/templates/registration/password_reset_done.html:15 -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Se non hai ricevuto la mail, controlla di aver inserito l'indirizzo " -"utilizzato durante la registrazione e controlla la cartella spam." - -#: babybuddy/templates/registration/password_reset_email.html:2 -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:4 -msgid "Please go to the following page and choose a new password:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:8 -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:10 -msgid "Thanks for using Baby Buddy!" -msgstr "" +#: babybuddy/templates/registration/password_reset_done.html:8 +msgid "

We've emailed you instructions for setting your\n" +" password, if an account exists with the email you entered. You\n" +" should receive them shortly.

\n" +"

If you don't receive an email, please make sure you've\n" +" entered the address you registered with, and check your spam\n" +" folder.

" +msgstr "

Se l'account che hai inserito esiste, riceverai una mail a breve con le istruzioni per impostare la tua password.

\n" +"

Se non hai ricevuto la mail, assicurati di aver inserito la mail con cui l'account è registrato e controlla la cartella SPAM.

" #: babybuddy/templates/registration/password_reset_form.html:4 msgid "Forgot Password" msgstr "Password dimenticata" -#: babybuddy/templates/registration/password_reset_form.html:9 -msgid "" -"Enter your account email address in the form below. If the address is valid, " -"you will receive instructions for resetting your password." -msgstr "" -"Inserisci il tuo indirizzo email nel form sottostante. Se l'indirizzo email " -"è corretto, riceverai le istruzioni per resettare la password." - -#: babybuddy/views.py:43 -msgid "Forbidden" -msgstr "" - -#: babybuddy/views.py:44 -msgid "CSRF verification failed. Request aborted." -msgstr "" +#: babybuddy/templates/registration/password_reset_form.html:8 +msgid "

Enter your account email address in the\n" +" form below. If the address is valid, you will receive instructions for\n" +" resetting your password.

" +msgstr "

Inserisci la mail con cui sei registrato. Se l'indirizzo è valido riceverai le istruzioni per resettare la password.

" #: babybuddy/views.py:102 -#, python-format msgid "User %(username)s added!" msgstr "Utente %(username)s aggiunto!" #: babybuddy/views.py:113 -#, python-format msgid "User %(username)s updated." msgstr "Utente %(username)s modificato" #: babybuddy/views.py:125 -#, python-brace-format msgid "User {user} deleted." msgstr "Utente {user} eliminato." @@ -942,20 +648,10 @@ msgstr "API key utente rigenerata." msgid "Settings saved!" msgstr "Impostazioni salvate!" -#: core/filters.py:11 core/models.py:96 core/models.py:115 -msgid "Tag" -msgstr "" - #: core/forms.py:120 msgid "Name does not match child name." msgstr "Il nome non corrisponde con il nome del figlio." -#: core/forms.py:136 -msgid "" -"Click on the tags to add (+) or remove (-) tags or use the text editor to " -"create new tags." -msgstr "" - #: core/models.py:28 msgid "Date can not be in the future." msgstr "La data non può essere nel futuro." @@ -976,45 +672,6 @@ msgstr "Un'altra voce interseca il periodo specificato." msgid "Date/time can not be in the future." msgstr "La data non può essere nel futuro." -#: core/models.py:84 core/models.py:237 -#: core/templates/core/diaperchange_list.html:30 -msgid "Color" -msgstr "Colore" - -#: core/models.py:90 -#, fuzzy -#| msgid "Last Name" -msgid "Last used" -msgstr "Cognome" - -#: core/models.py:97 core/templates/core/bmi_list.html:30 -#: core/templates/core/diaperchange_list.html:32 -#: core/templates/core/feeding_list.html:35 -#: core/templates/core/head_circumference_list.html:30 -#: core/templates/core/height_list.html:30 -#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 -#: core/templates/core/temperature_list.html:30 -#: core/templates/core/tummytime_list.html:31 -#: core/templates/core/weight_list.html:30 -msgid "Tags" -msgstr "" - -#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 -#: core/templates/core/bmi_list.html:25 -#: core/templates/core/feeding_list.html:25 -#: core/templates/core/head_circumference_list.html:25 -#: core/templates/core/height_list.html:25 -#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 -#: reports/graphs/diaperchange_amounts.py:37 -#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 -#: reports/graphs/feeding_duration.py:56 -#: reports/graphs/head_circumference_change.py:28 -#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:60 -#: reports/graphs/sleep_pattern.py:153 reports/graphs/sleep_totals.py:59 -#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 -msgid "Date" -msgstr "Data" - #: core/models.py:163 msgid "First name" msgstr "Nome" @@ -1069,11 +726,14 @@ msgstr "Verde" msgid "Yellow" msgstr "Giallo" -#: core/models.py:239 core/models.py:303 core/models.py:428 -#: core/templates/core/diaperchange_list.html:31 -#: core/templates/core/pumping_list.html:29 -msgid "Amount" -msgstr "Quantità" +#: core/models.py:84 core/models.py:237 +#: core/templates/core/diaperchange_list.html:30 +msgid "Color" +msgstr "Colore" + +#: core/models.py:180 +msgid "Wet and/or solid is required." +msgstr "è richiesta la scelta liquida e/o solida" #: core/models.py:276 core/models.py:453 core/models.py:543 core/models.py:632 msgid "Start time" @@ -1099,14 +759,6 @@ msgstr "Latte Materno" msgid "Formula" msgstr "Latte Artificiale" -#: core/models.py:285 -msgid "Fortified breast milk" -msgstr "Latte Artificale 1" - -#: core/models.py:286 -msgid "Solid food" -msgstr "Cibo solido" - #: core/models.py:289 core/templates/core/feeding_list.html:30 msgid "Type" msgstr "Tipo" @@ -1123,25 +775,19 @@ msgstr "Seno Sinistro" msgid "Right breast" msgstr "Seno Destro" -#: core/models.py:296 -msgid "Both breasts" -msgstr "Entrambi i seni" - -#: core/models.py:297 -msgid "Parent fed" -msgstr "Imboccato dai genitori" - -#: core/models.py:298 -msgid "Self fed" -msgstr "Mangia da solo" - #: core/models.py:301 core/templates/core/feeding_list.html:29 msgid "Method" msgstr "Metodo" -#: core/models.py:452 -msgid "Napping" -msgstr "" +#: core/models.py:239 core/models.py:303 core/models.py:428 +#: core/templates/core/diaperchange_list.html:31 +#: core/templates/core/pumping_list.html:29 +msgid "Amount" +msgstr "Quantità" + +#: core/models.py:243 +msgid "Only \"Bottle\" method is allowed with \"Formula\" type." +msgstr "Quando è selezionato \"Ciuccia\" è disponibile solo il latte artificiale" #: core/models.py:540 core/templates/core/timer_list.html:25 msgid "Name" @@ -1161,7 +807,6 @@ msgid "Timers" msgstr "Timers" #: core/models.py:568 -#, python-brace-format msgid "Timer #{id}" msgstr "Timer #{id}" @@ -1169,28 +814,21 @@ msgstr "Timer #{id}" msgid "Milestone" msgstr "Traguardo" -#: core/templates/core/bmi_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Sleep Entry" -msgid "Delete a BMI Entry" -msgstr "Elimina un Riposo" - -#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 -#: core/templates/core/bmi_form.html:27 -#, fuzzy -#| msgid "Add a Sleep Entry" -msgid "Add a BMI Entry" -msgstr "Aggiungi un Riposo" - -#: core/templates/core/bmi_list.html:15 -msgid "Add BMI" -msgstr "" - -#: core/templates/core/bmi_list.html:70 -#, fuzzy -#| msgid "No timer entries found." -msgid "No BMI entries found." -msgstr "Nessuna voce timer trovata." +#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 +#: core/templates/core/bmi_list.html:25 +#: core/templates/core/feeding_list.html:25 +#: core/templates/core/head_circumference_list.html:25 +#: core/templates/core/height_list.html:25 +#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 +#: reports/graphs/diaperchange_amounts.py:37 +#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 +#: reports/graphs/feeding_duration.py:56 +#: reports/graphs/head_circumference_change.py:28 +#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:58 +#: reports/graphs/sleep_pattern.py:151 reports/graphs/sleep_totals.py:59 +#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 +msgid "Date" +msgstr "Data" #: core/templates/core/child_confirm_delete.html:4 msgid "Delete a Child" @@ -1198,9 +836,7 @@ msgstr "Elimina Figlio" #: core/templates/core/child_confirm_delete.html:20 msgid "To confirm this action. Type the full name of the child below." -msgstr "" -"Per confermare questa azione è richiesto l'inserimento del nome completo del " -"figlio." +msgstr "Per confermare questa azione è richiesto l'inserimento del nome completo del figlio." #: core/templates/core/child_detail.html:23 #: dashboard/templates/dashboard/dashboard.html:32 @@ -1212,15 +848,15 @@ msgstr "Nato" msgid "Age" msgstr "Età" -#: core/templates/core/child_list.html:15 -msgid "Add Child" -msgstr "Aggiungi Bimbo" +#: core/templates/timeline/_timeline.html:38 +msgid "%(since)s ago (%(time)s)" +msgstr "%(since)s fa (%(time)s)" #: core/templates/core/child_list.html:27 msgid "Birth Date" msgstr "Data di nascita" -#: core/templates/core/child_list.html:62 +#: core/templates/core/child_list.html:67 msgid "No children found." msgstr "Nessun figlio trovato." @@ -1245,18 +881,14 @@ msgstr "Aggiungi cambio pannolino" msgid "Add" msgstr "Aggiungi" -#: core/templates/core/diaperchange_list.html:15 -msgid "Add Diaper Change" -msgstr "Aggiungi Cambio Pannolino" - -#: core/templates/core/diaperchange_list.html:29 -msgid "Contents" -msgstr "Contenuto" - #: core/templates/core/diaperchange_list.html:77 msgid "No diaper changes found." msgstr "Nessun cambio pannolino trovato." +#: core/templates/core/diaperchange_list.html:63 +msgid "Add a Change" +msgstr "Aggiungi un Cambio" + #: core/templates/core/feeding_confirm_delete.html:4 msgid "Delete a Feeding" msgstr "Elimina Pasto" @@ -1270,10 +902,6 @@ msgstr "Aggiorna Pasto" msgid "Add a Feeding" msgstr "Aggiungi Pasto" -#: core/templates/core/feeding_list.html:15 -msgid "Add Feeding" -msgstr "Aggiungi Pasto" - #: core/templates/core/feeding_list.html:33 msgid "Amt." msgstr "Qtà" @@ -1282,56 +910,6 @@ msgstr "Qtà" msgid "No feedings found." msgstr "Nessun pasto trovato." -#: core/templates/core/head_circumference_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Tummy Time Entry" -msgid "Delete a Head Circumference Entry" -msgstr "Elimina una voce Tummy Time" - -#: core/templates/core/head_circumference_form.html:8 -#: core/templates/core/head_circumference_form.html:17 -#: core/templates/core/head_circumference_form.html:27 -#, fuzzy -#| msgid "Add a Temperature Entry" -msgid "Add a Head Circumference Entry" -msgstr "Aggiungi una Voce Temperatura" - -#: core/templates/core/head_circumference_list.html:15 -msgid "Add Head Circumference" -msgstr "" - -#: core/templates/core/head_circumference_list.html:70 -#, fuzzy -#| msgid "No timer entries found." -msgid "No head circumference entries found." -msgstr "Nessuna voce timer trovata." - -#: core/templates/core/height_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Weight Entry" -msgid "Delete a Height Entry" -msgstr "Elimina una Pesata" - -#: core/templates/core/height_form.html:8 -#: core/templates/core/height_form.html:17 -#: core/templates/core/height_form.html:27 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add a Height Entry" -msgstr "Aggiungi una Pesata" - -#: core/templates/core/height_list.html:15 -#, fuzzy -#| msgid "Add Weight" -msgid "Add Height" -msgstr "Aggiungi Peso" - -#: core/templates/core/height_list.html:70 -#, fuzzy -#| msgid "No weight entries found." -msgid "No height entries found." -msgstr "Nessuna pesata trovata." - #: core/templates/core/note_confirm_delete.html:4 msgid "Delete a Note" msgstr "Elimina una nota" @@ -1344,53 +922,10 @@ msgstr "Aggiorna una nota" msgid "Add a Note" msgstr "Aggiungi una nota" -#: core/templates/core/note_list.html:15 -msgid "Add Note" -msgstr "Aggiungi Nota" - #: core/templates/core/note_list.html:64 msgid "No notes found." msgstr "Nessuna nota trovata." -#: core/templates/core/pumping_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Weight Entry" -msgid "Delete a Pumping Entry" -msgstr "Elimina una Pesata" - -#: core/templates/core/pumping_form.html:8 -#: core/templates/core/pumping_form.html:17 -#: core/templates/core/pumping_form.html:27 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add a Pumping Entry" -msgstr "Aggiungi una Pesata" - -#: core/templates/core/pumping_list.html:15 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add Pumping Entry" -msgstr "Aggiungi una Pesata" - -#: core/templates/core/pumping_list.html:66 -#, fuzzy -#| msgid "No timer entries found." -msgid "No pumping entries found." -msgstr "Nessuna voce timer trovata." - -#: core/templates/core/quick_timer_nav.html:9 -#: core/templates/core/quick_timer_nav.html:29 -#: core/templates/core/timer_nav.html:37 -msgid "Quick Start Timer" -msgstr "Avvio Rapido Timer" - -#: core/templates/core/quick_timer_nav.html:19 -#: core/templates/core/timer_nav.html:28 -#, fuzzy -#| msgid "Quick Start Timer" -msgid "Quick Start Timer For…" -msgstr "Avvio Rapido Timer" - #: core/templates/core/sleep_confirm_delete.html:4 msgid "Delete a Sleep Entry" msgstr "Elimina un Riposo" @@ -1403,10 +938,6 @@ msgstr "Aggiorna un Riposo" msgid "Add a Sleep Entry" msgstr "Aggiungi un Riposo" -#: core/templates/core/sleep_list.html:15 -msgid "Add Sleep" -msgstr "Aggiungi Riposo" - #: core/templates/core/sleep_list.html:25 #: core/templates/core/timer_form.html:12 #: core/templates/core/timer_list.html:24 @@ -1428,48 +959,10 @@ msgstr "Pisolino" msgid "No sleep entries found." msgstr "Nessun riposo trovato" -#: core/templates/core/temperature_confirm_delete.html:4 -msgid "Delete a Temperature Reading" -msgstr "Elimina una Lettura Temperatura" - -#: core/templates/core/temperature_form.html:8 -#: core/templates/core/temperature_form.html:17 -msgid "Add a Temperature Reading" -msgstr "Aggiungi una Lettura Temperatura" - -#: core/templates/core/temperature_form.html:27 -msgid "Add a Temperature Entry" -msgstr "Aggiungi una Voce Temperatura" - -#: core/templates/core/temperature_list.html:15 -msgid "Add Temperature Reading" -msgstr "Aggiungi Lettura Temperatura Corporea" - -#: core/templates/core/temperature_list.html:70 -msgid "No temperature entries found." -msgstr "Nessuna voce temperatura trovata." - #: core/templates/core/timer_confirm_delete.html:5 -#, python-format msgid "Delete %(object)s" msgstr "Elimina %(object)s" -#: core/templates/core/timer_confirm_delete_inactive.html:5 -msgid "Delete All Inactive Timers" -msgstr "Elimina Tutti i Timer Inattivi" - -#: core/templates/core/timer_confirm_delete_inactive.html:10 -msgid "Delete Inactive" -msgstr "Elimina Inattivo" - -#: core/templates/core/timer_confirm_delete_inactive.html:17 -#, fuzzy, python-format -#| msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" -msgid "Are you sure you want to delete %(number)s inactive timer?" -msgid_plural "Are you sure you want to delete %(number)s inactive timers?" -msgstr[0] "Sei sicuro di voler eliminare %(number)s inattivi timer?" -msgstr[1] "Sei sicuro di voler eliminare %(number)s inattivi timer?" - #: core/templates/core/timer_detail.html:28 msgid "Started" msgstr "Partito" @@ -1478,25 +971,16 @@ msgstr "Partito" msgid "Stopped" msgstr "Fermato" -#: core/templates/core/timer_detail.html:34 -#, python-format -msgid "%(timer)s created by %(user)s" -msgstr "%(timer)s creato da %(user)s" +#: core/templates/core/timer_detail.html:26 +msgid "%(timer)s created by %(object.user)s" +msgstr "%(timer)s creato da %(object.user)" #: core/templates/core/timer_detail.html:63 msgid "Timer actions" msgstr "Azioni timer" -#: core/templates/core/timer_detail.html:77 -msgid "Restart timer" -msgstr "Riavvia timer" - -#: core/templates/core/timer_detail.html:84 -msgid "Delete timer" -msgstr "Cancella timer" - #: core/templates/core/timer_form.html:22 -#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:15 +#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:23 msgid "Start Timer" msgstr "Avvia Timer" @@ -1504,30 +988,30 @@ msgstr "Avvia Timer" msgid "No timer entries found." msgstr "Nessuna voce timer trovata." -#: core/templates/core/timer_list.html:68 -msgid "Delete Inactive Timers" -msgstr "Elimina Timer Inattivo" +#: babybuddy/templates/babybuddy/nav-dropdown.html:32 +#: core/templates/core/timer_nav.html:18 +msgid "Quick Start Timer" +msgstr "Avvio Rapido Timer" -#: core/templates/core/timer_nav.html:20 +#: core/templates/core/timer_nav.html:28 msgid "View Timers" msgstr "Vedi Timer" -#: core/templates/core/timer_nav.html:44 +#: core/templates/core/timer_nav.html:32 #: dashboard/templates/cards/timer_list.html:6 msgid "Active Timers" msgstr "Timer Attivi" -#: core/templates/core/timer_nav.html:50 +#: core/templates/core/timer_nav.html:38 #: dashboard/templates/cards/diaperchange_last.html:17 #: dashboard/templates/cards/diaperchange_types.html:12 #: dashboard/templates/cards/feeding_day.html:20 #: dashboard/templates/cards/feeding_day.html:52 #: dashboard/templates/cards/feeding_last.html:17 #: dashboard/templates/cards/feeding_last_method.html:43 +#: dashboard/templates/cards/sleep_day.html:14 #: dashboard/templates/cards/sleep_last.html:17 #: dashboard/templates/cards/sleep_naps_day.html:18 -#: dashboard/templates/cards/sleep_recent.html:20 -#: dashboard/templates/cards/sleep_recent.html:52 #: dashboard/templates/cards/tummytime_day.html:14 msgid "None" msgstr "Nessuno" @@ -1545,10 +1029,6 @@ msgstr "Aggiorna una voce Tummy Time" msgid "Add a Tummy Time Entry" msgstr "Aggiungi una voce Tummy Time" -#: core/templates/core/tummytime_list.html:15 -msgid "Add Tummy Time" -msgstr "Aggiungi Tummy Time" - #: core/templates/core/tummytime_list.html:67 msgid "No tummy time entries found." msgstr "Nessuna voce Tummy Time trovata." @@ -1563,17 +1043,1017 @@ msgstr "Elimina una Pesata" msgid "Add a Weight Entry" msgstr "Aggiungi una Pesata" -#: core/templates/core/weight_list.html:15 -msgid "Add Weight" -msgstr "Aggiungi Peso" - #: core/templates/core/weight_list.html:70 msgid "No weight entries found." msgstr "Nessuna pesata trovata." +#: core/timeline.py:164 +msgid "%(child)s had a diaper change." +msgstr "%(child)s ha il pannolino da cambiare." + +#: core/timeline.py:145 +msgid "%(child)s started feeding." +msgstr "%(child)s ha iniziato il pasto." + +#: core/timeline.py:158 +msgid "%(child)s finished feeding." +msgstr "%(child)s ha terminato il pasto." + +#: core/timeline.py:91 +msgid "%(child)s fell asleep." +msgstr "%(child)s ha preso sonno." + +#: core/timeline.py:103 +msgid "%(child)s woke up." +msgstr "%(child)s sveglio." + +#: core/timeline.py:53 +msgid "%(child)s started tummy time!" +msgstr "Tummy Time iniziato per %(child)s!" + +#: core/timeline.py:65 +msgid "%(child)s finished tummy time." +msgstr "Tummy Time terminato per %(child)s!" + +#: core/views.py:33 +msgid "%(model)s entry for %(child)s added!" +msgstr "%(model)s voce aggiunta per %(child)s!" + +#: core/views.py:35 core/views.py:308 +msgid "%(model)s entry added!" +msgstr "%(model)s voce aggiunta!" + +#: core/views.py:61 core/views.py:316 +msgid "%(model)s entry for %(child)s updated." +msgstr "%(model)s voce per %(child)s aggiornata." + +#: core/views.py:63 +msgid "%(model)s entry updated." +msgstr "%(model)s voce aggiornata." + +#: core/views.py:115 +msgid "%(first_name)s %(last_name)s added!" +msgstr "%(first_name)s %(last_name)s aggiunto!" + +#: core/views.py:478 +msgid "%(timer)s stopped." +msgstr "%(timer)s fermato." + +#: dashboard/templates/cards/diaperchange_last.html:6 +msgid "Last Diaper Change" +msgstr "Ultimo cambio pannolino" + +#: dashboard/templates/cards/diaperchange_last.html:8 +#: dashboard/templates/cards/feeding_last.html:8 +#: dashboard/templates/cards/sleep_last.html:8 +#: dashboard/templates/cards/tummytime_last.html:8 +msgid "%(time)s ago" +msgstr "%(time)s fa" + +#: dashboard/templates/cards/tummytime_last.html:18 +msgid "Never" +msgstr "Mai" + +#: dashboard/templates/cards/diaperchange_types.html:14 +msgid "Past Week" +msgstr "Scorsa Settimana" + +#: dashboard/templates/cards/diaperchange_types.html:27 +msgid "wet" +msgstr "liquida" + +#: dashboard/templates/cards/diaperchange_types.html:35 +msgid "solid" +msgstr "solida" + +#: dashboard/templates/cards/diaperchange_types.html:49 +msgid "today" +msgstr "oggi" + +#: dashboard/templates/cards/diaperchange_types.html:51 +msgid "yesterday" +msgstr "ieri" + +#: dashboard/templates/cards/diaperchange_types.html:53 +msgid "%(key)s days ago" +msgstr "%(key)s giorni fa" + +#: dashboard/templates/cards/feeding_last.html:6 +msgid "Last Feeding" +msgstr "Ultimo Pasto" + +#: dashboard/templates/cards/feeding_last_method.html:6 +msgid "Last Feeding Method" +msgstr "Metodo Ultimo Pasto" + +#: dashboard/templates/cards/sleep_day.html:6 +msgid "Today's Sleep" +msgstr "Riposi di Oggi" + +#: dashboard/templates/cards/sleep_day.html:11 +#: dashboard/templates/cards/sleep_naps_day.html:13 +#: dashboard/templates/cards/tummytime_day.html:11 +msgid "None yet today" +msgstr "Ancora nessuno oggi" + +#: dashboard/templates/cards/sleep_day.html:20 +msgid "%(count)s sleep entries" +msgstr "%(count)s Riposi" + +#: dashboard/templates/cards/sleep_last.html:4 +msgid "Last Slept" +msgstr "Ultimo riposo" + +#: dashboard/templates/cards/sleep_naps_day.html:6 +msgid "Today's Naps" +msgstr "Riposini di oggi" + +#: dashboard/templates/cards/sleep_naps_day.html:12 +msgid "%(count)s nap%(plural)s" +msgstr "%(count)s pisolini" + +#: dashboard/templates/cards/statistics.html:7 +msgid "Statistics" +msgstr "Statistiche" + +#: dashboard/templates/cards/statistics.html:25 +msgid "Not enough data" +msgstr "Dati non sufficienti" + +#: dashboard/templates/cards/timer_list.html:12 +msgid "%(count)s active timer%(plural)s" +msgstr "%(count)s timer attivi" + +#: dashboard/templates/cards/timer_list.html:19 +msgid "Started by %(instance.user)s at %(start)s" +msgstr "Avviato da %(instance.user)s alle %(start)" + +#: dashboard/templates/cards/tummytime_day.html:6 +msgid "Today's Tummy Time" +msgstr "Tummy Time di Oggi" + +#: dashboard/templates/cards/tummytime_day.html:22 +msgid "%(duration)s at %(end)s" +msgstr "%(duration)s alle %(end)s" + +#: dashboard/templates/cards/tummytime_last.html:6 +msgid "Last Tummy Time" +msgstr "Ultimo Tummy Time" + +#: dashboard/templates/dashboard/child_button_group.html:3 +msgid "Child actions" +msgstr "Azioni Bimbo" + +#: reports/templates/reports/diaperchange_types.html:4 +#: reports/templates/reports/diaperchange_types.html:8 +#: reports/templates/reports/report_list.html:12 +msgid "Diaper Change Types" +msgstr "Tipo Cambio Pannolino" + +#: reports/templates/reports/diaperchange_lifetimes.html:4 +#: reports/templates/reports/diaperchange_lifetimes.html:8 +#: reports/templates/reports/report_list.html:13 +msgid "Diaper Lifetimes" +msgstr "Lifetime Pannolino" + +#: reports/templates/reports/report_list.html:15 +msgid "Feeding Durations (Average)" +msgstr "Durata Pasti (Media)" + +#: reports/templates/reports/report_list.html:19 +#: reports/templates/reports/sleep_pattern.html:4 +#: reports/templates/reports/sleep_pattern.html:8 +msgid "Sleep Pattern" +msgstr "Modello Riposo" + +#: reports/templates/reports/report_list.html:20 +#: reports/templates/reports/sleep_totals.html:4 +#: reports/templates/reports/sleep_totals.html:8 +msgid "Sleep Totals" +msgstr "Riposi totali" + +#: dashboard/templatetags/cards.py:420 +msgid "Diaper change frequency" +msgstr "Frequenza cambio pannolino" + +#: dashboard/templatetags/cards.py:466 +msgid "Feeding frequency" +msgstr "Frequenza pasti" + +#: dashboard/templatetags/cards.py:328 +msgid "Average nap duration" +msgstr "Durata media riposini" + +#: dashboard/templatetags/cards.py:335 +msgid "Average naps per day" +msgstr "Media riposini al giorno" + +#: dashboard/templatetags/cards.py:345 +msgid "Average sleep duration" +msgstr "Durata media riposi" + +#: dashboard/templatetags/cards.py:352 +msgid "Average awake duration" +msgstr "Durata media bimbo sveglio" + +#: dashboard/templatetags/cards.py:362 +msgid "Weight change per week" +msgstr "Cambiamento di peso settimanale" + +#: reports/graphs/diaperchange_lifetimes.py:35 +msgid "Diaper Lifetimes" +msgstr "Lifetime Pannolino" + +#: reports/graphs/diaperchange_lifetimes.py:36 +msgid "Time between changes (hours)" +msgstr "Tempo tra i cambi (ore)" + +#: reports/graphs/diaperchange_types.py:41 reports/graphs/feeding_amounts.py:58 +msgid "Total" +msgstr "Totale" + +#: reports/graphs/diaperchange_types.py:48 +msgid "Diaper Change Types" +msgstr "Tipo di Cambio Pannolino" + +#: reports/graphs/diaperchange_types.py:51 +msgid "Number of changes" +msgstr "Numero di cambi" + +#: reports/graphs/feeding_duration.py:38 +msgid "Average duration" +msgstr "Durata media" + +#: reports/graphs/feeding_duration.py:46 +msgid "Total feedings" +msgstr "Totale pasti" + +#: reports/graphs/feeding_duration.py:55 +msgid "Average Feeding Durations" +msgstr "Durata Media Pasti" + +#: reports/graphs/feeding_duration.py:58 +msgid "Average duration (minutes)" +msgstr "Durata media (minuti)" + +#: reports/graphs/feeding_duration.py:60 +msgid "Number of feedings" +msgstr "Numero di pasti" + +#: reports/graphs/sleep_pattern.py:148 +msgid "Sleep Pattern" +msgstr "Modello Riposo" + +#: reports/graphs/sleep_pattern.py:165 +msgid "Time of day" +msgstr "Ora del giorno" + +#: reports/graphs/sleep_totals.py:48 +msgid "Total sleep" +msgstr "Totale Riposo" + +#: reports/graphs/sleep_totals.py:58 +msgid "Sleep Totals" +msgstr "Riposo Totale" + +#: reports/graphs/sleep_totals.py:61 +msgid "Hours of sleep" +msgstr "Ore di riposo" + +#: reports/graphs/weight_change.py:27 +msgid "Weight" +msgstr "Peso" + +#: reports/templates/reports/feeding_duration.html:4 +#: reports/templates/reports/feeding_duration.html:8 +msgid "Average Feeding Durations" +msgstr "Durata Media Pasti" + +#: dashboard/templates/dashboard/child_button_group.html:12 +#: reports/templates/reports/base.html:9 +#: reports/templates/reports/report_list.html:4 +msgid "Reports" +msgstr "Report" + +#: reports/templates/reports/report_base.html:19 +msgid "There is no enough data to generate this report." +msgstr "Non ci sono abbastanza dati per generare questo report." + +#: core/models.py:296 +msgid "Both breasts" +msgstr "Entrambi i seni" + +#: babybuddy/settings/base.py:173 +msgid "German" +msgstr "Tedesco" + +#: babybuddy/settings/base.py:177 +msgid "Spanish" +msgstr "Spagnolo" + +#: babybuddy/settings/base.py:178 +msgid "Swedish" +msgstr "Svedese" + +#: babybuddy/settings/base.py:179 +msgid "Turkish" +msgstr "Turco" + +#: babybuddy/templates/error/403.html:9 +msgid "You do not have permission to access this resource. Contact a site administrator for assistance." +msgstr "Non hai il permesso di accedere a questa risorsa. Contatta l'amministratore del sito per assistenza." + +#: babybuddy/templates/babybuddy/nav-dropdown.html:75 +#: babybuddy/templates/babybuddy/nav-dropdown.html:179 core/models.py:506 +#: core/models.py:519 core/models.py:520 core/models.py:523 +#: core/templates/core/temperature_confirm_delete.html:7 +#: core/templates/core/temperature_form.html:13 +#: core/templates/core/temperature_list.html:4 +#: core/templates/core/temperature_list.html:7 +#: core/templates/core/temperature_list.html:12 +#: core/templates/core/temperature_list.html:29 +msgid "Temperature" +msgstr "Temperatura" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:185 +msgid "Temperature reading" +msgstr "Lettura temperatura" + +#: babybuddy/templates/babybuddy/welcome.html:14 +msgid "Learn about and predict baby's needs without (as much) guess work by using Baby Buddy to track —" +msgstr "Conosci di più e predici le necessità del tuo bimbo senza (troppo) indovinare usando Baby Buddy per tracciare —" + +#: babybuddy/templates/babybuddy/welcome.html:56 +msgid "As the amount of entries grows, Baby Buddy will help parents and caregivers to identify small patterns in baby's habits using the dashboard and graphs. Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and dads with 2AM feedings and changings. To get started, just click the button below to add your first (or second, third, etc.) child!" +msgstr "Con l'incremento dei dati inseriti, Baby Buddy aiuterà i genitori a identificare piccoli modelli nelle abitudini del bebè usando la dashboard e i grafici. Baby Buddy è mobile-friendly e utilizza un tema scuro per non affaticare gli occhi dei genitori alle 2 di notte durante il cambio pannolino o l'allattamento. Per iniziare, clicca il tasto qui sotto per aggiungere il primo figlio (poi il secondo, il terzo, etc..) !" + +#: babybuddy/templates/registration/password_reset_confirm.html:13 +msgid "Oh snap! The two passwords did not match. Please try again." +msgstr "Cavolo! Le password non corrispondono. Prova ancora." + +#: babybuddy/templates/registration/password_reset_done.html:9 +msgid "We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly." +msgstr "Se l'account che hai inserito esiste, riceverai una mail a breve con le istruzioni per impostare la tua password." + +#: babybuddy/templates/registration/password_reset_done.html:15 +msgid "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder." +msgstr "Se non hai ricevuto la mail, controlla di aver inserito l'indirizzo utilizzato durante la registrazione e controlla la cartella spam." + +#: babybuddy/templates/registration/password_reset_form.html:9 +msgid "Enter your account email address in the form below. If the address is valid, you will receive instructions for resetting your password." +msgstr "Inserisci il tuo indirizzo email nel form sottostante. Se l'indirizzo email è corretto, riceverai le istruzioni per resettare la password." + +#: core/models.py:285 +msgid "Fortified breast milk" +msgstr "Latte Artificale 1" + +#: core/templates/core/temperature_confirm_delete.html:4 +msgid "Delete a Temperature Reading" +msgstr "Elimina una Lettura Temperatura" + +#: core/templates/core/temperature_form.html:8 +#: core/templates/core/temperature_form.html:17 +msgid "Add a Temperature Reading" +msgstr "Aggiungi una Lettura Temperatura" + +#: core/templates/core/temperature_form.html:27 +msgid "Add a Temperature Entry" +msgstr "Aggiungi una Voce Temperatura" + +#: core/templates/core/temperature_list.html:70 +msgid "No temperature entries found." +msgstr "Nessuna voce temperatura trovata." + +#: core/templates/core/timer_detail.html:34 +msgid "%(timer)s created by %(user)s" +msgstr "%(timer)s creato da %(user)s" + +#: core/utils.py:40 +msgid "%(hours)s hour" +msgid_plural "%(hours)s hours" +msgstr[0] "%(hours)s ora" +msgstr[1] "%(hours)s ore" + +#: core/utils.py:44 +msgid "%(minutes)s minute" +msgid_plural "%(minutes)s minutes" +msgstr[0] "%(minutes)s minuto" +msgstr[1] "%(minutes)s minuti" + +#: core/utils.py:50 +msgid "%(seconds)s second" +msgid_plural "%(seconds)s seconds" +msgstr[0] "%(seconds)s secondo" +msgstr[1] "%(seconds)s secondi" + +#: core/views.py:69 core/views.py:146 +msgid "%(model)s entry deleted." +msgstr "%(model)s voce eliminata." + +#: core/views.py:366 +msgid "%(model)s reading added!" +msgstr "%(model)s lettura aggiunta!" + +#: core/views.py:374 +msgid "%(model)s reading for %(child)s updated." +msgstr "%(model)s lettura per %(child)s aggiornata." + +#: dashboard/templates/cards/timer_list.html:27 +msgid "Started by %(user)s at %(start)s" +msgstr "Avviato dall'utente %(user)s alle %(start)s" + +#: reports/templates/reports/feeding_amounts.html:4 +#: reports/templates/reports/feeding_amounts.html:8 +#: reports/templates/reports/report_list.html:14 +msgid "Feeding Amounts" +msgstr "Quantità di Cibo" + +#: reports/graphs/feeding_amounts.py:27 +msgid "Total feeding amount" +msgstr "Totale quantità di cibo" + +#: reports/graphs/feeding_amounts.py:36 +msgid "Total Feeding Amounts" +msgstr "Totale quantità di cibo" + +#: reports/graphs/feeding_amounts.py:72 +msgid "Feeding amount" +msgstr "Quantità di cibo" + +#: reports/templates/reports/report_base.html:17 +msgid "There is not enough data to generate this report." +msgstr "Non ci sono abbastanza dati per generare questo report." + +#: babybuddy/models.py:69 +msgid "Timezone" +msgstr "Fuso orario" + +#: babybuddy/templates/admin/base_site.html:4 +#: babybuddy/templates/admin/base_site.html:7 +#: babybuddy/templates/babybuddy/nav-dropdown.html:359 +msgid "Database Admin" +msgstr "Database Admin" + +#: core/templates/core/child_list.html:15 +msgid "Add Child" +msgstr "Aggiungi Bimbo" + +#: core/templates/core/diaperchange_list.html:15 +msgid "Add Diaper Change" +msgstr "Aggiungi Cambio Pannolino" + +#: core/templates/core/feeding_list.html:15 +msgid "Add Feeding" +msgstr "Aggiungi Pasto" + +#: core/templates/core/note_list.html:15 +msgid "Add Note" +msgstr "Aggiungi Nota" + +#: core/templates/core/sleep_list.html:15 +msgid "Add Sleep" +msgstr "Aggiungi Riposo" + +#: core/templates/core/temperature_list.html:15 +msgid "Add Temperature Reading" +msgstr "Aggiungi Lettura Temperatura Corporea" + +#: core/templates/core/timer_confirm_delete_inactive.html:5 +msgid "Delete All Inactive Timers" +msgstr "Elimina Tutti i Timer Inattivi" + +#: core/templates/core/timer_confirm_delete_inactive.html:10 +msgid "Delete Inactive" +msgstr "Elimina Inattivo" + +#: core/templates/core/timer_confirm_delete_inactive.html:17 +msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" +msgstr "Sei sicuro di voler eliminare %(number)s inattivi timer?" + +#: core/templates/core/timer_list.html:68 +msgid "Delete Inactive Timers" +msgstr "Elimina Timer Inattivo" + +#: core/templates/core/tummytime_list.html:15 +msgid "Add Tummy Time" +msgstr "Aggiungi Tummy Time" + +#: core/templates/core/weight_list.html:15 +msgid "Add Weight" +msgstr "Aggiungi Peso" + +#: core/views.py:501 +msgid "All inactive timers deleted." +msgstr "Eliminati tutti i timer inattivi." + +#: core/views.py:511 +msgid "No inactive timers exist." +msgstr "Non esistono timer attivi." + +#: dashboard/templates/cards/feeding_last_method.html:19 +msgid "most recent" +msgstr "più recente" + +#: dashboard/templates/cards/feeding_last_method.html:21 +msgid "%(n)s feeding%(plural)s ago" +msgstr "%(n)s pasti fa" + +#: dashboard/templates/cards/sleep_last.html:6 +msgid "Last Sleep" +msgstr "Ultimo Riposo" + +#: reports/templates/reports/report_list.html:11 +msgid "Diaper Change Amounts" +msgstr "Numero di Cambi Pannolino" + +#: reports/graphs/diaperchange_amounts.py:27 +msgid "Diaper change amount" +msgstr "Numero di cambi pannolino" + +#: reports/graphs/diaperchange_amounts.py:36 +msgid "Diaper Change Amounts" +msgstr "Numero di Cambi Pannolino" + +#: reports/graphs/diaperchange_amounts.py:39 +msgid "Change amount" +msgstr "Numero di cambi" + +#: reports/templates/reports/diaperchange_amounts.html:4 +#: reports/templates/reports/diaperchange_amounts.html:8 +msgid "Diaper Amounts" +msgstr "Numero di pannolini" + +#: babybuddy/models.py:21 +msgid "If supported by browser, the dashboard will only refresh when visible, and also when receiving focus." +msgstr "Se supportato dal browser, la dashboard sarà aggiornata quando visualizzata e anche quando torna in primo piano" + +#: babybuddy/models.py:40 +msgid "Hide Empty Dashboard Cards" +msgstr "Nascondi le schede vuote nella dashboard" + +#: babybuddy/models.py:43 +msgid "Hide data older than" +msgstr "Nascondi i dati più vecchi di" + +#: babybuddy/models.py:45 +msgid "This setting controls which data will be shown in the dashboard." +msgstr "Questa impostazione controlla quali dati verranno visualizzati nella dashboard" + +#: babybuddy/models.py:51 +msgid "show all data" +msgstr "Visualizza tutti i dati" + +#: babybuddy/models.py:52 +msgid "1 day" +msgstr "1 giorno" + +#: babybuddy/models.py:53 +msgid "2 days" +msgstr "2 giorni" + +#: babybuddy/models.py:54 +msgid "3 days" +msgstr "3 giorni" + +#: babybuddy/models.py:55 +msgid "1 week" +msgstr "1 settimana" + +#: babybuddy/models.py:56 +msgid "4 weeks" +msgstr "4 settimane" + +#: babybuddy/settings/base.py:168 +msgid "Dutch" +msgstr "Olandese" + +#: babybuddy/settings/base.py:172 +msgid "Finnish" +msgstr "Finlandese" + +#: babybuddy/settings/base.py:174 +msgid "Italian" +msgstr "Italiano" + +#: babybuddy/settings/base.py:175 +msgid "Polish" +msgstr "Polacco" + +#: babybuddy/settings/base.py:176 +msgid "Portuguese" +msgstr "Portoghese" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:118 +#: core/templates/timeline/timeline.html:4 +#: core/templates/timeline/timeline.html:7 +#: dashboard/templates/dashboard/child_button_group.html:9 +msgid "Timeline" +msgstr "Andamento temporale" + +#: core/models.py:286 +msgid "Solid food" +msgstr "Cibo solido" + +#: core/models.py:297 +msgid "Parent fed" +msgstr "Imboccato dai genitori" + +#: core/models.py:298 +msgid "Self fed" +msgstr "Mangia da solo" + +#: core/templates/core/diaperchange_list.html:29 +msgid "Contents" +msgstr "Contenuto" + +#: core/templates/core/timer_detail.html:77 +msgid "Restart timer" +msgstr "Riavvia timer" + +#: core/templates/core/timer_detail.html:84 +msgid "Delete timer" +msgstr "Cancella timer" + +#: core/templatetags/datetime.py:60 +msgid "Today" +msgstr "oggi" + +#: core/templatetags/datetime.py:75 +msgid "{}, {}" +msgstr "{}, {}" + +#: core/templatetags/duration.py:25 +msgid "0 days" +msgstr "0 giorni" + +#: core/timeline.py:137 +msgid "Amount: %(amount).0f" +msgstr "Quantità: %(amount).0f" + +#: core/timeline.py:157 +msgid "Contents: %(contents)s" +msgstr "Contenuti: %(contents)s" + +#: dashboard/templates/cards/diaperchange_last.html:12 +#: dashboard/templates/cards/feeding_last.html:12 +#: dashboard/templates/cards/sleep_last.html:12 +#: dashboard/templates/cards/tummytime_last.html:13 +msgid "
%(since)s ago
%(time)s" +msgstr "
%(since)s fa
%(time)s" + +#: dashboard/templates/cards/feeding_day.html:6 +msgid "Today's Feeding" +msgstr "Pasti di oggi" + +#: dashboard/templates/cards/feeding_day.html:20 +msgid "%(count)s feeding entries" +msgstr "%(count)s pasti registrati" + +#: dashboard/templates/cards/statistics.html:42 +msgid "No data yet" +msgstr "Nessun dato" + +#: reports/templates/reports/report_list.html:21 +msgid "Tummy Time Durations (Sum)" +msgstr "Durata totale Tummy Time" + +#: core/templates/timeline/_timeline.html:61 +#: dashboard/templates/dashboard/child_button_group.html:20 +msgid "Edit" +msgstr "Modifica" + +#: dashboard/templatetags/cards.py:456 +msgid "Feeding frequency (past 3 days)" +msgstr "Frequenza pasti (ultimi 3 giorni)" + +#: dashboard/templatetags/cards.py:460 +msgid "Feeding frequency (past 2 weeks)" +msgstr "Frequenza pasti (ultime 2 settimane)" + +#: reports/graphs/tummytime_duration.py:34 +msgid "Total duration" +msgstr "Durata totale" + +#: reports/graphs/tummytime_duration.py:41 +#: reports/graphs/tummytime_duration.py:55 +msgid "Number of sessions" +msgstr "Numero di sessioni" + +#: reports/graphs/tummytime_duration.py:50 +msgid "Total Tummy Time Durations" +msgstr "Durata totale Tummy Time" + +#: reports/graphs/tummytime_duration.py:53 +msgid "Total duration (minutes)" +msgstr "Durata totale (in minuti)" + +#: reports/templates/reports/tummytime_duration.html:4 +#: reports/templates/reports/tummytime_duration.html:8 +msgid "Total Tummy Time Durations" +msgstr "Durata totale Tummy Time" + +#: babybuddy/settings/base.py:169 +#, fuzzy +msgid "English (US)" +msgstr "Inglese" + +#: babybuddy/settings/base.py:170 +#, fuzzy +msgid "English (UK)" +msgstr "Inglese" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:171 +msgid "Measurements" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:207 core/models.py:369 +#: core/models.py:381 core/models.py:382 core/models.py:385 +#: core/templates/core/height_confirm_delete.html:7 +#: core/templates/core/height_form.html:13 +#: core/templates/core/height_list.html:4 +#: core/templates/core/height_list.html:7 +#: core/templates/core/height_list.html:12 +#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 +#: reports/graphs/height_change.py:30 +#: reports/templates/reports/height_change.html:4 +#: reports/templates/reports/height_change.html:8 +#: reports/templates/reports/report_list.html:17 +#, fuzzy +msgid "Height" +msgstr "Peso" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:213 +#, fuzzy +msgid "Height entry" +msgstr "Pesata" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:221 core/models.py:338 +#: core/models.py:351 core/models.py:352 core/models.py:355 +#: core/templates/core/head_circumference_confirm_delete.html:7 +#: core/templates/core/head_circumference_form.html:13 +#: core/templates/core/head_circumference_list.html:4 +#: core/templates/core/head_circumference_list.html:7 +#: core/templates/core/head_circumference_list.html:12 +#: core/templates/core/head_circumference_list.html:29 +#: reports/graphs/head_circumference_change.py:19 +#: reports/graphs/head_circumference_change.py:30 +#: reports/templates/reports/head_circumference_change.html:4 +#: reports/templates/reports/head_circumference_change.html:8 +#: reports/templates/reports/report_list.html:16 +msgid "Head Circumference" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:227 +msgid "Head Circumference entry" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:235 core/models.py:139 +#: core/models.py:151 core/models.py:152 core/models.py:155 +#: core/templates/core/bmi_confirm_delete.html:7 +#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 +#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 +#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 +#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 +#: reports/templates/reports/bmi_change.html:8 +msgid "BMI" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:241 +#, fuzzy +msgid "BMI entry" +msgstr "Aggiungi Riposo" + +#: core/models.py:452 +msgid "Napping" +msgstr "" + +#: core/templates/core/bmi_confirm_delete.html:4 +#, fuzzy +msgid "Delete a BMI Entry" +msgstr "Elimina un Riposo" + +#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 +#: core/templates/core/bmi_form.html:27 +#, fuzzy +msgid "Add a BMI Entry" +msgstr "Aggiungi un Riposo" + +#: core/templates/core/bmi_list.html:15 +msgid "Add BMI" +msgstr "" + +#: core/templates/core/bmi_list.html:70 +#, fuzzy +msgid "No bmi entries found." +msgstr "Nessuna voce timer trovata." + +#: core/templates/core/head_circumference_confirm_delete.html:4 +#, fuzzy +msgid "Delete a Head Circumference Entry" +msgstr "Elimina una voce Tummy Time" + +#: core/templates/core/head_circumference_form.html:8 +#: core/templates/core/head_circumference_form.html:17 +#: core/templates/core/head_circumference_form.html:27 +#, fuzzy +msgid "Add a Head Circumference Entry" +msgstr "Aggiungi una Voce Temperatura" + +#: core/templates/core/head_circumference_list.html:15 +msgid "Add Head Circumference" +msgstr "" + +#: core/templates/core/head_circumference_list.html:70 +#, fuzzy +msgid "No head circumference entries found." +msgstr "Nessuna voce timer trovata." + +#: core/templates/core/height_confirm_delete.html:4 +#, fuzzy +msgid "Delete a Height Entry" +msgstr "Elimina una Pesata" + +#: core/templates/core/height_form.html:8 +#: core/templates/core/height_form.html:17 +#: core/templates/core/height_form.html:27 +#, fuzzy +msgid "Add a Height Entry" +msgstr "Aggiungi una Pesata" + +#: core/templates/core/height_list.html:15 +#, fuzzy +msgid "Add Height" +msgstr "Aggiungi Peso" + +#: core/templates/core/height_list.html:70 +#, fuzzy +msgid "No height entries found." +msgstr "Nessuna pesata trovata." + +#: core/templates/timeline/_timeline.html:44 +#, fuzzy +msgid "Duration: %(duration)s" +msgstr "Durata troppo lunga." + +#: core/templates/timeline/_timeline.html:53 +msgid "%(since)s since previous" +msgstr "" + +#: core/templates/timeline/_timeline.html:85 +msgid "No events" +msgstr "" + +#: core/timeline.py:185 +#, fuzzy +msgid "%(child)s had a %(type)s diaper change." +msgstr "%(child)s ha il pannolino da cambiare." + +#: dashboard/templatetags/cards.py:372 +#, fuzzy +msgid "Height change per week" +msgstr "Cambiamento di peso settimanale" + +#: dashboard/templatetags/cards.py:382 +#, fuzzy +msgid "Head circumference change per week" +msgstr "Cambiamento di peso settimanale" + +#: dashboard/templatetags/cards.py:392 +#, fuzzy +msgid "BMI change per week" +msgstr "Cambiamento di peso settimanale" + +#: reports/graphs/bmi_change.py:27 +#, fuzzy +msgid "BMI" +msgstr "Peso" + +#: reports/graphs/feeding_amounts.py:69 +#, fuzzy +msgid "Total Feeding Amount by Type" +msgstr "Totale quantità di cibo" + +#: reports/graphs/head_circumference_change.py:27 +msgid "Head Circumference" +msgstr "" + +#: reports/graphs/height_change.py:27 +#, fuzzy +msgid "Height" +msgstr "Peso" + +#: babybuddy/settings/base.py:167 +msgid "Chinese (simplified)" +msgstr "" + +#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 +msgid "Bad Request" +msgstr "" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:14 +msgid "How to Fix" +msgstr "" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:15 +msgid "Add %(origin)s to the CSRF_TRUSTED_ORIGINS environment variable. If multiple origins are required separate with commas." +msgstr "" + +#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 +msgid "Page Not Found" +msgstr "" + +#: babybuddy/templates/error/404.html:9 +msgid "The path %(request_path)s does not exist." +msgstr "" + +#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 +msgid "Server Error" +msgstr "" + +#: babybuddy/templates/error/base.html:14 +#, fuzzy +msgid "Return to Baby Buddy" +msgstr "Benvenuto in Baby Buddy!" + +#: babybuddy/views.py:43 +msgid "Forbidden" +msgstr "" + +#: babybuddy/views.py:44 +msgid "CSRF verification failed. Request aborted." +msgstr "" + +#: babybuddy/settings/base.py:166 +msgid "Catalan" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:93 +#: babybuddy/templates/babybuddy/nav-dropdown.html:316 core/models.py:437 +#: core/models.py:438 core/models.py:441 +#: core/templates/core/pumping_confirm_delete.html:7 +#: core/templates/core/pumping_form.html:13 +#: core/templates/core/pumping_list.html:4 +#: core/templates/core/pumping_list.html:7 +#: core/templates/core/pumping_list.html:12 +#: reports/templates/reports/pumping_amounts.html:4 +#: reports/templates/reports/pumping_amounts.html:8 +msgid "Pumping" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:322 +#, fuzzy +msgid "Pumping entry" +msgstr "Pesata" + +#: core/filters.py:11 core/models.py:96 core/models.py:115 +msgid "Tag" +msgstr "" + +#: core/forms.py:136 +msgid "Click on the tags to add (+) or remove (-) tags or use the text editor to create new tags." +msgstr "" + +#: core/models.py:90 +#, fuzzy +msgid "Last used" +msgstr "Cognome" + +#: core/models.py:97 core/templates/core/bmi_list.html:30 +#: core/templates/core/diaperchange_list.html:32 +#: core/templates/core/feeding_list.html:35 +#: core/templates/core/head_circumference_list.html:30 +#: core/templates/core/height_list.html:30 +#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 +#: core/templates/core/temperature_list.html:30 +#: core/templates/core/tummytime_list.html:31 +#: core/templates/core/weight_list.html:30 +msgid "Tags" +msgstr "" + +#: core/templates/core/pumping_confirm_delete.html:4 +#, fuzzy +msgid "Delete a Pumping Entry" +msgstr "Elimina una Pesata" + +#: core/templates/core/pumping_form.html:8 +#: core/templates/core/pumping_form.html:17 +#: core/templates/core/pumping_form.html:27 +#, fuzzy +msgid "Add a Pumping Entry" +msgstr "Aggiungi una Pesata" + +#: core/templates/core/pumping_list.html:15 +#, fuzzy +msgid "Add Pumping Entry" +msgstr "Aggiungi una Pesata" + +#: core/templates/core/pumping_list.html:66 +#, fuzzy +msgid "No pumping entries found." +msgstr "Nessuna voce timer trovata." + #: core/templates/core/widget_tag_editor.html:22 #, fuzzy -#| msgid "Last name" msgid "Tag name" msgstr "Cognome" @@ -1611,594 +2091,71 @@ msgctxt "Error modal" msgid "Close" msgstr "" -#: core/templates/timeline/_timeline.html:38 -#, python-format -msgid "%(since)s ago (%(time)s)" -msgstr "%(since)s fa (%(time)s)" - -#: core/templates/timeline/_timeline.html:44 -#, fuzzy, python-format -#| msgid "Duration too long." -msgid "Duration: %(duration)s" -msgstr "Durata troppo lunga." - -#: core/templates/timeline/_timeline.html:53 -#, python-format -msgid "%(since)s since previous" -msgstr "" - -#: core/templates/timeline/_timeline.html:61 -#: dashboard/templates/dashboard/child_button_group.html:20 -msgid "Edit" -msgstr "Modifica" - -#: core/templates/timeline/_timeline.html:85 -msgid "No events" -msgstr "" - -#: core/templatetags/datetime.py:60 -msgid "Today" -msgstr "oggi" - -#: core/templatetags/datetime.py:75 -msgid "{}, {}" -msgstr "{}, {}" - -#: core/templatetags/duration.py:25 -msgid "0 days" -msgstr "0 giorni" - -#: core/templatetags/duration.py:111 -#: dashboard/templates/cards/diaperchange_types.html:49 -msgid "today" -msgstr "oggi" - -#: core/templatetags/duration.py:113 -#: dashboard/templates/cards/diaperchange_types.html:51 -msgid "yesterday" -msgstr "ieri" - -#: core/templatetags/duration.py:116 -#, fuzzy -#| msgid "%(key)s days ago" -msgid " days ago" -msgstr "%(key)s giorni fa" - -#: core/timeline.py:53 -#, python-format -msgid "%(child)s started tummy time!" -msgstr "Tummy Time iniziato per %(child)s!" - -#: core/timeline.py:65 -#, python-format -msgid "%(child)s finished tummy time." -msgstr "Tummy Time terminato per %(child)s!" - -#: core/timeline.py:91 -#, python-format -msgid "%(child)s fell asleep." -msgstr "%(child)s ha preso sonno." - -#: core/timeline.py:103 -#, python-format -msgid "%(child)s woke up." -msgstr "%(child)s sveglio." - -#: core/timeline.py:137 -#, python-format -msgid "Amount: %(amount).0f" -msgstr "Quantità: %(amount).0f" - -#: core/timeline.py:145 -#, python-format -msgid "%(child)s started feeding." -msgstr "%(child)s ha iniziato il pasto." - -#: core/timeline.py:158 -#, python-format -msgid "%(child)s finished feeding." -msgstr "%(child)s ha terminato il pasto." - -#: core/timeline.py:185 -#, fuzzy, python-format -#| msgid "%(child)s had a diaper change." -msgid "%(child)s had a %(type)s diaper change." -msgstr "%(child)s ha il pannolino da cambiare." - -#: core/utils.py:40 -#, python-format -msgid "%(hours)s hour" -msgid_plural "%(hours)s hours" -msgstr[0] "%(hours)s ora" -msgstr[1] "%(hours)s ore" - -#: core/utils.py:44 -#, python-format -msgid "%(minutes)s minute" -msgid_plural "%(minutes)s minutes" -msgstr[0] "%(minutes)s minuto" -msgstr[1] "%(minutes)s minuti" - -#: core/utils.py:50 -#, python-format -msgid "%(seconds)s second" -msgid_plural "%(seconds)s seconds" -msgstr[0] "%(seconds)s secondo" -msgstr[1] "%(seconds)s secondi" - -#: core/views.py:33 -#, python-format -msgid "%(model)s entry for %(child)s added!" -msgstr "%(model)s voce aggiunta per %(child)s!" - -#: core/views.py:35 core/views.py:308 -#, python-format -msgid "%(model)s entry added!" -msgstr "%(model)s voce aggiunta!" - -#: core/views.py:61 core/views.py:316 -#, python-format -msgid "%(model)s entry for %(child)s updated." -msgstr "%(model)s voce per %(child)s aggiornata." - -#: core/views.py:63 -#, python-format -msgid "%(model)s entry updated." -msgstr "%(model)s voce aggiornata." - -#: core/views.py:69 core/views.py:146 -#, python-format -msgid "%(model)s entry deleted." -msgstr "%(model)s voce eliminata." - -#: core/views.py:115 -#, python-format -msgid "%(first_name)s %(last_name)s added!" -msgstr "%(first_name)s %(last_name)s aggiunto!" - -#: core/views.py:366 -#, python-format -msgid "%(model)s reading added!" -msgstr "%(model)s lettura aggiunta!" - -#: core/views.py:374 -#, python-format -msgid "%(model)s reading for %(child)s updated." -msgstr "%(model)s lettura per %(child)s aggiornata." - -#: core/views.py:483 -#, python-format -msgid "%(timer)s stopped." -msgstr "%(timer)s fermato." - -#: core/views.py:506 -msgid "All inactive timers deleted." -msgstr "Eliminati tutti i timer inattivi." - -#: core/views.py:516 -msgid "No inactive timers exist." -msgstr "Non esistono timer attivi." - -#: dashboard/templates/cards/diaperchange_last.html:6 -msgid "Last Diaper Change" -msgstr "Ultimo cambio pannolino" - -#: dashboard/templates/cards/diaperchange_last.html:12 -#: dashboard/templates/cards/feeding_last.html:12 -#: dashboard/templates/cards/sleep_last.html:12 -#: dashboard/templates/cards/tummytime_last.html:13 -#, python-format -msgid "
%(since)s ago
%(time)s" -msgstr "
%(since)s fa
%(time)s" - -#: dashboard/templates/cards/diaperchange_types.html:14 -msgid "Past Week" -msgstr "Scorsa Settimana" - -#: dashboard/templates/cards/diaperchange_types.html:27 -msgid "wet" -msgstr "liquida" - -#: dashboard/templates/cards/diaperchange_types.html:35 -msgid "solid" -msgstr "solida" - -#: dashboard/templates/cards/diaperchange_types.html:53 -#, python-format -msgid "%(key)s days ago" -msgstr "%(key)s giorni fa" - -#: dashboard/templates/cards/feeding_day.html:6 -msgid "Today's Feeding" -msgstr "Pasti di oggi" - -#: dashboard/templates/cards/feeding_day.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s feeding" -msgid_plural "%(counter)s feedings" -msgstr[0] "%(count)s Riposi" -msgstr[1] "%(count)s Riposi" - #: dashboard/templates/cards/feeding_day.html:32 -#: dashboard/templates/cards/sleep_recent.html:32 -#, python-format msgid "
%(since)s
" msgstr "" -#: dashboard/templates/cards/feeding_last.html:6 -msgid "Last Feeding" -msgstr "Ultimo Pasto" - -#: dashboard/templates/cards/feeding_last_method.html:6 -msgid "Last Feeding Method" -msgstr "Metodo Ultimo Pasto" - -#: dashboard/templates/cards/feeding_last_method.html:19 -msgid "most recent" -msgstr "più recente" - -#: dashboard/templates/cards/feeding_last_method.html:21 -#, fuzzy, python-format -#| msgid "%(n)s feeding%(plural)s ago" -msgid "%(n)s feeding ago" -msgid_plural "%(n)s feedings ago" -msgstr[0] "%(n)s pasti fa" -msgstr[1] "%(n)s pasti fa" - -#: dashboard/templates/cards/sleep_last.html:6 -msgid "Last Sleep" -msgstr "Ultimo Riposo" - -#: dashboard/templates/cards/sleep_naps_day.html:6 -msgid "Today's Naps" -msgstr "Riposini di oggi" - -#: dashboard/templates/cards/sleep_naps_day.html:12 -#, fuzzy, python-format -#| msgid "%(count)s nap%(plural)s" -msgid "%(count)s nap" -msgid_plural "%(count)s naps" -msgstr[0] "%(count)s pisolini" -msgstr[1] "%(count)s pisolini" - -#: dashboard/templates/cards/sleep_recent.html:6 +#: dashboard/templatetags/cards.py:410 #, fuzzy -#| msgid "Last Sleep" -msgid "Recent Sleep" -msgstr "Ultimo Riposo" - -#: dashboard/templates/cards/sleep_recent.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s sleep" -msgid_plural "%(counter)s sleep" -msgstr[0] "%(count)s Riposi" -msgstr[1] "%(count)s Riposi" - -#: dashboard/templates/cards/statistics.html:7 -msgid "Statistics" -msgstr "Statistiche" - -#: dashboard/templates/cards/statistics.html:25 -msgid "Not enough data" -msgstr "Dati non sufficienti" - -#: dashboard/templates/cards/statistics.html:42 -msgid "No data yet" -msgstr "Nessun dato" - -#: dashboard/templates/cards/timer_list.html:12 -#, fuzzy, python-format -#| msgid "%(count)s active timer%(plural)s" -msgid "%(count)s active timer" -msgid_plural "%(count)s active timers" -msgstr[0] "%(count)s timer attivi" -msgstr[1] "%(count)s timer attivi" - -#: dashboard/templates/cards/timer_list.html:27 -#, python-format -msgid "Started by %(user)s at %(start)s" -msgstr "Avviato dall'utente %(user)s alle %(start)s" - -#: dashboard/templates/cards/tummytime_day.html:6 -msgid "Today's Tummy Time" -msgstr "Tummy Time di Oggi" - -#: dashboard/templates/cards/tummytime_day.html:22 -#, python-format -msgid "%(duration)s at %(end)s" -msgstr "%(duration)s alle %(end)s" - -#: dashboard/templates/cards/tummytime_last.html:6 -msgid "Last Tummy Time" -msgstr "Ultimo Tummy Time" - -#: dashboard/templates/cards/tummytime_last.html:18 -msgid "Never" -msgstr "Mai" - -#: dashboard/templates/dashboard/child_button_group.html:3 -msgid "Child actions" -msgstr "Azioni Bimbo" - -#: dashboard/templates/dashboard/child_button_group.html:12 -#: reports/templates/reports/base.html:9 -#: reports/templates/reports/report_list.html:4 -msgid "Reports" -msgstr "Report" - -#: dashboard/templatetags/cards.py:357 -msgid "Average nap duration" -msgstr "Durata media riposini" - -#: dashboard/templatetags/cards.py:364 -msgid "Average naps per day" -msgstr "Media riposini al giorno" - -#: dashboard/templatetags/cards.py:374 -msgid "Average sleep duration" -msgstr "Durata media riposi" - -#: dashboard/templatetags/cards.py:381 -msgid "Average awake duration" -msgstr "Durata media bimbo sveglio" - -#: dashboard/templatetags/cards.py:391 -msgid "Weight change per week" -msgstr "Cambiamento di peso settimanale" - -#: dashboard/templatetags/cards.py:401 -#, fuzzy -#| msgid "Weight change per week" -msgid "Height change per week" -msgstr "Cambiamento di peso settimanale" - -#: dashboard/templatetags/cards.py:411 -#, fuzzy -#| msgid "Weight change per week" -msgid "Head circumference change per week" -msgstr "Cambiamento di peso settimanale" - -#: dashboard/templatetags/cards.py:421 -#, fuzzy -#| msgid "Weight change per week" -msgid "BMI change per week" -msgstr "Cambiamento di peso settimanale" - -#: dashboard/templatetags/cards.py:439 -#, fuzzy -#| msgid "Feeding frequency (past 3 days)" msgid "Diaper change frequency (past 3 days)" msgstr "Frequenza pasti (ultimi 3 giorni)" -#: dashboard/templatetags/cards.py:443 +#: dashboard/templatetags/cards.py:414 #, fuzzy -#| msgid "Feeding frequency (past 2 weeks)" msgid "Diaper change frequency (past 2 weeks)" msgstr "Frequenza pasti (ultime 2 settimane)" -#: dashboard/templatetags/cards.py:449 -msgid "Diaper change frequency" -msgstr "Frequenza cambio pannolino" - -#: dashboard/templatetags/cards.py:485 -msgid "Feeding frequency (past 3 days)" -msgstr "Frequenza pasti (ultimi 3 giorni)" - -#: dashboard/templatetags/cards.py:489 -msgid "Feeding frequency (past 2 weeks)" -msgstr "Frequenza pasti (ultime 2 settimane)" - -#: dashboard/templatetags/cards.py:495 -msgid "Feeding frequency" -msgstr "Frequenza pasti" - -#: reports/graphs/bmi_change.py:27 +#: reports/graphs/pumping_amounts.py:57 #, fuzzy -#| msgid "Weight" -msgid "BMI" -msgstr "Peso" - -#: reports/graphs/diaperchange_amounts.py:27 -msgid "Diaper change amount" -msgstr "Numero di cambi pannolino" - -#: reports/graphs/diaperchange_amounts.py:36 -msgid "Diaper Change Amounts" -msgstr "Numero di Cambi Pannolino" - -#: reports/graphs/diaperchange_amounts.py:39 -msgid "Change amount" -msgstr "Numero di cambi" - -#: reports/graphs/diaperchange_lifetimes.py:35 -msgid "Diaper Lifetimes" -msgstr "Lifetime Pannolino" - -#: reports/graphs/diaperchange_lifetimes.py:36 -msgid "Time between changes (hours)" -msgstr "Tempo tra i cambi (ore)" - -#: reports/graphs/diaperchange_types.py:41 reports/graphs/feeding_amounts.py:58 -msgid "Total" -msgstr "Totale" - -#: reports/graphs/diaperchange_types.py:48 -msgid "Diaper Change Types" -msgstr "Tipo di Cambio Pannolino" - -#: reports/graphs/diaperchange_types.py:51 -msgid "Number of changes" -msgstr "Numero di cambi" - -#: reports/graphs/feeding_amounts.py:69 -#, fuzzy -#| msgid "Total Feeding Amounts" -msgid "Total Feeding Amount by Type" -msgstr "Totale quantità di cibo" - -#: reports/graphs/feeding_amounts.py:72 -msgid "Feeding amount" -msgstr "Quantità di cibo" - -#: reports/graphs/feeding_duration.py:38 -msgid "Average duration" -msgstr "Durata media" - -#: reports/graphs/feeding_duration.py:46 -msgid "Total feedings" -msgstr "Totale pasti" - -#: reports/graphs/feeding_duration.py:55 -msgid "Average Feeding Durations" -msgstr "Durata Media Pasti" - -#: reports/graphs/feeding_duration.py:58 -msgid "Average duration (minutes)" -msgstr "Durata media (minuti)" - -#: reports/graphs/feeding_duration.py:60 -msgid "Number of feedings" -msgstr "Numero di pasti" - -#: reports/graphs/head_circumference_change.py:27 -msgid "Head Circumference" -msgstr "" - -#: reports/graphs/height_change.py:27 -#, fuzzy -#| msgid "Weight" -msgid "Height" -msgstr "Peso" - -#: reports/graphs/pumping_amounts.py:59 -#, fuzzy -#| msgid "Total Feeding Amounts" msgid "Total Pumping Amount" msgstr "Totale quantità di cibo" -#: reports/graphs/pumping_amounts.py:62 +#: reports/graphs/pumping_amounts.py:60 #, fuzzy -#| msgid "Feeding Amounts" msgid "Pumping Amount" msgstr "Quantità di Cibo" -#: reports/graphs/sleep_pattern.py:150 -msgid "Sleep Pattern" -msgstr "Modello Riposo" - -#: reports/graphs/sleep_pattern.py:167 -msgid "Time of day" -msgstr "Ora del giorno" - -#: reports/graphs/sleep_totals.py:48 -msgid "Total sleep" -msgstr "Totale Riposo" - -#: reports/graphs/sleep_totals.py:58 -msgid "Sleep Totals" -msgstr "Riposo Totale" - -#: reports/graphs/sleep_totals.py:61 -msgid "Hours of sleep" -msgstr "Ore di riposo" - -#: reports/graphs/tummytime_duration.py:34 -msgid "Total duration" -msgstr "Durata totale" - -#: reports/graphs/tummytime_duration.py:41 -#: reports/graphs/tummytime_duration.py:55 -msgid "Number of sessions" -msgstr "Numero di sessioni" - -#: reports/graphs/tummytime_duration.py:50 -msgid "Total Tummy Time Durations" -msgstr "Durata totale Tummy Time" - -#: reports/graphs/tummytime_duration.py:53 -msgid "Total duration (minutes)" -msgstr "Durata totale (in minuti)" - -#: reports/graphs/weight_change.py:27 -msgid "Weight" -msgstr "Peso" - -#: reports/templates/reports/diaperchange_amounts.html:4 -#: reports/templates/reports/diaperchange_amounts.html:8 -msgid "Diaper Amounts" -msgstr "Numero di pannolini" - -#: reports/templates/reports/diaperchange_lifetimes.html:4 -#: reports/templates/reports/diaperchange_lifetimes.html:8 -#: reports/templates/reports/report_list.html:13 -msgid "Diaper Lifetimes" -msgstr "Lifetime Pannolino" - -#: reports/templates/reports/diaperchange_types.html:4 -#: reports/templates/reports/diaperchange_types.html:8 -#: reports/templates/reports/report_list.html:12 -msgid "Diaper Change Types" -msgstr "Tipo Cambio Pannolino" - -#: reports/templates/reports/feeding_amounts.html:4 -#: reports/templates/reports/feeding_amounts.html:8 -#: reports/templates/reports/report_list.html:14 -msgid "Feeding Amounts" -msgstr "Quantità di Cibo" - -#: reports/templates/reports/feeding_duration.html:4 -#: reports/templates/reports/feeding_duration.html:8 -msgid "Average Feeding Durations" -msgstr "Durata Media Pasti" - -#: reports/templates/reports/report_base.html:17 -msgid "There is not enough data to generate this report." -msgstr "Non ci sono abbastanza dati per generare questo report." - #: reports/templates/reports/report_list.html:10 msgid "Body Mass Index (BMI)" msgstr "" -#: reports/templates/reports/report_list.html:11 -msgid "Diaper Change Amounts" -msgstr "Numero di Cambi Pannolino" - -#: reports/templates/reports/report_list.html:15 -msgid "Feeding Durations (Average)" -msgstr "Durata Pasti (Media)" - #: reports/templates/reports/report_list.html:18 #, fuzzy -#| msgid "Feeding Amounts" msgid "Pumping Amounts" msgstr "Quantità di Cibo" -#: reports/templates/reports/report_list.html:19 -#: reports/templates/reports/sleep_pattern.html:4 -#: reports/templates/reports/sleep_pattern.html:8 -msgid "Sleep Pattern" -msgstr "Modello Riposo" +#: core/templates/core/timer_confirm_delete_inactive.html:17 +#, fuzzy +msgid "Are you sure you want to delete %(number)s inactive timer?" +msgid_plural "Are you sure you want to delete %(number)s inactive timers?" +msgstr[0] "Sei sicuro di voler eliminare %(number)s inattivi timer?" +msgstr[1] "Sei sicuro di voler eliminare %(number)s inattivi timer?" -#: reports/templates/reports/report_list.html:20 -#: reports/templates/reports/sleep_totals.html:4 -#: reports/templates/reports/sleep_totals.html:8 -msgid "Sleep Totals" -msgstr "Riposi totali" +#: dashboard/templates/cards/feeding_day.html:25 +#, fuzzy +msgid "%(counter)s feeding" +msgid_plural "%(counter)s feedings" +msgstr[0] "%(count)s Riposi" +msgstr[1] "%(count)s Riposi" -#: reports/templates/reports/report_list.html:21 -msgid "Tummy Time Durations (Sum)" -msgstr "Durata totale Tummy Time" +#: dashboard/templates/cards/feeding_last_method.html:21 +#, fuzzy +msgid "%(n)s feeding ago" +msgid_plural "%(n)s feedings ago" +msgstr[0] "%(n)s pasti fa" +msgstr[1] "%(n)s pasti fa" -#: reports/templates/reports/tummytime_duration.html:4 -#: reports/templates/reports/tummytime_duration.html:8 -msgid "Total Tummy Time Durations" -msgstr "Durata totale Tummy Time" +#: dashboard/templates/cards/sleep_naps_day.html:12 +#, fuzzy +msgid "%(count)s nap" +msgid_plural "%(count)s naps" +msgstr[0] "%(count)s pisolini" +msgstr[1] "%(count)s pisolini" -#~ msgid "Today's Sleep" -#~ msgstr "Riposi di Oggi" +#: dashboard/templates/cards/timer_list.html:12 +#, fuzzy +msgid "%(count)s active timer" +msgid_plural "%(count)s active timers" +msgstr[0] "%(count)s timer attivi" +msgstr[1] "%(count)s timer attivi" -#, python-format -#~ msgid "%(count)s sleep entries" -#~ msgstr "%(count)s Riposi" diff --git a/locale/nl/LC_MESSAGES/django.mo b/locale/nl/LC_MESSAGES/django.mo index 8384fd93..4a3a7240 100644 Binary files a/locale/nl/LC_MESSAGES/django.mo and b/locale/nl/LC_MESSAGES/django.mo differ diff --git a/locale/nl/LC_MESSAGES/django.po b/locale/nl/LC_MESSAGES/django.po index 86036169..b5ef5731 100644 --- a/locale/nl/LC_MESSAGES/django.po +++ b/locale/nl/LC_MESSAGES/django.po @@ -1,22 +1,20 @@ msgid "" msgstr "" -"Project-Id-Version: Baby Buddy\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 21:13+0000\n" -"Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" +"Project-Id-Version: Baby Buddy\n" +"Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: babybuddy/admin.py:12 babybuddy/admin.py:13 -#: babybuddy/templates/babybuddy/nav-dropdown.html:324 +#: babybuddy/templates/babybuddy/nav-dropdown.html:347 #: babybuddy/templates/babybuddy/user_settings_form.html:8 msgid "Settings" msgstr "Instellingen" -#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:89 +#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:111 #: babybuddy/templates/babybuddy/user_settings_form.html:61 #: dashboard/templates/dashboard/child.html:4 #: dashboard/templates/dashboard/child.html:9 @@ -31,12 +29,8 @@ msgid "Refresh rate" msgstr "Vernieuwingsfrequentie" #: babybuddy/models.py:21 -msgid "" -"If supported by browser, the dashboard will only refresh when visible, and " -"also when receiving focus." -msgstr "" -"Indien ondersteund door de browser, zal het dashboard alleen worden " -"vernieuwd indien zichbaar, of als het focus krijgt." +msgid "This setting will only be used when a browser does not support refresh on focus." +msgstr "Deze instelling zal enkel gebruikt worden als de browser geen vernieuwing bij focus ondersteund." #: babybuddy/models.py:28 msgid "disabled" @@ -74,120 +68,31 @@ msgstr "15 min." msgid "30 min." msgstr "30 min." -#: babybuddy/models.py:40 -msgid "Hide Empty Dashboard Cards" -msgstr "Verberg Lege Dashboard Kaarten" - -#: babybuddy/models.py:43 -msgid "Hide data older than" -msgstr "Verberg data ouder dan" - -#: babybuddy/models.py:45 -msgid "This setting controls which data will be shown in the dashboard." -msgstr "Deze instelling bepaald welke data zichtbaar is op het dashboard." - -#: babybuddy/models.py:51 -msgid "show all data" -msgstr "laat alle data zien" - -#: babybuddy/models.py:52 -msgid "1 day" -msgstr "1 dag" - -#: babybuddy/models.py:53 -msgid "2 days" -msgstr "2 dagen" - -#: babybuddy/models.py:54 -msgid "3 days" -msgstr "3 dagen" - -#: babybuddy/models.py:55 -msgid "1 week" -msgstr "" - -#: babybuddy/models.py:56 -msgid "4 weeks" -msgstr "4 weken" - #: babybuddy/models.py:63 msgid "Language" -msgstr "Talen" - -#: babybuddy/models.py:69 -msgid "Timezone" -msgstr "Tijdzone" +msgstr "Taal" #: babybuddy/models.py:73 -#, python-brace-format msgid "{user}'s Settings" msgstr "{user}'s instellingen" -#: babybuddy/settings/base.py:166 -msgid "Catalan" -msgstr "" - -#: babybuddy/settings/base.py:167 -msgid "Chinese (simplified)" -msgstr "" - -#: babybuddy/settings/base.py:168 -msgid "Dutch" -msgstr "Nederlands" - -#: babybuddy/settings/base.py:169 -#, fuzzy -#| msgid "English" -msgid "English (US)" -msgstr "Engels" - -#: babybuddy/settings/base.py:170 -#, fuzzy -#| msgid "English" -msgid "English (UK)" +#: babybuddy/settings/base.py:171 +msgid "English" msgstr "Engels" #: babybuddy/settings/base.py:171 msgid "French" msgstr "Frans" -#: babybuddy/settings/base.py:172 -msgid "Finnish" -msgstr "Fins" +#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 +msgid "Permission Denied" +msgstr "Toegang geweigerd" -#: babybuddy/settings/base.py:173 -msgid "German" -msgstr "Duits" - -#: babybuddy/settings/base.py:174 -msgid "Italian" -msgstr "Italiaans" - -#: babybuddy/settings/base.py:175 -msgid "Polish" -msgstr "Pools" - -#: babybuddy/settings/base.py:176 -msgid "Portuguese" -msgstr "Portugees" - -#: babybuddy/settings/base.py:177 -msgid "Spanish" -msgstr "Spaans" - -#: babybuddy/settings/base.py:178 -msgid "Swedish" -msgstr "Zweeds" - -#: babybuddy/settings/base.py:179 -msgid "Turkish" -msgstr "Turks" - -#: babybuddy/templates/admin/base_site.html:4 -#: babybuddy/templates/admin/base_site.html:7 -#: babybuddy/templates/babybuddy/nav-dropdown.html:336 -msgid "Database Admin" -msgstr "Database admin" +#: babybuddy/templates/403.html:12 +msgid "You do not have permission to access this resource.\n" +" Contact a site administrator for assistance." +msgstr "Je hebt niet de juiste rechten voor toegang tot deze module.\n" +"Neem voor hulp contact op met de site beheerder." #: babybuddy/templates/babybuddy/base.html:36 msgid "Home" @@ -212,36 +117,32 @@ msgstr "Verzenden" #: babybuddy/templates/babybuddy/messages.html:18 #: babybuddy/templates/babybuddy/user_settings_form.html:19 -#, python-format msgid "Error: %(error)s" msgstr "Fout: %(error)s" #: babybuddy/templates/babybuddy/messages.html:23 -#: babybuddy/templates/babybuddy/user_settings_form.html:26 -msgid "Error: Some fields have errors. See below for details." -msgstr "" -"Fout: Sommige velden zijn fout. Kijk hieronder voor meer " -"info." +msgid "Error: Some fields have errors. See below for details. " +msgstr "Fout: Enkele velden zijn foutief. Zie hieronder voor details." -#: babybuddy/templates/babybuddy/nav-dropdown.html:48 core/models.py:248 +#: babybuddy/templates/babybuddy/nav-dropdown.html:51 core/models.py:248 #: core/models.py:252 msgid "Diaper Change" msgstr "Luierverschoning" -#: babybuddy/templates/babybuddy/nav-dropdown.html:54 -#: babybuddy/templates/babybuddy/nav-dropdown.html:259 core/models.py:312 +#: babybuddy/templates/babybuddy/nav-dropdown.html:57 +#: babybuddy/templates/babybuddy/nav-dropdown.html:281 core/models.py:312 #: core/models.py:316 core/templates/core/timer_detail.html:43 msgid "Feeding" msgstr "Voeding" -#: babybuddy/templates/babybuddy/nav-dropdown.html:60 -#: babybuddy/templates/babybuddy/nav-dropdown.html:135 core/models.py:396 +#: babybuddy/templates/babybuddy/nav-dropdown.html:63 +#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:396 #: core/models.py:407 core/models.py:411 core/templates/core/note_list.html:29 msgid "Note" msgstr "Notitie" -#: babybuddy/templates/babybuddy/nav-dropdown.html:66 -#: babybuddy/templates/babybuddy/nav-dropdown.html:280 +#: babybuddy/templates/babybuddy/nav-dropdown.html:69 +#: babybuddy/templates/babybuddy/nav-dropdown.html:288 #: babybuddy/templates/babybuddy/welcome.html:42 core/models.py:467 #: core/models.py:468 core/models.py:471 #: core/templates/core/sleep_confirm_delete.html:7 @@ -251,8 +152,8 @@ msgstr "Notitie" msgid "Sleep" msgstr "Slaap" -#: babybuddy/templates/babybuddy/nav-dropdown.html:72 -#: babybuddy/templates/babybuddy/nav-dropdown.html:293 +#: babybuddy/templates/babybuddy/nav-dropdown.html:81 +#: babybuddy/templates/babybuddy/nav-dropdown.html:301 #: babybuddy/templates/babybuddy/welcome.html:50 core/models.py:647 #: core/models.py:648 core/models.py:651 #: core/templates/core/timer_detail.html:59 @@ -264,15 +165,24 @@ msgstr "Slaap" msgid "Tummy Time" msgstr "Buikliggen" -#: babybuddy/templates/babybuddy/nav-dropdown.html:96 -#: core/templates/timeline/timeline.html:4 -#: core/templates/timeline/timeline.html:7 -#: dashboard/templates/dashboard/child_button_group.html:9 -msgid "Timeline" -msgstr "" +#: babybuddy/templates/babybuddy/nav-dropdown.html:87 +#: babybuddy/templates/babybuddy/nav-dropdown.html:193 core/models.py:673 +#: core/models.py:685 core/models.py:686 core/models.py:689 +#: core/templates/core/weight_confirm_delete.html:7 +#: core/templates/core/weight_form.html:13 +#: core/templates/core/weight_list.html:4 +#: core/templates/core/weight_list.html:7 +#: core/templates/core/weight_list.html:12 +#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 +#: reports/graphs/weight_change.py:30 +#: reports/templates/reports/report_list.html:22 +#: reports/templates/reports/weight_change.html:4 +#: reports/templates/reports/weight_change.html:8 +msgid "Weight" +msgstr "Gewicht" -#: babybuddy/templates/babybuddy/nav-dropdown.html:107 -#: babybuddy/templates/babybuddy/nav-dropdown.html:115 core/models.py:188 +#: babybuddy/templates/babybuddy/nav-dropdown.html:129 +#: babybuddy/templates/babybuddy/nav-dropdown.html:137 core/models.py:188 #: core/templates/core/child_confirm_delete.html:7 #: core/templates/core/child_detail.html:7 #: core/templates/core/child_form.html:13 core/templates/core/child_list.html:4 @@ -282,7 +192,7 @@ msgstr "" msgid "Children" msgstr "Kinderen" -#: babybuddy/templates/babybuddy/nav-dropdown.html:121 core/models.py:137 +#: babybuddy/templates/babybuddy/nav-dropdown.html:143 core/models.py:137 #: core/models.py:187 core/models.py:221 core/models.py:274 core/models.py:335 #: core/models.py:367 core/models.py:394 core/models.py:426 core/models.py:450 #: core/models.py:503 core/models.py:537 core/models.py:630 core/models.py:671 @@ -301,7 +211,7 @@ msgstr "Kinderen" msgid "Child" msgstr "Kind" -#: babybuddy/templates/babybuddy/nav-dropdown.html:129 core/models.py:143 +#: babybuddy/templates/babybuddy/nav-dropdown.html:151 core/models.py:143 #: core/models.py:240 core/models.py:304 core/models.py:343 core/models.py:373 #: core/models.py:408 core/models.py:430 core/models.py:458 core/models.py:511 #: core/models.py:677 core/templates/core/note_confirm_delete.html:7 @@ -310,112 +220,24 @@ msgstr "Kind" msgid "Notes" msgstr "Notities" -#: babybuddy/templates/babybuddy/nav-dropdown.html:149 -msgid "Measurements" -msgstr "Metingen" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:139 -#: core/models.py:151 core/models.py:152 core/models.py:155 -#: core/templates/core/bmi_confirm_delete.html:7 -#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 -#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 -#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 -#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 -#: reports/templates/reports/bmi_change.html:8 -msgid "BMI" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:163 -msgid "BMI entry" -msgstr "MBI ingave" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:171 core/models.py:338 -#: core/models.py:351 core/models.py:352 core/models.py:355 -#: core/templates/core/head_circumference_confirm_delete.html:7 -#: core/templates/core/head_circumference_form.html:13 -#: core/templates/core/head_circumference_list.html:4 -#: core/templates/core/head_circumference_list.html:7 -#: core/templates/core/head_circumference_list.html:12 -#: core/templates/core/head_circumference_list.html:29 -#: reports/graphs/head_circumference_change.py:19 -#: reports/graphs/head_circumference_change.py:30 -#: reports/templates/reports/head_circumference_change.html:4 -#: reports/templates/reports/head_circumference_change.html:8 -#: reports/templates/reports/report_list.html:16 -msgid "Head Circumference" -msgstr "Hoofd omtrek" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:177 -msgid "Head Circumference entry" -msgstr "Hoofd omtrek ingave" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:185 core/models.py:369 -#: core/models.py:381 core/models.py:382 core/models.py:385 -#: core/templates/core/height_confirm_delete.html:7 -#: core/templates/core/height_form.html:13 -#: core/templates/core/height_list.html:4 -#: core/templates/core/height_list.html:7 -#: core/templates/core/height_list.html:12 -#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 -#: reports/graphs/height_change.py:30 -#: reports/templates/reports/height_change.html:4 -#: reports/templates/reports/height_change.html:8 -#: reports/templates/reports/report_list.html:17 -msgid "Height" -msgstr "Lengte" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:191 -msgid "Height entry" -msgstr "Lengte ingave" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:199 core/models.py:506 -#: core/models.py:519 core/models.py:520 core/models.py:523 -#: core/templates/core/temperature_confirm_delete.html:7 -#: core/templates/core/temperature_form.html:13 -#: core/templates/core/temperature_list.html:4 -#: core/templates/core/temperature_list.html:7 -#: core/templates/core/temperature_list.html:12 -#: core/templates/core/temperature_list.html:29 -msgid "Temperature" -msgstr "Temperatuur" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:205 -msgid "Temperature reading" -msgstr "Temperatuur meting" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:213 core/models.py:673 -#: core/models.py:685 core/models.py:686 core/models.py:689 -#: core/templates/core/weight_confirm_delete.html:7 -#: core/templates/core/weight_form.html:13 -#: core/templates/core/weight_list.html:4 -#: core/templates/core/weight_list.html:7 -#: core/templates/core/weight_list.html:12 -#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 -#: reports/graphs/weight_change.py:30 -#: reports/templates/reports/report_list.html:22 -#: reports/templates/reports/weight_change.html:4 -#: reports/templates/reports/weight_change.html:8 -msgid "Weight" -msgstr "Gewicht" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:219 +#: babybuddy/templates/babybuddy/nav-dropdown.html:199 msgid "Weight entry" msgstr "Gewicht ingave" -#: babybuddy/templates/babybuddy/nav-dropdown.html:233 +#: babybuddy/templates/babybuddy/nav-dropdown.html:255 msgid "Activities" msgstr "Activiteiten" -#: babybuddy/templates/babybuddy/nav-dropdown.html:240 +#: babybuddy/templates/babybuddy/nav-dropdown.html:262 #: reports/graphs/diaperchange_lifetimes.py:27 msgid "Changes" msgstr "Verschoningen" -#: babybuddy/templates/babybuddy/nav-dropdown.html:246 +#: babybuddy/templates/babybuddy/nav-dropdown.html:268 msgid "Change" msgstr "Verschoning" -#: babybuddy/templates/babybuddy/nav-dropdown.html:253 +#: babybuddy/templates/babybuddy/nav-dropdown.html:275 #: babybuddy/templates/babybuddy/welcome.html:34 core/models.py:313 #: core/templates/core/feeding_confirm_delete.html:7 #: core/templates/core/feeding_form.html:13 @@ -425,33 +247,15 @@ msgstr "Verschoning" msgid "Feedings" msgstr "Voedingen" -#: babybuddy/templates/babybuddy/nav-dropdown.html:267 core/models.py:437 -#: core/models.py:438 core/models.py:441 -#: core/templates/core/pumping_confirm_delete.html:7 -#: core/templates/core/pumping_form.html:13 -#: core/templates/core/pumping_list.html:4 -#: core/templates/core/pumping_list.html:7 -#: core/templates/core/pumping_list.html:12 -#: reports/templates/reports/pumping_amounts.html:4 -#: reports/templates/reports/pumping_amounts.html:8 -msgid "Pumping" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:273 -#, fuzzy -#| msgid "Weight entry" -msgid "Pumping entry" -msgstr "Gewicht ingave" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:286 +#: babybuddy/templates/babybuddy/nav-dropdown.html:294 msgid "Sleep entry" -msgstr "Slaap ingave" +msgstr "Slaap invoer" -#: babybuddy/templates/babybuddy/nav-dropdown.html:299 +#: babybuddy/templates/babybuddy/nav-dropdown.html:307 msgid "Tummy Time entry" -msgstr "Buikliggen ingave" +msgstr "Buikliggen invoer" -#: babybuddy/templates/babybuddy/nav-dropdown.html:323 +#: babybuddy/templates/babybuddy/nav-dropdown.html:346 #: babybuddy/templates/babybuddy/user_list.html:17 #: babybuddy/templates/babybuddy/user_password_form.html:7 #: babybuddy/templates/babybuddy/user_settings_form.html:7 core/models.py:556 @@ -459,23 +263,23 @@ msgstr "Buikliggen ingave" msgid "User" msgstr "Gebruiker" -#: babybuddy/templates/babybuddy/nav-dropdown.html:325 +#: babybuddy/templates/babybuddy/nav-dropdown.html:348 msgid "Password" msgstr "Wachtwoord" -#: babybuddy/templates/babybuddy/nav-dropdown.html:329 +#: babybuddy/templates/babybuddy/nav-dropdown.html:352 msgid "Logout" msgstr "Uitloggen" -#: babybuddy/templates/babybuddy/nav-dropdown.html:332 +#: babybuddy/templates/babybuddy/nav-dropdown.html:355 msgid "Site" msgstr "Site" -#: babybuddy/templates/babybuddy/nav-dropdown.html:333 +#: babybuddy/templates/babybuddy/nav-dropdown.html:356 msgid "API Browser" msgstr "API browser" -#: babybuddy/templates/babybuddy/nav-dropdown.html:335 +#: babybuddy/templates/babybuddy/nav-dropdown.html:358 #: babybuddy/templates/babybuddy/user_confirm_delete.html:7 #: babybuddy/templates/babybuddy/user_form.html:13 #: babybuddy/templates/babybuddy/user_list.html:4 @@ -483,15 +287,19 @@ msgstr "API browser" msgid "Users" msgstr "Gebruikers" -#: babybuddy/templates/babybuddy/nav-dropdown.html:338 +#: babybuddy/templates/babybuddy/nav-dropdown.html:250 +msgid "Backend Admin" +msgstr "Technisch beheer" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:361 msgid "Support" msgstr "Ondersteuning" -#: babybuddy/templates/babybuddy/nav-dropdown.html:340 +#: babybuddy/templates/babybuddy/nav-dropdown.html:363 msgid "Source Code" msgstr "Broncode" -#: babybuddy/templates/babybuddy/nav-dropdown.html:342 +#: babybuddy/templates/babybuddy/nav-dropdown.html:365 msgid "Chat / Support" msgstr "Chat / Hulp" @@ -502,7 +310,6 @@ msgstr "Chat / Hulp" #: core/templates/timeline/_timeline.html:73 #: dashboard/templates/cards/feeding_day.html:43 #: dashboard/templates/cards/feeding_last_method.html:34 -#: dashboard/templates/cards/sleep_recent.html:43 #: dashboard/templates/cards/statistics.html:34 msgid "Previous" msgstr "Vorige" @@ -514,7 +321,6 @@ msgstr "Vorige" #: core/templates/timeline/_timeline.html:80 #: dashboard/templates/cards/feeding_day.html:47 #: dashboard/templates/cards/feeding_last_method.html:38 -#: dashboard/templates/cards/sleep_recent.html:47 #: dashboard/templates/cards/statistics.html:38 msgid "Next" msgstr "Volgende" @@ -570,13 +376,8 @@ msgstr "Verwijder" #: core/templates/core/timer_confirm_delete.html:17 #: core/templates/core/tummytime_confirm_delete.html:14 #: core/templates/core/weight_confirm_delete.html:14 -#, python-format -msgid "" -"

Are you sure you want to delete %(object)s?

" -msgstr "" -"

Ben je zeker dat je %(object)s wil " -"verwijderen?

" +msgid "

Are you sure you want to delete %(object)s?

" +msgstr "

Ben je zeker dat je %(object)s wil verwijderen?

" #: babybuddy/templates/babybuddy/user_confirm_delete.html:19 #: core/templates/core/bmi_confirm_delete.html:18 @@ -601,7 +402,7 @@ msgstr "Annuleer" #: babybuddy/templates/babybuddy/user_form.html:28 #: babybuddy/templates/babybuddy/user_list.html:65 msgid "Create User" -msgstr "Maak gebruiker" +msgstr "Gebruiken Aanmaken" #: babybuddy/templates/babybuddy/user_form.html:16 #: core/templates/core/bmi_form.html:15 core/templates/core/child_form.html:16 @@ -617,7 +418,7 @@ msgstr "Maak gebruiker" #: core/templates/core/tummytime_form.html:15 #: core/templates/core/weight_form.html:15 msgid "Update" -msgstr "Update" +msgstr "Bijwerken" #: babybuddy/templates/babybuddy/user_form.html:24 #: core/templates/core/bmi_form.html:23 core/templates/core/child_form.html:24 @@ -632,7 +433,6 @@ msgstr "Update" #: core/templates/core/timer_form.html:18 #: core/templates/core/tummytime_form.html:23 #: core/templates/core/weight_form.html:23 -#, python-format msgid "

Update %(object)s

" msgstr "

Update %(object)s

" @@ -648,7 +448,7 @@ msgstr "Achternaam" #: babybuddy/templates/babybuddy/user_list.html:20 msgid "Email" -msgstr "E-mail" +msgstr "Email" #: babybuddy/templates/babybuddy/user_list.html:21 msgid "Staff" @@ -662,7 +462,7 @@ msgstr "Actief" #: babybuddy/templates/babybuddy/user_list.html:23 #: core/templates/core/bmi_list.html:24 core/templates/core/bmi_list.html:38 #: core/templates/core/child_list.html:28 -#: core/templates/core/child_list.html:43 +#: core/templates/core/child_list.html:48 #: core/templates/core/diaperchange_list.html:24 #: core/templates/core/diaperchange_list.html:40 #: core/templates/core/feeding_list.html:24 @@ -700,6 +500,11 @@ msgstr "Verander wachtwoord" msgid "User Settings" msgstr "Gebruikers instellingen" +#: babybuddy/templates/babybuddy/messages.html:23 +#: babybuddy/templates/babybuddy/user_settings_form.html:26 +msgid "Error: Some fields have errors. See below for details." +msgstr "Fout: Sommige velden bevatten fouten. Kijk hieronder voor details." + #: babybuddy/templates/babybuddy/user_settings_form.html:33 msgid "User Profile" msgstr "Gebruikersprofiel" @@ -726,12 +531,9 @@ msgid "Welcome to Baby Buddy!" msgstr "Welkom op Baby Buddy!" #: babybuddy/templates/babybuddy/welcome.html:14 -msgid "" -"Learn about and predict baby's needs without (as much) guess work " -"by using Baby Buddy to track —" -msgstr "" -"Leer over en voorspel de behoeftes van de baby (zo goed als mogelijk) gokwerk door het gebruiken van Baby Buddy om alles te loggen —" +msgid "Learn about and predict baby's needs without\n" +" (as much) guess work by using Baby Buddy to track —" +msgstr "Leer over en voorspel de baby's behoeftes zonder (al te veel) te gokken door Baby Buddy te gebruiken en alles bij te houden —" #: babybuddy/templates/babybuddy/welcome.html:26 core/models.py:249 #: core/templates/core/diaperchange_confirm_delete.html:7 @@ -743,22 +545,19 @@ msgstr "" msgid "Diaper Changes" msgstr "Luierverschoningen" -#: babybuddy/templates/babybuddy/welcome.html:56 -msgid "" -"As the amount of entries grows, Baby Buddy will help parents and caregivers " -"to identify small patterns in baby's habits using the dashboard and graphs. " -"Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and " -"dads with 2AM feedings and changings. To get started, just click the button " -"below to add your first (or second, third, etc.) child!" -msgstr "" -"Als de ingevulde gegevens begint toe te nemen, zal Baby Buddy helpen om " -"ouders en verzorgers kleine patronen te vinden in de baby's hun omgeving " -"door het gebruik van het dashboard en grafieken. Baby Buddy is " -"gebruiksvriendelijk op mobiele toestellen en gebruikt een donker thema, om " -"de ogen van mama en papa niet te overbelasten bij het ingeven van de " -"gegevens midden in de nacht.\n" -"Om te beginnen, klik op onderstaande knop om je eerste (of tweede, " -"derde, ...) kind!" +#: babybuddy/templates/babybuddy/welcome.html:54 +msgid "As the amount of entries grows, Baby Buddy will help\n" +" parents and caregivers to identify small patterns in baby's habits\n" +" using the dashboard and graphs. Baby Buddy is mobile-friendly and\n" +" uses a dark theme to help weary moms and dads with 2AM feedings and\n" +" changings. To get started, just click the button below to add your\n" +" first (or second, third, etc.) child!" +msgstr "Hoe meer gegevens er zijn ingevoerd, hoe meer Baby Buddy subtiele patronen kan oppikken in de gewoonten van de baby.\n" +"Dit ten bate van de ouders en verzorgers die dit kunnen waarnemen via het \n" +"dashboard en de grafieken. Baby Buddy is geschikt voor gebruik op mobiele toestellen en\n" +"gebruikt een donkere kleurstelling om de nachtelijke ogen van mama en papa niet te overbelasten.\n" +"Om te beginnen, klik op onderstaande knop om je\n" +"eerste (of tweede, derde, ...) kind toe te voegen!" #: babybuddy/templates/babybuddy/welcome.html:68 #: core/templates/core/child_form.html:8 core/templates/core/child_form.html:18 @@ -766,52 +565,6 @@ msgstr "" msgid "Add a Child" msgstr "Voeg een kind toe" -#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 -msgid "Bad Request" -msgstr "" - -#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 -msgid "Permission Denied" -msgstr "Toegang geweigerd" - -#: babybuddy/templates/error/403.html:9 -msgid "" -"You do not have permission to access this resource. Contact a site " -"administrator for assistance." -msgstr "" -"Je hebt niet de juiste machtigingen voor deze module. Contacteer de site " -"beheerder voor hulp." - -#: babybuddy/templates/error/403_csrf_bad_origin.html:14 -msgid "How to Fix" -msgstr "" - -#: babybuddy/templates/error/403_csrf_bad_origin.html:15 -#, python-format -msgid "" -"Add %(origin)s to the CSRF_TRUSTED_ORIGINS " -"environment variable. If multiple origins are required separate with commas." -msgstr "" - -#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 -msgid "Page Not Found" -msgstr "" - -#: babybuddy/templates/error/404.html:9 -#, python-format -msgid "The path %(request_path)s does not exist." -msgstr "" - -#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 -msgid "Server Error" -msgstr "" - -#: babybuddy/templates/error/base.html:14 -#, fuzzy -#| msgid "Welcome to Baby Buddy!" -msgid "Return to Baby Buddy" -msgstr "Welkom op Baby Buddy!" - #: babybuddy/templates/registration/login.html:32 msgid "Login" msgstr "Login" @@ -822,7 +575,7 @@ msgstr "Wachtwoord vergeten?" #: babybuddy/templates/registration/password_reset_complete.html:4 msgid "Password Reset Successfully!" -msgstr "Wachtwoord is opnieuw ingesteld!" +msgstr "Het wachtwoord is opnieuw ingesteld!" #: babybuddy/templates/registration/password_reset_complete.html:8 msgid "Your password has been set. You may go ahead and log in now." @@ -836,12 +589,10 @@ msgstr "Inloggen" msgid "Password Reset" msgstr "Wachtwoord opnieuw instellen" -#: babybuddy/templates/registration/password_reset_confirm.html:13 -msgid "" -"Oh snap! The two passwords did not match. Please try again." -msgstr "" -"Helaas! De twee wachtwoorden kwamen niet overeen. Probeer " -"het opnieuw." +#: babybuddy/templates/registration/password_reset_confirm.html:12 +msgid "

Oh snap! The\n" +" two passwords did not match. Please try again.

" +msgstr "

Oeps! De wachtwoorden zijn niet gelijk. Probeer het opnieuw.

" #: babybuddy/templates/registration/password_reset_confirm.html:22 msgid "Enter your new password in each field below." @@ -856,75 +607,35 @@ msgstr "Wachtwoord opnieuw instellen" msgid "Reset Email Sent" msgstr "Email voor een nieuw wachtwoord is verzonden" -#: babybuddy/templates/registration/password_reset_done.html:9 -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"We hebben je de instructies gemaild voor het instellen van een wachtwoord, " -"als een account bestaat met het ingevoerde email adres. Je zou deze " -"kortelings ontvangen." - -#: babybuddy/templates/registration/password_reset_done.html:15 -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Als je geen email ontvangen hebt, controleer je spam folder, en het email " -"adres dat je ingegeven hebt." - -#: babybuddy/templates/registration/password_reset_email.html:2 -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:4 -msgid "Please go to the following page and choose a new password:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:8 -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:10 -msgid "Thanks for using Baby Buddy!" -msgstr "" +#: babybuddy/templates/registration/password_reset_done.html:8 +msgid "

We've emailed you instructions for setting your\n" +" password, if an account exists with the email you entered. You\n" +" should receive them shortly.

\n" +"

If you don't receive an email, please make sure you've\n" +" entered the address you registered with, and check your spam\n" +" folder.

" +msgstr "

We hebben je de instructies gemaild voor het instellen van een wachtwoord, als een account bestaat met het ingevoerde email adres. Je zou deze kortelings ontvangen.

\n" +"

Als je geen email ontvangen hebt, controleer je spam folder, en het email adres dat je ingegeven hebt.

" #: babybuddy/templates/registration/password_reset_form.html:4 msgid "Forgot Password" msgstr "Wachtwoord vergeten" -#: babybuddy/templates/registration/password_reset_form.html:9 -msgid "" -"Enter your account email address in the form below. If the address is valid, " -"you will receive instructions for resetting your password." -msgstr "" -"Geef het email adres in van je account hieronder. Als het email adres " -"correct is, ontvang je daar de instructies voor het opnieuw instellen van je " -"wachtwoord." - -#: babybuddy/views.py:43 -msgid "Forbidden" -msgstr "" - -#: babybuddy/views.py:44 -msgid "CSRF verification failed. Request aborted." -msgstr "" +#: babybuddy/templates/registration/password_reset_form.html:8 +msgid "

Enter your account email address in the\n" +" form below. If the address is valid, you will receive instructions for\n" +" resetting your password.

" +msgstr "

Geef je email adres in het formulier hieronder. Als het adres juist is, ontvang je de instructies voor het opnieuw instellen van je wachtwoord.

" #: babybuddy/views.py:102 -#, python-format msgid "User %(username)s added!" msgstr "Gebruiker %(username)s toegevoegd!" #: babybuddy/views.py:113 -#, python-format msgid "User %(username)s updated." msgstr "Gebruiker %(username)s is geupdate." #: babybuddy/views.py:125 -#, python-brace-format msgid "User {user} deleted." msgstr "Gebruiker {user} verwijderd." @@ -940,79 +651,30 @@ msgstr "Gebruiker API key opnieuw gegenereerd." msgid "Settings saved!" msgstr "Instellingen opgeslagen!" -#: core/filters.py:11 core/models.py:96 core/models.py:115 -msgid "Tag" -msgstr "" - #: core/forms.py:120 msgid "Name does not match child name." msgstr "Naam komt niet overeen met de naam van het kind." -#: core/forms.py:136 -msgid "" -"Click on the tags to add (+) or remove (-) tags or use the text editor to " -"create new tags." -msgstr "" - #: core/models.py:28 msgid "Date can not be in the future." msgstr "Datum kan niet in de toekomst zijn." #: core/models.py:42 msgid "Start time must come before end time." -msgstr "Stat tijd moet voor de eind tijd zijn." +msgstr "Start tijd moet voor de eind tijd zijn." #: core/models.py:45 msgid "Duration too long." -msgstr "Duur is te lang." +msgstr "Tijdsduur is te lang." #: core/models.py:61 msgid "Another entry intersects the specified time period." -msgstr "Een andere ingave valt gelijk met deze tijdsperiode." +msgstr "Een andere invoer overlapt met deze tijdsperiode." #: core/models.py:75 msgid "Date/time can not be in the future." msgstr "Datum/tijd kan niet in de toekomst zijn." -#: core/models.py:84 core/models.py:237 -#: core/templates/core/diaperchange_list.html:30 -msgid "Color" -msgstr "Kleur" - -#: core/models.py:90 -#, fuzzy -#| msgid "Last Name" -msgid "Last used" -msgstr "Achternaam" - -#: core/models.py:97 core/templates/core/bmi_list.html:30 -#: core/templates/core/diaperchange_list.html:32 -#: core/templates/core/feeding_list.html:35 -#: core/templates/core/head_circumference_list.html:30 -#: core/templates/core/height_list.html:30 -#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 -#: core/templates/core/temperature_list.html:30 -#: core/templates/core/tummytime_list.html:31 -#: core/templates/core/weight_list.html:30 -msgid "Tags" -msgstr "" - -#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 -#: core/templates/core/bmi_list.html:25 -#: core/templates/core/feeding_list.html:25 -#: core/templates/core/head_circumference_list.html:25 -#: core/templates/core/height_list.html:25 -#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 -#: reports/graphs/diaperchange_amounts.py:37 -#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 -#: reports/graphs/feeding_duration.py:56 -#: reports/graphs/head_circumference_change.py:28 -#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:60 -#: reports/graphs/sleep_pattern.py:153 reports/graphs/sleep_totals.py:59 -#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 -msgid "Date" -msgstr "Datum" - #: core/models.py:163 msgid "First name" msgstr "Voornaam" @@ -1067,19 +729,22 @@ msgstr "Groen" msgid "Yellow" msgstr "Geel" -#: core/models.py:239 core/models.py:303 core/models.py:428 -#: core/templates/core/diaperchange_list.html:31 -#: core/templates/core/pumping_list.html:29 -msgid "Amount" -msgstr "Hoeveelheid" +#: core/models.py:84 core/models.py:237 +#: core/templates/core/diaperchange_list.html:30 +msgid "Color" +msgstr "Kleur" + +#: core/models.py:180 +msgid "Wet and/or solid is required." +msgstr "Nat en/of vast is vereist." #: core/models.py:276 core/models.py:453 core/models.py:543 core/models.py:632 msgid "Start time" -msgstr "Start tijd" +msgstr "Starttijd" #: core/models.py:277 core/models.py:454 core/models.py:546 core/models.py:633 msgid "End time" -msgstr "Eind tijd" +msgstr "Eindtijd" #: core/models.py:279 core/models.py:456 core/models.py:549 core/models.py:635 #: core/templates/core/feeding_list.html:34 @@ -1087,7 +752,7 @@ msgstr "Eind tijd" #: core/templates/core/timer_list.html:29 #: core/templates/core/tummytime_list.html:29 msgid "Duration" -msgstr "Duur" +msgstr "Tijdsduur" #: core/models.py:283 msgid "Breast milk" @@ -1097,14 +762,6 @@ msgstr "Borstvoeding" msgid "Formula" msgstr "Formule" -#: core/models.py:285 -msgid "Fortified breast milk" -msgstr "Versterkte moedermelk" - -#: core/models.py:286 -msgid "Solid food" -msgstr "Vast voedsel" - #: core/models.py:289 core/templates/core/feeding_list.html:30 msgid "Type" msgstr "Type" @@ -1115,31 +772,25 @@ msgstr "Fles" #: core/models.py:294 msgid "Left breast" -msgstr "Linkse borst" +msgstr "Linkerborst" #: core/models.py:295 msgid "Right breast" -msgstr "Rechtse borst" - -#: core/models.py:296 -msgid "Both breasts" -msgstr "Beide borsten" - -#: core/models.py:297 -msgid "Parent fed" -msgstr "Ouder voeding" - -#: core/models.py:298 -msgid "Self fed" -msgstr "Zelf voeding" +msgstr "Rechterborst" #: core/models.py:301 core/templates/core/feeding_list.html:29 msgid "Method" msgstr "Methode" -#: core/models.py:452 -msgid "Napping" -msgstr "Dutten" +#: core/models.py:239 core/models.py:303 core/models.py:428 +#: core/templates/core/diaperchange_list.html:31 +#: core/templates/core/pumping_list.html:29 +msgid "Amount" +msgstr "Hoeveelheid" + +#: core/models.py:243 +msgid "Only \"Bottle\" method is allowed with \"Formula\" type." +msgstr "Alleen \"Fles\" methode is toegestaan met type \"melkpoeder\"." #: core/models.py:540 core/templates/core/timer_list.html:25 msgid "Name" @@ -1159,7 +810,6 @@ msgid "Timers" msgstr "Timers" #: core/models.py:568 -#, python-brace-format msgid "Timer #{id}" msgstr "Timer #{id}" @@ -1167,28 +817,21 @@ msgstr "Timer #{id}" msgid "Milestone" msgstr "Mijlpaal" -#: core/templates/core/bmi_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Sleep Entry" -msgid "Delete a BMI Entry" -msgstr "Verwijder een slaap ingave" - -#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 -#: core/templates/core/bmi_form.html:27 -#, fuzzy -#| msgid "Add a Sleep Entry" -msgid "Add a BMI Entry" -msgstr "Voeg een slaap ingave toe" - -#: core/templates/core/bmi_list.html:15 -msgid "Add BMI" -msgstr "" - -#: core/templates/core/bmi_list.html:70 -#, fuzzy -#| msgid "No timer entries found." -msgid "No BMI entries found." -msgstr "Geen timer gegevens gevonden." +#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 +#: core/templates/core/bmi_list.html:25 +#: core/templates/core/feeding_list.html:25 +#: core/templates/core/head_circumference_list.html:25 +#: core/templates/core/height_list.html:25 +#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 +#: reports/graphs/diaperchange_amounts.py:37 +#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 +#: reports/graphs/feeding_duration.py:56 +#: reports/graphs/head_circumference_change.py:28 +#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:58 +#: reports/graphs/sleep_pattern.py:151 reports/graphs/sleep_totals.py:59 +#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 +msgid "Date" +msgstr "Datum" #: core/templates/core/child_confirm_delete.html:4 msgid "Delete a Child" @@ -1196,7 +839,7 @@ msgstr "Verwijder een kind" #: core/templates/core/child_confirm_delete.html:20 msgid "To confirm this action. Type the full name of the child below." -msgstr "Om te bevestigen, geef de volledige naam van het kind in." +msgstr "Voer ter bevestiging de de volledige naam van het kind in." #: core/templates/core/child_detail.html:23 #: dashboard/templates/dashboard/dashboard.html:32 @@ -1206,17 +849,17 @@ msgstr "Geboren" #: core/templates/core/child_detail.html:24 #: dashboard/templates/dashboard/dashboard.html:33 msgid "Age" -msgstr "Leedtijd" +msgstr "Leeftijd" -#: core/templates/core/child_list.html:15 -msgid "Add Child" -msgstr "Voeg kind toe" +#: core/templates/timeline/_timeline.html:38 +msgid "%(since)s ago (%(time)s)" +msgstr "%(since)s geleden (%(time)s)" #: core/templates/core/child_list.html:27 msgid "Birth Date" -msgstr "Geboorte datum" +msgstr "Geboortedatum" -#: core/templates/core/child_list.html:62 +#: core/templates/core/child_list.html:67 msgid "No children found." msgstr "Geen kinderen gevonden" @@ -1241,18 +884,14 @@ msgstr "Voeg een luierverschoning toe" msgid "Add" msgstr "Toevoegen" -#: core/templates/core/diaperchange_list.html:15 -msgid "Add Diaper Change" -msgstr "Voeg luierverschoning toe" - -#: core/templates/core/diaperchange_list.html:29 -msgid "Contents" -msgstr "Inhoud" - #: core/templates/core/diaperchange_list.html:77 msgid "No diaper changes found." msgstr "Geen luierverschoning gevonden." +#: core/templates/core/diaperchange_list.html:63 +msgid "Add a Change" +msgstr "Voeg een verversing toe" + #: core/templates/core/feeding_confirm_delete.html:4 msgid "Delete a Feeding" msgstr "Verwijder een maaltijd" @@ -1266,10 +905,6 @@ msgstr "Update een maaltijd" msgid "Add a Feeding" msgstr "Voeg een maaltijd toe" -#: core/templates/core/feeding_list.html:15 -msgid "Add Feeding" -msgstr "Voeg eten toe" - #: core/templates/core/feeding_list.html:33 msgid "Amt." msgstr "Stuks" @@ -1278,58 +913,6 @@ msgstr "Stuks" msgid "No feedings found." msgstr "Geen maaltijden gevonden." -#: core/templates/core/head_circumference_confirm_delete.html:4 -#, fuzzy -#| msgid "Head Circumference entry" -msgid "Delete a Head Circumference Entry" -msgstr "Hoofd omtrek ingave" - -#: core/templates/core/head_circumference_form.html:8 -#: core/templates/core/head_circumference_form.html:17 -#: core/templates/core/head_circumference_form.html:27 -#, fuzzy -#| msgid "Head Circumference entry" -msgid "Add a Head Circumference Entry" -msgstr "Hoofd omtrek ingave" - -#: core/templates/core/head_circumference_list.html:15 -#, fuzzy -#| msgid "Head Circumference" -msgid "Add Head Circumference" -msgstr "Hoofd omtrek" - -#: core/templates/core/head_circumference_list.html:70 -#, fuzzy -#| msgid "No timer entries found." -msgid "No head circumference entries found." -msgstr "Geen timer gegevens gevonden." - -#: core/templates/core/height_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Weight Entry" -msgid "Delete a Height Entry" -msgstr "Verwijder een gewicht" - -#: core/templates/core/height_form.html:8 -#: core/templates/core/height_form.html:17 -#: core/templates/core/height_form.html:27 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add a Height Entry" -msgstr "Voeg een gewicht toe" - -#: core/templates/core/height_list.html:15 -#, fuzzy -#| msgid "Add Weight" -msgid "Add Height" -msgstr "Voeg gewicht toe" - -#: core/templates/core/height_list.html:70 -#, fuzzy -#| msgid "No weight entries found." -msgid "No height entries found." -msgstr "Geen gewicht gegevens gevonden." - #: core/templates/core/note_confirm_delete.html:4 msgid "Delete a Note" msgstr "Verwijder een notitie" @@ -1342,68 +925,21 @@ msgstr "Pas een notitie aan" msgid "Add a Note" msgstr "Voeg een notitie toe" -#: core/templates/core/note_list.html:15 -msgid "Add Note" -msgstr "Voeg notitie toe" - #: core/templates/core/note_list.html:64 msgid "No notes found." msgstr "Geen notities gevonden." -#: core/templates/core/pumping_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Weight Entry" -msgid "Delete a Pumping Entry" -msgstr "Verwijder een gewicht" - -#: core/templates/core/pumping_form.html:8 -#: core/templates/core/pumping_form.html:17 -#: core/templates/core/pumping_form.html:27 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add a Pumping Entry" -msgstr "Voeg een gewicht toe" - -#: core/templates/core/pumping_list.html:15 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add Pumping Entry" -msgstr "Voeg een gewicht toe" - -#: core/templates/core/pumping_list.html:66 -#, fuzzy -#| msgid "No timer entries found." -msgid "No pumping entries found." -msgstr "Geen timer gegevens gevonden." - -#: core/templates/core/quick_timer_nav.html:9 -#: core/templates/core/quick_timer_nav.html:29 -#: core/templates/core/timer_nav.html:37 -msgid "Quick Start Timer" -msgstr "Snel start timer" - -#: core/templates/core/quick_timer_nav.html:19 -#: core/templates/core/timer_nav.html:28 -#, fuzzy -#| msgid "Quick Start Timer" -msgid "Quick Start Timer For…" -msgstr "Snel start timer" - #: core/templates/core/sleep_confirm_delete.html:4 msgid "Delete a Sleep Entry" -msgstr "Verwijder een slaap ingave" +msgstr "Verwijder een slaap invoer" #: core/templates/core/sleep_form.html:6 msgid "Update a Sleep Entry" -msgstr "Update een slaap ingave" +msgstr "Werk een slaap invoer bij" #: core/templates/core/sleep_form.html:8 core/templates/core/sleep_form.html:27 msgid "Add a Sleep Entry" -msgstr "Voeg een slaap ingave toe" - -#: core/templates/core/sleep_list.html:15 -msgid "Add Sleep" -msgstr "Voeg slaap toe" +msgstr "Voeg een slaap invoer toe" #: core/templates/core/sleep_list.html:25 #: core/templates/core/timer_form.html:12 @@ -1426,50 +962,10 @@ msgstr "Dutje" msgid "No sleep entries found." msgstr "Geen slaap gegevens gevonden" -#: core/templates/core/temperature_confirm_delete.html:4 -msgid "Delete a Temperature Reading" -msgstr "Verwijder een temperatuur meting" - -#: core/templates/core/temperature_form.html:8 -#: core/templates/core/temperature_form.html:17 -msgid "Add a Temperature Reading" -msgstr "Voeg een temperatuurmeting toe" - -#: core/templates/core/temperature_form.html:27 -msgid "Add a Temperature Entry" -msgstr "Voeg een temperatuur toe" - -#: core/templates/core/temperature_list.html:15 -msgid "Add Temperature Reading" -msgstr "Voeg temperatuurmeting toe" - -#: core/templates/core/temperature_list.html:70 -msgid "No temperature entries found." -msgstr "Geen temperaturen gevonden." - #: core/templates/core/timer_confirm_delete.html:5 -#, python-format msgid "Delete %(object)s" msgstr "Verwijder %(object)s" -#: core/templates/core/timer_confirm_delete_inactive.html:5 -msgid "Delete All Inactive Timers" -msgstr "Verwijder alle inactieve timers" - -#: core/templates/core/timer_confirm_delete_inactive.html:10 -msgid "Delete Inactive" -msgstr "Verwijder inactief" - -#: core/templates/core/timer_confirm_delete_inactive.html:17 -#, fuzzy, python-format -#| msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" -msgid "Are you sure you want to delete %(number)s inactive timer?" -msgid_plural "Are you sure you want to delete %(number)s inactive timers?" -msgstr[0] "" -"Ben je zeker dat je %(number)s inactieve timer%(plural)s wil verwijderen?" -msgstr[1] "" -"Ben je zeker dat je %(number)s inactieve timer%(plural)s wil verwijderen?" - #: core/templates/core/timer_detail.html:28 msgid "Started" msgstr "Gestart" @@ -1478,25 +974,16 @@ msgstr "Gestart" msgid "Stopped" msgstr "Gestopt" -#: core/templates/core/timer_detail.html:34 -#, python-format -msgid "%(timer)s created by %(user)s" -msgstr "%(timer)s gemaakt door %(user)s" +#: core/templates/core/timer_detail.html:26 +msgid "%(timer)s created by %(object.user)s" +msgstr "%(timer)s is aangemaakt door %(object.user)s" #: core/templates/core/timer_detail.html:63 msgid "Timer actions" msgstr "Timer acties" -#: core/templates/core/timer_detail.html:77 -msgid "Restart timer" -msgstr "" - -#: core/templates/core/timer_detail.html:84 -msgid "Delete timer" -msgstr "Verwijder timer" - #: core/templates/core/timer_form.html:22 -#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:15 +#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:23 msgid "Start Timer" msgstr "Start timer" @@ -1504,30 +991,30 @@ msgstr "Start timer" msgid "No timer entries found." msgstr "Geen timer gegevens gevonden." -#: core/templates/core/timer_list.html:68 -msgid "Delete Inactive Timers" -msgstr "Verwijder inactieve timers" +#: babybuddy/templates/babybuddy/nav-dropdown.html:32 +#: core/templates/core/timer_nav.html:18 +msgid "Quick Start Timer" +msgstr "Snel start timer" -#: core/templates/core/timer_nav.html:20 +#: core/templates/core/timer_nav.html:28 msgid "View Timers" msgstr "Bekijk timers" -#: core/templates/core/timer_nav.html:44 +#: core/templates/core/timer_nav.html:32 #: dashboard/templates/cards/timer_list.html:6 msgid "Active Timers" msgstr "Actieve timers" -#: core/templates/core/timer_nav.html:50 +#: core/templates/core/timer_nav.html:38 #: dashboard/templates/cards/diaperchange_last.html:17 #: dashboard/templates/cards/diaperchange_types.html:12 #: dashboard/templates/cards/feeding_day.html:20 #: dashboard/templates/cards/feeding_day.html:52 #: dashboard/templates/cards/feeding_last.html:17 #: dashboard/templates/cards/feeding_last_method.html:43 +#: dashboard/templates/cards/sleep_day.html:14 #: dashboard/templates/cards/sleep_last.html:17 #: dashboard/templates/cards/sleep_naps_day.html:18 -#: dashboard/templates/cards/sleep_recent.html:20 -#: dashboard/templates/cards/sleep_recent.html:52 #: dashboard/templates/cards/tummytime_day.html:14 msgid "None" msgstr "Geen" @@ -1545,251 +1032,90 @@ msgstr "Pas een buikligging ingave aan" msgid "Add a Tummy Time Entry" msgstr "Voeg een buikligging toe" -#: core/templates/core/tummytime_list.html:15 -msgid "Add Tummy Time" -msgstr "Voeg buikligging toe" - #: core/templates/core/tummytime_list.html:67 msgid "No tummy time entries found." msgstr "Geen buikligging gegevens gevonden." #: core/templates/core/weight_confirm_delete.html:4 msgid "Delete a Weight Entry" -msgstr "Verwijder een gewicht" +msgstr "Verwijder een gewichtsinvoer" #: core/templates/core/weight_form.html:8 #: core/templates/core/weight_form.html:17 #: core/templates/core/weight_form.html:27 msgid "Add a Weight Entry" -msgstr "Voeg een gewicht toe" - -#: core/templates/core/weight_list.html:15 -msgid "Add Weight" -msgstr "Voeg gewicht toe" +msgstr "Voeg een gewichtsinvoer toe" #: core/templates/core/weight_list.html:70 msgid "No weight entries found." -msgstr "Geen gewicht gegevens gevonden." +msgstr "Geen gewicht invoeren gevonden." -#: core/templates/core/widget_tag_editor.html:22 -#, fuzzy -#| msgid "Last name" -msgid "Tag name" -msgstr "Achternaam" - -#: core/templates/core/widget_tag_editor.html:27 -msgid "Recently used:" -msgstr "" - -#: core/templates/core/widget_tag_editor.html:45 -msgctxt "Error modal" -msgid "Error" -msgstr "" - -#: core/templates/core/widget_tag_editor.html:50 -msgctxt "Error modal" -msgid "An error ocurred." -msgstr "" - -#: core/templates/core/widget_tag_editor.html:51 -msgctxt "Error modal" -msgid "Invalid tag name." -msgstr "" - -#: core/templates/core/widget_tag_editor.html:52 -msgctxt "Error modal" -msgid "Failed to create tag." -msgstr "" - -#: core/templates/core/widget_tag_editor.html:53 -msgctxt "Error modal" -msgid "Failed to obtain tag data." -msgstr "" - -#: core/templates/core/widget_tag_editor.html:58 -msgctxt "Error modal" -msgid "Close" -msgstr "" - -#: core/templates/timeline/_timeline.html:38 -#, python-format -msgid "%(since)s ago (%(time)s)" -msgstr "%(since)s geleden (%(time)s)" - -#: core/templates/timeline/_timeline.html:44 -#, fuzzy, python-format -#| msgid "Duration too long." -msgid "Duration: %(duration)s" -msgstr "Duur is te lang." - -#: core/templates/timeline/_timeline.html:53 -#, python-format -msgid "%(since)s since previous" -msgstr "%(since)s sinds vorige" - -#: core/templates/timeline/_timeline.html:61 -#: dashboard/templates/dashboard/child_button_group.html:20 -msgid "Edit" -msgstr "Aanpassen" - -#: core/templates/timeline/_timeline.html:85 -msgid "No events" -msgstr "Geen gebeurtenissen" - -#: core/templatetags/datetime.py:60 -msgid "Today" -msgstr "vandaag" - -#: core/templatetags/datetime.py:75 -msgid "{}, {}" -msgstr "" - -#: core/templatetags/duration.py:25 -msgid "0 days" -msgstr "0 dagen" - -#: core/templatetags/duration.py:111 -#: dashboard/templates/cards/diaperchange_types.html:49 -msgid "today" -msgstr "vandaag" - -#: core/templatetags/duration.py:113 -#: dashboard/templates/cards/diaperchange_types.html:51 -msgid "yesterday" -msgstr "gisteren" - -#: core/templatetags/duration.py:116 -#, fuzzy -#| msgid "%(key)s days ago" -msgid " days ago" -msgstr "%(key)s dagen geleden" - -#: core/timeline.py:53 -#, python-format -msgid "%(child)s started tummy time!" -msgstr "%(child)s is begonnen met buikligging!" - -#: core/timeline.py:65 -#, python-format -msgid "%(child)s finished tummy time." -msgstr "%(child)s is gestopt met buikligging." - -#: core/timeline.py:91 -#, python-format -msgid "%(child)s fell asleep." -msgstr "%(child)s is in slaap gevallen." - -#: core/timeline.py:103 -#, python-format -msgid "%(child)s woke up." -msgstr "%(child)s is wakker geworden." - -#: core/timeline.py:137 -#, python-format -msgid "Amount: %(amount).0f" -msgstr "Hoeveelheid: %(amount).0f" +#: core/timeline.py:164 +msgid "%(child)s had a diaper change." +msgstr "%(child)s luier is verschoond." #: core/timeline.py:145 -#, python-format msgid "%(child)s started feeding." msgstr "%(child)s is begonnen met eten." #: core/timeline.py:158 -#, python-format msgid "%(child)s finished feeding." msgstr "%(child)s is gestopt met eten." -#: core/timeline.py:185 -#, fuzzy, python-format -#| msgid "%(child)s had a diaper change." -msgid "%(child)s had a %(type)s diaper change." -msgstr "%(child)s had een luierverschoning" +#: core/timeline.py:91 +msgid "%(child)s fell asleep." +msgstr "%(child)s is in slaap gevallen." -#: core/utils.py:40 -#, python-format -msgid "%(hours)s hour" -msgid_plural "%(hours)s hours" -msgstr[0] "%(hours)s uur" -msgstr[1] "%(hours)s uren" +#: core/timeline.py:103 +msgid "%(child)s woke up." +msgstr "%(child)s is wakker geworden." -#: core/utils.py:44 -#, python-format -msgid "%(minutes)s minute" -msgid_plural "%(minutes)s minutes" -msgstr[0] "%(minutes)s minuut" -msgstr[1] "%(minutes)s minuten" +#: core/timeline.py:53 +msgid "%(child)s started tummy time!" +msgstr "%(child)s is begonnen met buikligging!" -#: core/utils.py:50 -#, python-format -msgid "%(seconds)s second" -msgid_plural "%(seconds)s seconds" -msgstr[0] "%(seconds)s seconde" -msgstr[1] "%(seconds)s seconden" +#: core/timeline.py:65 +msgid "%(child)s finished tummy time." +msgstr "%(child)s is gestopt met buikligging." #: core/views.py:33 -#, python-format msgid "%(model)s entry for %(child)s added!" msgstr "%(model)s ingave voor %(child)s toegevoegd!" #: core/views.py:35 core/views.py:308 -#, python-format msgid "%(model)s entry added!" msgstr "%(model)s is toegevoegd!" #: core/views.py:61 core/views.py:316 -#, python-format msgid "%(model)s entry for %(child)s updated." msgstr "%(model)s voor %(child)s is bijgewerkt." #: core/views.py:63 -#, python-format msgid "%(model)s entry updated." msgstr "%(model)s is bijgewerkt" -#: core/views.py:69 core/views.py:146 -#, python-format -msgid "%(model)s entry deleted." -msgstr "%(model)s verwijderd." - #: core/views.py:115 -#, python-format msgid "%(first_name)s %(last_name)s added!" msgstr "%(first_name)s %(last_name)s is toegevoegd!" -#: core/views.py:366 -#, python-format -msgid "%(model)s reading added!" -msgstr "%(model)s meting toegevoegd!" - -#: core/views.py:374 -#, python-format -msgid "%(model)s reading for %(child)s updated." -msgstr "%(model)s meting voor %(child)s bijgewerkt." - -#: core/views.py:483 -#, python-format +#: core/views.py:478 msgid "%(timer)s stopped." msgstr "%(timer)s is gestopt." -#: core/views.py:506 -msgid "All inactive timers deleted." -msgstr "Alle inactieve timers verwijderd." - -#: core/views.py:516 -msgid "No inactive timers exist." -msgstr "Geen inactieve timers gevonden." - #: dashboard/templates/cards/diaperchange_last.html:6 msgid "Last Diaper Change" msgstr "Laatste luierverschoning" -#: dashboard/templates/cards/diaperchange_last.html:12 -#: dashboard/templates/cards/feeding_last.html:12 -#: dashboard/templates/cards/sleep_last.html:12 -#: dashboard/templates/cards/tummytime_last.html:13 -#, python-format -msgid "
%(since)s ago
%(time)s" -msgstr "
%(since)s geleden
%(time)s" +#: dashboard/templates/cards/diaperchange_last.html:8 +#: dashboard/templates/cards/feeding_last.html:8 +#: dashboard/templates/cards/sleep_last.html:8 +#: dashboard/templates/cards/tummytime_last.html:8 +msgid "%(time)s ago" +msgstr "%(time)s geleden" + +#: dashboard/templates/cards/tummytime_last.html:18 +msgid "Never" +msgstr "Nooit" #: dashboard/templates/cards/diaperchange_types.html:14 msgid "Past Week" @@ -1803,29 +1129,18 @@ msgstr "nat" msgid "solid" msgstr "vast" +#: dashboard/templates/cards/diaperchange_types.html:49 +msgid "today" +msgstr "vandaag" + +#: dashboard/templates/cards/diaperchange_types.html:51 +msgid "yesterday" +msgstr "gisteren" + #: dashboard/templates/cards/diaperchange_types.html:53 -#, python-format msgid "%(key)s days ago" msgstr "%(key)s dagen geleden" -#: dashboard/templates/cards/feeding_day.html:6 -msgid "Today's Feeding" -msgstr "Voeding vandaag" - -#: dashboard/templates/cards/feeding_day.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s feeding" -msgid_plural "%(counter)s feedings" -msgstr[0] "%(count)s slaap gegevens" -msgstr[1] "%(count)s slaap gegevens" - -#: dashboard/templates/cards/feeding_day.html:32 -#: dashboard/templates/cards/sleep_recent.html:32 -#, python-format -msgid "
%(since)s
" -msgstr "" - #: dashboard/templates/cards/feeding_last.html:6 msgid "Last Feeding" msgstr "Laatste maaltijd" @@ -1834,20 +1149,22 @@ msgstr "Laatste maaltijd" msgid "Last Feeding Method" msgstr "Laatste maaltijd methode" -#: dashboard/templates/cards/feeding_last_method.html:19 -msgid "most recent" -msgstr "Meest recente" +#: dashboard/templates/cards/sleep_day.html:6 +msgid "Today's Sleep" +msgstr "Slaap vandaag" -#: dashboard/templates/cards/feeding_last_method.html:21 -#, fuzzy, python-format -#| msgid "%(n)s feeding%(plural)s ago" -msgid "%(n)s feeding ago" -msgid_plural "%(n)s feedings ago" -msgstr[0] "%(n)s maaltijd%(plural)s geleden" -msgstr[1] "%(n)s maaltijd%(plural)s geleden" +#: dashboard/templates/cards/sleep_day.html:11 +#: dashboard/templates/cards/sleep_naps_day.html:13 +#: dashboard/templates/cards/tummytime_day.html:11 +msgid "None yet today" +msgstr "Nog geen vandaag" -#: dashboard/templates/cards/sleep_last.html:6 -msgid "Last Sleep" +#: dashboard/templates/cards/sleep_day.html:20 +msgid "%(count)s sleep entries" +msgstr "%(count)s slaap gegevens" + +#: dashboard/templates/cards/sleep_last.html:4 +msgid "Last Slept" msgstr "Laatste slaap" #: dashboard/templates/cards/sleep_naps_day.html:6 @@ -1855,26 +1172,8 @@ msgid "Today's Naps" msgstr "Dutjes vandaag" #: dashboard/templates/cards/sleep_naps_day.html:12 -#, fuzzy, python-format -#| msgid "%(count)s nap%(plural)s" -msgid "%(count)s nap" -msgid_plural "%(count)s naps" -msgstr[0] "%(count)s dutje%(plural)s" -msgstr[1] "%(count)s dutje%(plural)s" - -#: dashboard/templates/cards/sleep_recent.html:6 -#, fuzzy -#| msgid "Last Sleep" -msgid "Recent Sleep" -msgstr "Laatste slaap" - -#: dashboard/templates/cards/sleep_recent.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s sleep" -msgid_plural "%(counter)s sleep" -msgstr[0] "%(count)s slaap gegevens" -msgstr[1] "%(count)s slaap gegevens" +msgid "%(count)s nap%(plural)s" +msgstr "%(count)s dutje%(plural)s" #: dashboard/templates/cards/statistics.html:7 msgid "Statistics" @@ -1884,29 +1183,19 @@ msgstr "Statistieken" msgid "Not enough data" msgstr "Niet genoeg gegevens" -#: dashboard/templates/cards/statistics.html:42 -msgid "No data yet" -msgstr "Nog geen data" - #: dashboard/templates/cards/timer_list.html:12 -#, fuzzy, python-format -#| msgid "%(count)s active timer%(plural)s" -msgid "%(count)s active timer" -msgid_plural "%(count)s active timers" -msgstr[0] "%(count)s actieve timer%(plural)s" -msgstr[1] "%(count)s actieve timer%(plural)s" +msgid "%(count)s active timer%(plural)s" +msgstr "%(count)s actieve timer%(plural)s" -#: dashboard/templates/cards/timer_list.html:27 -#, python-format -msgid "Started by %(user)s at %(start)s" -msgstr "Gestart door %(user)s op %(start)s" +#: dashboard/templates/cards/timer_list.html:19 +msgid "Started by %(instance.user)s at %(start)s" +msgstr "Gestart door %(instance.user)s op %(start)s" #: dashboard/templates/cards/tummytime_day.html:6 msgid "Today's Tummy Time" msgstr "Buikligging tijd vandaag" #: dashboard/templates/cards/tummytime_day.html:22 -#, python-format msgid "%(duration)s at %(end)s" msgstr "%(duration)s om %(end)s" @@ -1914,111 +1203,73 @@ msgstr "%(duration)s om %(end)s" msgid "Last Tummy Time" msgstr "Laatste buikligging moment" -#: dashboard/templates/cards/tummytime_last.html:18 -msgid "Never" -msgstr "Nooit" - #: dashboard/templates/dashboard/child_button_group.html:3 msgid "Child actions" msgstr "Kind acties" -#: dashboard/templates/dashboard/child_button_group.html:12 -#: reports/templates/reports/base.html:9 -#: reports/templates/reports/report_list.html:4 -msgid "Reports" -msgstr "Rapporten" +#: reports/templates/reports/diaperchange_types.html:4 +#: reports/templates/reports/diaperchange_types.html:8 +#: reports/templates/reports/report_list.html:12 +msgid "Diaper Change Types" +msgstr "Luierverschoningstype" -#: dashboard/templatetags/cards.py:357 +#: reports/templates/reports/diaperchange_lifetimes.html:4 +#: reports/templates/reports/diaperchange_lifetimes.html:8 +#: reports/templates/reports/report_list.html:13 +msgid "Diaper Lifetimes" +msgstr "Luier levensduur" + +#: reports/templates/reports/report_list.html:15 +msgid "Feeding Durations (Average)" +msgstr "Etensduur (gemiddelde)" + +#: reports/templates/reports/report_list.html:19 +#: reports/templates/reports/sleep_pattern.html:4 +#: reports/templates/reports/sleep_pattern.html:8 +msgid "Sleep Pattern" +msgstr "Slaappatroon" + +#: reports/templates/reports/report_list.html:20 +#: reports/templates/reports/sleep_totals.html:4 +#: reports/templates/reports/sleep_totals.html:8 +msgid "Sleep Totals" +msgstr "Totaal Slaap" + +#: dashboard/templatetags/cards.py:420 +msgid "Diaper change frequency" +msgstr "Luierverschoningsfrequentie" + +#: dashboard/templatetags/cards.py:466 +msgid "Feeding frequency" +msgstr "Eetfrequentie" + +#: dashboard/templatetags/cards.py:328 msgid "Average nap duration" msgstr "Gemiddelde duur dutjes" -#: dashboard/templatetags/cards.py:364 +#: dashboard/templatetags/cards.py:335 msgid "Average naps per day" msgstr "Gemiddelde dutjes per dag" -#: dashboard/templatetags/cards.py:374 +#: dashboard/templatetags/cards.py:345 msgid "Average sleep duration" -msgstr "Gemiddelde slaap duur" +msgstr "Gemiddelde slaapduur" -#: dashboard/templatetags/cards.py:381 +#: dashboard/templatetags/cards.py:352 msgid "Average awake duration" msgstr "Gemiddeld wakker duur" -#: dashboard/templatetags/cards.py:391 +#: dashboard/templatetags/cards.py:362 msgid "Weight change per week" msgstr "Gewichtsverandering per week" -#: dashboard/templatetags/cards.py:401 -#, fuzzy -#| msgid "Weight change per week" -msgid "Height change per week" -msgstr "Gewichtsverandering per week" - -#: dashboard/templatetags/cards.py:411 -#, fuzzy -#| msgid "Head Circumference entry" -msgid "Head circumference change per week" -msgstr "Hoofd omtrek ingave" - -#: dashboard/templatetags/cards.py:421 -#, fuzzy -#| msgid "Weight change per week" -msgid "BMI change per week" -msgstr "Gewichtsverandering per week" - -#: dashboard/templatetags/cards.py:439 -#, fuzzy -#| msgid "Feeding frequency (past 3 days)" -msgid "Diaper change frequency (past 3 days)" -msgstr "Voeding frequenties (afgelopen 3 dagen)" - -#: dashboard/templatetags/cards.py:443 -#, fuzzy -#| msgid "Feeding frequency (past 2 weeks)" -msgid "Diaper change frequency (past 2 weeks)" -msgstr "Voeding frequenties (afgelopen 2 weken)" - -#: dashboard/templatetags/cards.py:449 -msgid "Diaper change frequency" -msgstr "Luierverschoning frequentie" - -#: dashboard/templatetags/cards.py:485 -msgid "Feeding frequency (past 3 days)" -msgstr "Voeding frequenties (afgelopen 3 dagen)" - -#: dashboard/templatetags/cards.py:489 -msgid "Feeding frequency (past 2 weeks)" -msgstr "Voeding frequenties (afgelopen 2 weken)" - -#: dashboard/templatetags/cards.py:495 -msgid "Feeding frequency" -msgstr "Eten geven frequentie" - -#: reports/graphs/bmi_change.py:27 -#, fuzzy -#| msgid "Weight" -msgid "BMI" -msgstr "Gewichts" - -#: reports/graphs/diaperchange_amounts.py:27 -msgid "Diaper change amount" -msgstr "Aantal luiers verschoond" - -#: reports/graphs/diaperchange_amounts.py:36 -msgid "Diaper Change Amounts" -msgstr "Aantal luierverschoningen" - -#: reports/graphs/diaperchange_amounts.py:39 -msgid "Change amount" -msgstr "Aantal luiers" - #: reports/graphs/diaperchange_lifetimes.py:35 msgid "Diaper Lifetimes" msgstr "Luier levensduur" #: reports/graphs/diaperchange_lifetimes.py:36 msgid "Time between changes (hours)" -msgstr "Tijd tussen verschoningen (uur)" +msgstr "Tijd tussen verschoningen (uren)" #: reports/graphs/diaperchange_types.py:41 reports/graphs/feeding_amounts.py:58 msgid "Total" @@ -2026,71 +1277,37 @@ msgstr "Totaal" #: reports/graphs/diaperchange_types.py:48 msgid "Diaper Change Types" -msgstr "Luierverschoning types" +msgstr "Luierverschoningstypes" #: reports/graphs/diaperchange_types.py:51 msgid "Number of changes" msgstr "Aantal verschoningen" -#: reports/graphs/feeding_amounts.py:69 -#, fuzzy -#| msgid "Total Feeding Amounts" -msgid "Total Feeding Amount by Type" -msgstr "Totaal hoeveelheid voeding" - -#: reports/graphs/feeding_amounts.py:72 -msgid "Feeding amount" -msgstr "Voeding hoeveelheid" - #: reports/graphs/feeding_duration.py:38 msgid "Average duration" msgstr "Gemiddelde duur" #: reports/graphs/feeding_duration.py:46 msgid "Total feedings" -msgstr "Totaal aantal maaltijden" +msgstr "Totaal aantal voedingen" #: reports/graphs/feeding_duration.py:55 msgid "Average Feeding Durations" -msgstr "Gemiddelde duur eten" +msgstr "Gemiddelde voedingsduur" #: reports/graphs/feeding_duration.py:58 msgid "Average duration (minutes)" -msgstr "Gemiddelde duur (minuten)" +msgstr "Gemiddelde tijdsduur (minuten)" #: reports/graphs/feeding_duration.py:60 msgid "Number of feedings" -msgstr "Aantal maaltijden" +msgstr "Aantal voedingen" -#: reports/graphs/head_circumference_change.py:27 -#, fuzzy -#| msgid "Head Circumference" -msgid "Head Circumference" -msgstr "Hoofd omtrek" - -#: reports/graphs/height_change.py:27 -#, fuzzy -#| msgid "Weight" -msgid "Height" -msgstr "Gewichts" - -#: reports/graphs/pumping_amounts.py:59 -#, fuzzy -#| msgid "Total Feeding Amounts" -msgid "Total Pumping Amount" -msgstr "Totaal hoeveelheid voeding" - -#: reports/graphs/pumping_amounts.py:62 -#, fuzzy -#| msgid "Feeding Amounts" -msgid "Pumping Amount" -msgstr "Hoeveelheid voedingen" - -#: reports/graphs/sleep_pattern.py:150 +#: reports/graphs/sleep_pattern.py:148 msgid "Sleep Pattern" msgstr "Slaappatroon" -#: reports/graphs/sleep_pattern.py:167 +#: reports/graphs/sleep_pattern.py:165 msgid "Time of day" msgstr "Tijd van de dag" @@ -2106,9 +1323,420 @@ msgstr "Totale slaap" msgid "Hours of sleep" msgstr "Uren slaap" +#: reports/graphs/weight_change.py:27 +msgid "Weight" +msgstr "Gewicht" + +#: reports/templates/reports/feeding_duration.html:4 +#: reports/templates/reports/feeding_duration.html:8 +msgid "Average Feeding Durations" +msgstr "Gemiddelde voedingsduur" + +#: dashboard/templates/dashboard/child_button_group.html:12 +#: reports/templates/reports/base.html:9 +#: reports/templates/reports/report_list.html:4 +msgid "Reports" +msgstr "Rapportages" + +#: reports/templates/reports/report_base.html:19 +msgid "There is no enough data to generate this report." +msgstr "Er zijn niet voldoende gegevens om deze rapportage te maken." + +#: core/models.py:296 +msgid "Both breasts" +msgstr "Beide borsten" + +#: babybuddy/settings/base.py:173 +msgid "German" +msgstr "Duits" + +#: babybuddy/settings/base.py:177 +msgid "Spanish" +msgstr "Spaans" + +#: babybuddy/settings/base.py:178 +msgid "Swedish" +msgstr "Zweeds" + +#: babybuddy/settings/base.py:179 +msgid "Turkish" +msgstr "Turks" + +#: babybuddy/templates/error/403.html:9 +msgid "You do not have permission to access this resource. Contact a site administrator for assistance." +msgstr "Je hebt niet de juiste machtigingen voor deze module. Neem contact op met een site beheerder voor hulp." + +#: babybuddy/templates/babybuddy/nav-dropdown.html:75 +#: babybuddy/templates/babybuddy/nav-dropdown.html:179 core/models.py:506 +#: core/models.py:519 core/models.py:520 core/models.py:523 +#: core/templates/core/temperature_confirm_delete.html:7 +#: core/templates/core/temperature_form.html:13 +#: core/templates/core/temperature_list.html:4 +#: core/templates/core/temperature_list.html:7 +#: core/templates/core/temperature_list.html:12 +#: core/templates/core/temperature_list.html:29 +msgid "Temperature" +msgstr "Temperatuur" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:185 +msgid "Temperature reading" +msgstr "Temperatuurmeting" + +#: babybuddy/templates/babybuddy/welcome.html:14 +msgid "Learn about and predict baby's needs without (as much) guess work by using Baby Buddy to track —" +msgstr "Leer over en voorspel de behoeftes van de baby zonder (zo goed als mogelijk) gokwerk door het gebruiken van Baby Buddy om alles te loggen —" + +#: babybuddy/templates/babybuddy/welcome.html:56 +msgid "As the amount of entries grows, Baby Buddy will help parents and caregivers to identify small patterns in baby's habits using the dashboard and graphs. Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and dads with 2AM feedings and changings. To get started, just click the button below to add your first (or second, third, etc.) child!" +msgstr "Hoe meer gegevens er zijn ingevoerd, hoe meer Baby Buddy subtiele patronen kan oppikken in de gewoonten van de baby. Dit ten bate van de ouders en verzorgers die dit kunnen waarnemen via het dashboard en de grafieken. Baby Buddy is geschikt voor gebruik op mobiele toestellen en gebruikt een donkere kleurstelling om de nachtelijke ogen van mama en papa niet te overbelasten.\n" +"Om te beginnen, klik op onderstaande knop om je eerste (of tweede, derde, ...) kind toe te voegen!" + +#: babybuddy/templates/registration/password_reset_confirm.html:13 +msgid "Oh snap! The two passwords did not match. Please try again." +msgstr "Helaas! De twee wachtwoorden kwamen niet overeen. Probeer het opnieuw." + +#: babybuddy/templates/registration/password_reset_done.html:9 +msgid "We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly." +msgstr "We hebben je instructies gemaild voor het instellen van je wachtwoord, mits er een account bestaat met het ingevoerde email adres. Je zou deze spoedig moeten ontvangen." + +#: babybuddy/templates/registration/password_reset_done.html:15 +msgid "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder." +msgstr "Als je geen email ontvangen hebt, controleer dan je spam folder, en het email adres dat je ingevoerd hebt." + +#: babybuddy/templates/registration/password_reset_form.html:9 +msgid "Enter your account email address in the form below. If the address is valid, you will receive instructions for resetting your password." +msgstr "Voer het email adres in van je account hieronder in. Als het email adres correct is, ontvang je daar de instructies voor het opnieuw instellen van je wachtwoord." + +#: core/models.py:285 +msgid "Fortified breast milk" +msgstr "Verrijkte moedermelk" + +#: core/templates/core/temperature_confirm_delete.html:4 +msgid "Delete a Temperature Reading" +msgstr "Verwijder een temperatuurmeting" + +#: core/templates/core/temperature_form.html:8 +#: core/templates/core/temperature_form.html:17 +msgid "Add a Temperature Reading" +msgstr "Voeg een temperatuurmeting toe" + +#: core/templates/core/temperature_form.html:27 +msgid "Add a Temperature Entry" +msgstr "Voeg een temperatuur toe" + +#: core/templates/core/temperature_list.html:70 +msgid "No temperature entries found." +msgstr "Geen temperaturen gevonden." + +#: core/templates/core/timer_detail.html:34 +msgid "%(timer)s created by %(user)s" +msgstr "%(timer)s gemaakt door %(user)s" + +#: core/utils.py:40 +msgid "%(hours)s hour" +msgid_plural "%(hours)s hours" +msgstr[0] "%(hours)s uur" +msgstr[1] "%(hours)s uren" + +#: core/utils.py:44 +msgid "%(minutes)s minute" +msgid_plural "%(minutes)s minutes" +msgstr[0] "%(minutes)s minuut" +msgstr[1] "%(minutes)s minuten" + +#: core/utils.py:50 +msgid "%(seconds)s second" +msgid_plural "%(seconds)s seconds" +msgstr[0] "%(seconds)s seconde" +msgstr[1] "%(seconds)s seconden" + +#: core/views.py:69 core/views.py:146 +msgid "%(model)s entry deleted." +msgstr "%(model)s verwijderd." + +#: core/views.py:366 +msgid "%(model)s reading added!" +msgstr "%(model)s meting toegevoegd!" + +#: core/views.py:374 +msgid "%(model)s reading for %(child)s updated." +msgstr "%(model)s meting voor %(child)s bijgewerkt." + +#: dashboard/templates/cards/timer_list.html:27 +msgid "Started by %(user)s at %(start)s" +msgstr "Gestart door %(user)s op %(start)s" + +#: reports/templates/reports/feeding_amounts.html:4 +#: reports/templates/reports/feeding_amounts.html:8 +#: reports/templates/reports/report_list.html:14 +msgid "Feeding Amounts" +msgstr "Hoeveelheid voedingen" + +#: reports/graphs/feeding_amounts.py:27 +msgid "Total feeding amount" +msgstr "Totale hoeveelheid voeding" + +#: reports/graphs/feeding_amounts.py:36 +msgid "Total Feeding Amounts" +msgstr "Totale hoeveelheid voeding" + +#: reports/graphs/feeding_amounts.py:72 +msgid "Feeding amount" +msgstr "Voedingshoeveelheid" + +#: reports/templates/reports/report_base.html:17 +msgid "There is not enough data to generate this report." +msgstr "Er zijn niet voldoende gegevens om deze rapportage te maken." + +#: babybuddy/models.py:69 +msgid "Timezone" +msgstr "Tijdzone" + +#: babybuddy/templates/admin/base_site.html:4 +#: babybuddy/templates/admin/base_site.html:7 +#: babybuddy/templates/babybuddy/nav-dropdown.html:359 +msgid "Database Admin" +msgstr "Database beheerder" + +#: core/templates/core/child_list.html:15 +msgid "Add Child" +msgstr "Voeg kind toe" + +#: core/templates/core/diaperchange_list.html:15 +msgid "Add Diaper Change" +msgstr "Voeg luierverschoning toe" + +#: core/templates/core/feeding_list.html:15 +msgid "Add Feeding" +msgstr "Voeg voedingsmoment toe" + +#: core/templates/core/note_list.html:15 +msgid "Add Note" +msgstr "Voeg notitie toe" + +#: core/templates/core/sleep_list.html:15 +msgid "Add Sleep" +msgstr "Voeg slaap toe" + +#: core/templates/core/temperature_list.html:15 +msgid "Add Temperature Reading" +msgstr "Voeg temperatuurmeting toe" + +#: core/templates/core/timer_confirm_delete_inactive.html:5 +msgid "Delete All Inactive Timers" +msgstr "Verwijder alle inactieve timers" + +#: core/templates/core/timer_confirm_delete_inactive.html:10 +msgid "Delete Inactive" +msgstr "Verwijder inactieve" + +#: core/templates/core/timer_confirm_delete_inactive.html:17 +msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" +msgstr "Ben je zeker dat je %(number)s inactieve timer%(plural)s wil verwijderen?" + +#: core/templates/core/timer_list.html:68 +msgid "Delete Inactive Timers" +msgstr "Verwijder inactieve timers" + +#: core/templates/core/tummytime_list.html:15 +msgid "Add Tummy Time" +msgstr "Voeg buikligging toe" + +#: core/templates/core/weight_list.html:15 +msgid "Add Weight" +msgstr "Voeg gewicht toe" + +#: core/views.py:501 +msgid "All inactive timers deleted." +msgstr "Alle inactieve timers verwijderd." + +#: core/views.py:511 +msgid "No inactive timers exist." +msgstr "Geen inactieve timers gevonden." + +#: dashboard/templates/cards/feeding_last_method.html:19 +msgid "most recent" +msgstr "meest recente" + +#: dashboard/templates/cards/feeding_last_method.html:21 +msgid "%(n)s feeding%(plural)s ago" +msgstr "%(n)s maaltijd%(plural)s geleden" + +#: dashboard/templates/cards/sleep_last.html:6 +msgid "Last Sleep" +msgstr "Laatste slaap" + +#: reports/templates/reports/report_list.html:11 +msgid "Diaper Change Amounts" +msgstr "Aantal luiers verschoond" + +#: reports/graphs/diaperchange_amounts.py:27 +msgid "Diaper change amount" +msgstr "Aantal luiers verschoond" + +#: reports/graphs/diaperchange_amounts.py:36 +msgid "Diaper Change Amounts" +msgstr "Aantal luierverschoningen" + +#: reports/graphs/diaperchange_amounts.py:39 +msgid "Change amount" +msgstr "Aantal luiers" + +#: reports/templates/reports/diaperchange_amounts.html:4 +#: reports/templates/reports/diaperchange_amounts.html:8 +msgid "Diaper Amounts" +msgstr "Aantal luiers" + +#: babybuddy/models.py:21 +msgid "If supported by browser, the dashboard will only refresh when visible, and also when receiving focus." +msgstr "Indien ondersteund door de browser, zal het dashboard alleen worden vernieuwd indien zichtbaar en als het de focus krijgt." + +#: babybuddy/models.py:40 +msgid "Hide Empty Dashboard Cards" +msgstr "Verberg Lege Dashboard Kaarten" + +#: babybuddy/models.py:43 +msgid "Hide data older than" +msgstr "Verberg data ouder dan" + +#: babybuddy/models.py:45 +msgid "This setting controls which data will be shown in the dashboard." +msgstr "Deze instelling bepaald welke data zichtbaar is op het dashboard." + +#: babybuddy/models.py:51 +msgid "show all data" +msgstr "laat alle data zien" + +#: babybuddy/models.py:52 +msgid "1 day" +msgstr "1 dag" + +#: babybuddy/models.py:53 +msgid "2 days" +msgstr "2 dagen" + +#: babybuddy/models.py:54 +msgid "3 days" +msgstr "3 dagen" + +#: babybuddy/models.py:55 +msgid "1 week" +msgstr "1 week" + +#: babybuddy/models.py:56 +msgid "4 weeks" +msgstr "4 weken" + +#: babybuddy/settings/base.py:168 +msgid "Dutch" +msgstr "Nederlands" + +#: babybuddy/settings/base.py:172 +msgid "Finnish" +msgstr "Fins" + +#: babybuddy/settings/base.py:174 +msgid "Italian" +msgstr "Italiaans" + +#: babybuddy/settings/base.py:175 +msgid "Polish" +msgstr "Pools" + +#: babybuddy/settings/base.py:176 +msgid "Portuguese" +msgstr "Portugees" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:118 +#: core/templates/timeline/timeline.html:4 +#: core/templates/timeline/timeline.html:7 +#: dashboard/templates/dashboard/child_button_group.html:9 +msgid "Timeline" +msgstr "Tijdslijn" + +#: core/models.py:286 +msgid "Solid food" +msgstr "Vast voedsel" + +#: core/models.py:297 +msgid "Parent fed" +msgstr "Ouder voeding" + +#: core/models.py:298 +msgid "Self fed" +msgstr "Zelf voeding" + +#: core/templates/core/diaperchange_list.html:29 +msgid "Contents" +msgstr "Inhoud" + +#: core/templates/core/timer_detail.html:77 +msgid "Restart timer" +msgstr "Herstart timer" + +#: core/templates/core/timer_detail.html:84 +msgid "Delete timer" +msgstr "Verwijder timer" + +#: core/templatetags/datetime.py:60 +msgid "Today" +msgstr "Vandaag" + +#: core/templatetags/datetime.py:75 +msgid "{}, {}" +msgstr "{}, {}" + +#: core/templatetags/duration.py:25 +msgid "0 days" +msgstr "0 dagen" + +#: core/timeline.py:137 +msgid "Amount: %(amount).0f" +msgstr "Hoeveelheid: %(amount).0f" + +#: core/timeline.py:157 +msgid "Contents: %(contents)s" +msgstr "Inhoud: %(contents)s" + +#: dashboard/templates/cards/diaperchange_last.html:12 +#: dashboard/templates/cards/feeding_last.html:12 +#: dashboard/templates/cards/sleep_last.html:12 +#: dashboard/templates/cards/tummytime_last.html:13 +msgid "
%(since)s ago
%(time)s" +msgstr "
%(since)s geleden
%(time)s" + +#: dashboard/templates/cards/feeding_day.html:6 +msgid "Today's Feeding" +msgstr "Voeding vandaag" + +#: dashboard/templates/cards/feeding_day.html:20 +msgid "%(count)s feeding entries" +msgstr "%(count)s voedingen" + +#: dashboard/templates/cards/statistics.html:42 +msgid "No data yet" +msgstr "Nog geen gegevens" + +#: reports/templates/reports/report_list.html:21 +msgid "Tummy Time Durations (Sum)" +msgstr "Duur Buikliggen (Som)" + +#: core/templates/timeline/_timeline.html:61 +#: dashboard/templates/dashboard/child_button_group.html:20 +msgid "Edit" +msgstr "Aanpassen" + +#: dashboard/templatetags/cards.py:456 +msgid "Feeding frequency (past 3 days)" +msgstr "Voedingsfrequenties (afgelopen 3 dagen)" + +#: dashboard/templatetags/cards.py:460 +msgid "Feeding frequency (past 2 weeks)" +msgstr "Voedingsfrequenties (afgelopen 2 weken)" + #: reports/graphs/tummytime_duration.py:34 msgid "Total duration" -msgstr "Totaal duur" +msgstr "Totale tijdsduur" #: reports/graphs/tummytime_duration.py:41 #: reports/graphs/tummytime_duration.py:55 @@ -2117,90 +1745,412 @@ msgstr "Aantal sessies" #: reports/graphs/tummytime_duration.py:50 msgid "Total Tummy Time Durations" -msgstr "Totaal Buikligggen Duur" +msgstr "Buikliggingen Totale Tijdsduur" #: reports/graphs/tummytime_duration.py:53 msgid "Total duration (minutes)" -msgstr "Totaal duur (minuten)" - -#: reports/graphs/weight_change.py:27 -msgid "Weight" -msgstr "Gewichts" - -#: reports/templates/reports/diaperchange_amounts.html:4 -#: reports/templates/reports/diaperchange_amounts.html:8 -msgid "Diaper Amounts" -msgstr "Aantal luiers" - -#: reports/templates/reports/diaperchange_lifetimes.html:4 -#: reports/templates/reports/diaperchange_lifetimes.html:8 -#: reports/templates/reports/report_list.html:13 -msgid "Diaper Lifetimes" -msgstr "Luier levensduur" - -#: reports/templates/reports/diaperchange_types.html:4 -#: reports/templates/reports/diaperchange_types.html:8 -#: reports/templates/reports/report_list.html:12 -msgid "Diaper Change Types" -msgstr "Luierverschoning type" - -#: reports/templates/reports/feeding_amounts.html:4 -#: reports/templates/reports/feeding_amounts.html:8 -#: reports/templates/reports/report_list.html:14 -msgid "Feeding Amounts" -msgstr "Hoeveelheid voedingen" - -#: reports/templates/reports/feeding_duration.html:4 -#: reports/templates/reports/feeding_duration.html:8 -msgid "Average Feeding Durations" -msgstr "Gemiddelde duur eten" - -#: reports/templates/reports/report_base.html:17 -msgid "There is not enough data to generate this report." -msgstr "Er is niet voldoende data om dit rapport te maken." - -#: reports/templates/reports/report_list.html:10 -msgid "Body Mass Index (BMI)" -msgstr "" - -#: reports/templates/reports/report_list.html:11 -msgid "Diaper Change Amounts" -msgstr "Aantal luiers verschoond" - -#: reports/templates/reports/report_list.html:15 -msgid "Feeding Durations (Average)" -msgstr "Eten geven duur (gemiddelde)" - -#: reports/templates/reports/report_list.html:18 -#, fuzzy -#| msgid "Feeding Amounts" -msgid "Pumping Amounts" -msgstr "Hoeveelheid voedingen" - -#: reports/templates/reports/report_list.html:19 -#: reports/templates/reports/sleep_pattern.html:4 -#: reports/templates/reports/sleep_pattern.html:8 -msgid "Sleep Pattern" -msgstr "slaappatroon" - -#: reports/templates/reports/report_list.html:20 -#: reports/templates/reports/sleep_totals.html:4 -#: reports/templates/reports/sleep_totals.html:8 -msgid "Sleep Totals" -msgstr "Totaal slaapjes" - -#: reports/templates/reports/report_list.html:21 -msgid "Tummy Time Durations (Sum)" -msgstr "Duur Buikliggen (Som)" +msgstr "Totale tijdsduur (minuten)" #: reports/templates/reports/tummytime_duration.html:4 #: reports/templates/reports/tummytime_duration.html:8 msgid "Total Tummy Time Durations" -msgstr "Totaal Buikligggen Duur" +msgstr "Buikliggingen Totale Tijdsduur" -#~ msgid "Today's Sleep" -#~ msgstr "Slaap vandaag" +#: babybuddy/settings/base.py:169 +#, fuzzy +msgid "English (US)" +msgstr "Engels (VS)" + +#: babybuddy/settings/base.py:170 +#, fuzzy +msgid "English (UK)" +msgstr "Engels (VK)" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:171 +msgid "Measurements" +msgstr "Metingen" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:207 core/models.py:369 +#: core/models.py:381 core/models.py:382 core/models.py:385 +#: core/templates/core/height_confirm_delete.html:7 +#: core/templates/core/height_form.html:13 +#: core/templates/core/height_list.html:4 +#: core/templates/core/height_list.html:7 +#: core/templates/core/height_list.html:12 +#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 +#: reports/graphs/height_change.py:30 +#: reports/templates/reports/height_change.html:4 +#: reports/templates/reports/height_change.html:8 +#: reports/templates/reports/report_list.html:17 +msgid "Height" +msgstr "Lengte" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:213 +msgid "Height entry" +msgstr "Lengte invoer" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:221 core/models.py:338 +#: core/models.py:351 core/models.py:352 core/models.py:355 +#: core/templates/core/head_circumference_confirm_delete.html:7 +#: core/templates/core/head_circumference_form.html:13 +#: core/templates/core/head_circumference_list.html:4 +#: core/templates/core/head_circumference_list.html:7 +#: core/templates/core/head_circumference_list.html:12 +#: core/templates/core/head_circumference_list.html:29 +#: reports/graphs/head_circumference_change.py:19 +#: reports/graphs/head_circumference_change.py:30 +#: reports/templates/reports/head_circumference_change.html:4 +#: reports/templates/reports/head_circumference_change.html:8 +#: reports/templates/reports/report_list.html:16 +msgid "Head Circumference" +msgstr "Hoofd omtrek" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:227 +msgid "Head Circumference entry" +msgstr "Hoofd omtrek invoer" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:235 core/models.py:139 +#: core/models.py:151 core/models.py:152 core/models.py:155 +#: core/templates/core/bmi_confirm_delete.html:7 +#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 +#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 +#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 +#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 +#: reports/templates/reports/bmi_change.html:8 +msgid "BMI" +msgstr "BMI" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:241 +msgid "BMI entry" +msgstr "BMI invoer" + +#: core/models.py:452 +msgid "Napping" +msgstr "Dutten" + +#: core/templates/core/bmi_confirm_delete.html:4 +#, fuzzy +msgid "Delete a BMI Entry" +msgstr "Verwijder een slaapinvoer" + +#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 +#: core/templates/core/bmi_form.html:27 +#, fuzzy +msgid "Add a BMI Entry" +msgstr "Voeg een slaapinvoer toe" + +#: core/templates/core/bmi_list.html:15 +msgid "Add BMI" +msgstr "Voeg BMI toe" + +#: core/templates/core/bmi_list.html:70 +#, fuzzy +msgid "No bmi entries found." +msgstr "Geen bmi gegevens gevonden." + +#: core/templates/core/head_circumference_confirm_delete.html:4 +#, fuzzy +msgid "Delete a Head Circumference Entry" +msgstr "Hoofdomtrek invoer" + +#: core/templates/core/head_circumference_form.html:8 +#: core/templates/core/head_circumference_form.html:17 +#: core/templates/core/head_circumference_form.html:27 +#, fuzzy +msgid "Add a Head Circumference Entry" +msgstr "Hoofdomtrek invoer" + +#: core/templates/core/head_circumference_list.html:15 +#, fuzzy +msgid "Add Head Circumference" +msgstr "Hoofdomtrek" + +#: core/templates/core/head_circumference_list.html:70 +#, fuzzy +msgid "No head circumference entries found." +msgstr "Geen hoofdomtrek gegevens gevonden." + +#: core/templates/core/height_confirm_delete.html:4 +#, fuzzy +msgid "Delete a Height Entry" +msgstr "Verwijder lengteinvoer" + +#: core/templates/core/height_form.html:8 +#: core/templates/core/height_form.html:17 +#: core/templates/core/height_form.html:27 +#, fuzzy +msgid "Add a Height Entry" +msgstr "Voeg een lengteinvoer toe" + +#: core/templates/core/height_list.html:15 +#, fuzzy +msgid "Add Height" +msgstr "Voeg lengte toe" + +#: core/templates/core/height_list.html:70 +#, fuzzy +msgid "No height entries found." +msgstr "Geen lengte gegevens gevonden." + +#: core/templates/timeline/_timeline.html:44 +#, fuzzy +msgid "Duration: %(duration)s" +msgstr "Tijdsduur: %(duration)s" + +#: core/templates/timeline/_timeline.html:53 +msgid "%(since)s since previous" +msgstr "%(since)s sinds vorige" + +#: core/templates/timeline/_timeline.html:85 +msgid "No events" +msgstr "Geen gebeurtenissen" + +#: core/timeline.py:185 +#, fuzzy +msgid "%(child)s had a %(type)s diaper change." +msgstr "%(child)s onderging een %(type)s luierverschoning." + +#: dashboard/templatetags/cards.py:372 +#, fuzzy +msgid "Height change per week" +msgstr "Lengte verandering per week" + +#: dashboard/templatetags/cards.py:382 +#, fuzzy +msgid "Head circumference change per week" +msgstr "Hoofdomtrek verandering per week" + +#: dashboard/templatetags/cards.py:392 +#, fuzzy +msgid "BMI change per week" +msgstr "BMI verandering per week" + +#: reports/graphs/bmi_change.py:27 +#, fuzzy +msgid "BMI" +msgstr "BMI" + +#: reports/graphs/feeding_amounts.py:69 +#, fuzzy +msgid "Total Feeding Amount by Type" +msgstr "Totaal hoeveelheid voeding per type" + +#: reports/graphs/head_circumference_change.py:27 +#, fuzzy +msgid "Head Circumference" +msgstr "Hoofdomtrek" + +#: reports/graphs/height_change.py:27 +#, fuzzy +msgid "Height" +msgstr "Lengte" + +#: babybuddy/settings/base.py:167 +msgid "Chinese (simplified)" +msgstr "Chinees (vereenvoudigd)" + +#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 +msgid "Bad Request" +msgstr "Foutief Verzoek" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:14 +msgid "How to Fix" +msgstr "Hoe op te lossen" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:15 +msgid "Add %(origin)s to the CSRF_TRUSTED_ORIGINS environment variable. If multiple origins are required separate with commas." +msgstr "Voeg %(origin)s toe aan de CSRF_TRUSTED_ORIGINS omgevingsvariable. Indien meerdere 'origins' nodig zijn, gebruik dan een komma als scheidingsteken." + +#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 +msgid "Page Not Found" +msgstr "Pagina niet gevonden" + +#: babybuddy/templates/error/404.html:9 +msgid "The path %(request_path)s does not exist." +msgstr "Het pad %(request_path)s bestaat niet." + +#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 +msgid "Server Error" +msgstr "Serverfout" + +#: babybuddy/templates/error/base.html:14 +#, fuzzy +msgid "Return to Baby Buddy" +msgstr "Welkom bij Baby Buddy" + +#: babybuddy/views.py:43 +msgid "Forbidden" +msgstr "Verboden" + +#: babybuddy/views.py:44 +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF verificatie gefaald. Aanvraag afgebroken." + +#: babybuddy/settings/base.py:166 +msgid "Catalan" +msgstr "Catalaans" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:93 +#: babybuddy/templates/babybuddy/nav-dropdown.html:316 core/models.py:437 +#: core/models.py:438 core/models.py:441 +#: core/templates/core/pumping_confirm_delete.html:7 +#: core/templates/core/pumping_form.html:13 +#: core/templates/core/pumping_list.html:4 +#: core/templates/core/pumping_list.html:7 +#: core/templates/core/pumping_list.html:12 +#: reports/templates/reports/pumping_amounts.html:4 +#: reports/templates/reports/pumping_amounts.html:8 +msgid "Pumping" +msgstr "Afkolven" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:322 +msgid "Pumping entry" +msgstr "Afkolf invoer" + +#: core/filters.py:11 core/models.py:96 core/models.py:115 +msgid "Tag" +msgstr "Label" + +#: core/forms.py:136 +msgid "Click on the tags to add (+) or remove (-) tags or use the text editor to create new tags." +msgstr "Klik op het label om deze toe te voegen (+) of te verwijderen (-) of gebruik de tekstverwerker om nieuwe labels te maken." + +#: core/models.py:90 +#, fuzzy +msgid "Last used" +msgstr "Laatste gebruik" + +#: core/models.py:97 core/templates/core/bmi_list.html:30 +#: core/templates/core/diaperchange_list.html:32 +#: core/templates/core/feeding_list.html:35 +#: core/templates/core/head_circumference_list.html:30 +#: core/templates/core/height_list.html:30 +#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 +#: core/templates/core/temperature_list.html:30 +#: core/templates/core/tummytime_list.html:31 +#: core/templates/core/weight_list.html:30 +msgid "Tags" +msgstr "Labels" + +#: core/templates/core/pumping_confirm_delete.html:4 +msgid "Delete a Pumping Entry" +msgstr "Verwijder een afkolf invoer" + +#: core/templates/core/pumping_form.html:8 +#: core/templates/core/pumping_form.html:17 +#: core/templates/core/pumping_form.html:27 +msgid "Add a Pumping Entry" +msgstr "Voeg een afkolf invoer toe" + +#: core/templates/core/pumping_list.html:15 +msgid "Add Pumping Entry" +msgstr "Voeg afkolf invoer toe" + +#: core/templates/core/pumping_list.html:66 +msgid "No pumping entries found." +msgstr "Geen afkolf invoeren gevonden." + +#: core/templates/core/widget_tag_editor.html:22 +#, fuzzy +msgid "Tag name" +msgstr "Labelnaam" + +#: core/templates/core/widget_tag_editor.html:27 +msgid "Recently used:" +msgstr "Recent gebruikt:" + +#: core/templates/core/widget_tag_editor.html:45 +msgctxt "Error modal" +msgid "Error" +msgstr "Fout" + +#: core/templates/core/widget_tag_editor.html:50 +msgctxt "Error modal" +msgid "An error ocurred." +msgstr "Er is een fout opgetreden." + +#: core/templates/core/widget_tag_editor.html:51 +msgctxt "Error modal" +msgid "Invalid tag name." +msgstr "Ongeldige labelnaam." + +#: core/templates/core/widget_tag_editor.html:52 +msgctxt "Error modal" +msgid "Failed to create tag." +msgstr "Fout bij aanmaken label." + +#: core/templates/core/widget_tag_editor.html:53 +msgctxt "Error modal" +msgid "Failed to obtain tag data." +msgstr "Fout bij ophalen van label gegevens." + +#: core/templates/core/widget_tag_editor.html:58 +msgctxt "Error modal" +msgid "Close" +msgstr "Sluiten" + +#: dashboard/templates/cards/feeding_day.html:32 +msgid "
%(since)s
" +msgstr "
%(since)s
" + +#: dashboard/templatetags/cards.py:410 +#, fuzzy +msgid "Diaper change frequency (past 3 days)" +msgstr "Luierverschoningsfrequentie (afgelopen 3 dagen)" + +#: dashboard/templatetags/cards.py:414 +#, fuzzy +msgid "Diaper change frequency (past 2 weeks)" +msgstr "Luierverschoningsfrequentie (afgelopen 2 weken)" + +#: reports/graphs/pumping_amounts.py:57 +msgid "Total Pumping Amount" +msgstr "Totale Afkolf Hoeveelheid" + +#: reports/graphs/pumping_amounts.py:60 +msgid "Pumping Amount" +msgstr "Afkolf hoeveelheid" + +#: reports/templates/reports/report_list.html:10 +msgid "Body Mass Index (BMI)" +msgstr "Body Mass Index (BMI)" + +#: reports/templates/reports/report_list.html:18 +msgid "Pumping Amounts" +msgstr "Afkolf hoeveelheden" + +#: core/templates/core/timer_confirm_delete_inactive.html:17 +#, fuzzy +msgid "Are you sure you want to delete %(number)s inactive timer?" +msgid_plural "Are you sure you want to delete %(number)s inactive timers?" +msgstr[0] "Weet je zeker dat je %(number)s inactieve timer wilt verwijderen?" +msgstr[1] "Weet je zeker dat je %(number)s inactieve timers wilt verwijderen?" + +#: dashboard/templates/cards/feeding_day.html:25 +#, fuzzy +msgid "%(counter)s feeding" +msgid_plural "%(counter)s feedings" +msgstr[0] "%(counter)s voeding" +msgstr[1] "%(counter)s voedingen" + +#: dashboard/templates/cards/feeding_last_method.html:21 +#, fuzzy +msgid "%(n)s feeding ago" +msgid_plural "%(n)s feedings ago" +msgstr[0] "%(n)s maaltijd geleden" +msgstr[1] "%(n)s maaltijden geleden" + +#: dashboard/templates/cards/sleep_naps_day.html:12 +#, fuzzy +msgid "%(count)s nap" +msgid_plural "%(count)s naps" +msgstr[0] "%(count)s dutje" +msgstr[1] "%(count)s dutjes" + +#: dashboard/templates/cards/timer_list.html:12 +#, fuzzy +msgid "%(count)s active timer" +msgid_plural "%(count)s active timers" +msgstr[0] "%(count)s actieve timer" +msgstr[1] "%(count)s actieve timers" -#, python-format -#~ msgid "%(count)s sleep entries" -#~ msgstr "%(count)s slaap gegevens" diff --git a/locale/pl/LC_MESSAGES/django.mo b/locale/pl/LC_MESSAGES/django.mo index 8607e7c8..fe0b1db4 100644 Binary files a/locale/pl/LC_MESSAGES/django.mo and b/locale/pl/LC_MESSAGES/django.mo differ diff --git a/locale/pl/LC_MESSAGES/django.po b/locale/pl/LC_MESSAGES/django.po index 6fa83c20..0eadbbfb 100644 --- a/locale/pl/LC_MESSAGES/django.po +++ b/locale/pl/LC_MESSAGES/django.po @@ -1,23 +1,20 @@ msgid "" msgstr "" -"Project-Id-Version: test\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 21:13+0000\n" -"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " -"|| n%100>=20) ? 1 : 2);\n" +"Project-Id-Version: Baby Buddy\n" +"Language: pl\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: babybuddy/admin.py:12 babybuddy/admin.py:13 -#: babybuddy/templates/babybuddy/nav-dropdown.html:324 +#: babybuddy/templates/babybuddy/nav-dropdown.html:347 #: babybuddy/templates/babybuddy/user_settings_form.html:8 msgid "Settings" msgstr "Ustawienia" -#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:89 +#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:111 #: babybuddy/templates/babybuddy/user_settings_form.html:61 #: dashboard/templates/dashboard/child.html:4 #: dashboard/templates/dashboard/child.html:9 @@ -32,10 +29,8 @@ msgid "Refresh rate" msgstr "Częstotliwość odświeżania" #: babybuddy/models.py:21 -msgid "" -"If supported by browser, the dashboard will only refresh when visible, and " -"also when receiving focus." -msgstr "" +msgid "This setting will only be used when a browser does not support refresh on focus." +msgstr "Ta opcja zostanie użyta jedynie gdy twoja przeglądarka nie wspiera automatycznego odświeżania" #: babybuddy/models.py:28 msgid "disabled" @@ -73,120 +68,31 @@ msgstr "15 min." msgid "30 min." msgstr "30 min." -#: babybuddy/models.py:40 -msgid "Hide Empty Dashboard Cards" -msgstr "" - -#: babybuddy/models.py:43 -msgid "Hide data older than" -msgstr "" - -#: babybuddy/models.py:45 -msgid "This setting controls which data will be shown in the dashboard." -msgstr "" - -#: babybuddy/models.py:51 -msgid "show all data" -msgstr "" - -#: babybuddy/models.py:52 -msgid "1 day" -msgstr "" - -#: babybuddy/models.py:53 -msgid "2 days" -msgstr "" - -#: babybuddy/models.py:54 -msgid "3 days" -msgstr "" - -#: babybuddy/models.py:55 -msgid "1 week" -msgstr "" - -#: babybuddy/models.py:56 -msgid "4 weeks" -msgstr "" - #: babybuddy/models.py:63 msgid "Language" msgstr "Język" -#: babybuddy/models.py:69 -msgid "Timezone" -msgstr "Strefa czasowa" - #: babybuddy/models.py:73 -#, python-brace-format msgid "{user}'s Settings" msgstr "Ustawienia użytkownika {user}" -#: babybuddy/settings/base.py:166 -msgid "Catalan" -msgstr "" - -#: babybuddy/settings/base.py:167 -msgid "Chinese (simplified)" -msgstr "" - -#: babybuddy/settings/base.py:168 -msgid "Dutch" -msgstr "" - -#: babybuddy/settings/base.py:169 -#, fuzzy -#| msgid "English" -msgid "English (US)" -msgstr "Angielski" - -#: babybuddy/settings/base.py:170 -#, fuzzy -#| msgid "English" -msgid "English (UK)" +#: babybuddy/settings/base.py:171 +msgid "English" msgstr "Angielski" #: babybuddy/settings/base.py:171 msgid "French" msgstr "Francuski" -#: babybuddy/settings/base.py:172 -msgid "Finnish" -msgstr "" +#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 +msgid "Permission Denied" +msgstr "Brak pozwolenia" -#: babybuddy/settings/base.py:173 -msgid "German" -msgstr "Niemiecki" - -#: babybuddy/settings/base.py:174 -msgid "Italian" -msgstr "" - -#: babybuddy/settings/base.py:175 -msgid "Polish" -msgstr "" - -#: babybuddy/settings/base.py:176 -msgid "Portuguese" -msgstr "" - -#: babybuddy/settings/base.py:177 -msgid "Spanish" -msgstr "Hiszpański" - -#: babybuddy/settings/base.py:178 -msgid "Swedish" -msgstr "Szwedzki" - -#: babybuddy/settings/base.py:179 -msgid "Turkish" -msgstr "Turecki" - -#: babybuddy/templates/admin/base_site.html:4 -#: babybuddy/templates/admin/base_site.html:7 -#: babybuddy/templates/babybuddy/nav-dropdown.html:336 -msgid "Database Admin" -msgstr "Administrator bazy danych" +#: babybuddy/templates/403.html:12 +msgid "You do not have permission to access this resource.\n" +" Contact a site administrator for assistance." +msgstr "Nie masz dostępu do tego zasobu. \n" +" Skontaktuj się z administratorem." #: babybuddy/templates/babybuddy/base.html:36 msgid "Home" @@ -211,36 +117,32 @@ msgstr "Zatwierdź" #: babybuddy/templates/babybuddy/messages.html:18 #: babybuddy/templates/babybuddy/user_settings_form.html:19 -#, python-format msgid "Error: %(error)s" msgstr "Błąd: %(error)s" #: babybuddy/templates/babybuddy/messages.html:23 -#: babybuddy/templates/babybuddy/user_settings_form.html:26 -msgid "Error: Some fields have errors. See below for details." -msgstr "" -"Błąd: Niektóre pola zawierają błędy. Spójrz poniżej po " -"więcej szczegółów." +msgid "Error: Some fields have errors. See below for details. " +msgstr "Błąd: Niektóre pola posiadają błędy. Zobacz poniżej." -#: babybuddy/templates/babybuddy/nav-dropdown.html:48 core/models.py:248 +#: babybuddy/templates/babybuddy/nav-dropdown.html:51 core/models.py:248 #: core/models.py:252 msgid "Diaper Change" msgstr "Zmiana pieluchy" -#: babybuddy/templates/babybuddy/nav-dropdown.html:54 -#: babybuddy/templates/babybuddy/nav-dropdown.html:259 core/models.py:312 +#: babybuddy/templates/babybuddy/nav-dropdown.html:57 +#: babybuddy/templates/babybuddy/nav-dropdown.html:281 core/models.py:312 #: core/models.py:316 core/templates/core/timer_detail.html:43 msgid "Feeding" msgstr "Karmienie" -#: babybuddy/templates/babybuddy/nav-dropdown.html:60 -#: babybuddy/templates/babybuddy/nav-dropdown.html:135 core/models.py:396 +#: babybuddy/templates/babybuddy/nav-dropdown.html:63 +#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:396 #: core/models.py:407 core/models.py:411 core/templates/core/note_list.html:29 msgid "Note" msgstr "Notatka" -#: babybuddy/templates/babybuddy/nav-dropdown.html:66 -#: babybuddy/templates/babybuddy/nav-dropdown.html:280 +#: babybuddy/templates/babybuddy/nav-dropdown.html:69 +#: babybuddy/templates/babybuddy/nav-dropdown.html:288 #: babybuddy/templates/babybuddy/welcome.html:42 core/models.py:467 #: core/models.py:468 core/models.py:471 #: core/templates/core/sleep_confirm_delete.html:7 @@ -250,8 +152,8 @@ msgstr "Notatka" msgid "Sleep" msgstr "Spać" -#: babybuddy/templates/babybuddy/nav-dropdown.html:72 -#: babybuddy/templates/babybuddy/nav-dropdown.html:293 +#: babybuddy/templates/babybuddy/nav-dropdown.html:81 +#: babybuddy/templates/babybuddy/nav-dropdown.html:301 #: babybuddy/templates/babybuddy/welcome.html:50 core/models.py:647 #: core/models.py:648 core/models.py:651 #: core/templates/core/timer_detail.html:59 @@ -263,15 +165,24 @@ msgstr "Spać" msgid "Tummy Time" msgstr "Czas drzemki" -#: babybuddy/templates/babybuddy/nav-dropdown.html:96 -#: core/templates/timeline/timeline.html:4 -#: core/templates/timeline/timeline.html:7 -#: dashboard/templates/dashboard/child_button_group.html:9 -msgid "Timeline" -msgstr "" +#: babybuddy/templates/babybuddy/nav-dropdown.html:87 +#: babybuddy/templates/babybuddy/nav-dropdown.html:193 core/models.py:673 +#: core/models.py:685 core/models.py:686 core/models.py:689 +#: core/templates/core/weight_confirm_delete.html:7 +#: core/templates/core/weight_form.html:13 +#: core/templates/core/weight_list.html:4 +#: core/templates/core/weight_list.html:7 +#: core/templates/core/weight_list.html:12 +#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 +#: reports/graphs/weight_change.py:30 +#: reports/templates/reports/report_list.html:22 +#: reports/templates/reports/weight_change.html:4 +#: reports/templates/reports/weight_change.html:8 +msgid "Weight" +msgstr "Waga" -#: babybuddy/templates/babybuddy/nav-dropdown.html:107 -#: babybuddy/templates/babybuddy/nav-dropdown.html:115 core/models.py:188 +#: babybuddy/templates/babybuddy/nav-dropdown.html:129 +#: babybuddy/templates/babybuddy/nav-dropdown.html:137 core/models.py:188 #: core/templates/core/child_confirm_delete.html:7 #: core/templates/core/child_detail.html:7 #: core/templates/core/child_form.html:13 core/templates/core/child_list.html:4 @@ -281,7 +192,7 @@ msgstr "" msgid "Children" msgstr "Dzieci" -#: babybuddy/templates/babybuddy/nav-dropdown.html:121 core/models.py:137 +#: babybuddy/templates/babybuddy/nav-dropdown.html:143 core/models.py:137 #: core/models.py:187 core/models.py:221 core/models.py:274 core/models.py:335 #: core/models.py:367 core/models.py:394 core/models.py:426 core/models.py:450 #: core/models.py:503 core/models.py:537 core/models.py:630 core/models.py:671 @@ -300,7 +211,7 @@ msgstr "Dzieci" msgid "Child" msgstr "Dziecko" -#: babybuddy/templates/babybuddy/nav-dropdown.html:129 core/models.py:143 +#: babybuddy/templates/babybuddy/nav-dropdown.html:151 core/models.py:143 #: core/models.py:240 core/models.py:304 core/models.py:343 core/models.py:373 #: core/models.py:408 core/models.py:430 core/models.py:458 core/models.py:511 #: core/models.py:677 core/templates/core/note_confirm_delete.html:7 @@ -309,118 +220,24 @@ msgstr "Dziecko" msgid "Notes" msgstr "Notatki" -#: babybuddy/templates/babybuddy/nav-dropdown.html:149 -msgid "Measurements" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:139 -#: core/models.py:151 core/models.py:152 core/models.py:155 -#: core/templates/core/bmi_confirm_delete.html:7 -#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 -#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 -#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 -#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 -#: reports/templates/reports/bmi_change.html:8 -msgid "BMI" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:163 -#, fuzzy -#| msgid "Sleep entry" -msgid "BMI entry" -msgstr "Czas spania" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:171 core/models.py:338 -#: core/models.py:351 core/models.py:352 core/models.py:355 -#: core/templates/core/head_circumference_confirm_delete.html:7 -#: core/templates/core/head_circumference_form.html:13 -#: core/templates/core/head_circumference_list.html:4 -#: core/templates/core/head_circumference_list.html:7 -#: core/templates/core/head_circumference_list.html:12 -#: core/templates/core/head_circumference_list.html:29 -#: reports/graphs/head_circumference_change.py:19 -#: reports/graphs/head_circumference_change.py:30 -#: reports/templates/reports/head_circumference_change.html:4 -#: reports/templates/reports/head_circumference_change.html:8 -#: reports/templates/reports/report_list.html:16 -msgid "Head Circumference" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:177 -msgid "Head Circumference entry" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:185 core/models.py:369 -#: core/models.py:381 core/models.py:382 core/models.py:385 -#: core/templates/core/height_confirm_delete.html:7 -#: core/templates/core/height_form.html:13 -#: core/templates/core/height_list.html:4 -#: core/templates/core/height_list.html:7 -#: core/templates/core/height_list.html:12 -#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 -#: reports/graphs/height_change.py:30 -#: reports/templates/reports/height_change.html:4 -#: reports/templates/reports/height_change.html:8 -#: reports/templates/reports/report_list.html:17 -#, fuzzy -#| msgid "Weight" -msgid "Height" -msgstr "Waga" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:191 -#, fuzzy -#| msgid "Weight entry" -msgid "Height entry" -msgstr "Wpis wagi" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:199 core/models.py:506 -#: core/models.py:519 core/models.py:520 core/models.py:523 -#: core/templates/core/temperature_confirm_delete.html:7 -#: core/templates/core/temperature_form.html:13 -#: core/templates/core/temperature_list.html:4 -#: core/templates/core/temperature_list.html:7 -#: core/templates/core/temperature_list.html:12 -#: core/templates/core/temperature_list.html:29 -msgid "Temperature" -msgstr "Temperatura" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:205 -msgid "Temperature reading" -msgstr "Odczyt temperatury" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:213 core/models.py:673 -#: core/models.py:685 core/models.py:686 core/models.py:689 -#: core/templates/core/weight_confirm_delete.html:7 -#: core/templates/core/weight_form.html:13 -#: core/templates/core/weight_list.html:4 -#: core/templates/core/weight_list.html:7 -#: core/templates/core/weight_list.html:12 -#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 -#: reports/graphs/weight_change.py:30 -#: reports/templates/reports/report_list.html:22 -#: reports/templates/reports/weight_change.html:4 -#: reports/templates/reports/weight_change.html:8 -msgid "Weight" -msgstr "Waga" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:219 +#: babybuddy/templates/babybuddy/nav-dropdown.html:199 msgid "Weight entry" msgstr "Wpis wagi" -#: babybuddy/templates/babybuddy/nav-dropdown.html:233 +#: babybuddy/templates/babybuddy/nav-dropdown.html:255 msgid "Activities" msgstr "Aktywności" -#: babybuddy/templates/babybuddy/nav-dropdown.html:240 +#: babybuddy/templates/babybuddy/nav-dropdown.html:262 #: reports/graphs/diaperchange_lifetimes.py:27 msgid "Changes" msgstr "Zmiany" -#: babybuddy/templates/babybuddy/nav-dropdown.html:246 +#: babybuddy/templates/babybuddy/nav-dropdown.html:268 msgid "Change" msgstr "Zmiana" -#: babybuddy/templates/babybuddy/nav-dropdown.html:253 +#: babybuddy/templates/babybuddy/nav-dropdown.html:275 #: babybuddy/templates/babybuddy/welcome.html:34 core/models.py:313 #: core/templates/core/feeding_confirm_delete.html:7 #: core/templates/core/feeding_form.html:13 @@ -430,33 +247,15 @@ msgstr "Zmiana" msgid "Feedings" msgstr "Karmienia" -#: babybuddy/templates/babybuddy/nav-dropdown.html:267 core/models.py:437 -#: core/models.py:438 core/models.py:441 -#: core/templates/core/pumping_confirm_delete.html:7 -#: core/templates/core/pumping_form.html:13 -#: core/templates/core/pumping_list.html:4 -#: core/templates/core/pumping_list.html:7 -#: core/templates/core/pumping_list.html:12 -#: reports/templates/reports/pumping_amounts.html:4 -#: reports/templates/reports/pumping_amounts.html:8 -msgid "Pumping" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:273 -#, fuzzy -#| msgid "Weight entry" -msgid "Pumping entry" -msgstr "Wpis wagi" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:286 +#: babybuddy/templates/babybuddy/nav-dropdown.html:294 msgid "Sleep entry" msgstr "Czas spania" -#: babybuddy/templates/babybuddy/nav-dropdown.html:299 +#: babybuddy/templates/babybuddy/nav-dropdown.html:307 msgid "Tummy Time entry" msgstr "Czas drzemki" -#: babybuddy/templates/babybuddy/nav-dropdown.html:323 +#: babybuddy/templates/babybuddy/nav-dropdown.html:346 #: babybuddy/templates/babybuddy/user_list.html:17 #: babybuddy/templates/babybuddy/user_password_form.html:7 #: babybuddy/templates/babybuddy/user_settings_form.html:7 core/models.py:556 @@ -464,23 +263,23 @@ msgstr "Czas drzemki" msgid "User" msgstr "Użytkownik" -#: babybuddy/templates/babybuddy/nav-dropdown.html:325 +#: babybuddy/templates/babybuddy/nav-dropdown.html:348 msgid "Password" msgstr "Hasło" -#: babybuddy/templates/babybuddy/nav-dropdown.html:329 +#: babybuddy/templates/babybuddy/nav-dropdown.html:352 msgid "Logout" msgstr "Wyloguj" -#: babybuddy/templates/babybuddy/nav-dropdown.html:332 +#: babybuddy/templates/babybuddy/nav-dropdown.html:355 msgid "Site" msgstr "Strona" -#: babybuddy/templates/babybuddy/nav-dropdown.html:333 +#: babybuddy/templates/babybuddy/nav-dropdown.html:356 msgid "API Browser" msgstr "Przeglądarka API" -#: babybuddy/templates/babybuddy/nav-dropdown.html:335 +#: babybuddy/templates/babybuddy/nav-dropdown.html:358 #: babybuddy/templates/babybuddy/user_confirm_delete.html:7 #: babybuddy/templates/babybuddy/user_form.html:13 #: babybuddy/templates/babybuddy/user_list.html:4 @@ -488,15 +287,19 @@ msgstr "Przeglądarka API" msgid "Users" msgstr "Użytkownicy" -#: babybuddy/templates/babybuddy/nav-dropdown.html:338 +#: babybuddy/templates/babybuddy/nav-dropdown.html:250 +msgid "Backend Admin" +msgstr "Backend Admin" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:361 msgid "Support" msgstr "Wsparcie" -#: babybuddy/templates/babybuddy/nav-dropdown.html:340 +#: babybuddy/templates/babybuddy/nav-dropdown.html:363 msgid "Source Code" msgstr "Kod źródłowy" -#: babybuddy/templates/babybuddy/nav-dropdown.html:342 +#: babybuddy/templates/babybuddy/nav-dropdown.html:365 msgid "Chat / Support" msgstr "Czat / Wsparcie" @@ -507,7 +310,6 @@ msgstr "Czat / Wsparcie" #: core/templates/timeline/_timeline.html:73 #: dashboard/templates/cards/feeding_day.html:43 #: dashboard/templates/cards/feeding_last_method.html:34 -#: dashboard/templates/cards/sleep_recent.html:43 #: dashboard/templates/cards/statistics.html:34 msgid "Previous" msgstr "Poprzedni" @@ -519,7 +321,6 @@ msgstr "Poprzedni" #: core/templates/timeline/_timeline.html:80 #: dashboard/templates/cards/feeding_day.html:47 #: dashboard/templates/cards/feeding_last_method.html:38 -#: dashboard/templates/cards/sleep_recent.html:47 #: dashboard/templates/cards/statistics.html:38 msgid "Next" msgstr "Następny" @@ -575,10 +376,7 @@ msgstr "Usuń" #: core/templates/core/timer_confirm_delete.html:17 #: core/templates/core/tummytime_confirm_delete.html:14 #: core/templates/core/weight_confirm_delete.html:14 -#, python-format -msgid "" -"

Are you sure you want to delete %(object)s?

" +msgid "

Are you sure you want to delete %(object)s?

" msgstr "

Czy chcesz usunąć%(object)s?

" #: babybuddy/templates/babybuddy/user_confirm_delete.html:19 @@ -635,7 +433,6 @@ msgstr "Zaktualizuj" #: core/templates/core/timer_form.html:18 #: core/templates/core/tummytime_form.html:23 #: core/templates/core/weight_form.html:23 -#, python-format msgid "

Update %(object)s

" msgstr "

Zaktualizuj %(object)s

" @@ -665,7 +462,7 @@ msgstr "Aktywny" #: babybuddy/templates/babybuddy/user_list.html:23 #: core/templates/core/bmi_list.html:24 core/templates/core/bmi_list.html:38 #: core/templates/core/child_list.html:28 -#: core/templates/core/child_list.html:43 +#: core/templates/core/child_list.html:48 #: core/templates/core/diaperchange_list.html:24 #: core/templates/core/diaperchange_list.html:40 #: core/templates/core/feeding_list.html:24 @@ -703,6 +500,11 @@ msgstr "Zmień hasło" msgid "User Settings" msgstr "Ustawienia użytkownika" +#: babybuddy/templates/babybuddy/messages.html:23 +#: babybuddy/templates/babybuddy/user_settings_form.html:26 +msgid "Error: Some fields have errors. See below for details." +msgstr "Błąd: Niektóre pola zawierają błędy. Spójrz poniżej po więcej szczegółów." + #: babybuddy/templates/babybuddy/user_settings_form.html:33 msgid "User Profile" msgstr "Profil użytkownika" @@ -729,12 +531,10 @@ msgid "Welcome to Baby Buddy!" msgstr "Witamy w Baby Buddy!" #: babybuddy/templates/babybuddy/welcome.html:14 -msgid "" -"Learn about and predict baby's needs without (as much) guess work " -"by using Baby Buddy to track —" -msgstr "" -"Poznaj i przewiduj potrzeby dziecka bez (tak dużo) zgadywania, " -"używając Baby Buddy do śledzenia —" +msgid "Learn about and predict baby's needs without\n" +" (as much) guess work by using Baby Buddy to track —" +msgstr "Naucz się przewidywać potrzeby swojego dziecka bez\n" +" (tak dużej) potrzeby zgadywania używając Baby Buddy aby śledzić —" #: babybuddy/templates/babybuddy/welcome.html:26 core/models.py:249 #: core/templates/core/diaperchange_confirm_delete.html:7 @@ -746,21 +546,15 @@ msgstr "" msgid "Diaper Changes" msgstr "Zmiana pieluchy" -#: babybuddy/templates/babybuddy/welcome.html:56 -msgid "" -"As the amount of entries grows, Baby Buddy will help parents and caregivers " -"to identify small patterns in baby's habits using the dashboard and graphs. " -"Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and " -"dads with 2AM feedings and changings. To get started, just click the button " -"below to add your first (or second, third, etc.) child!" -msgstr "" -"Wraz ze wzrostem liczby wpisów Baby Buddy pomoże rodzicom i opiekunom " -"zidentyfikować małe wzorce w nawykach dziecka za pomocą pulpitu " -"nawigacyjnego i wykresów. Baby Buddy jest przystosowany do urządzeń " -"mobilnych i wykorzystuje ciemny motyw, aby pomóc zmęczonym mamom i tatusiom " -"karmić i przebierać o drugiej w nocy. Aby rozpocząć, po prostu kliknij " -"poniższy przycisk, aby dodać swoje pierwsze (lub drugie, trzecie itd.) " -"dziecko!" +#: babybuddy/templates/babybuddy/welcome.html:54 +msgid "As the amount of entries grows, Baby Buddy will help\n" +" parents and caregivers to identify small patterns in baby's habits\n" +" using the dashboard and graphs. Baby Buddy is mobile-friendly and\n" +" uses a dark theme to help weary moms and dads with 2AM feedings and\n" +" changings. To get started, just click the button below to add your\n" +" first (or second, third, etc.) child!" +msgstr "Wraz ze wzrostem liczby wpisów Baby Buddy pomoże\n" +" rodzicom i opiekunom w zidentyfikowaniu drobnych wzorców w nawykach dziecka za pomocą deski rozdzielczej i wykresów. Baby Buddy jest przyjazny dla urządzeń mobilnych i używa ciemnego motywu, aby pomóc zmęczonym mamom i tatusiom karmić o 2 nad ranem zmiany pieluch. Aby rozpocząć, po prostu kliknij poniższy przycisk, aby dodać swoje pierwsze (lub drugie, trzecie itd.) dziecko!" #: babybuddy/templates/babybuddy/welcome.html:68 #: core/templates/core/child_form.html:8 core/templates/core/child_form.html:18 @@ -768,51 +562,6 @@ msgstr "" msgid "Add a Child" msgstr "Dodaj dziecko" -#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 -msgid "Bad Request" -msgstr "" - -#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 -msgid "Permission Denied" -msgstr "Brak pozwolenia" - -#: babybuddy/templates/error/403.html:9 -msgid "" -"You do not have permission to access this resource. Contact a site " -"administrator for assistance." -msgstr "" -"Nie masz uprawnień do tych zasobów. Skontaktuj się z administratorem witryny" - -#: babybuddy/templates/error/403_csrf_bad_origin.html:14 -msgid "How to Fix" -msgstr "" - -#: babybuddy/templates/error/403_csrf_bad_origin.html:15 -#, python-format -msgid "" -"Add %(origin)s to the CSRF_TRUSTED_ORIGINS " -"environment variable. If multiple origins are required separate with commas." -msgstr "" - -#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 -msgid "Page Not Found" -msgstr "" - -#: babybuddy/templates/error/404.html:9 -#, python-format -msgid "The path %(request_path)s does not exist." -msgstr "" - -#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 -msgid "Server Error" -msgstr "" - -#: babybuddy/templates/error/base.html:14 -#, fuzzy -#| msgid "Welcome to Baby Buddy!" -msgid "Return to Baby Buddy" -msgstr "Witamy w Baby Buddy!" - #: babybuddy/templates/registration/login.html:32 msgid "Login" msgstr "Login" @@ -837,10 +586,10 @@ msgstr "Zaloguj się" msgid "Password Reset" msgstr "Reset hasła" -#: babybuddy/templates/registration/password_reset_confirm.html:13 -msgid "" -"Oh snap! The two passwords did not match. Please try again." -msgstr "O nie! Hasła nie pasują. Spróbuj ponownie" +#: babybuddy/templates/registration/password_reset_confirm.html:12 +msgid "

Oh snap! The\n" +" two passwords did not match. Please try again.

" +msgstr "

O nie! Hasła nie pasują do siebie. Spróbuj ponownie.

" #: babybuddy/templates/registration/password_reset_confirm.html:22 msgid "Enter your new password in each field below." @@ -855,73 +604,40 @@ msgstr "Zresetuj hasło" msgid "Reset Email Sent" msgstr "Email resetujący został wysłany" -#: babybuddy/templates/registration/password_reset_done.html:9 -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Wysłaliśmy Ci instrukcje dotyczące ustawienia hasła, jeśli istnieje konto z " -"wprowadzonym adresem e-mail. Powinieneś je wkrótce otrzymać." - -#: babybuddy/templates/registration/password_reset_done.html:15 -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Jeśli nie otrzymasz wiadomości e-mail, upewnij się, że wpisałeś adres, pod " -"którym się zarejestrowałeś, i sprawdź folder ze spamem." - -#: babybuddy/templates/registration/password_reset_email.html:2 -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:4 -msgid "Please go to the following page and choose a new password:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:8 -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:10 -msgid "Thanks for using Baby Buddy!" -msgstr "" +#: babybuddy/templates/registration/password_reset_done.html:8 +msgid "

We've emailed you instructions for setting your\n" +" password, if an account exists with the email you entered. You\n" +" should receive them shortly.

\n" +"

If you don't receive an email, please make sure you've\n" +" entered the address you registered with, and check your spam\n" +" folder.

" +msgstr "

Wysłaliśmy Ci e-mailem instrukcje dotyczące ustawienia\n" +" hasła, jeśli istnieje konto z wprowadzonym adresem e-mail. Powinieneś je wkrótce otrzymać.

\n" +"

Jeśli nie otrzymasz wiadomości e-mail, upewnij się, że\n" +" wpiszałeś adres pod którym się zarejestrowałeś, i sprawdź swój spam\n" +" folder.

" #: babybuddy/templates/registration/password_reset_form.html:4 msgid "Forgot Password" msgstr "Zapomniano hasła" -#: babybuddy/templates/registration/password_reset_form.html:9 -msgid "" -"Enter your account email address in the form below. If the address is valid, " -"you will receive instructions for resetting your password." -msgstr "" -"Wpisz adres e-mail swojego konta w poniższym formularzu. Jeśli adres jest " -"prawidłowy, otrzymasz instrukcje dotyczące zresetowania hasła." - -#: babybuddy/views.py:43 -msgid "Forbidden" -msgstr "" - -#: babybuddy/views.py:44 -msgid "CSRF verification failed. Request aborted." -msgstr "" +#: babybuddy/templates/registration/password_reset_form.html:8 +msgid "

Enter your account email address in the\n" +" form below. If the address is valid, you will receive instructions for\n" +" resetting your password.

" +msgstr "

Wprowadź adres e-mail swojego konta w\n" +" formularz poniżej. Jeśli adres jest prawidłowy, otrzymasz instrukcje dotyczące\n" +" resetowanie hasła.

" #: babybuddy/views.py:102 -#, python-format msgid "User %(username)s added!" msgstr "Dodano użytkownika %(username)s!" #: babybuddy/views.py:113 -#, python-format msgid "User %(username)s updated." msgstr "Zaktualizowano użytkownika %(username)s" #: babybuddy/views.py:125 -#, python-brace-format msgid "User {user} deleted." msgstr "Użytkownik {user} został usunięty" @@ -937,20 +653,10 @@ msgstr "Wygenerowano klucz API użytkownika" msgid "Settings saved!" msgstr "Zapisano ustawienia!" -#: core/filters.py:11 core/models.py:96 core/models.py:115 -msgid "Tag" -msgstr "" - #: core/forms.py:120 msgid "Name does not match child name." msgstr "Imię nie pasuje do imienia dziecka" -#: core/forms.py:136 -msgid "" -"Click on the tags to add (+) or remove (-) tags or use the text editor to " -"create new tags." -msgstr "" - #: core/models.py:28 msgid "Date can not be in the future." msgstr "Data nie może być z przyszłości" @@ -971,45 +677,6 @@ msgstr "Kolejny wpis przecina określony okres czasu" msgid "Date/time can not be in the future." msgstr "Data/czas nie mogą być z przyszłości" -#: core/models.py:84 core/models.py:237 -#: core/templates/core/diaperchange_list.html:30 -msgid "Color" -msgstr "Kolor" - -#: core/models.py:90 -#, fuzzy -#| msgid "Last Name" -msgid "Last used" -msgstr "Nazwisko" - -#: core/models.py:97 core/templates/core/bmi_list.html:30 -#: core/templates/core/diaperchange_list.html:32 -#: core/templates/core/feeding_list.html:35 -#: core/templates/core/head_circumference_list.html:30 -#: core/templates/core/height_list.html:30 -#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 -#: core/templates/core/temperature_list.html:30 -#: core/templates/core/tummytime_list.html:31 -#: core/templates/core/weight_list.html:30 -msgid "Tags" -msgstr "" - -#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 -#: core/templates/core/bmi_list.html:25 -#: core/templates/core/feeding_list.html:25 -#: core/templates/core/head_circumference_list.html:25 -#: core/templates/core/height_list.html:25 -#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 -#: reports/graphs/diaperchange_amounts.py:37 -#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 -#: reports/graphs/feeding_duration.py:56 -#: reports/graphs/head_circumference_change.py:28 -#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:60 -#: reports/graphs/sleep_pattern.py:153 reports/graphs/sleep_totals.py:59 -#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 -msgid "Date" -msgstr "Data" - #: core/models.py:163 msgid "First name" msgstr "Imię" @@ -1064,11 +731,14 @@ msgstr "Zielone" msgid "Yellow" msgstr "Żółte" -#: core/models.py:239 core/models.py:303 core/models.py:428 -#: core/templates/core/diaperchange_list.html:31 -#: core/templates/core/pumping_list.html:29 -msgid "Amount" -msgstr "Ilość" +#: core/models.py:84 core/models.py:237 +#: core/templates/core/diaperchange_list.html:30 +msgid "Color" +msgstr "Kolor" + +#: core/models.py:180 +msgid "Wet and/or solid is required." +msgstr "Wymagana jest mokra i/lub stała." #: core/models.py:276 core/models.py:453 core/models.py:543 core/models.py:632 msgid "Start time" @@ -1094,14 +764,6 @@ msgstr "Mleko matki" msgid "Formula" msgstr "Przepis" -#: core/models.py:285 -msgid "Fortified breast milk" -msgstr "Mleko wzbogacone" - -#: core/models.py:286 -msgid "Solid food" -msgstr "" - #: core/models.py:289 core/templates/core/feeding_list.html:30 msgid "Type" msgstr "Typ" @@ -1118,25 +780,19 @@ msgstr "Lewa pierś" msgid "Right breast" msgstr "Prawa pierś" -#: core/models.py:296 -msgid "Both breasts" -msgstr "Obie piersi" - -#: core/models.py:297 -msgid "Parent fed" -msgstr "" - -#: core/models.py:298 -msgid "Self fed" -msgstr "" - #: core/models.py:301 core/templates/core/feeding_list.html:29 msgid "Method" msgstr "Metoda" -#: core/models.py:452 -msgid "Napping" -msgstr "" +#: core/models.py:239 core/models.py:303 core/models.py:428 +#: core/templates/core/diaperchange_list.html:31 +#: core/templates/core/pumping_list.html:29 +msgid "Amount" +msgstr "Ilość" + +#: core/models.py:243 +msgid "Only \"Bottle\" method is allowed with \"Formula\" type." +msgstr "Tylko metoda \"butelka\" jest dozwolona z typem \"mleko w proszku\"." #: core/models.py:540 core/templates/core/timer_list.html:25 msgid "Name" @@ -1156,7 +812,6 @@ msgid "Timers" msgstr "Stopery" #: core/models.py:568 -#, python-brace-format msgid "Timer #{id}" msgstr "Stoper #{id}" @@ -1164,28 +819,21 @@ msgstr "Stoper #{id}" msgid "Milestone" msgstr "Kamień milowy" -#: core/templates/core/bmi_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Sleep Entry" -msgid "Delete a BMI Entry" -msgstr "Usuń czas spania" - -#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 -#: core/templates/core/bmi_form.html:27 -#, fuzzy -#| msgid "Add a Sleep Entry" -msgid "Add a BMI Entry" -msgstr "Dodaj czas spania" - -#: core/templates/core/bmi_list.html:15 -msgid "Add BMI" -msgstr "" - -#: core/templates/core/bmi_list.html:70 -#, fuzzy -#| msgid "No timer entries found." -msgid "No BMI entries found." -msgstr "Brak wpisów stopera" +#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 +#: core/templates/core/bmi_list.html:25 +#: core/templates/core/feeding_list.html:25 +#: core/templates/core/head_circumference_list.html:25 +#: core/templates/core/height_list.html:25 +#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 +#: reports/graphs/diaperchange_amounts.py:37 +#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 +#: reports/graphs/feeding_duration.py:56 +#: reports/graphs/head_circumference_change.py:28 +#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:58 +#: reports/graphs/sleep_pattern.py:151 reports/graphs/sleep_totals.py:59 +#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 +msgid "Date" +msgstr "Data" #: core/templates/core/child_confirm_delete.html:4 msgid "Delete a Child" @@ -1205,15 +853,15 @@ msgstr "Urodzony" msgid "Age" msgstr "Wiek" -#: core/templates/core/child_list.html:15 -msgid "Add Child" -msgstr "Dodaj dziecko" +#: core/templates/timeline/_timeline.html:38 +msgid "%(since)s ago (%(time)s)" +msgstr "%(since)s temu (%(time)s)" #: core/templates/core/child_list.html:27 msgid "Birth Date" msgstr "Data urodzenia" -#: core/templates/core/child_list.html:62 +#: core/templates/core/child_list.html:67 msgid "No children found." msgstr "Nie znaleziono dzieci" @@ -1238,18 +886,14 @@ msgstr "Dodaj zmianę pieluchy" msgid "Add" msgstr "Dodaj" -#: core/templates/core/diaperchange_list.html:15 -msgid "Add Diaper Change" -msgstr "Dodaj zmianę pieluchy" - -#: core/templates/core/diaperchange_list.html:29 -msgid "Contents" -msgstr "" - #: core/templates/core/diaperchange_list.html:77 msgid "No diaper changes found." msgstr "Nie znaleziono zmian pieluchy" +#: core/templates/core/diaperchange_list.html:63 +msgid "Add a Change" +msgstr "Dodaj zmianę" + #: core/templates/core/feeding_confirm_delete.html:4 msgid "Delete a Feeding" msgstr "Usuń karmienie" @@ -1263,10 +907,6 @@ msgstr "Zaktualizuj karmienie" msgid "Add a Feeding" msgstr "Dodaj karmienie" -#: core/templates/core/feeding_list.html:15 -msgid "Add Feeding" -msgstr "Dodaj karmienie" - #: core/templates/core/feeding_list.html:33 msgid "Amt." msgstr "Posada" @@ -1275,56 +915,6 @@ msgstr "Posada" msgid "No feedings found." msgstr "Nie znaleziono karmienia" -#: core/templates/core/head_circumference_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Tummy Time Entry" -msgid "Delete a Head Circumference Entry" -msgstr "Usuń czas leżakowania" - -#: core/templates/core/head_circumference_form.html:8 -#: core/templates/core/head_circumference_form.html:17 -#: core/templates/core/head_circumference_form.html:27 -#, fuzzy -#| msgid "Add a Temperature Entry" -msgid "Add a Head Circumference Entry" -msgstr "Dodaj wpis temperatury" - -#: core/templates/core/head_circumference_list.html:15 -msgid "Add Head Circumference" -msgstr "" - -#: core/templates/core/head_circumference_list.html:70 -#, fuzzy -#| msgid "No timer entries found." -msgid "No head circumference entries found." -msgstr "Brak wpisów stopera" - -#: core/templates/core/height_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Weight Entry" -msgid "Delete a Height Entry" -msgstr "Usuń wpis wagi" - -#: core/templates/core/height_form.html:8 -#: core/templates/core/height_form.html:17 -#: core/templates/core/height_form.html:27 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add a Height Entry" -msgstr "Zaktualizuj wpis wagi" - -#: core/templates/core/height_list.html:15 -#, fuzzy -#| msgid "Add Weight" -msgid "Add Height" -msgstr "Dodaj wagę" - -#: core/templates/core/height_list.html:70 -#, fuzzy -#| msgid "No weight entries found." -msgid "No height entries found." -msgstr "Brak wpisów wagi" - #: core/templates/core/note_confirm_delete.html:4 msgid "Delete a Note" msgstr "Usuń notatkę" @@ -1337,53 +927,10 @@ msgstr "Zaktualizuj notatkę" msgid "Add a Note" msgstr "Dodaj notatkę" -#: core/templates/core/note_list.html:15 -msgid "Add Note" -msgstr "Dodaj notatkę" - #: core/templates/core/note_list.html:64 msgid "No notes found." msgstr "Brak notatek" -#: core/templates/core/pumping_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Weight Entry" -msgid "Delete a Pumping Entry" -msgstr "Usuń wpis wagi" - -#: core/templates/core/pumping_form.html:8 -#: core/templates/core/pumping_form.html:17 -#: core/templates/core/pumping_form.html:27 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add a Pumping Entry" -msgstr "Zaktualizuj wpis wagi" - -#: core/templates/core/pumping_list.html:15 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add Pumping Entry" -msgstr "Zaktualizuj wpis wagi" - -#: core/templates/core/pumping_list.html:66 -#, fuzzy -#| msgid "No timer entries found." -msgid "No pumping entries found." -msgstr "Brak wpisów stopera" - -#: core/templates/core/quick_timer_nav.html:9 -#: core/templates/core/quick_timer_nav.html:29 -#: core/templates/core/timer_nav.html:37 -msgid "Quick Start Timer" -msgstr "Szybki start stopera" - -#: core/templates/core/quick_timer_nav.html:19 -#: core/templates/core/timer_nav.html:28 -#, fuzzy -#| msgid "Quick Start Timer" -msgid "Quick Start Timer For…" -msgstr "Szybki start stopera" - #: core/templates/core/sleep_confirm_delete.html:4 msgid "Delete a Sleep Entry" msgstr "Usuń czas spania" @@ -1396,10 +943,6 @@ msgstr "Zaktualizuj czas spania" msgid "Add a Sleep Entry" msgstr "Dodaj czas spania" -#: core/templates/core/sleep_list.html:15 -msgid "Add Sleep" -msgstr "Dodaj spanie" - #: core/templates/core/sleep_list.html:25 #: core/templates/core/timer_form.html:12 #: core/templates/core/timer_list.html:24 @@ -1421,49 +964,10 @@ msgstr "Nap" msgid "No sleep entries found." msgstr "Nie znaleziono wpisów spania" -#: core/templates/core/temperature_confirm_delete.html:4 -msgid "Delete a Temperature Reading" -msgstr "Usuń odczyt temperatury" - -#: core/templates/core/temperature_form.html:8 -#: core/templates/core/temperature_form.html:17 -msgid "Add a Temperature Reading" -msgstr "Dodaj odczyt temperatury" - -#: core/templates/core/temperature_form.html:27 -msgid "Add a Temperature Entry" -msgstr "Dodaj wpis temperatury" - -#: core/templates/core/temperature_list.html:15 -msgid "Add Temperature Reading" -msgstr "Dodaj odczyt temperatury" - -#: core/templates/core/temperature_list.html:70 -msgid "No temperature entries found." -msgstr "Brak wpisów temperatury" - #: core/templates/core/timer_confirm_delete.html:5 -#, python-format msgid "Delete %(object)s" msgstr "Usuń %(object)s" -#: core/templates/core/timer_confirm_delete_inactive.html:5 -msgid "Delete All Inactive Timers" -msgstr "Usuń wszystkie niekatywne stopery" - -#: core/templates/core/timer_confirm_delete_inactive.html:10 -msgid "Delete Inactive" -msgstr "Usuń niekatywne" - -#: core/templates/core/timer_confirm_delete_inactive.html:17 -#, fuzzy, python-format -#| msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" -msgid "Are you sure you want to delete %(number)s inactive timer?" -msgid_plural "Are you sure you want to delete %(number)s inactive timers?" -msgstr[0] "Czy chcesz usunąć %(number)s nieaktwynych stoperów %(plural)s?" -msgstr[1] "Czy chcesz usunąć %(number)s nieaktwynych stoperów %(plural)s?" -msgstr[2] "Czy chcesz usunąć %(number)s nieaktwynych stoperów %(plural)s?" - #: core/templates/core/timer_detail.html:28 msgid "Started" msgstr "Rozpoczęto" @@ -1472,25 +976,16 @@ msgstr "Rozpoczęto" msgid "Stopped" msgstr "Zakończono" -#: core/templates/core/timer_detail.html:34 -#, python-format -msgid "%(timer)s created by %(user)s" -msgstr "%(timer)s utworzony przez %(user)s" +#: core/templates/core/timer_detail.html:26 +msgid "%(timer)s created by %(object.user)s" +msgstr "%(timer)s stworzony przez %(object.user)s" #: core/templates/core/timer_detail.html:63 msgid "Timer actions" msgstr "Akcje stopera" -#: core/templates/core/timer_detail.html:77 -msgid "Restart timer" -msgstr "" - -#: core/templates/core/timer_detail.html:84 -msgid "Delete timer" -msgstr "" - #: core/templates/core/timer_form.html:22 -#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:15 +#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:23 msgid "Start Timer" msgstr "Start stopera" @@ -1498,30 +993,30 @@ msgstr "Start stopera" msgid "No timer entries found." msgstr "Brak wpisów stopera" -#: core/templates/core/timer_list.html:68 -msgid "Delete Inactive Timers" -msgstr "Usuń niekatywne stopery" +#: babybuddy/templates/babybuddy/nav-dropdown.html:32 +#: core/templates/core/timer_nav.html:18 +msgid "Quick Start Timer" +msgstr "Szybki start stopera" -#: core/templates/core/timer_nav.html:20 +#: core/templates/core/timer_nav.html:28 msgid "View Timers" msgstr "Zobacz stopery" -#: core/templates/core/timer_nav.html:44 +#: core/templates/core/timer_nav.html:32 #: dashboard/templates/cards/timer_list.html:6 msgid "Active Timers" msgstr "Aktywne stopery" -#: core/templates/core/timer_nav.html:50 +#: core/templates/core/timer_nav.html:38 #: dashboard/templates/cards/diaperchange_last.html:17 #: dashboard/templates/cards/diaperchange_types.html:12 #: dashboard/templates/cards/feeding_day.html:20 #: dashboard/templates/cards/feeding_day.html:52 #: dashboard/templates/cards/feeding_last.html:17 #: dashboard/templates/cards/feeding_last_method.html:43 +#: dashboard/templates/cards/sleep_day.html:14 #: dashboard/templates/cards/sleep_last.html:17 #: dashboard/templates/cards/sleep_naps_day.html:18 -#: dashboard/templates/cards/sleep_recent.html:20 -#: dashboard/templates/cards/sleep_recent.html:52 #: dashboard/templates/cards/tummytime_day.html:14 msgid "None" msgstr "Brak" @@ -1539,10 +1034,6 @@ msgstr "Zaktualizuj czas leżakowania" msgid "Add a Tummy Time Entry" msgstr "Dodaj czas leżakowania" -#: core/templates/core/tummytime_list.html:15 -msgid "Add Tummy Time" -msgstr "Dodaj czas leżakowania" - #: core/templates/core/tummytime_list.html:67 msgid "No tummy time entries found." msgstr "Brak czasów leżakowania" @@ -1557,17 +1048,1023 @@ msgstr "Usuń wpis wagi" msgid "Add a Weight Entry" msgstr "Zaktualizuj wpis wagi" -#: core/templates/core/weight_list.html:15 -msgid "Add Weight" -msgstr "Dodaj wagę" - #: core/templates/core/weight_list.html:70 msgid "No weight entries found." msgstr "Brak wpisów wagi" +#: core/timeline.py:164 +msgid "%(child)s had a diaper change." +msgstr "%(child)s miał zmianę pieluchy" + +#: core/timeline.py:145 +msgid "%(child)s started feeding." +msgstr "%(child)s rozpoczęto karmienie" + +#: core/timeline.py:158 +msgid "%(child)s finished feeding." +msgstr "%(child)s ukończono karmienie" + +#: core/timeline.py:91 +msgid "%(child)s fell asleep." +msgstr "%(child)s zasnęło" + +#: core/timeline.py:103 +msgid "%(child)s woke up." +msgstr "%(child)s wstało" + +#: core/timeline.py:53 +msgid "%(child)s started tummy time!" +msgstr "%(child)s zaczął czas leżakowania" + +#: core/timeline.py:65 +msgid "%(child)s finished tummy time." +msgstr "%(child)s zakończył czas leżakowania" + +#: core/views.py:33 +msgid "%(model)s entry for %(child)s added!" +msgstr "Dodano %(model)s dla dziecka %(child)s!" + +#: core/views.py:35 core/views.py:308 +msgid "%(model)s entry added!" +msgstr "Dodano %(model)s!" + +#: core/views.py:61 core/views.py:316 +msgid "%(model)s entry for %(child)s updated." +msgstr "Zaktualizowano %(model)s dla dziecka %(child)s!" + +#: core/views.py:63 +msgid "%(model)s entry updated." +msgstr "Zaktualizowano %(model)s" + +#: core/views.py:115 +msgid "%(first_name)s %(last_name)s added!" +msgstr "Dodano %(first_name)s %(last_name)s!" + +#: core/views.py:478 +msgid "%(timer)s stopped." +msgstr "Stop %(timer)s" + +#: dashboard/templates/cards/diaperchange_last.html:6 +msgid "Last Diaper Change" +msgstr "Ostatna zmiana pieluchy" + +#: dashboard/templates/cards/diaperchange_last.html:8 +#: dashboard/templates/cards/feeding_last.html:8 +#: dashboard/templates/cards/sleep_last.html:8 +#: dashboard/templates/cards/tummytime_last.html:8 +msgid "%(time)s ago" +msgstr "%(time)s temu" + +#: dashboard/templates/cards/tummytime_last.html:18 +msgid "Never" +msgstr "Nigdy" + +#: dashboard/templates/cards/diaperchange_types.html:14 +msgid "Past Week" +msgstr "W minionym tygodniu" + +#: dashboard/templates/cards/diaperchange_types.html:27 +msgid "wet" +msgstr "mokry" + +#: dashboard/templates/cards/diaperchange_types.html:35 +msgid "solid" +msgstr "suchy" + +#: dashboard/templates/cards/diaperchange_types.html:49 +msgid "today" +msgstr "Dzisiaj" + +#: dashboard/templates/cards/diaperchange_types.html:51 +msgid "yesterday" +msgstr "Wczoraj" + +#: dashboard/templates/cards/diaperchange_types.html:53 +msgid "%(key)s days ago" +msgstr "%(key)s dni temu" + +#: dashboard/templates/cards/feeding_last.html:6 +msgid "Last Feeding" +msgstr "Ostatnie karmienie" + +#: dashboard/templates/cards/feeding_last_method.html:6 +msgid "Last Feeding Method" +msgstr "Ostatnia metoda karmienia" + +#: dashboard/templates/cards/sleep_day.html:6 +msgid "Today's Sleep" +msgstr "Dzisiejsze spanie" + +#: dashboard/templates/cards/sleep_day.html:11 +#: dashboard/templates/cards/sleep_naps_day.html:13 +#: dashboard/templates/cards/tummytime_day.html:11 +msgid "None yet today" +msgstr "Jeszcze żadnego dziś" + +#: dashboard/templates/cards/sleep_day.html:20 +msgid "%(count)s sleep entries" +msgstr "%(count)s pójść spać" + +#: dashboard/templates/cards/sleep_last.html:4 +msgid "Last Slept" +msgstr "Ostatni sen" + +#: dashboard/templates/cards/sleep_naps_day.html:6 +msgid "Today's Naps" +msgstr "Dzisiejsze spanie" + +#: dashboard/templates/cards/sleep_naps_day.html:12 +msgid "%(count)s nap%(plural)s" +msgstr "%(count)s nap%(plural)s" + +#: dashboard/templates/cards/statistics.html:7 +msgid "Statistics" +msgstr "Statystyki" + +#: dashboard/templates/cards/statistics.html:25 +msgid "Not enough data" +msgstr "Brak wystarczających danych" + +#: dashboard/templates/cards/timer_list.html:12 +msgid "%(count)s active timer%(plural)s" +msgstr "%(count)s aktywny stoper %(plural)s" + +#: dashboard/templates/cards/timer_list.html:19 +msgid "Started by %(instance.user)s at %(start)s" +msgstr "Rozpoczęty przez %(instance.user)s o %(start)s" + +#: dashboard/templates/cards/tummytime_day.html:6 +msgid "Today's Tummy Time" +msgstr "Dzisiejszy czas leżakowania" + +#: dashboard/templates/cards/tummytime_day.html:22 +msgid "%(duration)s at %(end)s" +msgstr "%(duration)s w %(end)s" + +#: dashboard/templates/cards/tummytime_last.html:6 +msgid "Last Tummy Time" +msgstr "Ostatni czas leżakowania" + +#: dashboard/templates/dashboard/child_button_group.html:3 +msgid "Child actions" +msgstr "Akcje dzieci" + +#: reports/templates/reports/diaperchange_types.html:4 +#: reports/templates/reports/diaperchange_types.html:8 +#: reports/templates/reports/report_list.html:12 +msgid "Diaper Change Types" +msgstr "Typy zmiany pieluchy" + +#: reports/templates/reports/diaperchange_lifetimes.html:4 +#: reports/templates/reports/diaperchange_lifetimes.html:8 +#: reports/templates/reports/report_list.html:13 +msgid "Diaper Lifetimes" +msgstr "Czas \"życia\" pieluchy" + +#: reports/templates/reports/report_list.html:15 +msgid "Feeding Durations (Average)" +msgstr "Czas karmienia (średni)" + +#: reports/templates/reports/report_list.html:19 +#: reports/templates/reports/sleep_pattern.html:4 +#: reports/templates/reports/sleep_pattern.html:8 +msgid "Sleep Pattern" +msgstr "Wzór snu" + +#: reports/templates/reports/report_list.html:20 +#: reports/templates/reports/sleep_totals.html:4 +#: reports/templates/reports/sleep_totals.html:8 +msgid "Sleep Totals" +msgstr "Snu łącznie" + +#: dashboard/templatetags/cards.py:420 +msgid "Diaper change frequency" +msgstr "Częstotliwość zmiany pieluchy" + +#: dashboard/templatetags/cards.py:466 +msgid "Feeding frequency" +msgstr "Częstotliwość karmienia" + +#: dashboard/templatetags/cards.py:328 +msgid "Average nap duration" +msgstr "Średni czas drzemi" + +#: dashboard/templatetags/cards.py:335 +msgid "Average naps per day" +msgstr "Średnie drzemki na dzień" + +#: dashboard/templatetags/cards.py:345 +msgid "Average sleep duration" +msgstr "Średni czas spania" + +#: dashboard/templatetags/cards.py:352 +msgid "Average awake duration" +msgstr "Średni czas wstawania" + +#: dashboard/templatetags/cards.py:362 +msgid "Weight change per week" +msgstr "Zmiana wagi w ciągu tygodnia" + +#: reports/graphs/diaperchange_lifetimes.py:35 +msgid "Diaper Lifetimes" +msgstr "Czas życia pieluch " + +#: reports/graphs/diaperchange_lifetimes.py:36 +msgid "Time between changes (hours)" +msgstr "Czas pomiędzy zmianami (godziny)" + +#: reports/graphs/diaperchange_types.py:41 reports/graphs/feeding_amounts.py:58 +msgid "Total" +msgstr "Łącznie" + +#: reports/graphs/diaperchange_types.py:48 +msgid "Diaper Change Types" +msgstr "Typy zmian pieluch " + +#: reports/graphs/diaperchange_types.py:51 +msgid "Number of changes" +msgstr "Czas zmian" + +#: reports/graphs/feeding_duration.py:38 +msgid "Average duration" +msgstr "Średni czas" + +#: reports/graphs/feeding_duration.py:46 +msgid "Total feedings" +msgstr "Łącznie karmień" + +#: reports/graphs/feeding_duration.py:55 +msgid "Average Feeding Durations" +msgstr "Średni czas karmienia" + +#: reports/graphs/feeding_duration.py:58 +msgid "Average duration (minutes)" +msgstr "Średni czas (minuty)" + +#: reports/graphs/feeding_duration.py:60 +msgid "Number of feedings" +msgstr "Ilość karmień" + +#: reports/graphs/sleep_pattern.py:148 +msgid "Sleep Pattern" +msgstr "Wzorzec snu" + +#: reports/graphs/sleep_pattern.py:165 +msgid "Time of day" +msgstr "Pora dnia" + +#: reports/graphs/sleep_totals.py:48 +msgid "Total sleep" +msgstr "Łącznie snu" + +#: reports/graphs/sleep_totals.py:58 +msgid "Sleep Totals" +msgstr "Podsumowania dotyczące snu" + +#: reports/graphs/sleep_totals.py:61 +msgid "Hours of sleep" +msgstr "Godzin snu" + +#: reports/graphs/weight_change.py:27 +msgid "Weight" +msgstr "Waga" + +#: reports/templates/reports/feeding_duration.html:4 +#: reports/templates/reports/feeding_duration.html:8 +msgid "Average Feeding Durations" +msgstr "Średni czas karmienia" + +#: dashboard/templates/dashboard/child_button_group.html:12 +#: reports/templates/reports/base.html:9 +#: reports/templates/reports/report_list.html:4 +msgid "Reports" +msgstr "Zgłoszeń" + +#: reports/templates/reports/report_base.html:19 +msgid "There is no enough data to generate this report." +msgstr "Brak wystarczających danych do wygenerowania tego raportu." + +#: core/models.py:296 +msgid "Both breasts" +msgstr "Obie piersi" + +#: babybuddy/settings/base.py:173 +msgid "German" +msgstr "Niemiecki" + +#: babybuddy/settings/base.py:177 +msgid "Spanish" +msgstr "Hiszpański" + +#: babybuddy/settings/base.py:178 +msgid "Swedish" +msgstr "Szwedzki" + +#: babybuddy/settings/base.py:179 +msgid "Turkish" +msgstr "Turecki" + +#: babybuddy/templates/error/403.html:9 +msgid "You do not have permission to access this resource. Contact a site administrator for assistance." +msgstr "Nie masz uprawnień do tych zasobów. Skontaktuj się z administratorem witryny" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:75 +#: babybuddy/templates/babybuddy/nav-dropdown.html:179 core/models.py:506 +#: core/models.py:519 core/models.py:520 core/models.py:523 +#: core/templates/core/temperature_confirm_delete.html:7 +#: core/templates/core/temperature_form.html:13 +#: core/templates/core/temperature_list.html:4 +#: core/templates/core/temperature_list.html:7 +#: core/templates/core/temperature_list.html:12 +#: core/templates/core/temperature_list.html:29 +msgid "Temperature" +msgstr "Temperatura" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:185 +msgid "Temperature reading" +msgstr "Odczyt temperatury" + +#: babybuddy/templates/babybuddy/welcome.html:14 +msgid "Learn about and predict baby's needs without (as much) guess work by using Baby Buddy to track —" +msgstr "Poznaj i przewiduj potrzeby dziecka bez (tak dużo) zgadywania, używając Baby Buddy do śledzenia —" + +#: babybuddy/templates/babybuddy/welcome.html:56 +msgid "As the amount of entries grows, Baby Buddy will help parents and caregivers to identify small patterns in baby's habits using the dashboard and graphs. Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and dads with 2AM feedings and changings. To get started, just click the button below to add your first (or second, third, etc.) child!" +msgstr "Wraz ze wzrostem liczby wpisów Baby Buddy pomoże rodzicom i opiekunom zidentyfikować małe wzorce w nawykach dziecka za pomocą pulpitu nawigacyjnego i wykresów. Baby Buddy jest przystosowany do urządzeń mobilnych i wykorzystuje ciemny motyw, aby pomóc zmęczonym mamom i tatusiom karmić i przebierać o drugiej w nocy. Aby rozpocząć, po prostu kliknij poniższy przycisk, aby dodać swoje pierwsze (lub drugie, trzecie itd.) dziecko!" + +#: babybuddy/templates/registration/password_reset_confirm.html:13 +msgid "Oh snap! The two passwords did not match. Please try again." +msgstr "O nie! Hasła nie pasują. Spróbuj ponownie" + +#: babybuddy/templates/registration/password_reset_done.html:9 +msgid "We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly." +msgstr "Wysłaliśmy Ci instrukcje dotyczące ustawienia hasła, jeśli istnieje konto z wprowadzonym adresem e-mail. Powinieneś je wkrótce otrzymać." + +#: babybuddy/templates/registration/password_reset_done.html:15 +msgid "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder." +msgstr "Jeśli nie otrzymasz wiadomości e-mail, upewnij się, że wpisałeś adres, pod którym się zarejestrowałeś, i sprawdź folder ze spamem." + +#: babybuddy/templates/registration/password_reset_form.html:9 +msgid "Enter your account email address in the form below. If the address is valid, you will receive instructions for resetting your password." +msgstr "Wpisz adres e-mail swojego konta w poniższym formularzu. Jeśli adres jest prawidłowy, otrzymasz instrukcje dotyczące zresetowania hasła." + +#: core/models.py:285 +msgid "Fortified breast milk" +msgstr "Mleko wzbogacone" + +#: core/templates/core/temperature_confirm_delete.html:4 +msgid "Delete a Temperature Reading" +msgstr "Usuń odczyt temperatury" + +#: core/templates/core/temperature_form.html:8 +#: core/templates/core/temperature_form.html:17 +msgid "Add a Temperature Reading" +msgstr "Dodaj odczyt temperatury" + +#: core/templates/core/temperature_form.html:27 +msgid "Add a Temperature Entry" +msgstr "Dodaj wpis temperatury" + +#: core/templates/core/temperature_list.html:70 +msgid "No temperature entries found." +msgstr "Brak wpisów temperatury" + +#: core/templates/core/timer_detail.html:34 +msgid "%(timer)s created by %(user)s" +msgstr "%(timer)s utworzony przez %(user)s" + +#: core/utils.py:40 +msgid "%(hours)s hour" +msgid_plural "%(hours)s hours" +msgstr[0] "%(hours)s godzina" +msgstr[1] "%(hours)s godziny" +msgstr[2] "%(hours)s godzin" +msgstr[3] "%(hours)s godzin" + +#: core/utils.py:44 +msgid "%(minutes)s minute" +msgid_plural "%(minutes)s minutes" +msgstr[0] "%(minutes)s minuta" +msgstr[1] "%(minutes)s minuty" +msgstr[2] "%(minutes)s minut" +msgstr[3] "%(minutes)s minuty" + +#: core/utils.py:50 +msgid "%(seconds)s second" +msgid_plural "%(seconds)s seconds" +msgstr[0] "%(seconds) sekunda" +msgstr[1] "%(seconds) sekundy" +msgstr[2] "%(seconds) sekund" +msgstr[3] "%(seconds) sekund" + +#: core/views.py:69 core/views.py:146 +msgid "%(model)s entry deleted." +msgstr "wpis %(model)s usunięty." + +#: core/views.py:366 +msgid "%(model)s reading added!" +msgstr "Odczytywanie %(model)s dodano!" + +#: core/views.py:374 +msgid "%(model)s reading for %(child)s updated." +msgstr "Zaktualizowano odczytywanie %(model)s dla %(child)s" + +#: dashboard/templates/cards/timer_list.html:27 +msgid "Started by %(user)s at %(start)s" +msgstr "Rozpoczął %(user)s o %(start)s" + +#: reports/templates/reports/feeding_amounts.html:4 +#: reports/templates/reports/feeding_amounts.html:8 +#: reports/templates/reports/report_list.html:14 +msgid "Feeding Amounts" +msgstr "Ilośc karmień" + +#: reports/graphs/feeding_amounts.py:27 +msgid "Total feeding amount" +msgstr "Łącznie karmień" + +#: reports/graphs/feeding_amounts.py:36 +msgid "Total Feeding Amounts" +msgstr "Łączna ilość karmień" + +#: reports/graphs/feeding_amounts.py:72 +msgid "Feeding amount" +msgstr "Ilość karmienia" + +#: reports/templates/reports/report_base.html:17 +msgid "There is not enough data to generate this report." +msgstr "Brak wystarczającej ilości danych do wygenerowania raportu" + +#: babybuddy/models.py:69 +msgid "Timezone" +msgstr "Strefa czasowa" + +#: babybuddy/templates/admin/base_site.html:4 +#: babybuddy/templates/admin/base_site.html:7 +#: babybuddy/templates/babybuddy/nav-dropdown.html:359 +msgid "Database Admin" +msgstr "Administrator bazy danych" + +#: core/templates/core/child_list.html:15 +msgid "Add Child" +msgstr "Dodaj dziecko" + +#: core/templates/core/diaperchange_list.html:15 +msgid "Add Diaper Change" +msgstr "Dodaj zmianę pieluchy" + +#: core/templates/core/feeding_list.html:15 +msgid "Add Feeding" +msgstr "Dodaj karmienie" + +#: core/templates/core/note_list.html:15 +msgid "Add Note" +msgstr "Dodaj notatkę" + +#: core/templates/core/sleep_list.html:15 +msgid "Add Sleep" +msgstr "Dodaj spanie" + +#: core/templates/core/temperature_list.html:15 +msgid "Add Temperature Reading" +msgstr "Dodaj odczyt temperatury" + +#: core/templates/core/timer_confirm_delete_inactive.html:5 +msgid "Delete All Inactive Timers" +msgstr "Usuń wszystkie niekatywne stopery" + +#: core/templates/core/timer_confirm_delete_inactive.html:10 +msgid "Delete Inactive" +msgstr "Usuń niekatywne" + +#: core/templates/core/timer_confirm_delete_inactive.html:17 +msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" +msgstr "Czy chcesz usunąć %(number)s nieaktwynych stoperów %(plural)s?" + +#: core/templates/core/timer_list.html:68 +msgid "Delete Inactive Timers" +msgstr "Usuń niekatywne stopery" + +#: core/templates/core/tummytime_list.html:15 +msgid "Add Tummy Time" +msgstr "Dodaj czas leżakowania" + +#: core/templates/core/weight_list.html:15 +msgid "Add Weight" +msgstr "Dodaj wagę" + +#: core/views.py:501 +msgid "All inactive timers deleted." +msgstr "Usunięto wszystkie nieaktywne stopery" + +#: core/views.py:511 +msgid "No inactive timers exist." +msgstr "Brak nieaktywnych stoperów" + +#: dashboard/templates/cards/feeding_last_method.html:19 +msgid "most recent" +msgstr "Najnowsze" + +#: dashboard/templates/cards/feeding_last_method.html:21 +msgid "%(n)s feeding%(plural)s ago" +msgstr "%(n)s karmień%(plural)s temu" + +#: dashboard/templates/cards/sleep_last.html:6 +msgid "Last Sleep" +msgstr "Ostatni sen" + +#: reports/templates/reports/report_list.html:11 +msgid "Diaper Change Amounts" +msgstr "Ilość zmian pieluchy" + +#: reports/graphs/diaperchange_amounts.py:27 +msgid "Diaper change amount" +msgstr "Ilość zmiany pieluchy" + +#: reports/graphs/diaperchange_amounts.py:36 +msgid "Diaper Change Amounts" +msgstr "Ilość zmian pieluchy" + +#: reports/graphs/diaperchange_amounts.py:39 +msgid "Change amount" +msgstr "Zmień ilość" + +#: reports/templates/reports/diaperchange_amounts.html:4 +#: reports/templates/reports/diaperchange_amounts.html:8 +msgid "Diaper Amounts" +msgstr "Zmiana pieluchy" + +#: babybuddy/models.py:21 +msgid "If supported by browser, the dashboard will only refresh when visible, and also when receiving focus." +msgstr "" + +#: babybuddy/models.py:40 +msgid "Hide Empty Dashboard Cards" +msgstr "" + +#: babybuddy/models.py:43 +msgid "Hide data older than" +msgstr "" + +#: babybuddy/models.py:45 +msgid "This setting controls which data will be shown in the dashboard." +msgstr "" + +#: babybuddy/models.py:51 +msgid "show all data" +msgstr "" + +#: babybuddy/models.py:52 +msgid "1 day" +msgstr "" + +#: babybuddy/models.py:53 +msgid "2 days" +msgstr "" + +#: babybuddy/models.py:54 +msgid "3 days" +msgstr "" + +#: babybuddy/models.py:55 +msgid "1 week" +msgstr "" + +#: babybuddy/models.py:56 +msgid "4 weeks" +msgstr "" + +#: babybuddy/settings/base.py:168 +msgid "Dutch" +msgstr "" + +#: babybuddy/settings/base.py:172 +msgid "Finnish" +msgstr "" + +#: babybuddy/settings/base.py:174 +msgid "Italian" +msgstr "" + +#: babybuddy/settings/base.py:175 +msgid "Polish" +msgstr "" + +#: babybuddy/settings/base.py:176 +msgid "Portuguese" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:118 +#: core/templates/timeline/timeline.html:4 +#: core/templates/timeline/timeline.html:7 +#: dashboard/templates/dashboard/child_button_group.html:9 +msgid "Timeline" +msgstr "" + +#: core/models.py:286 +msgid "Solid food" +msgstr "" + +#: core/models.py:297 +msgid "Parent fed" +msgstr "" + +#: core/models.py:298 +msgid "Self fed" +msgstr "" + +#: core/templates/core/diaperchange_list.html:29 +msgid "Contents" +msgstr "" + +#: core/templates/core/timer_detail.html:77 +msgid "Restart timer" +msgstr "" + +#: core/templates/core/timer_detail.html:84 +msgid "Delete timer" +msgstr "" + +#: core/templatetags/datetime.py:60 +msgid "Today" +msgstr "Dzisiaj" + +#: core/templatetags/datetime.py:75 +msgid "{}, {}" +msgstr "" + +#: core/templatetags/duration.py:25 +msgid "0 days" +msgstr "" + +#: core/timeline.py:137 +msgid "Amount: %(amount).0f" +msgstr "" + +#: core/timeline.py:157 +msgid "Contents: %(contents)s" +msgstr "" + +#: dashboard/templates/cards/diaperchange_last.html:12 +#: dashboard/templates/cards/feeding_last.html:12 +#: dashboard/templates/cards/sleep_last.html:12 +#: dashboard/templates/cards/tummytime_last.html:13 +msgid "
%(since)s ago
%(time)s" +msgstr "" + +#: dashboard/templates/cards/feeding_day.html:6 +msgid "Today's Feeding" +msgstr "" + +#: dashboard/templates/cards/feeding_day.html:20 +msgid "%(count)s feeding entries" +msgstr "" + +#: dashboard/templates/cards/statistics.html:42 +msgid "No data yet" +msgstr "" + +#: reports/templates/reports/report_list.html:21 +msgid "Tummy Time Durations (Sum)" +msgstr "" + +#: core/templates/timeline/_timeline.html:61 +#: dashboard/templates/dashboard/child_button_group.html:20 +msgid "Edit" +msgstr "" + +#: dashboard/templatetags/cards.py:456 +msgid "Feeding frequency (past 3 days)" +msgstr "" + +#: dashboard/templatetags/cards.py:460 +msgid "Feeding frequency (past 2 weeks)" +msgstr "" + +#: reports/graphs/tummytime_duration.py:34 +msgid "Total duration" +msgstr "" + +#: reports/graphs/tummytime_duration.py:41 +#: reports/graphs/tummytime_duration.py:55 +msgid "Number of sessions" +msgstr "" + +#: reports/graphs/tummytime_duration.py:50 +msgid "Total Tummy Time Durations" +msgstr "" + +#: reports/graphs/tummytime_duration.py:53 +msgid "Total duration (minutes)" +msgstr "" + +#: reports/templates/reports/tummytime_duration.html:4 +#: reports/templates/reports/tummytime_duration.html:8 +msgid "Total Tummy Time Durations" +msgstr "" + +#: babybuddy/settings/base.py:169 +#, fuzzy +msgid "English (US)" +msgstr "Angielski" + +#: babybuddy/settings/base.py:170 +#, fuzzy +msgid "English (UK)" +msgstr "Angielski" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:171 +msgid "Measurements" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:207 core/models.py:369 +#: core/models.py:381 core/models.py:382 core/models.py:385 +#: core/templates/core/height_confirm_delete.html:7 +#: core/templates/core/height_form.html:13 +#: core/templates/core/height_list.html:4 +#: core/templates/core/height_list.html:7 +#: core/templates/core/height_list.html:12 +#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 +#: reports/graphs/height_change.py:30 +#: reports/templates/reports/height_change.html:4 +#: reports/templates/reports/height_change.html:8 +#: reports/templates/reports/report_list.html:17 +#, fuzzy +msgid "Height" +msgstr "Waga" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:213 +#, fuzzy +msgid "Height entry" +msgstr "Wpis wagi" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:221 core/models.py:338 +#: core/models.py:351 core/models.py:352 core/models.py:355 +#: core/templates/core/head_circumference_confirm_delete.html:7 +#: core/templates/core/head_circumference_form.html:13 +#: core/templates/core/head_circumference_list.html:4 +#: core/templates/core/head_circumference_list.html:7 +#: core/templates/core/head_circumference_list.html:12 +#: core/templates/core/head_circumference_list.html:29 +#: reports/graphs/head_circumference_change.py:19 +#: reports/graphs/head_circumference_change.py:30 +#: reports/templates/reports/head_circumference_change.html:4 +#: reports/templates/reports/head_circumference_change.html:8 +#: reports/templates/reports/report_list.html:16 +msgid "Head Circumference" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:227 +msgid "Head Circumference entry" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:235 core/models.py:139 +#: core/models.py:151 core/models.py:152 core/models.py:155 +#: core/templates/core/bmi_confirm_delete.html:7 +#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 +#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 +#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 +#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 +#: reports/templates/reports/bmi_change.html:8 +msgid "BMI" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:241 +#, fuzzy +msgid "BMI entry" +msgstr "Czas spania" + +#: core/models.py:452 +msgid "Napping" +msgstr "" + +#: core/templates/core/bmi_confirm_delete.html:4 +#, fuzzy +msgid "Delete a BMI Entry" +msgstr "Usuń czas spania" + +#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 +#: core/templates/core/bmi_form.html:27 +#, fuzzy +msgid "Add a BMI Entry" +msgstr "Dodaj czas spania" + +#: core/templates/core/bmi_list.html:15 +msgid "Add BMI" +msgstr "" + +#: core/templates/core/bmi_list.html:70 +#, fuzzy +msgid "No bmi entries found." +msgstr "Brak wpisów stopera" + +#: core/templates/core/head_circumference_confirm_delete.html:4 +#, fuzzy +msgid "Delete a Head Circumference Entry" +msgstr "Usuń czas leżakowania" + +#: core/templates/core/head_circumference_form.html:8 +#: core/templates/core/head_circumference_form.html:17 +#: core/templates/core/head_circumference_form.html:27 +#, fuzzy +msgid "Add a Head Circumference Entry" +msgstr "Dodaj wpis temperatury" + +#: core/templates/core/head_circumference_list.html:15 +msgid "Add Head Circumference" +msgstr "" + +#: core/templates/core/head_circumference_list.html:70 +#, fuzzy +msgid "No head circumference entries found." +msgstr "Brak wpisów stopera" + +#: core/templates/core/height_confirm_delete.html:4 +#, fuzzy +msgid "Delete a Height Entry" +msgstr "Usuń wpis wagi" + +#: core/templates/core/height_form.html:8 +#: core/templates/core/height_form.html:17 +#: core/templates/core/height_form.html:27 +#, fuzzy +msgid "Add a Height Entry" +msgstr "Zaktualizuj wpis wagi" + +#: core/templates/core/height_list.html:15 +#, fuzzy +msgid "Add Height" +msgstr "Dodaj wagę" + +#: core/templates/core/height_list.html:70 +#, fuzzy +msgid "No height entries found." +msgstr "Brak wpisów wagi" + +#: core/templates/timeline/_timeline.html:44 +#, fuzzy +msgid "Duration: %(duration)s" +msgstr "Czas trwania zbyt długi." + +#: core/templates/timeline/_timeline.html:53 +msgid "%(since)s since previous" +msgstr "" + +#: core/templates/timeline/_timeline.html:85 +msgid "No events" +msgstr "" + +#: core/timeline.py:185 +#, fuzzy +msgid "%(child)s had a %(type)s diaper change." +msgstr "%(child)s miał zmianę pieluchy" + +#: dashboard/templatetags/cards.py:372 +#, fuzzy +msgid "Height change per week" +msgstr "Zmiana wagi w ciągu tygodnia" + +#: dashboard/templatetags/cards.py:382 +#, fuzzy +msgid "Head circumference change per week" +msgstr "Zmiana wagi w ciągu tygodnia" + +#: dashboard/templatetags/cards.py:392 +#, fuzzy +msgid "BMI change per week" +msgstr "Zmiana wagi w ciągu tygodnia" + +#: reports/graphs/bmi_change.py:27 +#, fuzzy +msgid "BMI" +msgstr "Waga" + +#: reports/graphs/feeding_amounts.py:69 +#, fuzzy +msgid "Total Feeding Amount by Type" +msgstr "Łączna ilość karmień" + +#: reports/graphs/head_circumference_change.py:27 +msgid "Head Circumference" +msgstr "" + +#: reports/graphs/height_change.py:27 +#, fuzzy +msgid "Height" +msgstr "Waga" + +#: babybuddy/settings/base.py:167 +msgid "Chinese (simplified)" +msgstr "" + +#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 +msgid "Bad Request" +msgstr "" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:14 +msgid "How to Fix" +msgstr "" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:15 +msgid "Add %(origin)s to the CSRF_TRUSTED_ORIGINS environment variable. If multiple origins are required separate with commas." +msgstr "" + +#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 +msgid "Page Not Found" +msgstr "" + +#: babybuddy/templates/error/404.html:9 +msgid "The path %(request_path)s does not exist." +msgstr "" + +#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 +msgid "Server Error" +msgstr "" + +#: babybuddy/templates/error/base.html:14 +#, fuzzy +msgid "Return to Baby Buddy" +msgstr "Witamy w Baby Buddy!" + +#: babybuddy/views.py:43 +msgid "Forbidden" +msgstr "" + +#: babybuddy/views.py:44 +msgid "CSRF verification failed. Request aborted." +msgstr "" + +#: babybuddy/settings/base.py:166 +msgid "Catalan" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:93 +#: babybuddy/templates/babybuddy/nav-dropdown.html:316 core/models.py:437 +#: core/models.py:438 core/models.py:441 +#: core/templates/core/pumping_confirm_delete.html:7 +#: core/templates/core/pumping_form.html:13 +#: core/templates/core/pumping_list.html:4 +#: core/templates/core/pumping_list.html:7 +#: core/templates/core/pumping_list.html:12 +#: reports/templates/reports/pumping_amounts.html:4 +#: reports/templates/reports/pumping_amounts.html:8 +msgid "Pumping" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:322 +#, fuzzy +msgid "Pumping entry" +msgstr "Wpis wagi" + +#: core/filters.py:11 core/models.py:96 core/models.py:115 +msgid "Tag" +msgstr "" + +#: core/forms.py:136 +msgid "Click on the tags to add (+) or remove (-) tags or use the text editor to create new tags." +msgstr "" + +#: core/models.py:90 +#, fuzzy +msgid "Last used" +msgstr "Nazwisko" + +#: core/models.py:97 core/templates/core/bmi_list.html:30 +#: core/templates/core/diaperchange_list.html:32 +#: core/templates/core/feeding_list.html:35 +#: core/templates/core/head_circumference_list.html:30 +#: core/templates/core/height_list.html:30 +#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 +#: core/templates/core/temperature_list.html:30 +#: core/templates/core/tummytime_list.html:31 +#: core/templates/core/weight_list.html:30 +msgid "Tags" +msgstr "" + +#: core/templates/core/pumping_confirm_delete.html:4 +#, fuzzy +msgid "Delete a Pumping Entry" +msgstr "Usuń wpis wagi" + +#: core/templates/core/pumping_form.html:8 +#: core/templates/core/pumping_form.html:17 +#: core/templates/core/pumping_form.html:27 +#, fuzzy +msgid "Add a Pumping Entry" +msgstr "Zaktualizuj wpis wagi" + +#: core/templates/core/pumping_list.html:15 +#, fuzzy +msgid "Add Pumping Entry" +msgstr "Zaktualizuj wpis wagi" + +#: core/templates/core/pumping_list.html:66 +#, fuzzy +msgid "No pumping entries found." +msgstr "Brak wpisów stopera" + #: core/templates/core/widget_tag_editor.html:22 #, fuzzy -#| msgid "Last name" msgid "Tag name" msgstr "Nazwisko" @@ -1605,605 +2102,81 @@ msgctxt "Error modal" msgid "Close" msgstr "" -#: core/templates/timeline/_timeline.html:38 -#, python-format -msgid "%(since)s ago (%(time)s)" -msgstr "%(since)s temu (%(time)s)" - -#: core/templates/timeline/_timeline.html:44 -#, fuzzy, python-format -#| msgid "Duration too long." -msgid "Duration: %(duration)s" -msgstr "Czas trwania zbyt długi." - -#: core/templates/timeline/_timeline.html:53 -#, python-format -msgid "%(since)s since previous" -msgstr "" - -#: core/templates/timeline/_timeline.html:61 -#: dashboard/templates/dashboard/child_button_group.html:20 -msgid "Edit" -msgstr "" - -#: core/templates/timeline/_timeline.html:85 -msgid "No events" -msgstr "" - -#: core/templatetags/datetime.py:60 -msgid "Today" -msgstr "Dzisiaj" - -#: core/templatetags/datetime.py:75 -msgid "{}, {}" -msgstr "" - -#: core/templatetags/duration.py:25 -msgid "0 days" -msgstr "" - -#: core/templatetags/duration.py:111 -#: dashboard/templates/cards/diaperchange_types.html:49 -msgid "today" -msgstr "Dzisiaj" - -#: core/templatetags/duration.py:113 -#: dashboard/templates/cards/diaperchange_types.html:51 -msgid "yesterday" -msgstr "Wczoraj" - -#: core/templatetags/duration.py:116 -#, fuzzy -#| msgid "%(key)s days ago" -msgid " days ago" -msgstr "%(key)s dni temu" - -#: core/timeline.py:53 -#, python-format -msgid "%(child)s started tummy time!" -msgstr "%(child)s zaczął czas leżakowania" - -#: core/timeline.py:65 -#, python-format -msgid "%(child)s finished tummy time." -msgstr "%(child)s zakończył czas leżakowania" - -#: core/timeline.py:91 -#, python-format -msgid "%(child)s fell asleep." -msgstr "%(child)s zasnęło" - -#: core/timeline.py:103 -#, python-format -msgid "%(child)s woke up." -msgstr "%(child)s wstało" - -#: core/timeline.py:137 -#, python-format -msgid "Amount: %(amount).0f" -msgstr "" - -#: core/timeline.py:145 -#, python-format -msgid "%(child)s started feeding." -msgstr "%(child)s rozpoczęto karmienie" - -#: core/timeline.py:158 -#, python-format -msgid "%(child)s finished feeding." -msgstr "%(child)s ukończono karmienie" - -#: core/timeline.py:185 -#, fuzzy, python-format -#| msgid "%(child)s had a diaper change." -msgid "%(child)s had a %(type)s diaper change." -msgstr "%(child)s miał zmianę pieluchy" - -#: core/utils.py:40 -#, python-format -msgid "%(hours)s hour" -msgid_plural "%(hours)s hours" -msgstr[0] "%(hours)s godzina" -msgstr[1] "%(hours)s godziny" -msgstr[2] "%(hours)s godzin" -msgstr[3] "%(hours)s godzin" - -#: core/utils.py:44 -#, python-format -msgid "%(minutes)s minute" -msgid_plural "%(minutes)s minutes" -msgstr[0] "%(minutes)s minuta" -msgstr[1] "%(minutes)s minuty" -msgstr[2] "%(minutes)s minut" -msgstr[3] "%(minutes)s minuty" - -#: core/utils.py:50 -#, python-format -msgid "%(seconds)s second" -msgid_plural "%(seconds)s seconds" -msgstr[0] "%(seconds) sekunda" -msgstr[1] "%(seconds) sekundy" -msgstr[2] "%(seconds) sekund" -msgstr[3] "%(seconds) sekund" - -#: core/views.py:33 -#, python-format -msgid "%(model)s entry for %(child)s added!" -msgstr "Dodano %(model)s dla dziecka %(child)s!" - -#: core/views.py:35 core/views.py:308 -#, python-format -msgid "%(model)s entry added!" -msgstr "Dodano %(model)s!" - -#: core/views.py:61 core/views.py:316 -#, python-format -msgid "%(model)s entry for %(child)s updated." -msgstr "Zaktualizowano %(model)s dla dziecka %(child)s!" - -#: core/views.py:63 -#, python-format -msgid "%(model)s entry updated." -msgstr "Zaktualizowano %(model)s" - -#: core/views.py:69 core/views.py:146 -#, python-format -msgid "%(model)s entry deleted." -msgstr "wpis %(model)s usunięty." - -#: core/views.py:115 -#, python-format -msgid "%(first_name)s %(last_name)s added!" -msgstr "Dodano %(first_name)s %(last_name)s!" - -#: core/views.py:366 -#, python-format -msgid "%(model)s reading added!" -msgstr "Odczytywanie %(model)s dodano!" - -#: core/views.py:374 -#, python-format -msgid "%(model)s reading for %(child)s updated." -msgstr "Zaktualizowano odczytywanie %(model)s dla %(child)s" - -#: core/views.py:483 -#, python-format -msgid "%(timer)s stopped." -msgstr "Stop %(timer)s" - -#: core/views.py:506 -msgid "All inactive timers deleted." -msgstr "Usunięto wszystkie nieaktywne stopery" - -#: core/views.py:516 -msgid "No inactive timers exist." -msgstr "Brak nieaktywnych stoperów" - -#: dashboard/templates/cards/diaperchange_last.html:6 -msgid "Last Diaper Change" -msgstr "Ostatna zmiana pieluchy" - -#: dashboard/templates/cards/diaperchange_last.html:12 -#: dashboard/templates/cards/feeding_last.html:12 -#: dashboard/templates/cards/sleep_last.html:12 -#: dashboard/templates/cards/tummytime_last.html:13 -#, python-format -msgid "
%(since)s ago
%(time)s" -msgstr "" - -#: dashboard/templates/cards/diaperchange_types.html:14 -msgid "Past Week" -msgstr "W minionym tygodniu" - -#: dashboard/templates/cards/diaperchange_types.html:27 -msgid "wet" -msgstr "mokry" - -#: dashboard/templates/cards/diaperchange_types.html:35 -msgid "solid" -msgstr "suchy" - -#: dashboard/templates/cards/diaperchange_types.html:53 -#, python-format -msgid "%(key)s days ago" -msgstr "%(key)s dni temu" - -#: dashboard/templates/cards/feeding_day.html:6 -msgid "Today's Feeding" -msgstr "" - -#: dashboard/templates/cards/feeding_day.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s feeding" -msgid_plural "%(counter)s feedings" -msgstr[0] "%(count)s pójść spać" -msgstr[1] "%(count)s pójść spać" -msgstr[2] "%(count)s pójść spać" - #: dashboard/templates/cards/feeding_day.html:32 -#: dashboard/templates/cards/sleep_recent.html:32 -#, python-format msgid "
%(since)s
" msgstr "" -#: dashboard/templates/cards/feeding_last.html:6 -msgid "Last Feeding" -msgstr "Ostatnie karmienie" - -#: dashboard/templates/cards/feeding_last_method.html:6 -msgid "Last Feeding Method" -msgstr "Ostatnia metoda karmienia" - -#: dashboard/templates/cards/feeding_last_method.html:19 -msgid "most recent" -msgstr "Najnowsze" - -#: dashboard/templates/cards/feeding_last_method.html:21 -#, fuzzy, python-format -#| msgid "%(n)s feeding%(plural)s ago" -msgid "%(n)s feeding ago" -msgid_plural "%(n)s feedings ago" -msgstr[0] "%(n)s karmień%(plural)s temu" -msgstr[1] "%(n)s karmień%(plural)s temu" -msgstr[2] "%(n)s karmień%(plural)s temu" - -#: dashboard/templates/cards/sleep_last.html:6 -msgid "Last Sleep" -msgstr "Ostatni sen" - -#: dashboard/templates/cards/sleep_naps_day.html:6 -msgid "Today's Naps" -msgstr "Dzisiejsze spanie" - -#: dashboard/templates/cards/sleep_naps_day.html:12 -#, fuzzy, python-format -#| msgid "%(count)s nap%(plural)s" -msgid "%(count)s nap" -msgid_plural "%(count)s naps" -msgstr[0] "%(count)s nap%(plural)s" -msgstr[1] "%(count)s nap%(plural)s" -msgstr[2] "%(count)s nap%(plural)s" - -#: dashboard/templates/cards/sleep_recent.html:6 +#: dashboard/templatetags/cards.py:410 #, fuzzy -#| msgid "Last Sleep" -msgid "Recent Sleep" -msgstr "Ostatni sen" - -#: dashboard/templates/cards/sleep_recent.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s sleep" -msgid_plural "%(counter)s sleep" -msgstr[0] "%(count)s pójść spać" -msgstr[1] "%(count)s pójść spać" -msgstr[2] "%(count)s pójść spać" - -#: dashboard/templates/cards/statistics.html:7 -msgid "Statistics" -msgstr "Statystyki" - -#: dashboard/templates/cards/statistics.html:25 -msgid "Not enough data" -msgstr "Brak wystarczających danych" - -#: dashboard/templates/cards/statistics.html:42 -msgid "No data yet" -msgstr "" - -#: dashboard/templates/cards/timer_list.html:12 -#, fuzzy, python-format -#| msgid "%(count)s active timer%(plural)s" -msgid "%(count)s active timer" -msgid_plural "%(count)s active timers" -msgstr[0] "%(count)s aktywny stoper %(plural)s" -msgstr[1] "%(count)s aktywny stoper %(plural)s" -msgstr[2] "%(count)s aktywny stoper %(plural)s" - -#: dashboard/templates/cards/timer_list.html:27 -#, python-format -msgid "Started by %(user)s at %(start)s" -msgstr "Rozpoczął %(user)s o %(start)s" - -#: dashboard/templates/cards/tummytime_day.html:6 -msgid "Today's Tummy Time" -msgstr "Dzisiejszy czas leżakowania" - -#: dashboard/templates/cards/tummytime_day.html:22 -#, python-format -msgid "%(duration)s at %(end)s" -msgstr "%(duration)s w %(end)s" - -#: dashboard/templates/cards/tummytime_last.html:6 -msgid "Last Tummy Time" -msgstr "Ostatni czas leżakowania" - -#: dashboard/templates/cards/tummytime_last.html:18 -msgid "Never" -msgstr "Nigdy" - -#: dashboard/templates/dashboard/child_button_group.html:3 -msgid "Child actions" -msgstr "Akcje dzieci" - -#: dashboard/templates/dashboard/child_button_group.html:12 -#: reports/templates/reports/base.html:9 -#: reports/templates/reports/report_list.html:4 -msgid "Reports" -msgstr "Zgłoszeń" - -#: dashboard/templatetags/cards.py:357 -msgid "Average nap duration" -msgstr "Średni czas drzemi" - -#: dashboard/templatetags/cards.py:364 -msgid "Average naps per day" -msgstr "Średnie drzemki na dzień" - -#: dashboard/templatetags/cards.py:374 -msgid "Average sleep duration" -msgstr "Średni czas spania" - -#: dashboard/templatetags/cards.py:381 -msgid "Average awake duration" -msgstr "Średni czas wstawania" - -#: dashboard/templatetags/cards.py:391 -msgid "Weight change per week" -msgstr "Zmiana wagi w ciągu tygodnia" - -#: dashboard/templatetags/cards.py:401 -#, fuzzy -#| msgid "Weight change per week" -msgid "Height change per week" -msgstr "Zmiana wagi w ciągu tygodnia" - -#: dashboard/templatetags/cards.py:411 -#, fuzzy -#| msgid "Weight change per week" -msgid "Head circumference change per week" -msgstr "Zmiana wagi w ciągu tygodnia" - -#: dashboard/templatetags/cards.py:421 -#, fuzzy -#| msgid "Weight change per week" -msgid "BMI change per week" -msgstr "Zmiana wagi w ciągu tygodnia" - -#: dashboard/templatetags/cards.py:439 -#, fuzzy -#| msgid "Diaper change frequency" msgid "Diaper change frequency (past 3 days)" msgstr "Częstotliwość zmiany pieluchy" -#: dashboard/templatetags/cards.py:443 +#: dashboard/templatetags/cards.py:414 #, fuzzy -#| msgid "Diaper change frequency" msgid "Diaper change frequency (past 2 weeks)" msgstr "Częstotliwość zmiany pieluchy" -#: dashboard/templatetags/cards.py:449 -msgid "Diaper change frequency" -msgstr "Częstotliwość zmiany pieluchy" - -#: dashboard/templatetags/cards.py:485 -msgid "Feeding frequency (past 3 days)" -msgstr "" - -#: dashboard/templatetags/cards.py:489 -msgid "Feeding frequency (past 2 weeks)" -msgstr "" - -#: dashboard/templatetags/cards.py:495 -msgid "Feeding frequency" -msgstr "Częstotliwość karmienia" - -#: reports/graphs/bmi_change.py:27 +#: reports/graphs/pumping_amounts.py:57 #, fuzzy -#| msgid "Weight" -msgid "BMI" -msgstr "Waga" - -#: reports/graphs/diaperchange_amounts.py:27 -msgid "Diaper change amount" -msgstr "Ilość zmiany pieluchy" - -#: reports/graphs/diaperchange_amounts.py:36 -msgid "Diaper Change Amounts" -msgstr "Ilość zmian pieluchy" - -#: reports/graphs/diaperchange_amounts.py:39 -msgid "Change amount" -msgstr "Zmień ilość" - -#: reports/graphs/diaperchange_lifetimes.py:35 -msgid "Diaper Lifetimes" -msgstr "Czas życia pieluch " - -#: reports/graphs/diaperchange_lifetimes.py:36 -msgid "Time between changes (hours)" -msgstr "Czas pomiędzy zmianami (godziny)" - -#: reports/graphs/diaperchange_types.py:41 reports/graphs/feeding_amounts.py:58 -msgid "Total" -msgstr "Łącznie" - -#: reports/graphs/diaperchange_types.py:48 -msgid "Diaper Change Types" -msgstr "Typy zmian pieluch " - -#: reports/graphs/diaperchange_types.py:51 -msgid "Number of changes" -msgstr "Czas zmian" - -#: reports/graphs/feeding_amounts.py:69 -#, fuzzy -#| msgid "Total Feeding Amounts" -msgid "Total Feeding Amount by Type" -msgstr "Łączna ilość karmień" - -#: reports/graphs/feeding_amounts.py:72 -msgid "Feeding amount" -msgstr "Ilość karmienia" - -#: reports/graphs/feeding_duration.py:38 -msgid "Average duration" -msgstr "Średni czas" - -#: reports/graphs/feeding_duration.py:46 -msgid "Total feedings" -msgstr "Łącznie karmień" - -#: reports/graphs/feeding_duration.py:55 -msgid "Average Feeding Durations" -msgstr "Średni czas karmienia" - -#: reports/graphs/feeding_duration.py:58 -msgid "Average duration (minutes)" -msgstr "Średni czas (minuty)" - -#: reports/graphs/feeding_duration.py:60 -msgid "Number of feedings" -msgstr "Ilość karmień" - -#: reports/graphs/head_circumference_change.py:27 -msgid "Head Circumference" -msgstr "" - -#: reports/graphs/height_change.py:27 -#, fuzzy -#| msgid "Weight" -msgid "Height" -msgstr "Waga" - -#: reports/graphs/pumping_amounts.py:59 -#, fuzzy -#| msgid "Total Feeding Amounts" msgid "Total Pumping Amount" msgstr "Łączna ilość karmień" -#: reports/graphs/pumping_amounts.py:62 +#: reports/graphs/pumping_amounts.py:60 #, fuzzy -#| msgid "Feeding Amounts" msgid "Pumping Amount" msgstr "Ilośc karmień" -#: reports/graphs/sleep_pattern.py:150 -msgid "Sleep Pattern" -msgstr "Wzorzec snu" - -#: reports/graphs/sleep_pattern.py:167 -msgid "Time of day" -msgstr "Pora dnia" - -#: reports/graphs/sleep_totals.py:48 -msgid "Total sleep" -msgstr "Łącznie snu" - -#: reports/graphs/sleep_totals.py:58 -msgid "Sleep Totals" -msgstr "Podsumowania dotyczące snu" - -#: reports/graphs/sleep_totals.py:61 -msgid "Hours of sleep" -msgstr "Godzin snu" - -#: reports/graphs/tummytime_duration.py:34 -msgid "Total duration" -msgstr "" - -#: reports/graphs/tummytime_duration.py:41 -#: reports/graphs/tummytime_duration.py:55 -msgid "Number of sessions" -msgstr "" - -#: reports/graphs/tummytime_duration.py:50 -msgid "Total Tummy Time Durations" -msgstr "" - -#: reports/graphs/tummytime_duration.py:53 -msgid "Total duration (minutes)" -msgstr "" - -#: reports/graphs/weight_change.py:27 -msgid "Weight" -msgstr "Waga" - -#: reports/templates/reports/diaperchange_amounts.html:4 -#: reports/templates/reports/diaperchange_amounts.html:8 -msgid "Diaper Amounts" -msgstr "Zmiana pieluchy" - -#: reports/templates/reports/diaperchange_lifetimes.html:4 -#: reports/templates/reports/diaperchange_lifetimes.html:8 -#: reports/templates/reports/report_list.html:13 -msgid "Diaper Lifetimes" -msgstr "Czas \"życia\" pieluchy" - -#: reports/templates/reports/diaperchange_types.html:4 -#: reports/templates/reports/diaperchange_types.html:8 -#: reports/templates/reports/report_list.html:12 -msgid "Diaper Change Types" -msgstr "Typy zmiany pieluchy" - -#: reports/templates/reports/feeding_amounts.html:4 -#: reports/templates/reports/feeding_amounts.html:8 -#: reports/templates/reports/report_list.html:14 -msgid "Feeding Amounts" -msgstr "Ilośc karmień" - -#: reports/templates/reports/feeding_duration.html:4 -#: reports/templates/reports/feeding_duration.html:8 -msgid "Average Feeding Durations" -msgstr "Średni czas karmienia" - -#: reports/templates/reports/report_base.html:17 -msgid "There is not enough data to generate this report." -msgstr "Brak wystarczającej ilości danych do wygenerowania raportu" - #: reports/templates/reports/report_list.html:10 msgid "Body Mass Index (BMI)" msgstr "" -#: reports/templates/reports/report_list.html:11 -msgid "Diaper Change Amounts" -msgstr "Ilość zmian pieluchy" - -#: reports/templates/reports/report_list.html:15 -msgid "Feeding Durations (Average)" -msgstr "Czas karmienia (średni)" - #: reports/templates/reports/report_list.html:18 #, fuzzy -#| msgid "Feeding Amounts" msgid "Pumping Amounts" msgstr "Ilośc karmień" -#: reports/templates/reports/report_list.html:19 -#: reports/templates/reports/sleep_pattern.html:4 -#: reports/templates/reports/sleep_pattern.html:8 -msgid "Sleep Pattern" -msgstr "Wzór snu" +#: core/templates/core/timer_confirm_delete_inactive.html:17 +#, fuzzy +msgid "Are you sure you want to delete %(number)s inactive timer?" +msgid_plural "Are you sure you want to delete %(number)s inactive timers?" +msgstr[0] "Czy chcesz usunąć %(number)s nieaktwynych stoperów %(plural)s?" +msgstr[1] "Czy chcesz usunąć %(number)s nieaktwynych stoperów %(plural)s?" +msgstr[2] "Czy chcesz usunąć %(number)s nieaktwynych stoperów %(plural)s?" +msgstr[3] "" -#: reports/templates/reports/report_list.html:20 -#: reports/templates/reports/sleep_totals.html:4 -#: reports/templates/reports/sleep_totals.html:8 -msgid "Sleep Totals" -msgstr "Snu łącznie" +#: dashboard/templates/cards/feeding_day.html:25 +#, fuzzy +msgid "%(counter)s feeding" +msgid_plural "%(counter)s feedings" +msgstr[0] "%(count)s pójść spać" +msgstr[1] "%(count)s pójść spać" +msgstr[2] "%(count)s pójść spać" +msgstr[3] "" -#: reports/templates/reports/report_list.html:21 -msgid "Tummy Time Durations (Sum)" -msgstr "" +#: dashboard/templates/cards/feeding_last_method.html:21 +#, fuzzy +msgid "%(n)s feeding ago" +msgid_plural "%(n)s feedings ago" +msgstr[0] "%(n)s karmień%(plural)s temu" +msgstr[1] "%(n)s karmień%(plural)s temu" +msgstr[2] "%(n)s karmień%(plural)s temu" +msgstr[3] "" -#: reports/templates/reports/tummytime_duration.html:4 -#: reports/templates/reports/tummytime_duration.html:8 -msgid "Total Tummy Time Durations" -msgstr "" +#: dashboard/templates/cards/sleep_naps_day.html:12 +#, fuzzy +msgid "%(count)s nap" +msgid_plural "%(count)s naps" +msgstr[0] "%(count)s nap%(plural)s" +msgstr[1] "%(count)s nap%(plural)s" +msgstr[2] "%(count)s nap%(plural)s" +msgstr[3] "" -#~ msgid "Today's Sleep" -#~ msgstr "Dzisiejsze spanie" +#: dashboard/templates/cards/timer_list.html:12 +#, fuzzy +msgid "%(count)s active timer" +msgid_plural "%(count)s active timers" +msgstr[0] "%(count)s aktywny stoper %(plural)s" +msgstr[1] "%(count)s aktywny stoper %(plural)s" +msgstr[2] "%(count)s aktywny stoper %(plural)s" +msgstr[3] "" -#, python-format -#~ msgid "%(count)s sleep entries" -#~ msgstr "%(count)s pójść spać" diff --git a/locale/pt/LC_MESSAGES/django.mo b/locale/pt/LC_MESSAGES/django.mo index 88ec0ecc..c2b0a74c 100644 Binary files a/locale/pt/LC_MESSAGES/django.mo and b/locale/pt/LC_MESSAGES/django.mo differ diff --git a/locale/pt/LC_MESSAGES/django.po b/locale/pt/LC_MESSAGES/django.po index cb140e89..a5294dc6 100644 --- a/locale/pt/LC_MESSAGES/django.po +++ b/locale/pt/LC_MESSAGES/django.po @@ -1,22 +1,20 @@ msgid "" msgstr "" -"Project-Id-Version: Baby Buddy\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 21:13+0000\n" -"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" +"Project-Id-Version: Baby Buddy\n" +"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: babybuddy/admin.py:12 babybuddy/admin.py:13 -#: babybuddy/templates/babybuddy/nav-dropdown.html:324 +#: babybuddy/templates/babybuddy/nav-dropdown.html:347 #: babybuddy/templates/babybuddy/user_settings_form.html:8 msgid "Settings" msgstr "Preferências" -#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:89 +#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:111 #: babybuddy/templates/babybuddy/user_settings_form.html:61 #: dashboard/templates/dashboard/child.html:4 #: dashboard/templates/dashboard/child.html:9 @@ -28,15 +26,11 @@ msgstr "Painel" #: babybuddy/models.py:19 msgid "Refresh rate" -msgstr "Taxa de refrescamento" +msgstr "Taxa de atualização" #: babybuddy/models.py:21 -msgid "" -"If supported by browser, the dashboard will only refresh when visible, and " -"also when receiving focus." -msgstr "" -"Se suportado pelo browser, o painel apenas refrescará quando visível, " -"etambém quando estiver em foco" +msgid "This setting will only be used when a browser does not support refresh on focus." +msgstr "Esta configuração só será usada quando o browser não suportar atualização no foco." #: babybuddy/models.py:28 msgid "disabled" @@ -74,120 +68,31 @@ msgstr "15 min." msgid "30 min." msgstr "30 min." -#: babybuddy/models.py:40 -msgid "Hide Empty Dashboard Cards" -msgstr "Esconder Cartões Vazios do Painel" - -#: babybuddy/models.py:43 -msgid "Hide data older than" -msgstr "Esconder dados anteriores a" - -#: babybuddy/models.py:45 -msgid "This setting controls which data will be shown in the dashboard." -msgstr "Esta definição controla que dados são mostrados no painel" - -#: babybuddy/models.py:51 -msgid "show all data" -msgstr "mostrar todos os dados" - -#: babybuddy/models.py:52 -msgid "1 day" -msgstr "1 dia" - -#: babybuddy/models.py:53 -msgid "2 days" -msgstr "2 dias" - -#: babybuddy/models.py:54 -msgid "3 days" -msgstr "3 dias" - -#: babybuddy/models.py:55 -msgid "1 week" -msgstr "1 semana" - -#: babybuddy/models.py:56 -msgid "4 weeks" -msgstr "4 semanas" - #: babybuddy/models.py:63 msgid "Language" msgstr "Língua" -#: babybuddy/models.py:69 -msgid "Timezone" -msgstr "Fuso Horário" - #: babybuddy/models.py:73 -#, python-brace-format msgid "{user}'s Settings" msgstr "Preferências de {user}" -#: babybuddy/settings/base.py:166 -msgid "Catalan" -msgstr "" - -#: babybuddy/settings/base.py:167 -msgid "Chinese (simplified)" -msgstr "" - -#: babybuddy/settings/base.py:168 -msgid "Dutch" -msgstr "Holandês" - -#: babybuddy/settings/base.py:169 -#, fuzzy -#| msgid "English" -msgid "English (US)" -msgstr "Inglês" - -#: babybuddy/settings/base.py:170 -#, fuzzy -#| msgid "English" -msgid "English (UK)" +#: babybuddy/settings/base.py:171 +msgid "English" msgstr "Inglês" #: babybuddy/settings/base.py:171 msgid "French" msgstr "Francês" -#: babybuddy/settings/base.py:172 -msgid "Finnish" -msgstr "Finlandês" +#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 +msgid "Permission Denied" +msgstr "Permissão Negada" -#: babybuddy/settings/base.py:173 -msgid "German" -msgstr "Alemão" - -#: babybuddy/settings/base.py:174 -msgid "Italian" -msgstr "Italiano" - -#: babybuddy/settings/base.py:175 -msgid "Polish" -msgstr "" - -#: babybuddy/settings/base.py:176 -msgid "Portuguese" -msgstr "" - -#: babybuddy/settings/base.py:177 -msgid "Spanish" -msgstr "Espanhol" - -#: babybuddy/settings/base.py:178 -msgid "Swedish" -msgstr "Sueco" - -#: babybuddy/settings/base.py:179 -msgid "Turkish" -msgstr "Turco" - -#: babybuddy/templates/admin/base_site.html:4 -#: babybuddy/templates/admin/base_site.html:7 -#: babybuddy/templates/babybuddy/nav-dropdown.html:336 -msgid "Database Admin" -msgstr "Administrador da Base de Dados" +#: babybuddy/templates/403.html:12 +msgid "You do not have permission to access this resource.\n" +" Contact a site administrator for assistance." +msgstr "Não tem permissóes para aceder ao recurso.\n" +"Contacto o administrador." #: babybuddy/templates/babybuddy/base.html:36 msgid "Home" @@ -212,35 +117,32 @@ msgstr "Submeter" #: babybuddy/templates/babybuddy/messages.html:18 #: babybuddy/templates/babybuddy/user_settings_form.html:19 -#, python-format msgid "Error: %(error)s" msgstr "Erro: %(error)s" #: babybuddy/templates/babybuddy/messages.html:23 -#: babybuddy/templates/babybuddy/user_settings_form.html:26 -msgid "Error: Some fields have errors. See below for details." -msgstr "" -"Erro: Alguns campos têm erros. Veja abaixo, para detalhes" +msgid "Error: Some fields have errors. See below for details. " +msgstr "Erro: Alguns campos tem erros. Veja os detalhes abaixo. " -#: babybuddy/templates/babybuddy/nav-dropdown.html:48 core/models.py:248 +#: babybuddy/templates/babybuddy/nav-dropdown.html:51 core/models.py:248 #: core/models.py:252 msgid "Diaper Change" msgstr "Mudança de Fralda" -#: babybuddy/templates/babybuddy/nav-dropdown.html:54 -#: babybuddy/templates/babybuddy/nav-dropdown.html:259 core/models.py:312 +#: babybuddy/templates/babybuddy/nav-dropdown.html:57 +#: babybuddy/templates/babybuddy/nav-dropdown.html:281 core/models.py:312 #: core/models.py:316 core/templates/core/timer_detail.html:43 msgid "Feeding" msgstr "Alimentação" -#: babybuddy/templates/babybuddy/nav-dropdown.html:60 -#: babybuddy/templates/babybuddy/nav-dropdown.html:135 core/models.py:396 +#: babybuddy/templates/babybuddy/nav-dropdown.html:63 +#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:396 #: core/models.py:407 core/models.py:411 core/templates/core/note_list.html:29 msgid "Note" msgstr "Nota" -#: babybuddy/templates/babybuddy/nav-dropdown.html:66 -#: babybuddy/templates/babybuddy/nav-dropdown.html:280 +#: babybuddy/templates/babybuddy/nav-dropdown.html:69 +#: babybuddy/templates/babybuddy/nav-dropdown.html:288 #: babybuddy/templates/babybuddy/welcome.html:42 core/models.py:467 #: core/models.py:468 core/models.py:471 #: core/templates/core/sleep_confirm_delete.html:7 @@ -250,8 +152,8 @@ msgstr "Nota" msgid "Sleep" msgstr "Sono" -#: babybuddy/templates/babybuddy/nav-dropdown.html:72 -#: babybuddy/templates/babybuddy/nav-dropdown.html:293 +#: babybuddy/templates/babybuddy/nav-dropdown.html:81 +#: babybuddy/templates/babybuddy/nav-dropdown.html:301 #: babybuddy/templates/babybuddy/welcome.html:50 core/models.py:647 #: core/models.py:648 core/models.py:651 #: core/templates/core/timer_detail.html:59 @@ -263,15 +165,24 @@ msgstr "Sono" msgid "Tummy Time" msgstr "Tempo de Barriga para Baixo" -#: babybuddy/templates/babybuddy/nav-dropdown.html:96 -#: core/templates/timeline/timeline.html:4 -#: core/templates/timeline/timeline.html:7 -#: dashboard/templates/dashboard/child_button_group.html:9 -msgid "Timeline" -msgstr "Linha temporal" +#: babybuddy/templates/babybuddy/nav-dropdown.html:87 +#: babybuddy/templates/babybuddy/nav-dropdown.html:193 core/models.py:673 +#: core/models.py:685 core/models.py:686 core/models.py:689 +#: core/templates/core/weight_confirm_delete.html:7 +#: core/templates/core/weight_form.html:13 +#: core/templates/core/weight_list.html:4 +#: core/templates/core/weight_list.html:7 +#: core/templates/core/weight_list.html:12 +#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 +#: reports/graphs/weight_change.py:30 +#: reports/templates/reports/report_list.html:22 +#: reports/templates/reports/weight_change.html:4 +#: reports/templates/reports/weight_change.html:8 +msgid "Weight" +msgstr "Peso" -#: babybuddy/templates/babybuddy/nav-dropdown.html:107 -#: babybuddy/templates/babybuddy/nav-dropdown.html:115 core/models.py:188 +#: babybuddy/templates/babybuddy/nav-dropdown.html:129 +#: babybuddy/templates/babybuddy/nav-dropdown.html:137 core/models.py:188 #: core/templates/core/child_confirm_delete.html:7 #: core/templates/core/child_detail.html:7 #: core/templates/core/child_form.html:13 core/templates/core/child_list.html:4 @@ -281,7 +192,7 @@ msgstr "Linha temporal" msgid "Children" msgstr "Crianças" -#: babybuddy/templates/babybuddy/nav-dropdown.html:121 core/models.py:137 +#: babybuddy/templates/babybuddy/nav-dropdown.html:143 core/models.py:137 #: core/models.py:187 core/models.py:221 core/models.py:274 core/models.py:335 #: core/models.py:367 core/models.py:394 core/models.py:426 core/models.py:450 #: core/models.py:503 core/models.py:537 core/models.py:630 core/models.py:671 @@ -300,7 +211,7 @@ msgstr "Crianças" msgid "Child" msgstr "Criança" -#: babybuddy/templates/babybuddy/nav-dropdown.html:129 core/models.py:143 +#: babybuddy/templates/babybuddy/nav-dropdown.html:151 core/models.py:143 #: core/models.py:240 core/models.py:304 core/models.py:343 core/models.py:373 #: core/models.py:408 core/models.py:430 core/models.py:458 core/models.py:511 #: core/models.py:677 core/templates/core/note_confirm_delete.html:7 @@ -309,118 +220,24 @@ msgstr "Criança" msgid "Notes" msgstr "Notas" -#: babybuddy/templates/babybuddy/nav-dropdown.html:149 -msgid "Measurements" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:139 -#: core/models.py:151 core/models.py:152 core/models.py:155 -#: core/templates/core/bmi_confirm_delete.html:7 -#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 -#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 -#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 -#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 -#: reports/templates/reports/bmi_change.html:8 -msgid "BMI" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:163 -#, fuzzy -#| msgid "Sleep entry" -msgid "BMI entry" -msgstr "Novo sono" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:171 core/models.py:338 -#: core/models.py:351 core/models.py:352 core/models.py:355 -#: core/templates/core/head_circumference_confirm_delete.html:7 -#: core/templates/core/head_circumference_form.html:13 -#: core/templates/core/head_circumference_list.html:4 -#: core/templates/core/head_circumference_list.html:7 -#: core/templates/core/head_circumference_list.html:12 -#: core/templates/core/head_circumference_list.html:29 -#: reports/graphs/head_circumference_change.py:19 -#: reports/graphs/head_circumference_change.py:30 -#: reports/templates/reports/head_circumference_change.html:4 -#: reports/templates/reports/head_circumference_change.html:8 -#: reports/templates/reports/report_list.html:16 -msgid "Head Circumference" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:177 -msgid "Head Circumference entry" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:185 core/models.py:369 -#: core/models.py:381 core/models.py:382 core/models.py:385 -#: core/templates/core/height_confirm_delete.html:7 -#: core/templates/core/height_form.html:13 -#: core/templates/core/height_list.html:4 -#: core/templates/core/height_list.html:7 -#: core/templates/core/height_list.html:12 -#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 -#: reports/graphs/height_change.py:30 -#: reports/templates/reports/height_change.html:4 -#: reports/templates/reports/height_change.html:8 -#: reports/templates/reports/report_list.html:17 -#, fuzzy -#| msgid "Weight" -msgid "Height" -msgstr "Peso" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:191 -#, fuzzy -#| msgid "Weight entry" -msgid "Height entry" -msgstr "Novo peso" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:199 core/models.py:506 -#: core/models.py:519 core/models.py:520 core/models.py:523 -#: core/templates/core/temperature_confirm_delete.html:7 -#: core/templates/core/temperature_form.html:13 -#: core/templates/core/temperature_list.html:4 -#: core/templates/core/temperature_list.html:7 -#: core/templates/core/temperature_list.html:12 -#: core/templates/core/temperature_list.html:29 -msgid "Temperature" -msgstr "Temperatura" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:205 -msgid "Temperature reading" -msgstr "Leitura de temperatura" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:213 core/models.py:673 -#: core/models.py:685 core/models.py:686 core/models.py:689 -#: core/templates/core/weight_confirm_delete.html:7 -#: core/templates/core/weight_form.html:13 -#: core/templates/core/weight_list.html:4 -#: core/templates/core/weight_list.html:7 -#: core/templates/core/weight_list.html:12 -#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 -#: reports/graphs/weight_change.py:30 -#: reports/templates/reports/report_list.html:22 -#: reports/templates/reports/weight_change.html:4 -#: reports/templates/reports/weight_change.html:8 -msgid "Weight" -msgstr "Peso" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:219 +#: babybuddy/templates/babybuddy/nav-dropdown.html:199 msgid "Weight entry" msgstr "Novo peso" -#: babybuddy/templates/babybuddy/nav-dropdown.html:233 +#: babybuddy/templates/babybuddy/nav-dropdown.html:255 msgid "Activities" msgstr "Actividades" -#: babybuddy/templates/babybuddy/nav-dropdown.html:240 +#: babybuddy/templates/babybuddy/nav-dropdown.html:262 #: reports/graphs/diaperchange_lifetimes.py:27 msgid "Changes" msgstr "Mudanças de fralda" -#: babybuddy/templates/babybuddy/nav-dropdown.html:246 +#: babybuddy/templates/babybuddy/nav-dropdown.html:268 msgid "Change" msgstr "Mudança de fralda" -#: babybuddy/templates/babybuddy/nav-dropdown.html:253 +#: babybuddy/templates/babybuddy/nav-dropdown.html:275 #: babybuddy/templates/babybuddy/welcome.html:34 core/models.py:313 #: core/templates/core/feeding_confirm_delete.html:7 #: core/templates/core/feeding_form.html:13 @@ -428,35 +245,17 @@ msgstr "Mudança de fralda" #: core/templates/core/feeding_list.html:7 #: core/templates/core/feeding_list.html:12 msgid "Feedings" -msgstr "Alimentações" +msgstr "Alimentação" -#: babybuddy/templates/babybuddy/nav-dropdown.html:267 core/models.py:437 -#: core/models.py:438 core/models.py:441 -#: core/templates/core/pumping_confirm_delete.html:7 -#: core/templates/core/pumping_form.html:13 -#: core/templates/core/pumping_list.html:4 -#: core/templates/core/pumping_list.html:7 -#: core/templates/core/pumping_list.html:12 -#: reports/templates/reports/pumping_amounts.html:4 -#: reports/templates/reports/pumping_amounts.html:8 -msgid "Pumping" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:273 -#, fuzzy -#| msgid "Weight entry" -msgid "Pumping entry" -msgstr "Novo peso" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:286 +#: babybuddy/templates/babybuddy/nav-dropdown.html:294 msgid "Sleep entry" msgstr "Novo sono" -#: babybuddy/templates/babybuddy/nav-dropdown.html:299 +#: babybuddy/templates/babybuddy/nav-dropdown.html:307 msgid "Tummy Time entry" msgstr "Entrada de Tempo de Barriga para Baixo" -#: babybuddy/templates/babybuddy/nav-dropdown.html:323 +#: babybuddy/templates/babybuddy/nav-dropdown.html:346 #: babybuddy/templates/babybuddy/user_list.html:17 #: babybuddy/templates/babybuddy/user_password_form.html:7 #: babybuddy/templates/babybuddy/user_settings_form.html:7 core/models.py:556 @@ -464,23 +263,23 @@ msgstr "Entrada de Tempo de Barriga para Baixo" msgid "User" msgstr "Utilizador" -#: babybuddy/templates/babybuddy/nav-dropdown.html:325 +#: babybuddy/templates/babybuddy/nav-dropdown.html:348 msgid "Password" msgstr "Password" -#: babybuddy/templates/babybuddy/nav-dropdown.html:329 +#: babybuddy/templates/babybuddy/nav-dropdown.html:352 msgid "Logout" msgstr "Logout" -#: babybuddy/templates/babybuddy/nav-dropdown.html:332 +#: babybuddy/templates/babybuddy/nav-dropdown.html:355 msgid "Site" msgstr "Site" -#: babybuddy/templates/babybuddy/nav-dropdown.html:333 +#: babybuddy/templates/babybuddy/nav-dropdown.html:356 msgid "API Browser" msgstr "Navegador de API" -#: babybuddy/templates/babybuddy/nav-dropdown.html:335 +#: babybuddy/templates/babybuddy/nav-dropdown.html:358 #: babybuddy/templates/babybuddy/user_confirm_delete.html:7 #: babybuddy/templates/babybuddy/user_form.html:13 #: babybuddy/templates/babybuddy/user_list.html:4 @@ -488,15 +287,19 @@ msgstr "Navegador de API" msgid "Users" msgstr "Utilizadores" -#: babybuddy/templates/babybuddy/nav-dropdown.html:338 +#: babybuddy/templates/babybuddy/nav-dropdown.html:250 +msgid "Backend Admin" +msgstr "Administração do sistema" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:361 msgid "Support" msgstr "Suporte" -#: babybuddy/templates/babybuddy/nav-dropdown.html:340 +#: babybuddy/templates/babybuddy/nav-dropdown.html:363 msgid "Source Code" msgstr "Código Fonte" -#: babybuddy/templates/babybuddy/nav-dropdown.html:342 +#: babybuddy/templates/babybuddy/nav-dropdown.html:365 msgid "Chat / Support" msgstr "Chat / Suporte" @@ -507,7 +310,6 @@ msgstr "Chat / Suporte" #: core/templates/timeline/_timeline.html:73 #: dashboard/templates/cards/feeding_day.html:43 #: dashboard/templates/cards/feeding_last_method.html:34 -#: dashboard/templates/cards/sleep_recent.html:43 #: dashboard/templates/cards/statistics.html:34 msgid "Previous" msgstr "Anterior" @@ -519,7 +321,6 @@ msgstr "Anterior" #: core/templates/timeline/_timeline.html:80 #: dashboard/templates/cards/feeding_day.html:47 #: dashboard/templates/cards/feeding_last_method.html:38 -#: dashboard/templates/cards/sleep_recent.html:47 #: dashboard/templates/cards/statistics.html:38 msgid "Next" msgstr "Seguinte" @@ -575,13 +376,8 @@ msgstr "Apagar" #: core/templates/core/timer_confirm_delete.html:17 #: core/templates/core/tummytime_confirm_delete.html:14 #: core/templates/core/weight_confirm_delete.html:14 -#, python-format -msgid "" -"

Are you sure you want to delete %(object)s?

" -msgstr "" -"

Tem a certeza que quer eliminar %(object)s?

" +msgid "

Are you sure you want to delete %(object)s?

" +msgstr "

Tem a certeza que quer eliminar %(object)s?

" #: babybuddy/templates/babybuddy/user_confirm_delete.html:19 #: core/templates/core/bmi_confirm_delete.html:18 @@ -637,7 +433,6 @@ msgstr "Actualizar" #: core/templates/core/timer_form.html:18 #: core/templates/core/tummytime_form.html:23 #: core/templates/core/weight_form.html:23 -#, python-format msgid "

Update %(object)s

" msgstr "

Actualizar %(object)s

" @@ -667,7 +462,7 @@ msgstr "Activo" #: babybuddy/templates/babybuddy/user_list.html:23 #: core/templates/core/bmi_list.html:24 core/templates/core/bmi_list.html:38 #: core/templates/core/child_list.html:28 -#: core/templates/core/child_list.html:43 +#: core/templates/core/child_list.html:48 #: core/templates/core/diaperchange_list.html:24 #: core/templates/core/diaperchange_list.html:40 #: core/templates/core/feeding_list.html:24 @@ -703,7 +498,12 @@ msgstr "Mudar Password" #: babybuddy/templates/babybuddy/user_settings_form.html:4 #: babybuddy/templates/babybuddy/user_settings_form.html:12 msgid "User Settings" -msgstr "Preferências de Utilizadoe" +msgstr "Preferências do Utilizador" + +#: babybuddy/templates/babybuddy/messages.html:23 +#: babybuddy/templates/babybuddy/user_settings_form.html:26 +msgid "Error: Some fields have errors. See below for details." +msgstr "Erro: Alguns campos têm erros. Veja abaixo, para detalhes" #: babybuddy/templates/babybuddy/user_settings_form.html:33 msgid "User Profile" @@ -731,12 +531,10 @@ msgid "Welcome to Baby Buddy!" msgstr "Bem-vindo ao Baby Buddy!" #: babybuddy/templates/babybuddy/welcome.html:14 -msgid "" -"Learn about and predict baby's needs without (as much) guess work " -"by using Baby Buddy to track —" -msgstr "" -"Aprenda e preveja as necessidades do(s) bebé(s) sem (muita) " -"adivinhação utilizando o Baby Buddy para contorlar —" +msgid "Learn about and predict baby's needs without\n" +" (as much) guess work by using Baby Buddy to track —" +msgstr "Aprenda e preveja as necessidades do bebé sem \n" +"(muita) advinhação usando o Baby Buddy para monitorizar —" #: babybuddy/templates/babybuddy/welcome.html:26 core/models.py:249 #: core/templates/core/diaperchange_confirm_delete.html:7 @@ -748,20 +546,14 @@ msgstr "" msgid "Diaper Changes" msgstr "Mudanças de Fralda" -#: babybuddy/templates/babybuddy/welcome.html:56 -msgid "" -"As the amount of entries grows, Baby Buddy will help parents and caregivers " -"to identify small patterns in baby's habits using the dashboard and graphs. " -"Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and " -"dads with 2AM feedings and changings. To get started, just click the button " -"below to add your first (or second, third, etc.) child!" +#: babybuddy/templates/babybuddy/welcome.html:54 +msgid "As the amount of entries grows, Baby Buddy will help\n" +" parents and caregivers to identify small patterns in baby's habits\n" +" using the dashboard and graphs. Baby Buddy is mobile-friendly and\n" +" uses a dark theme to help weary moms and dads with 2AM feedings and\n" +" changings. To get started, just click the button below to add your\n" +" first (or second, third, etc.) child!" msgstr "" -"À medida que o número de entradas aumenta, o Baby Buddy vai ajudar parentes " -"e cuidadores a identificar pequenos padrões nos hábitos dos bebés, usando o " -"painel e os gráficos.Baby Buddy é mobile-friendly e usa um tema escuro para " -"ajudar mães e pais cansados com alimentações e mudanças de fralda às 2 da " -"manhã. Para começar, simplesmente clique no botão abaixo para adicionar a " -"sua primeira (ou segunda, ou terceira, etc.) criança!" #: babybuddy/templates/babybuddy/welcome.html:68 #: core/templates/core/child_form.html:8 core/templates/core/child_form.html:18 @@ -769,52 +561,6 @@ msgstr "" msgid "Add a Child" msgstr "Adicionar uma Criança" -#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 -msgid "Bad Request" -msgstr "" - -#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 -msgid "Permission Denied" -msgstr "Permissão Negada" - -#: babybuddy/templates/error/403.html:9 -msgid "" -"You do not have permission to access this resource. Contact a site " -"administrator for assistance." -msgstr "" -"Não tem permissão para aceder a este recurso. Contacte o administrador do " -"site para assitência" - -#: babybuddy/templates/error/403_csrf_bad_origin.html:14 -msgid "How to Fix" -msgstr "" - -#: babybuddy/templates/error/403_csrf_bad_origin.html:15 -#, python-format -msgid "" -"Add %(origin)s to the CSRF_TRUSTED_ORIGINS " -"environment variable. If multiple origins are required separate with commas." -msgstr "" - -#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 -msgid "Page Not Found" -msgstr "" - -#: babybuddy/templates/error/404.html:9 -#, python-format -msgid "The path %(request_path)s does not exist." -msgstr "" - -#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 -msgid "Server Error" -msgstr "" - -#: babybuddy/templates/error/base.html:14 -#, fuzzy -#| msgid "Welcome to Baby Buddy!" -msgid "Return to Baby Buddy" -msgstr "Bem-vindo ao Baby Buddy!" - #: babybuddy/templates/registration/login.html:32 msgid "Login" msgstr "Entrada" @@ -839,12 +585,11 @@ msgstr "Entrada" msgid "Password Reset" msgstr "Reset da Password" -#: babybuddy/templates/registration/password_reset_confirm.html:13 -msgid "" -"Oh snap! The two passwords did not match. Please try again." -msgstr "" -"Que chatice! As duas passwords não coincidem. Por favor " -"tente novamente." +#: babybuddy/templates/registration/password_reset_confirm.html:12 +msgid "

Oh snap! The\n" +" two passwords did not match. Please try again.

" +msgstr "

Oh snap! \n" +"As duas passwords não coincidem. Por favor tente nomvamente.

" #: babybuddy/templates/registration/password_reset_confirm.html:22 msgid "Enter your new password in each field below." @@ -859,73 +604,34 @@ msgstr "Fazer reset à password" msgid "Reset Email Sent" msgstr "Password de reset enviada por e-mail" -#: babybuddy/templates/registration/password_reset_done.html:9 -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Se alguma conta existir com o seu e-mail, foram enviadas instruções para " -"definir a sua password. Deverá recebê-lo em breve." - -#: babybuddy/templates/registration/password_reset_done.html:15 -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Se não receber um e-mail, por favor verifique o endereço com o qual se " -"registou e a sua caixa de spam." - -#: babybuddy/templates/registration/password_reset_email.html:2 -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:4 -msgid "Please go to the following page and choose a new password:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:8 -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:10 -msgid "Thanks for using Baby Buddy!" +#: babybuddy/templates/registration/password_reset_done.html:8 +msgid "

We've emailed you instructions for setting your\n" +" password, if an account exists with the email you entered. You\n" +" should receive them shortly.

\n" +"

If you don't receive an email, please make sure you've\n" +" entered the address you registered with, and check your spam\n" +" folder.

" msgstr "" #: babybuddy/templates/registration/password_reset_form.html:4 msgid "Forgot Password" msgstr "Password Esquecida" -#: babybuddy/templates/registration/password_reset_form.html:9 -msgid "" -"Enter your account email address in the form below. If the address is valid, " -"you will receive instructions for resetting your password." -msgstr "" -"Insira o seu e-mail no formulário abaixo. Se o endereço for válido, receberá " -"instruções para o reset da sua password." - -#: babybuddy/views.py:43 -msgid "Forbidden" -msgstr "" - -#: babybuddy/views.py:44 -msgid "CSRF verification failed. Request aborted." +#: babybuddy/templates/registration/password_reset_form.html:8 +msgid "

Enter your account email address in the\n" +" form below. If the address is valid, you will receive instructions for\n" +" resetting your password.

" msgstr "" #: babybuddy/views.py:102 -#, python-format msgid "User %(username)s added!" msgstr "Utilizador %(username)s adicionado!" #: babybuddy/views.py:113 -#, python-format msgid "User %(username)s updated." msgstr "Utilizador %(username)s actualizado." #: babybuddy/views.py:125 -#, python-brace-format msgid "User {user} deleted." msgstr "Utilizador {user} eliminado." @@ -941,20 +647,10 @@ msgstr "Chave API do utilizador regenerada." msgid "Settings saved!" msgstr "Preferências salvas!" -#: core/filters.py:11 core/models.py:96 core/models.py:115 -msgid "Tag" -msgstr "" - #: core/forms.py:120 msgid "Name does not match child name." msgstr "Nome não coincide com o nome da criança." -#: core/forms.py:136 -msgid "" -"Click on the tags to add (+) or remove (-) tags or use the text editor to " -"create new tags." -msgstr "" - #: core/models.py:28 msgid "Date can not be in the future." msgstr "Data não pode ser no futuro." @@ -975,45 +671,6 @@ msgstr "Outra entrada intercepta o período de tempo definido." msgid "Date/time can not be in the future." msgstr "Data/hora não podem ser no futuro." -#: core/models.py:84 core/models.py:237 -#: core/templates/core/diaperchange_list.html:30 -msgid "Color" -msgstr "Cor" - -#: core/models.py:90 -#, fuzzy -#| msgid "Last Name" -msgid "Last used" -msgstr "Último Nome" - -#: core/models.py:97 core/templates/core/bmi_list.html:30 -#: core/templates/core/diaperchange_list.html:32 -#: core/templates/core/feeding_list.html:35 -#: core/templates/core/head_circumference_list.html:30 -#: core/templates/core/height_list.html:30 -#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 -#: core/templates/core/temperature_list.html:30 -#: core/templates/core/tummytime_list.html:31 -#: core/templates/core/weight_list.html:30 -msgid "Tags" -msgstr "" - -#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 -#: core/templates/core/bmi_list.html:25 -#: core/templates/core/feeding_list.html:25 -#: core/templates/core/head_circumference_list.html:25 -#: core/templates/core/height_list.html:25 -#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 -#: reports/graphs/diaperchange_amounts.py:37 -#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 -#: reports/graphs/feeding_duration.py:56 -#: reports/graphs/head_circumference_change.py:28 -#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:60 -#: reports/graphs/sleep_pattern.py:153 reports/graphs/sleep_totals.py:59 -#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 -msgid "Date" -msgstr "Data" - #: core/models.py:163 msgid "First name" msgstr "Primeiro nome" @@ -1068,11 +725,14 @@ msgstr "Verde" msgid "Yellow" msgstr "Amarelo" -#: core/models.py:239 core/models.py:303 core/models.py:428 -#: core/templates/core/diaperchange_list.html:31 -#: core/templates/core/pumping_list.html:29 -msgid "Amount" -msgstr "Quantidade" +#: core/models.py:84 core/models.py:237 +#: core/templates/core/diaperchange_list.html:30 +msgid "Color" +msgstr "Cor" + +#: core/models.py:180 +msgid "Wet and/or solid is required." +msgstr "Molhado e/ou sólido é um campo obrigatório" #: core/models.py:276 core/models.py:453 core/models.py:543 core/models.py:632 msgid "Start time" @@ -1098,14 +758,6 @@ msgstr "Leite materno" msgid "Formula" msgstr "Fórmula" -#: core/models.py:285 -msgid "Fortified breast milk" -msgstr "Leite materno fortificado" - -#: core/models.py:286 -msgid "Solid food" -msgstr "Comida sólida" - #: core/models.py:289 core/templates/core/feeding_list.html:30 msgid "Type" msgstr "Tipo" @@ -1122,25 +774,19 @@ msgstr "Mama esquerda" msgid "Right breast" msgstr "Mama direita" -#: core/models.py:296 -msgid "Both breasts" -msgstr "Ambas as mamas" - -#: core/models.py:297 -msgid "Parent fed" -msgstr "Alimentado pelos pais" - -#: core/models.py:298 -msgid "Self fed" -msgstr "Alimentado(a) por si próprio(a)" - #: core/models.py:301 core/templates/core/feeding_list.html:29 msgid "Method" msgstr "Método" -#: core/models.py:452 -msgid "Napping" -msgstr "" +#: core/models.py:239 core/models.py:303 core/models.py:428 +#: core/templates/core/diaperchange_list.html:31 +#: core/templates/core/pumping_list.html:29 +msgid "Amount" +msgstr "Quantidade" + +#: core/models.py:243 +msgid "Only \"Bottle\" method is allowed with \"Formula\" type." +msgstr "Apenas um \"método\" é permitido por tipo de \"fórmula\"." #: core/models.py:540 core/templates/core/timer_list.html:25 msgid "Name" @@ -1160,7 +806,6 @@ msgid "Timers" msgstr "Temporizadores" #: core/models.py:568 -#, python-brace-format msgid "Timer #{id}" msgstr "Temporizador #{id}" @@ -1168,28 +813,21 @@ msgstr "Temporizador #{id}" msgid "Milestone" msgstr "Meta" -#: core/templates/core/bmi_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Sleep Entry" -msgid "Delete a BMI Entry" -msgstr "Apagar uma entrada de Sono" - -#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 -#: core/templates/core/bmi_form.html:27 -#, fuzzy -#| msgid "Add a Sleep Entry" -msgid "Add a BMI Entry" -msgstr "Adicionar uma entrada de Sono" - -#: core/templates/core/bmi_list.html:15 -msgid "Add BMI" -msgstr "" - -#: core/templates/core/bmi_list.html:70 -#, fuzzy -#| msgid "No timer entries found." -msgid "No BMI entries found." -msgstr "Não foram encontradas entradas de temporizador." +#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 +#: core/templates/core/bmi_list.html:25 +#: core/templates/core/feeding_list.html:25 +#: core/templates/core/head_circumference_list.html:25 +#: core/templates/core/height_list.html:25 +#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 +#: reports/graphs/diaperchange_amounts.py:37 +#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 +#: reports/graphs/feeding_duration.py:56 +#: reports/graphs/head_circumference_change.py:28 +#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:58 +#: reports/graphs/sleep_pattern.py:151 reports/graphs/sleep_totals.py:59 +#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 +msgid "Date" +msgstr "Data" #: core/templates/core/child_confirm_delete.html:4 msgid "Delete a Child" @@ -1209,15 +847,15 @@ msgstr "Nascimento" msgid "Age" msgstr "Idade" -#: core/templates/core/child_list.html:15 -msgid "Add Child" -msgstr "Adicionar Criança" +#: core/templates/timeline/_timeline.html:38 +msgid "%(since)s ago (%(time)s)" +msgstr "há %(since)s (%(time)s)" #: core/templates/core/child_list.html:27 msgid "Birth Date" msgstr "Data de Nascimento" -#: core/templates/core/child_list.html:62 +#: core/templates/core/child_list.html:67 msgid "No children found." msgstr "Nenhuma criança encontrada." @@ -1242,18 +880,14 @@ msgstr "Adicionar uma mudança de fralda" msgid "Add" msgstr "Adicionar" -#: core/templates/core/diaperchange_list.html:15 -msgid "Add Diaper Change" -msgstr "Adicionar Mudança de Fralda" - -#: core/templates/core/diaperchange_list.html:29 -msgid "Contents" -msgstr "Conteúdo" - #: core/templates/core/diaperchange_list.html:77 msgid "No diaper changes found." msgstr "Não foram encontradas mudanças de fralda" +#: core/templates/core/diaperchange_list.html:63 +msgid "Add a Change" +msgstr "Adicionar uma mudança" + #: core/templates/core/feeding_confirm_delete.html:4 msgid "Delete a Feeding" msgstr "Apagar uma Alimentação" @@ -1267,67 +901,13 @@ msgstr "Actualizar uma Alimentação" msgid "Add a Feeding" msgstr "Adicionar uma Alimentação" -#: core/templates/core/feeding_list.html:15 -msgid "Add Feeding" -msgstr "Adicionar Alimentação" - #: core/templates/core/feeding_list.html:33 msgid "Amt." msgstr "Quantidade" #: core/templates/core/feeding_list.html:82 msgid "No feedings found." -msgstr "Não foram encontradas alimentações." - -#: core/templates/core/head_circumference_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Tummy Time Entry" -msgid "Delete a Head Circumference Entry" -msgstr "Apagar uma entrada de Tempo de Barriga para Baixo" - -#: core/templates/core/head_circumference_form.html:8 -#: core/templates/core/head_circumference_form.html:17 -#: core/templates/core/head_circumference_form.html:27 -#, fuzzy -#| msgid "Add a Temperature Entry" -msgid "Add a Head Circumference Entry" -msgstr "Adicionar uma leitura de Temperatura" - -#: core/templates/core/head_circumference_list.html:15 -msgid "Add Head Circumference" -msgstr "" - -#: core/templates/core/head_circumference_list.html:70 -#, fuzzy -#| msgid "No timer entries found." -msgid "No head circumference entries found." -msgstr "Não foram encontradas entradas de temporizador." - -#: core/templates/core/height_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Weight Entry" -msgid "Delete a Height Entry" -msgstr "Apagar uma entrada de Peso" - -#: core/templates/core/height_form.html:8 -#: core/templates/core/height_form.html:17 -#: core/templates/core/height_form.html:27 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add a Height Entry" -msgstr "Adicionar uma entrada de Peso" - -#: core/templates/core/height_list.html:15 -#, fuzzy -#| msgid "Add Weight" -msgid "Add Height" -msgstr "Adicionar Peso" - -#: core/templates/core/height_list.html:70 -#, fuzzy -#| msgid "No weight entries found." -msgid "No height entries found." -msgstr "Não foram encontradas entradas de peso." +msgstr "Não foram encontrados registos de alimentação." #: core/templates/core/note_confirm_delete.html:4 msgid "Delete a Note" @@ -1341,53 +921,10 @@ msgstr "Actualizar uma Nota" msgid "Add a Note" msgstr "Adicionar uma Nota" -#: core/templates/core/note_list.html:15 -msgid "Add Note" -msgstr "Adicionar Nota" - #: core/templates/core/note_list.html:64 msgid "No notes found." msgstr "Não foram encontradas notas" -#: core/templates/core/pumping_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Weight Entry" -msgid "Delete a Pumping Entry" -msgstr "Apagar uma entrada de Peso" - -#: core/templates/core/pumping_form.html:8 -#: core/templates/core/pumping_form.html:17 -#: core/templates/core/pumping_form.html:27 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add a Pumping Entry" -msgstr "Adicionar uma entrada de Peso" - -#: core/templates/core/pumping_list.html:15 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add Pumping Entry" -msgstr "Adicionar uma entrada de Peso" - -#: core/templates/core/pumping_list.html:66 -#, fuzzy -#| msgid "No timer entries found." -msgid "No pumping entries found." -msgstr "Não foram encontradas entradas de temporizador." - -#: core/templates/core/quick_timer_nav.html:9 -#: core/templates/core/quick_timer_nav.html:29 -#: core/templates/core/timer_nav.html:37 -msgid "Quick Start Timer" -msgstr "Temporizador Rápido" - -#: core/templates/core/quick_timer_nav.html:19 -#: core/templates/core/timer_nav.html:28 -#, fuzzy -#| msgid "Quick Start Timer" -msgid "Quick Start Timer For…" -msgstr "Temporizador Rápido" - #: core/templates/core/sleep_confirm_delete.html:4 msgid "Delete a Sleep Entry" msgstr "Apagar uma entrada de Sono" @@ -1400,10 +937,6 @@ msgstr "Adicionar uma entrada de Sono" msgid "Add a Sleep Entry" msgstr "Adicionar uma entrada de Sono" -#: core/templates/core/sleep_list.html:15 -msgid "Add Sleep" -msgstr "Adicionar Sono" - #: core/templates/core/sleep_list.html:25 #: core/templates/core/timer_form.html:12 #: core/templates/core/timer_list.html:24 @@ -1425,52 +958,10 @@ msgstr "Sesta" msgid "No sleep entries found." msgstr "Não foram encontradas entradas de sono." -#: core/templates/core/temperature_confirm_delete.html:4 -msgid "Delete a Temperature Reading" -msgstr "Apagar uma leitura de Temperatura" - -#: core/templates/core/temperature_form.html:8 -#: core/templates/core/temperature_form.html:17 -msgid "Add a Temperature Reading" -msgstr "Adicionar uma leitura de Temperatura" - -#: core/templates/core/temperature_form.html:27 -msgid "Add a Temperature Entry" -msgstr "Adicionar uma leitura de Temperatura" - -#: core/templates/core/temperature_list.html:15 -msgid "Add Temperature Reading" -msgstr "Adicionar Temperatura" - -#: core/templates/core/temperature_list.html:70 -msgid "No temperature entries found." -msgstr "Não foram encontradas entradas de temperatura" - #: core/templates/core/timer_confirm_delete.html:5 -#, python-format msgid "Delete %(object)s" msgstr "Apagar %(object)s" -#: core/templates/core/timer_confirm_delete_inactive.html:5 -msgid "Delete All Inactive Timers" -msgstr "Apagar todos os temporizadores inactivos" - -#: core/templates/core/timer_confirm_delete_inactive.html:10 -msgid "Delete Inactive" -msgstr "Apagar inactivo" - -#: core/templates/core/timer_confirm_delete_inactive.html:17 -#, fuzzy, python-format -#| msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" -msgid "Are you sure you want to delete %(number)s inactive timer?" -msgid_plural "Are you sure you want to delete %(number)s inactive timers?" -msgstr[0] "" -"Tem a certeza que deseja eliminar %(number)s temporizadore%(plural)s inactivo" -"%(plural)s?" -msgstr[1] "" -"Tem a certeza que deseja eliminar %(number)s temporizadore%(plural)s inactivo" -"%(plural)s?" - #: core/templates/core/timer_detail.html:28 msgid "Started" msgstr "Iniciado" @@ -1479,25 +970,16 @@ msgstr "Iniciado" msgid "Stopped" msgstr "Parado" -#: core/templates/core/timer_detail.html:34 -#, python-format -msgid "%(timer)s created by %(user)s" -msgstr "%(timer)s iniciado por %(user)s" +#: core/templates/core/timer_detail.html:26 +msgid "%(timer)s created by %(object.user)s" +msgstr "%(timer)s criado por %(object.user)s" #: core/templates/core/timer_detail.html:63 msgid "Timer actions" msgstr "Acções do temporizador" -#: core/templates/core/timer_detail.html:77 -msgid "Restart timer" -msgstr "Reiniciar temporizador" - -#: core/templates/core/timer_detail.html:84 -msgid "Delete timer" -msgstr "Apagar temporizador" - #: core/templates/core/timer_form.html:22 -#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:15 +#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:23 msgid "Start Timer" msgstr "Iniciar Temporizador" @@ -1505,30 +987,30 @@ msgstr "Iniciar Temporizador" msgid "No timer entries found." msgstr "Não foram encontradas entradas de temporizador." -#: core/templates/core/timer_list.html:68 -msgid "Delete Inactive Timers" -msgstr "Apagar Temporizadores Inactivos" +#: babybuddy/templates/babybuddy/nav-dropdown.html:32 +#: core/templates/core/timer_nav.html:18 +msgid "Quick Start Timer" +msgstr "Temporizador Rápido" -#: core/templates/core/timer_nav.html:20 +#: core/templates/core/timer_nav.html:28 msgid "View Timers" msgstr "Ver Temporizadores" -#: core/templates/core/timer_nav.html:44 +#: core/templates/core/timer_nav.html:32 #: dashboard/templates/cards/timer_list.html:6 msgid "Active Timers" msgstr "Temporizadores Activos" -#: core/templates/core/timer_nav.html:50 +#: core/templates/core/timer_nav.html:38 #: dashboard/templates/cards/diaperchange_last.html:17 #: dashboard/templates/cards/diaperchange_types.html:12 #: dashboard/templates/cards/feeding_day.html:20 #: dashboard/templates/cards/feeding_day.html:52 #: dashboard/templates/cards/feeding_last.html:17 #: dashboard/templates/cards/feeding_last_method.html:43 +#: dashboard/templates/cards/sleep_day.html:14 #: dashboard/templates/cards/sleep_last.html:17 #: dashboard/templates/cards/sleep_naps_day.html:18 -#: dashboard/templates/cards/sleep_recent.html:20 -#: dashboard/templates/cards/sleep_recent.html:52 #: dashboard/templates/cards/tummytime_day.html:14 msgid "None" msgstr "Nenhum" @@ -1546,10 +1028,6 @@ msgstr "Actualizar uma entrada de Tempo de Barriga para Baixo" msgid "Add a Tummy Time Entry" msgstr "Adicionar uma entrada de Tempo de Barriga para Baixo" -#: core/templates/core/tummytime_list.html:15 -msgid "Add Tummy Time" -msgstr "Adicionar Tempo de Barriga para Baixo" - #: core/templates/core/tummytime_list.html:67 msgid "No tummy time entries found." msgstr "Não foram encontradas entradas de Tempo de Barriga para Baixo" @@ -1564,233 +1042,76 @@ msgstr "Apagar uma entrada de Peso" msgid "Add a Weight Entry" msgstr "Adicionar uma entrada de Peso" -#: core/templates/core/weight_list.html:15 -msgid "Add Weight" -msgstr "Adicionar Peso" - #: core/templates/core/weight_list.html:70 msgid "No weight entries found." msgstr "Não foram encontradas entradas de peso." -#: core/templates/core/widget_tag_editor.html:22 -#, fuzzy -#| msgid "Last name" -msgid "Tag name" -msgstr "Último nome" - -#: core/templates/core/widget_tag_editor.html:27 -msgid "Recently used:" -msgstr "" - -#: core/templates/core/widget_tag_editor.html:45 -msgctxt "Error modal" -msgid "Error" -msgstr "" - -#: core/templates/core/widget_tag_editor.html:50 -msgctxt "Error modal" -msgid "An error ocurred." -msgstr "" - -#: core/templates/core/widget_tag_editor.html:51 -msgctxt "Error modal" -msgid "Invalid tag name." -msgstr "" - -#: core/templates/core/widget_tag_editor.html:52 -msgctxt "Error modal" -msgid "Failed to create tag." -msgstr "" - -#: core/templates/core/widget_tag_editor.html:53 -msgctxt "Error modal" -msgid "Failed to obtain tag data." -msgstr "" - -#: core/templates/core/widget_tag_editor.html:58 -msgctxt "Error modal" -msgid "Close" -msgstr "" - -#: core/templates/timeline/_timeline.html:38 -#, python-format -msgid "%(since)s ago (%(time)s)" -msgstr "há %(since)s (%(time)s)" - -#: core/templates/timeline/_timeline.html:44 -#, fuzzy, python-format -#| msgid "Duration too long." -msgid "Duration: %(duration)s" -msgstr "Duração demasiado longa." - -#: core/templates/timeline/_timeline.html:53 -#, python-format -msgid "%(since)s since previous" -msgstr "" - -#: core/templates/timeline/_timeline.html:61 -#: dashboard/templates/dashboard/child_button_group.html:20 -msgid "Edit" -msgstr "Editar" - -#: core/templates/timeline/_timeline.html:85 -msgid "No events" -msgstr "" - -#: core/templatetags/datetime.py:60 -msgid "Today" -msgstr "Hoje" - -#: core/templatetags/datetime.py:75 -msgid "{}, {}" -msgstr "{}, {}" - -#: core/templatetags/duration.py:25 -msgid "0 days" -msgstr "0 dias" - -#: core/templatetags/duration.py:111 -#: dashboard/templates/cards/diaperchange_types.html:49 -msgid "today" -msgstr "hoje" - -#: core/templatetags/duration.py:113 -#: dashboard/templates/cards/diaperchange_types.html:51 -msgid "yesterday" -msgstr "ontem" - -#: core/templatetags/duration.py:116 -#, fuzzy -#| msgid "%(key)s days ago" -msgid " days ago" -msgstr "%(key)s dias atrás" - -#: core/timeline.py:53 -#, python-format -msgid "%(child)s started tummy time!" -msgstr "%(child)s começou tempo de barriga para baixo!" - -#: core/timeline.py:65 -#, python-format -msgid "%(child)s finished tummy time." -msgstr "%(child)s terminou tempo de barriga para baixo!" - -#: core/timeline.py:91 -#, python-format -msgid "%(child)s fell asleep." -msgstr "%(child)s adormeceu." - -#: core/timeline.py:103 -#, python-format -msgid "%(child)s woke up." -msgstr "%(child)s acordou." - -#: core/timeline.py:137 -#, python-format -msgid "Amount: %(amount).0f" -msgstr "Quantidade: %(amount).0f" +#: core/timeline.py:164 +msgid "%(child)s had a diaper change." +msgstr "%(child)s mudou a fralda." #: core/timeline.py:145 -#, python-format msgid "%(child)s started feeding." msgstr "%(child)s começou a alimentar-se." #: core/timeline.py:158 -#, python-format msgid "%(child)s finished feeding." msgstr "%(child)s terminou de se alimentar." -#: core/timeline.py:185 -#, fuzzy, python-format -#| msgid "%(child)s had a diaper change." -msgid "%(child)s had a %(type)s diaper change." -msgstr "%(child)s mudou a fralda." +#: core/timeline.py:91 +msgid "%(child)s fell asleep." +msgstr "%(child)s adormeceu." -#: core/utils.py:40 -#, python-format -msgid "%(hours)s hour" -msgid_plural "%(hours)s hours" -msgstr[0] "%(hours)s hora" -msgstr[1] "%(hours)s horas" +#: core/timeline.py:103 +msgid "%(child)s woke up." +msgstr "%(child)s acordou." -#: core/utils.py:44 -#, python-format -msgid "%(minutes)s minute" -msgid_plural "%(minutes)s minutes" -msgstr[0] "%(minutes)s minuto" -msgstr[1] "%(minutes)s minutos" +#: core/timeline.py:53 +msgid "%(child)s started tummy time!" +msgstr "%(child)s começou tempo de barriga para baixo!" -#: core/utils.py:50 -#, python-format -msgid "%(seconds)s second" -msgid_plural "%(seconds)s seconds" -msgstr[0] "%(seconds)s segundo" -msgstr[1] "%(seconds)s segundos" +#: core/timeline.py:65 +msgid "%(child)s finished tummy time." +msgstr "%(child)s terminou tempo de barriga para baixo!" #: core/views.py:33 -#, python-format msgid "%(model)s entry for %(child)s added!" msgstr "%(model)s entrada para %(child)s adicionada!" #: core/views.py:35 core/views.py:308 -#, python-format msgid "%(model)s entry added!" msgstr "%(model)s entrada adicionada!" #: core/views.py:61 core/views.py:316 -#, python-format msgid "%(model)s entry for %(child)s updated." msgstr "%(model)s entrada para %(child)s actualizada." #: core/views.py:63 -#, python-format msgid "%(model)s entry updated." msgstr "%(model)s entrada actualizada." -#: core/views.py:69 core/views.py:146 -#, python-format -msgid "%(model)s entry deleted." -msgstr "%(model)s entrada eliminada." - #: core/views.py:115 -#, python-format msgid "%(first_name)s %(last_name)s added!" msgstr "%(first_name)s %(last_name)s adicionado!" -#: core/views.py:366 -#, python-format -msgid "%(model)s reading added!" -msgstr "%(model)s leitura adicionada!" - -#: core/views.py:374 -#, python-format -msgid "%(model)s reading for %(child)s updated." -msgstr "%(model)s leitura para %(child)s actualizada." - -#: core/views.py:483 -#, python-format +#: core/views.py:478 msgid "%(timer)s stopped." msgstr "%(timer)s parado." -#: core/views.py:506 -msgid "All inactive timers deleted." -msgstr "Todos os temporizadores inactivos foram apagados." - -#: core/views.py:516 -msgid "No inactive timers exist." -msgstr "Não foram encontrados temporizadores activos." - #: dashboard/templates/cards/diaperchange_last.html:6 msgid "Last Diaper Change" msgstr "Última Mudança de Fralda" -#: dashboard/templates/cards/diaperchange_last.html:12 -#: dashboard/templates/cards/feeding_last.html:12 -#: dashboard/templates/cards/sleep_last.html:12 -#: dashboard/templates/cards/tummytime_last.html:13 -#, python-format -msgid "
%(since)s ago
%(time)s" -msgstr "
%(since)s atrás
%(time)s" +#: dashboard/templates/cards/diaperchange_last.html:8 +#: dashboard/templates/cards/feeding_last.html:8 +#: dashboard/templates/cards/sleep_last.html:8 +#: dashboard/templates/cards/tummytime_last.html:8 +msgid "%(time)s ago" +msgstr "%(time)s atrás" + +#: dashboard/templates/cards/tummytime_last.html:18 +msgid "Never" +msgstr "Nunca" #: dashboard/templates/cards/diaperchange_types.html:14 msgid "Past Week" @@ -1804,29 +1125,18 @@ msgstr "molhado" msgid "solid" msgstr "sólido" +#: dashboard/templates/cards/diaperchange_types.html:49 +msgid "today" +msgstr "hoje" + +#: dashboard/templates/cards/diaperchange_types.html:51 +msgid "yesterday" +msgstr "ontem" + #: dashboard/templates/cards/diaperchange_types.html:53 -#, python-format msgid "%(key)s days ago" msgstr "%(key)s dias atrás" -#: dashboard/templates/cards/feeding_day.html:6 -msgid "Today's Feeding" -msgstr "Alimentações de Hoje" - -#: dashboard/templates/cards/feeding_day.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s feeding" -msgid_plural "%(counter)s feedings" -msgstr[0] "%(count)s entradas de sono" -msgstr[1] "%(count)s entradas de sono" - -#: dashboard/templates/cards/feeding_day.html:32 -#: dashboard/templates/cards/sleep_recent.html:32 -#, python-format -msgid "
%(since)s
" -msgstr "" - #: dashboard/templates/cards/feeding_last.html:6 msgid "Last Feeding" msgstr "Última Alimentação" @@ -1835,47 +1145,31 @@ msgstr "Última Alimentação" msgid "Last Feeding Method" msgstr "Último Método de Alimentação" -#: dashboard/templates/cards/feeding_last_method.html:19 -msgid "most recent" -msgstr "mais recente" +#: dashboard/templates/cards/sleep_day.html:6 +msgid "Today's Sleep" +msgstr "Sono de Hoje" -#: dashboard/templates/cards/feeding_last_method.html:21 -#, fuzzy, python-format -#| msgid "%(n)s feeding%(plural)s ago" -msgid "%(n)s feeding ago" -msgid_plural "%(n)s feedings ago" -msgstr[0] "%(n)s alimentaçõe%(plural)s atrás" -msgstr[1] "%(n)s alimentaçõe%(plural)s atrás" +#: dashboard/templates/cards/sleep_day.html:11 +#: dashboard/templates/cards/sleep_naps_day.html:13 +#: dashboard/templates/cards/tummytime_day.html:11 +msgid "None yet today" +msgstr "Nenhum ainda hoje" -#: dashboard/templates/cards/sleep_last.html:6 -msgid "Last Sleep" -msgstr "Último Sono" +#: dashboard/templates/cards/sleep_day.html:20 +msgid "%(count)s sleep entries" +msgstr "%(count)s entradas de sono" + +#: dashboard/templates/cards/sleep_last.html:4 +msgid "Last Slept" +msgstr "Último sono" #: dashboard/templates/cards/sleep_naps_day.html:6 msgid "Today's Naps" msgstr "Sestas de Hoje" #: dashboard/templates/cards/sleep_naps_day.html:12 -#, fuzzy, python-format -#| msgid "%(count)s nap%(plural)s" -msgid "%(count)s nap" -msgid_plural "%(count)s naps" -msgstr[0] "%(count)s sesta%(plural)s" -msgstr[1] "%(count)s sesta%(plural)s" - -#: dashboard/templates/cards/sleep_recent.html:6 -#, fuzzy -#| msgid "Last Sleep" -msgid "Recent Sleep" -msgstr "Último Sono" - -#: dashboard/templates/cards/sleep_recent.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s sleep" -msgid_plural "%(counter)s sleep" -msgstr[0] "%(count)s entradas de sono" -msgstr[1] "%(count)s entradas de sono" +msgid "%(count)s nap%(plural)s" +msgstr "%(count)s sesta%(plural)s" #: dashboard/templates/cards/statistics.html:7 msgid "Statistics" @@ -1885,29 +1179,19 @@ msgstr "Estatísticas" msgid "Not enough data" msgstr "Não há dados suficientes" -#: dashboard/templates/cards/statistics.html:42 -msgid "No data yet" -msgstr "Não há dados ainda" - #: dashboard/templates/cards/timer_list.html:12 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(count)s active timer" -msgid_plural "%(count)s active timers" -msgstr[0] "%(count)s entradas de sono" -msgstr[1] "%(count)s entradas de sono" +msgid "%(count)s active timer%(plural)s" +msgstr "%(count)s temporizadores ativos %(plural)s" -#: dashboard/templates/cards/timer_list.html:27 -#, python-format -msgid "Started by %(user)s at %(start)s" -msgstr "Iniciado por %(user)s às %(start)s" +#: dashboard/templates/cards/timer_list.html:19 +msgid "Started by %(instance.user)s at %(start)s" +msgstr "Iniciado por %(instance.user)s às %(start)s" #: dashboard/templates/cards/tummytime_day.html:6 msgid "Today's Tummy Time" msgstr "Tempo de Barriga para Baixo de Hoje" #: dashboard/templates/cards/tummytime_day.html:22 -#, python-format msgid "%(duration)s at %(end)s" msgstr "%(duration)s até %(end)s" @@ -1915,103 +1199,65 @@ msgstr "%(duration)s até %(end)s" msgid "Last Tummy Time" msgstr "Último tempo de Barriga para Baixo" -#: dashboard/templates/cards/tummytime_last.html:18 -msgid "Never" -msgstr "Nunca" - #: dashboard/templates/dashboard/child_button_group.html:3 msgid "Child actions" msgstr "Acções da criança" -#: dashboard/templates/dashboard/child_button_group.html:12 -#: reports/templates/reports/base.html:9 -#: reports/templates/reports/report_list.html:4 -msgid "Reports" -msgstr "Relatórios" +#: reports/templates/reports/diaperchange_types.html:4 +#: reports/templates/reports/diaperchange_types.html:8 +#: reports/templates/reports/report_list.html:12 +msgid "Diaper Change Types" +msgstr "Tipos de Mudança de Fralda" -#: dashboard/templatetags/cards.py:357 -msgid "Average nap duration" -msgstr "Média de duração das sestas" +#: reports/templates/reports/diaperchange_lifetimes.html:4 +#: reports/templates/reports/diaperchange_lifetimes.html:8 +#: reports/templates/reports/report_list.html:13 +msgid "Diaper Lifetimes" +msgstr "Tempos de vida das Fraldas" -#: dashboard/templatetags/cards.py:364 -msgid "Average naps per day" -msgstr "Média de sestas por dua" +#: reports/templates/reports/report_list.html:15 +msgid "Feeding Durations (Average)" +msgstr "Durações das Alimentações (Média)" -#: dashboard/templatetags/cards.py:374 -msgid "Average sleep duration" -msgstr "Média de duração dos sonos" +#: reports/templates/reports/report_list.html:19 +#: reports/templates/reports/sleep_pattern.html:4 +#: reports/templates/reports/sleep_pattern.html:8 +msgid "Sleep Pattern" +msgstr "Padrões de Sono" -#: dashboard/templatetags/cards.py:381 -msgid "Average awake duration" -msgstr "Média de tempo acordado" +#: reports/templates/reports/report_list.html:20 +#: reports/templates/reports/sleep_totals.html:4 +#: reports/templates/reports/sleep_totals.html:8 +msgid "Sleep Totals" +msgstr "Totais de Sono" -#: dashboard/templatetags/cards.py:391 -msgid "Weight change per week" -msgstr "Alterações de peso por semana" - -#: dashboard/templatetags/cards.py:401 -#, fuzzy -#| msgid "Weight change per week" -msgid "Height change per week" -msgstr "Alterações de peso por semana" - -#: dashboard/templatetags/cards.py:411 -#, fuzzy -#| msgid "Weight change per week" -msgid "Head circumference change per week" -msgstr "Alterações de peso por semana" - -#: dashboard/templatetags/cards.py:421 -#, fuzzy -#| msgid "Weight change per week" -msgid "BMI change per week" -msgstr "Alterações de peso por semana" - -#: dashboard/templatetags/cards.py:439 -#, fuzzy -#| msgid "Feeding frequency (past 3 days)" -msgid "Diaper change frequency (past 3 days)" -msgstr "Frequência de alimentação (últimos 3 dias)" - -#: dashboard/templatetags/cards.py:443 -#, fuzzy -#| msgid "Feeding frequency (past 2 weeks)" -msgid "Diaper change frequency (past 2 weeks)" -msgstr "Frequência de alimentação (últimas 2 semanas)" - -#: dashboard/templatetags/cards.py:449 +#: dashboard/templatetags/cards.py:420 msgid "Diaper change frequency" msgstr "Frequência da mudança de fralda" -#: dashboard/templatetags/cards.py:485 -msgid "Feeding frequency (past 3 days)" -msgstr "Frequência de alimentação (últimos 3 dias)" - -#: dashboard/templatetags/cards.py:489 -msgid "Feeding frequency (past 2 weeks)" -msgstr "Frequência de alimentação (últimas 2 semanas)" - -#: dashboard/templatetags/cards.py:495 +#: dashboard/templatetags/cards.py:466 msgid "Feeding frequency" msgstr "Frequência de alimentação" -#: reports/graphs/bmi_change.py:27 -#, fuzzy -#| msgid "Weight" -msgid "BMI" -msgstr "Peso" +#: dashboard/templatetags/cards.py:328 +msgid "Average nap duration" +msgstr "Média de duração das sestas" -#: reports/graphs/diaperchange_amounts.py:27 -msgid "Diaper change amount" -msgstr "Quantidade da mudança de fralda" +#: dashboard/templatetags/cards.py:335 +msgid "Average naps per day" +msgstr "Média de sestas por dia" -#: reports/graphs/diaperchange_amounts.py:36 -msgid "Diaper Change Amounts" -msgstr "Quantidade da Mudança de Fralda" +#: dashboard/templatetags/cards.py:345 +msgid "Average sleep duration" +msgstr "Média de duração dos sonos" -#: reports/graphs/diaperchange_amounts.py:39 -msgid "Change amount" -msgstr "Quantidade da Fralda" +#: dashboard/templatetags/cards.py:352 +msgid "Average awake duration" +msgstr "Média de tempo acordado" + +#: dashboard/templatetags/cards.py:362 +msgid "Weight change per week" +msgstr "Alterações de peso por semana" #: reports/graphs/diaperchange_lifetimes.py:35 msgid "Diaper Lifetimes" @@ -2033,16 +1279,6 @@ msgstr "Tipos de Mudança de Fralda" msgid "Number of changes" msgstr "Número de Mudanças de Fralda" -#: reports/graphs/feeding_amounts.py:69 -#, fuzzy -#| msgid "Total Feeding Amounts" -msgid "Total Feeding Amount by Type" -msgstr "Total de Alimentações" - -#: reports/graphs/feeding_amounts.py:72 -msgid "Feeding amount" -msgstr "Quantidade de alimentação" - #: reports/graphs/feeding_duration.py:38 msgid "Average duration" msgstr "Duração média" @@ -2063,35 +1299,13 @@ msgstr "Duração média (minutos)" msgid "Number of feedings" msgstr "Número de alimentações" -#: reports/graphs/head_circumference_change.py:27 -msgid "Head Circumference" -msgstr "" - -#: reports/graphs/height_change.py:27 -#, fuzzy -#| msgid "Weight" -msgid "Height" -msgstr "Peso" - -#: reports/graphs/pumping_amounts.py:59 -#, fuzzy -#| msgid "Total Feeding Amounts" -msgid "Total Pumping Amount" -msgstr "Total de Alimentações" - -#: reports/graphs/pumping_amounts.py:62 -#, fuzzy -#| msgid "Feeding Amounts" -msgid "Pumping Amount" -msgstr "Quantidades de Alimentações" - -#: reports/graphs/sleep_pattern.py:150 +#: reports/graphs/sleep_pattern.py:148 msgid "Sleep Pattern" msgstr "Padrões de Sono" -#: reports/graphs/sleep_pattern.py:167 +#: reports/graphs/sleep_pattern.py:165 msgid "Time of day" -msgstr "Hora" +msgstr "Hora do dia" #: reports/graphs/sleep_totals.py:48 msgid "Total sleep" @@ -2105,43 +1319,147 @@ msgstr "Totais de Sono" msgid "Hours of sleep" msgstr "Horas de sono" -#: reports/graphs/tummytime_duration.py:34 -msgid "Total duration" -msgstr "" - -#: reports/graphs/tummytime_duration.py:41 -#: reports/graphs/tummytime_duration.py:55 -msgid "Number of sessions" -msgstr "" - -#: reports/graphs/tummytime_duration.py:50 -msgid "Total Tummy Time Durations" -msgstr "" - -#: reports/graphs/tummytime_duration.py:53 -msgid "Total duration (minutes)" -msgstr "" - #: reports/graphs/weight_change.py:27 msgid "Weight" msgstr "Peso" -#: reports/templates/reports/diaperchange_amounts.html:4 -#: reports/templates/reports/diaperchange_amounts.html:8 -msgid "Diaper Amounts" -msgstr "Quantidade na Fralda" +#: reports/templates/reports/feeding_duration.html:4 +#: reports/templates/reports/feeding_duration.html:8 +msgid "Average Feeding Durations" +msgstr "Média de Duração das Alimentações" -#: reports/templates/reports/diaperchange_lifetimes.html:4 -#: reports/templates/reports/diaperchange_lifetimes.html:8 -#: reports/templates/reports/report_list.html:13 -msgid "Diaper Lifetimes" -msgstr "Tempos de vida das Fraldas" +#: dashboard/templates/dashboard/child_button_group.html:12 +#: reports/templates/reports/base.html:9 +#: reports/templates/reports/report_list.html:4 +msgid "Reports" +msgstr "Relatórios" -#: reports/templates/reports/diaperchange_types.html:4 -#: reports/templates/reports/diaperchange_types.html:8 -#: reports/templates/reports/report_list.html:12 -msgid "Diaper Change Types" -msgstr "Tipos de Mudança de Fralda" +#: reports/templates/reports/report_base.html:19 +msgid "There is no enough data to generate this report." +msgstr "Não há dados suficientes para gerar o report." + +#: core/models.py:296 +msgid "Both breasts" +msgstr "Ambas as mamas" + +#: babybuddy/settings/base.py:173 +msgid "German" +msgstr "Alemão" + +#: babybuddy/settings/base.py:177 +msgid "Spanish" +msgstr "Espanhol" + +#: babybuddy/settings/base.py:178 +msgid "Swedish" +msgstr "Sueco" + +#: babybuddy/settings/base.py:179 +msgid "Turkish" +msgstr "Turco" + +#: babybuddy/templates/error/403.html:9 +msgid "You do not have permission to access this resource. Contact a site administrator for assistance." +msgstr "Não tem permissão para aceder a este recurso. Contacte o administrador do site para assitência" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:75 +#: babybuddy/templates/babybuddy/nav-dropdown.html:179 core/models.py:506 +#: core/models.py:519 core/models.py:520 core/models.py:523 +#: core/templates/core/temperature_confirm_delete.html:7 +#: core/templates/core/temperature_form.html:13 +#: core/templates/core/temperature_list.html:4 +#: core/templates/core/temperature_list.html:7 +#: core/templates/core/temperature_list.html:12 +#: core/templates/core/temperature_list.html:29 +msgid "Temperature" +msgstr "Temperatura" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:185 +msgid "Temperature reading" +msgstr "Leitura de temperatura" + +#: babybuddy/templates/babybuddy/welcome.html:14 +msgid "Learn about and predict baby's needs without (as much) guess work by using Baby Buddy to track —" +msgstr "Aprenda e preveja as necessidades do(s) bebé(s) sem (muita) adivinhação utilizando o Baby Buddy para contorlar —" + +#: babybuddy/templates/babybuddy/welcome.html:56 +msgid "As the amount of entries grows, Baby Buddy will help parents and caregivers to identify small patterns in baby's habits using the dashboard and graphs. Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and dads with 2AM feedings and changings. To get started, just click the button below to add your first (or second, third, etc.) child!" +msgstr "À medida que o número de entradas aumenta, o Baby Buddy vai ajudar os pais e cuidadores a identificar pequenos padrões nos hábitos dos bebés, usando o painel e os gráficos. Baby Buddy é mobile-friendly e usa um tema escuro para ajudar mães e pais cansados com alimentações e mudanças de fralda às 2 da manhã. Para começar, simplesmente clique no botão abaixo para adicionar a sua primeira (ou segunda, ou terceira, etc.) criança!" + +#: babybuddy/templates/registration/password_reset_confirm.html:13 +msgid "Oh snap! The two passwords did not match. Please try again." +msgstr "Que chatice! As duas passwords não coincidem. Por favor tente novamente." + +#: babybuddy/templates/registration/password_reset_done.html:9 +msgid "We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly." +msgstr "Se alguma conta existir com o seu e-mail, foram enviadas instruções para definir a sua password. Deverá recebê-lo em breve." + +#: babybuddy/templates/registration/password_reset_done.html:15 +msgid "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder." +msgstr "Se não receber um e-mail, por favor verifique o endereço com o qual se registou e a sua caixa de spam." + +#: babybuddy/templates/registration/password_reset_form.html:9 +msgid "Enter your account email address in the form below. If the address is valid, you will receive instructions for resetting your password." +msgstr "Insira o seu e-mail no formulário abaixo. Se o endereço for válido, receberá instruções para o reset da sua password." + +#: core/models.py:285 +msgid "Fortified breast milk" +msgstr "Leite materno fortificado" + +#: core/templates/core/temperature_confirm_delete.html:4 +msgid "Delete a Temperature Reading" +msgstr "Apagar uma leitura de Temperatura" + +#: core/templates/core/temperature_form.html:8 +#: core/templates/core/temperature_form.html:17 +msgid "Add a Temperature Reading" +msgstr "Adicionar uma leitura de Temperatura" + +#: core/templates/core/temperature_form.html:27 +msgid "Add a Temperature Entry" +msgstr "Adicionar uma leitura de Temperatura" + +#: core/templates/core/temperature_list.html:70 +msgid "No temperature entries found." +msgstr "Não foram encontradas registos de temperatura" + +#: core/templates/core/timer_detail.html:34 +msgid "%(timer)s created by %(user)s" +msgstr "%(timer)s iniciado por %(user)s" + +#: core/utils.py:40 +msgid "%(hours)s hour" +msgid_plural "%(hours)s hours" +msgstr[0] "%(hours)s hora" +msgstr[1] "%(hours)s horas" + +#: core/utils.py:44 +msgid "%(minutes)s minute" +msgid_plural "%(minutes)s minutes" +msgstr[0] "%(minutes)s minuto" +msgstr[1] "%(minutes)s minutos" + +#: core/utils.py:50 +msgid "%(seconds)s second" +msgid_plural "%(seconds)s seconds" +msgstr[0] "%(seconds)s segundo" +msgstr[1] "%(seconds)s segundos" + +#: core/views.py:69 core/views.py:146 +msgid "%(model)s entry deleted." +msgstr "%(model)s entrada eliminada." + +#: core/views.py:366 +msgid "%(model)s reading added!" +msgstr "%(model)s leitura adicionada!" + +#: core/views.py:374 +msgid "%(model)s reading for %(child)s updated." +msgstr "%(model)s leitura para %(child)s actualizada." + +#: dashboard/templates/cards/timer_list.html:27 +msgid "Started by %(user)s at %(start)s" +msgstr "Iniciado por %(user)s às %(start)s" #: reports/templates/reports/feeding_amounts.html:4 #: reports/templates/reports/feeding_amounts.html:8 @@ -2149,57 +1467,694 @@ msgstr "Tipos de Mudança de Fralda" msgid "Feeding Amounts" msgstr "Quantidades de Alimentações" -#: reports/templates/reports/feeding_duration.html:4 -#: reports/templates/reports/feeding_duration.html:8 -msgid "Average Feeding Durations" -msgstr "Média de Duração das Alimentações" +#: reports/graphs/feeding_amounts.py:27 +msgid "Total feeding amount" +msgstr "Total de alimentação" + +#: reports/graphs/feeding_amounts.py:36 +msgid "Total Feeding Amounts" +msgstr "Total de Alimentações" + +#: reports/graphs/feeding_amounts.py:72 +msgid "Feeding amount" +msgstr "Quantidade de alimentação" #: reports/templates/reports/report_base.html:17 msgid "There is not enough data to generate this report." msgstr "Não há dados suficientes para gerar este relatório." -#: reports/templates/reports/report_list.html:10 -msgid "Body Mass Index (BMI)" -msgstr "" +#: babybuddy/models.py:69 +msgid "Timezone" +msgstr "Fuso Horário" + +#: babybuddy/templates/admin/base_site.html:4 +#: babybuddy/templates/admin/base_site.html:7 +#: babybuddy/templates/babybuddy/nav-dropdown.html:359 +msgid "Database Admin" +msgstr "Administrador da Base de Dados" + +#: core/templates/core/child_list.html:15 +msgid "Add Child" +msgstr "Adicionar Criança" + +#: core/templates/core/diaperchange_list.html:15 +msgid "Add Diaper Change" +msgstr "Adicionar Mudança de Fralda" + +#: core/templates/core/feeding_list.html:15 +msgid "Add Feeding" +msgstr "Adicionar Alimentação" + +#: core/templates/core/note_list.html:15 +msgid "Add Note" +msgstr "Adicionar Nota" + +#: core/templates/core/sleep_list.html:15 +msgid "Add Sleep" +msgstr "Adicionar Sono" + +#: core/templates/core/temperature_list.html:15 +msgid "Add Temperature Reading" +msgstr "Adicionar Temperatura" + +#: core/templates/core/timer_confirm_delete_inactive.html:5 +msgid "Delete All Inactive Timers" +msgstr "Apagar todos os temporizadores inactivos" + +#: core/templates/core/timer_confirm_delete_inactive.html:10 +msgid "Delete Inactive" +msgstr "Apagar inactivo" + +#: core/templates/core/timer_confirm_delete_inactive.html:17 +msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" +msgstr "Tem a certeza que deseja eliminar %(number)s temporizadore%(plural)s inactivo%(plural)s?" + +#: core/templates/core/timer_list.html:68 +msgid "Delete Inactive Timers" +msgstr "Apagar Temporizadores Inactivos" + +#: core/templates/core/tummytime_list.html:15 +msgid "Add Tummy Time" +msgstr "Adicionar Tempo de Barriga para Baixo" + +#: core/templates/core/weight_list.html:15 +msgid "Add Weight" +msgstr "Adicionar Peso" + +#: core/views.py:501 +msgid "All inactive timers deleted." +msgstr "Todos os temporizadores inactivos foram apagados." + +#: core/views.py:511 +msgid "No inactive timers exist." +msgstr "Não foram encontrados temporizadores activos." + +#: dashboard/templates/cards/feeding_last_method.html:19 +msgid "most recent" +msgstr "mais recente" + +#: dashboard/templates/cards/feeding_last_method.html:21 +msgid "%(n)s feeding%(plural)s ago" +msgstr "%(n)s alimentaçõe%(plural)s atrás" + +#: dashboard/templates/cards/sleep_last.html:6 +msgid "Last Sleep" +msgstr "Último Sono" #: reports/templates/reports/report_list.html:11 msgid "Diaper Change Amounts" msgstr "Quantidades na Mudança de Fralda" -#: reports/templates/reports/report_list.html:15 -msgid "Feeding Durations (Average)" -msgstr "Durações das Alimentações (Média)" +#: reports/graphs/diaperchange_amounts.py:27 +msgid "Diaper change amount" +msgstr "Quantidade da mudança de fralda" -#: reports/templates/reports/report_list.html:18 -#, fuzzy -#| msgid "Feeding Amounts" -msgid "Pumping Amounts" -msgstr "Quantidades de Alimentações" +#: reports/graphs/diaperchange_amounts.py:36 +msgid "Diaper Change Amounts" +msgstr "Quantidade da Mudança de Fralda" -#: reports/templates/reports/report_list.html:19 -#: reports/templates/reports/sleep_pattern.html:4 -#: reports/templates/reports/sleep_pattern.html:8 -msgid "Sleep Pattern" -msgstr "Padrões de Sono" +#: reports/graphs/diaperchange_amounts.py:39 +msgid "Change amount" +msgstr "Quantidade de mudanças" -#: reports/templates/reports/report_list.html:20 -#: reports/templates/reports/sleep_totals.html:4 -#: reports/templates/reports/sleep_totals.html:8 -msgid "Sleep Totals" -msgstr "Totais de Sono" +#: reports/templates/reports/diaperchange_amounts.html:4 +#: reports/templates/reports/diaperchange_amounts.html:8 +msgid "Diaper Amounts" +msgstr "Quantidade de Fraldas" + +#: babybuddy/models.py:21 +msgid "If supported by browser, the dashboard will only refresh when visible, and also when receiving focus." +msgstr "Se suportado pelo browser, o painel apenas será atualizado quando visível e também quando recever foco." + +#: babybuddy/models.py:40 +msgid "Hide Empty Dashboard Cards" +msgstr "Esconder Cartões Vazios do Painel" + +#: babybuddy/models.py:43 +msgid "Hide data older than" +msgstr "Esconder dados anteriores a" + +#: babybuddy/models.py:45 +msgid "This setting controls which data will be shown in the dashboard." +msgstr "Esta definição controla que dados são mostrados no painel." + +#: babybuddy/models.py:51 +msgid "show all data" +msgstr "mostrar todos os dados" + +#: babybuddy/models.py:52 +msgid "1 day" +msgstr "1 dia" + +#: babybuddy/models.py:53 +msgid "2 days" +msgstr "2 dias" + +#: babybuddy/models.py:54 +msgid "3 days" +msgstr "3 dias" + +#: babybuddy/models.py:55 +msgid "1 week" +msgstr "1 semana" + +#: babybuddy/models.py:56 +msgid "4 weeks" +msgstr "4 semanas" + +#: babybuddy/settings/base.py:168 +msgid "Dutch" +msgstr "Holandês" + +#: babybuddy/settings/base.py:172 +msgid "Finnish" +msgstr "Finlandês" + +#: babybuddy/settings/base.py:174 +msgid "Italian" +msgstr "Italiano" + +#: babybuddy/settings/base.py:175 +msgid "Polish" +msgstr "Polaco" + +#: babybuddy/settings/base.py:176 +msgid "Portuguese" +msgstr "Português" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:118 +#: core/templates/timeline/timeline.html:4 +#: core/templates/timeline/timeline.html:7 +#: dashboard/templates/dashboard/child_button_group.html:9 +msgid "Timeline" +msgstr "Linha temporal" + +#: core/models.py:286 +msgid "Solid food" +msgstr "Comida sólida" + +#: core/models.py:297 +msgid "Parent fed" +msgstr "Alimentado pelos pais" + +#: core/models.py:298 +msgid "Self fed" +msgstr "Alimentado(a) por si próprio(a)" + +#: core/templates/core/diaperchange_list.html:29 +msgid "Contents" +msgstr "Conteúdo" + +#: core/templates/core/timer_detail.html:77 +msgid "Restart timer" +msgstr "Reiniciar temporizador" + +#: core/templates/core/timer_detail.html:84 +msgid "Delete timer" +msgstr "Apagar temporizador" + +#: core/templatetags/datetime.py:60 +msgid "Today" +msgstr "Hoje" + +#: core/templatetags/datetime.py:75 +msgid "{}, {}" +msgstr "{}, {}" + +#: core/templatetags/duration.py:25 +msgid "0 days" +msgstr "0 dias" + +#: core/timeline.py:137 +msgid "Amount: %(amount).0f" +msgstr "Quantidade: %(amount).0f" + +#: core/timeline.py:157 +msgid "Contents: %(contents)s" +msgstr "Conteúdo: %(contents)s" + +#: dashboard/templates/cards/diaperchange_last.html:12 +#: dashboard/templates/cards/feeding_last.html:12 +#: dashboard/templates/cards/sleep_last.html:12 +#: dashboard/templates/cards/tummytime_last.html:13 +msgid "
%(since)s ago
%(time)s" +msgstr "
%(since)s atrás
%(time)s" + +#: dashboard/templates/cards/feeding_day.html:6 +msgid "Today's Feeding" +msgstr "Alimentações de Hoje" + +#: dashboard/templates/cards/feeding_day.html:20 +msgid "%(count)s feeding entries" +msgstr "%(count)s entradas de alimentação" + +#: dashboard/templates/cards/statistics.html:42 +msgid "No data yet" +msgstr "Não há dados ainda" #: reports/templates/reports/report_list.html:21 msgid "Tummy Time Durations (Sum)" -msgstr "" +msgstr "Duração do tempo de barriga (Soma)" + +#: core/templates/timeline/_timeline.html:61 +#: dashboard/templates/dashboard/child_button_group.html:20 +msgid "Edit" +msgstr "Editar" + +#: dashboard/templatetags/cards.py:456 +msgid "Feeding frequency (past 3 days)" +msgstr "Frequência de alimentação (últimos 3 dias)" + +#: dashboard/templatetags/cards.py:460 +msgid "Feeding frequency (past 2 weeks)" +msgstr "Frequência de alimentação (últimas 2 semanas)" + +#: reports/graphs/tummytime_duration.py:34 +msgid "Total duration" +msgstr "Duração total" + +#: reports/graphs/tummytime_duration.py:41 +#: reports/graphs/tummytime_duration.py:55 +msgid "Number of sessions" +msgstr "Número de sessões" + +#: reports/graphs/tummytime_duration.py:50 +msgid "Total Tummy Time Durations" +msgstr "Duranção do tempo de barriga" + +#: reports/graphs/tummytime_duration.py:53 +msgid "Total duration (minutes)" +msgstr "Duração Total (minutos)" #: reports/templates/reports/tummytime_duration.html:4 #: reports/templates/reports/tummytime_duration.html:8 msgid "Total Tummy Time Durations" +msgstr "Duranção do tempo de barriga" + +#: babybuddy/settings/base.py:169 +#, fuzzy +msgid "English (US)" +msgstr "Inglês" + +#: babybuddy/settings/base.py:170 +#, fuzzy +msgid "English (UK)" +msgstr "Inglês" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:171 +msgid "Measurements" +msgstr "Medidas" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:207 core/models.py:369 +#: core/models.py:381 core/models.py:382 core/models.py:385 +#: core/templates/core/height_confirm_delete.html:7 +#: core/templates/core/height_form.html:13 +#: core/templates/core/height_list.html:4 +#: core/templates/core/height_list.html:7 +#: core/templates/core/height_list.html:12 +#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 +#: reports/graphs/height_change.py:30 +#: reports/templates/reports/height_change.html:4 +#: reports/templates/reports/height_change.html:8 +#: reports/templates/reports/report_list.html:17 +#, fuzzy +msgid "Height" +msgstr "Altura" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:213 +#, fuzzy +msgid "Height entry" +msgstr "Registo Altura" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:221 core/models.py:338 +#: core/models.py:351 core/models.py:352 core/models.py:355 +#: core/templates/core/head_circumference_confirm_delete.html:7 +#: core/templates/core/head_circumference_form.html:13 +#: core/templates/core/head_circumference_list.html:4 +#: core/templates/core/head_circumference_list.html:7 +#: core/templates/core/head_circumference_list.html:12 +#: core/templates/core/head_circumference_list.html:29 +#: reports/graphs/head_circumference_change.py:19 +#: reports/graphs/head_circumference_change.py:30 +#: reports/templates/reports/head_circumference_change.html:4 +#: reports/templates/reports/head_circumference_change.html:8 +#: reports/templates/reports/report_list.html:16 +msgid "Head Circumference" +msgstr "Circunferência da Cabeça" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:227 +msgid "Head Circumference entry" +msgstr "Registo Circunferência da Cabeça" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:235 core/models.py:139 +#: core/models.py:151 core/models.py:152 core/models.py:155 +#: core/templates/core/bmi_confirm_delete.html:7 +#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 +#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 +#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 +#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 +#: reports/templates/reports/bmi_change.html:8 +msgid "BMI" +msgstr "Índice de Massa Corporal" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:241 +#, fuzzy +msgid "BMI entry" +msgstr "Registo Índice de Massa Corporal" + +#: core/models.py:452 +msgid "Napping" +msgstr "Dormir" + +#: core/templates/core/bmi_confirm_delete.html:4 +#, fuzzy +msgid "Delete a BMI Entry" +msgstr "Apagar um registo de Índice de Massa Corporal" + +#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 +#: core/templates/core/bmi_form.html:27 +#, fuzzy +msgid "Add a BMI Entry" +msgstr "Adicionar um registo de Índice de Massa Corporal" + +#: core/templates/core/bmi_list.html:15 +msgid "Add BMI" +msgstr "Adicionar Índice de Massa Corporal" + +#: core/templates/core/bmi_list.html:70 +#, fuzzy +msgid "No bmi entries found." +msgstr "Não foram encontrados registos de Índice de Massa Corporal." + +#: core/templates/core/head_circumference_confirm_delete.html:4 +#, fuzzy +msgid "Delete a Head Circumference Entry" +msgstr "Apagar um registo da Circunferência da Cabeça" + +#: core/templates/core/head_circumference_form.html:8 +#: core/templates/core/head_circumference_form.html:17 +#: core/templates/core/head_circumference_form.html:27 +#, fuzzy +msgid "Add a Head Circumference Entry" +msgstr "Adicionar um registo da Circunferência da Cabeça" + +#: core/templates/core/head_circumference_list.html:15 +msgid "Add Head Circumference" +msgstr "Adicionar Circunferência da Cabeça" + +#: core/templates/core/head_circumference_list.html:70 +#, fuzzy +msgid "No head circumference entries found." +msgstr "Não foram encontrados registos da Circunferência da Cabeça" + +#: core/templates/core/height_confirm_delete.html:4 +#, fuzzy +msgid "Delete a Height Entry" +msgstr "Apagar um registo de Peso" + +#: core/templates/core/height_form.html:8 +#: core/templates/core/height_form.html:17 +#: core/templates/core/height_form.html:27 +#, fuzzy +msgid "Add a Height Entry" +msgstr "Adicionar um registo de Peso" + +#: core/templates/core/height_list.html:15 +#, fuzzy +msgid "Add Height" +msgstr "Adicionar Peso" + +#: core/templates/core/height_list.html:70 +#, fuzzy +msgid "No height entries found." +msgstr "Não foram encontrados registos de peso." + +#: core/templates/timeline/_timeline.html:44 +#, fuzzy +msgid "Duration: %(duration)s" +msgstr "Duração: %(duration)s" + +#: core/templates/timeline/_timeline.html:53 +msgid "%(since)s since previous" +msgstr "%(since)s desde o anterior" + +#: core/templates/timeline/_timeline.html:85 +msgid "No events" +msgstr "Sem eventos" + +#: core/timeline.py:185 +#, fuzzy +msgid "%(child)s had a %(type)s diaper change." +msgstr "%(child)s mudou a fralda %(type)s." + +#: dashboard/templatetags/cards.py:372 +#, fuzzy +msgid "Height change per week" +msgstr "Alterações de peso por semana" + +#: dashboard/templatetags/cards.py:382 +#, fuzzy +msgid "Head circumference change per week" +msgstr "Alterações da Circunferência da Cabeça por semana" + +#: dashboard/templatetags/cards.py:392 +#, fuzzy +msgid "BMI change per week" +msgstr "Alterações Índice de Massa Corporal por semana" + +#: reports/graphs/bmi_change.py:27 +#, fuzzy +msgid "BMI" +msgstr "Índice de Massa Corporal" + +#: reports/graphs/feeding_amounts.py:69 +#, fuzzy +msgid "Total Feeding Amount by Type" +msgstr "Total de Alimentações" + +#: reports/graphs/head_circumference_change.py:27 +msgid "Head Circumference" +msgstr "Circunferência da Cabeça" + +#: reports/graphs/height_change.py:27 +#, fuzzy +msgid "Height" +msgstr "Peso" + +#: babybuddy/settings/base.py:167 +msgid "Chinese (simplified)" +msgstr "Chinês (Simplificado)" + +#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 +msgid "Bad Request" msgstr "" -#~ msgid "Today's Sleep" -#~ msgstr "Sono de Hoje" +#: babybuddy/templates/error/403_csrf_bad_origin.html:14 +msgid "How to Fix" +msgstr "Como corrigir" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:15 +msgid "Add %(origin)s to the CSRF_TRUSTED_ORIGINS environment variable. If multiple origins are required separate with commas." +msgstr "" + +#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 +msgid "Page Not Found" +msgstr "Página não encontrada" + +#: babybuddy/templates/error/404.html:9 +msgid "The path %(request_path)s does not exist." +msgstr "" + +#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 +msgid "Server Error" +msgstr "Erro no servidor" + +#: babybuddy/templates/error/base.html:14 +#, fuzzy +msgid "Return to Baby Buddy" +msgstr "Bem-vindo ao Baby Buddy!" + +#: babybuddy/views.py:43 +msgid "Forbidden" +msgstr "Proibido" + +#: babybuddy/views.py:44 +msgid "CSRF verification failed. Request aborted." +msgstr "" + +#: babybuddy/settings/base.py:166 +msgid "Catalan" +msgstr "Catalão" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:93 +#: babybuddy/templates/babybuddy/nav-dropdown.html:316 core/models.py:437 +#: core/models.py:438 core/models.py:441 +#: core/templates/core/pumping_confirm_delete.html:7 +#: core/templates/core/pumping_form.html:13 +#: core/templates/core/pumping_list.html:4 +#: core/templates/core/pumping_list.html:7 +#: core/templates/core/pumping_list.html:12 +#: reports/templates/reports/pumping_amounts.html:4 +#: reports/templates/reports/pumping_amounts.html:8 +msgid "Pumping" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:322 +#, fuzzy +msgid "Pumping entry" +msgstr "Novo peso" + +#: core/filters.py:11 core/models.py:96 core/models.py:115 +msgid "Tag" +msgstr "Tag" + +#: core/forms.py:136 +msgid "Click on the tags to add (+) or remove (-) tags or use the text editor to create new tags." +msgstr "Clica nas tags para adicionar (+) ou remover (-) tags ou use o editor de texto para criar novas tags." + +#: core/models.py:90 +#, fuzzy +msgid "Last used" +msgstr "Último Nome" + +#: core/models.py:97 core/templates/core/bmi_list.html:30 +#: core/templates/core/diaperchange_list.html:32 +#: core/templates/core/feeding_list.html:35 +#: core/templates/core/head_circumference_list.html:30 +#: core/templates/core/height_list.html:30 +#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 +#: core/templates/core/temperature_list.html:30 +#: core/templates/core/tummytime_list.html:31 +#: core/templates/core/weight_list.html:30 +msgid "Tags" +msgstr "Tags" + +#: core/templates/core/pumping_confirm_delete.html:4 +#, fuzzy +msgid "Delete a Pumping Entry" +msgstr "Apagar uma entrada de Peso" + +#: core/templates/core/pumping_form.html:8 +#: core/templates/core/pumping_form.html:17 +#: core/templates/core/pumping_form.html:27 +#, fuzzy +msgid "Add a Pumping Entry" +msgstr "Adicionar uma entrada de Peso" + +#: core/templates/core/pumping_list.html:15 +#, fuzzy +msgid "Add Pumping Entry" +msgstr "Adicionar uma entrada de Peso" + +#: core/templates/core/pumping_list.html:66 +#, fuzzy +msgid "No pumping entries found." +msgstr "Não foram encontradas entradas de temporizador." + +#: core/templates/core/widget_tag_editor.html:22 +#, fuzzy +msgid "Tag name" +msgstr "Último nome" + +#: core/templates/core/widget_tag_editor.html:27 +msgid "Recently used:" +msgstr "Usado recentemente:" + +#: core/templates/core/widget_tag_editor.html:45 +msgctxt "Error modal" +msgid "Error" +msgstr "Erro" + +#: core/templates/core/widget_tag_editor.html:50 +msgctxt "Error modal" +msgid "An error ocurred." +msgstr "Ocorreu um Erro." + +#: core/templates/core/widget_tag_editor.html:51 +msgctxt "Error modal" +msgid "Invalid tag name." +msgstr "Tag inválida." + +#: core/templates/core/widget_tag_editor.html:52 +msgctxt "Error modal" +msgid "Failed to create tag." +msgstr "Falhou a criar a tag." + +#: core/templates/core/widget_tag_editor.html:53 +msgctxt "Error modal" +msgid "Failed to obtain tag data." +msgstr "Falhou a obter a tag." + +#: core/templates/core/widget_tag_editor.html:58 +msgctxt "Error modal" +msgid "Close" +msgstr "Fechar" + +#: dashboard/templates/cards/feeding_day.html:32 +msgid "
%(since)s
" +msgstr "
%(since)s
" + +#: dashboard/templatetags/cards.py:410 +#, fuzzy +msgid "Diaper change frequency (past 3 days)" +msgstr "Frequência de alimentação (últimos 3 dias)" + +#: dashboard/templatetags/cards.py:414 +#, fuzzy +msgid "Diaper change frequency (past 2 weeks)" +msgstr "Frequência de alimentação (últimas 2 semanas)" + +#: reports/graphs/pumping_amounts.py:57 +#, fuzzy +msgid "Total Pumping Amount" +msgstr "Total de Alimentações" + +#: reports/graphs/pumping_amounts.py:60 +#, fuzzy +msgid "Pumping Amount" +msgstr "Quantidades de Alimentações" + +#: reports/templates/reports/report_list.html:10 +msgid "Body Mass Index (BMI)" +msgstr "Índice de Massa Corporal (IMC)" + +#: reports/templates/reports/report_list.html:18 +#, fuzzy +msgid "Pumping Amounts" +msgstr "Quantidades de Alimentações" + +#: core/templates/core/timer_confirm_delete_inactive.html:17 +#, fuzzy +msgid "Are you sure you want to delete %(number)s inactive timer?" +msgid_plural "Are you sure you want to delete %(number)s inactive timers?" +msgstr[0] "Tem a certeza que deseja eliminar %(number)s temporizadore%(plural)s inactivo%(plural)s?" +msgstr[1] "Tem a certeza que deseja eliminar %(number)s temporizadore%(plural)s inactivo%(plural)s?" + +#: dashboard/templates/cards/feeding_day.html:25 +#, fuzzy +msgid "%(counter)s feeding" +msgid_plural "%(counter)s feedings" +msgstr[0] "%(count)s entradas de sono" +msgstr[1] "%(count)s entradas de sono" + +#: dashboard/templates/cards/feeding_last_method.html:21 +#, fuzzy +msgid "%(n)s feeding ago" +msgid_plural "%(n)s feedings ago" +msgstr[0] "%(n)s alimentaçõe%(plural)s atrás" +msgstr[1] "%(n)s alimentaçõe%(plural)s atrás" + +#: dashboard/templates/cards/sleep_naps_day.html:12 +#, fuzzy +msgid "%(count)s nap" +msgid_plural "%(count)s naps" +msgstr[0] "%(count)s sesta%(plural)s" +msgstr[1] "%(count)s sesta%(plural)s" + +#: dashboard/templates/cards/timer_list.html:12 +#, fuzzy +msgid "%(count)s active timer" +msgid_plural "%(count)s active timers" +msgstr[0] "%(count)s entradas de sono" +msgstr[1] "%(count)s entradas de sono" -#, python-format -#~ msgid "%(count)s sleep entries" -#~ msgstr "%(count)s entradas de sono" diff --git a/locale/sv/LC_MESSAGES/django.mo b/locale/sv/LC_MESSAGES/django.mo index d7835c20..642de688 100644 Binary files a/locale/sv/LC_MESSAGES/django.mo and b/locale/sv/LC_MESSAGES/django.mo differ diff --git a/locale/sv/LC_MESSAGES/django.po b/locale/sv/LC_MESSAGES/django.po index 277ac127..4c6f603e 100644 --- a/locale/sv/LC_MESSAGES/django.po +++ b/locale/sv/LC_MESSAGES/django.po @@ -1,22 +1,20 @@ msgid "" msgstr "" -"Project-Id-Version: Baby Buddy\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 21:13+0000\n" -"Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" +"Project-Id-Version: Baby Buddy\n" +"Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: babybuddy/admin.py:12 babybuddy/admin.py:13 -#: babybuddy/templates/babybuddy/nav-dropdown.html:324 +#: babybuddy/templates/babybuddy/nav-dropdown.html:347 #: babybuddy/templates/babybuddy/user_settings_form.html:8 msgid "Settings" msgstr "Inställningar" -#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:89 +#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:111 #: babybuddy/templates/babybuddy/user_settings_form.html:61 #: dashboard/templates/dashboard/child.html:4 #: dashboard/templates/dashboard/child.html:9 @@ -31,10 +29,8 @@ msgid "Refresh rate" msgstr "Uppdateringsintervall" #: babybuddy/models.py:21 -msgid "" -"If supported by browser, the dashboard will only refresh when visible, and " -"also when receiving focus." -msgstr "" +msgid "This setting will only be used when a browser does not support refresh on focus." +msgstr "Den här inställningen används endast när en webbläsare inte stöder uppdatering på fokus." #: babybuddy/models.py:28 msgid "disabled" @@ -72,120 +68,30 @@ msgstr "15 minuter." msgid "30 min." msgstr "30 minuter." -#: babybuddy/models.py:40 -msgid "Hide Empty Dashboard Cards" -msgstr "" - -#: babybuddy/models.py:43 -msgid "Hide data older than" -msgstr "" - -#: babybuddy/models.py:45 -msgid "This setting controls which data will be shown in the dashboard." -msgstr "" - -#: babybuddy/models.py:51 -msgid "show all data" -msgstr "" - -#: babybuddy/models.py:52 -msgid "1 day" -msgstr "" - -#: babybuddy/models.py:53 -msgid "2 days" -msgstr "" - -#: babybuddy/models.py:54 -msgid "3 days" -msgstr "" - -#: babybuddy/models.py:55 -msgid "1 week" -msgstr "" - -#: babybuddy/models.py:56 -msgid "4 weeks" -msgstr "" - #: babybuddy/models.py:63 msgid "Language" msgstr "Språk" -#: babybuddy/models.py:69 -msgid "Timezone" -msgstr "" - #: babybuddy/models.py:73 -#, python-brace-format msgid "{user}'s Settings" msgstr "{user}'s inställningar" -#: babybuddy/settings/base.py:166 -msgid "Catalan" -msgstr "" - -#: babybuddy/settings/base.py:167 -msgid "Chinese (simplified)" -msgstr "" - -#: babybuddy/settings/base.py:168 -msgid "Dutch" -msgstr "" - -#: babybuddy/settings/base.py:169 -#, fuzzy -#| msgid "English" -msgid "English (US)" -msgstr "Engelska" - -#: babybuddy/settings/base.py:170 -#, fuzzy -#| msgid "English" -msgid "English (UK)" +#: babybuddy/settings/base.py:171 +msgid "English" msgstr "Engelska" #: babybuddy/settings/base.py:171 msgid "French" msgstr "Franska" -#: babybuddy/settings/base.py:172 -msgid "Finnish" -msgstr "" +#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 +msgid "Permission Denied" +msgstr "Åtkomst nekad" -#: babybuddy/settings/base.py:173 -msgid "German" -msgstr "" - -#: babybuddy/settings/base.py:174 -msgid "Italian" -msgstr "" - -#: babybuddy/settings/base.py:175 -msgid "Polish" -msgstr "" - -#: babybuddy/settings/base.py:176 -msgid "Portuguese" -msgstr "" - -#: babybuddy/settings/base.py:177 -msgid "Spanish" -msgstr "" - -#: babybuddy/settings/base.py:178 -msgid "Swedish" -msgstr "" - -#: babybuddy/settings/base.py:179 -msgid "Turkish" -msgstr "" - -#: babybuddy/templates/admin/base_site.html:4 -#: babybuddy/templates/admin/base_site.html:7 -#: babybuddy/templates/babybuddy/nav-dropdown.html:336 -msgid "Database Admin" -msgstr "" +#: babybuddy/templates/403.html:12 +msgid "You do not have permission to access this resource.\n" +" Contact a site administrator for assistance." +msgstr "Du har inte behörighet att komma åt den här resursen. Kontakta webbplatsadministratören för hjälp." #: babybuddy/templates/babybuddy/base.html:36 msgid "Home" @@ -210,36 +116,32 @@ msgstr "Skicka" #: babybuddy/templates/babybuddy/messages.html:18 #: babybuddy/templates/babybuddy/user_settings_form.html:19 -#, python-format msgid "Error: %(error)s" msgstr "Fel: %(error)s" #: babybuddy/templates/babybuddy/messages.html:23 -#: babybuddy/templates/babybuddy/user_settings_form.html:26 -msgid "Error: Some fields have errors. See below for details." -msgstr "" -"Fel: Vissa fält innehåller felaktigheter. Se nedan för " -"detaljer." +msgid "Error: Some fields have errors. See below for details. " +msgstr "Error: Vissa fält innehåller fel. Se nedan för detaljer._" -#: babybuddy/templates/babybuddy/nav-dropdown.html:48 core/models.py:248 +#: babybuddy/templates/babybuddy/nav-dropdown.html:51 core/models.py:248 #: core/models.py:252 msgid "Diaper Change" msgstr "Blöjbyte" -#: babybuddy/templates/babybuddy/nav-dropdown.html:54 -#: babybuddy/templates/babybuddy/nav-dropdown.html:259 core/models.py:312 +#: babybuddy/templates/babybuddy/nav-dropdown.html:57 +#: babybuddy/templates/babybuddy/nav-dropdown.html:281 core/models.py:312 #: core/models.py:316 core/templates/core/timer_detail.html:43 msgid "Feeding" msgstr "Matning" -#: babybuddy/templates/babybuddy/nav-dropdown.html:60 -#: babybuddy/templates/babybuddy/nav-dropdown.html:135 core/models.py:396 +#: babybuddy/templates/babybuddy/nav-dropdown.html:63 +#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:396 #: core/models.py:407 core/models.py:411 core/templates/core/note_list.html:29 msgid "Note" msgstr "Anteckning" -#: babybuddy/templates/babybuddy/nav-dropdown.html:66 -#: babybuddy/templates/babybuddy/nav-dropdown.html:280 +#: babybuddy/templates/babybuddy/nav-dropdown.html:69 +#: babybuddy/templates/babybuddy/nav-dropdown.html:288 #: babybuddy/templates/babybuddy/welcome.html:42 core/models.py:467 #: core/models.py:468 core/models.py:471 #: core/templates/core/sleep_confirm_delete.html:7 @@ -249,8 +151,8 @@ msgstr "Anteckning" msgid "Sleep" msgstr "Sömn" -#: babybuddy/templates/babybuddy/nav-dropdown.html:72 -#: babybuddy/templates/babybuddy/nav-dropdown.html:293 +#: babybuddy/templates/babybuddy/nav-dropdown.html:81 +#: babybuddy/templates/babybuddy/nav-dropdown.html:301 #: babybuddy/templates/babybuddy/welcome.html:50 core/models.py:647 #: core/models.py:648 core/models.py:651 #: core/templates/core/timer_detail.html:59 @@ -262,15 +164,24 @@ msgstr "Sömn" msgid "Tummy Time" msgstr "Magläge" -#: babybuddy/templates/babybuddy/nav-dropdown.html:96 -#: core/templates/timeline/timeline.html:4 -#: core/templates/timeline/timeline.html:7 -#: dashboard/templates/dashboard/child_button_group.html:9 -msgid "Timeline" -msgstr "" +#: babybuddy/templates/babybuddy/nav-dropdown.html:87 +#: babybuddy/templates/babybuddy/nav-dropdown.html:193 core/models.py:673 +#: core/models.py:685 core/models.py:686 core/models.py:689 +#: core/templates/core/weight_confirm_delete.html:7 +#: core/templates/core/weight_form.html:13 +#: core/templates/core/weight_list.html:4 +#: core/templates/core/weight_list.html:7 +#: core/templates/core/weight_list.html:12 +#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 +#: reports/graphs/weight_change.py:30 +#: reports/templates/reports/report_list.html:22 +#: reports/templates/reports/weight_change.html:4 +#: reports/templates/reports/weight_change.html:8 +msgid "Weight" +msgstr "Vikt" -#: babybuddy/templates/babybuddy/nav-dropdown.html:107 -#: babybuddy/templates/babybuddy/nav-dropdown.html:115 core/models.py:188 +#: babybuddy/templates/babybuddy/nav-dropdown.html:129 +#: babybuddy/templates/babybuddy/nav-dropdown.html:137 core/models.py:188 #: core/templates/core/child_confirm_delete.html:7 #: core/templates/core/child_detail.html:7 #: core/templates/core/child_form.html:13 core/templates/core/child_list.html:4 @@ -280,7 +191,7 @@ msgstr "" msgid "Children" msgstr "Barn" -#: babybuddy/templates/babybuddy/nav-dropdown.html:121 core/models.py:137 +#: babybuddy/templates/babybuddy/nav-dropdown.html:143 core/models.py:137 #: core/models.py:187 core/models.py:221 core/models.py:274 core/models.py:335 #: core/models.py:367 core/models.py:394 core/models.py:426 core/models.py:450 #: core/models.py:503 core/models.py:537 core/models.py:630 core/models.py:671 @@ -299,7 +210,7 @@ msgstr "Barn" msgid "Child" msgstr "Barnet" -#: babybuddy/templates/babybuddy/nav-dropdown.html:129 core/models.py:143 +#: babybuddy/templates/babybuddy/nav-dropdown.html:151 core/models.py:143 #: core/models.py:240 core/models.py:304 core/models.py:343 core/models.py:373 #: core/models.py:408 core/models.py:430 core/models.py:458 core/models.py:511 #: core/models.py:677 core/templates/core/note_confirm_delete.html:7 @@ -308,118 +219,24 @@ msgstr "Barnet" msgid "Notes" msgstr "Anteckningar" -#: babybuddy/templates/babybuddy/nav-dropdown.html:149 -msgid "Measurements" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:139 -#: core/models.py:151 core/models.py:152 core/models.py:155 -#: core/templates/core/bmi_confirm_delete.html:7 -#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 -#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 -#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 -#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 -#: reports/templates/reports/bmi_change.html:8 -msgid "BMI" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:163 -#, fuzzy -#| msgid "Sleep entry" -msgid "BMI entry" -msgstr "Sömninlägg" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:171 core/models.py:338 -#: core/models.py:351 core/models.py:352 core/models.py:355 -#: core/templates/core/head_circumference_confirm_delete.html:7 -#: core/templates/core/head_circumference_form.html:13 -#: core/templates/core/head_circumference_list.html:4 -#: core/templates/core/head_circumference_list.html:7 -#: core/templates/core/head_circumference_list.html:12 -#: core/templates/core/head_circumference_list.html:29 -#: reports/graphs/head_circumference_change.py:19 -#: reports/graphs/head_circumference_change.py:30 -#: reports/templates/reports/head_circumference_change.html:4 -#: reports/templates/reports/head_circumference_change.html:8 -#: reports/templates/reports/report_list.html:16 -msgid "Head Circumference" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:177 -msgid "Head Circumference entry" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:185 core/models.py:369 -#: core/models.py:381 core/models.py:382 core/models.py:385 -#: core/templates/core/height_confirm_delete.html:7 -#: core/templates/core/height_form.html:13 -#: core/templates/core/height_list.html:4 -#: core/templates/core/height_list.html:7 -#: core/templates/core/height_list.html:12 -#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 -#: reports/graphs/height_change.py:30 -#: reports/templates/reports/height_change.html:4 -#: reports/templates/reports/height_change.html:8 -#: reports/templates/reports/report_list.html:17 -#, fuzzy -#| msgid "Weight" -msgid "Height" -msgstr "Vikt" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:191 -#, fuzzy -#| msgid "Weight entry" -msgid "Height entry" -msgstr "Viktinlägg" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:199 core/models.py:506 -#: core/models.py:519 core/models.py:520 core/models.py:523 -#: core/templates/core/temperature_confirm_delete.html:7 -#: core/templates/core/temperature_form.html:13 -#: core/templates/core/temperature_list.html:4 -#: core/templates/core/temperature_list.html:7 -#: core/templates/core/temperature_list.html:12 -#: core/templates/core/temperature_list.html:29 -msgid "Temperature" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:205 -msgid "Temperature reading" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:213 core/models.py:673 -#: core/models.py:685 core/models.py:686 core/models.py:689 -#: core/templates/core/weight_confirm_delete.html:7 -#: core/templates/core/weight_form.html:13 -#: core/templates/core/weight_list.html:4 -#: core/templates/core/weight_list.html:7 -#: core/templates/core/weight_list.html:12 -#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 -#: reports/graphs/weight_change.py:30 -#: reports/templates/reports/report_list.html:22 -#: reports/templates/reports/weight_change.html:4 -#: reports/templates/reports/weight_change.html:8 -msgid "Weight" -msgstr "Vikt" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:219 +#: babybuddy/templates/babybuddy/nav-dropdown.html:199 msgid "Weight entry" msgstr "Viktinlägg" -#: babybuddy/templates/babybuddy/nav-dropdown.html:233 +#: babybuddy/templates/babybuddy/nav-dropdown.html:255 msgid "Activities" msgstr "Aktiviteter" -#: babybuddy/templates/babybuddy/nav-dropdown.html:240 +#: babybuddy/templates/babybuddy/nav-dropdown.html:262 #: reports/graphs/diaperchange_lifetimes.py:27 msgid "Changes" msgstr "Ändringar" -#: babybuddy/templates/babybuddy/nav-dropdown.html:246 +#: babybuddy/templates/babybuddy/nav-dropdown.html:268 msgid "Change" msgstr "Ändring" -#: babybuddy/templates/babybuddy/nav-dropdown.html:253 +#: babybuddy/templates/babybuddy/nav-dropdown.html:275 #: babybuddy/templates/babybuddy/welcome.html:34 core/models.py:313 #: core/templates/core/feeding_confirm_delete.html:7 #: core/templates/core/feeding_form.html:13 @@ -429,33 +246,15 @@ msgstr "Ändring" msgid "Feedings" msgstr "Matningar" -#: babybuddy/templates/babybuddy/nav-dropdown.html:267 core/models.py:437 -#: core/models.py:438 core/models.py:441 -#: core/templates/core/pumping_confirm_delete.html:7 -#: core/templates/core/pumping_form.html:13 -#: core/templates/core/pumping_list.html:4 -#: core/templates/core/pumping_list.html:7 -#: core/templates/core/pumping_list.html:12 -#: reports/templates/reports/pumping_amounts.html:4 -#: reports/templates/reports/pumping_amounts.html:8 -msgid "Pumping" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:273 -#, fuzzy -#| msgid "Weight entry" -msgid "Pumping entry" -msgstr "Viktinlägg" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:286 +#: babybuddy/templates/babybuddy/nav-dropdown.html:294 msgid "Sleep entry" msgstr "Sömninlägg" -#: babybuddy/templates/babybuddy/nav-dropdown.html:299 +#: babybuddy/templates/babybuddy/nav-dropdown.html:307 msgid "Tummy Time entry" msgstr "Magläge-inlägg" -#: babybuddy/templates/babybuddy/nav-dropdown.html:323 +#: babybuddy/templates/babybuddy/nav-dropdown.html:346 #: babybuddy/templates/babybuddy/user_list.html:17 #: babybuddy/templates/babybuddy/user_password_form.html:7 #: babybuddy/templates/babybuddy/user_settings_form.html:7 core/models.py:556 @@ -463,23 +262,23 @@ msgstr "Magläge-inlägg" msgid "User" msgstr "Användare" -#: babybuddy/templates/babybuddy/nav-dropdown.html:325 +#: babybuddy/templates/babybuddy/nav-dropdown.html:348 msgid "Password" msgstr "Lösenord" -#: babybuddy/templates/babybuddy/nav-dropdown.html:329 +#: babybuddy/templates/babybuddy/nav-dropdown.html:352 msgid "Logout" msgstr "Logga ut" -#: babybuddy/templates/babybuddy/nav-dropdown.html:332 +#: babybuddy/templates/babybuddy/nav-dropdown.html:355 msgid "Site" msgstr "Sidan" -#: babybuddy/templates/babybuddy/nav-dropdown.html:333 +#: babybuddy/templates/babybuddy/nav-dropdown.html:356 msgid "API Browser" msgstr "API-bläddrare" -#: babybuddy/templates/babybuddy/nav-dropdown.html:335 +#: babybuddy/templates/babybuddy/nav-dropdown.html:358 #: babybuddy/templates/babybuddy/user_confirm_delete.html:7 #: babybuddy/templates/babybuddy/user_form.html:13 #: babybuddy/templates/babybuddy/user_list.html:4 @@ -487,15 +286,19 @@ msgstr "API-bläddrare" msgid "Users" msgstr "Användare" -#: babybuddy/templates/babybuddy/nav-dropdown.html:338 +#: babybuddy/templates/babybuddy/nav-dropdown.html:250 +msgid "Backend Admin" +msgstr "Systemadministration" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:361 msgid "Support" msgstr "Support" -#: babybuddy/templates/babybuddy/nav-dropdown.html:340 +#: babybuddy/templates/babybuddy/nav-dropdown.html:363 msgid "Source Code" msgstr "Källkod" -#: babybuddy/templates/babybuddy/nav-dropdown.html:342 +#: babybuddy/templates/babybuddy/nav-dropdown.html:365 msgid "Chat / Support" msgstr "Chatt / Support" @@ -506,7 +309,6 @@ msgstr "Chatt / Support" #: core/templates/timeline/_timeline.html:73 #: dashboard/templates/cards/feeding_day.html:43 #: dashboard/templates/cards/feeding_last_method.html:34 -#: dashboard/templates/cards/sleep_recent.html:43 #: dashboard/templates/cards/statistics.html:34 msgid "Previous" msgstr "Föregående" @@ -518,7 +320,6 @@ msgstr "Föregående" #: core/templates/timeline/_timeline.html:80 #: dashboard/templates/cards/feeding_day.html:47 #: dashboard/templates/cards/feeding_last_method.html:38 -#: dashboard/templates/cards/sleep_recent.html:47 #: dashboard/templates/cards/statistics.html:38 msgid "Next" msgstr "Nästa" @@ -574,13 +375,8 @@ msgstr "Ta bort" #: core/templates/core/timer_confirm_delete.html:17 #: core/templates/core/tummytime_confirm_delete.html:14 #: core/templates/core/weight_confirm_delete.html:14 -#, python-format -msgid "" -"

Are you sure you want to delete %(object)s?

" -msgstr "" -"

Är du säker på att du vill ta bort %(object)s?

" +msgid "

Are you sure you want to delete %(object)s?

" +msgstr "

Är du säker på att du vill ta bort %(object)s?

" #: babybuddy/templates/babybuddy/user_confirm_delete.html:19 #: core/templates/core/bmi_confirm_delete.html:18 @@ -636,7 +432,6 @@ msgstr "Uppdatera" #: core/templates/core/timer_form.html:18 #: core/templates/core/tummytime_form.html:23 #: core/templates/core/weight_form.html:23 -#, python-format msgid "

Update %(object)s

" msgstr "

Uppdatera %(object)s

" @@ -666,7 +461,7 @@ msgstr "Aktiv" #: babybuddy/templates/babybuddy/user_list.html:23 #: core/templates/core/bmi_list.html:24 core/templates/core/bmi_list.html:38 #: core/templates/core/child_list.html:28 -#: core/templates/core/child_list.html:43 +#: core/templates/core/child_list.html:48 #: core/templates/core/diaperchange_list.html:24 #: core/templates/core/diaperchange_list.html:40 #: core/templates/core/feeding_list.html:24 @@ -704,6 +499,11 @@ msgstr "Byt lösenord" msgid "User Settings" msgstr "Användarinställningar" +#: babybuddy/templates/babybuddy/messages.html:23 +#: babybuddy/templates/babybuddy/user_settings_form.html:26 +msgid "Error: Some fields have errors. See below for details." +msgstr "Fel: Vissa fält innehåller felaktigheter. Se nedan för detaljer." + #: babybuddy/templates/babybuddy/user_settings_form.html:33 msgid "User Profile" msgstr "Användarprofil" @@ -730,12 +530,9 @@ msgid "Welcome to Baby Buddy!" msgstr "Välkommen till Baby Buddy!" #: babybuddy/templates/babybuddy/welcome.html:14 -msgid "" -"Learn about and predict baby's needs without (as much) guess work " -"by using Baby Buddy to track —" -msgstr "" -"Lär dig om och förutsäga barnets behov utan (så mycket) " -"gissningsarbete genom att använda Baby Buddy för att spåra —" +msgid "Learn about and predict baby's needs without\n" +" (as much) guess work by using Baby Buddy to track —" +msgstr "Lär dig om och förutsäga barnets behov utan (så mycket) gissningsarbete genom att använda Baby Buddy för att spåra —" #: babybuddy/templates/babybuddy/welcome.html:26 core/models.py:249 #: core/templates/core/diaperchange_confirm_delete.html:7 @@ -747,20 +544,14 @@ msgstr "" msgid "Diaper Changes" msgstr "Blöjbyten" -#: babybuddy/templates/babybuddy/welcome.html:56 -msgid "" -"As the amount of entries grows, Baby Buddy will help parents and caregivers " -"to identify small patterns in baby's habits using the dashboard and graphs. " -"Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and " -"dads with 2AM feedings and changings. To get started, just click the button " -"below to add your first (or second, third, etc.) child!" -msgstr "" -"När antalet inlägg ökar, hjälper Baby Buddy föräldrar och vårdgivare " -"identifierar små mönster i barnens vanormed hjälp av instrumentpanelen och " -"graferna. Baby Buddy är mobilvänlig och använder ett mörkt tema för att " -"hjälpa trötta mammor och pappor med kl02:00-matningar och blöjbyten. För att " -"komma igång, klicka bara på knappen nedan för att lägga till din första " -"(eller andra, tredje, etc.) barn!" +#: babybuddy/templates/babybuddy/welcome.html:54 +msgid "As the amount of entries grows, Baby Buddy will help\n" +" parents and caregivers to identify small patterns in baby's habits\n" +" using the dashboard and graphs. Baby Buddy is mobile-friendly and\n" +" uses a dark theme to help weary moms and dads with 2AM feedings and\n" +" changings. To get started, just click the button below to add your\n" +" first (or second, third, etc.) child!" +msgstr "När antalet inlägg ökar, hjälper Baby Buddy föräldrar och vårdgivare identifierar små mönster i barnens vanormed hjälp av instrumentpanelen och graferna. Baby Buddy är mobilvänlig och använder ett mörkt tema för att hjälpa trötta mammor och pappor med kl02:00-matningar och blöjbyten. För att komma igång, klicka bara på knappen nedan för att lägga till din första (eller andra, tredje, etc.) barn!" #: babybuddy/templates/babybuddy/welcome.html:68 #: core/templates/core/child_form.html:8 core/templates/core/child_form.html:18 @@ -768,52 +559,6 @@ msgstr "" msgid "Add a Child" msgstr "Lägg till barn" -#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 -msgid "Bad Request" -msgstr "" - -#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 -msgid "Permission Denied" -msgstr "Åtkomst nekad" - -#: babybuddy/templates/error/403.html:9 -msgid "" -"You do not have permission to access this resource. Contact a site " -"administrator for assistance." -msgstr "" -"Du har inte behörighet att komma åt den här resursen. Kontakta " -"webbplatsadministratören för hjälp." - -#: babybuddy/templates/error/403_csrf_bad_origin.html:14 -msgid "How to Fix" -msgstr "" - -#: babybuddy/templates/error/403_csrf_bad_origin.html:15 -#, python-format -msgid "" -"Add %(origin)s to the CSRF_TRUSTED_ORIGINS " -"environment variable. If multiple origins are required separate with commas." -msgstr "" - -#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 -msgid "Page Not Found" -msgstr "" - -#: babybuddy/templates/error/404.html:9 -#, python-format -msgid "The path %(request_path)s does not exist." -msgstr "" - -#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 -msgid "Server Error" -msgstr "" - -#: babybuddy/templates/error/base.html:14 -#, fuzzy -#| msgid "Welcome to Baby Buddy!" -msgid "Return to Baby Buddy" -msgstr "Välkommen till Baby Buddy!" - #: babybuddy/templates/registration/login.html:32 msgid "Login" msgstr "Logga in" @@ -838,11 +583,10 @@ msgstr "Logga in" msgid "Password Reset" msgstr "Återställ lösenord" -#: babybuddy/templates/registration/password_reset_confirm.html:13 -msgid "" -"Oh snap! The two passwords did not match. Please try again." -msgstr "" -"Ajdå! Lösenorden stämmer inte överens. Vänligen försök igen." +#: babybuddy/templates/registration/password_reset_confirm.html:12 +msgid "

Oh snap! The\n" +" two passwords did not match. Please try again.

" +msgstr "

Ajdå! Lösenorden stämmer inte överens. Vänligen försök igen.

" #: babybuddy/templates/registration/password_reset_confirm.html:22 msgid "Enter your new password in each field below." @@ -857,73 +601,34 @@ msgstr "Återställ lösenord" msgid "Reset Email Sent" msgstr "E-post med lösenordsåterställning skickad" -#: babybuddy/templates/registration/password_reset_done.html:9 -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Vi har mailat dig instruktioner för att ställa in ditt lösenord, om ett " -"konto finns med det e-postmeddelande du angav. Du bör få detta inom kort." - -#: babybuddy/templates/registration/password_reset_done.html:15 -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -" Om du inte får ett e-postmeddelande, se till att du har anget adressen du " -"registrerade med och kontrollera din skräppost mapp." - -#: babybuddy/templates/registration/password_reset_email.html:2 -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:4 -msgid "Please go to the following page and choose a new password:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:8 -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:10 -msgid "Thanks for using Baby Buddy!" -msgstr "" +#: babybuddy/templates/registration/password_reset_done.html:8 +msgid "

We've emailed you instructions for setting your\n" +" password, if an account exists with the email you entered. You\n" +" should receive them shortly.

\n" +"

If you don't receive an email, please make sure you've\n" +" entered the address you registered with, and check your spam\n" +" folder.

" +msgstr "

Vi har mailat dig instruktioner för att ställa in ditt lösenord, om ett konto finns med det e-postmeddelande du angav. Du bör få detta inom kort.

Om du inte får ett e-postmeddelande, se till att du har anget adressen du registrerade med och kontrollera din skräppost mapp. " #: babybuddy/templates/registration/password_reset_form.html:4 msgid "Forgot Password" msgstr "Glömt lösenord" -#: babybuddy/templates/registration/password_reset_form.html:9 -msgid "" -"Enter your account email address in the form below. If the address is valid, " -"you will receive instructions for resetting your password." -msgstr "" -"Ange ditt kontos e-postadress i formuläret nedan. Om e-postadressen är " -"korrekt så skickar vi instruktioner för att återställa lösenordet." - -#: babybuddy/views.py:43 -msgid "Forbidden" -msgstr "" - -#: babybuddy/views.py:44 -msgid "CSRF verification failed. Request aborted." -msgstr "" +#: babybuddy/templates/registration/password_reset_form.html:8 +msgid "

Enter your account email address in the\n" +" form below. If the address is valid, you will receive instructions for\n" +" resetting your password.

" +msgstr "

Ange ditt kontos e-postadress i formuläret nedan. Om e-postadressen är korrekt så skickar vi instruktioner för att återställa lösenordet.

" #: babybuddy/views.py:102 -#, python-format msgid "User %(username)s added!" msgstr "Användare %(username)s har lagts till!" #: babybuddy/views.py:113 -#, python-format msgid "User %(username)s updated." msgstr "Användare %(username)s uppdaterad." #: babybuddy/views.py:125 -#, python-brace-format msgid "User {user} deleted." msgstr "Användare {user} borttagen." @@ -939,20 +644,10 @@ msgstr "Användare API-nyckel genererad." msgid "Settings saved!" msgstr "Inställningar sparade!" -#: core/filters.py:11 core/models.py:96 core/models.py:115 -msgid "Tag" -msgstr "" - #: core/forms.py:120 msgid "Name does not match child name." msgstr "Namnet stämmer inte överens med barnets namn." -#: core/forms.py:136 -msgid "" -"Click on the tags to add (+) or remove (-) tags or use the text editor to " -"create new tags." -msgstr "" - #: core/models.py:28 msgid "Date can not be in the future." msgstr "Datum kan inte sättas i framtiden." @@ -973,45 +668,6 @@ msgstr "En annan post korsar den angivna tidsperioden." msgid "Date/time can not be in the future." msgstr "Datum / tid kan inte anges i framtiden." -#: core/models.py:84 core/models.py:237 -#: core/templates/core/diaperchange_list.html:30 -msgid "Color" -msgstr "Färg" - -#: core/models.py:90 -#, fuzzy -#| msgid "Last Name" -msgid "Last used" -msgstr "Efternamn" - -#: core/models.py:97 core/templates/core/bmi_list.html:30 -#: core/templates/core/diaperchange_list.html:32 -#: core/templates/core/feeding_list.html:35 -#: core/templates/core/head_circumference_list.html:30 -#: core/templates/core/height_list.html:30 -#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 -#: core/templates/core/temperature_list.html:30 -#: core/templates/core/tummytime_list.html:31 -#: core/templates/core/weight_list.html:30 -msgid "Tags" -msgstr "" - -#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 -#: core/templates/core/bmi_list.html:25 -#: core/templates/core/feeding_list.html:25 -#: core/templates/core/head_circumference_list.html:25 -#: core/templates/core/height_list.html:25 -#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 -#: reports/graphs/diaperchange_amounts.py:37 -#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 -#: reports/graphs/feeding_duration.py:56 -#: reports/graphs/head_circumference_change.py:28 -#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:60 -#: reports/graphs/sleep_pattern.py:153 reports/graphs/sleep_totals.py:59 -#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 -msgid "Date" -msgstr "Datum" - #: core/models.py:163 msgid "First name" msgstr "Förnamn" @@ -1066,11 +722,14 @@ msgstr "Grönt" msgid "Yellow" msgstr "Gult" -#: core/models.py:239 core/models.py:303 core/models.py:428 -#: core/templates/core/diaperchange_list.html:31 -#: core/templates/core/pumping_list.html:29 -msgid "Amount" -msgstr "Mängd" +#: core/models.py:84 core/models.py:237 +#: core/templates/core/diaperchange_list.html:30 +msgid "Color" +msgstr "Färg" + +#: core/models.py:180 +msgid "Wet and/or solid is required." +msgstr "Våt och / eller fast krävs." #: core/models.py:276 core/models.py:453 core/models.py:543 core/models.py:632 msgid "Start time" @@ -1096,14 +755,6 @@ msgstr "Bröstmjölk" msgid "Formula" msgstr "Formula" -#: core/models.py:285 -msgid "Fortified breast milk" -msgstr "Bröstmjölk" - -#: core/models.py:286 -msgid "Solid food" -msgstr "" - #: core/models.py:289 core/templates/core/feeding_list.html:30 msgid "Type" msgstr "Typ" @@ -1120,25 +771,19 @@ msgstr "Vänstra bröstet" msgid "Right breast" msgstr "Högra bröstet" -#: core/models.py:296 -msgid "Both breasts" -msgstr "Båda brösten" - -#: core/models.py:297 -msgid "Parent fed" -msgstr "" - -#: core/models.py:298 -msgid "Self fed" -msgstr "" - #: core/models.py:301 core/templates/core/feeding_list.html:29 msgid "Method" msgstr "Metod" -#: core/models.py:452 -msgid "Napping" -msgstr "" +#: core/models.py:239 core/models.py:303 core/models.py:428 +#: core/templates/core/diaperchange_list.html:31 +#: core/templates/core/pumping_list.html:29 +msgid "Amount" +msgstr "Mängd" + +#: core/models.py:243 +msgid "Only \"Bottle\" method is allowed with \"Formula\" type." +msgstr "Endast \"Flask\" -metoden är tillåten med \"Formel\" -typ." #: core/models.py:540 core/templates/core/timer_list.html:25 msgid "Name" @@ -1158,7 +803,6 @@ msgid "Timers" msgstr "Timers" #: core/models.py:568 -#, python-brace-format msgid "Timer #{id}" msgstr "Timer #{id}" @@ -1166,28 +810,21 @@ msgstr "Timer #{id}" msgid "Milestone" msgstr "Milstolpe" -#: core/templates/core/bmi_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Sleep Entry" -msgid "Delete a BMI Entry" -msgstr "Radera sömn-inlägg" - -#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 -#: core/templates/core/bmi_form.html:27 -#, fuzzy -#| msgid "Add a Sleep Entry" -msgid "Add a BMI Entry" -msgstr "Lägg till sömn-inlägg" - -#: core/templates/core/bmi_list.html:15 -msgid "Add BMI" -msgstr "" - -#: core/templates/core/bmi_list.html:70 -#, fuzzy -#| msgid "No timer entries found." -msgid "No BMI entries found." -msgstr "Inga timer-inlägg funna." +#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 +#: core/templates/core/bmi_list.html:25 +#: core/templates/core/feeding_list.html:25 +#: core/templates/core/head_circumference_list.html:25 +#: core/templates/core/height_list.html:25 +#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 +#: reports/graphs/diaperchange_amounts.py:37 +#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 +#: reports/graphs/feeding_duration.py:56 +#: reports/graphs/head_circumference_change.py:28 +#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:58 +#: reports/graphs/sleep_pattern.py:151 reports/graphs/sleep_totals.py:59 +#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 +msgid "Date" +msgstr "Datum" #: core/templates/core/child_confirm_delete.html:4 msgid "Delete a Child" @@ -1195,8 +832,7 @@ msgstr "Radera ett barn" #: core/templates/core/child_confirm_delete.html:20 msgid "To confirm this action. Type the full name of the child below." -msgstr "" -"För att bekräfta denna åtgärd. Skriv hela barnets fullständiga namn nedan." +msgstr "För att bekräfta denna åtgärd. Skriv hela barnets fullständiga namn nedan." #: core/templates/core/child_detail.html:23 #: dashboard/templates/dashboard/dashboard.html:32 @@ -1208,15 +844,15 @@ msgstr "Född" msgid "Age" msgstr "Ålder" -#: core/templates/core/child_list.html:15 -msgid "Add Child" -msgstr "" +#: core/templates/timeline/_timeline.html:38 +msgid "%(since)s ago (%(time)s)" +msgstr "%(since)s sedan (%(time)s)" #: core/templates/core/child_list.html:27 msgid "Birth Date" msgstr "Födelsedatum" -#: core/templates/core/child_list.html:62 +#: core/templates/core/child_list.html:67 msgid "No children found." msgstr "Inga barn funna." @@ -1241,18 +877,14 @@ msgstr "Lägg till blöjbyte" msgid "Add" msgstr "Lägg till" -#: core/templates/core/diaperchange_list.html:15 -msgid "Add Diaper Change" -msgstr "" - -#: core/templates/core/diaperchange_list.html:29 -msgid "Contents" -msgstr "" - #: core/templates/core/diaperchange_list.html:77 msgid "No diaper changes found." msgstr "Inga blöjbyten funna." +#: core/templates/core/diaperchange_list.html:63 +msgid "Add a Change" +msgstr "Lägg till byte" + #: core/templates/core/feeding_confirm_delete.html:4 msgid "Delete a Feeding" msgstr "Radera matning" @@ -1266,10 +898,6 @@ msgstr "Uppdatera matning" msgid "Add a Feeding" msgstr "Lägg till matning" -#: core/templates/core/feeding_list.html:15 -msgid "Add Feeding" -msgstr "" - #: core/templates/core/feeding_list.html:33 msgid "Amt." msgstr "Amt." @@ -1278,56 +906,6 @@ msgstr "Amt." msgid "No feedings found." msgstr "Ingen matning funnen." -#: core/templates/core/head_circumference_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Tummy Time Entry" -msgid "Delete a Head Circumference Entry" -msgstr "Radera magtränings-inlägg" - -#: core/templates/core/head_circumference_form.html:8 -#: core/templates/core/head_circumference_form.html:17 -#: core/templates/core/head_circumference_form.html:27 -#, fuzzy -#| msgid "Add a Temperature Entry" -msgid "Add a Head Circumference Entry" -msgstr "Lägg till sömn-inlägg" - -#: core/templates/core/head_circumference_list.html:15 -msgid "Add Head Circumference" -msgstr "" - -#: core/templates/core/head_circumference_list.html:70 -#, fuzzy -#| msgid "No timer entries found." -msgid "No head circumference entries found." -msgstr "Inga timer-inlägg funna." - -#: core/templates/core/height_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Weight Entry" -msgid "Delete a Height Entry" -msgstr "Radera viktinlägg" - -#: core/templates/core/height_form.html:8 -#: core/templates/core/height_form.html:17 -#: core/templates/core/height_form.html:27 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add a Height Entry" -msgstr "Lägg till viktinlägg" - -#: core/templates/core/height_list.html:15 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add Height" -msgstr "Lägg till viktinlägg" - -#: core/templates/core/height_list.html:70 -#, fuzzy -#| msgid "No weight entries found." -msgid "No height entries found." -msgstr "Inga viktinlägg funna." - #: core/templates/core/note_confirm_delete.html:4 msgid "Delete a Note" msgstr "Radera anteckning" @@ -1340,53 +918,10 @@ msgstr "Uppdatera anteckning" msgid "Add a Note" msgstr "Lägg till anteckning" -#: core/templates/core/note_list.html:15 -msgid "Add Note" -msgstr "" - #: core/templates/core/note_list.html:64 msgid "No notes found." msgstr "Inga anteckningar funna." -#: core/templates/core/pumping_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Weight Entry" -msgid "Delete a Pumping Entry" -msgstr "Radera viktinlägg" - -#: core/templates/core/pumping_form.html:8 -#: core/templates/core/pumping_form.html:17 -#: core/templates/core/pumping_form.html:27 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add a Pumping Entry" -msgstr "Lägg till viktinlägg" - -#: core/templates/core/pumping_list.html:15 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add Pumping Entry" -msgstr "Lägg till viktinlägg" - -#: core/templates/core/pumping_list.html:66 -#, fuzzy -#| msgid "No timer entries found." -msgid "No pumping entries found." -msgstr "Inga timer-inlägg funna." - -#: core/templates/core/quick_timer_nav.html:9 -#: core/templates/core/quick_timer_nav.html:29 -#: core/templates/core/timer_nav.html:37 -msgid "Quick Start Timer" -msgstr "Snabbstarta timer" - -#: core/templates/core/quick_timer_nav.html:19 -#: core/templates/core/timer_nav.html:28 -#, fuzzy -#| msgid "Quick Start Timer" -msgid "Quick Start Timer For…" -msgstr "Snabbstarta timer" - #: core/templates/core/sleep_confirm_delete.html:4 msgid "Delete a Sleep Entry" msgstr "Radera sömn-inlägg" @@ -1399,10 +934,6 @@ msgstr "Uppdatera sömn-inlägg" msgid "Add a Sleep Entry" msgstr "Lägg till sömn-inlägg" -#: core/templates/core/sleep_list.html:15 -msgid "Add Sleep" -msgstr "" - #: core/templates/core/sleep_list.html:25 #: core/templates/core/timer_form.html:12 #: core/templates/core/timer_list.html:24 @@ -1424,47 +955,10 @@ msgstr "Tupplur" msgid "No sleep entries found." msgstr "Inga sömn-inlägg funna." -#: core/templates/core/temperature_confirm_delete.html:4 -msgid "Delete a Temperature Reading" -msgstr "Radera matning" - -#: core/templates/core/temperature_form.html:8 -#: core/templates/core/temperature_form.html:17 -msgid "Add a Temperature Reading" -msgstr "Lägg till matning" - -#: core/templates/core/temperature_form.html:27 -msgid "Add a Temperature Entry" -msgstr "Lägg till sömn-inlägg" - -#: core/templates/core/temperature_list.html:15 -msgid "Add Temperature Reading" -msgstr "" - -#: core/templates/core/temperature_list.html:70 -msgid "No temperature entries found." -msgstr "Inga timer-inlägg funna." - #: core/templates/core/timer_confirm_delete.html:5 -#, python-format msgid "Delete %(object)s" msgstr "Radera %(object)s" -#: core/templates/core/timer_confirm_delete_inactive.html:5 -msgid "Delete All Inactive Timers" -msgstr "" - -#: core/templates/core/timer_confirm_delete_inactive.html:10 -msgid "Delete Inactive" -msgstr "" - -#: core/templates/core/timer_confirm_delete_inactive.html:17 -#, python-format -msgid "Are you sure you want to delete %(number)s inactive timer?" -msgid_plural "Are you sure you want to delete %(number)s inactive timers?" -msgstr[0] "" -msgstr[1] "" - #: core/templates/core/timer_detail.html:28 msgid "Started" msgstr "Startad" @@ -1473,25 +967,16 @@ msgstr "Startad" msgid "Stopped" msgstr "Stoppad" -#: core/templates/core/timer_detail.html:34 -#, python-format -msgid "%(timer)s created by %(user)s" -msgstr " %(timer)s skapad av %(user)s" +#: core/templates/core/timer_detail.html:26 +msgid "%(timer)s created by %(object.user)s" +msgstr " %(timer)s skapad av %(object.user)s" #: core/templates/core/timer_detail.html:63 msgid "Timer actions" msgstr "Timer-åtgärder" -#: core/templates/core/timer_detail.html:77 -msgid "Restart timer" -msgstr "" - -#: core/templates/core/timer_detail.html:84 -msgid "Delete timer" -msgstr "" - #: core/templates/core/timer_form.html:22 -#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:15 +#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:23 msgid "Start Timer" msgstr "Starta timer" @@ -1499,30 +984,30 @@ msgstr "Starta timer" msgid "No timer entries found." msgstr "Inga timer-inlägg funna." -#: core/templates/core/timer_list.html:68 -msgid "Delete Inactive Timers" -msgstr "" +#: babybuddy/templates/babybuddy/nav-dropdown.html:32 +#: core/templates/core/timer_nav.html:18 +msgid "Quick Start Timer" +msgstr "Snabbstarta timer" -#: core/templates/core/timer_nav.html:20 +#: core/templates/core/timer_nav.html:28 msgid "View Timers" msgstr "Visa timers" -#: core/templates/core/timer_nav.html:44 +#: core/templates/core/timer_nav.html:32 #: dashboard/templates/cards/timer_list.html:6 msgid "Active Timers" msgstr "Aktiva timers" -#: core/templates/core/timer_nav.html:50 +#: core/templates/core/timer_nav.html:38 #: dashboard/templates/cards/diaperchange_last.html:17 #: dashboard/templates/cards/diaperchange_types.html:12 #: dashboard/templates/cards/feeding_day.html:20 #: dashboard/templates/cards/feeding_day.html:52 #: dashboard/templates/cards/feeding_last.html:17 #: dashboard/templates/cards/feeding_last_method.html:43 +#: dashboard/templates/cards/sleep_day.html:14 #: dashboard/templates/cards/sleep_last.html:17 #: dashboard/templates/cards/sleep_naps_day.html:18 -#: dashboard/templates/cards/sleep_recent.html:20 -#: dashboard/templates/cards/sleep_recent.html:52 #: dashboard/templates/cards/tummytime_day.html:14 msgid "None" msgstr "Inga" @@ -1540,10 +1025,6 @@ msgstr "Update magtränings-inlägg" msgid "Add a Tummy Time Entry" msgstr "Lägg till magtränings-inlägg" -#: core/templates/core/tummytime_list.html:15 -msgid "Add Tummy Time" -msgstr "" - #: core/templates/core/tummytime_list.html:67 msgid "No tummy time entries found." msgstr "Inga magtränings-inlägg funna." @@ -1558,233 +1039,76 @@ msgstr "Radera viktinlägg" msgid "Add a Weight Entry" msgstr "Lägg till viktinlägg" -#: core/templates/core/weight_list.html:15 -msgid "Add Weight" -msgstr "" - #: core/templates/core/weight_list.html:70 msgid "No weight entries found." msgstr "Inga viktinlägg funna." -#: core/templates/core/widget_tag_editor.html:22 -#, fuzzy -#| msgid "Last name" -msgid "Tag name" -msgstr "Efternamn" - -#: core/templates/core/widget_tag_editor.html:27 -msgid "Recently used:" -msgstr "" - -#: core/templates/core/widget_tag_editor.html:45 -msgctxt "Error modal" -msgid "Error" -msgstr "" - -#: core/templates/core/widget_tag_editor.html:50 -msgctxt "Error modal" -msgid "An error ocurred." -msgstr "" - -#: core/templates/core/widget_tag_editor.html:51 -msgctxt "Error modal" -msgid "Invalid tag name." -msgstr "" - -#: core/templates/core/widget_tag_editor.html:52 -msgctxt "Error modal" -msgid "Failed to create tag." -msgstr "" - -#: core/templates/core/widget_tag_editor.html:53 -msgctxt "Error modal" -msgid "Failed to obtain tag data." -msgstr "" - -#: core/templates/core/widget_tag_editor.html:58 -msgctxt "Error modal" -msgid "Close" -msgstr "" - -#: core/templates/timeline/_timeline.html:38 -#, python-format -msgid "%(since)s ago (%(time)s)" -msgstr "%(since)s sedan (%(time)s)" - -#: core/templates/timeline/_timeline.html:44 -#, fuzzy, python-format -#| msgid "Duration too long." -msgid "Duration: %(duration)s" -msgstr "Varaktigheten är för lång." - -#: core/templates/timeline/_timeline.html:53 -#, python-format -msgid "%(since)s since previous" -msgstr "" - -#: core/templates/timeline/_timeline.html:61 -#: dashboard/templates/dashboard/child_button_group.html:20 -msgid "Edit" -msgstr "" - -#: core/templates/timeline/_timeline.html:85 -msgid "No events" -msgstr "" - -#: core/templatetags/datetime.py:60 -msgid "Today" -msgstr "idag" - -#: core/templatetags/datetime.py:75 -msgid "{}, {}" -msgstr "" - -#: core/templatetags/duration.py:25 -msgid "0 days" -msgstr "" - -#: core/templatetags/duration.py:111 -#: dashboard/templates/cards/diaperchange_types.html:49 -msgid "today" -msgstr "idag" - -#: core/templatetags/duration.py:113 -#: dashboard/templates/cards/diaperchange_types.html:51 -msgid "yesterday" -msgstr "igår" - -#: core/templatetags/duration.py:116 -#, fuzzy -#| msgid "%(key)s days ago" -msgid " days ago" -msgstr "%(key)s dagar sedan" - -#: core/timeline.py:53 -#, python-format -msgid "%(child)s started tummy time!" -msgstr " %(child)s startade magträningsläge!" - -#: core/timeline.py:65 -#, python-format -msgid "%(child)s finished tummy time." -msgstr "%(child)s avslutade magträningsläge." - -#: core/timeline.py:91 -#, python-format -msgid "%(child)s fell asleep." -msgstr "%(child)s somnade." - -#: core/timeline.py:103 -#, python-format -msgid "%(child)s woke up." -msgstr " %(child)s vaknade upp." - -#: core/timeline.py:137 -#, python-format -msgid "Amount: %(amount).0f" -msgstr "" +#: core/timeline.py:164 +msgid "%(child)s had a diaper change." +msgstr "%(child)s har ett blöjbyte." #: core/timeline.py:145 -#, python-format msgid "%(child)s started feeding." msgstr "%(child)s började matas." #: core/timeline.py:158 -#, python-format msgid "%(child)s finished feeding." msgstr "%(child)s slutade matas." -#: core/timeline.py:185 -#, fuzzy, python-format -#| msgid "%(child)s had a diaper change." -msgid "%(child)s had a %(type)s diaper change." -msgstr "%(child)s har ett blöjbyte." +#: core/timeline.py:91 +msgid "%(child)s fell asleep." +msgstr "%(child)s somnade." -#: core/utils.py:40 -#, python-format -msgid "%(hours)s hour" -msgid_plural "%(hours)s hours" -msgstr[0] "" -msgstr[1] "" +#: core/timeline.py:103 +msgid "%(child)s woke up." +msgstr " %(child)s vaknade upp." -#: core/utils.py:44 -#, python-format -msgid "%(minutes)s minute" -msgid_plural "%(minutes)s minutes" -msgstr[0] "" -msgstr[1] "" +#: core/timeline.py:53 +msgid "%(child)s started tummy time!" +msgstr " %(child)s startade magträningsläge!" -#: core/utils.py:50 -#, python-format -msgid "%(seconds)s second" -msgid_plural "%(seconds)s seconds" -msgstr[0] "" -msgstr[1] "" +#: core/timeline.py:65 +msgid "%(child)s finished tummy time." +msgstr "%(child)s avslutade magträningsläge." #: core/views.py:33 -#, python-format msgid "%(model)s entry for %(child)s added!" msgstr "%(model)s inlägg för %(child)s tillagd!" #: core/views.py:35 core/views.py:308 -#, python-format msgid "%(model)s entry added!" msgstr "%(model)s inlägg tillagd!" #: core/views.py:61 core/views.py:316 -#, python-format msgid "%(model)s entry for %(child)s updated." msgstr "%(model)s inlägg för %(child)s uppdaterad." #: core/views.py:63 -#, python-format msgid "%(model)s entry updated." msgstr "%(model)s inlägg uppdaterad." -#: core/views.py:69 core/views.py:146 -#, python-format -msgid "%(model)s entry deleted." -msgstr "%(model)s inlägg uppdaterad." - #: core/views.py:115 -#, python-format msgid "%(first_name)s %(last_name)s added!" msgstr "%(first_name)s %(last_name)s tillagd!" -#: core/views.py:366 -#, python-format -msgid "%(model)s reading added!" -msgstr "%(model)s inlägg tillagd!" - -#: core/views.py:374 -#, python-format -msgid "%(model)s reading for %(child)s updated." -msgstr "%(model)s inlägg för %(child)s uppdaterad." - -#: core/views.py:483 -#, python-format +#: core/views.py:478 msgid "%(timer)s stopped." msgstr "%(timer)s stoppad." -#: core/views.py:506 -msgid "All inactive timers deleted." -msgstr "" - -#: core/views.py:516 -msgid "No inactive timers exist." -msgstr "" - #: dashboard/templates/cards/diaperchange_last.html:6 msgid "Last Diaper Change" msgstr "Senaste blöjbyte" -#: dashboard/templates/cards/diaperchange_last.html:12 -#: dashboard/templates/cards/feeding_last.html:12 -#: dashboard/templates/cards/sleep_last.html:12 -#: dashboard/templates/cards/tummytime_last.html:13 -#, python-format -msgid "
%(since)s ago
%(time)s" -msgstr "" +#: dashboard/templates/cards/diaperchange_last.html:8 +#: dashboard/templates/cards/feeding_last.html:8 +#: dashboard/templates/cards/sleep_last.html:8 +#: dashboard/templates/cards/tummytime_last.html:8 +msgid "%(time)s ago" +msgstr "%(time)s sedan" + +#: dashboard/templates/cards/tummytime_last.html:18 +msgid "Never" +msgstr "Aldrig" #: dashboard/templates/cards/diaperchange_types.html:14 msgid "Past Week" @@ -1798,29 +1122,18 @@ msgstr "våt" msgid "solid" msgstr "fast" +#: dashboard/templates/cards/diaperchange_types.html:49 +msgid "today" +msgstr "idag" + +#: dashboard/templates/cards/diaperchange_types.html:51 +msgid "yesterday" +msgstr "igår" + #: dashboard/templates/cards/diaperchange_types.html:53 -#, python-format msgid "%(key)s days ago" msgstr "%(key)s dagar sedan" -#: dashboard/templates/cards/feeding_day.html:6 -msgid "Today's Feeding" -msgstr "" - -#: dashboard/templates/cards/feeding_day.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s feeding" -msgid_plural "%(counter)s feedings" -msgstr[0] "%(count)s sömn-inlägg" -msgstr[1] "%(count)s sömn-inlägg" - -#: dashboard/templates/cards/feeding_day.html:32 -#: dashboard/templates/cards/sleep_recent.html:32 -#, python-format -msgid "
%(since)s
" -msgstr "" - #: dashboard/templates/cards/feeding_last.html:6 msgid "Last Feeding" msgstr "Senaste matning" @@ -1829,45 +1142,31 @@ msgstr "Senaste matning" msgid "Last Feeding Method" msgstr "Senaste matningsmetod" -#: dashboard/templates/cards/feeding_last_method.html:19 -msgid "most recent" -msgstr "" +#: dashboard/templates/cards/sleep_day.html:6 +msgid "Today's Sleep" +msgstr "Sömn idag" -#: dashboard/templates/cards/feeding_last_method.html:21 -#, fuzzy, python-format -#| msgid "%(key)s days ago" -msgid "%(n)s feeding ago" -msgid_plural "%(n)s feedings ago" -msgstr[0] "%(key)s dagar sedan" -msgstr[1] "%(key)s dagar sedan" +#: dashboard/templates/cards/sleep_day.html:11 +#: dashboard/templates/cards/sleep_naps_day.html:13 +#: dashboard/templates/cards/tummytime_day.html:11 +msgid "None yet today" +msgstr "Ingen ännu idag" -#: dashboard/templates/cards/sleep_last.html:6 -msgid "Last Sleep" -msgstr "" +#: dashboard/templates/cards/sleep_day.html:20 +msgid "%(count)s sleep entries" +msgstr "%(count)s sömn-inlägg" + +#: dashboard/templates/cards/sleep_last.html:4 +msgid "Last Slept" +msgstr "Senaste sömn" #: dashboard/templates/cards/sleep_naps_day.html:6 msgid "Today's Naps" msgstr "Dagens tupplurer" #: dashboard/templates/cards/sleep_naps_day.html:12 -#, fuzzy, python-format -#| msgid "%(count)s nap%(plural)s" -msgid "%(count)s nap" -msgid_plural "%(count)s naps" -msgstr[0] "%(count)s tupplur%(plural)s" -msgstr[1] "%(count)s tupplur%(plural)s" - -#: dashboard/templates/cards/sleep_recent.html:6 -msgid "Recent Sleep" -msgstr "" - -#: dashboard/templates/cards/sleep_recent.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s sleep" -msgid_plural "%(counter)s sleep" -msgstr[0] "%(count)s sömn-inlägg" -msgstr[1] "%(count)s sömn-inlägg" +msgid "%(count)s nap%(plural)s" +msgstr "%(count)s tupplur%(plural)s" #: dashboard/templates/cards/statistics.html:7 msgid "Statistics" @@ -1877,29 +1176,19 @@ msgstr "Statistik" msgid "Not enough data" msgstr "Otillräcklig data" -#: dashboard/templates/cards/statistics.html:42 -msgid "No data yet" -msgstr "" - #: dashboard/templates/cards/timer_list.html:12 -#, fuzzy, python-format -#| msgid "%(count)s active timer%(plural)s" -msgid "%(count)s active timer" -msgid_plural "%(count)s active timers" -msgstr[0] "%(count)s aktiv timer%(plural)s" -msgstr[1] "%(count)s aktiv timer%(plural)s" +msgid "%(count)s active timer%(plural)s" +msgstr "%(count)s aktiv timer%(plural)s" -#: dashboard/templates/cards/timer_list.html:27 -#, python-format -msgid "Started by %(user)s at %(start)s" -msgstr "Startad av %(user)s vid %(start)s" +#: dashboard/templates/cards/timer_list.html:19 +msgid "Started by %(instance.user)s at %(start)s" +msgstr "Startad av %(instance.user)s vid %(start)s" #: dashboard/templates/cards/tummytime_day.html:6 msgid "Today's Tummy Time" msgstr "Dagens magträningstid" #: dashboard/templates/cards/tummytime_day.html:22 -#, python-format msgid "%(duration)s at %(end)s" msgstr "%(duration)s vid %(end)s" @@ -1907,103 +1196,65 @@ msgstr "%(duration)s vid %(end)s" msgid "Last Tummy Time" msgstr "Senaste magtränningstid" -#: dashboard/templates/cards/tummytime_last.html:18 -msgid "Never" -msgstr "Aldrig" - #: dashboard/templates/dashboard/child_button_group.html:3 msgid "Child actions" msgstr "Barnåtgärder" -#: dashboard/templates/dashboard/child_button_group.html:12 -#: reports/templates/reports/base.html:9 -#: reports/templates/reports/report_list.html:4 -msgid "Reports" -msgstr "Rapporter" +#: reports/templates/reports/diaperchange_types.html:4 +#: reports/templates/reports/diaperchange_types.html:8 +#: reports/templates/reports/report_list.html:12 +msgid "Diaper Change Types" +msgstr "Blöjbytes-typer" -#: dashboard/templatetags/cards.py:357 -msgid "Average nap duration" -msgstr "Genomsnittlig tupplurslängd" +#: reports/templates/reports/diaperchange_lifetimes.html:4 +#: reports/templates/reports/diaperchange_lifetimes.html:8 +#: reports/templates/reports/report_list.html:13 +msgid "Diaper Lifetimes" +msgstr "Blöjhållbarhet" -#: dashboard/templatetags/cards.py:364 -msgid "Average naps per day" -msgstr "Genomsnittlig mängd tupplurer per dag" +#: reports/templates/reports/report_list.html:15 +msgid "Feeding Durations (Average)" +msgstr "Matningstid (Genomsnittlig)" -#: dashboard/templatetags/cards.py:374 -msgid "Average sleep duration" -msgstr "Genomsnittlig sömnlängd" +#: reports/templates/reports/report_list.html:19 +#: reports/templates/reports/sleep_pattern.html:4 +#: reports/templates/reports/sleep_pattern.html:8 +msgid "Sleep Pattern" +msgstr "Sömnmönster" -#: dashboard/templatetags/cards.py:381 -msgid "Average awake duration" -msgstr "Genomsnittlig vakentid" +#: reports/templates/reports/report_list.html:20 +#: reports/templates/reports/sleep_totals.html:4 +#: reports/templates/reports/sleep_totals.html:8 +msgid "Sleep Totals" +msgstr "Sömn totalt" -#: dashboard/templatetags/cards.py:391 -msgid "Weight change per week" -msgstr "Viktförändring per vecka" - -#: dashboard/templatetags/cards.py:401 -#, fuzzy -#| msgid "Weight change per week" -msgid "Height change per week" -msgstr "Viktförändring per vecka" - -#: dashboard/templatetags/cards.py:411 -#, fuzzy -#| msgid "Weight change per week" -msgid "Head circumference change per week" -msgstr "Viktförändring per vecka" - -#: dashboard/templatetags/cards.py:421 -#, fuzzy -#| msgid "Weight change per week" -msgid "BMI change per week" -msgstr "Viktförändring per vecka" - -#: dashboard/templatetags/cards.py:439 -#, fuzzy -#| msgid "Diaper change frequency" -msgid "Diaper change frequency (past 3 days)" -msgstr "Blöjbytesfrekvens" - -#: dashboard/templatetags/cards.py:443 -#, fuzzy -#| msgid "Diaper change frequency" -msgid "Diaper change frequency (past 2 weeks)" -msgstr "Blöjbytesfrekvens" - -#: dashboard/templatetags/cards.py:449 +#: dashboard/templatetags/cards.py:420 msgid "Diaper change frequency" msgstr "Blöjbytesfrekvens" -#: dashboard/templatetags/cards.py:485 -msgid "Feeding frequency (past 3 days)" -msgstr "" - -#: dashboard/templatetags/cards.py:489 -msgid "Feeding frequency (past 2 weeks)" -msgstr "" - -#: dashboard/templatetags/cards.py:495 +#: dashboard/templatetags/cards.py:466 msgid "Feeding frequency" msgstr "Matningsfrekvens" -#: reports/graphs/bmi_change.py:27 -#, fuzzy -#| msgid "Weight" -msgid "BMI" -msgstr "Vikt" +#: dashboard/templatetags/cards.py:328 +msgid "Average nap duration" +msgstr "Genomsnittlig tupplurslängd" -#: reports/graphs/diaperchange_amounts.py:27 -msgid "Diaper change amount" -msgstr "" +#: dashboard/templatetags/cards.py:335 +msgid "Average naps per day" +msgstr "Genomsnittlig mängd tupplurer per dag" -#: reports/graphs/diaperchange_amounts.py:36 -msgid "Diaper Change Amounts" -msgstr "" +#: dashboard/templatetags/cards.py:345 +msgid "Average sleep duration" +msgstr "Genomsnittlig sömnlängd" -#: reports/graphs/diaperchange_amounts.py:39 -msgid "Change amount" -msgstr "" +#: dashboard/templatetags/cards.py:352 +msgid "Average awake duration" +msgstr "Genomsnittlig vakentid" + +#: dashboard/templatetags/cards.py:362 +msgid "Weight change per week" +msgstr "Viktförändring per vecka" #: reports/graphs/diaperchange_lifetimes.py:35 msgid "Diaper Lifetimes" @@ -2025,16 +1276,6 @@ msgstr "Blöjbytestyper" msgid "Number of changes" msgstr "Antal byten" -#: reports/graphs/feeding_amounts.py:69 -#, fuzzy -#| msgid "Total Feeding Amounts" -msgid "Total Feeding Amount by Type" -msgstr "Genomsnittlig matningsvaraktighet" - -#: reports/graphs/feeding_amounts.py:72 -msgid "Feeding amount" -msgstr "Matning" - #: reports/graphs/feeding_duration.py:38 msgid "Average duration" msgstr "Genomsnittlig varaktighet" @@ -2055,33 +1296,11 @@ msgstr "Genomsnittlig varaktighet (minuter)" msgid "Number of feedings" msgstr "Antal matningar" -#: reports/graphs/head_circumference_change.py:27 -msgid "Head Circumference" -msgstr "" - -#: reports/graphs/height_change.py:27 -#, fuzzy -#| msgid "Weight" -msgid "Height" -msgstr "Vikt" - -#: reports/graphs/pumping_amounts.py:59 -#, fuzzy -#| msgid "Total Feeding Amounts" -msgid "Total Pumping Amount" -msgstr "Genomsnittlig matningsvaraktighet" - -#: reports/graphs/pumping_amounts.py:62 -#, fuzzy -#| msgid "Feeding Amounts" -msgid "Pumping Amount" -msgstr "Matningar" - -#: reports/graphs/sleep_pattern.py:150 +#: reports/graphs/sleep_pattern.py:148 msgid "Sleep Pattern" msgstr "Sömnmönster" -#: reports/graphs/sleep_pattern.py:167 +#: reports/graphs/sleep_pattern.py:165 msgid "Time of day" msgstr "Tidpunkt på dygnet" @@ -2097,43 +1316,147 @@ msgstr "Total sömn" msgid "Hours of sleep" msgstr "Timmar av sömn" -#: reports/graphs/tummytime_duration.py:34 -msgid "Total duration" -msgstr "" - -#: reports/graphs/tummytime_duration.py:41 -#: reports/graphs/tummytime_duration.py:55 -msgid "Number of sessions" -msgstr "" - -#: reports/graphs/tummytime_duration.py:50 -msgid "Total Tummy Time Durations" -msgstr "" - -#: reports/graphs/tummytime_duration.py:53 -msgid "Total duration (minutes)" -msgstr "" - #: reports/graphs/weight_change.py:27 msgid "Weight" msgstr "Vikt" -#: reports/templates/reports/diaperchange_amounts.html:4 -#: reports/templates/reports/diaperchange_amounts.html:8 -msgid "Diaper Amounts" -msgstr "" +#: reports/templates/reports/feeding_duration.html:4 +#: reports/templates/reports/feeding_duration.html:8 +msgid "Average Feeding Durations" +msgstr "Genomsnittlig matningsvaraktighet" -#: reports/templates/reports/diaperchange_lifetimes.html:4 -#: reports/templates/reports/diaperchange_lifetimes.html:8 -#: reports/templates/reports/report_list.html:13 -msgid "Diaper Lifetimes" -msgstr "Blöjhållbarhet" +#: dashboard/templates/dashboard/child_button_group.html:12 +#: reports/templates/reports/base.html:9 +#: reports/templates/reports/report_list.html:4 +msgid "Reports" +msgstr "Rapporter" -#: reports/templates/reports/diaperchange_types.html:4 -#: reports/templates/reports/diaperchange_types.html:8 -#: reports/templates/reports/report_list.html:12 -msgid "Diaper Change Types" -msgstr "Blöjbytes-typer" +#: reports/templates/reports/report_base.html:19 +msgid "There is no enough data to generate this report." +msgstr "Det finns inte tillräckligt med data för att generera denna rapport." + +#: core/models.py:296 +msgid "Both breasts" +msgstr "Båda brösten" + +#: babybuddy/settings/base.py:173 +msgid "German" +msgstr "Tyska" + +#: babybuddy/settings/base.py:177 +msgid "Spanish" +msgstr "Spanska" + +#: babybuddy/settings/base.py:178 +msgid "Swedish" +msgstr "Svenska" + +#: babybuddy/settings/base.py:179 +msgid "Turkish" +msgstr "Turkiska" + +#: babybuddy/templates/error/403.html:9 +msgid "You do not have permission to access this resource. Contact a site administrator for assistance." +msgstr "Du har inte behörighet att komma åt den här resursen. Kontakta webbplatsadministratören för hjälp." + +#: babybuddy/templates/babybuddy/nav-dropdown.html:75 +#: babybuddy/templates/babybuddy/nav-dropdown.html:179 core/models.py:506 +#: core/models.py:519 core/models.py:520 core/models.py:523 +#: core/templates/core/temperature_confirm_delete.html:7 +#: core/templates/core/temperature_form.html:13 +#: core/templates/core/temperature_list.html:4 +#: core/templates/core/temperature_list.html:7 +#: core/templates/core/temperature_list.html:12 +#: core/templates/core/temperature_list.html:29 +msgid "Temperature" +msgstr "Temperatur" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:185 +msgid "Temperature reading" +msgstr "Temperaturavläsning" + +#: babybuddy/templates/babybuddy/welcome.html:14 +msgid "Learn about and predict baby's needs without (as much) guess work by using Baby Buddy to track —" +msgstr "Lär dig om och förutsäga barnets behov utan (så mycket) gissningsarbete genom att använda Baby Buddy för att spåra —" + +#: babybuddy/templates/babybuddy/welcome.html:56 +msgid "As the amount of entries grows, Baby Buddy will help parents and caregivers to identify small patterns in baby's habits using the dashboard and graphs. Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and dads with 2AM feedings and changings. To get started, just click the button below to add your first (or second, third, etc.) child!" +msgstr "När antalet inlägg ökar, hjälper Baby Buddy föräldrar och vårdgivare identifierar små mönster i barnens vanormed hjälp av instrumentpanelen och graferna. Baby Buddy är mobilvänlig och använder ett mörkt tema för att hjälpa trötta mammor och pappor med kl02:00-matningar och blöjbyten. För att komma igång, klicka bara på knappen nedan för att lägga till din första (eller andra, tredje, etc.) barn!" + +#: babybuddy/templates/registration/password_reset_confirm.html:13 +msgid "Oh snap! The two passwords did not match. Please try again." +msgstr "Ajdå! Lösenorden stämmer inte överens. Vänligen försök igen." + +#: babybuddy/templates/registration/password_reset_done.html:9 +msgid "We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly." +msgstr "Vi har mailat dig instruktioner för att ställa in ditt lösenord, om ett konto finns med det e-postmeddelande du angav. Du bör få detta inom kort." + +#: babybuddy/templates/registration/password_reset_done.html:15 +msgid "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder." +msgstr " Om du inte får ett e-postmeddelande, se till att du har anget adressen du registrerade med och kontrollera din skräppost mapp." + +#: babybuddy/templates/registration/password_reset_form.html:9 +msgid "Enter your account email address in the form below. If the address is valid, you will receive instructions for resetting your password." +msgstr "Ange ditt kontos e-postadress i formuläret nedan. Om e-postadressen är korrekt så skickar vi instruktioner för att återställa lösenordet." + +#: core/models.py:285 +msgid "Fortified breast milk" +msgstr "Bröstmjölk" + +#: core/templates/core/temperature_confirm_delete.html:4 +msgid "Delete a Temperature Reading" +msgstr "Radera matning" + +#: core/templates/core/temperature_form.html:8 +#: core/templates/core/temperature_form.html:17 +msgid "Add a Temperature Reading" +msgstr "Lägg till matning" + +#: core/templates/core/temperature_form.html:27 +msgid "Add a Temperature Entry" +msgstr "Lägg till sömn-inlägg" + +#: core/templates/core/temperature_list.html:70 +msgid "No temperature entries found." +msgstr "Inga timer-inlägg funna." + +#: core/templates/core/timer_detail.html:34 +msgid "%(timer)s created by %(user)s" +msgstr " %(timer)s skapad av %(user)s" + +#: core/utils.py:40 +msgid "%(hours)s hour" +msgid_plural "%(hours)s hours" +msgstr[0] "%(hours)s timme" +msgstr[1] "%(hours)s timmar" + +#: core/utils.py:44 +msgid "%(minutes)s minute" +msgid_plural "%(minutes)s minutes" +msgstr[0] "%(minutes)s minut" +msgstr[1] "%(minutes)s minuter" + +#: core/utils.py:50 +msgid "%(seconds)s second" +msgid_plural "%(seconds)s seconds" +msgstr[0] "%(seconds)s sekund" +msgstr[1] "%(seconds)s sekunder" + +#: core/views.py:69 core/views.py:146 +msgid "%(model)s entry deleted." +msgstr "%(model)s inlägg uppdaterad." + +#: core/views.py:366 +msgid "%(model)s reading added!" +msgstr "%(model)s inlägg tillagd!" + +#: core/views.py:374 +msgid "%(model)s reading for %(child)s updated." +msgstr "%(model)s inlägg för %(child)s uppdaterad." + +#: dashboard/templates/cards/timer_list.html:27 +msgid "Started by %(user)s at %(start)s" +msgstr "Startad av %(user)s vid %(start)s" #: reports/templates/reports/feeding_amounts.html:4 #: reports/templates/reports/feeding_amounts.html:8 @@ -2141,57 +1464,668 @@ msgstr "Blöjbytes-typer" msgid "Feeding Amounts" msgstr "Matningar" -#: reports/templates/reports/feeding_duration.html:4 -#: reports/templates/reports/feeding_duration.html:8 -msgid "Average Feeding Durations" -msgstr "Genomsnittlig matningsvaraktighet" +#: reports/graphs/feeding_amounts.py:27 +msgid "Total feeding amount" +msgstr "Totalt antal matningar" + +#: reports/graphs/feeding_amounts.py:36 +msgid "Total Feeding Amounts" +msgstr "Genomsnittlig matningsvaraktighet" + +#: reports/graphs/feeding_amounts.py:72 +msgid "Feeding amount" +msgstr "Matning" #: reports/templates/reports/report_base.html:17 msgid "There is not enough data to generate this report." msgstr "Det finns inte tillräckligt med data för att generera denna rapport." -#: reports/templates/reports/report_list.html:10 -msgid "Body Mass Index (BMI)" -msgstr "" +#: babybuddy/models.py:69 +msgid "Timezone" +msgstr "Tidszon" + +#: babybuddy/templates/admin/base_site.html:4 +#: babybuddy/templates/admin/base_site.html:7 +#: babybuddy/templates/babybuddy/nav-dropdown.html:359 +msgid "Database Admin" +msgstr "Databas-administratör" + +#: core/templates/core/child_list.html:15 +msgid "Add Child" +msgstr "Lägg till Barn" + +#: core/templates/core/diaperchange_list.html:15 +msgid "Add Diaper Change" +msgstr "Lägg till Blöjbyte" + +#: core/templates/core/feeding_list.html:15 +msgid "Add Feeding" +msgstr "Lägg till Matning" + +#: core/templates/core/note_list.html:15 +msgid "Add Note" +msgstr "Lägg till Anteckning" + +#: core/templates/core/sleep_list.html:15 +msgid "Add Sleep" +msgstr "Lägg till Sömn" + +#: core/templates/core/temperature_list.html:15 +msgid "Add Temperature Reading" +msgstr "Lägg till Temperaturavläsning" + +#: core/templates/core/timer_confirm_delete_inactive.html:5 +msgid "Delete All Inactive Timers" +msgstr "Ta bort alla inaktiva timers" + +#: core/templates/core/timer_confirm_delete_inactive.html:10 +msgid "Delete Inactive" +msgstr "Ta bort Inaktiva" + +#: core/templates/core/timer_confirm_delete_inactive.html:17 +#, fuzzy +msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" +msgstr "Är du säker på att du vill ta bort %(number)s inaktiv timer%(plural)s?" + +#: core/templates/core/timer_list.html:68 +msgid "Delete Inactive Timers" +msgstr "Ta bort inaktiva timers" + +#: core/templates/core/tummytime_list.html:15 +msgid "Add Tummy Time" +msgstr "Lägg till Magläge" + +#: core/templates/core/weight_list.html:15 +msgid "Add Weight" +msgstr "Lägg till Vikt" + +#: core/views.py:501 +msgid "All inactive timers deleted." +msgstr "Alla inaktiva timers har tagits bort." + +#: core/views.py:511 +msgid "No inactive timers exist." +msgstr "Det finns inga inaktiva timers." + +#: dashboard/templates/cards/feeding_last_method.html:19 +msgid "most recent" +msgstr "senaste" + +#: dashboard/templates/cards/feeding_last_method.html:21 +msgid "%(n)s feeding%(plural)s ago" +msgstr "%(n)s matning%(plural)s sedan" + +#: dashboard/templates/cards/sleep_last.html:6 +msgid "Last Sleep" +msgstr "Senast sömn" #: reports/templates/reports/report_list.html:11 msgid "Diaper Change Amounts" -msgstr "" +msgstr "Blöjbytesmängd" -#: reports/templates/reports/report_list.html:15 -msgid "Feeding Durations (Average)" -msgstr "Matningstid (Genomsnittlig)" +#: reports/graphs/diaperchange_amounts.py:27 +msgid "Diaper change amount" +msgstr "Blöjbytesmängd" -#: reports/templates/reports/report_list.html:18 -#, fuzzy -#| msgid "Feeding Amounts" -msgid "Pumping Amounts" -msgstr "Matningar" +#: reports/graphs/diaperchange_amounts.py:36 +msgid "Diaper Change Amounts" +msgstr "Blöjbytesmängd" -#: reports/templates/reports/report_list.html:19 -#: reports/templates/reports/sleep_pattern.html:4 -#: reports/templates/reports/sleep_pattern.html:8 -msgid "Sleep Pattern" -msgstr "Sömnmönster" +#: reports/graphs/diaperchange_amounts.py:39 +msgid "Change amount" +msgstr "Förändringsmängd" -#: reports/templates/reports/report_list.html:20 -#: reports/templates/reports/sleep_totals.html:4 -#: reports/templates/reports/sleep_totals.html:8 -msgid "Sleep Totals" -msgstr "Sömn totalt" +#: reports/templates/reports/diaperchange_amounts.html:4 +#: reports/templates/reports/diaperchange_amounts.html:8 +msgid "Diaper Amounts" +msgstr "Blöjmängd" + +#: babybuddy/models.py:21 +msgid "If supported by browser, the dashboard will only refresh when visible, and also when receiving focus." +msgstr "Om webbläsaren stöder det så kommer instrumentbrädan enbart uppdateras när den är synlig och när den är i fokus." + +#: babybuddy/models.py:40 +msgid "Hide Empty Dashboard Cards" +msgstr "Göm tomma kort på instrumentbrädan" + +#: babybuddy/models.py:43 +msgid "Hide data older than" +msgstr "Göm data äldre än" + +#: babybuddy/models.py:45 +msgid "This setting controls which data will be shown in the dashboard." +msgstr "Den här inställningen styr vilket data som kommer att visas på instrumentbrädan." + +#: babybuddy/models.py:51 +msgid "show all data" +msgstr "Visa all data" + +#: babybuddy/models.py:52 +msgid "1 day" +msgstr "1 dag" + +#: babybuddy/models.py:53 +msgid "2 days" +msgstr "2 dagar" + +#: babybuddy/models.py:54 +msgid "3 days" +msgstr "3 dagar" + +#: babybuddy/models.py:55 +msgid "1 week" +msgstr "1 vecka" + +#: babybuddy/models.py:56 +msgid "4 weeks" +msgstr "4 veckor" + +#: babybuddy/settings/base.py:168 +msgid "Dutch" +msgstr "Nederländska" + +#: babybuddy/settings/base.py:172 +msgid "Finnish" +msgstr "Finska" + +#: babybuddy/settings/base.py:174 +msgid "Italian" +msgstr "Italienska" + +#: babybuddy/settings/base.py:175 +msgid "Polish" +msgstr "Polska" + +#: babybuddy/settings/base.py:176 +msgid "Portuguese" +msgstr "Portugisiska" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:118 +#: core/templates/timeline/timeline.html:4 +#: core/templates/timeline/timeline.html:7 +#: dashboard/templates/dashboard/child_button_group.html:9 +msgid "Timeline" +msgstr "Tidslinje" + +#: core/models.py:286 +msgid "Solid food" +msgstr "Fast föda" + +#: core/models.py:297 +msgid "Parent fed" +msgstr "Föräldramatad" + +#: core/models.py:298 +msgid "Self fed" +msgstr "Självmatad" + +#: core/templates/core/diaperchange_list.html:29 +msgid "Contents" +msgstr "Innehåll" + +#: core/templates/core/timer_detail.html:77 +msgid "Restart timer" +msgstr "Starta om timer" + +#: core/templates/core/timer_detail.html:84 +msgid "Delete timer" +msgstr "Ta bort timer" + +#: core/templatetags/datetime.py:60 +msgid "Today" +msgstr "Idag" + +#: core/templatetags/datetime.py:75 +msgid "{}, {}" +msgstr "{}, {}" + +#: core/templatetags/duration.py:25 +msgid "0 days" +msgstr "0 dagar" + +#: core/timeline.py:137 +msgid "Amount: %(amount).0f" +msgstr "Mängd: %(amount).0f" + +#: core/timeline.py:157 +msgid "Contents: %(contents)s" +msgstr "Innehåll: %(contents)s" + +#: dashboard/templates/cards/diaperchange_last.html:12 +#: dashboard/templates/cards/feeding_last.html:12 +#: dashboard/templates/cards/sleep_last.html:12 +#: dashboard/templates/cards/tummytime_last.html:13 +msgid "
%(since)s ago
%(time)s" +msgstr "
%(since)s sedan
%(time)s" + +#: dashboard/templates/cards/feeding_day.html:6 +msgid "Today's Feeding" +msgstr "Dagens Matning" + +#: dashboard/templates/cards/feeding_day.html:20 +msgid "%(count)s feeding entries" +msgstr "%(count)s matnings-tillägg" + +#: dashboard/templates/cards/statistics.html:42 +msgid "No data yet" +msgstr "Ingen data än" #: reports/templates/reports/report_list.html:21 msgid "Tummy Time Durations (Sum)" -msgstr "" +msgstr "Magläge varaktighet (Totalt)" + +#: core/templates/timeline/_timeline.html:61 +#: dashboard/templates/dashboard/child_button_group.html:20 +msgid "Edit" +msgstr "Ändra" + +#: dashboard/templatetags/cards.py:456 +msgid "Feeding frequency (past 3 days)" +msgstr "Matningsfrekvens (senaste 3 dagarna)" + +#: dashboard/templatetags/cards.py:460 +msgid "Feeding frequency (past 2 weeks)" +msgstr "Matningsfrekvens (senaste 2 veckorna)" + +#: reports/graphs/tummytime_duration.py:34 +msgid "Total duration" +msgstr "Total varaktighet" + +#: reports/graphs/tummytime_duration.py:41 +#: reports/graphs/tummytime_duration.py:55 +msgid "Number of sessions" +msgstr "Antal sessioner" + +#: reports/graphs/tummytime_duration.py:50 +msgid "Total Tummy Time Durations" +msgstr "Total varaktighet för magläge" + +#: reports/graphs/tummytime_duration.py:53 +msgid "Total duration (minutes)" +msgstr "Total varaktighet (minuter)" #: reports/templates/reports/tummytime_duration.html:4 #: reports/templates/reports/tummytime_duration.html:8 msgid "Total Tummy Time Durations" -msgstr "" +msgstr "Total varaktighet för magläge" -#~ msgid "Today's Sleep" -#~ msgstr "Sömn idag" +#: babybuddy/settings/base.py:169 +msgid "English (US)" +msgstr "Engelska (USA)" + +#: babybuddy/settings/base.py:170 +msgid "English (UK)" +msgstr "Engelska (Storbritannien)" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:171 +msgid "Measurements" +msgstr "Mätningar" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:207 core/models.py:369 +#: core/models.py:381 core/models.py:382 core/models.py:385 +#: core/templates/core/height_confirm_delete.html:7 +#: core/templates/core/height_form.html:13 +#: core/templates/core/height_list.html:4 +#: core/templates/core/height_list.html:7 +#: core/templates/core/height_list.html:12 +#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 +#: reports/graphs/height_change.py:30 +#: reports/templates/reports/height_change.html:4 +#: reports/templates/reports/height_change.html:8 +#: reports/templates/reports/report_list.html:17 +msgid "Height" +msgstr "Längd" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:213 +msgid "Height entry" +msgstr "Längd-inlägg" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:221 core/models.py:338 +#: core/models.py:351 core/models.py:352 core/models.py:355 +#: core/templates/core/head_circumference_confirm_delete.html:7 +#: core/templates/core/head_circumference_form.html:13 +#: core/templates/core/head_circumference_list.html:4 +#: core/templates/core/head_circumference_list.html:7 +#: core/templates/core/head_circumference_list.html:12 +#: core/templates/core/head_circumference_list.html:29 +#: reports/graphs/head_circumference_change.py:19 +#: reports/graphs/head_circumference_change.py:30 +#: reports/templates/reports/head_circumference_change.html:4 +#: reports/templates/reports/head_circumference_change.html:8 +#: reports/templates/reports/report_list.html:16 +msgid "Head Circumference" +msgstr "Omkrets Huvud" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:227 +msgid "Head Circumference entry" +msgstr "Huvudomkrets-tillägg" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:235 core/models.py:139 +#: core/models.py:151 core/models.py:152 core/models.py:155 +#: core/templates/core/bmi_confirm_delete.html:7 +#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 +#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 +#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 +#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 +#: reports/templates/reports/bmi_change.html:8 +msgid "BMI" +msgstr "BMI" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:241 +msgid "BMI entry" +msgstr "BMI-inlägg" + +#: core/models.py:452 +msgid "Napping" +msgstr "Tupplur" + +#: core/templates/core/bmi_confirm_delete.html:4 +msgid "Delete a BMI Entry" +msgstr "Radera ett BMI-inlägg" + +#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 +#: core/templates/core/bmi_form.html:27 +msgid "Add a BMI Entry" +msgstr "Lägg till ett BMI-inlägg" + +#: core/templates/core/bmi_list.html:15 +msgid "Add BMI" +msgstr "Lägg till BMI" + +#: core/templates/core/bmi_list.html:70 +msgid "No bmi entries found." +msgstr "Inga BMI-inlägg hittade." + +#: core/templates/core/head_circumference_confirm_delete.html:4 +msgid "Delete a Head Circumference Entry" +msgstr "Radera huvudomkrets-inlägg" + +#: core/templates/core/head_circumference_form.html:8 +#: core/templates/core/head_circumference_form.html:17 +#: core/templates/core/head_circumference_form.html:27 +msgid "Add a Head Circumference Entry" +msgstr "Lägg till huvudomkrets-inlägg" + +#: core/templates/core/head_circumference_list.html:15 +msgid "Add Head Circumference" +msgstr "Lägg till omkrets för huvud" + +#: core/templates/core/head_circumference_list.html:70 +msgid "No head circumference entries found." +msgstr "Inga huvudomkrets-inlägg funna." + +#: core/templates/core/height_confirm_delete.html:4 +msgid "Delete a Height Entry" +msgstr "Radera längd-inlägg" + +#: core/templates/core/height_form.html:8 +#: core/templates/core/height_form.html:17 +#: core/templates/core/height_form.html:27 +msgid "Add a Height Entry" +msgstr "Lägg till längd-inlägg" + +#: core/templates/core/height_list.html:15 +msgid "Add Height" +msgstr "Lägg till längd" + +#: core/templates/core/height_list.html:70 +msgid "No height entries found." +msgstr "Inga längd-inlägg funna." + +#: core/templates/timeline/_timeline.html:44 +msgid "Duration: %(duration)s" +msgstr "Varaktighet: %(duration)s" + +#: core/templates/timeline/_timeline.html:53 +msgid "%(since)s since previous" +msgstr "%(since)s sedan senaste" + +#: core/templates/timeline/_timeline.html:85 +msgid "No events" +msgstr "Inga händelser" + +#: core/timeline.py:185 +msgid "%(child)s had a %(type)s diaper change." +msgstr "%(child)s hade ett %(type)s blöjbyte." + +#: dashboard/templatetags/cards.py:372 +msgid "Height change per week" +msgstr "Längdförändring per vecka" + +#: dashboard/templatetags/cards.py:382 +msgid "Head circumference change per week" +msgstr "Huvudomkretsförändring per vecka" + +#: dashboard/templatetags/cards.py:392 +msgid "BMI change per week" +msgstr "BMI-förändring per vecka" + +#: reports/graphs/bmi_change.py:27 +msgid "BMI" +msgstr "BMI" + +#: reports/graphs/feeding_amounts.py:69 +msgid "Total Feeding Amount by Type" +msgstr "Genomsnittlig matningsvaraktighet per typ" + +#: reports/graphs/head_circumference_change.py:27 +msgid "Head Circumference" +msgstr "Huvudomkrets" + +#: reports/graphs/height_change.py:27 +msgid "Height" +msgstr "Längd" + +#: babybuddy/settings/base.py:167 +msgid "Chinese (simplified)" +msgstr "Kinesiska (förenklad)" + +#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 +msgid "Bad Request" +msgstr "Felaktig begäran" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:14 +msgid "How to Fix" +msgstr "Lösning" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:15 +#, fuzzy +msgid "Add %(origin)s to the CSRF_TRUSTED_ORIGINS environment variable. If multiple origins are required separate with commas." +msgstr "Lägg till %(origin)s till CSRF_TRUSTED_ORIGINS miljö-variabel. Om flera källor behövs så separera de med kommatecken." + +#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 +msgid "Page Not Found" +msgstr "Sidan finns inte" + +#: babybuddy/templates/error/404.html:9 +msgid "The path %(request_path)s does not exist." +msgstr "Sökvägen %(request_path)s finns inte." + +#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 +msgid "Server Error" +msgstr "Server-fel" + +#: babybuddy/templates/error/base.html:14 +msgid "Return to Baby Buddy" +msgstr "Tillbaka till Baby Buddy" + +#: babybuddy/views.py:43 +msgid "Forbidden" +msgstr "Förbjuden" + +#: babybuddy/views.py:44 +#, fuzzy +msgid "CSRF verification failed. Request aborted." +msgstr "CSRF-bekräftelse misslyckades. Begäran avbruten." + +#: babybuddy/settings/base.py:166 +msgid "Catalan" +msgstr "Katalanska" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:93 +#: babybuddy/templates/babybuddy/nav-dropdown.html:316 core/models.py:437 +#: core/models.py:438 core/models.py:441 +#: core/templates/core/pumping_confirm_delete.html:7 +#: core/templates/core/pumping_form.html:13 +#: core/templates/core/pumping_list.html:4 +#: core/templates/core/pumping_list.html:7 +#: core/templates/core/pumping_list.html:12 +#: reports/templates/reports/pumping_amounts.html:4 +#: reports/templates/reports/pumping_amounts.html:8 +msgid "Pumping" +msgstr "Pumpning" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:322 +msgid "Pumping entry" +msgstr "Pumpnings-inlägg" + +#: core/filters.py:11 core/models.py:96 core/models.py:115 +#, fuzzy +msgid "Tag" +msgstr "Märke" + +#: core/forms.py:136 +msgid "Click on the tags to add (+) or remove (-) tags or use the text editor to create new tags." +msgstr "Klicka på märkena för att lägga till (+) eller ta bort (-) eller använd en text-editor för att lägga till nya märken." + +#: core/models.py:90 +msgid "Last used" +msgstr "Senast använd" + +#: core/models.py:97 core/templates/core/bmi_list.html:30 +#: core/templates/core/diaperchange_list.html:32 +#: core/templates/core/feeding_list.html:35 +#: core/templates/core/head_circumference_list.html:30 +#: core/templates/core/height_list.html:30 +#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 +#: core/templates/core/temperature_list.html:30 +#: core/templates/core/tummytime_list.html:31 +#: core/templates/core/weight_list.html:30 +#, fuzzy +msgid "Tags" +msgstr "Märken" + +#: core/templates/core/pumping_confirm_delete.html:4 +msgid "Delete a Pumping Entry" +msgstr "Radera pumpnings-inlägg" + +#: core/templates/core/pumping_form.html:8 +#: core/templates/core/pumping_form.html:17 +#: core/templates/core/pumping_form.html:27 +msgid "Add a Pumping Entry" +msgstr "Lägg till ett pumpnings-inlägg" + +#: core/templates/core/pumping_list.html:15 +msgid "Add Pumping Entry" +msgstr "Lägg till pumpnings-inlägg" + +#: core/templates/core/pumping_list.html:66 +msgid "No pumping entries found." +msgstr "Inga pumpnings-inlägg funna." + +#: core/templates/core/widget_tag_editor.html:22 +#, fuzzy +msgid "Tag name" +msgstr "Märkesnamn" + +#: core/templates/core/widget_tag_editor.html:27 +msgid "Recently used:" +msgstr "Nyligen använda:" + +#: core/templates/core/widget_tag_editor.html:45 +msgctxt "Error modal" +msgid "Error" +msgstr "Fel" + +#: core/templates/core/widget_tag_editor.html:50 +msgctxt "Error modal" +msgid "An error ocurred." +msgstr "Ett fel inträffade." + +#: core/templates/core/widget_tag_editor.html:51 +#, fuzzy +msgctxt "Error modal" +msgid "Invalid tag name." +msgstr "Felaktigt märkesnamn." + +#: core/templates/core/widget_tag_editor.html:52 +#, fuzzy +msgctxt "Error modal" +msgid "Failed to create tag." +msgstr "Misslyckades med att skapa märke." + +#: core/templates/core/widget_tag_editor.html:53 +#, fuzzy +msgctxt "Error modal" +msgid "Failed to obtain tag data." +msgstr "Misslyckades med att hämta data för märke." + +#: core/templates/core/widget_tag_editor.html:58 +msgctxt "Error modal" +msgid "Close" +msgstr "Stäng" + +#: dashboard/templates/cards/feeding_day.html:32 +#, fuzzy +msgid "
%(since)s
" +msgstr "
%(since)s
" + +#: dashboard/templatetags/cards.py:410 +msgid "Diaper change frequency (past 3 days)" +msgstr "Blöjbytesfrekvens (senaste 3 dagarna)" + +#: dashboard/templatetags/cards.py:414 +msgid "Diaper change frequency (past 2 weeks)" +msgstr "Blöjbytesfrekvens (senaste 2 veckorna)" + +#: reports/graphs/pumping_amounts.py:57 +msgid "Total Pumping Amount" +msgstr "Genomsnittlig pumpningsmängd" + +#: reports/graphs/pumping_amounts.py:60 +msgid "Pumping Amount" +msgstr "Pumpningsmängd" + +#: reports/templates/reports/report_list.html:10 +msgid "Body Mass Index (BMI)" +msgstr "Kroppsmasseindex (BMI)" + +#: reports/templates/reports/report_list.html:18 +msgid "Pumping Amounts" +msgstr "Pumpningsmängder" + +#: core/templates/core/timer_confirm_delete_inactive.html:17 +#, fuzzy +msgid "Are you sure you want to delete %(number)s inactive timer?" +msgid_plural "Are you sure you want to delete %(number)s inactive timers?" +msgstr[0] "Är du säker på att du vill ta bort %(number)s inaktiv timer?" +msgstr[1] "Är du säker på att du vill ta bort %(number)s inaktiva timers?" + +#: dashboard/templates/cards/feeding_day.html:25 +#, fuzzy +msgid "%(counter)s feeding" +msgid_plural "%(counter)s feedings" +msgstr[0] "%(count)s matning" +msgstr[1] "%(count)s matningar" + +#: dashboard/templates/cards/feeding_last_method.html:21 +#, fuzzy +msgid "%(n)s feeding ago" +msgid_plural "%(n)s feedings ago" +msgstr[0] "%(key)s matning sedan" +msgstr[1] "%(key)s matningar sedan" + +#: dashboard/templates/cards/sleep_naps_day.html:12 +#, fuzzy +msgid "%(count)s nap" +msgid_plural "%(count)s naps" +msgstr[0] "%(count)s tupplur" +msgstr[1] "%(count)s tupplurar" + +#: dashboard/templates/cards/timer_list.html:12 +#, fuzzy +msgid "%(count)s active timer" +msgid_plural "%(count)s active timers" +msgstr[0] "%(count)s aktiv timer" +msgstr[1] "%(count)s aktiva timers" -#, python-format -#~ msgid "%(count)s sleep entries" -#~ msgstr "%(count)s sömn-inlägg" diff --git a/locale/tr/LC_MESSAGES/django.mo b/locale/tr/LC_MESSAGES/django.mo index 9ef16fe3..32e5f3d4 100644 Binary files a/locale/tr/LC_MESSAGES/django.mo and b/locale/tr/LC_MESSAGES/django.mo differ diff --git a/locale/tr/LC_MESSAGES/django.po b/locale/tr/LC_MESSAGES/django.po index f5621100..5a272a30 100644 --- a/locale/tr/LC_MESSAGES/django.po +++ b/locale/tr/LC_MESSAGES/django.po @@ -1,22 +1,20 @@ msgid "" msgstr "" -"Project-Id-Version: Baby Buddy\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-30 21:13+0000\n" -"Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" +"Project-Id-Version: Baby Buddy\n" +"Language: tr\n" "Plural-Forms: nplurals=2; plural=(n>1);\n" #: babybuddy/admin.py:12 babybuddy/admin.py:13 -#: babybuddy/templates/babybuddy/nav-dropdown.html:324 +#: babybuddy/templates/babybuddy/nav-dropdown.html:347 #: babybuddy/templates/babybuddy/user_settings_form.html:8 msgid "Settings" msgstr "Ayarlar" -#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:89 +#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:111 #: babybuddy/templates/babybuddy/user_settings_form.html:61 #: dashboard/templates/dashboard/child.html:4 #: dashboard/templates/dashboard/child.html:9 @@ -31,12 +29,8 @@ msgid "Refresh rate" msgstr "Yenileme hızı" #: babybuddy/models.py:21 -msgid "" -"If supported by browser, the dashboard will only refresh when visible, and " -"also when receiving focus." -msgstr "" -"Tarayıcı tarafından destekleniyorsa kontrol paneli sadece görünür olduğunda " -"ve ayrıca odaklandığında görünür" +msgid "This setting will only be used when a browser does not support refresh on focus." +msgstr "Bu ayar yalnızca odaklanmada yenilenmeyi desteklemeyen tarayıcıda kullanılır." #: babybuddy/models.py:28 msgid "disabled" @@ -74,121 +68,31 @@ msgstr "15 dk." msgid "30 min." msgstr "30 dk." -#: babybuddy/models.py:40 -msgid "Hide Empty Dashboard Cards" -msgstr "Boş Kontrol Paneli Kartlarını Gizle" - -#: babybuddy/models.py:43 -msgid "Hide data older than" -msgstr "Daha eski verileri gizle" - -#: babybuddy/models.py:45 -msgid "This setting controls which data will be shown in the dashboard." -msgstr "" -"Bu ayar, kontrol panelinde hangi verilerin gösterileceğini kontrol eder." - -#: babybuddy/models.py:51 -msgid "show all data" -msgstr "tüm veriyi göster" - -#: babybuddy/models.py:52 -msgid "1 day" -msgstr "1 gün" - -#: babybuddy/models.py:53 -msgid "2 days" -msgstr "2 gün" - -#: babybuddy/models.py:54 -msgid "3 days" -msgstr "3 gün" - -#: babybuddy/models.py:55 -msgid "1 week" -msgstr "1 hafta" - -#: babybuddy/models.py:56 -msgid "4 weeks" -msgstr "4 hafta" - #: babybuddy/models.py:63 msgid "Language" msgstr "Dil" -#: babybuddy/models.py:69 -msgid "Timezone" -msgstr "Saat dilimi" - #: babybuddy/models.py:73 -#, python-brace-format msgid "{user}'s Settings" msgstr "{user}'nın Ayarları" -#: babybuddy/settings/base.py:166 -msgid "Catalan" -msgstr "" - -#: babybuddy/settings/base.py:167 -msgid "Chinese (simplified)" -msgstr "" - -#: babybuddy/settings/base.py:168 -msgid "Dutch" -msgstr "Flemenkçe" - -#: babybuddy/settings/base.py:169 -#, fuzzy -#| msgid "English" -msgid "English (US)" -msgstr "İngilizce" - -#: babybuddy/settings/base.py:170 -#, fuzzy -#| msgid "English" -msgid "English (UK)" +#: babybuddy/settings/base.py:171 +msgid "English" msgstr "İngilizce" #: babybuddy/settings/base.py:171 msgid "French" msgstr "Fransızca" -#: babybuddy/settings/base.py:172 -msgid "Finnish" -msgstr "Fince" +#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 +msgid "Permission Denied" +msgstr "Erişim Engellendi" -#: babybuddy/settings/base.py:173 -msgid "German" -msgstr "Almanca" - -#: babybuddy/settings/base.py:174 -msgid "Italian" -msgstr "İtalyanca" - -#: babybuddy/settings/base.py:175 -msgid "Polish" -msgstr "Lehçe" - -#: babybuddy/settings/base.py:176 -msgid "Portuguese" -msgstr "Portekizce" - -#: babybuddy/settings/base.py:177 -msgid "Spanish" -msgstr "İspanyolca" - -#: babybuddy/settings/base.py:178 -msgid "Swedish" -msgstr "İsveççe" - -#: babybuddy/settings/base.py:179 -msgid "Turkish" -msgstr "Türkçe" - -#: babybuddy/templates/admin/base_site.html:4 -#: babybuddy/templates/admin/base_site.html:7 -#: babybuddy/templates/babybuddy/nav-dropdown.html:336 -msgid "Database Admin" -msgstr "Veritabanı Admin" +#: babybuddy/templates/403.html:12 +msgid "You do not have permission to access this resource.\n" +" Contact a site administrator for assistance." +msgstr "Bu kaynağa erişmek için izniniz yoktur.\n" +"Yardım için website yöneticisiyle iletişime geçin." #: babybuddy/templates/babybuddy/base.html:36 msgid "Home" @@ -213,36 +117,32 @@ msgstr "Gönder" #: babybuddy/templates/babybuddy/messages.html:18 #: babybuddy/templates/babybuddy/user_settings_form.html:19 -#, python-format msgid "Error: %(error)s" msgstr "Hata: %(error)s" #: babybuddy/templates/babybuddy/messages.html:23 -#: babybuddy/templates/babybuddy/user_settings_form.html:26 -msgid "Error: Some fields have errors. See below for details." -msgstr "" -"Hata: Bazı alanlarda hata var. Detaylar için aşağıya " -"bakınız." +msgid "Error: Some fields have errors. See below for details. " +msgstr "Hata: Bazı alanlarda hata var. Detaylar için aşağıya bakınız. " -#: babybuddy/templates/babybuddy/nav-dropdown.html:48 core/models.py:248 +#: babybuddy/templates/babybuddy/nav-dropdown.html:51 core/models.py:248 #: core/models.py:252 msgid "Diaper Change" msgstr "Bez Değişimi" -#: babybuddy/templates/babybuddy/nav-dropdown.html:54 -#: babybuddy/templates/babybuddy/nav-dropdown.html:259 core/models.py:312 +#: babybuddy/templates/babybuddy/nav-dropdown.html:57 +#: babybuddy/templates/babybuddy/nav-dropdown.html:281 core/models.py:312 #: core/models.py:316 core/templates/core/timer_detail.html:43 msgid "Feeding" msgstr "Beslenme" -#: babybuddy/templates/babybuddy/nav-dropdown.html:60 -#: babybuddy/templates/babybuddy/nav-dropdown.html:135 core/models.py:396 +#: babybuddy/templates/babybuddy/nav-dropdown.html:63 +#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:396 #: core/models.py:407 core/models.py:411 core/templates/core/note_list.html:29 msgid "Note" msgstr "Not" -#: babybuddy/templates/babybuddy/nav-dropdown.html:66 -#: babybuddy/templates/babybuddy/nav-dropdown.html:280 +#: babybuddy/templates/babybuddy/nav-dropdown.html:69 +#: babybuddy/templates/babybuddy/nav-dropdown.html:288 #: babybuddy/templates/babybuddy/welcome.html:42 core/models.py:467 #: core/models.py:468 core/models.py:471 #: core/templates/core/sleep_confirm_delete.html:7 @@ -252,8 +152,8 @@ msgstr "Not" msgid "Sleep" msgstr "Uyku" -#: babybuddy/templates/babybuddy/nav-dropdown.html:72 -#: babybuddy/templates/babybuddy/nav-dropdown.html:293 +#: babybuddy/templates/babybuddy/nav-dropdown.html:81 +#: babybuddy/templates/babybuddy/nav-dropdown.html:301 #: babybuddy/templates/babybuddy/welcome.html:50 core/models.py:647 #: core/models.py:648 core/models.py:651 #: core/templates/core/timer_detail.html:59 @@ -265,15 +165,24 @@ msgstr "Uyku" msgid "Tummy Time" msgstr "Karın üstü zamanı" -#: babybuddy/templates/babybuddy/nav-dropdown.html:96 -#: core/templates/timeline/timeline.html:4 -#: core/templates/timeline/timeline.html:7 -#: dashboard/templates/dashboard/child_button_group.html:9 -msgid "Timeline" -msgstr "Zaman çizelgesi" +#: babybuddy/templates/babybuddy/nav-dropdown.html:87 +#: babybuddy/templates/babybuddy/nav-dropdown.html:193 core/models.py:673 +#: core/models.py:685 core/models.py:686 core/models.py:689 +#: core/templates/core/weight_confirm_delete.html:7 +#: core/templates/core/weight_form.html:13 +#: core/templates/core/weight_list.html:4 +#: core/templates/core/weight_list.html:7 +#: core/templates/core/weight_list.html:12 +#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 +#: reports/graphs/weight_change.py:30 +#: reports/templates/reports/report_list.html:22 +#: reports/templates/reports/weight_change.html:4 +#: reports/templates/reports/weight_change.html:8 +msgid "Weight" +msgstr "Ağırlık" -#: babybuddy/templates/babybuddy/nav-dropdown.html:107 -#: babybuddy/templates/babybuddy/nav-dropdown.html:115 core/models.py:188 +#: babybuddy/templates/babybuddy/nav-dropdown.html:129 +#: babybuddy/templates/babybuddy/nav-dropdown.html:137 core/models.py:188 #: core/templates/core/child_confirm_delete.html:7 #: core/templates/core/child_detail.html:7 #: core/templates/core/child_form.html:13 core/templates/core/child_list.html:4 @@ -283,7 +192,7 @@ msgstr "Zaman çizelgesi" msgid "Children" msgstr "Çocuklar" -#: babybuddy/templates/babybuddy/nav-dropdown.html:121 core/models.py:137 +#: babybuddy/templates/babybuddy/nav-dropdown.html:143 core/models.py:137 #: core/models.py:187 core/models.py:221 core/models.py:274 core/models.py:335 #: core/models.py:367 core/models.py:394 core/models.py:426 core/models.py:450 #: core/models.py:503 core/models.py:537 core/models.py:630 core/models.py:671 @@ -302,7 +211,7 @@ msgstr "Çocuklar" msgid "Child" msgstr "Çocuk" -#: babybuddy/templates/babybuddy/nav-dropdown.html:129 core/models.py:143 +#: babybuddy/templates/babybuddy/nav-dropdown.html:151 core/models.py:143 #: core/models.py:240 core/models.py:304 core/models.py:343 core/models.py:373 #: core/models.py:408 core/models.py:430 core/models.py:458 core/models.py:511 #: core/models.py:677 core/templates/core/note_confirm_delete.html:7 @@ -311,118 +220,24 @@ msgstr "Çocuk" msgid "Notes" msgstr "Notlar" -#: babybuddy/templates/babybuddy/nav-dropdown.html:149 -msgid "Measurements" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:139 -#: core/models.py:151 core/models.py:152 core/models.py:155 -#: core/templates/core/bmi_confirm_delete.html:7 -#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 -#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 -#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 -#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 -#: reports/templates/reports/bmi_change.html:8 -msgid "BMI" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:163 -#, fuzzy -#| msgid "Sleep entry" -msgid "BMI entry" -msgstr "Uyku Girişi" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:171 core/models.py:338 -#: core/models.py:351 core/models.py:352 core/models.py:355 -#: core/templates/core/head_circumference_confirm_delete.html:7 -#: core/templates/core/head_circumference_form.html:13 -#: core/templates/core/head_circumference_list.html:4 -#: core/templates/core/head_circumference_list.html:7 -#: core/templates/core/head_circumference_list.html:12 -#: core/templates/core/head_circumference_list.html:29 -#: reports/graphs/head_circumference_change.py:19 -#: reports/graphs/head_circumference_change.py:30 -#: reports/templates/reports/head_circumference_change.html:4 -#: reports/templates/reports/head_circumference_change.html:8 -#: reports/templates/reports/report_list.html:16 -msgid "Head Circumference" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:177 -msgid "Head Circumference entry" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:185 core/models.py:369 -#: core/models.py:381 core/models.py:382 core/models.py:385 -#: core/templates/core/height_confirm_delete.html:7 -#: core/templates/core/height_form.html:13 -#: core/templates/core/height_list.html:4 -#: core/templates/core/height_list.html:7 -#: core/templates/core/height_list.html:12 -#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 -#: reports/graphs/height_change.py:30 -#: reports/templates/reports/height_change.html:4 -#: reports/templates/reports/height_change.html:8 -#: reports/templates/reports/report_list.html:17 -#, fuzzy -#| msgid "Weight" -msgid "Height" -msgstr "Ağırlık" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:191 -#, fuzzy -#| msgid "Weight entry" -msgid "Height entry" -msgstr "Ağırlık girdisi" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:199 core/models.py:506 -#: core/models.py:519 core/models.py:520 core/models.py:523 -#: core/templates/core/temperature_confirm_delete.html:7 -#: core/templates/core/temperature_form.html:13 -#: core/templates/core/temperature_list.html:4 -#: core/templates/core/temperature_list.html:7 -#: core/templates/core/temperature_list.html:12 -#: core/templates/core/temperature_list.html:29 -msgid "Temperature" -msgstr "Sıcaklık" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:205 -msgid "Temperature reading" -msgstr "Sıcaklık okuma" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:213 core/models.py:673 -#: core/models.py:685 core/models.py:686 core/models.py:689 -#: core/templates/core/weight_confirm_delete.html:7 -#: core/templates/core/weight_form.html:13 -#: core/templates/core/weight_list.html:4 -#: core/templates/core/weight_list.html:7 -#: core/templates/core/weight_list.html:12 -#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 -#: reports/graphs/weight_change.py:30 -#: reports/templates/reports/report_list.html:22 -#: reports/templates/reports/weight_change.html:4 -#: reports/templates/reports/weight_change.html:8 -msgid "Weight" -msgstr "Ağırlık" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:219 +#: babybuddy/templates/babybuddy/nav-dropdown.html:199 msgid "Weight entry" msgstr "Ağırlık girdisi" -#: babybuddy/templates/babybuddy/nav-dropdown.html:233 +#: babybuddy/templates/babybuddy/nav-dropdown.html:255 msgid "Activities" msgstr "Faaliyetler" -#: babybuddy/templates/babybuddy/nav-dropdown.html:240 +#: babybuddy/templates/babybuddy/nav-dropdown.html:262 #: reports/graphs/diaperchange_lifetimes.py:27 msgid "Changes" msgstr "Değişimler" -#: babybuddy/templates/babybuddy/nav-dropdown.html:246 +#: babybuddy/templates/babybuddy/nav-dropdown.html:268 msgid "Change" msgstr "Değişim" -#: babybuddy/templates/babybuddy/nav-dropdown.html:253 +#: babybuddy/templates/babybuddy/nav-dropdown.html:275 #: babybuddy/templates/babybuddy/welcome.html:34 core/models.py:313 #: core/templates/core/feeding_confirm_delete.html:7 #: core/templates/core/feeding_form.html:13 @@ -432,33 +247,15 @@ msgstr "Değişim" msgid "Feedings" msgstr "Beslenmeler" -#: babybuddy/templates/babybuddy/nav-dropdown.html:267 core/models.py:437 -#: core/models.py:438 core/models.py:441 -#: core/templates/core/pumping_confirm_delete.html:7 -#: core/templates/core/pumping_form.html:13 -#: core/templates/core/pumping_list.html:4 -#: core/templates/core/pumping_list.html:7 -#: core/templates/core/pumping_list.html:12 -#: reports/templates/reports/pumping_amounts.html:4 -#: reports/templates/reports/pumping_amounts.html:8 -msgid "Pumping" -msgstr "" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:273 -#, fuzzy -#| msgid "Weight entry" -msgid "Pumping entry" -msgstr "Ağırlık girdisi" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:286 +#: babybuddy/templates/babybuddy/nav-dropdown.html:294 msgid "Sleep entry" msgstr "Uyku Girişi" -#: babybuddy/templates/babybuddy/nav-dropdown.html:299 +#: babybuddy/templates/babybuddy/nav-dropdown.html:307 msgid "Tummy Time entry" msgstr "Karın Üstü Zaman Girişi" -#: babybuddy/templates/babybuddy/nav-dropdown.html:323 +#: babybuddy/templates/babybuddy/nav-dropdown.html:346 #: babybuddy/templates/babybuddy/user_list.html:17 #: babybuddy/templates/babybuddy/user_password_form.html:7 #: babybuddy/templates/babybuddy/user_settings_form.html:7 core/models.py:556 @@ -466,23 +263,23 @@ msgstr "Karın Üstü Zaman Girişi" msgid "User" msgstr "Kullanıcı" -#: babybuddy/templates/babybuddy/nav-dropdown.html:325 +#: babybuddy/templates/babybuddy/nav-dropdown.html:348 msgid "Password" msgstr "Şifre" -#: babybuddy/templates/babybuddy/nav-dropdown.html:329 +#: babybuddy/templates/babybuddy/nav-dropdown.html:352 msgid "Logout" msgstr "Çıkış" -#: babybuddy/templates/babybuddy/nav-dropdown.html:332 +#: babybuddy/templates/babybuddy/nav-dropdown.html:355 msgid "Site" msgstr "Site" -#: babybuddy/templates/babybuddy/nav-dropdown.html:333 +#: babybuddy/templates/babybuddy/nav-dropdown.html:356 msgid "API Browser" msgstr "API Görüntüleyici" -#: babybuddy/templates/babybuddy/nav-dropdown.html:335 +#: babybuddy/templates/babybuddy/nav-dropdown.html:358 #: babybuddy/templates/babybuddy/user_confirm_delete.html:7 #: babybuddy/templates/babybuddy/user_form.html:13 #: babybuddy/templates/babybuddy/user_list.html:4 @@ -490,15 +287,19 @@ msgstr "API Görüntüleyici" msgid "Users" msgstr "Kullanıcılar" -#: babybuddy/templates/babybuddy/nav-dropdown.html:338 +#: babybuddy/templates/babybuddy/nav-dropdown.html:250 +msgid "Backend Admin" +msgstr "Backend Admin" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:361 msgid "Support" msgstr "Destek" -#: babybuddy/templates/babybuddy/nav-dropdown.html:340 +#: babybuddy/templates/babybuddy/nav-dropdown.html:363 msgid "Source Code" msgstr "Kaynak Kod" -#: babybuddy/templates/babybuddy/nav-dropdown.html:342 +#: babybuddy/templates/babybuddy/nav-dropdown.html:365 msgid "Chat / Support" msgstr "Sohbet / Destek" @@ -509,7 +310,6 @@ msgstr "Sohbet / Destek" #: core/templates/timeline/_timeline.html:73 #: dashboard/templates/cards/feeding_day.html:43 #: dashboard/templates/cards/feeding_last_method.html:34 -#: dashboard/templates/cards/sleep_recent.html:43 #: dashboard/templates/cards/statistics.html:34 msgid "Previous" msgstr "Önceki" @@ -521,7 +321,6 @@ msgstr "Önceki" #: core/templates/timeline/_timeline.html:80 #: dashboard/templates/cards/feeding_day.html:47 #: dashboard/templates/cards/feeding_last_method.html:38 -#: dashboard/templates/cards/sleep_recent.html:47 #: dashboard/templates/cards/statistics.html:38 msgid "Next" msgstr "Sonraki" @@ -577,13 +376,8 @@ msgstr "Sil" #: core/templates/core/timer_confirm_delete.html:17 #: core/templates/core/tummytime_confirm_delete.html:14 #: core/templates/core/weight_confirm_delete.html:14 -#, python-format -msgid "" -"

Are you sure you want to delete %(object)s?

" -msgstr "" -"

Silmek istediğinizden emin misiniz %(object)s?

" +msgid "

Are you sure you want to delete %(object)s?

" +msgstr "

Silmek istediğinizden emin misiniz %(object)s?

" #: babybuddy/templates/babybuddy/user_confirm_delete.html:19 #: core/templates/core/bmi_confirm_delete.html:18 @@ -639,7 +433,6 @@ msgstr "Güncelle" #: core/templates/core/timer_form.html:18 #: core/templates/core/tummytime_form.html:23 #: core/templates/core/weight_form.html:23 -#, python-format msgid "

Update %(object)s

" msgstr "

Gücelle %(object)s

" @@ -669,7 +462,7 @@ msgstr "Etkin" #: babybuddy/templates/babybuddy/user_list.html:23 #: core/templates/core/bmi_list.html:24 core/templates/core/bmi_list.html:38 #: core/templates/core/child_list.html:28 -#: core/templates/core/child_list.html:43 +#: core/templates/core/child_list.html:48 #: core/templates/core/diaperchange_list.html:24 #: core/templates/core/diaperchange_list.html:40 #: core/templates/core/feeding_list.html:24 @@ -707,6 +500,11 @@ msgstr "Şifre Değiştir" msgid "User Settings" msgstr "Kullanıcı Ayarları" +#: babybuddy/templates/babybuddy/messages.html:23 +#: babybuddy/templates/babybuddy/user_settings_form.html:26 +msgid "Error: Some fields have errors. See below for details." +msgstr "Hata: Bazı alanlarda hata var. Detaylar için aşağıya bakınız." + #: babybuddy/templates/babybuddy/user_settings_form.html:33 msgid "User Profile" msgstr "Kullanıcı Profili" @@ -733,12 +531,10 @@ msgid "Welcome to Baby Buddy!" msgstr "Baby Buddy'e Hoşgeldiniz!" #: babybuddy/templates/babybuddy/welcome.html:14 -msgid "" -"Learn about and predict baby's needs without (as much) guess work " -"by using Baby Buddy to track —" -msgstr "" -"Baby Buddy ile takip ederek tahmin etmeye (çok) gerek kalmadan " -"bebeğin ihtiyaçlarını öğren —" +msgid "Learn about and predict baby's needs without\n" +" (as much) guess work by using Baby Buddy to track —" +msgstr "Baby Buddy ile takip ederek tahmin etmeye\n" +" (çok) gerek kalmadan bebeğin ihtiyaçlarını öğren —" #: babybuddy/templates/babybuddy/welcome.html:26 core/models.py:249 #: core/templates/core/diaperchange_confirm_delete.html:7 @@ -750,19 +546,14 @@ msgstr "" msgid "Diaper Changes" msgstr "Bez Değişiklikleri" -#: babybuddy/templates/babybuddy/welcome.html:56 -msgid "" -"As the amount of entries grows, Baby Buddy will help parents and caregivers " -"to identify small patterns in baby's habits using the dashboard and graphs. " -"Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and " -"dads with 2AM feedings and changings. To get started, just click the button " -"below to add your first (or second, third, etc.) child!" -msgstr "" -"Girdiler arttıkça Baby Buddy ailelere bebeklerin alışkanlıkları hakkında " -"kontrol paneli ve grafikler ile fikir verir. Baby Buddy mobil dostudur ve " -"yorgun anne babaların gece 2'de yapacakları beslenmeler ve bez " -"değişiklikleri için kotu temayı kullanır. Başlamak için yalnızca aşağıdaki " -"butonu tıklayınız ve ilk (veya ikinci, üçüncü, vs.) çocuğunuzu ekleyiniz!" +#: babybuddy/templates/babybuddy/welcome.html:54 +msgid "As the amount of entries grows, Baby Buddy will help\n" +" parents and caregivers to identify small patterns in baby's habits\n" +" using the dashboard and graphs. Baby Buddy is mobile-friendly and\n" +" uses a dark theme to help weary moms and dads with 2AM feedings and\n" +" changings. To get started, just click the button below to add your\n" +" first (or second, third, etc.) child!" +msgstr "Girdiler arttıkça Baby Buddy ailelere bebeklerin alışkanlıkları hakkında kontrol paneli ve grafikler ile fikir verir. Baby Buddy mobil dostudur ve yorgun anne babaların gece 2'de yapacakları beslenmeler ve bez değişiklikleri için kotu temayı kullanır. Başlamak için yalnızca aşağıdaki butonu tıklayınız ve ilk (veya ikinci, üçüncü, vs.) çocuğunuzu ekleyiniz!" #: babybuddy/templates/babybuddy/welcome.html:68 #: core/templates/core/child_form.html:8 core/templates/core/child_form.html:18 @@ -770,52 +561,6 @@ msgstr "" msgid "Add a Child" msgstr "Çocuk Ekle" -#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 -msgid "Bad Request" -msgstr "" - -#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 -msgid "Permission Denied" -msgstr "Erişim Engellendi" - -#: babybuddy/templates/error/403.html:9 -msgid "" -"You do not have permission to access this resource. Contact a site " -"administrator for assistance." -msgstr "" -"Bu kaynağa erişmek için izniniz yoktur. Yardım için website yöneticisiyle " -"iletişime geçin." - -#: babybuddy/templates/error/403_csrf_bad_origin.html:14 -msgid "How to Fix" -msgstr "" - -#: babybuddy/templates/error/403_csrf_bad_origin.html:15 -#, python-format -msgid "" -"Add %(origin)s to the CSRF_TRUSTED_ORIGINS " -"environment variable. If multiple origins are required separate with commas." -msgstr "" - -#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 -msgid "Page Not Found" -msgstr "" - -#: babybuddy/templates/error/404.html:9 -#, python-format -msgid "The path %(request_path)s does not exist." -msgstr "" - -#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 -msgid "Server Error" -msgstr "" - -#: babybuddy/templates/error/base.html:14 -#, fuzzy -#| msgid "Welcome to Baby Buddy!" -msgid "Return to Baby Buddy" -msgstr "Baby Buddy'e Hoşgeldiniz!" - #: babybuddy/templates/registration/login.html:32 msgid "Login" msgstr "Giriş" @@ -840,11 +585,10 @@ msgstr "Giriş Yap" msgid "Password Reset" msgstr "Şifre Sıfırlama" -#: babybuddy/templates/registration/password_reset_confirm.html:13 -msgid "" -"Oh snap! The two passwords did not match. Please try again." -msgstr "" -"Hay Aksi! Şifreler uyuşmuyor. Lütfen tekrar deneyiniz." +#: babybuddy/templates/registration/password_reset_confirm.html:12 +msgid "

Oh snap! The\n" +" two passwords did not match. Please try again.

" +msgstr "

Hay Aksi! Şifreler uyuşmuyor. Lütfen tekrar deneyiniz.

" #: babybuddy/templates/registration/password_reset_confirm.html:22 msgid "Enter your new password in each field below." @@ -859,74 +603,35 @@ msgstr "Şifre Sıfırla" msgid "Reset Email Sent" msgstr "Sıfırlama Epostası Gönderildi" -#: babybuddy/templates/registration/password_reset_done.html:9 -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"Eğer girdiğiniz eposta ile kayıtlı kullanıcı varsa şifrenizi yeniden " -"oluşturmak için talimatları epostanıza gönderdik. Kısa süre sonra size " -"ulaşacak." - -#: babybuddy/templates/registration/password_reset_done.html:15 -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Eğer eposta size ulaşmazsa lütfen girdiğiniz eposta adresinizin doğru " -"olduğuna emin olun ve epostanızdaki spam klasörünü kontrol ediniz." - -#: babybuddy/templates/registration/password_reset_email.html:2 -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:4 -msgid "Please go to the following page and choose a new password:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:8 -msgid "Your username, in case you’ve forgotten:" -msgstr "" - -#: babybuddy/templates/registration/password_reset_email.html:10 -msgid "Thanks for using Baby Buddy!" -msgstr "" +#: babybuddy/templates/registration/password_reset_done.html:8 +msgid "

We've emailed you instructions for setting your\n" +" password, if an account exists with the email you entered. You\n" +" should receive them shortly.

\n" +"

If you don't receive an email, please make sure you've\n" +" entered the address you registered with, and check your spam\n" +" folder.

" +msgstr "

Eğer girdiğiniz eposta ile kayıtlı kullanıcı varsa şifrenizi yeniden oluşturmak için talimatları epostanıza gönderdik. Kısa süre sonra size ulaşacak.

\n" +"

Eğer eposta size ulaşmazsa lütfen girdiğiniz eposta adresinizin doğru olduğuna emin olun ve epostanızdaki spam klasörünü kontrol ediniz.

" #: babybuddy/templates/registration/password_reset_form.html:4 msgid "Forgot Password" msgstr "Şifremi Unuttum" -#: babybuddy/templates/registration/password_reset_form.html:9 -msgid "" -"Enter your account email address in the form below. If the address is valid, " -"you will receive instructions for resetting your password." -msgstr "" -"Eposta adresinizi aşağıdaki forma giriniz. Eposta adresi doğruysa şifrenizi " -"sıfırmalak için talimatlar gönderilecek." - -#: babybuddy/views.py:43 -msgid "Forbidden" -msgstr "" - -#: babybuddy/views.py:44 -msgid "CSRF verification failed. Request aborted." -msgstr "" +#: babybuddy/templates/registration/password_reset_form.html:8 +msgid "

Enter your account email address in the\n" +" form below. If the address is valid, you will receive instructions for\n" +" resetting your password.

" +msgstr "

Eposta adresinizi aşağıdaki forma giriniz. Eposta adresi doğruysa şifrenizi sıfırmalak için talimatlar gönderilecek.

" #: babybuddy/views.py:102 -#, python-format msgid "User %(username)s added!" msgstr "Kullanıcı %(username)s eklendi!" #: babybuddy/views.py:113 -#, python-format msgid "User %(username)s updated." msgstr "Kullanıcı %(username)s güncellendi." #: babybuddy/views.py:125 -#, python-brace-format msgid "User {user} deleted." msgstr "Kullanıcı {user} silindi." @@ -942,20 +647,10 @@ msgstr "Kullanıcı API anahtarı yeniden oluşturuldu." msgid "Settings saved!" msgstr "Ayarlar kaydedildi." -#: core/filters.py:11 core/models.py:96 core/models.py:115 -msgid "Tag" -msgstr "" - #: core/forms.py:120 msgid "Name does not match child name." msgstr "İsim çocuk ismiyle eşleşmiyor." -#: core/forms.py:136 -msgid "" -"Click on the tags to add (+) or remove (-) tags or use the text editor to " -"create new tags." -msgstr "" - #: core/models.py:28 msgid "Date can not be in the future." msgstr "Tarih gelecek bir zaman olamaz." @@ -976,45 +671,6 @@ msgstr "Birbaşka girdi belirlenen zaman aralığı ile kesişiyor." msgid "Date/time can not be in the future." msgstr "Tarih/zaman gelecek zaman olamaz." -#: core/models.py:84 core/models.py:237 -#: core/templates/core/diaperchange_list.html:30 -msgid "Color" -msgstr "Renk" - -#: core/models.py:90 -#, fuzzy -#| msgid "Last Name" -msgid "Last used" -msgstr "Soyad" - -#: core/models.py:97 core/templates/core/bmi_list.html:30 -#: core/templates/core/diaperchange_list.html:32 -#: core/templates/core/feeding_list.html:35 -#: core/templates/core/head_circumference_list.html:30 -#: core/templates/core/height_list.html:30 -#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 -#: core/templates/core/temperature_list.html:30 -#: core/templates/core/tummytime_list.html:31 -#: core/templates/core/weight_list.html:30 -msgid "Tags" -msgstr "" - -#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 -#: core/templates/core/bmi_list.html:25 -#: core/templates/core/feeding_list.html:25 -#: core/templates/core/head_circumference_list.html:25 -#: core/templates/core/height_list.html:25 -#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 -#: reports/graphs/diaperchange_amounts.py:37 -#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 -#: reports/graphs/feeding_duration.py:56 -#: reports/graphs/head_circumference_change.py:28 -#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:60 -#: reports/graphs/sleep_pattern.py:153 reports/graphs/sleep_totals.py:59 -#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 -msgid "Date" -msgstr "Tarih" - #: core/models.py:163 msgid "First name" msgstr "Ad" @@ -1069,11 +725,14 @@ msgstr "Yeşil" msgid "Yellow" msgstr "Sarı" -#: core/models.py:239 core/models.py:303 core/models.py:428 -#: core/templates/core/diaperchange_list.html:31 -#: core/templates/core/pumping_list.html:29 -msgid "Amount" -msgstr "Miktar" +#: core/models.py:84 core/models.py:237 +#: core/templates/core/diaperchange_list.html:30 +msgid "Color" +msgstr "Renk" + +#: core/models.py:180 +msgid "Wet and/or solid is required." +msgstr "Islak ve/veya kuru gereklidir." #: core/models.py:276 core/models.py:453 core/models.py:543 core/models.py:632 msgid "Start time" @@ -1099,14 +758,6 @@ msgstr "Anne sütü" msgid "Formula" msgstr "Formül" -#: core/models.py:285 -msgid "Fortified breast milk" -msgstr "Anne sütü" - -#: core/models.py:286 -msgid "Solid food" -msgstr "Katı yiyecek" - #: core/models.py:289 core/templates/core/feeding_list.html:30 msgid "Type" msgstr "Tip" @@ -1123,25 +774,19 @@ msgstr "Sol göğüs" msgid "Right breast" msgstr "Sağ göğüs" -#: core/models.py:296 -msgid "Both breasts" -msgstr "Her iki göğüs" - -#: core/models.py:297 -msgid "Parent fed" -msgstr "Ebeveyn beslenme" - -#: core/models.py:298 -msgid "Self fed" -msgstr "Kendi beslenme" - #: core/models.py:301 core/templates/core/feeding_list.html:29 msgid "Method" msgstr "Metod" -#: core/models.py:452 -msgid "Napping" -msgstr "" +#: core/models.py:239 core/models.py:303 core/models.py:428 +#: core/templates/core/diaperchange_list.html:31 +#: core/templates/core/pumping_list.html:29 +msgid "Amount" +msgstr "Miktar" + +#: core/models.py:243 +msgid "Only \"Bottle\" method is allowed with \"Formula\" type." +msgstr "\"Formül\" tipiyle yalnızca \"Şişe\" metodu kullanılabilir" #: core/models.py:540 core/templates/core/timer_list.html:25 msgid "Name" @@ -1161,7 +806,6 @@ msgid "Timers" msgstr "Zamallayıcılar" #: core/models.py:568 -#, python-brace-format msgid "Timer #{id}" msgstr "Zamallayıcı #{id}" @@ -1169,28 +813,21 @@ msgstr "Zamallayıcı #{id}" msgid "Milestone" msgstr "Dönüm noktası" -#: core/templates/core/bmi_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Sleep Entry" -msgid "Delete a BMI Entry" -msgstr "Uyku Girdisi Sil" - -#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 -#: core/templates/core/bmi_form.html:27 -#, fuzzy -#| msgid "Add a Sleep Entry" -msgid "Add a BMI Entry" -msgstr "Uyku Girdisi Ekle" - -#: core/templates/core/bmi_list.html:15 -msgid "Add BMI" -msgstr "" - -#: core/templates/core/bmi_list.html:70 -#, fuzzy -#| msgid "No timer entries found." -msgid "No BMI entries found." -msgstr "Zamanlayıcı girdisi bulunamadı" +#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 +#: core/templates/core/bmi_list.html:25 +#: core/templates/core/feeding_list.html:25 +#: core/templates/core/head_circumference_list.html:25 +#: core/templates/core/height_list.html:25 +#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 +#: reports/graphs/diaperchange_amounts.py:37 +#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 +#: reports/graphs/feeding_duration.py:56 +#: reports/graphs/head_circumference_change.py:28 +#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:58 +#: reports/graphs/sleep_pattern.py:151 reports/graphs/sleep_totals.py:59 +#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 +msgid "Date" +msgstr "Tarih" #: core/templates/core/child_confirm_delete.html:4 msgid "Delete a Child" @@ -1210,15 +847,15 @@ msgstr "Doğdu" msgid "Age" msgstr "Yaş" -#: core/templates/core/child_list.html:15 -msgid "Add Child" -msgstr "Çocuk Ekle" +#: core/templates/timeline/_timeline.html:38 +msgid "%(since)s ago (%(time)s)" +msgstr "%(since)s önce (%(time)s)" #: core/templates/core/child_list.html:27 msgid "Birth Date" msgstr "Doğum Tarihi" -#: core/templates/core/child_list.html:62 +#: core/templates/core/child_list.html:67 msgid "No children found." msgstr "Çocuk bulunamadı." @@ -1243,18 +880,14 @@ msgstr "Bez Değişikliğini Ekle" msgid "Add" msgstr "Ekle" -#: core/templates/core/diaperchange_list.html:15 -msgid "Add Diaper Change" -msgstr "Bez Değişim Ekle" - -#: core/templates/core/diaperchange_list.html:29 -msgid "Contents" -msgstr "İçerikler" - #: core/templates/core/diaperchange_list.html:77 msgid "No diaper changes found." msgstr "Bez değişikliği bulunamadı" +#: core/templates/core/diaperchange_list.html:63 +msgid "Add a Change" +msgstr "Değişiklik ekle" + #: core/templates/core/feeding_confirm_delete.html:4 msgid "Delete a Feeding" msgstr "Beslenme ekle" @@ -1268,10 +901,6 @@ msgstr "Beslenme güncelle" msgid "Add a Feeding" msgstr "Beslenme ekle" -#: core/templates/core/feeding_list.html:15 -msgid "Add Feeding" -msgstr "Beslenme Ekle" - #: core/templates/core/feeding_list.html:33 msgid "Amt." msgstr "Mkt." @@ -1280,56 +909,6 @@ msgstr "Mkt." msgid "No feedings found." msgstr "Beslenme bulunamadı" -#: core/templates/core/head_circumference_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Tummy Time Entry" -msgid "Delete a Head Circumference Entry" -msgstr "Karın Üstü Uyku Girdisi Sil" - -#: core/templates/core/head_circumference_form.html:8 -#: core/templates/core/head_circumference_form.html:17 -#: core/templates/core/head_circumference_form.html:27 -#, fuzzy -#| msgid "Add a Temperature Entry" -msgid "Add a Head Circumference Entry" -msgstr "Uyku Girdisi Ekle" - -#: core/templates/core/head_circumference_list.html:15 -msgid "Add Head Circumference" -msgstr "" - -#: core/templates/core/head_circumference_list.html:70 -#, fuzzy -#| msgid "No timer entries found." -msgid "No head circumference entries found." -msgstr "Zamanlayıcı girdisi bulunamadı" - -#: core/templates/core/height_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Weight Entry" -msgid "Delete a Height Entry" -msgstr "Ağırlık Girdisi Sil" - -#: core/templates/core/height_form.html:8 -#: core/templates/core/height_form.html:17 -#: core/templates/core/height_form.html:27 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add a Height Entry" -msgstr "Ağırlık Girdisi Ekle" - -#: core/templates/core/height_list.html:15 -#, fuzzy -#| msgid "Add Weight" -msgid "Add Height" -msgstr "Ağırlık Ekle" - -#: core/templates/core/height_list.html:70 -#, fuzzy -#| msgid "No weight entries found." -msgid "No height entries found." -msgstr "Ağırlık girdisi bulunamadı." - #: core/templates/core/note_confirm_delete.html:4 msgid "Delete a Note" msgstr "Not Sil" @@ -1342,53 +921,10 @@ msgstr "Not Güncelle" msgid "Add a Note" msgstr "Not Ekle" -#: core/templates/core/note_list.html:15 -msgid "Add Note" -msgstr "Not Ekle" - #: core/templates/core/note_list.html:64 msgid "No notes found." msgstr "Not bulunamadı" -#: core/templates/core/pumping_confirm_delete.html:4 -#, fuzzy -#| msgid "Delete a Weight Entry" -msgid "Delete a Pumping Entry" -msgstr "Ağırlık Girdisi Sil" - -#: core/templates/core/pumping_form.html:8 -#: core/templates/core/pumping_form.html:17 -#: core/templates/core/pumping_form.html:27 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add a Pumping Entry" -msgstr "Ağırlık Girdisi Ekle" - -#: core/templates/core/pumping_list.html:15 -#, fuzzy -#| msgid "Add a Weight Entry" -msgid "Add Pumping Entry" -msgstr "Ağırlık Girdisi Ekle" - -#: core/templates/core/pumping_list.html:66 -#, fuzzy -#| msgid "No timer entries found." -msgid "No pumping entries found." -msgstr "Zamanlayıcı girdisi bulunamadı" - -#: core/templates/core/quick_timer_nav.html:9 -#: core/templates/core/quick_timer_nav.html:29 -#: core/templates/core/timer_nav.html:37 -msgid "Quick Start Timer" -msgstr "Hızı Zamanlayıcı Başlat" - -#: core/templates/core/quick_timer_nav.html:19 -#: core/templates/core/timer_nav.html:28 -#, fuzzy -#| msgid "Quick Start Timer" -msgid "Quick Start Timer For…" -msgstr "Hızı Zamanlayıcı Başlat" - #: core/templates/core/sleep_confirm_delete.html:4 msgid "Delete a Sleep Entry" msgstr "Uyku Girdisi Sil" @@ -1401,10 +937,6 @@ msgstr "Uyku Girdisi Güncelle" msgid "Add a Sleep Entry" msgstr "Uyku Girdisi Ekle" -#: core/templates/core/sleep_list.html:15 -msgid "Add Sleep" -msgstr "Uyku Ekle" - #: core/templates/core/sleep_list.html:25 #: core/templates/core/timer_form.html:12 #: core/templates/core/timer_list.html:24 @@ -1426,48 +958,10 @@ msgstr "Kısa uyku" msgid "No sleep entries found." msgstr "Uyku girdisi bulunamadı" -#: core/templates/core/temperature_confirm_delete.html:4 -msgid "Delete a Temperature Reading" -msgstr "Beslenme ekle" - -#: core/templates/core/temperature_form.html:8 -#: core/templates/core/temperature_form.html:17 -msgid "Add a Temperature Reading" -msgstr "Beslenme ekle" - -#: core/templates/core/temperature_form.html:27 -msgid "Add a Temperature Entry" -msgstr "Uyku Girdisi Ekle" - -#: core/templates/core/temperature_list.html:15 -msgid "Add Temperature Reading" -msgstr "Sıcaklık Okuma Ekle" - -#: core/templates/core/temperature_list.html:70 -msgid "No temperature entries found." -msgstr "Zamanlayıcı girdisi bulunamadı" - #: core/templates/core/timer_confirm_delete.html:5 -#, python-format msgid "Delete %(object)s" msgstr "Sil %(object)s" -#: core/templates/core/timer_confirm_delete_inactive.html:5 -msgid "Delete All Inactive Timers" -msgstr "Pasif Tüm Zamanlayıcıları Sil" - -#: core/templates/core/timer_confirm_delete_inactive.html:10 -msgid "Delete Inactive" -msgstr "Pasif Sil" - -#: core/templates/core/timer_confirm_delete_inactive.html:17 -#, fuzzy, python-format -#| msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" -msgid "Are you sure you want to delete %(number)s inactive timer?" -msgid_plural "Are you sure you want to delete %(number)s inactive timers?" -msgstr[0] "%(number)s pasif zamanlıyıcıları silmek istediğinize emin misiniz?" -msgstr[1] "%(number)s pasif zamanlıyıcıları silmek istediğinize emin misiniz?" - #: core/templates/core/timer_detail.html:28 msgid "Started" msgstr "Başladı" @@ -1476,25 +970,16 @@ msgstr "Başladı" msgid "Stopped" msgstr "Durdu" -#: core/templates/core/timer_detail.html:34 -#, python-format -msgid "%(timer)s created by %(user)s" -msgstr "%(timer)s %(user)s tarafından oluşturuldu" +#: core/templates/core/timer_detail.html:26 +msgid "%(timer)s created by %(object.user)s" +msgstr "%(timer)s %(object.user)s tarafından oluşturuldu" #: core/templates/core/timer_detail.html:63 msgid "Timer actions" msgstr "Zamanlayıcı eylemleri" -#: core/templates/core/timer_detail.html:77 -msgid "Restart timer" -msgstr "Yeniden başlatma zamanlayıcısı" - -#: core/templates/core/timer_detail.html:84 -msgid "Delete timer" -msgstr "Silme zamanlayıcısı" - #: core/templates/core/timer_form.html:22 -#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:15 +#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:23 msgid "Start Timer" msgstr "Zamanlayıcı Başlat" @@ -1502,30 +987,30 @@ msgstr "Zamanlayıcı Başlat" msgid "No timer entries found." msgstr "Zamanlayıcı girdisi bulunamadı" -#: core/templates/core/timer_list.html:68 -msgid "Delete Inactive Timers" -msgstr "Pasif Zamanlayıcıları Sil" +#: babybuddy/templates/babybuddy/nav-dropdown.html:32 +#: core/templates/core/timer_nav.html:18 +msgid "Quick Start Timer" +msgstr "Hızı Zamanlayıcı Başlat" -#: core/templates/core/timer_nav.html:20 +#: core/templates/core/timer_nav.html:28 msgid "View Timers" msgstr "Zamanlayıcıları İzle" -#: core/templates/core/timer_nav.html:44 +#: core/templates/core/timer_nav.html:32 #: dashboard/templates/cards/timer_list.html:6 msgid "Active Timers" msgstr "Etkin Zamanlayıcılar" -#: core/templates/core/timer_nav.html:50 +#: core/templates/core/timer_nav.html:38 #: dashboard/templates/cards/diaperchange_last.html:17 #: dashboard/templates/cards/diaperchange_types.html:12 #: dashboard/templates/cards/feeding_day.html:20 #: dashboard/templates/cards/feeding_day.html:52 #: dashboard/templates/cards/feeding_last.html:17 #: dashboard/templates/cards/feeding_last_method.html:43 +#: dashboard/templates/cards/sleep_day.html:14 #: dashboard/templates/cards/sleep_last.html:17 #: dashboard/templates/cards/sleep_naps_day.html:18 -#: dashboard/templates/cards/sleep_recent.html:20 -#: dashboard/templates/cards/sleep_recent.html:52 #: dashboard/templates/cards/tummytime_day.html:14 msgid "None" msgstr "Hiç" @@ -1543,10 +1028,6 @@ msgstr "Karın Üstü Uyku Girdisi Güncelle" msgid "Add a Tummy Time Entry" msgstr "Karın Üstü Zamanı Girdisi Ekle" -#: core/templates/core/tummytime_list.html:15 -msgid "Add Tummy Time" -msgstr "Karın Üstü Zamanı Ekle" - #: core/templates/core/tummytime_list.html:67 msgid "No tummy time entries found." msgstr "Karın Üstü Zamanı Girdisi bulunamadı." @@ -1561,17 +1042,1017 @@ msgstr "Ağırlık Girdisi Sil" msgid "Add a Weight Entry" msgstr "Ağırlık Girdisi Ekle" -#: core/templates/core/weight_list.html:15 -msgid "Add Weight" -msgstr "Ağırlık Ekle" - #: core/templates/core/weight_list.html:70 msgid "No weight entries found." msgstr "Ağırlık girdisi bulunamadı." +#: core/timeline.py:164 +msgid "%(child)s had a diaper change." +msgstr "%(child)s bez değiştirildi." + +#: core/timeline.py:145 +msgid "%(child)s started feeding." +msgstr "%(child)s beslenmeye başladı." + +#: core/timeline.py:158 +msgid "%(child)s finished feeding." +msgstr "%(child)s beslenmesi bitti." + +#: core/timeline.py:91 +msgid "%(child)s fell asleep." +msgstr "%(child)s uyudu." + +#: core/timeline.py:103 +msgid "%(child)s woke up." +msgstr "%(child)s uyandı" + +#: core/timeline.py:53 +msgid "%(child)s started tummy time!" +msgstr "%(child)s karın üstü zamanı başladı!" + +#: core/timeline.py:65 +msgid "%(child)s finished tummy time." +msgstr "%(child)s karın üstü zamanı bitti." + +#: core/views.py:33 +msgid "%(model)s entry for %(child)s added!" +msgstr "%(child)s için %(model)s girdisi eklendi!" + +#: core/views.py:35 core/views.py:308 +msgid "%(model)s entry added!" +msgstr "%(model)s girdisi eklendi!" + +#: core/views.py:61 core/views.py:316 +msgid "%(model)s entry for %(child)s updated." +msgstr "%(child)s için %(model)s girdisi güncellendi." + +#: core/views.py:63 +msgid "%(model)s entry updated." +msgstr "%(model)s girdisi güncellendi." + +#: core/views.py:115 +msgid "%(first_name)s %(last_name)s added!" +msgstr "%(first_name)s %(last_name)s eklendi!" + +#: core/views.py:478 +msgid "%(timer)s stopped." +msgstr "%(timer)s durdu." + +#: dashboard/templates/cards/diaperchange_last.html:6 +msgid "Last Diaper Change" +msgstr "En Son Bez Değişikliği" + +#: dashboard/templates/cards/diaperchange_last.html:8 +#: dashboard/templates/cards/feeding_last.html:8 +#: dashboard/templates/cards/sleep_last.html:8 +#: dashboard/templates/cards/tummytime_last.html:8 +msgid "%(time)s ago" +msgstr "%(time)s önce" + +#: dashboard/templates/cards/tummytime_last.html:18 +msgid "Never" +msgstr "Asla" + +#: dashboard/templates/cards/diaperchange_types.html:14 +msgid "Past Week" +msgstr "Geçen Hafta" + +#: dashboard/templates/cards/diaperchange_types.html:27 +msgid "wet" +msgstr "ıslak" + +#: dashboard/templates/cards/diaperchange_types.html:35 +msgid "solid" +msgstr "kuru" + +#: dashboard/templates/cards/diaperchange_types.html:49 +msgid "today" +msgstr "bugün" + +#: dashboard/templates/cards/diaperchange_types.html:51 +msgid "yesterday" +msgstr "dün" + +#: dashboard/templates/cards/diaperchange_types.html:53 +msgid "%(key)s days ago" +msgstr "%(key)s gün önce" + +#: dashboard/templates/cards/feeding_last.html:6 +msgid "Last Feeding" +msgstr "Son Beslenme" + +#: dashboard/templates/cards/feeding_last_method.html:6 +msgid "Last Feeding Method" +msgstr "Son Beslenme Metodu" + +#: dashboard/templates/cards/sleep_day.html:6 +msgid "Today's Sleep" +msgstr "Bugünkü Uyku" + +#: dashboard/templates/cards/sleep_day.html:11 +#: dashboard/templates/cards/sleep_naps_day.html:13 +#: dashboard/templates/cards/tummytime_day.html:11 +msgid "None yet today" +msgstr "Bugün Henüz Yok" + +#: dashboard/templates/cards/sleep_day.html:20 +msgid "%(count)s sleep entries" +msgstr "%(count)s uygu girdileri" + +#: dashboard/templates/cards/sleep_last.html:4 +msgid "Last Slept" +msgstr "Son Uyku" + +#: dashboard/templates/cards/sleep_naps_day.html:6 +msgid "Today's Naps" +msgstr "Bugünkü Kısa Uykular" + +#: dashboard/templates/cards/sleep_naps_day.html:12 +msgid "%(count)s nap%(plural)s" +msgstr "%(count)s kısa uyku%(plural)s" + +#: dashboard/templates/cards/statistics.html:7 +msgid "Statistics" +msgstr "İstatistikler" + +#: dashboard/templates/cards/statistics.html:25 +msgid "Not enough data" +msgstr "Yeterli veri yok" + +#: dashboard/templates/cards/timer_list.html:12 +msgid "%(count)s active timer%(plural)s" +msgstr "%(count)s etkin zamanlayıcı%(plural)s" + +#: dashboard/templates/cards/timer_list.html:19 +msgid "Started by %(instance.user)s at %(start)s" +msgstr "%(instance.user)s tarafından %(start)s da başlatıldı" + +#: dashboard/templates/cards/tummytime_day.html:6 +msgid "Today's Tummy Time" +msgstr "Bugünkü Karın Üstü Zamanı" + +#: dashboard/templates/cards/tummytime_day.html:22 +msgid "%(duration)s at %(end)s" +msgstr "%(end)s de %(duration)s" + +#: dashboard/templates/cards/tummytime_last.html:6 +msgid "Last Tummy Time" +msgstr "En Son Karın Üstü Zamanı" + +#: dashboard/templates/dashboard/child_button_group.html:3 +msgid "Child actions" +msgstr "Çocuk eylemleri" + +#: reports/templates/reports/diaperchange_types.html:4 +#: reports/templates/reports/diaperchange_types.html:8 +#: reports/templates/reports/report_list.html:12 +msgid "Diaper Change Types" +msgstr "Bez Değişim Tipleri" + +#: reports/templates/reports/diaperchange_lifetimes.html:4 +#: reports/templates/reports/diaperchange_lifetimes.html:8 +#: reports/templates/reports/report_list.html:13 +msgid "Diaper Lifetimes" +msgstr "Bez Ömrü" + +#: reports/templates/reports/report_list.html:15 +msgid "Feeding Durations (Average)" +msgstr "Beslenme Süreleri (Ortalama)" + +#: reports/templates/reports/report_list.html:19 +#: reports/templates/reports/sleep_pattern.html:4 +#: reports/templates/reports/sleep_pattern.html:8 +msgid "Sleep Pattern" +msgstr "Uyku Deseni" + +#: reports/templates/reports/report_list.html:20 +#: reports/templates/reports/sleep_totals.html:4 +#: reports/templates/reports/sleep_totals.html:8 +msgid "Sleep Totals" +msgstr "Toplam Uyku" + +#: dashboard/templatetags/cards.py:420 +msgid "Diaper change frequency" +msgstr "Bez değişim sıklığı" + +#: dashboard/templatetags/cards.py:466 +msgid "Feeding frequency" +msgstr "Beslenme sıklığı" + +#: dashboard/templatetags/cards.py:328 +msgid "Average nap duration" +msgstr "Ortalama kısa uyku süresi" + +#: dashboard/templatetags/cards.py:335 +msgid "Average naps per day" +msgstr "Ortalama günlük kısa uyku" + +#: dashboard/templatetags/cards.py:345 +msgid "Average sleep duration" +msgstr "Ortalama uyku süresi" + +#: dashboard/templatetags/cards.py:352 +msgid "Average awake duration" +msgstr "Ortalama uyanıklık süresi" + +#: dashboard/templatetags/cards.py:362 +msgid "Weight change per week" +msgstr "Haftalık ağırlık değişimi" + +#: reports/graphs/diaperchange_lifetimes.py:35 +msgid "Diaper Lifetimes" +msgstr "Bez Ömürleri" + +#: reports/graphs/diaperchange_lifetimes.py:36 +msgid "Time between changes (hours)" +msgstr "Değişimler arası zaman (saat)" + +#: reports/graphs/diaperchange_types.py:41 reports/graphs/feeding_amounts.py:58 +msgid "Total" +msgstr "Toplam" + +#: reports/graphs/diaperchange_types.py:48 +msgid "Diaper Change Types" +msgstr "Bez Değişim Tipleri" + +#: reports/graphs/diaperchange_types.py:51 +msgid "Number of changes" +msgstr "Değişik sayıları" + +#: reports/graphs/feeding_duration.py:38 +msgid "Average duration" +msgstr "Ortalama süre" + +#: reports/graphs/feeding_duration.py:46 +msgid "Total feedings" +msgstr "Toplam beslenmeler" + +#: reports/graphs/feeding_duration.py:55 +msgid "Average Feeding Durations" +msgstr "Ortalama Beslenme Süreleri" + +#: reports/graphs/feeding_duration.py:58 +msgid "Average duration (minutes)" +msgstr "Ortalama süre (dakika)" + +#: reports/graphs/feeding_duration.py:60 +msgid "Number of feedings" +msgstr "Beslenme sayısı" + +#: reports/graphs/sleep_pattern.py:148 +msgid "Sleep Pattern" +msgstr "Uyku Deseni" + +#: reports/graphs/sleep_pattern.py:165 +msgid "Time of day" +msgstr "Günün zamanı" + +#: reports/graphs/sleep_totals.py:48 +msgid "Total sleep" +msgstr "Toplam Uyku" + +#: reports/graphs/sleep_totals.py:58 +msgid "Sleep Totals" +msgstr "Uyku Toplamları" + +#: reports/graphs/sleep_totals.py:61 +msgid "Hours of sleep" +msgstr "Uyku Saatleri" + +#: reports/graphs/weight_change.py:27 +msgid "Weight" +msgstr "Ağırlık" + +#: reports/templates/reports/feeding_duration.html:4 +#: reports/templates/reports/feeding_duration.html:8 +msgid "Average Feeding Durations" +msgstr "Ortalama Beslenme Süreleri" + +#: dashboard/templates/dashboard/child_button_group.html:12 +#: reports/templates/reports/base.html:9 +#: reports/templates/reports/report_list.html:4 +msgid "Reports" +msgstr "Raporlar" + +#: reports/templates/reports/report_base.html:19 +msgid "There is no enough data to generate this report." +msgstr "Raporu oluşturmak için yeterli veri yok." + +#: core/models.py:296 +msgid "Both breasts" +msgstr "Her iki göğüs" + +#: babybuddy/settings/base.py:173 +msgid "German" +msgstr "Almanca" + +#: babybuddy/settings/base.py:177 +msgid "Spanish" +msgstr "İspanyolca" + +#: babybuddy/settings/base.py:178 +msgid "Swedish" +msgstr "İsveççe" + +#: babybuddy/settings/base.py:179 +msgid "Turkish" +msgstr "Türkçe" + +#: babybuddy/templates/error/403.html:9 +msgid "You do not have permission to access this resource. Contact a site administrator for assistance." +msgstr "Bu kaynağa erişmek için izniniz yoktur. Yardım için website yöneticisiyle iletişime geçin." + +#: babybuddy/templates/babybuddy/nav-dropdown.html:75 +#: babybuddy/templates/babybuddy/nav-dropdown.html:179 core/models.py:506 +#: core/models.py:519 core/models.py:520 core/models.py:523 +#: core/templates/core/temperature_confirm_delete.html:7 +#: core/templates/core/temperature_form.html:13 +#: core/templates/core/temperature_list.html:4 +#: core/templates/core/temperature_list.html:7 +#: core/templates/core/temperature_list.html:12 +#: core/templates/core/temperature_list.html:29 +msgid "Temperature" +msgstr "Sıcaklık" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:185 +msgid "Temperature reading" +msgstr "Sıcaklık okuma" + +#: babybuddy/templates/babybuddy/welcome.html:14 +msgid "Learn about and predict baby's needs without (as much) guess work by using Baby Buddy to track —" +msgstr "Baby Buddy ile takip ederek tahmin etmeye (çok) gerek kalmadan bebeğin ihtiyaçlarını öğren —" + +#: babybuddy/templates/babybuddy/welcome.html:56 +msgid "As the amount of entries grows, Baby Buddy will help parents and caregivers to identify small patterns in baby's habits using the dashboard and graphs. Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and dads with 2AM feedings and changings. To get started, just click the button below to add your first (or second, third, etc.) child!" +msgstr "Girdiler arttıkça Baby Buddy ailelere bebeklerin alışkanlıkları hakkında kontrol paneli ve grafikler ile fikir verir. Baby Buddy mobil dostudur ve yorgun anne babaların gece 2'de yapacakları beslenmeler ve bez değişiklikleri için kotu temayı kullanır. Başlamak için yalnızca aşağıdaki butonu tıklayınız ve ilk (veya ikinci, üçüncü, vs.) çocuğunuzu ekleyiniz!" + +#: babybuddy/templates/registration/password_reset_confirm.html:13 +msgid "Oh snap! The two passwords did not match. Please try again." +msgstr "Hay Aksi! Şifreler uyuşmuyor. Lütfen tekrar deneyiniz." + +#: babybuddy/templates/registration/password_reset_done.html:9 +msgid "We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly." +msgstr "Eğer girdiğiniz eposta ile kayıtlı kullanıcı varsa şifrenizi yeniden oluşturmak için talimatları epostanıza gönderdik. Kısa süre sonra size ulaşacak." + +#: babybuddy/templates/registration/password_reset_done.html:15 +msgid "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder." +msgstr "Eğer eposta size ulaşmazsa lütfen girdiğiniz eposta adresinizin doğru olduğuna emin olun ve epostanızdaki spam klasörünü kontrol ediniz." + +#: babybuddy/templates/registration/password_reset_form.html:9 +msgid "Enter your account email address in the form below. If the address is valid, you will receive instructions for resetting your password." +msgstr "Eposta adresinizi aşağıdaki forma giriniz. Eposta adresi doğruysa şifrenizi sıfırmalak için talimatlar gönderilecek." + +#: core/models.py:285 +msgid "Fortified breast milk" +msgstr "Anne sütü" + +#: core/templates/core/temperature_confirm_delete.html:4 +msgid "Delete a Temperature Reading" +msgstr "Beslenme ekle" + +#: core/templates/core/temperature_form.html:8 +#: core/templates/core/temperature_form.html:17 +msgid "Add a Temperature Reading" +msgstr "Beslenme ekle" + +#: core/templates/core/temperature_form.html:27 +msgid "Add a Temperature Entry" +msgstr "Uyku Girdisi Ekle" + +#: core/templates/core/temperature_list.html:70 +msgid "No temperature entries found." +msgstr "Zamanlayıcı girdisi bulunamadı" + +#: core/templates/core/timer_detail.html:34 +msgid "%(timer)s created by %(user)s" +msgstr "%(timer)s %(user)s tarafından oluşturuldu" + +#: core/utils.py:40 +msgid "%(hours)s hour" +msgid_plural "%(hours)s hours" +msgstr[0] "%(hours)s saat" +msgstr[1] "%(hours)s saat" + +#: core/utils.py:44 +msgid "%(minutes)s minute" +msgid_plural "%(minutes)s minutes" +msgstr[0] "%(minutes)s dakika" +msgstr[1] "%(minutes)s dakika" + +#: core/utils.py:50 +msgid "%(seconds)s second" +msgid_plural "%(seconds)s seconds" +msgstr[0] "%(seconds)s saniye" +msgstr[1] "%(seconds)s saniye" + +#: core/views.py:69 core/views.py:146 +msgid "%(model)s entry deleted." +msgstr "%(model)s girdisi güncellendi." + +#: core/views.py:366 +msgid "%(model)s reading added!" +msgstr "%(model)s girdisi eklendi!" + +#: core/views.py:374 +msgid "%(model)s reading for %(child)s updated." +msgstr "%(child)s için %(model)s girdisi güncellendi." + +#: dashboard/templates/cards/timer_list.html:27 +msgid "Started by %(user)s at %(start)s" +msgstr "%(user)s tarafından %(start)s da başlatıldı" + +#: reports/templates/reports/feeding_amounts.html:4 +#: reports/templates/reports/feeding_amounts.html:8 +#: reports/templates/reports/report_list.html:14 +msgid "Feeding Amounts" +msgstr "Beslenmeler" + +#: reports/graphs/feeding_amounts.py:27 +msgid "Total feeding amount" +msgstr "Toplam beslenmeler" + +#: reports/graphs/feeding_amounts.py:36 +msgid "Total Feeding Amounts" +msgstr "Ortalama Beslenme Süreleri" + +#: reports/graphs/feeding_amounts.py:72 +msgid "Feeding amount" +msgstr "Beslenme" + +#: reports/templates/reports/report_base.html:17 +msgid "There is not enough data to generate this report." +msgstr "Raporu oluşturmak için yeterli veri yok." + +#: babybuddy/models.py:69 +msgid "Timezone" +msgstr "Saat dilimi" + +#: babybuddy/templates/admin/base_site.html:4 +#: babybuddy/templates/admin/base_site.html:7 +#: babybuddy/templates/babybuddy/nav-dropdown.html:359 +msgid "Database Admin" +msgstr "Veritabanı Admin" + +#: core/templates/core/child_list.html:15 +msgid "Add Child" +msgstr "Çocuk Ekle" + +#: core/templates/core/diaperchange_list.html:15 +msgid "Add Diaper Change" +msgstr "Bez Değişim Ekle" + +#: core/templates/core/feeding_list.html:15 +msgid "Add Feeding" +msgstr "Beslenme Ekle" + +#: core/templates/core/note_list.html:15 +msgid "Add Note" +msgstr "Not Ekle" + +#: core/templates/core/sleep_list.html:15 +msgid "Add Sleep" +msgstr "Uyku Ekle" + +#: core/templates/core/temperature_list.html:15 +msgid "Add Temperature Reading" +msgstr "Sıcaklık Okuma Ekle" + +#: core/templates/core/timer_confirm_delete_inactive.html:5 +msgid "Delete All Inactive Timers" +msgstr "Pasif Tüm Zamanlayıcıları Sil" + +#: core/templates/core/timer_confirm_delete_inactive.html:10 +msgid "Delete Inactive" +msgstr "Pasif Sil" + +#: core/templates/core/timer_confirm_delete_inactive.html:17 +msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" +msgstr "%(number)s pasif zamanlıyıcıları silmek istediğinize emin misiniz?" + +#: core/templates/core/timer_list.html:68 +msgid "Delete Inactive Timers" +msgstr "Pasif Zamanlayıcıları Sil" + +#: core/templates/core/tummytime_list.html:15 +msgid "Add Tummy Time" +msgstr "Karın Üstü Zamanı Ekle" + +#: core/templates/core/weight_list.html:15 +msgid "Add Weight" +msgstr "Ağırlık Ekle" + +#: core/views.py:501 +msgid "All inactive timers deleted." +msgstr "Tüm Pasif Zamanlayıcılar Silindi" + +#: core/views.py:511 +msgid "No inactive timers exist." +msgstr "Pasif Zamanlayıcı Yok." + +#: dashboard/templates/cards/feeding_last_method.html:19 +msgid "most recent" +msgstr "en son" + +#: dashboard/templates/cards/feeding_last_method.html:21 +msgid "%(n)s feeding%(plural)s ago" +msgstr "%(n) beslenmeler önce" + +#: dashboard/templates/cards/sleep_last.html:6 +msgid "Last Sleep" +msgstr "En Son Uyku" + +#: reports/templates/reports/report_list.html:11 +msgid "Diaper Change Amounts" +msgstr "Bez Değişim Miktarı" + +#: reports/graphs/diaperchange_amounts.py:27 +msgid "Diaper change amount" +msgstr "Bez değişim miktarı" + +#: reports/graphs/diaperchange_amounts.py:36 +msgid "Diaper Change Amounts" +msgstr "Bez Değişim Miktarı" + +#: reports/graphs/diaperchange_amounts.py:39 +msgid "Change amount" +msgstr "Değişim Miktarı" + +#: reports/templates/reports/diaperchange_amounts.html:4 +#: reports/templates/reports/diaperchange_amounts.html:8 +msgid "Diaper Amounts" +msgstr "Bez Miktarı" + +#: babybuddy/models.py:21 +msgid "If supported by browser, the dashboard will only refresh when visible, and also when receiving focus." +msgstr "Tarayıcı tarafından destekleniyorsa kontrol paneli sadece görünür olduğunda ve ayrıca odaklandığında görünür" + +#: babybuddy/models.py:40 +msgid "Hide Empty Dashboard Cards" +msgstr "Boş Kontrol Paneli Kartlarını Gizle" + +#: babybuddy/models.py:43 +msgid "Hide data older than" +msgstr "Daha eski verileri gizle" + +#: babybuddy/models.py:45 +msgid "This setting controls which data will be shown in the dashboard." +msgstr "Bu ayar, kontrol panelinde hangi verilerin gösterileceğini kontrol eder." + +#: babybuddy/models.py:51 +msgid "show all data" +msgstr "tüm veriyi göster" + +#: babybuddy/models.py:52 +msgid "1 day" +msgstr "1 gün" + +#: babybuddy/models.py:53 +msgid "2 days" +msgstr "2 gün" + +#: babybuddy/models.py:54 +msgid "3 days" +msgstr "3 gün" + +#: babybuddy/models.py:55 +msgid "1 week" +msgstr "1 hafta" + +#: babybuddy/models.py:56 +msgid "4 weeks" +msgstr "4 hafta" + +#: babybuddy/settings/base.py:168 +msgid "Dutch" +msgstr "Flemenkçe" + +#: babybuddy/settings/base.py:172 +msgid "Finnish" +msgstr "Fince" + +#: babybuddy/settings/base.py:174 +msgid "Italian" +msgstr "İtalyanca" + +#: babybuddy/settings/base.py:175 +msgid "Polish" +msgstr "Lehçe" + +#: babybuddy/settings/base.py:176 +msgid "Portuguese" +msgstr "Portekizce" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:118 +#: core/templates/timeline/timeline.html:4 +#: core/templates/timeline/timeline.html:7 +#: dashboard/templates/dashboard/child_button_group.html:9 +msgid "Timeline" +msgstr "Zaman çizelgesi" + +#: core/models.py:286 +msgid "Solid food" +msgstr "Katı yiyecek" + +#: core/models.py:297 +msgid "Parent fed" +msgstr "Ebeveyn beslenme" + +#: core/models.py:298 +msgid "Self fed" +msgstr "Kendi beslenme" + +#: core/templates/core/diaperchange_list.html:29 +msgid "Contents" +msgstr "İçerikler" + +#: core/templates/core/timer_detail.html:77 +msgid "Restart timer" +msgstr "Yeniden başlatma zamanlayıcısı" + +#: core/templates/core/timer_detail.html:84 +msgid "Delete timer" +msgstr "Silme zamanlayıcısı" + +#: core/templatetags/datetime.py:60 +msgid "Today" +msgstr "bugün" + +#: core/templatetags/datetime.py:75 +msgid "{}, {}" +msgstr "{}, {}" + +#: core/templatetags/duration.py:25 +msgid "0 days" +msgstr "0 gün" + +#: core/timeline.py:137 +msgid "Amount: %(amount).0f" +msgstr "Miktar: %(amount)" + +#: core/timeline.py:157 +msgid "Contents: %(contents)s" +msgstr "İçerik: %(contents)s" + +#: dashboard/templates/cards/diaperchange_last.html:12 +#: dashboard/templates/cards/feeding_last.html:12 +#: dashboard/templates/cards/sleep_last.html:12 +#: dashboard/templates/cards/tummytime_last.html:13 +msgid "
%(since)s ago
%(time)s" +msgstr "
%(since)s önce
%(time)s" + +#: dashboard/templates/cards/feeding_day.html:6 +msgid "Today's Feeding" +msgstr "Bugünkü beslenme" + +#: dashboard/templates/cards/feeding_day.html:20 +msgid "%(count)s feeding entries" +msgstr "%(count) beslenme girdileri" + +#: dashboard/templates/cards/statistics.html:42 +msgid "No data yet" +msgstr "Henüz veri yok" + +#: reports/templates/reports/report_list.html:21 +msgid "Tummy Time Durations (Sum)" +msgstr "Karın üstü süresi (Sum)" + +#: core/templates/timeline/_timeline.html:61 +#: dashboard/templates/dashboard/child_button_group.html:20 +msgid "Edit" +msgstr "Düzenle" + +#: dashboard/templatetags/cards.py:456 +msgid "Feeding frequency (past 3 days)" +msgstr "Beslenme sıklığı (son 3 gün)" + +#: dashboard/templatetags/cards.py:460 +msgid "Feeding frequency (past 2 weeks)" +msgstr "Beslenme sıklığı (son 2 hafta)" + +#: reports/graphs/tummytime_duration.py:34 +msgid "Total duration" +msgstr "Toplam düre" + +#: reports/graphs/tummytime_duration.py:41 +#: reports/graphs/tummytime_duration.py:55 +msgid "Number of sessions" +msgstr "Session sayısı" + +#: reports/graphs/tummytime_duration.py:50 +msgid "Total Tummy Time Durations" +msgstr "Toplam Karın Üstü Süresi" + +#: reports/graphs/tummytime_duration.py:53 +msgid "Total duration (minutes)" +msgstr "Toplam süre (dakika)" + +#: reports/templates/reports/tummytime_duration.html:4 +#: reports/templates/reports/tummytime_duration.html:8 +msgid "Total Tummy Time Durations" +msgstr "Toplam Karın Üstü Süresi" + +#: babybuddy/settings/base.py:169 +#, fuzzy +msgid "English (US)" +msgstr "İngilizce" + +#: babybuddy/settings/base.py:170 +#, fuzzy +msgid "English (UK)" +msgstr "İngilizce" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:171 +msgid "Measurements" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:207 core/models.py:369 +#: core/models.py:381 core/models.py:382 core/models.py:385 +#: core/templates/core/height_confirm_delete.html:7 +#: core/templates/core/height_form.html:13 +#: core/templates/core/height_list.html:4 +#: core/templates/core/height_list.html:7 +#: core/templates/core/height_list.html:12 +#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 +#: reports/graphs/height_change.py:30 +#: reports/templates/reports/height_change.html:4 +#: reports/templates/reports/height_change.html:8 +#: reports/templates/reports/report_list.html:17 +#, fuzzy +msgid "Height" +msgstr "Ağırlık" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:213 +#, fuzzy +msgid "Height entry" +msgstr "Ağırlık girdisi" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:221 core/models.py:338 +#: core/models.py:351 core/models.py:352 core/models.py:355 +#: core/templates/core/head_circumference_confirm_delete.html:7 +#: core/templates/core/head_circumference_form.html:13 +#: core/templates/core/head_circumference_list.html:4 +#: core/templates/core/head_circumference_list.html:7 +#: core/templates/core/head_circumference_list.html:12 +#: core/templates/core/head_circumference_list.html:29 +#: reports/graphs/head_circumference_change.py:19 +#: reports/graphs/head_circumference_change.py:30 +#: reports/templates/reports/head_circumference_change.html:4 +#: reports/templates/reports/head_circumference_change.html:8 +#: reports/templates/reports/report_list.html:16 +msgid "Head Circumference" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:227 +msgid "Head Circumference entry" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:235 core/models.py:139 +#: core/models.py:151 core/models.py:152 core/models.py:155 +#: core/templates/core/bmi_confirm_delete.html:7 +#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 +#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 +#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 +#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 +#: reports/templates/reports/bmi_change.html:8 +msgid "BMI" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:241 +#, fuzzy +msgid "BMI entry" +msgstr "Uyku Girişi" + +#: core/models.py:452 +msgid "Napping" +msgstr "" + +#: core/templates/core/bmi_confirm_delete.html:4 +#, fuzzy +msgid "Delete a BMI Entry" +msgstr "Uyku Girdisi Sil" + +#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 +#: core/templates/core/bmi_form.html:27 +#, fuzzy +msgid "Add a BMI Entry" +msgstr "Uyku Girdisi Ekle" + +#: core/templates/core/bmi_list.html:15 +msgid "Add BMI" +msgstr "" + +#: core/templates/core/bmi_list.html:70 +#, fuzzy +msgid "No bmi entries found." +msgstr "Zamanlayıcı girdisi bulunamadı" + +#: core/templates/core/head_circumference_confirm_delete.html:4 +#, fuzzy +msgid "Delete a Head Circumference Entry" +msgstr "Karın Üstü Uyku Girdisi Sil" + +#: core/templates/core/head_circumference_form.html:8 +#: core/templates/core/head_circumference_form.html:17 +#: core/templates/core/head_circumference_form.html:27 +#, fuzzy +msgid "Add a Head Circumference Entry" +msgstr "Uyku Girdisi Ekle" + +#: core/templates/core/head_circumference_list.html:15 +msgid "Add Head Circumference" +msgstr "" + +#: core/templates/core/head_circumference_list.html:70 +#, fuzzy +msgid "No head circumference entries found." +msgstr "Zamanlayıcı girdisi bulunamadı" + +#: core/templates/core/height_confirm_delete.html:4 +#, fuzzy +msgid "Delete a Height Entry" +msgstr "Ağırlık Girdisi Sil" + +#: core/templates/core/height_form.html:8 +#: core/templates/core/height_form.html:17 +#: core/templates/core/height_form.html:27 +#, fuzzy +msgid "Add a Height Entry" +msgstr "Ağırlık Girdisi Ekle" + +#: core/templates/core/height_list.html:15 +#, fuzzy +msgid "Add Height" +msgstr "Ağırlık Ekle" + +#: core/templates/core/height_list.html:70 +#, fuzzy +msgid "No height entries found." +msgstr "Ağırlık girdisi bulunamadı." + +#: core/templates/timeline/_timeline.html:44 +#, fuzzy +msgid "Duration: %(duration)s" +msgstr "Süre çok uzun." + +#: core/templates/timeline/_timeline.html:53 +msgid "%(since)s since previous" +msgstr "" + +#: core/templates/timeline/_timeline.html:85 +msgid "No events" +msgstr "" + +#: core/timeline.py:185 +#, fuzzy +msgid "%(child)s had a %(type)s diaper change." +msgstr "%(child)s bez değiştirildi." + +#: dashboard/templatetags/cards.py:372 +#, fuzzy +msgid "Height change per week" +msgstr "Haftalık ağırlık değişimi" + +#: dashboard/templatetags/cards.py:382 +#, fuzzy +msgid "Head circumference change per week" +msgstr "Haftalık ağırlık değişimi" + +#: dashboard/templatetags/cards.py:392 +#, fuzzy +msgid "BMI change per week" +msgstr "Haftalık ağırlık değişimi" + +#: reports/graphs/bmi_change.py:27 +#, fuzzy +msgid "BMI" +msgstr "Ağırlık" + +#: reports/graphs/feeding_amounts.py:69 +#, fuzzy +msgid "Total Feeding Amount by Type" +msgstr "Ortalama Beslenme Süreleri" + +#: reports/graphs/head_circumference_change.py:27 +msgid "Head Circumference" +msgstr "" + +#: reports/graphs/height_change.py:27 +#, fuzzy +msgid "Height" +msgstr "Ağırlık" + +#: babybuddy/settings/base.py:167 +msgid "Chinese (simplified)" +msgstr "" + +#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 +msgid "Bad Request" +msgstr "" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:14 +msgid "How to Fix" +msgstr "" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:15 +msgid "Add %(origin)s to the CSRF_TRUSTED_ORIGINS environment variable. If multiple origins are required separate with commas." +msgstr "" + +#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 +msgid "Page Not Found" +msgstr "" + +#: babybuddy/templates/error/404.html:9 +msgid "The path %(request_path)s does not exist." +msgstr "" + +#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 +msgid "Server Error" +msgstr "" + +#: babybuddy/templates/error/base.html:14 +#, fuzzy +msgid "Return to Baby Buddy" +msgstr "Baby Buddy'e Hoşgeldiniz!" + +#: babybuddy/views.py:43 +msgid "Forbidden" +msgstr "" + +#: babybuddy/views.py:44 +msgid "CSRF verification failed. Request aborted." +msgstr "" + +#: babybuddy/settings/base.py:166 +msgid "Catalan" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:93 +#: babybuddy/templates/babybuddy/nav-dropdown.html:316 core/models.py:437 +#: core/models.py:438 core/models.py:441 +#: core/templates/core/pumping_confirm_delete.html:7 +#: core/templates/core/pumping_form.html:13 +#: core/templates/core/pumping_list.html:4 +#: core/templates/core/pumping_list.html:7 +#: core/templates/core/pumping_list.html:12 +#: reports/templates/reports/pumping_amounts.html:4 +#: reports/templates/reports/pumping_amounts.html:8 +msgid "Pumping" +msgstr "" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:322 +#, fuzzy +msgid "Pumping entry" +msgstr "Ağırlık girdisi" + +#: core/filters.py:11 core/models.py:96 core/models.py:115 +msgid "Tag" +msgstr "" + +#: core/forms.py:136 +msgid "Click on the tags to add (+) or remove (-) tags or use the text editor to create new tags." +msgstr "" + +#: core/models.py:90 +#, fuzzy +msgid "Last used" +msgstr "Soyad" + +#: core/models.py:97 core/templates/core/bmi_list.html:30 +#: core/templates/core/diaperchange_list.html:32 +#: core/templates/core/feeding_list.html:35 +#: core/templates/core/head_circumference_list.html:30 +#: core/templates/core/height_list.html:30 +#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 +#: core/templates/core/temperature_list.html:30 +#: core/templates/core/tummytime_list.html:31 +#: core/templates/core/weight_list.html:30 +msgid "Tags" +msgstr "" + +#: core/templates/core/pumping_confirm_delete.html:4 +#, fuzzy +msgid "Delete a Pumping Entry" +msgstr "Ağırlık Girdisi Sil" + +#: core/templates/core/pumping_form.html:8 +#: core/templates/core/pumping_form.html:17 +#: core/templates/core/pumping_form.html:27 +#, fuzzy +msgid "Add a Pumping Entry" +msgstr "Ağırlık Girdisi Ekle" + +#: core/templates/core/pumping_list.html:15 +#, fuzzy +msgid "Add Pumping Entry" +msgstr "Ağırlık Girdisi Ekle" + +#: core/templates/core/pumping_list.html:66 +#, fuzzy +msgid "No pumping entries found." +msgstr "Zamanlayıcı girdisi bulunamadı" + #: core/templates/core/widget_tag_editor.html:22 #, fuzzy -#| msgid "Last name" msgid "Tag name" msgstr "Soyad" @@ -1609,595 +2090,71 @@ msgctxt "Error modal" msgid "Close" msgstr "" -#: core/templates/timeline/_timeline.html:38 -#, python-format -msgid "%(since)s ago (%(time)s)" -msgstr "%(since)s önce (%(time)s)" - -#: core/templates/timeline/_timeline.html:44 -#, fuzzy, python-format -#| msgid "Duration too long." -msgid "Duration: %(duration)s" -msgstr "Süre çok uzun." - -#: core/templates/timeline/_timeline.html:53 -#, python-format -msgid "%(since)s since previous" -msgstr "" - -#: core/templates/timeline/_timeline.html:61 -#: dashboard/templates/dashboard/child_button_group.html:20 -msgid "Edit" -msgstr "Düzenle" - -#: core/templates/timeline/_timeline.html:85 -msgid "No events" -msgstr "" - -#: core/templatetags/datetime.py:60 -msgid "Today" -msgstr "bugün" - -#: core/templatetags/datetime.py:75 -msgid "{}, {}" -msgstr "{}, {}" - -#: core/templatetags/duration.py:25 -msgid "0 days" -msgstr "0 gün" - -#: core/templatetags/duration.py:111 -#: dashboard/templates/cards/diaperchange_types.html:49 -msgid "today" -msgstr "bugün" - -#: core/templatetags/duration.py:113 -#: dashboard/templates/cards/diaperchange_types.html:51 -msgid "yesterday" -msgstr "dün" - -#: core/templatetags/duration.py:116 -#, fuzzy -#| msgid "%(key)s days ago" -msgid " days ago" -msgstr "%(key)s gün önce" - -#: core/timeline.py:53 -#, python-format -msgid "%(child)s started tummy time!" -msgstr "%(child)s karın üstü zamanı başladı!" - -#: core/timeline.py:65 -#, python-format -msgid "%(child)s finished tummy time." -msgstr "%(child)s karın üstü zamanı bitti." - -#: core/timeline.py:91 -#, python-format -msgid "%(child)s fell asleep." -msgstr "%(child)s uyudu." - -#: core/timeline.py:103 -#, python-format -msgid "%(child)s woke up." -msgstr "%(child)s uyandı" - -#: core/timeline.py:137 -#, fuzzy, python-format -#| msgid "Amount: %(amount).0f" -msgid "Amount: %(amount).0f" -msgstr "Miktar: %(amount)" - -#: core/timeline.py:145 -#, python-format -msgid "%(child)s started feeding." -msgstr "%(child)s beslenmeye başladı." - -#: core/timeline.py:158 -#, python-format -msgid "%(child)s finished feeding." -msgstr "%(child)s beslenmesi bitti." - -#: core/timeline.py:185 -#, fuzzy, python-format -#| msgid "%(child)s had a diaper change." -msgid "%(child)s had a %(type)s diaper change." -msgstr "%(child)s bez değiştirildi." - -#: core/utils.py:40 -#, python-format -msgid "%(hours)s hour" -msgid_plural "%(hours)s hours" -msgstr[0] "%(hours)s saat" -msgstr[1] "%(hours)s saat" - -#: core/utils.py:44 -#, python-format -msgid "%(minutes)s minute" -msgid_plural "%(minutes)s minutes" -msgstr[0] "%(minutes)s dakika" -msgstr[1] "%(minutes)s dakika" - -#: core/utils.py:50 -#, python-format -msgid "%(seconds)s second" -msgid_plural "%(seconds)s seconds" -msgstr[0] "%(seconds)s saniye" -msgstr[1] "%(seconds)s saniye" - -#: core/views.py:33 -#, python-format -msgid "%(model)s entry for %(child)s added!" -msgstr "%(child)s için %(model)s girdisi eklendi!" - -#: core/views.py:35 core/views.py:308 -#, python-format -msgid "%(model)s entry added!" -msgstr "%(model)s girdisi eklendi!" - -#: core/views.py:61 core/views.py:316 -#, python-format -msgid "%(model)s entry for %(child)s updated." -msgstr "%(child)s için %(model)s girdisi güncellendi." - -#: core/views.py:63 -#, python-format -msgid "%(model)s entry updated." -msgstr "%(model)s girdisi güncellendi." - -#: core/views.py:69 core/views.py:146 -#, python-format -msgid "%(model)s entry deleted." -msgstr "%(model)s girdisi güncellendi." - -#: core/views.py:115 -#, python-format -msgid "%(first_name)s %(last_name)s added!" -msgstr "%(first_name)s %(last_name)s eklendi!" - -#: core/views.py:366 -#, python-format -msgid "%(model)s reading added!" -msgstr "%(model)s girdisi eklendi!" - -#: core/views.py:374 -#, python-format -msgid "%(model)s reading for %(child)s updated." -msgstr "%(child)s için %(model)s girdisi güncellendi." - -#: core/views.py:483 -#, python-format -msgid "%(timer)s stopped." -msgstr "%(timer)s durdu." - -#: core/views.py:506 -msgid "All inactive timers deleted." -msgstr "Tüm Pasif Zamanlayıcılar Silindi" - -#: core/views.py:516 -msgid "No inactive timers exist." -msgstr "Pasif Zamanlayıcı Yok." - -#: dashboard/templates/cards/diaperchange_last.html:6 -msgid "Last Diaper Change" -msgstr "En Son Bez Değişikliği" - -#: dashboard/templates/cards/diaperchange_last.html:12 -#: dashboard/templates/cards/feeding_last.html:12 -#: dashboard/templates/cards/sleep_last.html:12 -#: dashboard/templates/cards/tummytime_last.html:13 -#, python-format -msgid "
%(since)s ago
%(time)s" -msgstr "
%(since)s önce
%(time)s" - -#: dashboard/templates/cards/diaperchange_types.html:14 -msgid "Past Week" -msgstr "Geçen Hafta" - -#: dashboard/templates/cards/diaperchange_types.html:27 -msgid "wet" -msgstr "ıslak" - -#: dashboard/templates/cards/diaperchange_types.html:35 -msgid "solid" -msgstr "kuru" - -#: dashboard/templates/cards/diaperchange_types.html:53 -#, python-format -msgid "%(key)s days ago" -msgstr "%(key)s gün önce" - -#: dashboard/templates/cards/feeding_day.html:6 -msgid "Today's Feeding" -msgstr "Bugünkü beslenme" - -#: dashboard/templates/cards/feeding_day.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s feeding" -msgid_plural "%(counter)s feedings" -msgstr[0] "%(count)s uygu girdileri" -msgstr[1] "%(count)s uygu girdileri" - #: dashboard/templates/cards/feeding_day.html:32 -#: dashboard/templates/cards/sleep_recent.html:32 -#, python-format msgid "
%(since)s
" msgstr "" -#: dashboard/templates/cards/feeding_last.html:6 -msgid "Last Feeding" -msgstr "Son Beslenme" - -#: dashboard/templates/cards/feeding_last_method.html:6 -msgid "Last Feeding Method" -msgstr "Son Beslenme Metodu" - -#: dashboard/templates/cards/feeding_last_method.html:19 -msgid "most recent" -msgstr "en son" - -#: dashboard/templates/cards/feeding_last_method.html:21 -#, fuzzy, python-format -#| msgid "%(n)s feeding%(plural)s ago" -msgid "%(n)s feeding ago" -msgid_plural "%(n)s feedings ago" -msgstr[0] "%(n) beslenmeler önce" -msgstr[1] "%(n) beslenmeler önce" - -#: dashboard/templates/cards/sleep_last.html:6 -msgid "Last Sleep" -msgstr "En Son Uyku" - -#: dashboard/templates/cards/sleep_naps_day.html:6 -msgid "Today's Naps" -msgstr "Bugünkü Kısa Uykular" - -#: dashboard/templates/cards/sleep_naps_day.html:12 -#, fuzzy, python-format -#| msgid "%(count)s nap%(plural)s" -msgid "%(count)s nap" -msgid_plural "%(count)s naps" -msgstr[0] "%(count)s kısa uyku%(plural)s" -msgstr[1] "%(count)s kısa uyku%(plural)s" - -#: dashboard/templates/cards/sleep_recent.html:6 +#: dashboard/templatetags/cards.py:410 #, fuzzy -#| msgid "Last Sleep" -msgid "Recent Sleep" -msgstr "En Son Uyku" - -#: dashboard/templates/cards/sleep_recent.html:25 -#, fuzzy, python-format -#| msgid "%(count)s sleep entries" -msgid "%(counter)s sleep" -msgid_plural "%(counter)s sleep" -msgstr[0] "%(count)s uygu girdileri" -msgstr[1] "%(count)s uygu girdileri" - -#: dashboard/templates/cards/statistics.html:7 -msgid "Statistics" -msgstr "İstatistikler" - -#: dashboard/templates/cards/statistics.html:25 -msgid "Not enough data" -msgstr "Yeterli veri yok" - -#: dashboard/templates/cards/statistics.html:42 -msgid "No data yet" -msgstr "Henüz veri yok" - -#: dashboard/templates/cards/timer_list.html:12 -#, fuzzy, python-format -#| msgid "%(count)s active timer%(plural)s" -msgid "%(count)s active timer" -msgid_plural "%(count)s active timers" -msgstr[0] "%(count)s etkin zamanlayıcı%(plural)s" -msgstr[1] "%(count)s etkin zamanlayıcı%(plural)s" - -#: dashboard/templates/cards/timer_list.html:27 -#, python-format -msgid "Started by %(user)s at %(start)s" -msgstr "%(user)s tarafından %(start)s da başlatıldı" - -#: dashboard/templates/cards/tummytime_day.html:6 -msgid "Today's Tummy Time" -msgstr "Bugünkü Karın Üstü Zamanı" - -#: dashboard/templates/cards/tummytime_day.html:22 -#, python-format -msgid "%(duration)s at %(end)s" -msgstr "%(end)s de %(duration)s" - -#: dashboard/templates/cards/tummytime_last.html:6 -msgid "Last Tummy Time" -msgstr "En Son Karın Üstü Zamanı" - -#: dashboard/templates/cards/tummytime_last.html:18 -msgid "Never" -msgstr "Asla" - -#: dashboard/templates/dashboard/child_button_group.html:3 -msgid "Child actions" -msgstr "Çocuk eylemleri" - -#: dashboard/templates/dashboard/child_button_group.html:12 -#: reports/templates/reports/base.html:9 -#: reports/templates/reports/report_list.html:4 -msgid "Reports" -msgstr "Raporlar" - -#: dashboard/templatetags/cards.py:357 -msgid "Average nap duration" -msgstr "Ortalama kısa uyku süresi" - -#: dashboard/templatetags/cards.py:364 -msgid "Average naps per day" -msgstr "Ortalama günlük kısa uyku" - -#: dashboard/templatetags/cards.py:374 -msgid "Average sleep duration" -msgstr "Ortalama uyku süresi" - -#: dashboard/templatetags/cards.py:381 -msgid "Average awake duration" -msgstr "Ortalama uyanıklık süresi" - -#: dashboard/templatetags/cards.py:391 -msgid "Weight change per week" -msgstr "Haftalık ağırlık değişimi" - -#: dashboard/templatetags/cards.py:401 -#, fuzzy -#| msgid "Weight change per week" -msgid "Height change per week" -msgstr "Haftalık ağırlık değişimi" - -#: dashboard/templatetags/cards.py:411 -#, fuzzy -#| msgid "Weight change per week" -msgid "Head circumference change per week" -msgstr "Haftalık ağırlık değişimi" - -#: dashboard/templatetags/cards.py:421 -#, fuzzy -#| msgid "Weight change per week" -msgid "BMI change per week" -msgstr "Haftalık ağırlık değişimi" - -#: dashboard/templatetags/cards.py:439 -#, fuzzy -#| msgid "Feeding frequency (past 3 days)" msgid "Diaper change frequency (past 3 days)" msgstr "Beslenme sıklığı (son 3 gün)" -#: dashboard/templatetags/cards.py:443 +#: dashboard/templatetags/cards.py:414 #, fuzzy -#| msgid "Feeding frequency (past 2 weeks)" msgid "Diaper change frequency (past 2 weeks)" msgstr "Beslenme sıklığı (son 2 hafta)" -#: dashboard/templatetags/cards.py:449 -msgid "Diaper change frequency" -msgstr "Bez değişim sıklığı" - -#: dashboard/templatetags/cards.py:485 -msgid "Feeding frequency (past 3 days)" -msgstr "Beslenme sıklığı (son 3 gün)" - -#: dashboard/templatetags/cards.py:489 -msgid "Feeding frequency (past 2 weeks)" -msgstr "Beslenme sıklığı (son 2 hafta)" - -#: dashboard/templatetags/cards.py:495 -msgid "Feeding frequency" -msgstr "Beslenme sıklığı" - -#: reports/graphs/bmi_change.py:27 +#: reports/graphs/pumping_amounts.py:57 #, fuzzy -#| msgid "Weight" -msgid "BMI" -msgstr "Ağırlık" - -#: reports/graphs/diaperchange_amounts.py:27 -msgid "Diaper change amount" -msgstr "Bez değişim miktarı" - -#: reports/graphs/diaperchange_amounts.py:36 -msgid "Diaper Change Amounts" -msgstr "Bez Değişim Miktarı" - -#: reports/graphs/diaperchange_amounts.py:39 -msgid "Change amount" -msgstr "Değişim Miktarı" - -#: reports/graphs/diaperchange_lifetimes.py:35 -msgid "Diaper Lifetimes" -msgstr "Bez Ömürleri" - -#: reports/graphs/diaperchange_lifetimes.py:36 -msgid "Time between changes (hours)" -msgstr "Değişimler arası zaman (saat)" - -#: reports/graphs/diaperchange_types.py:41 reports/graphs/feeding_amounts.py:58 -msgid "Total" -msgstr "Toplam" - -#: reports/graphs/diaperchange_types.py:48 -msgid "Diaper Change Types" -msgstr "Bez Değişim Tipleri" - -#: reports/graphs/diaperchange_types.py:51 -msgid "Number of changes" -msgstr "Değişik sayıları" - -#: reports/graphs/feeding_amounts.py:69 -#, fuzzy -#| msgid "Total Feeding Amounts" -msgid "Total Feeding Amount by Type" -msgstr "Ortalama Beslenme Süreleri" - -#: reports/graphs/feeding_amounts.py:72 -msgid "Feeding amount" -msgstr "Beslenme" - -#: reports/graphs/feeding_duration.py:38 -msgid "Average duration" -msgstr "Ortalama süre" - -#: reports/graphs/feeding_duration.py:46 -msgid "Total feedings" -msgstr "Toplam beslenmeler" - -#: reports/graphs/feeding_duration.py:55 -msgid "Average Feeding Durations" -msgstr "Ortalama Beslenme Süreleri" - -#: reports/graphs/feeding_duration.py:58 -msgid "Average duration (minutes)" -msgstr "Ortalama süre (dakika)" - -#: reports/graphs/feeding_duration.py:60 -msgid "Number of feedings" -msgstr "Beslenme sayısı" - -#: reports/graphs/head_circumference_change.py:27 -msgid "Head Circumference" -msgstr "" - -#: reports/graphs/height_change.py:27 -#, fuzzy -#| msgid "Weight" -msgid "Height" -msgstr "Ağırlık" - -#: reports/graphs/pumping_amounts.py:59 -#, fuzzy -#| msgid "Total Feeding Amounts" msgid "Total Pumping Amount" msgstr "Ortalama Beslenme Süreleri" -#: reports/graphs/pumping_amounts.py:62 +#: reports/graphs/pumping_amounts.py:60 #, fuzzy -#| msgid "Feeding Amounts" msgid "Pumping Amount" msgstr "Beslenmeler" -#: reports/graphs/sleep_pattern.py:150 -msgid "Sleep Pattern" -msgstr "Uyku Deseni" - -#: reports/graphs/sleep_pattern.py:167 -msgid "Time of day" -msgstr "Günün zamanı" - -#: reports/graphs/sleep_totals.py:48 -msgid "Total sleep" -msgstr "Toplam Uyku" - -#: reports/graphs/sleep_totals.py:58 -msgid "Sleep Totals" -msgstr "Uyku Toplamları" - -#: reports/graphs/sleep_totals.py:61 -msgid "Hours of sleep" -msgstr "Uyku Saatleri" - -#: reports/graphs/tummytime_duration.py:34 -msgid "Total duration" -msgstr "Toplam düre" - -#: reports/graphs/tummytime_duration.py:41 -#: reports/graphs/tummytime_duration.py:55 -msgid "Number of sessions" -msgstr "Session sayısı" - -#: reports/graphs/tummytime_duration.py:50 -msgid "Total Tummy Time Durations" -msgstr "Toplam Karın Üstü Süresi" - -#: reports/graphs/tummytime_duration.py:53 -msgid "Total duration (minutes)" -msgstr "Toplam süre (dakika)" - -#: reports/graphs/weight_change.py:27 -msgid "Weight" -msgstr "Ağırlık" - -#: reports/templates/reports/diaperchange_amounts.html:4 -#: reports/templates/reports/diaperchange_amounts.html:8 -msgid "Diaper Amounts" -msgstr "Bez Miktarı" - -#: reports/templates/reports/diaperchange_lifetimes.html:4 -#: reports/templates/reports/diaperchange_lifetimes.html:8 -#: reports/templates/reports/report_list.html:13 -msgid "Diaper Lifetimes" -msgstr "Bez Ömrü" - -#: reports/templates/reports/diaperchange_types.html:4 -#: reports/templates/reports/diaperchange_types.html:8 -#: reports/templates/reports/report_list.html:12 -msgid "Diaper Change Types" -msgstr "Bez Değişim Tipleri" - -#: reports/templates/reports/feeding_amounts.html:4 -#: reports/templates/reports/feeding_amounts.html:8 -#: reports/templates/reports/report_list.html:14 -msgid "Feeding Amounts" -msgstr "Beslenmeler" - -#: reports/templates/reports/feeding_duration.html:4 -#: reports/templates/reports/feeding_duration.html:8 -msgid "Average Feeding Durations" -msgstr "Ortalama Beslenme Süreleri" - -#: reports/templates/reports/report_base.html:17 -msgid "There is not enough data to generate this report." -msgstr "Raporu oluşturmak için yeterli veri yok." - #: reports/templates/reports/report_list.html:10 msgid "Body Mass Index (BMI)" msgstr "" -#: reports/templates/reports/report_list.html:11 -msgid "Diaper Change Amounts" -msgstr "Bez Değişim Miktarı" - -#: reports/templates/reports/report_list.html:15 -msgid "Feeding Durations (Average)" -msgstr "Beslenme Süreleri (Ortalama)" - #: reports/templates/reports/report_list.html:18 #, fuzzy -#| msgid "Feeding Amounts" msgid "Pumping Amounts" msgstr "Beslenmeler" -#: reports/templates/reports/report_list.html:19 -#: reports/templates/reports/sleep_pattern.html:4 -#: reports/templates/reports/sleep_pattern.html:8 -msgid "Sleep Pattern" -msgstr "Uyku Deseni" +#: core/templates/core/timer_confirm_delete_inactive.html:17 +#, fuzzy +msgid "Are you sure you want to delete %(number)s inactive timer?" +msgid_plural "Are you sure you want to delete %(number)s inactive timers?" +msgstr[0] "%(number)s pasif zamanlıyıcıları silmek istediğinize emin misiniz?" +msgstr[1] "%(number)s pasif zamanlıyıcıları silmek istediğinize emin misiniz?" -#: reports/templates/reports/report_list.html:20 -#: reports/templates/reports/sleep_totals.html:4 -#: reports/templates/reports/sleep_totals.html:8 -msgid "Sleep Totals" -msgstr "Toplam Uyku" +#: dashboard/templates/cards/feeding_day.html:25 +#, fuzzy +msgid "%(counter)s feeding" +msgid_plural "%(counter)s feedings" +msgstr[0] "%(count)s uygu girdileri" +msgstr[1] "%(count)s uygu girdileri" -#: reports/templates/reports/report_list.html:21 -msgid "Tummy Time Durations (Sum)" -msgstr "Karın üstü süresi (Sum)" +#: dashboard/templates/cards/feeding_last_method.html:21 +#, fuzzy +msgid "%(n)s feeding ago" +msgid_plural "%(n)s feedings ago" +msgstr[0] "%(n) beslenmeler önce" +msgstr[1] "%(n) beslenmeler önce" -#: reports/templates/reports/tummytime_duration.html:4 -#: reports/templates/reports/tummytime_duration.html:8 -msgid "Total Tummy Time Durations" -msgstr "Toplam Karın Üstü Süresi" +#: dashboard/templates/cards/sleep_naps_day.html:12 +#, fuzzy +msgid "%(count)s nap" +msgid_plural "%(count)s naps" +msgstr[0] "%(count)s kısa uyku%(plural)s" +msgstr[1] "%(count)s kısa uyku%(plural)s" -#~ msgid "Today's Sleep" -#~ msgstr "Bugünkü Uyku" +#: dashboard/templates/cards/timer_list.html:12 +#, fuzzy +msgid "%(count)s active timer" +msgid_plural "%(count)s active timers" +msgstr[0] "%(count)s etkin zamanlayıcı%(plural)s" +msgstr[1] "%(count)s etkin zamanlayıcı%(plural)s" -#, python-format -#~ msgid "%(count)s sleep entries" -#~ msgstr "%(count)s uygu girdileri" diff --git a/locale/zh/LC_MESSAGES/django.mo b/locale/zh/LC_MESSAGES/django.mo index 8cfb20d1..f575da3c 100644 Binary files a/locale/zh/LC_MESSAGES/django.mo and b/locale/zh/LC_MESSAGES/django.mo differ diff --git a/locale/zh/LC_MESSAGES/django.po b/locale/zh/LC_MESSAGES/django.po index e9467672..dc8dd059 100644 --- a/locale/zh/LC_MESSAGES/django.po +++ b/locale/zh/LC_MESSAGES/django.po @@ -1,25 +1,23 @@ msgid "" msgstr "" -"Project-Id-Version: Baby Buddy\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-09 07:47+0000\n" -"Language: zh-Hans\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" +"Project-Id-Version: Baby Buddy\n" +"Language: zh-Hans\n" "Plural-Forms: nplurals=1; plural=0;\n" #: babybuddy/admin.py:12 babybuddy/admin.py:13 -#: babybuddy/templates/babybuddy/nav-dropdown.html:324 +#: babybuddy/templates/babybuddy/nav-dropdown.html:347 #: babybuddy/templates/babybuddy/user_settings_form.html:8 msgid "Settings" msgstr "设置" -#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:89 +#: babybuddy/admin.py:17 babybuddy/templates/babybuddy/nav-dropdown.html:111 #: babybuddy/templates/babybuddy/user_settings_form.html:61 #: dashboard/templates/dashboard/child.html:4 -#: dashboard/templates/dashboard/child.html:11 +#: dashboard/templates/dashboard/child.html:9 #: dashboard/templates/dashboard/child_button_group.html:6 #: dashboard/templates/dashboard/dashboard.html:4 #: dashboard/templates/dashboard/dashboard.html:7 @@ -31,10 +29,8 @@ msgid "Refresh rate" msgstr "刷新频率" #: babybuddy/models.py:21 -msgid "" -"If supported by browser, the dashboard will only refresh when visible, and " -"also when receiving focus." -msgstr "如果浏览器支持,数据看板只会在可见及接收焦点时也会刷新。" +msgid "This setting will only be used when a browser does not support refresh on focus." +msgstr "此设置仅在浏览器不支持焦点刷新时使用。" #: babybuddy/models.py:28 msgid "disabled" @@ -72,116 +68,31 @@ msgstr "15分钟" msgid "30 min." msgstr "30分钟" -#: babybuddy/models.py:40 -msgid "Hide Empty Dashboard Cards" -msgstr "隐藏空的数据看板卡片" - -#: babybuddy/models.py:43 -msgid "Hide data older than" -msgstr "隐藏数据早于" - -#: babybuddy/models.py:45 -msgid "This setting controls which data will be shown in the dashboard." -msgstr "此设置控制哪些数据显示在数据看板中。" - -#: babybuddy/models.py:51 -msgid "show all data" -msgstr "展示所有数据" - -#: babybuddy/models.py:52 -msgid "1 day" -msgstr "1天" - -#: babybuddy/models.py:53 -msgid "2 days" -msgstr "2天" - -#: babybuddy/models.py:54 -msgid "3 days" -msgstr "3天" - -#: babybuddy/models.py:55 -msgid "1 week" -msgstr "1周" - -#: babybuddy/models.py:56 -msgid "4 weeks" -msgstr "4 周" - #: babybuddy/models.py:63 msgid "Language" msgstr "语言" -#: babybuddy/models.py:69 -msgid "Timezone" -msgstr "时区" - #: babybuddy/models.py:73 -#, python-brace-format msgid "{user}'s Settings" msgstr "{user}的设置" -#: babybuddy/settings/base.py:166 -msgid "Catalan" -msgstr "加泰罗尼亚语" - -#: babybuddy/settings/base.py:167 -msgid "Chinese (simplified)" -msgstr "中文(简体)" - -#: babybuddy/settings/base.py:168 -msgid "Dutch" -msgstr "荷兰语" - -#: babybuddy/settings/base.py:169 -msgid "English (US)" -msgstr "英语(美国)" - -#: babybuddy/settings/base.py:170 -msgid "English (UK)" -msgstr "英语(英国)" +#: babybuddy/settings/base.py:171 +msgid "English" +msgstr "英语" #: babybuddy/settings/base.py:171 msgid "French" msgstr "法语" -#: babybuddy/settings/base.py:172 -msgid "Finnish" -msgstr "芬兰语" +#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 +msgid "Permission Denied" +msgstr "无权限" -#: babybuddy/settings/base.py:173 -msgid "German" -msgstr "德语" - -#: babybuddy/settings/base.py:174 -msgid "Italian" -msgstr "意大利语" - -#: babybuddy/settings/base.py:175 -msgid "Polish" -msgstr "波兰语" - -#: babybuddy/settings/base.py:176 -msgid "Portuguese" -msgstr "葡萄牙语" - -#: babybuddy/settings/base.py:177 -msgid "Spanish" -msgstr "西班牙语" - -#: babybuddy/settings/base.py:178 -msgid "Swedish" -msgstr "瑞典语" - -#: babybuddy/settings/base.py:179 -msgid "Turkish" -msgstr "土耳其语" - -#: babybuddy/templates/admin/base_site.html:4 -#: babybuddy/templates/admin/base_site.html:7 -#: babybuddy/templates/babybuddy/nav-dropdown.html:336 -msgid "Database Admin" -msgstr "数据库管理员" +#: babybuddy/templates/403.html:12 +msgid "You do not have permission to access this resource.\n" +" Contact a site administrator for assistance." +msgstr "您没有访问此资源的权限。\n" +"请与站点管理员联系以获取帮助。" #: babybuddy/templates/babybuddy/base.html:36 msgid "Home" @@ -206,34 +117,32 @@ msgstr "提交" #: babybuddy/templates/babybuddy/messages.html:18 #: babybuddy/templates/babybuddy/user_settings_form.html:19 -#, python-format msgid "Error: %(error)s" msgstr "错误: %(error)s" #: babybuddy/templates/babybuddy/messages.html:23 -#: babybuddy/templates/babybuddy/user_settings_form.html:26 -msgid "Error: Some fields have errors. See below for details." -msgstr "错误: 有些字段有错误。详情见下文。 " +msgid "Error: Some fields have errors. See below for details. " +msgstr "错误: 字段填写错误。参见具体原因。 " -#: babybuddy/templates/babybuddy/nav-dropdown.html:48 core/models.py:248 +#: babybuddy/templates/babybuddy/nav-dropdown.html:51 core/models.py:248 #: core/models.py:252 msgid "Diaper Change" msgstr "更换尿布" -#: babybuddy/templates/babybuddy/nav-dropdown.html:54 -#: babybuddy/templates/babybuddy/nav-dropdown.html:259 core/models.py:312 +#: babybuddy/templates/babybuddy/nav-dropdown.html:57 +#: babybuddy/templates/babybuddy/nav-dropdown.html:281 core/models.py:312 #: core/models.py:316 core/templates/core/timer_detail.html:43 msgid "Feeding" msgstr "喂食" -#: babybuddy/templates/babybuddy/nav-dropdown.html:60 -#: babybuddy/templates/babybuddy/nav-dropdown.html:135 core/models.py:396 +#: babybuddy/templates/babybuddy/nav-dropdown.html:63 +#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:396 #: core/models.py:407 core/models.py:411 core/templates/core/note_list.html:29 msgid "Note" msgstr "记录" -#: babybuddy/templates/babybuddy/nav-dropdown.html:66 -#: babybuddy/templates/babybuddy/nav-dropdown.html:280 +#: babybuddy/templates/babybuddy/nav-dropdown.html:69 +#: babybuddy/templates/babybuddy/nav-dropdown.html:288 #: babybuddy/templates/babybuddy/welcome.html:42 core/models.py:467 #: core/models.py:468 core/models.py:471 #: core/templates/core/sleep_confirm_delete.html:7 @@ -243,8 +152,8 @@ msgstr "记录" msgid "Sleep" msgstr "睡眠" -#: babybuddy/templates/babybuddy/nav-dropdown.html:72 -#: babybuddy/templates/babybuddy/nav-dropdown.html:293 +#: babybuddy/templates/babybuddy/nav-dropdown.html:81 +#: babybuddy/templates/babybuddy/nav-dropdown.html:301 #: babybuddy/templates/babybuddy/welcome.html:50 core/models.py:647 #: core/models.py:648 core/models.py:651 #: core/templates/core/timer_detail.html:59 @@ -256,15 +165,24 @@ msgstr "睡眠" msgid "Tummy Time" msgstr "趴玩时间" -#: babybuddy/templates/babybuddy/nav-dropdown.html:96 -#: core/templates/timeline/timeline.html:4 -#: core/templates/timeline/timeline.html:7 -#: dashboard/templates/dashboard/child_button_group.html:9 -msgid "Timeline" -msgstr "时间线" +#: babybuddy/templates/babybuddy/nav-dropdown.html:87 +#: babybuddy/templates/babybuddy/nav-dropdown.html:193 core/models.py:673 +#: core/models.py:685 core/models.py:686 core/models.py:689 +#: core/templates/core/weight_confirm_delete.html:7 +#: core/templates/core/weight_form.html:13 +#: core/templates/core/weight_list.html:4 +#: core/templates/core/weight_list.html:7 +#: core/templates/core/weight_list.html:12 +#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 +#: reports/graphs/weight_change.py:30 +#: reports/templates/reports/report_list.html:22 +#: reports/templates/reports/weight_change.html:4 +#: reports/templates/reports/weight_change.html:8 +msgid "Weight" +msgstr "体重" -#: babybuddy/templates/babybuddy/nav-dropdown.html:107 -#: babybuddy/templates/babybuddy/nav-dropdown.html:115 core/models.py:188 +#: babybuddy/templates/babybuddy/nav-dropdown.html:129 +#: babybuddy/templates/babybuddy/nav-dropdown.html:137 core/models.py:188 #: core/templates/core/child_confirm_delete.html:7 #: core/templates/core/child_detail.html:7 #: core/templates/core/child_form.html:13 core/templates/core/child_list.html:4 @@ -274,7 +192,7 @@ msgstr "时间线" msgid "Children" msgstr "我的宝宝" -#: babybuddy/templates/babybuddy/nav-dropdown.html:121 core/models.py:137 +#: babybuddy/templates/babybuddy/nav-dropdown.html:143 core/models.py:137 #: core/models.py:187 core/models.py:221 core/models.py:274 core/models.py:335 #: core/models.py:367 core/models.py:394 core/models.py:426 core/models.py:450 #: core/models.py:503 core/models.py:537 core/models.py:630 core/models.py:671 @@ -293,7 +211,7 @@ msgstr "我的宝宝" msgid "Child" msgstr "宝宝" -#: babybuddy/templates/babybuddy/nav-dropdown.html:129 core/models.py:143 +#: babybuddy/templates/babybuddy/nav-dropdown.html:151 core/models.py:143 #: core/models.py:240 core/models.py:304 core/models.py:343 core/models.py:373 #: core/models.py:408 core/models.py:430 core/models.py:458 core/models.py:511 #: core/models.py:677 core/templates/core/note_confirm_delete.html:7 @@ -302,112 +220,24 @@ msgstr "宝宝" msgid "Notes" msgstr "成长记录" -#: babybuddy/templates/babybuddy/nav-dropdown.html:149 -msgid "Measurements" -msgstr "测量" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:157 core/models.py:139 -#: core/models.py:151 core/models.py:152 core/models.py:155 -#: core/templates/core/bmi_confirm_delete.html:7 -#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 -#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 -#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 -#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 -#: reports/templates/reports/bmi_change.html:9 -msgid "BMI" -msgstr "身体质量指数(BMI)" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:163 -msgid "BMI entry" -msgstr "BMI记录" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:171 core/models.py:338 -#: core/models.py:351 core/models.py:352 core/models.py:355 -#: core/templates/core/head_circumference_confirm_delete.html:7 -#: core/templates/core/head_circumference_form.html:13 -#: core/templates/core/head_circumference_list.html:4 -#: core/templates/core/head_circumference_list.html:7 -#: core/templates/core/head_circumference_list.html:12 -#: core/templates/core/head_circumference_list.html:29 -#: reports/graphs/head_circumference_change.py:19 -#: reports/graphs/head_circumference_change.py:30 -#: reports/templates/reports/head_circumference_change.html:4 -#: reports/templates/reports/head_circumference_change.html:9 -#: reports/templates/reports/report_list.html:25 -msgid "Head Circumference" -msgstr "头围" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:177 -msgid "Head Circumference entry" -msgstr "头围记录" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:185 core/models.py:369 -#: core/models.py:381 core/models.py:382 core/models.py:385 -#: core/templates/core/height_confirm_delete.html:7 -#: core/templates/core/height_form.html:13 -#: core/templates/core/height_list.html:4 -#: core/templates/core/height_list.html:7 -#: core/templates/core/height_list.html:12 -#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 -#: reports/graphs/height_change.py:30 -#: reports/templates/reports/height_change.html:4 -#: reports/templates/reports/height_change.html:9 -#: reports/templates/reports/report_list.html:26 -msgid "Height" -msgstr "身高" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:191 -msgid "Height entry" -msgstr "身高记录" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:199 core/models.py:506 -#: core/models.py:519 core/models.py:520 core/models.py:523 -#: core/templates/core/temperature_confirm_delete.html:7 -#: core/templates/core/temperature_form.html:13 -#: core/templates/core/temperature_list.html:4 -#: core/templates/core/temperature_list.html:7 -#: core/templates/core/temperature_list.html:12 -#: core/templates/core/temperature_list.html:29 -msgid "Temperature" -msgstr "体温" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:205 -msgid "Temperature reading" -msgstr "体温读数" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:213 core/models.py:673 -#: core/models.py:685 core/models.py:686 core/models.py:689 -#: core/templates/core/weight_confirm_delete.html:7 -#: core/templates/core/weight_form.html:13 -#: core/templates/core/weight_list.html:4 -#: core/templates/core/weight_list.html:7 -#: core/templates/core/weight_list.html:12 -#: core/templates/core/weight_list.html:29 reports/graphs/weight_change.py:19 -#: reports/graphs/weight_change.py:30 -#: reports/templates/reports/report_list.html:31 -#: reports/templates/reports/weight_change.html:4 -#: reports/templates/reports/weight_change.html:9 -msgid "Weight" -msgstr "体重" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:219 +#: babybuddy/templates/babybuddy/nav-dropdown.html:199 msgid "Weight entry" msgstr "体重记录" -#: babybuddy/templates/babybuddy/nav-dropdown.html:233 +#: babybuddy/templates/babybuddy/nav-dropdown.html:255 msgid "Activities" msgstr "活动" -#: babybuddy/templates/babybuddy/nav-dropdown.html:240 +#: babybuddy/templates/babybuddy/nav-dropdown.html:262 #: reports/graphs/diaperchange_lifetimes.py:27 msgid "Changes" msgstr "换尿布" -#: babybuddy/templates/babybuddy/nav-dropdown.html:246 +#: babybuddy/templates/babybuddy/nav-dropdown.html:268 msgid "Change" msgstr "换尿布" -#: babybuddy/templates/babybuddy/nav-dropdown.html:253 +#: babybuddy/templates/babybuddy/nav-dropdown.html:275 #: babybuddy/templates/babybuddy/welcome.html:34 core/models.py:313 #: core/templates/core/feeding_confirm_delete.html:7 #: core/templates/core/feeding_form.html:13 @@ -417,31 +247,15 @@ msgstr "换尿布" msgid "Feedings" msgstr "喂食" -#: babybuddy/templates/babybuddy/nav-dropdown.html:267 core/models.py:437 -#: core/models.py:438 core/models.py:441 -#: core/templates/core/pumping_confirm_delete.html:7 -#: core/templates/core/pumping_form.html:13 -#: core/templates/core/pumping_list.html:4 -#: core/templates/core/pumping_list.html:7 -#: core/templates/core/pumping_list.html:12 -#: reports/templates/reports/pumping_amounts.html:4 -#: reports/templates/reports/pumping_amounts.html:9 -msgid "Pumping" -msgstr "吸奶" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:273 -msgid "Pumping entry" -msgstr "吸奶记录" - -#: babybuddy/templates/babybuddy/nav-dropdown.html:286 +#: babybuddy/templates/babybuddy/nav-dropdown.html:294 msgid "Sleep entry" msgstr "睡眠记录" -#: babybuddy/templates/babybuddy/nav-dropdown.html:299 +#: babybuddy/templates/babybuddy/nav-dropdown.html:307 msgid "Tummy Time entry" msgstr "趴玩时间记录" -#: babybuddy/templates/babybuddy/nav-dropdown.html:323 +#: babybuddy/templates/babybuddy/nav-dropdown.html:346 #: babybuddy/templates/babybuddy/user_list.html:17 #: babybuddy/templates/babybuddy/user_password_form.html:7 #: babybuddy/templates/babybuddy/user_settings_form.html:7 core/models.py:556 @@ -449,23 +263,23 @@ msgstr "趴玩时间记录" msgid "User" msgstr "用户" -#: babybuddy/templates/babybuddy/nav-dropdown.html:325 +#: babybuddy/templates/babybuddy/nav-dropdown.html:348 msgid "Password" msgstr "密码" -#: babybuddy/templates/babybuddy/nav-dropdown.html:329 +#: babybuddy/templates/babybuddy/nav-dropdown.html:352 msgid "Logout" msgstr "登出" -#: babybuddy/templates/babybuddy/nav-dropdown.html:332 +#: babybuddy/templates/babybuddy/nav-dropdown.html:355 msgid "Site" msgstr "站点" -#: babybuddy/templates/babybuddy/nav-dropdown.html:333 +#: babybuddy/templates/babybuddy/nav-dropdown.html:356 msgid "API Browser" msgstr "API浏览" -#: babybuddy/templates/babybuddy/nav-dropdown.html:335 +#: babybuddy/templates/babybuddy/nav-dropdown.html:358 #: babybuddy/templates/babybuddy/user_confirm_delete.html:7 #: babybuddy/templates/babybuddy/user_form.html:13 #: babybuddy/templates/babybuddy/user_list.html:4 @@ -473,15 +287,19 @@ msgstr "API浏览" msgid "Users" msgstr "用户" -#: babybuddy/templates/babybuddy/nav-dropdown.html:338 +#: babybuddy/templates/babybuddy/nav-dropdown.html:250 +msgid "Backend Admin" +msgstr "后台管理员" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:361 msgid "Support" msgstr "支持" -#: babybuddy/templates/babybuddy/nav-dropdown.html:340 +#: babybuddy/templates/babybuddy/nav-dropdown.html:363 msgid "Source Code" msgstr "源代码" -#: babybuddy/templates/babybuddy/nav-dropdown.html:342 +#: babybuddy/templates/babybuddy/nav-dropdown.html:365 msgid "Chat / Support" msgstr "聊天 / 支持" @@ -492,7 +310,6 @@ msgstr "聊天 / 支持" #: core/templates/timeline/_timeline.html:73 #: dashboard/templates/cards/feeding_day.html:43 #: dashboard/templates/cards/feeding_last_method.html:34 -#: dashboard/templates/cards/sleep_recent.html:43 #: dashboard/templates/cards/statistics.html:34 msgid "Previous" msgstr "上一页" @@ -504,7 +321,6 @@ msgstr "上一页" #: core/templates/timeline/_timeline.html:80 #: dashboard/templates/cards/feeding_day.html:47 #: dashboard/templates/cards/feeding_last_method.html:38 -#: dashboard/templates/cards/sleep_recent.html:47 #: dashboard/templates/cards/statistics.html:38 msgid "Next" msgstr "下一页" @@ -560,10 +376,7 @@ msgstr "删除" #: core/templates/core/timer_confirm_delete.html:17 #: core/templates/core/tummytime_confirm_delete.html:14 #: core/templates/core/weight_confirm_delete.html:14 -#, python-format -msgid "" -"

Are you sure you want to delete %(object)s?

" +msgid "

Are you sure you want to delete %(object)s?

" msgstr "

确定要删除%(object)s吗?

" #: babybuddy/templates/babybuddy/user_confirm_delete.html:19 @@ -620,7 +433,6 @@ msgstr "更新" #: core/templates/core/timer_form.html:18 #: core/templates/core/tummytime_form.html:23 #: core/templates/core/weight_form.html:23 -#, python-format msgid "

Update %(object)s

" msgstr "

更新 %(object)s

" @@ -650,7 +462,7 @@ msgstr "活动" #: babybuddy/templates/babybuddy/user_list.html:23 #: core/templates/core/bmi_list.html:24 core/templates/core/bmi_list.html:38 #: core/templates/core/child_list.html:28 -#: core/templates/core/child_list.html:43 +#: core/templates/core/child_list.html:48 #: core/templates/core/diaperchange_list.html:24 #: core/templates/core/diaperchange_list.html:40 #: core/templates/core/feeding_list.html:24 @@ -688,10 +500,16 @@ msgstr "更改密码" msgid "User Settings" msgstr "用户设置" +#: babybuddy/templates/babybuddy/messages.html:23 +#: babybuddy/templates/babybuddy/user_settings_form.html:26 +msgid "Error: Some fields have errors. See below for details." +msgstr "错误: 有些字段有错误。详情见下文。 " + #: babybuddy/templates/babybuddy/user_settings_form.html:33 msgid "User Profile" msgstr "用户档案" +#. This general word doesn't need translation. #: babybuddy/templates/babybuddy/user_settings_form.html:79 msgid "API" msgstr "API" @@ -714,12 +532,9 @@ msgid "Welcome to Baby Buddy!" msgstr "欢迎使用Baby Buddy!" #: babybuddy/templates/babybuddy/welcome.html:14 -msgid "" -"Learn about and predict baby's needs without (as much) guess work " -"by using Baby Buddy to track —" -msgstr "" -"通过使用 Baby Buddy 来跟踪了解和预测宝宝的需求,而无需 (过多地) 进行" -"猜测工作 —" +msgid "Learn about and predict baby's needs without\n" +" (as much) guess work by using Baby Buddy to track —" +msgstr "通过使用 Baby Buddy 来跟踪了解和预测宝宝的需求,而无需(过多地)进行猜测工作 —" #: babybuddy/templates/babybuddy/welcome.html:26 core/models.py:249 #: core/templates/core/diaperchange_confirm_delete.html:7 @@ -731,18 +546,15 @@ msgstr "" msgid "Diaper Changes" msgstr "更换尿布" -#: babybuddy/templates/babybuddy/welcome.html:56 -msgid "" -"As the amount of entries grows, Baby Buddy will help parents and caregivers " -"to identify small patterns in baby's habits using the dashboard and graphs. " -"Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and " -"dads with 2AM feedings and changings. To get started, just click the button " -"below to add your first (or second, third, etc.) child!" -msgstr "" -"随着条目数量的增加,Baby Buddy将帮助家长和护理人员使用数据看板和图表识别宝宝" -"的习惯。Baby Buddy是一款手机友好型产品,使用黑色主题帮助疲惫的爸爸妈妈在凌晨2" -"点喂食和换尿布。想要开始使用,只需单击下面的按钮添加您的第一个(或第二个、第三" -"个等)宝宝!" +#: babybuddy/templates/babybuddy/welcome.html:54 +#, fuzzy +msgid "As the amount of entries grows, Baby Buddy will help\n" +" parents and caregivers to identify small patterns in baby's habits\n" +" using the dashboard and graphs. Baby Buddy is mobile-friendly and\n" +" uses a dark theme to help weary moms and dads with 2AM feedings and\n" +" changings. To get started, just click the button below to add your\n" +" first (or second, third, etc.) child!" +msgstr "随着条目数量的增加,Baby Buddy 将帮助家长和护理人员使用数据看板和图表识别宝宝的习惯。Baby Buddy 是一款手机友好型产品,使用黑色主题帮助疲惫的爸爸妈妈在凌晨两点喂食和换尿布。想要开始使用,只需单击下面的按钮添加您的第一个(或第二个、第三个等)宝宝!" #: babybuddy/templates/babybuddy/welcome.html:68 #: core/templates/core/child_form.html:8 core/templates/core/child_form.html:18 @@ -750,50 +562,6 @@ msgstr "" msgid "Add a Child" msgstr "添加一个宝宝" -#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 -msgid "Bad Request" -msgstr "请求无效" - -#: babybuddy/templates/error/403.html:4 babybuddy/templates/error/403.html:7 -msgid "Permission Denied" -msgstr "无权限" - -#: babybuddy/templates/error/403.html:9 -msgid "" -"You do not have permission to access this resource. Contact a site " -"administrator for assistance." -msgstr "您没有访问此资源的权限。请联系网站管理员以获得帮助。" - -#: babybuddy/templates/error/403_csrf_bad_origin.html:14 -msgid "How to Fix" -msgstr "如何修复" - -#: babybuddy/templates/error/403_csrf_bad_origin.html:15 -#, python-format -msgid "" -"Add %(origin)s to the CSRF_TRUSTED_ORIGINS " -"environment variable. If multiple origins are required separate with commas." -msgstr "" -"添加 %(origin)s 到环境变量 CSRF_TRUSTED_ORIGINS。用" -"英文逗号分隔多个来源。" - -#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 -msgid "Page Not Found" -msgstr "页面未找到" - -#: babybuddy/templates/error/404.html:9 -#, python-format -msgid "The path %(request_path)s does not exist." -msgstr "路径 %(request_path)s 不存在。" - -#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 -msgid "Server Error" -msgstr "服务器错误" - -#: babybuddy/templates/error/base.html:14 -msgid "Return to Baby Buddy" -msgstr "返回 Baby Buddy!" - #: babybuddy/templates/registration/login.html:32 msgid "Login" msgstr "登录" @@ -818,10 +586,10 @@ msgstr "登录" msgid "Password Reset" msgstr "密码重置" -#: babybuddy/templates/registration/password_reset_confirm.html:13 -msgid "" -"Oh snap! The two passwords did not match. Please try again." -msgstr "糟糕! 两次密码输入的不一致,请重试。" +#: babybuddy/templates/registration/password_reset_confirm.html:12 +msgid "

Oh snap! The\n" +" two passwords did not match. Please try again.

" +msgstr "

提示两次密码输入的不一致,请重试。

" #: babybuddy/templates/registration/password_reset_confirm.html:22 msgid "Enter your new password in each field below." @@ -836,72 +604,35 @@ msgstr "重置密码" msgid "Reset Email Sent" msgstr "重置邮件发送" -#: babybuddy/templates/registration/password_reset_done.html:9 -msgid "" -"We've emailed you instructions for setting your password, if an account " -"exists with the email you entered. You should receive them shortly." -msgstr "" -"我们已通过电子邮件向您发送了设置密码的说明。如果您输入的电子邮件正确,您将很" -"快收到邮件。" - -#: babybuddy/templates/registration/password_reset_done.html:15 -msgid "" -"If you don't receive an email, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"如果您没有收到电子邮件,请确保您已输入正确的邮箱地址,并检查您的垃圾邮件文件" -"夹。" - -#: babybuddy/templates/registration/password_reset_email.html:2 -#, python-format -msgid "" -"You're receiving this email because you requested a password reset for your " -"user account at %(site_name)s." -msgstr "你收到这封邮件是因为你在网站 %(site_name)s 请求为你的账户重置密码。" - -#: babybuddy/templates/registration/password_reset_email.html:4 -msgid "Please go to the following page and choose a new password:" -msgstr "请转到下面的网页来重置密码:" - -#: babybuddy/templates/registration/password_reset_email.html:8 -msgid "Your username, in case you’ve forgotten:" -msgstr "以防你已忘记,你的用户名是:" - -#: babybuddy/templates/registration/password_reset_email.html:10 -msgid "Thanks for using Baby Buddy!" -msgstr "感谢使用 Baby Buddy!" +#: babybuddy/templates/registration/password_reset_done.html:8 +msgid "

We've emailed you instructions for setting your\n" +" password, if an account exists with the email you entered. You\n" +" should receive them shortly.

\n" +"

If you don't receive an email, please make sure you've\n" +" entered the address you registered with, and check your spam\n" +" folder.

" +msgstr "

我们已通过电子邮件向您发送了设置密码的说明。如果您输入的电子邮件正确,您将很快收到邮件。

\n" +"

如果您没有收到电子邮件,请确保您已输入正确的邮箱地址,并检查您的垃圾邮件文件夹。

" #: babybuddy/templates/registration/password_reset_form.html:4 msgid "Forgot Password" msgstr "忘记密码" -#: babybuddy/templates/registration/password_reset_form.html:9 -msgid "" -"Enter your account email address in the form below. If the address is valid, " -"you will receive instructions for resetting your password." -msgstr "" -"在下面的表格中输入您的电子邮箱地址。如果地址有效,您将收到重置密码的说明。" - -#: babybuddy/views.py:43 -msgid "Forbidden" -msgstr "禁止访问" - -#: babybuddy/views.py:44 -msgid "CSRF verification failed. Request aborted." -msgstr "跨站请求伪造 (CSRF) 验证失败,请求中断。" +#: babybuddy/templates/registration/password_reset_form.html:8 +msgid "

Enter your account email address in the\n" +" form below. If the address is valid, you will receive instructions for\n" +" resetting your password.

" +msgstr "

在下面的表格中输入您的帐户电子邮件地址。如果地址有效,您将收到重置密码的说明。

" #: babybuddy/views.py:102 -#, python-format msgid "User %(username)s added!" msgstr "用户 %(username)s 已添加!" #: babybuddy/views.py:113 -#, python-format msgid "User %(username)s updated." msgstr "用户 %(username)s 已更新。" #: babybuddy/views.py:125 -#, python-brace-format msgid "User {user} deleted." msgstr "User {user} 删除成功。" @@ -917,20 +648,10 @@ msgstr "用于API秘钥已重新生成。" msgid "Settings saved!" msgstr "设置已保存!" -#: core/filters.py:11 core/models.py:96 core/models.py:115 -msgid "Tag" -msgstr "标签" - #: core/forms.py:120 msgid "Name does not match child name." msgstr "名称与宝宝名称不匹配。" -#: core/forms.py:136 -msgid "" -"Click on the tags to add (+) or remove (-) tags or use the text editor to " -"create new tags." -msgstr "点击标签来添加 (+) 或删除 (-) ,也可编辑以新建标签。" - #: core/models.py:28 msgid "Date can not be in the future." msgstr "不能选择未来的时间。" @@ -951,43 +672,6 @@ msgstr "另一个条目与指定的时间段相交。" msgid "Date/time can not be in the future." msgstr "不能选择未来的日期/时间。" -#: core/models.py:84 core/models.py:237 -#: core/templates/core/diaperchange_list.html:30 -msgid "Color" -msgstr "颜色" - -#: core/models.py:90 -msgid "Last used" -msgstr "上次使用" - -#: core/models.py:97 core/templates/core/bmi_list.html:30 -#: core/templates/core/diaperchange_list.html:32 -#: core/templates/core/feeding_list.html:35 -#: core/templates/core/head_circumference_list.html:30 -#: core/templates/core/height_list.html:30 -#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 -#: core/templates/core/temperature_list.html:30 -#: core/templates/core/tummytime_list.html:31 -#: core/templates/core/weight_list.html:30 -msgid "Tags" -msgstr "标签" - -#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 -#: core/templates/core/bmi_list.html:25 -#: core/templates/core/feeding_list.html:25 -#: core/templates/core/head_circumference_list.html:25 -#: core/templates/core/height_list.html:25 -#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 -#: reports/graphs/diaperchange_amounts.py:37 -#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 -#: reports/graphs/feeding_duration.py:56 -#: reports/graphs/head_circumference_change.py:28 -#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:60 -#: reports/graphs/sleep_pattern.py:153 reports/graphs/sleep_totals.py:59 -#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 -msgid "Date" -msgstr "日期" - #: core/models.py:163 msgid "First name" msgstr "名" @@ -1042,11 +726,14 @@ msgstr "绿色" msgid "Yellow" msgstr "黄色" -#: core/models.py:239 core/models.py:303 core/models.py:428 -#: core/templates/core/diaperchange_list.html:31 -#: core/templates/core/pumping_list.html:29 -msgid "Amount" -msgstr "数量" +#: core/models.py:84 core/models.py:237 +#: core/templates/core/diaperchange_list.html:30 +msgid "Color" +msgstr "颜色" + +#: core/models.py:180 +msgid "Wet and/or solid is required." +msgstr "大便或小便是必填的。" #: core/models.py:276 core/models.py:453 core/models.py:543 core/models.py:632 msgid "Start time" @@ -1072,14 +759,6 @@ msgstr "母乳" msgid "Formula" msgstr "配方奶" -#: core/models.py:285 -msgid "Fortified breast milk" -msgstr "强化母乳" - -#: core/models.py:286 -msgid "Solid food" -msgstr "固体食物" - #: core/models.py:289 core/templates/core/feeding_list.html:30 msgid "Type" msgstr "类型" @@ -1096,25 +775,19 @@ msgstr "左乳房" msgid "Right breast" msgstr "右乳房" -#: core/models.py:296 -msgid "Both breasts" -msgstr "两侧乳房" - -#: core/models.py:297 -msgid "Parent fed" -msgstr "父母喂养" - -#: core/models.py:298 -msgid "Self fed" -msgstr "自己吃" - #: core/models.py:301 core/templates/core/feeding_list.html:29 msgid "Method" msgstr "方式" -#: core/models.py:452 -msgid "Napping" -msgstr "小睡" +#: core/models.py:239 core/models.py:303 core/models.py:428 +#: core/templates/core/diaperchange_list.html:31 +#: core/templates/core/pumping_list.html:29 +msgid "Amount" +msgstr "数量" + +#: core/models.py:243 +msgid "Only \"Bottle\" method is allowed with \"Formula\" type." +msgstr "只有“奶瓶”方式才允许使用“配方奶”类型。" #: core/models.py:540 core/templates/core/timer_list.html:25 msgid "Name" @@ -1134,7 +807,6 @@ msgid "Timers" msgstr "计时器" #: core/models.py:568 -#, python-brace-format msgid "Timer #{id}" msgstr "计时器 #{id}" @@ -1142,22 +814,21 @@ msgstr "计时器 #{id}" msgid "Milestone" msgstr "里程碑" -#: core/templates/core/bmi_confirm_delete.html:4 -msgid "Delete a BMI Entry" -msgstr "删除一条BMI记录" - -#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 -#: core/templates/core/bmi_form.html:27 -msgid "Add a BMI Entry" -msgstr "新增一条BMI记录" - -#: core/templates/core/bmi_list.html:15 -msgid "Add BMI" -msgstr "新增BMI记录" - -#: core/templates/core/bmi_list.html:70 -msgid "No BMI entries found." -msgstr "未找到BMI记录。" +#: core/models.py:141 core/models.py:341 core/models.py:371 core/models.py:675 +#: core/templates/core/bmi_list.html:25 +#: core/templates/core/feeding_list.html:25 +#: core/templates/core/head_circumference_list.html:25 +#: core/templates/core/height_list.html:25 +#: core/templates/core/weight_list.html:25 reports/graphs/bmi_change.py:28 +#: reports/graphs/diaperchange_amounts.py:37 +#: reports/graphs/diaperchange_types.py:49 reports/graphs/feeding_amounts.py:70 +#: reports/graphs/feeding_duration.py:56 +#: reports/graphs/head_circumference_change.py:28 +#: reports/graphs/height_change.py:28 reports/graphs/pumping_amounts.py:58 +#: reports/graphs/sleep_pattern.py:151 reports/graphs/sleep_totals.py:59 +#: reports/graphs/tummytime_duration.py:51 reports/graphs/weight_change.py:28 +msgid "Date" +msgstr "日期" #: core/templates/core/child_confirm_delete.html:4 msgid "Delete a Child" @@ -1167,36 +838,28 @@ msgstr "删除宝宝信息" msgid "To confirm this action. Type the full name of the child below." msgstr "确认这一行为,请在下面键入孩子的全名。" -#: core/templates/core/child_detail.html:25 +#: core/templates/core/child_detail.html:23 #: dashboard/templates/dashboard/dashboard.html:32 msgid "Born" msgstr "生日" -#: core/templates/core/child_detail.html:26 +#: core/templates/core/child_detail.html:24 #: dashboard/templates/dashboard/dashboard.html:33 msgid "Age" msgstr "年龄" -#: core/templates/core/child_list.html:15 -msgid "Add Child" -msgstr "新增宝宝" +#: core/templates/timeline/_timeline.html:38 +msgid "%(since)s ago (%(time)s)" +msgstr "%(since)s 之前 (%(time)s)" #: core/templates/core/child_list.html:27 msgid "Birth Date" msgstr "出生日期" -#: core/templates/core/child_list.html:62 +#: core/templates/core/child_list.html:67 msgid "No children found." msgstr "未找到宝宝。" -#: core/templates/core/child_quick_switch.html:6 -msgid "Switch child" -msgstr "切换宝宝" - -#: core/templates/core/child_quick_switch.html:13 -msgid "Switch to…" -msgstr "切换到…" - #: core/templates/core/diaperchange_confirm_delete.html:4 msgid "Delete a Diaper Change" msgstr "删除一条换尿布记录" @@ -1218,18 +881,14 @@ msgstr "添加一条换尿布记录" msgid "Add" msgstr "添加" -#: core/templates/core/diaperchange_list.html:15 -msgid "Add Diaper Change" -msgstr "新增换尿布记录" - -#: core/templates/core/diaperchange_list.html:29 -msgid "Contents" -msgstr "内容" - #: core/templates/core/diaperchange_list.html:77 msgid "No diaper changes found." msgstr "未找到换尿布记录。" +#: core/templates/core/diaperchange_list.html:63 +msgid "Add a Change" +msgstr "添加一条尿布记录" + #: core/templates/core/feeding_confirm_delete.html:4 msgid "Delete a Feeding" msgstr "删除一条喂食记录" @@ -1243,10 +902,6 @@ msgstr "更新一条喂食记录" msgid "Add a Feeding" msgstr "新增一条喂食记录" -#: core/templates/core/feeding_list.html:15 -msgid "Add Feeding" -msgstr "新增喂食记录" - #: core/templates/core/feeding_list.html:33 msgid "Amt." msgstr "数量" @@ -1255,6 +910,934 @@ msgstr "数量" msgid "No feedings found." msgstr "未找到喂食记录。" +#: core/templates/core/note_confirm_delete.html:4 +msgid "Delete a Note" +msgstr "删除一条记录" + +#: core/templates/core/note_form.html:6 +msgid "Update a Note" +msgstr "更新一条记录" + +#: core/templates/core/note_form.html:8 core/templates/core/note_form.html:27 +msgid "Add a Note" +msgstr "新增一条记录" + +#: core/templates/core/note_list.html:64 +msgid "No notes found." +msgstr "未找到记录。" + +#: core/templates/core/sleep_confirm_delete.html:4 +msgid "Delete a Sleep Entry" +msgstr "删除一条睡眠记录" + +#: core/templates/core/sleep_form.html:6 +msgid "Update a Sleep Entry" +msgstr "更新一条睡眠记录" + +#: core/templates/core/sleep_form.html:8 core/templates/core/sleep_form.html:27 +msgid "Add a Sleep Entry" +msgstr "新增一条睡眠记录" + +#: core/templates/core/sleep_list.html:25 +#: core/templates/core/timer_form.html:12 +#: core/templates/core/timer_list.html:24 +#: core/templates/core/tummytime_list.html:24 +msgid "Start" +msgstr "开始" + +#: core/templates/core/sleep_list.html:26 +#: core/templates/core/timer_list.html:30 +#: core/templates/core/tummytime_list.html:25 +msgid "End" +msgstr "结束" + +#: core/templates/core/sleep_list.html:31 +msgid "Nap" +msgstr "小睡" + +#: core/templates/core/sleep_list.html:74 +msgid "No sleep entries found." +msgstr "未找到睡眠记录。" + +#: core/templates/core/timer_confirm_delete.html:5 +msgid "Delete %(object)s" +msgstr "删除 %(object)s" + +#: core/templates/core/timer_detail.html:28 +msgid "Started" +msgstr "已经开始" + +#: core/templates/core/timer_detail.html:30 +msgid "Stopped" +msgstr "已经结束" + +#: core/templates/core/timer_detail.html:26 +msgid "%(timer)s created by %(object.user)s" +msgstr "%(timer)s 由 %(object.user)s 创建" + +#: core/templates/core/timer_detail.html:63 +msgid "Timer actions" +msgstr "计时器操作" + +#: core/templates/core/timer_form.html:22 +#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:23 +msgid "Start Timer" +msgstr "开始计时" + +#: core/templates/core/timer_list.html:58 +msgid "No timer entries found." +msgstr "未找到计时器。" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:32 +#: core/templates/core/timer_nav.html:18 +msgid "Quick Start Timer" +msgstr "快速开始计时" + +#: core/templates/core/timer_nav.html:28 +msgid "View Timers" +msgstr "查看计时器" + +#: core/templates/core/timer_nav.html:32 +#: dashboard/templates/cards/timer_list.html:6 +msgid "Active Timers" +msgstr "激活的计时器" + +#: core/templates/core/timer_nav.html:38 +#: dashboard/templates/cards/diaperchange_last.html:17 +#: dashboard/templates/cards/diaperchange_types.html:12 +#: dashboard/templates/cards/feeding_day.html:20 +#: dashboard/templates/cards/feeding_day.html:52 +#: dashboard/templates/cards/feeding_last.html:17 +#: dashboard/templates/cards/feeding_last_method.html:43 +#: dashboard/templates/cards/sleep_day.html:14 +#: dashboard/templates/cards/sleep_last.html:17 +#: dashboard/templates/cards/sleep_naps_day.html:18 +#: dashboard/templates/cards/tummytime_day.html:14 +msgid "None" +msgstr "无" + +#: core/templates/core/tummytime_confirm_delete.html:4 +msgid "Delete a Tummy Time Entry" +msgstr "删除一条趴玩记录" + +#: core/templates/core/tummytime_form.html:6 +msgid "Update a Tummy Time Entry" +msgstr "更新一条趴玩记录" + +#: core/templates/core/tummytime_form.html:8 +#: core/templates/core/tummytime_form.html:27 +msgid "Add a Tummy Time Entry" +msgstr "新增一条趴玩记录" + +#: core/templates/core/tummytime_list.html:67 +msgid "No tummy time entries found." +msgstr "未找到趴玩记录。" + +#: core/templates/core/weight_confirm_delete.html:4 +msgid "Delete a Weight Entry" +msgstr "删除一条体重记录" + +#: core/templates/core/weight_form.html:8 +#: core/templates/core/weight_form.html:17 +#: core/templates/core/weight_form.html:27 +msgid "Add a Weight Entry" +msgstr "新增一条体重记录" + +#: core/templates/core/weight_list.html:70 +msgid "No weight entries found." +msgstr "未找到体重记录。" + +#: core/timeline.py:164 +msgid "%(child)s had a diaper change." +msgstr "%(child)s 换了一条尿布。" + +#: core/timeline.py:145 +msgid "%(child)s started feeding." +msgstr "%(child)s 开始喂食。" + +#: core/timeline.py:158 +msgid "%(child)s finished feeding." +msgstr "%(child)s 喂食完成。" + +#: core/timeline.py:91 +msgid "%(child)s fell asleep." +msgstr "%(child)s 睡着了。" + +#: core/timeline.py:103 +msgid "%(child)s woke up." +msgstr "%(child)s 醒了。" + +#: core/timeline.py:53 +msgid "%(child)s started tummy time!" +msgstr "%(child)s 开始了趴玩时光!" + +#: core/timeline.py:65 +msgid "%(child)s finished tummy time." +msgstr "%(child)s 结束了趴玩。" + +#: core/views.py:33 +msgid "%(model)s entry for %(child)s added!" +msgstr "为%(child)s 增加了一条 %(model)s 记录!" + +#: core/views.py:35 core/views.py:308 +msgid "%(model)s entry added!" +msgstr "增加了一条 %(model)s 记录!" + +#: core/views.py:61 core/views.py:316 +msgid "%(model)s entry for %(child)s updated." +msgstr "为%(child)s 更新了一条 %(model)s 记录!" + +#: core/views.py:63 +msgid "%(model)s entry updated." +msgstr "更新了一条 %(model)s 记录!" + +#: core/views.py:115 +msgid "%(first_name)s %(last_name)s added!" +msgstr "%(first_name)s %(last_name)s 已新增!" + +#: core/views.py:478 +msgid "%(timer)s stopped." +msgstr "%(timer)s 停止。" + +#: dashboard/templates/cards/diaperchange_last.html:6 +msgid "Last Diaper Change" +msgstr "上一次换尿布" + +#: dashboard/templates/cards/diaperchange_last.html:8 +#: dashboard/templates/cards/feeding_last.html:8 +#: dashboard/templates/cards/sleep_last.html:8 +#: dashboard/templates/cards/tummytime_last.html:8 +msgid "%(time)s ago" +msgstr "%(time)s 之前" + +#: dashboard/templates/cards/tummytime_last.html:18 +msgid "Never" +msgstr "从不" + +#: dashboard/templates/cards/diaperchange_types.html:14 +msgid "Past Week" +msgstr "过去一周" + +#: dashboard/templates/cards/diaperchange_types.html:27 +msgid "wet" +msgstr "小便" + +#: dashboard/templates/cards/diaperchange_types.html:35 +msgid "solid" +msgstr "大便" + +#: dashboard/templates/cards/diaperchange_types.html:49 +msgid "today" +msgstr "今天" + +#: dashboard/templates/cards/diaperchange_types.html:51 +msgid "yesterday" +msgstr "昨天" + +#: dashboard/templates/cards/diaperchange_types.html:53 +msgid "%(key)s days ago" +msgstr "%(key)s 天之前" + +#: dashboard/templates/cards/feeding_last.html:6 +msgid "Last Feeding" +msgstr "上一次喂食" + +#: dashboard/templates/cards/feeding_last_method.html:6 +msgid "Last Feeding Method" +msgstr "上一次喂食的方式" + +#: dashboard/templates/cards/sleep_day.html:6 +msgid "Today's Sleep" +msgstr "今天的睡觉" + +#: dashboard/templates/cards/sleep_day.html:11 +#: dashboard/templates/cards/sleep_naps_day.html:13 +#: dashboard/templates/cards/tummytime_day.html:11 +msgid "None yet today" +msgstr "今天还没有" + +#: dashboard/templates/cards/sleep_day.html:20 +msgid "%(count)s sleep entries" +msgstr "%(count)s 条睡眠记录" + +#: dashboard/templates/cards/sleep_last.html:4 +msgid "Last Slept" +msgstr "上一次入睡" + +#: dashboard/templates/cards/sleep_naps_day.html:6 +msgid "Today's Naps" +msgstr "今天的小睡" + +#: dashboard/templates/cards/sleep_naps_day.html:12 +msgid "%(count)s nap%(plural)s" +msgstr "%(count)s 小睡%(plural)s" + +#: dashboard/templates/cards/statistics.html:7 +msgid "Statistics" +msgstr "统计数据" + +#: dashboard/templates/cards/statistics.html:25 +msgid "Not enough data" +msgstr "没有足够的数据" + +#: dashboard/templates/cards/timer_list.html:12 +msgid "%(count)s active timer%(plural)s" +msgstr "%(count)s 个激活的计时器%(plural)s" + +#: dashboard/templates/cards/timer_list.html:19 +msgid "Started by %(instance.user)s at %(start)s" +msgstr "在 %(start)s 由 %(instance.user)s 开始" + +#: dashboard/templates/cards/tummytime_day.html:6 +msgid "Today's Tummy Time" +msgstr "今天的趴玩时间" + +#: dashboard/templates/cards/tummytime_day.html:22 +msgid "%(duration)s at %(end)s" +msgstr "%(duration)s 直到 %(end)s" + +#: dashboard/templates/cards/tummytime_last.html:6 +msgid "Last Tummy Time" +msgstr "上一次趴玩时间" + +#: dashboard/templates/dashboard/child_button_group.html:3 +msgid "Child actions" +msgstr "宝宝行动" + +#: reports/templates/reports/diaperchange_types.html:4 +#: reports/templates/reports/diaperchange_types.html:8 +#: reports/templates/reports/report_list.html:12 +msgid "Diaper Change Types" +msgstr "换尿布类型" + +#: reports/templates/reports/diaperchange_lifetimes.html:4 +#: reports/templates/reports/diaperchange_lifetimes.html:8 +#: reports/templates/reports/report_list.html:13 +msgid "Diaper Lifetimes" +msgstr "换尿布时间间隔" + +#: reports/templates/reports/report_list.html:15 +msgid "Feeding Durations (Average)" +msgstr "喂食时间(平均)" + +#: reports/templates/reports/report_list.html:19 +#: reports/templates/reports/sleep_pattern.html:4 +#: reports/templates/reports/sleep_pattern.html:8 +msgid "Sleep Pattern" +msgstr "睡眠类型" + +#: reports/templates/reports/report_list.html:20 +#: reports/templates/reports/sleep_totals.html:4 +#: reports/templates/reports/sleep_totals.html:8 +msgid "Sleep Totals" +msgstr "睡眠统计" + +#: dashboard/templatetags/cards.py:420 +msgid "Diaper change frequency" +msgstr "换尿布频率" + +#: dashboard/templatetags/cards.py:466 +msgid "Feeding frequency" +msgstr "喂食频率" + +#: dashboard/templatetags/cards.py:328 +msgid "Average nap duration" +msgstr "平均小睡时间" + +#: dashboard/templatetags/cards.py:335 +msgid "Average naps per day" +msgstr "每天的平均小睡次数" + +#: dashboard/templatetags/cards.py:345 +msgid "Average sleep duration" +msgstr "平均睡眠时间" + +#: dashboard/templatetags/cards.py:352 +msgid "Average awake duration" +msgstr "平均清醒时间" + +#: dashboard/templatetags/cards.py:362 +msgid "Weight change per week" +msgstr "每周体重变化" + +#: reports/graphs/diaperchange_lifetimes.py:35 +msgid "Diaper Lifetimes" +msgstr "换尿布时间间隔" + +#: reports/graphs/diaperchange_lifetimes.py:36 +msgid "Time between changes (hours)" +msgstr "换尿布间隔时间(小时)" + +#: reports/graphs/diaperchange_types.py:41 reports/graphs/feeding_amounts.py:58 +msgid "Total" +msgstr "总计" + +#: reports/graphs/diaperchange_types.py:48 +msgid "Diaper Change Types" +msgstr "换尿布类型" + +#: reports/graphs/diaperchange_types.py:51 +msgid "Number of changes" +msgstr "换尿布次数" + +#: reports/graphs/feeding_duration.py:38 +msgid "Average duration" +msgstr "平均持续时间" + +#: reports/graphs/feeding_duration.py:46 +msgid "Total feedings" +msgstr "总喂食量" + +#: reports/graphs/feeding_duration.py:55 +msgid "Average Feeding Durations" +msgstr "平均喂食持续时间" + +#: reports/graphs/feeding_duration.py:58 +msgid "Average duration (minutes)" +msgstr "平均持续时间(分钟)" + +#: reports/graphs/feeding_duration.py:60 +msgid "Number of feedings" +msgstr "喂食次数" + +#: reports/graphs/sleep_pattern.py:148 +msgid "Sleep Pattern" +msgstr "睡眠类型" + +#: reports/graphs/sleep_pattern.py:165 +msgid "Time of day" +msgstr "当日时间" + +#: reports/graphs/sleep_totals.py:48 +msgid "Total sleep" +msgstr "睡眠统计" + +#: reports/graphs/sleep_totals.py:58 +msgid "Sleep Totals" +msgstr "睡眠总计" + +#: reports/graphs/sleep_totals.py:61 +msgid "Hours of sleep" +msgstr "睡眠时间" + +#: reports/graphs/weight_change.py:27 +msgid "Weight" +msgstr "体重" + +#: reports/templates/reports/feeding_duration.html:4 +#: reports/templates/reports/feeding_duration.html:8 +msgid "Average Feeding Durations" +msgstr "平均喂食持续时间" + +#: dashboard/templates/dashboard/child_button_group.html:12 +#: reports/templates/reports/base.html:9 +#: reports/templates/reports/report_list.html:4 +msgid "Reports" +msgstr "报告" + +#: reports/templates/reports/report_base.html:19 +msgid "There is no enough data to generate this report." +msgstr "没有足够的数据来生成报告。" + +#: core/models.py:296 +msgid "Both breasts" +msgstr "两侧乳房" + +#: babybuddy/settings/base.py:173 +msgid "German" +msgstr "德语" + +#: babybuddy/settings/base.py:177 +msgid "Spanish" +msgstr "西班牙语" + +#: babybuddy/settings/base.py:178 +msgid "Swedish" +msgstr "瑞典语" + +#: babybuddy/settings/base.py:179 +msgid "Turkish" +msgstr "土耳其语" + +#: babybuddy/templates/error/403.html:9 +msgid "You do not have permission to access this resource. Contact a site administrator for assistance." +msgstr "您没有访问此资源的权限。请联系网站管理员以获得帮助。" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:75 +#: babybuddy/templates/babybuddy/nav-dropdown.html:179 core/models.py:506 +#: core/models.py:519 core/models.py:520 core/models.py:523 +#: core/templates/core/temperature_confirm_delete.html:7 +#: core/templates/core/temperature_form.html:13 +#: core/templates/core/temperature_list.html:4 +#: core/templates/core/temperature_list.html:7 +#: core/templates/core/temperature_list.html:12 +#: core/templates/core/temperature_list.html:29 +msgid "Temperature" +msgstr "体温" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:185 +msgid "Temperature reading" +msgstr "体温读数" + +#: babybuddy/templates/babybuddy/welcome.html:14 +msgid "Learn about and predict baby's needs without (as much) guess work by using Baby Buddy to track —" +msgstr "通过使用 Baby Buddy 来跟踪了解和预测宝宝的需求,而无需 (过多地) 进行猜测工作 —" + +#: babybuddy/templates/babybuddy/welcome.html:56 +msgid "As the amount of entries grows, Baby Buddy will help parents and caregivers to identify small patterns in baby's habits using the dashboard and graphs. Baby Buddy is mobile-friendly and uses a dark theme to help weary moms and dads with 2AM feedings and changings. To get started, just click the button below to add your first (or second, third, etc.) child!" +msgstr "随着条目数量的增加,Baby Buddy将帮助家长和护理人员使用数据看板和图表识别宝宝的习惯。Baby Buddy是一款手机友好型产品,使用黑色主题帮助疲惫的爸爸妈妈在凌晨2点喂食和换尿布。想要开始使用,只需单击下面的按钮添加您的第一个(或第二个、第三个等)宝宝!" + +#: babybuddy/templates/registration/password_reset_confirm.html:13 +msgid "Oh snap! The two passwords did not match. Please try again." +msgstr "糟糕! 两次密码输入的不一致,请重试。" + +#: babybuddy/templates/registration/password_reset_done.html:9 +msgid "We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly." +msgstr "我们已通过电子邮件向您发送了设置密码的说明。如果您输入的电子邮件正确,您将很快收到邮件。" + +#: babybuddy/templates/registration/password_reset_done.html:15 +msgid "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder." +msgstr "如果您没有收到电子邮件,请确保您已输入正确的邮箱地址,并检查您的垃圾邮件文件夹。" + +#: babybuddy/templates/registration/password_reset_form.html:9 +msgid "Enter your account email address in the form below. If the address is valid, you will receive instructions for resetting your password." +msgstr "在下面的表格中输入您的电子邮箱地址。如果地址有效,您将收到重置密码的说明。" + +#: core/models.py:285 +msgid "Fortified breast milk" +msgstr "强化母乳" + +#: core/templates/core/temperature_confirm_delete.html:4 +msgid "Delete a Temperature Reading" +msgstr "删除一个体温读数" + +#: core/templates/core/temperature_form.html:8 +#: core/templates/core/temperature_form.html:17 +msgid "Add a Temperature Reading" +msgstr "新增一个体温读数" + +#: core/templates/core/temperature_form.html:27 +msgid "Add a Temperature Entry" +msgstr "新增一个体温条目" + +#: core/templates/core/temperature_list.html:70 +msgid "No temperature entries found." +msgstr "未找到体温条目。" + +#: core/templates/core/timer_detail.html:34 +msgid "%(timer)s created by %(user)s" +msgstr "%(timer)s 由 %(user)s 创建" + +#: core/utils.py:40 +msgid "%(hours)s hour" +msgid_plural "%(hours)s hours" +msgstr[0] "%(hours)s 小时" + +#: core/utils.py:44 +msgid "%(minutes)s minute" +msgid_plural "%(minutes)s minutes" +msgstr[0] "%(minutes)s 分钟" + +#: core/utils.py:50 +msgid "%(seconds)s second" +msgid_plural "%(seconds)s seconds" +msgstr[0] "%(seconds)s 秒" + +#: core/views.py:69 core/views.py:146 +msgid "%(model)s entry deleted." +msgstr "%(model)s 条目已删除。" + +#: core/views.py:366 +msgid "%(model)s reading added!" +msgstr "%(model)s 读数已增加!" + +#: core/views.py:374 +msgid "%(model)s reading for %(child)s updated." +msgstr "%(child)s 的 %(model)s 读数已更新。" + +#: dashboard/templates/cards/timer_list.html:27 +msgid "Started by %(user)s at %(start)s" +msgstr "在 %(start)s 由 %(user)s 开始" + +#: reports/templates/reports/feeding_amounts.html:4 +#: reports/templates/reports/feeding_amounts.html:8 +#: reports/templates/reports/report_list.html:14 +msgid "Feeding Amounts" +msgstr "喂食量" + +#: reports/graphs/feeding_amounts.py:27 +msgid "Total feeding amount" +msgstr "合计喂食量" + +#: reports/graphs/feeding_amounts.py:36 +msgid "Total Feeding Amounts" +msgstr "合计喂食量" + +#: reports/graphs/feeding_amounts.py:72 +msgid "Feeding amount" +msgstr "喂食量" + +#: reports/templates/reports/report_base.html:17 +msgid "There is not enough data to generate this report." +msgstr "没有足够的数据来生成这个报告。" + +#: babybuddy/models.py:69 +msgid "Timezone" +msgstr "时区" + +#: babybuddy/templates/admin/base_site.html:4 +#: babybuddy/templates/admin/base_site.html:7 +#: babybuddy/templates/babybuddy/nav-dropdown.html:359 +msgid "Database Admin" +msgstr "数据库管理员" + +#: core/templates/core/child_list.html:15 +msgid "Add Child" +msgstr "新增宝宝" + +#: core/templates/core/diaperchange_list.html:15 +msgid "Add Diaper Change" +msgstr "新增换尿布记录" + +#: core/templates/core/feeding_list.html:15 +msgid "Add Feeding" +msgstr "新增喂食记录" + +#: core/templates/core/note_list.html:15 +msgid "Add Note" +msgstr "新增笔记" + +#: core/templates/core/sleep_list.html:15 +msgid "Add Sleep" +msgstr "新增睡眠记录" + +#: core/templates/core/temperature_list.html:15 +msgid "Add Temperature Reading" +msgstr "新增体温记录" + +#: core/templates/core/timer_confirm_delete_inactive.html:5 +msgid "Delete All Inactive Timers" +msgstr "删除所有处于非活动状态的计时器" + +#: core/templates/core/timer_confirm_delete_inactive.html:10 +msgid "Delete Inactive" +msgstr "删除非活动" + +#: core/templates/core/timer_confirm_delete_inactive.html:17 +msgid "Are you sure you want to delete %(number)s inactive timer%(plural)s?" +msgstr "确定要删除%(number)s个非活动的计时器%(plural)s?" + +#: core/templates/core/timer_list.html:68 +msgid "Delete Inactive Timers" +msgstr "删除处于非活动状态下的计时器" + +#: core/templates/core/tummytime_list.html:15 +msgid "Add Tummy Time" +msgstr "新增趴玩时间" + +#: core/templates/core/weight_list.html:15 +msgid "Add Weight" +msgstr "新增体重记录" + +#: core/views.py:501 +msgid "All inactive timers deleted." +msgstr "所有处于非活动状态下的计时器已删除。" + +#: core/views.py:511 +msgid "No inactive timers exist." +msgstr "不存在非活动的计时器。" + +#: dashboard/templates/cards/feeding_last_method.html:19 +msgid "most recent" +msgstr "最近" + +#: dashboard/templates/cards/feeding_last_method.html:21 +msgid "%(n)s feeding%(plural)s ago" +msgstr "前 %(n)s 次喂食%(plural)s" + +#: dashboard/templates/cards/sleep_last.html:6 +msgid "Last Sleep" +msgstr "上一次睡眠" + +#: reports/templates/reports/report_list.html:11 +msgid "Diaper Change Amounts" +msgstr "换尿布数量" + +#: reports/graphs/diaperchange_amounts.py:27 +msgid "Diaper change amount" +msgstr "换尿布数量" + +#: reports/graphs/diaperchange_amounts.py:36 +msgid "Diaper Change Amounts" +msgstr "换尿布数量" + +#: reports/graphs/diaperchange_amounts.py:39 +msgid "Change amount" +msgstr "换尿布数量" + +#: reports/templates/reports/diaperchange_amounts.html:4 +#: reports/templates/reports/diaperchange_amounts.html:8 +msgid "Diaper Amounts" +msgstr "换尿布数量" + +#: babybuddy/models.py:21 +msgid "If supported by browser, the dashboard will only refresh when visible, and also when receiving focus." +msgstr "如果浏览器支持,数据看板只会在可见及接收焦点时也会刷新。" + +#: babybuddy/models.py:40 +msgid "Hide Empty Dashboard Cards" +msgstr "隐藏空的数据看板卡片" + +#. 应该为:隐藏早于......的数据 +#: babybuddy/models.py:43 +msgid "Hide data older than" +msgstr "隐藏数据早于" + +#: babybuddy/models.py:45 +msgid "This setting controls which data will be shown in the dashboard." +msgstr "此设置控制哪些数据显示在数据看板中。" + +#: babybuddy/models.py:51 +msgid "show all data" +msgstr "展示所有数据" + +#: babybuddy/models.py:52 +msgid "1 day" +msgstr "1天" + +#: babybuddy/models.py:53 +msgid "2 days" +msgstr "2天" + +#: babybuddy/models.py:54 +msgid "3 days" +msgstr "3天" + +#: babybuddy/models.py:55 +msgid "1 week" +msgstr "1周" + +#: babybuddy/models.py:56 +msgid "4 weeks" +msgstr "4 周" + +#: babybuddy/settings/base.py:168 +msgid "Dutch" +msgstr "荷兰语" + +#: babybuddy/settings/base.py:172 +msgid "Finnish" +msgstr "芬兰语" + +#: babybuddy/settings/base.py:174 +msgid "Italian" +msgstr "意大利语" + +#: babybuddy/settings/base.py:175 +msgid "Polish" +msgstr "波兰语" + +#: babybuddy/settings/base.py:176 +msgid "Portuguese" +msgstr "葡萄牙语" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:118 +#: core/templates/timeline/timeline.html:4 +#: core/templates/timeline/timeline.html:7 +#: dashboard/templates/dashboard/child_button_group.html:9 +msgid "Timeline" +msgstr "时间线" + +#: core/models.py:286 +msgid "Solid food" +msgstr "固体食物" + +#: core/models.py:297 +msgid "Parent fed" +msgstr "父母喂养" + +#: core/models.py:298 +msgid "Self fed" +msgstr "自己吃" + +#: core/templates/core/diaperchange_list.html:29 +msgid "Contents" +msgstr "内容" + +#: core/templates/core/timer_detail.html:77 +msgid "Restart timer" +msgstr "重启计时器" + +#: core/templates/core/timer_detail.html:84 +msgid "Delete timer" +msgstr "删除计时器" + +#: core/templatetags/datetime.py:60 +msgid "Today" +msgstr "今天" + +#: core/templatetags/datetime.py:75 +msgid "{}, {}" +msgstr "{}, {}" + +#: core/templatetags/duration.py:25 +msgid "0 days" +msgstr "0天" + +#: core/timeline.py:137 +msgid "Amount: %(amount).0f" +msgstr "数量: %(amount).0f" + +#: core/timeline.py:157 +msgid "Contents: %(contents)s" +msgstr "内容: %(contents)s" + +#: dashboard/templates/cards/diaperchange_last.html:12 +#: dashboard/templates/cards/feeding_last.html:12 +#: dashboard/templates/cards/sleep_last.html:12 +#: dashboard/templates/cards/tummytime_last.html:13 +msgid "
%(since)s ago
%(time)s" +msgstr "
%(since)s 之前
%(time)s" + +#: dashboard/templates/cards/feeding_day.html:6 +msgid "Today's Feeding" +msgstr "今天的喂食" + +#: dashboard/templates/cards/feeding_day.html:20 +msgid "%(count)s feeding entries" +msgstr "%(count)s 喂食条目" + +#: dashboard/templates/cards/statistics.html:42 +msgid "No data yet" +msgstr "还没有数据" + +#: reports/templates/reports/report_list.html:21 +msgid "Tummy Time Durations (Sum)" +msgstr "趴玩时光持续时间(合计)" + +#: core/templates/timeline/_timeline.html:61 +#: dashboard/templates/dashboard/child_button_group.html:20 +msgid "Edit" +msgstr "编辑" + +#: dashboard/templatetags/cards.py:456 +msgid "Feeding frequency (past 3 days)" +msgstr "喂食频率(过去三天)" + +#: dashboard/templatetags/cards.py:460 +msgid "Feeding frequency (past 2 weeks)" +msgstr "喂食频率(过去两周)" + +#: reports/graphs/tummytime_duration.py:34 +msgid "Total duration" +msgstr "总持续时间" + +#: reports/graphs/tummytime_duration.py:41 +#: reports/graphs/tummytime_duration.py:55 +msgid "Number of sessions" +msgstr "趴玩次数" + +#: reports/graphs/tummytime_duration.py:50 +msgid "Total Tummy Time Durations" +msgstr "趴玩时光持续时间合计" + +#: reports/graphs/tummytime_duration.py:53 +msgid "Total duration (minutes)" +msgstr "总持续时间(分钟)" + +#: reports/templates/reports/tummytime_duration.html:4 +#: reports/templates/reports/tummytime_duration.html:8 +msgid "Total Tummy Time Durations" +msgstr "趴玩时光持续时间合计" + +#: babybuddy/settings/base.py:169 +msgid "English (US)" +msgstr "英语(美国)" + +#: babybuddy/settings/base.py:170 +msgid "English (UK)" +msgstr "英语(英国)" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:171 +msgid "Measurements" +msgstr "测量" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:207 core/models.py:369 +#: core/models.py:381 core/models.py:382 core/models.py:385 +#: core/templates/core/height_confirm_delete.html:7 +#: core/templates/core/height_form.html:13 +#: core/templates/core/height_list.html:4 +#: core/templates/core/height_list.html:7 +#: core/templates/core/height_list.html:12 +#: core/templates/core/height_list.html:29 reports/graphs/height_change.py:19 +#: reports/graphs/height_change.py:30 +#: reports/templates/reports/height_change.html:4 +#: reports/templates/reports/height_change.html:8 +#: reports/templates/reports/report_list.html:17 +msgid "Height" +msgstr "身高" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:213 +msgid "Height entry" +msgstr "身高记录" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:221 core/models.py:338 +#: core/models.py:351 core/models.py:352 core/models.py:355 +#: core/templates/core/head_circumference_confirm_delete.html:7 +#: core/templates/core/head_circumference_form.html:13 +#: core/templates/core/head_circumference_list.html:4 +#: core/templates/core/head_circumference_list.html:7 +#: core/templates/core/head_circumference_list.html:12 +#: core/templates/core/head_circumference_list.html:29 +#: reports/graphs/head_circumference_change.py:19 +#: reports/graphs/head_circumference_change.py:30 +#: reports/templates/reports/head_circumference_change.html:4 +#: reports/templates/reports/head_circumference_change.html:8 +#: reports/templates/reports/report_list.html:16 +msgid "Head Circumference" +msgstr "头围" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:227 +msgid "Head Circumference entry" +msgstr "头围记录" + +#. BMI is an international standard +#: babybuddy/templates/babybuddy/nav-dropdown.html:235 core/models.py:139 +#: core/models.py:151 core/models.py:152 core/models.py:155 +#: core/templates/core/bmi_confirm_delete.html:7 +#: core/templates/core/bmi_form.html:13 core/templates/core/bmi_list.html:4 +#: core/templates/core/bmi_list.html:7 core/templates/core/bmi_list.html:12 +#: core/templates/core/bmi_list.html:29 reports/graphs/bmi_change.py:19 +#: reports/graphs/bmi_change.py:30 reports/templates/reports/bmi_change.html:4 +#: reports/templates/reports/bmi_change.html:8 +msgid "BMI" +msgstr "身体质量指数(BMI)" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:241 +msgid "BMI entry" +msgstr "BMI记录" + +#: core/models.py:452 +msgid "Napping" +msgstr "小睡" + +#: core/templates/core/bmi_confirm_delete.html:4 +msgid "Delete a BMI Entry" +msgstr "删除一条BMI记录" + +#: core/templates/core/bmi_form.html:8 core/templates/core/bmi_form.html:17 +#: core/templates/core/bmi_form.html:27 +msgid "Add a BMI Entry" +msgstr "新增一条BMI记录" + +#: core/templates/core/bmi_list.html:15 +msgid "Add BMI" +msgstr "新增BMI记录" + +#: core/templates/core/bmi_list.html:70 +msgid "No bmi entries found." +msgstr "未找到BMI记录。" + #: core/templates/core/head_circumference_confirm_delete.html:4 msgid "Delete a Head Circumference Entry" msgstr "删除一条头围记录" @@ -1291,25 +1874,134 @@ msgstr "新增身高记录" msgid "No height entries found." msgstr "未找到身高记录。" -#: core/templates/core/note_confirm_delete.html:4 -msgid "Delete a Note" -msgstr "删除一条记录" +#: core/templates/timeline/_timeline.html:44 +msgid "Duration: %(duration)s" +msgstr "持续时间:%(duration)s" -#: core/templates/core/note_form.html:6 -msgid "Update a Note" -msgstr "更新一条记录" +#: core/templates/timeline/_timeline.html:53 +msgid "%(since)s since previous" +msgstr "距离上一次 %(since)s" -#: core/templates/core/note_form.html:8 core/templates/core/note_form.html:27 -msgid "Add a Note" -msgstr "新增一条记录" +#: core/templates/timeline/_timeline.html:85 +msgid "No events" +msgstr "没有事件" -#: core/templates/core/note_list.html:15 -msgid "Add Note" -msgstr "新增笔记" +#: core/timeline.py:185 +msgid "%(child)s had a %(type)s diaper change." +msgstr "%(child)s 有一条 %(type)s 换尿裤记录." -#: core/templates/core/note_list.html:64 -msgid "No notes found." -msgstr "未找到记录。" +#: dashboard/templatetags/cards.py:372 +msgid "Height change per week" +msgstr "每周身高变化" + +#: dashboard/templatetags/cards.py:382 +msgid "Head circumference change per week" +msgstr "每周头围变化" + +#: dashboard/templatetags/cards.py:392 +msgid "BMI change per week" +msgstr "每周BMI变化" + +#: reports/graphs/bmi_change.py:27 +msgid "BMI" +msgstr "身体质量指数(BMI)" + +#: reports/graphs/feeding_amounts.py:69 +msgid "Total Feeding Amount by Type" +msgstr "按类型划分的总喂食量统计" + +#: reports/graphs/head_circumference_change.py:27 +msgid "Head Circumference" +msgstr "头围" + +#: reports/graphs/height_change.py:27 +msgid "Height" +msgstr "身高" + +#: babybuddy/settings/base.py:167 +msgid "Chinese (simplified)" +msgstr "中文(简体)" + +#: babybuddy/templates/error/400.html:4 babybuddy/templates/error/400.html:7 +msgid "Bad Request" +msgstr "请求无效" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:14 +msgid "How to Fix" +msgstr "如何修复" + +#: babybuddy/templates/error/403_csrf_bad_origin.html:15 +msgid "Add %(origin)s to the CSRF_TRUSTED_ORIGINS environment variable. If multiple origins are required separate with commas." +msgstr "添加 %(origin)s 到环境变量 CSRF_TRUSTED_ORIGINS。用英文逗号分隔多个来源。" + +#: babybuddy/templates/error/404.html:4 babybuddy/templates/error/404.html:7 +msgid "Page Not Found" +msgstr "页面未找到" + +#: babybuddy/templates/error/404.html:9 +msgid "The path %(request_path)s does not exist." +msgstr "路径 %(request_path)s 不存在。" + +#: babybuddy/templates/error/500.html:4 babybuddy/templates/error/500.html:7 +msgid "Server Error" +msgstr "服务器错误" + +#: babybuddy/templates/error/base.html:14 +msgid "Return to Baby Buddy" +msgstr "返回 Baby Buddy!" + +#: babybuddy/views.py:43 +msgid "Forbidden" +msgstr "禁止访问" + +#: babybuddy/views.py:44 +msgid "CSRF verification failed. Request aborted." +msgstr "跨站请求伪造 (CSRF) 验证失败,请求中断。" + +#: babybuddy/settings/base.py:166 +msgid "Catalan" +msgstr "加泰罗尼亚语" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:93 +#: babybuddy/templates/babybuddy/nav-dropdown.html:316 core/models.py:437 +#: core/models.py:438 core/models.py:441 +#: core/templates/core/pumping_confirm_delete.html:7 +#: core/templates/core/pumping_form.html:13 +#: core/templates/core/pumping_list.html:4 +#: core/templates/core/pumping_list.html:7 +#: core/templates/core/pumping_list.html:12 +#: reports/templates/reports/pumping_amounts.html:4 +#: reports/templates/reports/pumping_amounts.html:8 +msgid "Pumping" +msgstr "吸奶" + +#: babybuddy/templates/babybuddy/nav-dropdown.html:322 +msgid "Pumping entry" +msgstr "吸奶记录" + +#: core/filters.py:11 core/models.py:96 core/models.py:115 +msgid "Tag" +msgstr "标签" + +#: core/forms.py:136 +msgid "Click on the tags to add (+) or remove (-) tags or use the text editor to create new tags." +msgstr "点击标签来添加 (+) 或删除 (-),也可编辑以新建标签。" + +#: core/models.py:90 +msgid "Last used" +msgstr "上次使用" + +#: core/models.py:97 core/templates/core/bmi_list.html:30 +#: core/templates/core/diaperchange_list.html:32 +#: core/templates/core/feeding_list.html:35 +#: core/templates/core/head_circumference_list.html:30 +#: core/templates/core/height_list.html:30 +#: core/templates/core/note_list.html:30 core/templates/core/sleep_list.html:32 +#: core/templates/core/temperature_list.html:30 +#: core/templates/core/tummytime_list.html:31 +#: core/templates/core/weight_list.html:30 +msgid "Tags" +msgstr "标签" #: core/templates/core/pumping_confirm_delete.html:4 msgid "Delete a Pumping Entry" @@ -1329,195 +2021,6 @@ msgstr "新增吸奶记录" msgid "No pumping entries found." msgstr "未找到吸奶记录。" -#: core/templates/core/quick_timer_nav.html:9 -#: core/templates/core/quick_timer_nav.html:29 -#: core/templates/core/timer_nav.html:37 -msgid "Quick Start Timer" -msgstr "快速开始计时" - -#: core/templates/core/quick_timer_nav.html:19 -#: core/templates/core/timer_nav.html:28 -msgid "Quick Start Timer For…" -msgstr "为…快速开始计时" - -#: core/templates/core/sleep_confirm_delete.html:4 -msgid "Delete a Sleep Entry" -msgstr "删除一条睡眠记录" - -#: core/templates/core/sleep_form.html:6 -msgid "Update a Sleep Entry" -msgstr "更新一条睡眠记录" - -#: core/templates/core/sleep_form.html:8 core/templates/core/sleep_form.html:27 -msgid "Add a Sleep Entry" -msgstr "新增一条睡眠记录" - -#: core/templates/core/sleep_list.html:15 -msgid "Add Sleep" -msgstr "新增睡眠记录" - -#: core/templates/core/sleep_list.html:25 -#: core/templates/core/timer_form.html:12 -#: core/templates/core/timer_list.html:24 -#: core/templates/core/tummytime_list.html:24 -msgid "Start" -msgstr "开始" - -#: core/templates/core/sleep_list.html:26 -#: core/templates/core/timer_list.html:30 -#: core/templates/core/tummytime_list.html:25 -msgid "End" -msgstr "结束" - -#: core/templates/core/sleep_list.html:31 -msgid "Nap" -msgstr "小睡" - -#: core/templates/core/sleep_list.html:74 -msgid "No sleep entries found." -msgstr "未找到睡眠记录。" - -#: core/templates/core/temperature_confirm_delete.html:4 -msgid "Delete a Temperature Reading" -msgstr "删除一个体温读数" - -#: core/templates/core/temperature_form.html:8 -#: core/templates/core/temperature_form.html:17 -msgid "Add a Temperature Reading" -msgstr "新增一个体温读数" - -#: core/templates/core/temperature_form.html:27 -msgid "Add a Temperature Entry" -msgstr "新增一个体温条目" - -#: core/templates/core/temperature_list.html:15 -msgid "Add Temperature Reading" -msgstr "新增体温记录" - -#: core/templates/core/temperature_list.html:70 -msgid "No temperature entries found." -msgstr "未找到体温条目。" - -#: core/templates/core/timer_confirm_delete.html:5 -#, python-format -msgid "Delete %(object)s" -msgstr "删除 %(object)s" - -#: core/templates/core/timer_confirm_delete_inactive.html:5 -msgid "Delete All Inactive Timers" -msgstr "删除所有处于非活动状态的计时器" - -#: core/templates/core/timer_confirm_delete_inactive.html:10 -msgid "Delete Inactive" -msgstr "删除非活动" - -#: core/templates/core/timer_confirm_delete_inactive.html:17 -#, python-format -msgid "Are you sure you want to delete %(number)s inactive timer?" -msgid_plural "Are you sure you want to delete %(number)s inactive timers?" -msgstr[0] "确定要删除%(number)s个非活动的计时器?" - -#: core/templates/core/timer_detail.html:28 -msgid "Started" -msgstr "已经开始" - -#: core/templates/core/timer_detail.html:30 -msgid "Stopped" -msgstr "已经结束" - -#: core/templates/core/timer_detail.html:34 -#, python-format -msgid "%(timer)s created by %(user)s" -msgstr "%(timer)s 由 %(user)s 创建" - -#: core/templates/core/timer_detail.html:63 -msgid "Timer actions" -msgstr "计时器操作" - -#: core/templates/core/timer_detail.html:77 -msgid "Restart timer" -msgstr "重启计时器" - -#: core/templates/core/timer_detail.html:84 -msgid "Delete timer" -msgstr "删除计时器" - -#: core/templates/core/timer_form.html:22 -#: core/templates/core/timer_list.html:15 core/templates/core/timer_nav.html:15 -msgid "Start Timer" -msgstr "开始计时" - -#: core/templates/core/timer_list.html:58 -msgid "No timer entries found." -msgstr "未找到计时器。" - -#: core/templates/core/timer_list.html:68 -msgid "Delete Inactive Timers" -msgstr "删除处于非活动状态下的计时器" - -#: core/templates/core/timer_nav.html:20 -msgid "View Timers" -msgstr "查看计时器" - -#: core/templates/core/timer_nav.html:44 -#: dashboard/templates/cards/timer_list.html:6 -msgid "Active Timers" -msgstr "激活的计时器" - -#: core/templates/core/timer_nav.html:50 -#: dashboard/templates/cards/diaperchange_last.html:17 -#: dashboard/templates/cards/diaperchange_types.html:12 -#: dashboard/templates/cards/feeding_day.html:20 -#: dashboard/templates/cards/feeding_day.html:52 -#: dashboard/templates/cards/feeding_last.html:17 -#: dashboard/templates/cards/feeding_last_method.html:43 -#: dashboard/templates/cards/sleep_last.html:17 -#: dashboard/templates/cards/sleep_naps_day.html:18 -#: dashboard/templates/cards/sleep_recent.html:20 -#: dashboard/templates/cards/sleep_recent.html:52 -#: dashboard/templates/cards/tummytime_day.html:14 -msgid "None" -msgstr "无" - -#: core/templates/core/tummytime_confirm_delete.html:4 -msgid "Delete a Tummy Time Entry" -msgstr "删除一条趴玩记录" - -#: core/templates/core/tummytime_form.html:6 -msgid "Update a Tummy Time Entry" -msgstr "更新一条趴玩记录" - -#: core/templates/core/tummytime_form.html:8 -#: core/templates/core/tummytime_form.html:27 -msgid "Add a Tummy Time Entry" -msgstr "新增一条趴玩记录" - -#: core/templates/core/tummytime_list.html:15 -msgid "Add Tummy Time" -msgstr "新增趴玩时间" - -#: core/templates/core/tummytime_list.html:67 -msgid "No tummy time entries found." -msgstr "未找到趴玩记录。" - -#: core/templates/core/weight_confirm_delete.html:4 -msgid "Delete a Weight Entry" -msgstr "删除一条体重记录" - -#: core/templates/core/weight_form.html:8 -#: core/templates/core/weight_form.html:17 -#: core/templates/core/weight_form.html:27 -msgid "Add a Weight Entry" -msgstr "新增一条体重记录" - -#: core/templates/core/weight_list.html:15 -msgid "Add Weight" -msgstr "新增体重记录" - -#: core/templates/core/weight_list.html:70 -msgid "No weight entries found." -msgstr "未找到体重记录。" - #: core/templates/core/widget_tag_editor.html:22 msgid "Tag name" msgstr "标签名" @@ -1556,553 +2059,56 @@ msgctxt "Error modal" msgid "Close" msgstr "关闭" -#: core/templates/timeline/_timeline.html:38 -#, python-format -msgid "%(since)s ago (%(time)s)" -msgstr "%(since)s 之前 (%(time)s)" +#: dashboard/templates/cards/feeding_day.html:32 +msgid "
%(since)s
" +msgstr "
%(since)s
" -#: core/templates/timeline/_timeline.html:44 -#, python-format -msgid "Duration: %(duration)s" -msgstr "持续时间:%(duration)s" +#: dashboard/templatetags/cards.py:410 +msgid "Diaper change frequency (past 3 days)" +msgstr "换尿布频率(过去三天)" -#: core/templates/timeline/_timeline.html:53 -#, python-format -msgid "%(since)s since previous" -msgstr "距离上一次 %(since)s" +#: dashboard/templatetags/cards.py:414 +msgid "Diaper change frequency (past 2 weeks)" +msgstr "换尿布频率(过去两周)" -#: core/templates/timeline/_timeline.html:61 -#: dashboard/templates/dashboard/child_button_group.html:20 -msgid "Edit" -msgstr "编辑" +#: reports/graphs/pumping_amounts.py:57 +msgid "Total Pumping Amount" +msgstr "合计吸奶量" -#: core/templates/timeline/_timeline.html:85 -msgid "No events" -msgstr "没有事件" +#: reports/graphs/pumping_amounts.py:60 +msgid "Pumping Amount" +msgstr "吸奶量" -#: core/templatetags/datetime.py:60 -msgid "Today" -msgstr "今天" +#: reports/templates/reports/report_list.html:10 +msgid "Body Mass Index (BMI)" +msgstr "身体质量指数 (BMI)" -#: core/templatetags/datetime.py:75 -msgid "{}, {}" -msgstr "{}, {}" +#: reports/templates/reports/report_list.html:18 +msgid "Pumping Amounts" +msgstr "吸奶量" -#: core/templatetags/duration.py:25 -msgid "0 days" -msgstr "0天" - -#: core/templatetags/duration.py:111 -#: dashboard/templates/cards/diaperchange_types.html:49 -msgid "today" -msgstr "今天" - -#: core/templatetags/duration.py:113 -#: dashboard/templates/cards/diaperchange_types.html:51 -msgid "yesterday" -msgstr "昨天" - -#: core/templatetags/duration.py:116 -msgid " days ago" -msgstr "天之前" - -#: core/timeline.py:53 -#, python-format -msgid "%(child)s started tummy time!" -msgstr "%(child)s 开始了趴玩时光!" - -#: core/timeline.py:65 -#, python-format -msgid "%(child)s finished tummy time." -msgstr "%(child)s 结束了趴玩。" - -#: core/timeline.py:91 -#, python-format -msgid "%(child)s fell asleep." -msgstr "%(child)s 睡着了。" - -#: core/timeline.py:103 -#, python-format -msgid "%(child)s woke up." -msgstr "%(child)s 醒了。" - -#: core/timeline.py:137 -#, python-format -msgid "Amount: %(amount).0f" -msgstr "数量: %(amount).0f" - -#: core/timeline.py:145 -#, python-format -msgid "%(child)s started feeding." -msgstr "%(child)s 开始喂食。" - -#: core/timeline.py:158 -#, python-format -msgid "%(child)s finished feeding." -msgstr "%(child)s 喂食完成。" - -#: core/timeline.py:185 -#, python-format -msgid "%(child)s had a %(type)s diaper change." -msgstr "%(child)s 有一条 %(type)s 换尿裤记录." - -#: core/utils.py:40 -#, python-format -msgid "%(hours)s hour" -msgid_plural "%(hours)s hours" -msgstr[0] "%(hours)s 小时" - -#: core/utils.py:44 -#, python-format -msgid "%(minutes)s minute" -msgid_plural "%(minutes)s minutes" -msgstr[0] "%(minutes)s 分钟" - -#: core/utils.py:50 -#, python-format -msgid "%(seconds)s second" -msgid_plural "%(seconds)s seconds" -msgstr[0] "%(seconds)s 秒" - -#: core/views.py:33 -#, python-format -msgid "%(model)s entry for %(child)s added!" -msgstr "为%(child)s 增加了一条 %(model)s 记录!" - -#: core/views.py:35 core/views.py:308 -#, python-format -msgid "%(model)s entry added!" -msgstr "增加了一条 %(model)s 记录!" - -#: core/views.py:61 core/views.py:316 -#, python-format -msgid "%(model)s entry for %(child)s updated." -msgstr "为%(child)s 更新了一条 %(model)s 记录!" - -#: core/views.py:63 -#, python-format -msgid "%(model)s entry updated." -msgstr "更新了一条 %(model)s 记录!" - -#: core/views.py:69 core/views.py:146 -#, python-format -msgid "%(model)s entry deleted." -msgstr "%(model)s 条目已删除。" - -#: core/views.py:115 -#, python-format -msgid "%(first_name)s %(last_name)s added!" -msgstr "%(first_name)s %(last_name)s 已新增!" - -#: core/views.py:366 -#, python-format -msgid "%(model)s reading added!" -msgstr "%(model)s 读数已增加!" - -#: core/views.py:374 -#, python-format -msgid "%(model)s reading for %(child)s updated." -msgstr "%(child)s 的 %(model)s 读数已更新。" - -#: core/views.py:483 -#, python-format -msgid "%(timer)s stopped." -msgstr "%(timer)s 停止。" - -#: core/views.py:506 -msgid "All inactive timers deleted." -msgstr "所有处于非活动状态下的计时器已删除。" - -#: core/views.py:516 -msgid "No inactive timers exist." -msgstr "不存在非活动的计时器。" - -#: dashboard/templates/cards/diaperchange_last.html:6 -msgid "Last Diaper Change" -msgstr "上一次换尿布" - -#: dashboard/templates/cards/diaperchange_last.html:12 -#: dashboard/templates/cards/feeding_last.html:12 -#: dashboard/templates/cards/sleep_last.html:12 -#: dashboard/templates/cards/tummytime_last.html:13 -#, python-format -msgid "
%(since)s ago
%(time)s" -msgstr "
%(since)s 之前
%(time)s" - -#: dashboard/templates/cards/diaperchange_types.html:14 -msgid "Past Week" -msgstr "过去一周" - -#: dashboard/templates/cards/diaperchange_types.html:27 -msgid "wet" -msgstr "小便" - -#: dashboard/templates/cards/diaperchange_types.html:35 -msgid "solid" -msgstr "大便" - -#: dashboard/templates/cards/diaperchange_types.html:53 -#, python-format -msgid "%(key)s days ago" -msgstr "%(key)s 天之前" - -#: dashboard/templates/cards/feeding_day.html:6 -msgid "Today's Feeding" -msgstr "今天的喂食" +#: core/templates/core/timer_confirm_delete_inactive.html:17 +msgid "Are you sure you want to delete %(number)s inactive timer?" +msgid_plural "Are you sure you want to delete %(number)s inactive timers?" +msgstr[0] "确定要删除%(number)s个非活动的计时器?" #: dashboard/templates/cards/feeding_day.html:25 -#, python-format msgid "%(counter)s feeding" msgid_plural "%(counter)s feedings" msgstr[0] "%(counter)s 次喂食" -#: dashboard/templates/cards/feeding_day.html:32 -#: dashboard/templates/cards/sleep_recent.html:32 -#, python-format -msgid "
%(since)s
" -msgstr "" - -#: dashboard/templates/cards/feeding_last.html:6 -msgid "Last Feeding" -msgstr "上一次喂食" - -#: dashboard/templates/cards/feeding_last_method.html:6 -msgid "Last Feeding Method" -msgstr "上一次喂食的方式" - -#: dashboard/templates/cards/feeding_last_method.html:19 -msgid "most recent" -msgstr "最近" - #: dashboard/templates/cards/feeding_last_method.html:21 -#, python-format msgid "%(n)s feeding ago" msgid_plural "%(n)s feedings ago" msgstr[0] "前 %(n)s 次喂食" -#: dashboard/templates/cards/sleep_last.html:6 -msgid "Last Sleep" -msgstr "上一次睡眠" - -#: dashboard/templates/cards/sleep_naps_day.html:6 -msgid "Today's Naps" -msgstr "今天的小睡" - #: dashboard/templates/cards/sleep_naps_day.html:12 -#, python-format msgid "%(count)s nap" msgid_plural "%(count)s naps" msgstr[0] "%(count)s 小睡" -#: dashboard/templates/cards/sleep_recent.html:6 -msgid "Recent Sleep" -msgstr "最近的睡眠" - -#: dashboard/templates/cards/sleep_recent.html:25 -#, python-format -msgid "%(counter)s sleep" -msgid_plural "%(counter)s sleep" -msgstr[0] "%(counter)s 次睡眠" - -#: dashboard/templates/cards/statistics.html:7 -msgid "Statistics" -msgstr "统计数据" - -#: dashboard/templates/cards/statistics.html:25 -msgid "Not enough data" -msgstr "没有足够的数据" - -#: dashboard/templates/cards/statistics.html:42 -msgid "No data yet" -msgstr "还没有数据" - #: dashboard/templates/cards/timer_list.html:12 -#, python-format msgid "%(count)s active timer" msgid_plural "%(count)s active timers" msgstr[0] "%(count)s 个激活的计时器" -#: dashboard/templates/cards/timer_list.html:27 -#, python-format -msgid "Started by %(user)s at %(start)s" -msgstr "在 %(start)s 由 %(user)s 开始" - -#: dashboard/templates/cards/tummytime_day.html:6 -msgid "Today's Tummy Time" -msgstr "今天的趴玩时间" - -#: dashboard/templates/cards/tummytime_day.html:22 -#, python-format -msgid "%(duration)s at %(end)s" -msgstr "%(duration)s 直到 %(end)s" - -#: dashboard/templates/cards/tummytime_last.html:6 -msgid "Last Tummy Time" -msgstr "上一次趴玩时间" - -#: dashboard/templates/cards/tummytime_last.html:18 -msgid "Never" -msgstr "从不" - -#: dashboard/templates/dashboard/child_button_group.html:3 -msgid "Child actions" -msgstr "宝宝行动" - -#: dashboard/templates/dashboard/child_button_group.html:12 -#: reports/templates/reports/breadcrumb_common_chunk.html:6 -#: reports/templates/reports/report_list.html:4 -#: reports/templates/reports/report_list.html:11 -msgid "Reports" -msgstr "报告" - -#: dashboard/templatetags/cards.py:357 -msgid "Average nap duration" -msgstr "平均小睡时间" - -#: dashboard/templatetags/cards.py:364 -msgid "Average naps per day" -msgstr "每天的平均小睡次数" - -#: dashboard/templatetags/cards.py:374 -msgid "Average sleep duration" -msgstr "平均睡眠时间" - -#: dashboard/templatetags/cards.py:381 -msgid "Average awake duration" -msgstr "平均清醒时间" - -#: dashboard/templatetags/cards.py:391 -msgid "Weight change per week" -msgstr "每周体重变化" - -#: dashboard/templatetags/cards.py:401 -msgid "Height change per week" -msgstr "每周身高变化" - -#: dashboard/templatetags/cards.py:411 -msgid "Head circumference change per week" -msgstr "每周头围变化" - -#: dashboard/templatetags/cards.py:421 -msgid "BMI change per week" -msgstr "每周BMI变化" - -#: dashboard/templatetags/cards.py:439 -msgid "Diaper change frequency (past 3 days)" -msgstr "换尿布频率(过去三天)" - -#: dashboard/templatetags/cards.py:443 -msgid "Diaper change frequency (past 2 weeks)" -msgstr "换尿布频率(过去两周)" - -#: dashboard/templatetags/cards.py:449 -msgid "Diaper change frequency" -msgstr "换尿布频率" - -#: dashboard/templatetags/cards.py:485 -msgid "Feeding frequency (past 3 days)" -msgstr "喂食频率(过去三天)" - -#: dashboard/templatetags/cards.py:489 -msgid "Feeding frequency (past 2 weeks)" -msgstr "喂食频率(过去两周)" - -#: dashboard/templatetags/cards.py:495 -msgid "Feeding frequency" -msgstr "喂食频率" - -#: reports/graphs/bmi_change.py:27 -msgid "BMI" -msgstr "身体质量指数(BMI)" - -#: reports/graphs/diaperchange_amounts.py:27 -msgid "Diaper change amount" -msgstr "换尿布数量" - -#: reports/graphs/diaperchange_amounts.py:36 -msgid "Diaper Change Amounts" -msgstr "换尿布数量" - -#: reports/graphs/diaperchange_amounts.py:39 -msgid "Change amount" -msgstr "换尿布数量" - -#: reports/graphs/diaperchange_lifetimes.py:35 -msgid "Diaper Lifetimes" -msgstr "换尿布时间间隔" - -#: reports/graphs/diaperchange_lifetimes.py:36 -msgid "Time between changes (hours)" -msgstr "换尿布间隔时间(小时)" - -#: reports/graphs/diaperchange_types.py:41 reports/graphs/feeding_amounts.py:58 -msgid "Total" -msgstr "总计" - -#: reports/graphs/diaperchange_types.py:48 -msgid "Diaper Change Types" -msgstr "换尿布类型" - -#: reports/graphs/diaperchange_types.py:51 -msgid "Number of changes" -msgstr "换尿布次数" - -#: reports/graphs/feeding_amounts.py:69 -msgid "Total Feeding Amount by Type" -msgstr "按类型划分的总喂食量统计" - -#: reports/graphs/feeding_amounts.py:72 -msgid "Feeding amount" -msgstr "喂食量" - -#: reports/graphs/feeding_duration.py:38 -msgid "Average duration" -msgstr "平均持续时间" - -#: reports/graphs/feeding_duration.py:46 -msgid "Total feedings" -msgstr "总喂食量" - -#: reports/graphs/feeding_duration.py:55 -msgid "Average Feeding Durations" -msgstr "平均喂食持续时间" - -#: reports/graphs/feeding_duration.py:58 -msgid "Average duration (minutes)" -msgstr "平均持续时间(分钟)" - -#: reports/graphs/feeding_duration.py:60 -msgid "Number of feedings" -msgstr "喂食次数" - -#: reports/graphs/head_circumference_change.py:27 -msgid "Head Circumference" -msgstr "头围" - -#: reports/graphs/height_change.py:27 -msgid "Height" -msgstr "身高" - -#: reports/graphs/pumping_amounts.py:59 -msgid "Total Pumping Amount" -msgstr "合计吸奶量" - -#: reports/graphs/pumping_amounts.py:62 -msgid "Pumping Amount" -msgstr "吸奶量" - -#: reports/graphs/sleep_pattern.py:150 -msgid "Sleep Pattern" -msgstr "睡眠类型" - -#: reports/graphs/sleep_pattern.py:167 -msgid "Time of day" -msgstr "当日时间" - -#: reports/graphs/sleep_totals.py:48 -msgid "Total sleep" -msgstr "睡眠统计" - -#: reports/graphs/sleep_totals.py:58 -msgid "Sleep Totals" -msgstr "睡眠总计" - -#: reports/graphs/sleep_totals.py:61 -msgid "Hours of sleep" -msgstr "睡眠时间" - -#: reports/graphs/tummytime_duration.py:34 -msgid "Total duration" -msgstr "总持续时间" - -#: reports/graphs/tummytime_duration.py:41 -#: reports/graphs/tummytime_duration.py:55 -msgid "Number of sessions" -msgstr "趴玩次数" - -#: reports/graphs/tummytime_duration.py:50 -msgid "Total Tummy Time Durations" -msgstr "趴玩时光持续时间合计" - -#: reports/graphs/tummytime_duration.py:53 -msgid "Total duration (minutes)" -msgstr "总持续时间(分钟)" - -#: reports/graphs/weight_change.py:27 -msgid "Weight" -msgstr "体重" - -#: reports/templates/reports/diaperchange_amounts.html:4 -#: reports/templates/reports/diaperchange_amounts.html:9 -msgid "Diaper Amounts" -msgstr "换尿布数量" - -#: reports/templates/reports/diaperchange_lifetimes.html:4 -#: reports/templates/reports/diaperchange_lifetimes.html:9 -#: reports/templates/reports/report_list.html:22 -msgid "Diaper Lifetimes" -msgstr "换尿布时间间隔" - -#: reports/templates/reports/diaperchange_types.html:4 -#: reports/templates/reports/diaperchange_types.html:9 -#: reports/templates/reports/report_list.html:21 -msgid "Diaper Change Types" -msgstr "换尿布类型" - -#: reports/templates/reports/feeding_amounts.html:4 -#: reports/templates/reports/feeding_amounts.html:9 -#: reports/templates/reports/report_list.html:23 -msgid "Feeding Amounts" -msgstr "喂食量" - -#: reports/templates/reports/feeding_duration.html:4 -#: reports/templates/reports/feeding_duration.html:9 -msgid "Average Feeding Durations" -msgstr "平均喂食持续时间" - -#: reports/templates/reports/report_base.html:17 -msgid "There is not enough data to generate this report." -msgstr "没有足够的数据来生成这个报告。" - -#: reports/templates/reports/report_list.html:19 -msgid "Body Mass Index (BMI)" -msgstr "身体质量指数 (BMI)" - -#: reports/templates/reports/report_list.html:20 -msgid "Diaper Change Amounts" -msgstr "换尿布数量" - -#: reports/templates/reports/report_list.html:24 -msgid "Feeding Durations (Average)" -msgstr "喂食时间(平均)" - -#: reports/templates/reports/report_list.html:27 -msgid "Pumping Amounts" -msgstr "吸奶量" - -#: reports/templates/reports/report_list.html:28 -#: reports/templates/reports/sleep_pattern.html:4 -#: reports/templates/reports/sleep_pattern.html:9 -msgid "Sleep Pattern" -msgstr "睡眠类型" - -#: reports/templates/reports/report_list.html:29 -#: reports/templates/reports/sleep_totals.html:4 -#: reports/templates/reports/sleep_totals.html:9 -msgid "Sleep Totals" -msgstr "睡眠统计" - -#: reports/templates/reports/report_list.html:30 -msgid "Tummy Time Durations (Sum)" -msgstr "趴玩时光持续时间(合计)" - -#: reports/templates/reports/tummytime_duration.html:4 -#: reports/templates/reports/tummytime_duration.html:9 -msgid "Total Tummy Time Durations" -msgstr "趴玩时光持续时间合计" - -#~ msgid "Today's Sleep" -#~ msgstr "今天的睡觉" - -#~ msgid "%(count)s sleep entries" -#~ msgstr "%(count)s 条睡眠记录" diff --git a/package.json b/package.json index e8cba1f7..6efbb8de 100644 --- a/package.json +++ b/package.json @@ -20,16 +20,16 @@ "gulp-sass-glob": "^1.1.0", "gulp-spawn": "^1.0.0", "gulp-uglify": "^3.0.2", - "jquery": "^3.6.0", + "jquery": "^3.6.1", "moment": "^2.29.4", - "moment-timezone": "^0.5.34", + "moment-timezone": "^0.5.37", "npm-force-resolutions": "^0.0.10", - "plotly.js": "^2.13.2", + "plotly.js": "^2.15.1", "popper.js": "^1.16.1", "pulltorefreshjs": "^0.1.22", "pump": "^3.0.0", - "sass": "^1.54.0", - "stylelint": "^14.9.1", + "sass": "^1.55.0", + "stylelint": "^14.13.0", "stylelint-config-recommended-scss": "^7.0.0", "stylelint-order": "^5.0.0", "stylelint-scss": "^4.3.0", diff --git a/requirements.txt b/requirements.txt index 5e387283..54d53af2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,45 +1,45 @@ -i https://pypi.python.org/simple -asgiref==3.5.2 -boto3==1.24.28 -botocore==1.27.28 -defusedxml==0.7.1 -diff-match-patch==20200713 -dj-database-url==0.5.0 -django==4.0.6 -django-appconf==1.0.5 -django-axes==5.35.0 +asgiref==3.5.2; python_version >= '3.7' +boto3==1.24.89 +botocore==1.27.89; python_version >= '3.7' +defusedxml==0.7.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' +diff-match-patch==20200713; python_version >= '2.7' +dj-database-url==1.0.0 +django==4.1.2 +django-appconf==1.0.5; python_version >= '3.1' +django-axes==5.39.0 django-filter==22.1 django-imagekit==4.1.0 -django-import-export==2.8.0 -django-ipware==4.0.2 +django-import-export==2.9.0 +django-ipware==4.0.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' +django-storages==1.13.1 django-qr-code==3.1.1 -django-storages==1.12.3 django-taggit==3.0.0 django-widget-tweaks==1.4.12 -djangorestframework==3.13.1 -et-xmlfile==1.1.0 -faker==13.15.0 +djangorestframework==3.14.0 +et-xmlfile==1.1.0; python_version >= '3.6' +faker==15.1.0 gunicorn==20.1.0 -jmespath==1.0.1 +jmespath==1.0.1; python_version >= '3.7' markuppy==1.14 odfpy==1.4.1 openpyxl==3.0.10 pilkit==2.0 pillow==9.2.0 -plotly==5.9.0 -psycopg2-binary==2.9.3 -python-dateutil==2.8.2 -python-dotenv==0.20.0 -pytz==2022.1 +plotly==5.10.0 +psycopg2-binary==2.9.4 +python-dateutil==2.8.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' +python-dotenv==0.21.0 +pytz==2022.4 pyyaml==6.0 -s3transfer==0.6.0 -setuptools==63.1.0 -six==1.16.0 -sqlparse==0.4.2 -tablib[html,ods,xls,xlsx,yaml]==3.2.1 -tenacity==8.0.1 +s3transfer==0.6.0; python_version >= '3.7' +setuptools==65.4.1; python_version >= '3.7' +six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' +sqlparse==0.4.3; python_version >= '3.5' +tablib[html,ods,xls,xlsx,yaml]==3.2.1; python_version >= '3.7' +tenacity==8.1.0; python_version >= '3.6' uritemplate==4.1.1 -urllib3==1.26.10 +urllib3==1.26.12; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4' whitenoise==6.2.0 xlrd==2.0.1 xlwt==1.3.0 diff --git a/static/admin/css/base.1f418065fc2c.css b/static/admin/css/base.01580fff1759.css similarity index 87% rename from static/admin/css/base.1f418065fc2c.css rename to static/admin/css/base.01580fff1759.css index e7152af9..81e4b8d1 100644 --- a/static/admin/css/base.1f418065fc2c.css +++ b/static/admin/css/base.01580fff1759.css @@ -57,40 +57,6 @@ --object-tools-hover-bg: var(--close-button-hover-bg); } -@media (prefers-color-scheme: dark) { - :root { - --primary: #264b5d; - --primary-fg: #eee; - - --body-fg: #eeeeee; - --body-bg: #121212; - --body-quiet-color: #e0e0e0; - --body-loud-color: #ffffff; - - --breadcrumbs-link-fg: #e0e0e0; - --breadcrumbs-bg: var(--primary); - - --link-fg: #81d4fa; - --link-hover-color: #4ac1f7; - --link-selected-fg: #6f94c6; - - --hairline-color: #272727; - --border-color: #353535; - - --error-fg: #e35f5f; - --message-success-bg: #006b1b; - --message-warning-bg: #583305; - --message-error-bg: #570808; - - --darkened-bg: #212121; - --selected-bg: #1b1b1b; - --selected-row: #00363a; - - --close-button-bg: #333333; - --close-button-hover-bg: #666666; - } -} - html, body { height: 100%; } @@ -98,7 +64,7 @@ html, body { body { margin: 0; padding: 0; - font-size: 14px; + font-size: 0.875rem; font-family: "Roboto","Lucida Grande","DejaVu Sans","Bitstream Vera Sans",Verdana,Arial,sans-serif; color: var(--body-fg); background: var(--body-bg); @@ -151,12 +117,12 @@ h1,h2,h3,h4,h5 { h1 { margin: 0 0 20px; font-weight: 300; - font-size: 20px; + font-size: 1.25rem; color: var(--body-quiet-color); } h2 { - font-size: 16px; + font-size: 1rem; margin: 1em 0 .5em 0; } @@ -166,20 +132,20 @@ h2.subhead { } h3 { - font-size: 14px; + font-size: 0.875rem; margin: .8em 0 .3em 0; color: var(--body-quiet-color); font-weight: bold; } h4 { - font-size: 12px; + font-size: 0.75rem; margin: 1em 0 .8em 0; padding-bottom: 3px; } h5 { - font-size: 10px; + font-size: 0.625rem; margin: 1.5em 0 .5em 0; color: var(--body-quiet-color); text-transform: uppercase; @@ -196,7 +162,7 @@ li ul { } li, dt, dd { - font-size: 13px; + font-size: 0.8125rem; line-height: 20px; } @@ -223,7 +189,7 @@ fieldset { } blockquote { - font-size: 11px; + font-size: 0.6875rem; color: #777; margin-left: 2px; padding-left: 10px; @@ -233,7 +199,7 @@ blockquote { code, pre { font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace; color: var(--body-quiet-color); - font-size: 12px; + font-size: 0.75rem; overflow-x: auto; } @@ -255,22 +221,21 @@ hr { border: none; margin: 0; padding: 0; - font-size: 1px; line-height: 1px; } /* TEXT STYLES & MODIFIERS */ .small { - font-size: 11px; + font-size: 0.6875rem; } .mini { - font-size: 10px; + font-size: 0.625rem; } .help, p.help, form p.help, div.help, form div.help, div.help li { - font-size: 11px; + font-size: 0.6875rem; color: var(--body-quiet-color); } @@ -300,7 +265,7 @@ p img, h1 img, h2 img, h3 img, h4 img, td img { } .hidden { - display: none; + display: none !important; } /* TABLES */ @@ -311,7 +276,7 @@ table { } td, th { - font-size: 13px; + font-size: 0.8125rem; line-height: 16px; border-bottom: 1px solid var(--hairline-color); vertical-align: top; @@ -327,7 +292,7 @@ thead th, tfoot td { color: var(--body-quiet-color); padding: 5px 10px; - font-size: 11px; + font-size: 0.6875rem; background: var(--body-bg); border: none; border-top: 1px solid var(--hairline-color); @@ -437,7 +402,7 @@ table thead th.sorted .sortoptions a.sortremove:after { top: -6px; left: 3px; font-weight: 200; - font-size: 18px; + font-size: 1.125rem; color: var(--body-quiet-color); } @@ -478,7 +443,7 @@ input, textarea, select, .form-row p, form .button { vertical-align: middle; font-family: "Roboto", "Lucida Grande", Verdana, Arial, sans-serif; font-weight: normal; - font-size: 13px; + font-size: 0.8125rem; } .form-row div.help { padding: 2px 3px; @@ -589,7 +554,7 @@ input[type=button][disabled].default { margin: 0; padding: 8px; font-weight: 400; - font-size: 13px; + font-size: 0.8125rem; text-align: left; background: var(--primary); color: var(--header-link-color); @@ -597,7 +562,7 @@ input[type=button][disabled].default { .module caption, .inline-group h2 { - font-size: 12px; + font-size: 0.75rem; letter-spacing: 0.5px; text-transform: uppercase; } @@ -616,12 +581,13 @@ ul.messagelist { ul.messagelist li { display: block; font-weight: 400; - font-size: 13px; + font-size: 0.8125rem; padding: 10px 10px 10px 65px; margin: 0 0 10px 0; background: var(--message-success-bg) url("../img/icon-yes.d2f9f035226a.svg") 40px 12px no-repeat; background-size: 16px auto; color: var(--body-fg); + word-break: break-word; } ul.messagelist li.warning { @@ -635,7 +601,7 @@ ul.messagelist li.error { } .errornote { - font-size: 14px; + font-size: 0.875rem; font-weight: 700; display: block; padding: 10px 12px; @@ -656,7 +622,7 @@ ul.errorlist { } ul.errorlist li { - font-size: 13px; + font-size: 0.8125rem; display: block; margin-bottom: 4px; overflow-wrap: break-word; @@ -697,7 +663,7 @@ td ul.errorlist + input, td ul.errorlist + select, td ul.errorlist + textarea { } .description { - font-size: 12px; + font-size: 0.75rem; padding: 5px 0 0 12px; } @@ -753,7 +719,7 @@ a.deletelink:focus, a.deletelink:hover { /* OBJECT TOOLS */ .object-tools { - font-size: 10px; + font-size: 0.625rem; font-weight: bold; padding-left: 0; float: right; @@ -779,7 +745,7 @@ a.deletelink:focus, a.deletelink:hover { background: var(--object-tools-bg); color: var(--object-tools-fg); font-weight: 400; - font-size: 11px; + font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.5px; } @@ -808,14 +774,21 @@ a.deletelink:focus, a.deletelink:hover { /* OBJECT HISTORY */ -table#change-history { +#change-history table { width: 100%; } -table#change-history tbody th { +#change-history table tbody th { width: 16em; } +#change-history .paginator { + color: var(--body-quiet-color); + border-bottom: 1px solid var(--hairline-color); + background: var(--body-bg); + overflow: hidden; +} + /* PAGE STRUCTURE */ #container { @@ -905,7 +878,7 @@ table#change-history tbody th { overflow: hidden; } -#header a:link, #header a:visited { +#header a:link, #header a:visited, #logout-form button { color: var(--header-link-color); } @@ -921,17 +894,17 @@ table#change-history tbody th { padding: 0; margin: 0 20px 0 0; font-weight: 300; - font-size: 24px; - color: var(--accent); + font-size: 1.5rem; + color: var(--header-branding-color); } -#branding h1, #branding h1 a:link, #branding h1 a:visited { +#branding h1 a:link, #branding h1 a:visited { color: var(--accent); } #branding h2 { padding: 0 10px; - font-size: 14px; + font-size: 0.875rem; margin: -8px 0 8px 0; font-weight: normal; color: var(--header-color); @@ -941,25 +914,43 @@ table#change-history tbody th { text-decoration: none; } +#logout-form { + display: inline; +} + +#logout-form button { + background: none; + border: 0; + cursor: pointer; + font-family: "Roboto","Lucida Grande","DejaVu Sans","Bitstream Vera Sans",Verdana,Arial,sans-serif; +} + #user-tools { float: right; - padding: 0; margin: 0 0 0 20px; - font-weight: 300; - font-size: 11px; - letter-spacing: 0.5px; - text-transform: uppercase; text-align: right; } -#user-tools a { +#user-tools, #logout-form button{ + padding: 0; + font-weight: 300; + font-size: 0.6875rem; + letter-spacing: 0.5px; + text-transform: uppercase; +} + +#user-tools a, #logout-form button { border-bottom: 1px solid rgba(255, 255, 255, 0.25); } -#user-tools a:focus, #user-tools a:hover { +#user-tools a:focus, #user-tools a:hover, +#logout-form button:active, #logout-form button:hover { text-decoration: none; - border-bottom-color: var(--primary); - color: var(--primary); + border-bottom: 0; +} + +#logout-form button:active, #logout-form button:hover { + margin-bottom: 1px; } /* SIDEBAR */ @@ -979,7 +970,7 @@ table#change-history tbody th { } #content-related h4 { - font-size: 13px; + font-size: 0.8125rem; } #content-related p { @@ -1003,7 +994,7 @@ table#change-history tbody th { padding: 16px; margin-bottom: 16px; border-bottom: 1px solid var(--hairline-color); - font-size: 18px; + font-size: 1.125rem; color: var(--body-fg); } @@ -1050,3 +1041,49 @@ table#change-history tbody th { .popup #header { padding: 10px 20px; } + +/* PAGINATOR */ + +.paginator { + font-size: 0.8125rem; + padding-top: 10px; + padding-bottom: 10px; + line-height: 22px; + margin: 0; + border-top: 1px solid var(--hairline-color); + width: 100%; +} + +.paginator a:link, .paginator a:visited { + padding: 2px 6px; + background: var(--button-bg); + text-decoration: none; + color: var(--button-fg); +} + +.paginator a.showall { + border: none; + background: none; + color: var(--link-fg); +} + +.paginator a.showall:focus, .paginator a.showall:hover { + background: none; + color: var(--link-hover-color); +} + +.paginator .end { + margin-right: 6px; +} + +.paginator .this-page { + padding: 2px 6px; + font-weight: bold; + font-size: 0.8125rem; + vertical-align: top; +} + +.paginator a:focus, .paginator a:hover { + color: white; + background: var(--link-hover-color); +} diff --git a/static/admin/css/base.01580fff1759.css.gz b/static/admin/css/base.01580fff1759.css.gz new file mode 100644 index 00000000..4853b919 Binary files /dev/null and b/static/admin/css/base.01580fff1759.css.gz differ diff --git a/static/admin/css/base.1f418065fc2c.css.gz b/static/admin/css/base.1f418065fc2c.css.gz deleted file mode 100644 index f4c29cf7..00000000 Binary files a/static/admin/css/base.1f418065fc2c.css.gz and /dev/null differ diff --git a/static/admin/css/base.css b/static/admin/css/base.css index 1cb3acdb..1ff93e24 100644 --- a/static/admin/css/base.css +++ b/static/admin/css/base.css @@ -57,40 +57,6 @@ --object-tools-hover-bg: var(--close-button-hover-bg); } -@media (prefers-color-scheme: dark) { - :root { - --primary: #264b5d; - --primary-fg: #eee; - - --body-fg: #eeeeee; - --body-bg: #121212; - --body-quiet-color: #e0e0e0; - --body-loud-color: #ffffff; - - --breadcrumbs-link-fg: #e0e0e0; - --breadcrumbs-bg: var(--primary); - - --link-fg: #81d4fa; - --link-hover-color: #4ac1f7; - --link-selected-fg: #6f94c6; - - --hairline-color: #272727; - --border-color: #353535; - - --error-fg: #e35f5f; - --message-success-bg: #006b1b; - --message-warning-bg: #583305; - --message-error-bg: #570808; - - --darkened-bg: #212121; - --selected-bg: #1b1b1b; - --selected-row: #00363a; - - --close-button-bg: #333333; - --close-button-hover-bg: #666666; - } -} - html, body { height: 100%; } @@ -98,7 +64,7 @@ html, body { body { margin: 0; padding: 0; - font-size: 14px; + font-size: 0.875rem; font-family: "Roboto","Lucida Grande","DejaVu Sans","Bitstream Vera Sans",Verdana,Arial,sans-serif; color: var(--body-fg); background: var(--body-bg); @@ -151,12 +117,12 @@ h1,h2,h3,h4,h5 { h1 { margin: 0 0 20px; font-weight: 300; - font-size: 20px; + font-size: 1.25rem; color: var(--body-quiet-color); } h2 { - font-size: 16px; + font-size: 1rem; margin: 1em 0 .5em 0; } @@ -166,20 +132,20 @@ h2.subhead { } h3 { - font-size: 14px; + font-size: 0.875rem; margin: .8em 0 .3em 0; color: var(--body-quiet-color); font-weight: bold; } h4 { - font-size: 12px; + font-size: 0.75rem; margin: 1em 0 .8em 0; padding-bottom: 3px; } h5 { - font-size: 10px; + font-size: 0.625rem; margin: 1.5em 0 .5em 0; color: var(--body-quiet-color); text-transform: uppercase; @@ -196,7 +162,7 @@ li ul { } li, dt, dd { - font-size: 13px; + font-size: 0.8125rem; line-height: 20px; } @@ -223,7 +189,7 @@ fieldset { } blockquote { - font-size: 11px; + font-size: 0.6875rem; color: #777; margin-left: 2px; padding-left: 10px; @@ -233,7 +199,7 @@ blockquote { code, pre { font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace; color: var(--body-quiet-color); - font-size: 12px; + font-size: 0.75rem; overflow-x: auto; } @@ -255,22 +221,21 @@ hr { border: none; margin: 0; padding: 0; - font-size: 1px; line-height: 1px; } /* TEXT STYLES & MODIFIERS */ .small { - font-size: 11px; + font-size: 0.6875rem; } .mini { - font-size: 10px; + font-size: 0.625rem; } .help, p.help, form p.help, div.help, form div.help, div.help li { - font-size: 11px; + font-size: 0.6875rem; color: var(--body-quiet-color); } @@ -300,7 +265,7 @@ p img, h1 img, h2 img, h3 img, h4 img, td img { } .hidden { - display: none; + display: none !important; } /* TABLES */ @@ -311,7 +276,7 @@ table { } td, th { - font-size: 13px; + font-size: 0.8125rem; line-height: 16px; border-bottom: 1px solid var(--hairline-color); vertical-align: top; @@ -327,7 +292,7 @@ thead th, tfoot td { color: var(--body-quiet-color); padding: 5px 10px; - font-size: 11px; + font-size: 0.6875rem; background: var(--body-bg); border: none; border-top: 1px solid var(--hairline-color); @@ -437,7 +402,7 @@ table thead th.sorted .sortoptions a.sortremove:after { top: -6px; left: 3px; font-weight: 200; - font-size: 18px; + font-size: 1.125rem; color: var(--body-quiet-color); } @@ -478,7 +443,7 @@ input, textarea, select, .form-row p, form .button { vertical-align: middle; font-family: "Roboto", "Lucida Grande", Verdana, Arial, sans-serif; font-weight: normal; - font-size: 13px; + font-size: 0.8125rem; } .form-row div.help { padding: 2px 3px; @@ -589,7 +554,7 @@ input[type=button][disabled].default { margin: 0; padding: 8px; font-weight: 400; - font-size: 13px; + font-size: 0.8125rem; text-align: left; background: var(--primary); color: var(--header-link-color); @@ -597,7 +562,7 @@ input[type=button][disabled].default { .module caption, .inline-group h2 { - font-size: 12px; + font-size: 0.75rem; letter-spacing: 0.5px; text-transform: uppercase; } @@ -616,12 +581,13 @@ ul.messagelist { ul.messagelist li { display: block; font-weight: 400; - font-size: 13px; + font-size: 0.8125rem; padding: 10px 10px 10px 65px; margin: 0 0 10px 0; background: var(--message-success-bg) url(../img/icon-yes.svg) 40px 12px no-repeat; background-size: 16px auto; color: var(--body-fg); + word-break: break-word; } ul.messagelist li.warning { @@ -635,7 +601,7 @@ ul.messagelist li.error { } .errornote { - font-size: 14px; + font-size: 0.875rem; font-weight: 700; display: block; padding: 10px 12px; @@ -656,7 +622,7 @@ ul.errorlist { } ul.errorlist li { - font-size: 13px; + font-size: 0.8125rem; display: block; margin-bottom: 4px; overflow-wrap: break-word; @@ -697,7 +663,7 @@ td ul.errorlist + input, td ul.errorlist + select, td ul.errorlist + textarea { } .description { - font-size: 12px; + font-size: 0.75rem; padding: 5px 0 0 12px; } @@ -753,7 +719,7 @@ a.deletelink:focus, a.deletelink:hover { /* OBJECT TOOLS */ .object-tools { - font-size: 10px; + font-size: 0.625rem; font-weight: bold; padding-left: 0; float: right; @@ -779,7 +745,7 @@ a.deletelink:focus, a.deletelink:hover { background: var(--object-tools-bg); color: var(--object-tools-fg); font-weight: 400; - font-size: 11px; + font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.5px; } @@ -808,14 +774,21 @@ a.deletelink:focus, a.deletelink:hover { /* OBJECT HISTORY */ -table#change-history { +#change-history table { width: 100%; } -table#change-history tbody th { +#change-history table tbody th { width: 16em; } +#change-history .paginator { + color: var(--body-quiet-color); + border-bottom: 1px solid var(--hairline-color); + background: var(--body-bg); + overflow: hidden; +} + /* PAGE STRUCTURE */ #container { @@ -905,7 +878,7 @@ table#change-history tbody th { overflow: hidden; } -#header a:link, #header a:visited { +#header a:link, #header a:visited, #logout-form button { color: var(--header-link-color); } @@ -921,17 +894,17 @@ table#change-history tbody th { padding: 0; margin: 0 20px 0 0; font-weight: 300; - font-size: 24px; - color: var(--accent); + font-size: 1.5rem; + color: var(--header-branding-color); } -#branding h1, #branding h1 a:link, #branding h1 a:visited { +#branding h1 a:link, #branding h1 a:visited { color: var(--accent); } #branding h2 { padding: 0 10px; - font-size: 14px; + font-size: 0.875rem; margin: -8px 0 8px 0; font-weight: normal; color: var(--header-color); @@ -941,25 +914,43 @@ table#change-history tbody th { text-decoration: none; } +#logout-form { + display: inline; +} + +#logout-form button { + background: none; + border: 0; + cursor: pointer; + font-family: "Roboto","Lucida Grande","DejaVu Sans","Bitstream Vera Sans",Verdana,Arial,sans-serif; +} + #user-tools { float: right; - padding: 0; margin: 0 0 0 20px; - font-weight: 300; - font-size: 11px; - letter-spacing: 0.5px; - text-transform: uppercase; text-align: right; } -#user-tools a { +#user-tools, #logout-form button{ + padding: 0; + font-weight: 300; + font-size: 0.6875rem; + letter-spacing: 0.5px; + text-transform: uppercase; +} + +#user-tools a, #logout-form button { border-bottom: 1px solid rgba(255, 255, 255, 0.25); } -#user-tools a:focus, #user-tools a:hover { +#user-tools a:focus, #user-tools a:hover, +#logout-form button:active, #logout-form button:hover { text-decoration: none; - border-bottom-color: var(--primary); - color: var(--primary); + border-bottom: 0; +} + +#logout-form button:active, #logout-form button:hover { + margin-bottom: 1px; } /* SIDEBAR */ @@ -979,7 +970,7 @@ table#change-history tbody th { } #content-related h4 { - font-size: 13px; + font-size: 0.8125rem; } #content-related p { @@ -1003,7 +994,7 @@ table#change-history tbody th { padding: 16px; margin-bottom: 16px; border-bottom: 1px solid var(--hairline-color); - font-size: 18px; + font-size: 1.125rem; color: var(--body-fg); } @@ -1050,3 +1041,49 @@ table#change-history tbody th { .popup #header { padding: 10px 20px; } + +/* PAGINATOR */ + +.paginator { + font-size: 0.8125rem; + padding-top: 10px; + padding-bottom: 10px; + line-height: 22px; + margin: 0; + border-top: 1px solid var(--hairline-color); + width: 100%; +} + +.paginator a:link, .paginator a:visited { + padding: 2px 6px; + background: var(--button-bg); + text-decoration: none; + color: var(--button-fg); +} + +.paginator a.showall { + border: none; + background: none; + color: var(--link-fg); +} + +.paginator a.showall:focus, .paginator a.showall:hover { + background: none; + color: var(--link-hover-color); +} + +.paginator .end { + margin-right: 6px; +} + +.paginator .this-page { + padding: 2px 6px; + font-weight: bold; + font-size: 0.8125rem; + vertical-align: top; +} + +.paginator a:focus, .paginator a:hover { + color: white; + background: var(--link-hover-color); +} diff --git a/static/admin/css/base.css.gz b/static/admin/css/base.css.gz index 44e0b9d6..77fe9a81 100644 Binary files a/static/admin/css/base.css.gz and b/static/admin/css/base.css.gz differ diff --git a/static/admin/css/changelists.cd4dd90ae1a1.css b/static/admin/css/changelists.ae46354f4e80.css similarity index 82% rename from static/admin/css/changelists.cd4dd90ae1a1.css rename to static/admin/css/changelists.ae46354f4e80.css index a4baf329..68ba5578 100644 --- a/static/admin/css/changelists.cd4dd90ae1a1.css +++ b/static/admin/css/changelists.ae46354f4e80.css @@ -84,7 +84,7 @@ #toolbar form input { border-radius: 4px; - font-size: 14px; + font-size: 0.875rem; padding: 5px; color: var(--body-fg); } @@ -95,7 +95,7 @@ padding: 2px 5px; margin: 0; vertical-align: top; - font-size: 13px; + font-size: 0.8125rem; max-width: 100%; } @@ -105,7 +105,7 @@ #toolbar form input[type="submit"] { border: 1px solid var(--border-color); - font-size: 13px; + font-size: 0.8125rem; padding: 4px 8px; margin: 0; vertical-align: middle; @@ -140,7 +140,7 @@ } #changelist-filter h2 { - font-size: 14px; + font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.5px; padding: 5px 15px; @@ -148,12 +148,35 @@ border-bottom: none; } -#changelist-filter h3 { +#changelist-filter h3, +#changelist-filter details summary { font-weight: 400; padding: 0 15px; margin-bottom: 10px; } +#changelist-filter details summary > * { + display: inline; +} + +#changelist-filter details > summary { + list-style-type: none; +} + +#changelist-filter details > summary::-webkit-details-marker { + display: none; +} + +#changelist-filter details > summary::before { + content: '→'; + font-weight: bold; + color: var(--link-hover-color); +} + +#changelist-filter details[open] > summary::before { + content: '↓'; +} + #changelist-filter ul { margin: 5px 0; padding: 0 15px 15px; @@ -173,8 +196,7 @@ #changelist-filter a { display: block; color: var(--body-quiet-color); - text-overflow: ellipsis; - overflow-x: hidden; + word-break: break-word; } #changelist-filter li.selected { @@ -194,7 +216,7 @@ } #changelist-filter #changelist-filter-clear a { - font-size: 13px; + font-size: 0.8125rem; padding-bottom: 10px; border-bottom: 1px solid var(--hairline-color); } @@ -225,52 +247,6 @@ color: var(--link-hover-color); } -/* PAGINATOR */ - -.paginator { - font-size: 13px; - padding-top: 10px; - padding-bottom: 10px; - line-height: 22px; - margin: 0; - border-top: 1px solid var(--hairline-color); - width: 100%; -} - -.paginator a:link, .paginator a:visited { - padding: 2px 6px; - background: var(--button-bg); - text-decoration: none; - color: var(--button-fg); -} - -.paginator a.showall { - border: none; - background: none; - color: var(--link-fg); -} - -.paginator a.showall:focus, .paginator a.showall:hover { - background: none; - color: var(--link-hover-color); -} - -.paginator .end { - margin-right: 6px; -} - -.paginator .this-page { - padding: 2px 6px; - font-weight: bold; - font-size: 13px; - vertical-align: top; -} - -.paginator a:focus, .paginator a:hover { - color: white; - background: var(--link-hover-color); -} - /* ACTIONS */ .filtered .actions { @@ -296,17 +272,11 @@ width: 100%; } -#changelist .actions.selected { /* XXX Probably unused? */ - background: var(--body-bg); - border-top: 1px solid var(--body-bg); - border-bottom: 1px solid #edecd6; -} - #changelist .actions span.all, #changelist .actions span.action-counter, #changelist .actions span.clear, #changelist .actions span.question { - font-size: 13px; + font-size: 0.8125rem; margin: 0 0.5em; } @@ -320,7 +290,7 @@ color: var(--body-fg); border: 1px solid var(--border-color); border-radius: 4px; - font-size: 14px; + font-size: 0.875rem; padding: 0 0 0 4px; margin: 0; margin-left: 10px; @@ -333,11 +303,11 @@ #changelist .actions label { display: inline-block; vertical-align: middle; - font-size: 13px; + font-size: 0.8125rem; } #changelist .actions .button { - font-size: 13px; + font-size: 0.8125rem; border: 1px solid var(--border-color); border-radius: 4px; background: var(--body-bg); diff --git a/static/admin/css/changelists.ae46354f4e80.css.gz b/static/admin/css/changelists.ae46354f4e80.css.gz new file mode 100644 index 00000000..ba2f6bad Binary files /dev/null and b/static/admin/css/changelists.ae46354f4e80.css.gz differ diff --git a/static/admin/css/changelists.cd4dd90ae1a1.css.gz b/static/admin/css/changelists.cd4dd90ae1a1.css.gz deleted file mode 100644 index 3c0c4eb3..00000000 Binary files a/static/admin/css/changelists.cd4dd90ae1a1.css.gz and /dev/null differ diff --git a/static/admin/css/changelists.css b/static/admin/css/changelists.css index a4baf329..68ba5578 100644 --- a/static/admin/css/changelists.css +++ b/static/admin/css/changelists.css @@ -84,7 +84,7 @@ #toolbar form input { border-radius: 4px; - font-size: 14px; + font-size: 0.875rem; padding: 5px; color: var(--body-fg); } @@ -95,7 +95,7 @@ padding: 2px 5px; margin: 0; vertical-align: top; - font-size: 13px; + font-size: 0.8125rem; max-width: 100%; } @@ -105,7 +105,7 @@ #toolbar form input[type="submit"] { border: 1px solid var(--border-color); - font-size: 13px; + font-size: 0.8125rem; padding: 4px 8px; margin: 0; vertical-align: middle; @@ -140,7 +140,7 @@ } #changelist-filter h2 { - font-size: 14px; + font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.5px; padding: 5px 15px; @@ -148,12 +148,35 @@ border-bottom: none; } -#changelist-filter h3 { +#changelist-filter h3, +#changelist-filter details summary { font-weight: 400; padding: 0 15px; margin-bottom: 10px; } +#changelist-filter details summary > * { + display: inline; +} + +#changelist-filter details > summary { + list-style-type: none; +} + +#changelist-filter details > summary::-webkit-details-marker { + display: none; +} + +#changelist-filter details > summary::before { + content: '→'; + font-weight: bold; + color: var(--link-hover-color); +} + +#changelist-filter details[open] > summary::before { + content: '↓'; +} + #changelist-filter ul { margin: 5px 0; padding: 0 15px 15px; @@ -173,8 +196,7 @@ #changelist-filter a { display: block; color: var(--body-quiet-color); - text-overflow: ellipsis; - overflow-x: hidden; + word-break: break-word; } #changelist-filter li.selected { @@ -194,7 +216,7 @@ } #changelist-filter #changelist-filter-clear a { - font-size: 13px; + font-size: 0.8125rem; padding-bottom: 10px; border-bottom: 1px solid var(--hairline-color); } @@ -225,52 +247,6 @@ color: var(--link-hover-color); } -/* PAGINATOR */ - -.paginator { - font-size: 13px; - padding-top: 10px; - padding-bottom: 10px; - line-height: 22px; - margin: 0; - border-top: 1px solid var(--hairline-color); - width: 100%; -} - -.paginator a:link, .paginator a:visited { - padding: 2px 6px; - background: var(--button-bg); - text-decoration: none; - color: var(--button-fg); -} - -.paginator a.showall { - border: none; - background: none; - color: var(--link-fg); -} - -.paginator a.showall:focus, .paginator a.showall:hover { - background: none; - color: var(--link-hover-color); -} - -.paginator .end { - margin-right: 6px; -} - -.paginator .this-page { - padding: 2px 6px; - font-weight: bold; - font-size: 13px; - vertical-align: top; -} - -.paginator a:focus, .paginator a:hover { - color: white; - background: var(--link-hover-color); -} - /* ACTIONS */ .filtered .actions { @@ -296,17 +272,11 @@ width: 100%; } -#changelist .actions.selected { /* XXX Probably unused? */ - background: var(--body-bg); - border-top: 1px solid var(--body-bg); - border-bottom: 1px solid #edecd6; -} - #changelist .actions span.all, #changelist .actions span.action-counter, #changelist .actions span.clear, #changelist .actions span.question { - font-size: 13px; + font-size: 0.8125rem; margin: 0 0.5em; } @@ -320,7 +290,7 @@ color: var(--body-fg); border: 1px solid var(--border-color); border-radius: 4px; - font-size: 14px; + font-size: 0.875rem; padding: 0 0 0 4px; margin: 0; margin-left: 10px; @@ -333,11 +303,11 @@ #changelist .actions label { display: inline-block; vertical-align: middle; - font-size: 13px; + font-size: 0.8125rem; } #changelist .actions .button { - font-size: 13px; + font-size: 0.8125rem; border: 1px solid var(--border-color); border-radius: 4px; background: var(--body-bg); diff --git a/static/admin/css/changelists.css.gz b/static/admin/css/changelists.css.gz index 3c0c4eb3..ba2f6bad 100644 Binary files a/static/admin/css/changelists.css.gz and b/static/admin/css/changelists.css.gz differ diff --git a/static/admin/css/dark_mode.4e3d1504ca81.css b/static/admin/css/dark_mode.4e3d1504ca81.css new file mode 100644 index 00000000..547717cc --- /dev/null +++ b/static/admin/css/dark_mode.4e3d1504ca81.css @@ -0,0 +1,33 @@ +@media (prefers-color-scheme: dark) { + :root { + --primary: #264b5d; + --primary-fg: #f7f7f7; + + --body-fg: #eeeeee; + --body-bg: #121212; + --body-quiet-color: #e0e0e0; + --body-loud-color: #ffffff; + + --breadcrumbs-link-fg: #e0e0e0; + --breadcrumbs-bg: var(--primary); + + --link-fg: #81d4fa; + --link-hover-color: #4ac1f7; + --link-selected-fg: #6f94c6; + + --hairline-color: #272727; + --border-color: #353535; + + --error-fg: #e35f5f; + --message-success-bg: #006b1b; + --message-warning-bg: #583305; + --message-error-bg: #570808; + + --darkened-bg: #212121; + --selected-bg: #1b1b1b; + --selected-row: #00363a; + + --close-button-bg: #333333; + --close-button-hover-bg: #666666; + } + } diff --git a/static/admin/css/dark_mode.4e3d1504ca81.css.gz b/static/admin/css/dark_mode.4e3d1504ca81.css.gz new file mode 100644 index 00000000..25f338e5 Binary files /dev/null and b/static/admin/css/dark_mode.4e3d1504ca81.css.gz differ diff --git a/static/admin/css/dark_mode.css b/static/admin/css/dark_mode.css new file mode 100644 index 00000000..547717cc --- /dev/null +++ b/static/admin/css/dark_mode.css @@ -0,0 +1,33 @@ +@media (prefers-color-scheme: dark) { + :root { + --primary: #264b5d; + --primary-fg: #f7f7f7; + + --body-fg: #eeeeee; + --body-bg: #121212; + --body-quiet-color: #e0e0e0; + --body-loud-color: #ffffff; + + --breadcrumbs-link-fg: #e0e0e0; + --breadcrumbs-bg: var(--primary); + + --link-fg: #81d4fa; + --link-hover-color: #4ac1f7; + --link-selected-fg: #6f94c6; + + --hairline-color: #272727; + --border-color: #353535; + + --error-fg: #e35f5f; + --message-success-bg: #006b1b; + --message-warning-bg: #583305; + --message-error-bg: #570808; + + --darkened-bg: #212121; + --selected-bg: #1b1b1b; + --selected-row: #00363a; + + --close-button-bg: #333333; + --close-button-hover-bg: #666666; + } + } diff --git a/static/admin/css/dark_mode.css.gz b/static/admin/css/dark_mode.css.gz new file mode 100644 index 00000000..25f338e5 Binary files /dev/null and b/static/admin/css/dark_mode.css.gz differ diff --git a/static/admin/css/forms.332ab41432e2.css.gz b/static/admin/css/forms.332ab41432e2.css.gz deleted file mode 100644 index 364917b7..00000000 Binary files a/static/admin/css/forms.332ab41432e2.css.gz and /dev/null differ diff --git a/static/admin/css/forms.332ab41432e2.css b/static/admin/css/forms.c192d1ec6902.css similarity index 96% rename from static/admin/css/forms.332ab41432e2.css rename to static/admin/css/forms.c192d1ec6902.css index 2e62f9ec..67b1747b 100644 --- a/static/admin/css/forms.332ab41432e2.css +++ b/static/admin/css/forms.c192d1ec6902.css @@ -1,11 +1,11 @@ -@import url("widgets.694d845b2cb1.css"); +@import url("widgets.00318bc424d3.css"); /* FORM ROWS */ .form-row { overflow: hidden; padding: 10px; - font-size: 13px; + font-size: 0.8125rem; border-bottom: 1px solid var(--hairline-color); } @@ -27,7 +27,7 @@ form .form-row p { label { font-weight: normal; color: var(--body-quiet-color); - font-size: 13px; + font-size: 0.8125rem; } .required label, label.required { @@ -248,7 +248,7 @@ fieldset.monospace textarea { /* SUBMIT ROW */ .submit-row { - padding: 12px 14px; + padding: 12px 14px 7px; margin: 0 0 20px; background: var(--darkened-bg); border: 1px solid var(--hairline-color); @@ -264,11 +264,11 @@ body.popup .submit-row { .submit-row input { height: 35px; line-height: 15px; - margin: 0 0 0 5px; + margin: 0 0 5px 5px; } .submit-row input.default { - margin: 0 0 0 8px; + margin: 0 0 5px 8px; text-transform: uppercase; } @@ -288,6 +288,7 @@ body.popup .submit-row { padding: 10px 15px; height: 15px; line-height: 15px; + margin-bottom: 5px; color: var(--button-fg); } @@ -353,10 +354,6 @@ body.popup .submit-row { width: 2.2em; } -.vTextField, .vUUIDField { - width: 20em; -} - .vIntegerField { width: 5em; } @@ -369,6 +366,10 @@ body.popup .submit-row { width: 5em; } +.vTextField, .vUUIDField { + width: 20em; +} + /* INLINES */ .inline-group { @@ -392,7 +393,7 @@ body.popup .submit-row { margin: 0; color: var(--body-quiet-color); padding: 5px; - font-size: 13px; + font-size: 0.8125rem; background: var(--darkened-bg); border-top: 1px solid var(--hairline-color); border-bottom: 1px solid var(--hairline-color); @@ -404,7 +405,7 @@ body.popup .submit-row { .inline-related h3 span.delete label { margin-left: 2px; - font-size: 11px; + font-size: 0.6875rem; } .inline-related fieldset { @@ -417,7 +418,7 @@ body.popup .submit-row { .inline-related fieldset.module h3 { margin: 0; padding: 2px 5px 3px 5px; - font-size: 11px; + font-size: 0.6875rem; text-align: left; font-weight: bold; background: #bcd; @@ -458,7 +459,7 @@ body.popup .submit-row { height: 1.1em; padding: 2px 9px; overflow: hidden; - font-size: 9px; + font-size: 0.5625rem; font-weight: bold; color: var(--body-quiet-color); _width: 700px; @@ -493,7 +494,7 @@ body.popup .submit-row { .inline-group .tabular tr.add-row td a { background: url("../img/icon-addlink.d519b3bab011.svg") 0 1px no-repeat; padding-left: 16px; - font-size: 12px; + font-size: 0.75rem; } .empty-form { diff --git a/static/admin/css/forms.c192d1ec6902.css.gz b/static/admin/css/forms.c192d1ec6902.css.gz new file mode 100644 index 00000000..d97ef72f Binary files /dev/null and b/static/admin/css/forms.c192d1ec6902.css.gz differ diff --git a/static/admin/css/forms.css b/static/admin/css/forms.css index bb44be7f..e1873b33 100644 --- a/static/admin/css/forms.css +++ b/static/admin/css/forms.css @@ -5,7 +5,7 @@ .form-row { overflow: hidden; padding: 10px; - font-size: 13px; + font-size: 0.8125rem; border-bottom: 1px solid var(--hairline-color); } @@ -27,7 +27,7 @@ form .form-row p { label { font-weight: normal; color: var(--body-quiet-color); - font-size: 13px; + font-size: 0.8125rem; } .required label, label.required { @@ -248,7 +248,7 @@ fieldset.monospace textarea { /* SUBMIT ROW */ .submit-row { - padding: 12px 14px; + padding: 12px 14px 7px; margin: 0 0 20px; background: var(--darkened-bg); border: 1px solid var(--hairline-color); @@ -264,11 +264,11 @@ body.popup .submit-row { .submit-row input { height: 35px; line-height: 15px; - margin: 0 0 0 5px; + margin: 0 0 5px 5px; } .submit-row input.default { - margin: 0 0 0 8px; + margin: 0 0 5px 8px; text-transform: uppercase; } @@ -288,6 +288,7 @@ body.popup .submit-row { padding: 10px 15px; height: 15px; line-height: 15px; + margin-bottom: 5px; color: var(--button-fg); } @@ -353,10 +354,6 @@ body.popup .submit-row { width: 2.2em; } -.vTextField, .vUUIDField { - width: 20em; -} - .vIntegerField { width: 5em; } @@ -369,6 +366,10 @@ body.popup .submit-row { width: 5em; } +.vTextField, .vUUIDField { + width: 20em; +} + /* INLINES */ .inline-group { @@ -392,7 +393,7 @@ body.popup .submit-row { margin: 0; color: var(--body-quiet-color); padding: 5px; - font-size: 13px; + font-size: 0.8125rem; background: var(--darkened-bg); border-top: 1px solid var(--hairline-color); border-bottom: 1px solid var(--hairline-color); @@ -404,7 +405,7 @@ body.popup .submit-row { .inline-related h3 span.delete label { margin-left: 2px; - font-size: 11px; + font-size: 0.6875rem; } .inline-related fieldset { @@ -417,7 +418,7 @@ body.popup .submit-row { .inline-related fieldset.module h3 { margin: 0; padding: 2px 5px 3px 5px; - font-size: 11px; + font-size: 0.6875rem; text-align: left; font-weight: bold; background: #bcd; @@ -458,7 +459,7 @@ body.popup .submit-row { height: 1.1em; padding: 2px 9px; overflow: hidden; - font-size: 9px; + font-size: 0.5625rem; font-weight: bold; color: var(--body-quiet-color); _width: 700px; @@ -493,7 +494,7 @@ body.popup .submit-row { .inline-group .tabular tr.add-row td a { background: url(../img/icon-addlink.svg) 0 1px no-repeat; padding-left: 16px; - font-size: 12px; + font-size: 0.75rem; } .empty-form { diff --git a/static/admin/css/forms.css.gz b/static/admin/css/forms.css.gz index 1ba69a9c..ce5b06de 100644 Binary files a/static/admin/css/forms.css.gz and b/static/admin/css/forms.css.gz differ diff --git a/static/admin/css/login.8b76a9f7cbf6.css b/static/admin/css/login.586129c60a93.css similarity index 97% rename from static/admin/css/login.8b76a9f7cbf6.css rename to static/admin/css/login.586129c60a93.css index bf4ba8d3..389772f5 100644 --- a/static/admin/css/login.8b76a9f7cbf6.css +++ b/static/admin/css/login.586129c60a93.css @@ -12,7 +12,7 @@ } .login #header h1 { - font-size: 18px; + font-size: 1.125rem; margin: 0; } diff --git a/static/admin/css/login.586129c60a93.css.gz b/static/admin/css/login.586129c60a93.css.gz new file mode 100644 index 00000000..ca9d5330 Binary files /dev/null and b/static/admin/css/login.586129c60a93.css.gz differ diff --git a/static/admin/css/login.8b76a9f7cbf6.css.gz b/static/admin/css/login.8b76a9f7cbf6.css.gz deleted file mode 100644 index 42f98bd9..00000000 Binary files a/static/admin/css/login.8b76a9f7cbf6.css.gz and /dev/null differ diff --git a/static/admin/css/login.css b/static/admin/css/login.css index bf4ba8d3..389772f5 100644 --- a/static/admin/css/login.css +++ b/static/admin/css/login.css @@ -12,7 +12,7 @@ } .login #header h1 { - font-size: 18px; + font-size: 1.125rem; margin: 0; } diff --git a/static/admin/css/login.css.gz b/static/admin/css/login.css.gz index 42f98bd9..ca9d5330 100644 Binary files a/static/admin/css/login.css.gz and b/static/admin/css/login.css.gz differ diff --git a/static/admin/css/nav_sidebar.e32d345464bd.css b/static/admin/css/nav_sidebar.30423191f399.css similarity index 99% rename from static/admin/css/nav_sidebar.e32d345464bd.css rename to static/admin/css/nav_sidebar.30423191f399.css index 0c590ff2..5fd2ff0b 100644 --- a/static/admin/css/nav_sidebar.e32d345464bd.css +++ b/static/admin/css/nav_sidebar.30423191f399.css @@ -16,7 +16,7 @@ border-right: 1px solid var(--hairline-color); background-color: var(--body-bg); cursor: pointer; - font-size: 20px; + font-size: 1.25rem; color: var(--link-fg); padding: 0; } diff --git a/static/admin/css/nav_sidebar.30423191f399.css.gz b/static/admin/css/nav_sidebar.30423191f399.css.gz new file mode 100644 index 00000000..4f404a61 Binary files /dev/null and b/static/admin/css/nav_sidebar.30423191f399.css.gz differ diff --git a/static/admin/css/nav_sidebar.css b/static/admin/css/nav_sidebar.css index 0c590ff2..5fd2ff0b 100644 --- a/static/admin/css/nav_sidebar.css +++ b/static/admin/css/nav_sidebar.css @@ -16,7 +16,7 @@ border-right: 1px solid var(--hairline-color); background-color: var(--body-bg); cursor: pointer; - font-size: 20px; + font-size: 1.25rem; color: var(--link-fg); padding: 0; } diff --git a/static/admin/css/nav_sidebar.css.gz b/static/admin/css/nav_sidebar.css.gz index 237bb1f6..4f404a61 100644 Binary files a/static/admin/css/nav_sidebar.css.gz and b/static/admin/css/nav_sidebar.css.gz differ diff --git a/static/admin/css/nav_sidebar.e32d345464bd.css.gz b/static/admin/css/nav_sidebar.e32d345464bd.css.gz deleted file mode 100644 index 237bb1f6..00000000 Binary files a/static/admin/css/nav_sidebar.e32d345464bd.css.gz and /dev/null differ diff --git a/static/admin/css/responsive.b9e1565b3609.css b/static/admin/css/responsive.02281633b5f1.css similarity index 95% rename from static/admin/css/responsive.b9e1565b3609.css rename to static/admin/css/responsive.02281633b5f1.css index 5779c5a9..9a4615d0 100644 --- a/static/admin/css/responsive.b9e1565b3609.css +++ b/static/admin/css/responsive.02281633b5f1.css @@ -14,11 +14,11 @@ input[type="submit"], button { td, th { padding: 10px; - font-size: 14px; + font-size: 0.875rem; } .small { - font-size: 12px; + font-size: 0.75rem; } /* Layout */ @@ -28,7 +28,7 @@ input[type="submit"], button { } #content { - padding: 20px 30px 30px; + padding: 15px 20px 20px; } div.breadcrumbs { @@ -45,7 +45,6 @@ input[type="submit"], button { #branding h1 { margin: 0 0 8px; - font-size: 20px; line-height: 1.2; } @@ -88,7 +87,7 @@ input[type="submit"], button { } td .changelink, td .addlink { - font-size: 13px; + font-size: 0.8125rem; } /* Changelist */ @@ -131,10 +130,6 @@ input[type="submit"], button { padding: 15px 0; } - #changelist .actions.selected { - border: none; - } - #changelist .actions label { display: flex; } @@ -152,7 +147,7 @@ input[type="submit"], button { #changelist .actions span.clear, #changelist .actions span.question, #changelist .actions span.action-counter { - font-size: 11px; + font-size: 0.6875rem; margin: 0 10px 0 0; } @@ -176,7 +171,7 @@ input[type="submit"], button { /* Forms */ label { - font-size: 14px; + font-size: 0.875rem; } .form-row input[type=text], @@ -192,7 +187,7 @@ input[type="submit"], button { margin: 0; padding: 6px 8px; min-height: 36px; - font-size: 14px; + font-size: 0.875rem; } .form-row select { @@ -236,6 +231,22 @@ input[type="submit"], button { margin-left: 2px; } + .submit-row { + padding: 8px 8px 3px 8px; + } + + .submit-row a.deletelink { + padding: 10px 7px; + } + + .submit-row input.default { + margin: 0 0 5px 5px; + } + + .button, input[type=submit], input[type=button], .submit-row input, a.button { + padding: 7px; + } + /* Related widget */ .related-widget-wrapper { @@ -393,12 +404,12 @@ input[type="submit"], button { } .datetime span { - font-size: 13px; + font-size: 0.8125rem; } .datetime .timezonewarning { display: block; - font-size: 11px; + font-size: 0.6875rem; color: var(--body-quiet-color); } @@ -496,7 +507,7 @@ input[type="submit"], button { #content-related .module h2 { padding: 10px 15px; - font-size: 16px; + font-size: 1rem; } /* Changelist */ @@ -622,7 +633,7 @@ input[type="submit"], button { .aligned p.file-upload { margin-left: 0; - font-size: 13px; + font-size: 0.8125rem; } span.clearable-file-input { @@ -630,7 +641,7 @@ input[type="submit"], button { } span.clearable-file-input label { - font-size: 13px; + font-size: 0.8125rem; padding-bottom: 0; } @@ -812,7 +823,7 @@ input[type="submit"], button { /* Submit row */ .submit-row { - padding: 10px 10px 0; + padding: 10px 10px 5px; margin: 0 0 15px; display: flex; flex-direction: column; @@ -907,7 +918,7 @@ input[type="submit"], button { .errornote { margin: 0 0 20px; padding: 8px 12px; - font-size: 13px; + font-size: 0.8125rem; } /* Calendar and clock */ @@ -954,7 +965,7 @@ input[type="submit"], button { .calendar-shortcuts { padding: 10px 0; - font-size: 12px; + font-size: 0.75rem; line-height: 12px; } @@ -987,7 +998,7 @@ input[type="submit"], button { /* History */ table#change-history tbody th, table#change-history tbody td { - font-size: 13px; + font-size: 0.8125rem; word-break: break-word; } @@ -998,7 +1009,7 @@ input[type="submit"], button { /* Docs */ table.model tbody th, table.model tbody td { - font-size: 13px; + font-size: 0.8125rem; word-break: break-word; } } diff --git a/static/admin/css/responsive.02281633b5f1.css.gz b/static/admin/css/responsive.02281633b5f1.css.gz new file mode 100644 index 00000000..d51e1923 Binary files /dev/null and b/static/admin/css/responsive.02281633b5f1.css.gz differ diff --git a/static/admin/css/responsive.b9e1565b3609.css.gz b/static/admin/css/responsive.b9e1565b3609.css.gz deleted file mode 100644 index e9905771..00000000 Binary files a/static/admin/css/responsive.b9e1565b3609.css.gz and /dev/null differ diff --git a/static/admin/css/responsive.css b/static/admin/css/responsive.css index 5779c5a9..9a4615d0 100644 --- a/static/admin/css/responsive.css +++ b/static/admin/css/responsive.css @@ -14,11 +14,11 @@ input[type="submit"], button { td, th { padding: 10px; - font-size: 14px; + font-size: 0.875rem; } .small { - font-size: 12px; + font-size: 0.75rem; } /* Layout */ @@ -28,7 +28,7 @@ input[type="submit"], button { } #content { - padding: 20px 30px 30px; + padding: 15px 20px 20px; } div.breadcrumbs { @@ -45,7 +45,6 @@ input[type="submit"], button { #branding h1 { margin: 0 0 8px; - font-size: 20px; line-height: 1.2; } @@ -88,7 +87,7 @@ input[type="submit"], button { } td .changelink, td .addlink { - font-size: 13px; + font-size: 0.8125rem; } /* Changelist */ @@ -131,10 +130,6 @@ input[type="submit"], button { padding: 15px 0; } - #changelist .actions.selected { - border: none; - } - #changelist .actions label { display: flex; } @@ -152,7 +147,7 @@ input[type="submit"], button { #changelist .actions span.clear, #changelist .actions span.question, #changelist .actions span.action-counter { - font-size: 11px; + font-size: 0.6875rem; margin: 0 10px 0 0; } @@ -176,7 +171,7 @@ input[type="submit"], button { /* Forms */ label { - font-size: 14px; + font-size: 0.875rem; } .form-row input[type=text], @@ -192,7 +187,7 @@ input[type="submit"], button { margin: 0; padding: 6px 8px; min-height: 36px; - font-size: 14px; + font-size: 0.875rem; } .form-row select { @@ -236,6 +231,22 @@ input[type="submit"], button { margin-left: 2px; } + .submit-row { + padding: 8px 8px 3px 8px; + } + + .submit-row a.deletelink { + padding: 10px 7px; + } + + .submit-row input.default { + margin: 0 0 5px 5px; + } + + .button, input[type=submit], input[type=button], .submit-row input, a.button { + padding: 7px; + } + /* Related widget */ .related-widget-wrapper { @@ -393,12 +404,12 @@ input[type="submit"], button { } .datetime span { - font-size: 13px; + font-size: 0.8125rem; } .datetime .timezonewarning { display: block; - font-size: 11px; + font-size: 0.6875rem; color: var(--body-quiet-color); } @@ -496,7 +507,7 @@ input[type="submit"], button { #content-related .module h2 { padding: 10px 15px; - font-size: 16px; + font-size: 1rem; } /* Changelist */ @@ -622,7 +633,7 @@ input[type="submit"], button { .aligned p.file-upload { margin-left: 0; - font-size: 13px; + font-size: 0.8125rem; } span.clearable-file-input { @@ -630,7 +641,7 @@ input[type="submit"], button { } span.clearable-file-input label { - font-size: 13px; + font-size: 0.8125rem; padding-bottom: 0; } @@ -812,7 +823,7 @@ input[type="submit"], button { /* Submit row */ .submit-row { - padding: 10px 10px 0; + padding: 10px 10px 5px; margin: 0 0 15px; display: flex; flex-direction: column; @@ -907,7 +918,7 @@ input[type="submit"], button { .errornote { margin: 0 0 20px; padding: 8px 12px; - font-size: 13px; + font-size: 0.8125rem; } /* Calendar and clock */ @@ -954,7 +965,7 @@ input[type="submit"], button { .calendar-shortcuts { padding: 10px 0; - font-size: 12px; + font-size: 0.75rem; line-height: 12px; } @@ -987,7 +998,7 @@ input[type="submit"], button { /* History */ table#change-history tbody th, table#change-history tbody td { - font-size: 13px; + font-size: 0.8125rem; word-break: break-word; } @@ -998,7 +1009,7 @@ input[type="submit"], button { /* Docs */ table.model tbody th, table.model tbody td { - font-size: 13px; + font-size: 0.8125rem; word-break: break-word; } } diff --git a/static/admin/css/responsive.css.gz b/static/admin/css/responsive.css.gz index e9905771..d51e1923 100644 Binary files a/static/admin/css/responsive.css.gz and b/static/admin/css/responsive.css.gz differ diff --git a/static/admin/css/rtl.4bc23eb90919.css.gz b/static/admin/css/rtl.4bc23eb90919.css.gz deleted file mode 100644 index b73ee4ca..00000000 Binary files a/static/admin/css/rtl.4bc23eb90919.css.gz and /dev/null differ diff --git a/static/admin/css/rtl.4bc23eb90919.css b/static/admin/css/rtl.8473f45bd49b.css similarity index 89% rename from static/admin/css/rtl.4bc23eb90919.css rename to static/admin/css/rtl.8473f45bd49b.css index 0447f893..3a4b37fb 100644 --- a/static/admin/css/rtl.4bc23eb90919.css +++ b/static/admin/css/rtl.8473f45bd49b.css @@ -175,12 +175,24 @@ fieldset .fieldBox { top: 0; left: auto; right: 10px; + background: url("../img/calendar-icons.39b290681a8b.svg") 0 -30px no-repeat; +} + +.calendarbox .calendarnav-previous:focus, +.calendarbox .calendarnav-previous:hover { + background-position: 0 -45px; } .calendarnav-next { top: 0; right: auto; left: 10px; + background: url("../img/calendar-icons.39b290681a8b.svg") 0 0 no-repeat; +} + +.calendarbox .calendarnav-next:focus, +.calendarbox .calendarnav-next:hover { + background-position: 0 -15px; } .calendar caption, .calendarbox h2 { diff --git a/static/admin/css/rtl.8473f45bd49b.css.gz b/static/admin/css/rtl.8473f45bd49b.css.gz new file mode 100644 index 00000000..9f2932f2 Binary files /dev/null and b/static/admin/css/rtl.8473f45bd49b.css.gz differ diff --git a/static/admin/css/rtl.css b/static/admin/css/rtl.css index 0447f893..e0fadcef 100644 --- a/static/admin/css/rtl.css +++ b/static/admin/css/rtl.css @@ -175,12 +175,24 @@ fieldset .fieldBox { top: 0; left: auto; right: 10px; + background: url(../img/calendar-icons.svg) 0 -30px no-repeat; +} + +.calendarbox .calendarnav-previous:focus, +.calendarbox .calendarnav-previous:hover { + background-position: 0 -45px; } .calendarnav-next { top: 0; right: auto; left: 10px; + background: url(../img/calendar-icons.svg) 0 0 no-repeat; +} + +.calendarbox .calendarnav-next:focus, +.calendarbox .calendarnav-next:hover { + background-position: 0 -15px; } .calendar caption, .calendarbox h2 { diff --git a/static/admin/css/rtl.css.gz b/static/admin/css/rtl.css.gz index b73ee4ca..282f7241 100644 Binary files a/static/admin/css/rtl.css.gz and b/static/admin/css/rtl.css.gz differ diff --git a/static/admin/css/widgets.694d845b2cb1.css b/static/admin/css/widgets.00318bc424d3.css similarity index 95% rename from static/admin/css/widgets.694d845b2cb1.css rename to static/admin/css/widgets.00318bc424d3.css index d0c850a7..52806d7e 100644 --- a/static/admin/css/widgets.694d845b2cb1.css +++ b/static/admin/css/widgets.00318bc424d3.css @@ -3,18 +3,21 @@ .selector { width: 800px; float: left; + display: flex; } .selector select { width: 380px; height: 17.2em; + flex: 1 0 auto; } .selector-available, .selector-chosen { - float: left; width: 380px; text-align: center; margin-bottom: 5px; + display: flex; + flex-direction: column; } .selector-chosen select { @@ -41,7 +44,7 @@ border-width: 0 1px; padding: 8px; color: var(--body-quiet-color); - font-size: 10px; + font-size: 0.625rem; margin: 0; text-align: left; } @@ -63,12 +66,13 @@ } .selector ul.selector-chooser { - float: left; + align-self: center; width: 22px; background-color: var(--selected-bg); border-radius: 10px; - margin: 10em 5px 0 5px; + margin: 0 5px; padding: 0; + transform: translateY(-17px); } .selector-chooser li { @@ -168,6 +172,7 @@ a.active.selector-clearall:focus, a.active.selector-clearall:hover { .stacked { float: left; width: 490px; + display: block; } .stacked select { @@ -193,6 +198,7 @@ a.active.selector-clearall:focus, a.active.selector-clearall:hover { margin: 0 0 10px 40%; background-color: #eee; border-radius: 10px; + transform: none; } .stacked .selector-chooser li { @@ -267,7 +273,7 @@ p.datetime { .datetime span { white-space: nowrap; font-weight: normal; - font-size: 11px; + font-size: 0.6875rem; color: var(--body-quiet-color); } @@ -277,7 +283,7 @@ p.datetime { } table p.datetime { - font-size: 11px; + font-size: 0.6875rem; margin-left: 0; padding-left: 0; } @@ -311,7 +317,7 @@ table p.datetime { } .timezonewarning { - font-size: 11px; + font-size: 0.6875rem; color: var(--body-quiet-color); } @@ -322,7 +328,7 @@ p.url { margin: 0; padding: 0; color: var(--body-quiet-color); - font-size: 11px; + font-size: 0.6875rem; font-weight: bold; } @@ -337,7 +343,7 @@ p.file-upload { margin: 0; padding: 0; color: var(--body-quiet-color); - font-size: 11px; + font-size: 0.6875rem; font-weight: bold; } @@ -355,7 +361,7 @@ p.file-upload { span.clearable-file-input label { color: var(--body-fg); - font-size: 11px; + font-size: 0.6875rem; display: inline; float: none; } @@ -364,7 +370,7 @@ span.clearable-file-input label { .calendarbox, .clockbox { margin: 5px auto; - font-size: 12px; + font-size: 0.75rem; width: 19em; text-align: center; background: var(--body-bg); @@ -398,7 +404,7 @@ span.clearable-file-input label { text-align: center; border-top: none; font-weight: 700; - font-size: 12px; + font-size: 0.75rem; color: #333; background: var(--accent); } @@ -408,14 +414,14 @@ span.clearable-file-input label { background: var(--darkened-bg); border-bottom: 1px solid var(--border-color); font-weight: 400; - font-size: 12px; + font-size: 0.75rem; text-align: center; color: var(--body-quiet-color); } .calendar td { font-weight: 400; - font-size: 12px; + font-size: 0.75rem; text-align: center; padding: 0; border-top: 1px solid var(--hairline-color); @@ -455,7 +461,7 @@ span.clearable-file-input label { } .calendarnav { - font-size: 10px; + font-size: 0.625rem; text-align: center; color: #ccc; margin: 0; @@ -470,7 +476,7 @@ span.clearable-file-input label { .calendar-shortcuts { background: var(--body-bg); color: var(--body-quiet-color); - font-size: 11px; + font-size: 0.6875rem; line-height: 11px; border-top: 1px solid var(--hairline-color); padding: 8px 0; @@ -509,7 +515,7 @@ span.clearable-file-input label { .calendar-cancel { margin: 0; padding: 4px 0; - font-size: 12px; + font-size: 0.75rem; background: #eee; border-top: 1px solid var(--border-color); color: var(--body-fg); diff --git a/static/admin/css/widgets.00318bc424d3.css.gz b/static/admin/css/widgets.00318bc424d3.css.gz new file mode 100644 index 00000000..b9a389be Binary files /dev/null and b/static/admin/css/widgets.00318bc424d3.css.gz differ diff --git a/static/admin/css/widgets.694d845b2cb1.css.gz b/static/admin/css/widgets.694d845b2cb1.css.gz deleted file mode 100644 index 3a54b020..00000000 Binary files a/static/admin/css/widgets.694d845b2cb1.css.gz and /dev/null differ diff --git a/static/admin/css/widgets.css b/static/admin/css/widgets.css index c7d64566..cd1d6b41 100644 --- a/static/admin/css/widgets.css +++ b/static/admin/css/widgets.css @@ -3,18 +3,21 @@ .selector { width: 800px; float: left; + display: flex; } .selector select { width: 380px; height: 17.2em; + flex: 1 0 auto; } .selector-available, .selector-chosen { - float: left; width: 380px; text-align: center; margin-bottom: 5px; + display: flex; + flex-direction: column; } .selector-chosen select { @@ -41,7 +44,7 @@ border-width: 0 1px; padding: 8px; color: var(--body-quiet-color); - font-size: 10px; + font-size: 0.625rem; margin: 0; text-align: left; } @@ -63,12 +66,13 @@ } .selector ul.selector-chooser { - float: left; + align-self: center; width: 22px; background-color: var(--selected-bg); border-radius: 10px; - margin: 10em 5px 0 5px; + margin: 0 5px; padding: 0; + transform: translateY(-17px); } .selector-chooser li { @@ -168,6 +172,7 @@ a.active.selector-clearall:focus, a.active.selector-clearall:hover { .stacked { float: left; width: 490px; + display: block; } .stacked select { @@ -193,6 +198,7 @@ a.active.selector-clearall:focus, a.active.selector-clearall:hover { margin: 0 0 10px 40%; background-color: #eee; border-radius: 10px; + transform: none; } .stacked .selector-chooser li { @@ -267,7 +273,7 @@ p.datetime { .datetime span { white-space: nowrap; font-weight: normal; - font-size: 11px; + font-size: 0.6875rem; color: var(--body-quiet-color); } @@ -277,7 +283,7 @@ p.datetime { } table p.datetime { - font-size: 11px; + font-size: 0.6875rem; margin-left: 0; padding-left: 0; } @@ -311,7 +317,7 @@ table p.datetime { } .timezonewarning { - font-size: 11px; + font-size: 0.6875rem; color: var(--body-quiet-color); } @@ -322,7 +328,7 @@ p.url { margin: 0; padding: 0; color: var(--body-quiet-color); - font-size: 11px; + font-size: 0.6875rem; font-weight: bold; } @@ -337,7 +343,7 @@ p.file-upload { margin: 0; padding: 0; color: var(--body-quiet-color); - font-size: 11px; + font-size: 0.6875rem; font-weight: bold; } @@ -355,7 +361,7 @@ p.file-upload { span.clearable-file-input label { color: var(--body-fg); - font-size: 11px; + font-size: 0.6875rem; display: inline; float: none; } @@ -364,7 +370,7 @@ span.clearable-file-input label { .calendarbox, .clockbox { margin: 5px auto; - font-size: 12px; + font-size: 0.75rem; width: 19em; text-align: center; background: var(--body-bg); @@ -398,7 +404,7 @@ span.clearable-file-input label { text-align: center; border-top: none; font-weight: 700; - font-size: 12px; + font-size: 0.75rem; color: #333; background: var(--accent); } @@ -408,14 +414,14 @@ span.clearable-file-input label { background: var(--darkened-bg); border-bottom: 1px solid var(--border-color); font-weight: 400; - font-size: 12px; + font-size: 0.75rem; text-align: center; color: var(--body-quiet-color); } .calendar td { font-weight: 400; - font-size: 12px; + font-size: 0.75rem; text-align: center; padding: 0; border-top: 1px solid var(--hairline-color); @@ -455,7 +461,7 @@ span.clearable-file-input label { } .calendarnav { - font-size: 10px; + font-size: 0.625rem; text-align: center; color: #ccc; margin: 0; @@ -470,7 +476,7 @@ span.clearable-file-input label { .calendar-shortcuts { background: var(--body-bg); color: var(--body-quiet-color); - font-size: 11px; + font-size: 0.6875rem; line-height: 11px; border-top: 1px solid var(--hairline-color); padding: 8px 0; @@ -509,7 +515,7 @@ span.clearable-file-input label { .calendar-cancel { margin: 0; padding: 4px 0; - font-size: 12px; + font-size: 0.75rem; background: #eee; border-top: 1px solid var(--border-color); color: var(--body-fg); diff --git a/static/admin/css/widgets.css.gz b/static/admin/css/widgets.css.gz index 341016ea..6d9e0f0a 100644 Binary files a/static/admin/css/widgets.css.gz and b/static/admin/css/widgets.css.gz differ diff --git a/static/admin/fonts/LICENSE.d273d63619c9.txt b/static/admin/fonts/LICENSE.d273d63619c9.txt index 75b52484..d6456956 100644 --- a/static/admin/fonts/LICENSE.d273d63619c9.txt +++ b/static/admin/fonts/LICENSE.d273d63619c9.txt @@ -1,202 +1,202 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/static/admin/fonts/LICENSE.txt b/static/admin/fonts/LICENSE.txt index 75b52484..d6456956 100644 --- a/static/admin/fonts/LICENSE.txt +++ b/static/admin/fonts/LICENSE.txt @@ -1,202 +1,202 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/static/admin/js/SelectFilter2.d250dcb52a9a.js b/static/admin/js/SelectFilter2.3f53e33c88d6.js similarity index 91% rename from static/admin/js/SelectFilter2.d250dcb52a9a.js rename to static/admin/js/SelectFilter2.3f53e33c88d6.js index 6c709a08..194c2db2 100644 --- a/static/admin/js/SelectFilter2.d250dcb52a9a.js +++ b/static/admin/js/SelectFilter2.3f53e33c88d6.js @@ -153,24 +153,6 @@ Requires core.js and SelectBox.js. // Move selected from_box options to to_box SelectBox.move(field_id + '_from', field_id + '_to'); - if (!is_stacked) { - // In horizontal mode, give the same height to the two boxes. - const j_from_box = document.getElementById(field_id + '_from'); - const j_to_box = document.getElementById(field_id + '_to'); - let height = filter_p.offsetHeight + j_from_box.offsetHeight; - - const j_to_box_style = window.getComputedStyle(j_to_box); - if (j_to_box_style.getPropertyValue('box-sizing') === 'border-box') { - // Add the padding and border to the final height. - height += parseInt(j_to_box_style.getPropertyValue('padding-top'), 10) - + parseInt(j_to_box_style.getPropertyValue('padding-bottom'), 10) - + parseInt(j_to_box_style.getPropertyValue('border-top-width'), 10) - + parseInt(j_to_box_style.getPropertyValue('border-bottom-width'), 10); - } - - j_to_box.style.height = height + 'px'; - } - // Initial icon refresh SelectFilter.refresh_icons(field_id); }, diff --git a/static/admin/js/SelectFilter2.3f53e33c88d6.js.gz b/static/admin/js/SelectFilter2.3f53e33c88d6.js.gz new file mode 100644 index 00000000..522f6676 Binary files /dev/null and b/static/admin/js/SelectFilter2.3f53e33c88d6.js.gz differ diff --git a/static/admin/js/SelectFilter2.d250dcb52a9a.js.gz b/static/admin/js/SelectFilter2.d250dcb52a9a.js.gz deleted file mode 100644 index 858a1c6d..00000000 Binary files a/static/admin/js/SelectFilter2.d250dcb52a9a.js.gz and /dev/null differ diff --git a/static/admin/js/SelectFilter2.js b/static/admin/js/SelectFilter2.js index 6c709a08..194c2db2 100644 --- a/static/admin/js/SelectFilter2.js +++ b/static/admin/js/SelectFilter2.js @@ -153,24 +153,6 @@ Requires core.js and SelectBox.js. // Move selected from_box options to to_box SelectBox.move(field_id + '_from', field_id + '_to'); - if (!is_stacked) { - // In horizontal mode, give the same height to the two boxes. - const j_from_box = document.getElementById(field_id + '_from'); - const j_to_box = document.getElementById(field_id + '_to'); - let height = filter_p.offsetHeight + j_from_box.offsetHeight; - - const j_to_box_style = window.getComputedStyle(j_to_box); - if (j_to_box_style.getPropertyValue('box-sizing') === 'border-box') { - // Add the padding and border to the final height. - height += parseInt(j_to_box_style.getPropertyValue('padding-top'), 10) - + parseInt(j_to_box_style.getPropertyValue('padding-bottom'), 10) - + parseInt(j_to_box_style.getPropertyValue('border-top-width'), 10) - + parseInt(j_to_box_style.getPropertyValue('border-bottom-width'), 10); - } - - j_to_box.style.height = height + 'px'; - } - // Initial icon refresh SelectFilter.refresh_icons(field_id); }, diff --git a/static/admin/js/SelectFilter2.js.gz b/static/admin/js/SelectFilter2.js.gz index 858a1c6d..522f6676 100644 Binary files a/static/admin/js/SelectFilter2.js.gz and b/static/admin/js/SelectFilter2.js.gz differ diff --git a/static/admin/js/admin/DateTimeShortcuts.5548f99471bf.js b/static/admin/js/admin/DateTimeShortcuts.300591891b2b.js similarity index 98% rename from static/admin/js/admin/DateTimeShortcuts.5548f99471bf.js rename to static/admin/js/admin/DateTimeShortcuts.300591891b2b.js index 9bad0f54..176b0e3e 100644 --- a/static/admin/js/admin/DateTimeShortcuts.5548f99471bf.js +++ b/static/admin/js/admin/DateTimeShortcuts.300591891b2b.js @@ -388,13 +388,7 @@ DateTimeShortcuts.calendars[num].drawNextMonth(); }, handleCalendarCallback: function(num) { - let format = get_format('DATE_INPUT_FORMATS')[0]; - // the format needs to be escaped a little - format = format.replace('\\', '\\\\') - .replace('\r', '\\r') - .replace('\n', '\\n') - .replace('\t', '\\t') - .replace("'", "\\'"); + const format = get_format('DATE_INPUT_FORMATS')[0]; return function(y, m, d) { DateTimeShortcuts.calendarInputs[num].value = new Date(y, m - 1, d).strftime(format); DateTimeShortcuts.calendarInputs[num].focus(); diff --git a/static/admin/js/admin/DateTimeShortcuts.300591891b2b.js.gz b/static/admin/js/admin/DateTimeShortcuts.300591891b2b.js.gz new file mode 100644 index 00000000..27d1430c Binary files /dev/null and b/static/admin/js/admin/DateTimeShortcuts.300591891b2b.js.gz differ diff --git a/static/admin/js/admin/DateTimeShortcuts.5548f99471bf.js.gz b/static/admin/js/admin/DateTimeShortcuts.5548f99471bf.js.gz deleted file mode 100644 index c414e76e..00000000 Binary files a/static/admin/js/admin/DateTimeShortcuts.5548f99471bf.js.gz and /dev/null differ diff --git a/static/admin/js/admin/DateTimeShortcuts.js b/static/admin/js/admin/DateTimeShortcuts.js index 9bad0f54..176b0e3e 100644 --- a/static/admin/js/admin/DateTimeShortcuts.js +++ b/static/admin/js/admin/DateTimeShortcuts.js @@ -388,13 +388,7 @@ DateTimeShortcuts.calendars[num].drawNextMonth(); }, handleCalendarCallback: function(num) { - let format = get_format('DATE_INPUT_FORMATS')[0]; - // the format needs to be escaped a little - format = format.replace('\\', '\\\\') - .replace('\r', '\\r') - .replace('\n', '\\n') - .replace('\t', '\\t') - .replace("'", "\\'"); + const format = get_format('DATE_INPUT_FORMATS')[0]; return function(y, m, d) { DateTimeShortcuts.calendarInputs[num].value = new Date(y, m - 1, d).strftime(format); DateTimeShortcuts.calendarInputs[num].focus(); diff --git a/static/admin/js/admin/DateTimeShortcuts.js.gz b/static/admin/js/admin/DateTimeShortcuts.js.gz index c414e76e..27d1430c 100644 Binary files a/static/admin/js/admin/DateTimeShortcuts.js.gz and b/static/admin/js/admin/DateTimeShortcuts.js.gz differ diff --git a/static/admin/js/admin/RelatedObjectLookups.b4d76b6aaf0b.js.gz b/static/admin/js/admin/RelatedObjectLookups.b4d76b6aaf0b.js.gz deleted file mode 100644 index 4e93b053..00000000 Binary files a/static/admin/js/admin/RelatedObjectLookups.b4d76b6aaf0b.js.gz and /dev/null differ diff --git a/static/admin/js/admin/RelatedObjectLookups.b4d76b6aaf0b.js b/static/admin/js/admin/RelatedObjectLookups.de5309ac06dd.js similarity index 63% rename from static/admin/js/admin/RelatedObjectLookups.b4d76b6aaf0b.js rename to static/admin/js/admin/RelatedObjectLookups.de5309ac06dd.js index 289e1cee..752dcad7 100644 --- a/static/admin/js/admin/RelatedObjectLookups.b4d76b6aaf0b.js +++ b/static/admin/js/admin/RelatedObjectLookups.de5309ac06dd.js @@ -4,14 +4,45 @@ 'use strict'; { const $ = django.jQuery; + let popupIndex = 0; + const relatedWindows = []; + + function dismissChildPopups() { + relatedWindows.forEach(function(win) { + if(!win.closed) { + win.dismissChildPopups(); + win.close(); + } + }); + } + + function setPopupIndex() { + if(document.getElementsByName("_popup").length > 0) { + const index = window.name.lastIndexOf("__") + 2; + popupIndex = parseInt(window.name.substring(index)); + } else { + popupIndex = 0; + } + } + + function addPopupIndex(name) { + name = name + "__" + (popupIndex + 1); + return name; + } + + function removePopupIndex(name) { + name = name.replace(new RegExp("__" + (popupIndex + 1) + "$"), ''); + return name; + } function showAdminPopup(triggeringLink, name_regexp, add_popup) { - const name = triggeringLink.id.replace(name_regexp, ''); + const name = addPopupIndex(triggeringLink.id.replace(name_regexp, '')); const href = new URL(triggeringLink.href); if (add_popup) { href.searchParams.set('_popup', 1); } const win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes'); + relatedWindows.push(win); win.focus(); return false; } @@ -21,13 +52,17 @@ } function dismissRelatedLookupPopup(win, chosenId) { - const name = win.name; + const name = removePopupIndex(win.name); const elem = document.getElementById(name); if (elem.classList.contains('vManyToManyRawIdAdminField') && elem.value) { elem.value += ',' + chosenId; } else { document.getElementById(name).value = chosenId; } + const index = relatedWindows.indexOf(win); + if (index > -1) { + relatedWindows.splice(index, 1); + } win.close(); } @@ -52,13 +87,44 @@ } } + function updateRelatedSelectsOptions(currentSelect, win, objId, newRepr, newId) { + // After create/edit a model from the options next to the current + // select (+ or :pencil:) update ForeignKey PK of the rest of selects + // in the page. + + const path = win.location.pathname; + // Extract the model from the popup url '...//add/' or + // '...///change/' depending the action (add or change). + const modelName = path.split('/')[path.split('/').length - (objId ? 4 : 3)]; + // Exclude autocomplete selects. + const selectsRelated = document.querySelectorAll(`[data-model-ref="${modelName}"] select:not(.admin-autocomplete)`); + + selectsRelated.forEach(function(select) { + if (currentSelect === select) { + return; + } + + let option = select.querySelector(`option[value="${objId}"]`); + + if (!option) { + option = new Option(newRepr, newId); + select.options.add(option); + return; + } + + option.textContent = newRepr; + option.value = newId; + }); + } + function dismissAddRelatedObjectPopup(win, newId, newRepr) { - const name = win.name; + const name = removePopupIndex(win.name); const elem = document.getElementById(name); if (elem) { const elemName = elem.nodeName.toUpperCase(); if (elemName === 'SELECT') { elem.options[elem.options.length] = new Option(newRepr, newId, true, true); + updateRelatedSelectsOptions(elem, win, null, newRepr, newId); } else if (elemName === 'INPUT') { if (elem.classList.contains('vManyToManyRawIdAdminField') && elem.value) { elem.value += ',' + newId; @@ -74,11 +140,15 @@ SelectBox.add_to_cache(toId, o); SelectBox.redisplay(toId); } + const index = relatedWindows.indexOf(win); + if (index > -1) { + relatedWindows.splice(index, 1); + } win.close(); } function dismissChangeRelatedObjectPopup(win, objId, newRepr, newId) { - const id = win.name.replace(/^edit_/, ''); + const id = removePopupIndex(win.name.replace(/^edit_/, '')); const selectsSelector = interpolate('#%s, #%s_from, #%s_to', [id, id, id]); const selects = $(selectsSelector); selects.find('option').each(function() { @@ -86,18 +156,23 @@ this.textContent = newRepr; this.value = newId; } - }); + }).trigger('change'); + updateRelatedSelectsOptions(selects[0], win, objId, newRepr, newId); selects.next().find('.select2-selection__rendered').each(function() { // The element can have a clear button as a child. // Use the lastChild to modify only the displayed value. this.lastChild.textContent = newRepr; this.title = newRepr; }); + const index = relatedWindows.indexOf(win); + if (index > -1) { + relatedWindows.splice(index, 1); + } win.close(); } function dismissDeleteRelatedObjectPopup(win, objId) { - const id = win.name.replace(/^delete_/, ''); + const id = removePopupIndex(win.name.replace(/^delete_/, '')); const selectsSelector = interpolate('#%s, #%s_from, #%s_to', [id, id, id]); const selects = $(selectsSelector); selects.find('option').each(function() { @@ -105,6 +180,10 @@ $(this).remove(); } }).trigger('change'); + const index = relatedWindows.indexOf(win); + if (index > -1) { + relatedWindows.splice(index, 1); + } win.close(); } @@ -115,17 +194,23 @@ window.dismissAddRelatedObjectPopup = dismissAddRelatedObjectPopup; window.dismissChangeRelatedObjectPopup = dismissChangeRelatedObjectPopup; window.dismissDeleteRelatedObjectPopup = dismissDeleteRelatedObjectPopup; + window.dismissChildPopups = dismissChildPopups; // Kept for backward compatibility window.showAddAnotherPopup = showRelatedObjectPopup; window.dismissAddAnotherPopup = dismissAddRelatedObjectPopup; + window.addEventListener('unload', function(evt) { + window.dismissChildPopups(); + }); + $(document).ready(function() { + setPopupIndex(); $("a[data-popup-opener]").on('click', function(event) { event.preventDefault(); opener.dismissRelatedLookupPopup(window, $(this).data("popup-opener")); }); - $('body').on('click', '.related-widget-wrapper-link', function(e) { + $('body').on('click', '.related-widget-wrapper-link[data-popup="yes"]', function(e) { e.preventDefault(); if (this.href) { const event = $.Event('django:show-related', {href: this.href}); diff --git a/static/admin/js/admin/RelatedObjectLookups.de5309ac06dd.js.gz b/static/admin/js/admin/RelatedObjectLookups.de5309ac06dd.js.gz new file mode 100644 index 00000000..075adb59 Binary files /dev/null and b/static/admin/js/admin/RelatedObjectLookups.de5309ac06dd.js.gz differ diff --git a/static/admin/js/admin/RelatedObjectLookups.js b/static/admin/js/admin/RelatedObjectLookups.js index 289e1cee..752dcad7 100644 --- a/static/admin/js/admin/RelatedObjectLookups.js +++ b/static/admin/js/admin/RelatedObjectLookups.js @@ -4,14 +4,45 @@ 'use strict'; { const $ = django.jQuery; + let popupIndex = 0; + const relatedWindows = []; + + function dismissChildPopups() { + relatedWindows.forEach(function(win) { + if(!win.closed) { + win.dismissChildPopups(); + win.close(); + } + }); + } + + function setPopupIndex() { + if(document.getElementsByName("_popup").length > 0) { + const index = window.name.lastIndexOf("__") + 2; + popupIndex = parseInt(window.name.substring(index)); + } else { + popupIndex = 0; + } + } + + function addPopupIndex(name) { + name = name + "__" + (popupIndex + 1); + return name; + } + + function removePopupIndex(name) { + name = name.replace(new RegExp("__" + (popupIndex + 1) + "$"), ''); + return name; + } function showAdminPopup(triggeringLink, name_regexp, add_popup) { - const name = triggeringLink.id.replace(name_regexp, ''); + const name = addPopupIndex(triggeringLink.id.replace(name_regexp, '')); const href = new URL(triggeringLink.href); if (add_popup) { href.searchParams.set('_popup', 1); } const win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes'); + relatedWindows.push(win); win.focus(); return false; } @@ -21,13 +52,17 @@ } function dismissRelatedLookupPopup(win, chosenId) { - const name = win.name; + const name = removePopupIndex(win.name); const elem = document.getElementById(name); if (elem.classList.contains('vManyToManyRawIdAdminField') && elem.value) { elem.value += ',' + chosenId; } else { document.getElementById(name).value = chosenId; } + const index = relatedWindows.indexOf(win); + if (index > -1) { + relatedWindows.splice(index, 1); + } win.close(); } @@ -52,13 +87,44 @@ } } + function updateRelatedSelectsOptions(currentSelect, win, objId, newRepr, newId) { + // After create/edit a model from the options next to the current + // select (+ or :pencil:) update ForeignKey PK of the rest of selects + // in the page. + + const path = win.location.pathname; + // Extract the model from the popup url '...//add/' or + // '...///change/' depending the action (add or change). + const modelName = path.split('/')[path.split('/').length - (objId ? 4 : 3)]; + // Exclude autocomplete selects. + const selectsRelated = document.querySelectorAll(`[data-model-ref="${modelName}"] select:not(.admin-autocomplete)`); + + selectsRelated.forEach(function(select) { + if (currentSelect === select) { + return; + } + + let option = select.querySelector(`option[value="${objId}"]`); + + if (!option) { + option = new Option(newRepr, newId); + select.options.add(option); + return; + } + + option.textContent = newRepr; + option.value = newId; + }); + } + function dismissAddRelatedObjectPopup(win, newId, newRepr) { - const name = win.name; + const name = removePopupIndex(win.name); const elem = document.getElementById(name); if (elem) { const elemName = elem.nodeName.toUpperCase(); if (elemName === 'SELECT') { elem.options[elem.options.length] = new Option(newRepr, newId, true, true); + updateRelatedSelectsOptions(elem, win, null, newRepr, newId); } else if (elemName === 'INPUT') { if (elem.classList.contains('vManyToManyRawIdAdminField') && elem.value) { elem.value += ',' + newId; @@ -74,11 +140,15 @@ SelectBox.add_to_cache(toId, o); SelectBox.redisplay(toId); } + const index = relatedWindows.indexOf(win); + if (index > -1) { + relatedWindows.splice(index, 1); + } win.close(); } function dismissChangeRelatedObjectPopup(win, objId, newRepr, newId) { - const id = win.name.replace(/^edit_/, ''); + const id = removePopupIndex(win.name.replace(/^edit_/, '')); const selectsSelector = interpolate('#%s, #%s_from, #%s_to', [id, id, id]); const selects = $(selectsSelector); selects.find('option').each(function() { @@ -86,18 +156,23 @@ this.textContent = newRepr; this.value = newId; } - }); + }).trigger('change'); + updateRelatedSelectsOptions(selects[0], win, objId, newRepr, newId); selects.next().find('.select2-selection__rendered').each(function() { // The element can have a clear button as a child. // Use the lastChild to modify only the displayed value. this.lastChild.textContent = newRepr; this.title = newRepr; }); + const index = relatedWindows.indexOf(win); + if (index > -1) { + relatedWindows.splice(index, 1); + } win.close(); } function dismissDeleteRelatedObjectPopup(win, objId) { - const id = win.name.replace(/^delete_/, ''); + const id = removePopupIndex(win.name.replace(/^delete_/, '')); const selectsSelector = interpolate('#%s, #%s_from, #%s_to', [id, id, id]); const selects = $(selectsSelector); selects.find('option').each(function() { @@ -105,6 +180,10 @@ $(this).remove(); } }).trigger('change'); + const index = relatedWindows.indexOf(win); + if (index > -1) { + relatedWindows.splice(index, 1); + } win.close(); } @@ -115,17 +194,23 @@ window.dismissAddRelatedObjectPopup = dismissAddRelatedObjectPopup; window.dismissChangeRelatedObjectPopup = dismissChangeRelatedObjectPopup; window.dismissDeleteRelatedObjectPopup = dismissDeleteRelatedObjectPopup; + window.dismissChildPopups = dismissChildPopups; // Kept for backward compatibility window.showAddAnotherPopup = showRelatedObjectPopup; window.dismissAddAnotherPopup = dismissAddRelatedObjectPopup; + window.addEventListener('unload', function(evt) { + window.dismissChildPopups(); + }); + $(document).ready(function() { + setPopupIndex(); $("a[data-popup-opener]").on('click', function(event) { event.preventDefault(); opener.dismissRelatedLookupPopup(window, $(this).data("popup-opener")); }); - $('body').on('click', '.related-widget-wrapper-link', function(e) { + $('body').on('click', '.related-widget-wrapper-link[data-popup="yes"]', function(e) { e.preventDefault(); if (this.href) { const event = $.Event('django:show-related', {href: this.href}); diff --git a/static/admin/js/admin/RelatedObjectLookups.js.gz b/static/admin/js/admin/RelatedObjectLookups.js.gz index 4e93b053..075adb59 100644 Binary files a/static/admin/js/admin/RelatedObjectLookups.js.gz and b/static/admin/js/admin/RelatedObjectLookups.js.gz differ diff --git a/static/admin/js/autocomplete.c508b167ab61.js b/static/admin/js/autocomplete.01591ab27be7.js similarity index 81% rename from static/admin/js/autocomplete.c508b167ab61.js rename to static/admin/js/autocomplete.01591ab27be7.js index 6095abe2..d3daeab8 100644 --- a/static/admin/js/autocomplete.c508b167ab61.js +++ b/static/admin/js/autocomplete.01591ab27be7.js @@ -27,9 +27,7 @@ $('.admin-autocomplete').not('[name*=__prefix__]').djangoAdminSelect2(); }); - $(document).on('formset:added', (function() { - return function(event, $newFormset) { - return $newFormset.find('.admin-autocomplete').djangoAdminSelect2(); - }; - })(this)); + document.addEventListener('formset:added', (event) => { + $(event.target).find('.admin-autocomplete').djangoAdminSelect2(); + }); } diff --git a/static/admin/js/autocomplete.01591ab27be7.js.gz b/static/admin/js/autocomplete.01591ab27be7.js.gz new file mode 100644 index 00000000..1ed616d1 Binary files /dev/null and b/static/admin/js/autocomplete.01591ab27be7.js.gz differ diff --git a/static/admin/js/autocomplete.c508b167ab61.js.gz b/static/admin/js/autocomplete.c508b167ab61.js.gz deleted file mode 100644 index 5492178c..00000000 Binary files a/static/admin/js/autocomplete.c508b167ab61.js.gz and /dev/null differ diff --git a/static/admin/js/autocomplete.js b/static/admin/js/autocomplete.js index 6095abe2..d3daeab8 100644 --- a/static/admin/js/autocomplete.js +++ b/static/admin/js/autocomplete.js @@ -27,9 +27,7 @@ $('.admin-autocomplete').not('[name*=__prefix__]').djangoAdminSelect2(); }); - $(document).on('formset:added', (function() { - return function(event, $newFormset) { - return $newFormset.find('.admin-autocomplete').djangoAdminSelect2(); - }; - })(this)); + document.addEventListener('formset:added', (event) => { + $(event.target).find('.admin-autocomplete').djangoAdminSelect2(); + }); } diff --git a/static/admin/js/autocomplete.js.gz b/static/admin/js/autocomplete.js.gz index 5492178c..1ed616d1 100644 Binary files a/static/admin/js/autocomplete.js.gz and b/static/admin/js/autocomplete.js.gz differ diff --git a/static/admin/js/filters.295a9d3d8b6a.js b/static/admin/js/filters.295a9d3d8b6a.js new file mode 100644 index 00000000..ba691ac8 --- /dev/null +++ b/static/admin/js/filters.295a9d3d8b6a.js @@ -0,0 +1,30 @@ +/** + * Persist changelist filters state (collapsed/expanded). + */ +'use strict'; +{ + // Init filters. + let filters = JSON.parse(sessionStorage.getItem('django.admin.filtersState')); + + if (!filters) { + filters = {}; + } + + Object.entries(filters).forEach(([key, value]) => { + const detailElement = document.querySelector(`[data-filter-title='${key}']`); + + // Check if the filter is present, it could be from other view. + if (detailElement) { + value ? detailElement.setAttribute('open', '') : detailElement.removeAttribute('open'); + } + }); + + // Save filter state when clicks. + const details = document.querySelectorAll('details'); + details.forEach(detail => { + detail.addEventListener('toggle', event => { + filters[`${event.target.dataset.filterTitle}`] = detail.open; + sessionStorage.setItem('django.admin.filtersState', JSON.stringify(filters)); + }); + }); +} diff --git a/static/admin/js/filters.295a9d3d8b6a.js.gz b/static/admin/js/filters.295a9d3d8b6a.js.gz new file mode 100644 index 00000000..8a2dbd52 Binary files /dev/null and b/static/admin/js/filters.295a9d3d8b6a.js.gz differ diff --git a/static/admin/js/filters.js b/static/admin/js/filters.js new file mode 100644 index 00000000..ba691ac8 --- /dev/null +++ b/static/admin/js/filters.js @@ -0,0 +1,30 @@ +/** + * Persist changelist filters state (collapsed/expanded). + */ +'use strict'; +{ + // Init filters. + let filters = JSON.parse(sessionStorage.getItem('django.admin.filtersState')); + + if (!filters) { + filters = {}; + } + + Object.entries(filters).forEach(([key, value]) => { + const detailElement = document.querySelector(`[data-filter-title='${key}']`); + + // Check if the filter is present, it could be from other view. + if (detailElement) { + value ? detailElement.setAttribute('open', '') : detailElement.removeAttribute('open'); + } + }); + + // Save filter state when clicks. + const details = document.querySelectorAll('details'); + details.forEach(detail => { + detail.addEventListener('toggle', event => { + filters[`${event.target.dataset.filterTitle}`] = detail.open; + sessionStorage.setItem('django.admin.filtersState', JSON.stringify(filters)); + }); + }); +} diff --git a/static/admin/js/filters.js.gz b/static/admin/js/filters.js.gz new file mode 100644 index 00000000..8a2dbd52 Binary files /dev/null and b/static/admin/js/filters.js.gz differ diff --git a/static/admin/js/inlines.fb1617228dbe.js b/static/admin/js/inlines.22d4d93c00b4.js similarity index 94% rename from static/admin/js/inlines.fb1617228dbe.js rename to static/admin/js/inlines.22d4d93c00b4.js index d9a9032c..e9a1dfe1 100644 --- a/static/admin/js/inlines.fb1617228dbe.js +++ b/static/admin/js/inlines.22d4d93c00b4.js @@ -88,7 +88,12 @@ if (options.added) { options.added(row); } - $(document).trigger('formset:added', [row, options.prefix]); + row.get(0).dispatchEvent(new CustomEvent("formset:added", { + bubbles: true, + detail: { + formsetName: options.prefix + } + })); }; /** @@ -130,7 +135,11 @@ if (options.removed) { options.removed(row); } - $(document).trigger('formset:removed', [row, options.prefix]); + document.dispatchEvent(new CustomEvent("formset:removed", { + detail: { + formsetName: options.prefix + } + })); // Update the TOTAL_FORMS form count. const forms = $("." + options.formCssClass); $("#id_" + options.prefix + "-TOTAL_FORMS").val(forms.length); @@ -296,7 +305,13 @@ dependency_list = input.data('dependency_list') || [], dependencies = []; $.each(dependency_list, function(i, field_name) { - dependencies.push('#' + row.find('.form-row .field-' + field_name).find('input, select, textarea').attr('id')); + // Dependency in a fieldset. + let field_element = row.find('.form-row .field-' + field_name); + // Dependency without a fieldset. + if (!field_element.length) { + field_element = row.find('.form-row.field-' + field_name); + } + dependencies.push('#' + field_element.find('input, select, textarea').attr('id')); }); if (dependencies.length) { input.prepopulate(dependencies, input.attr('maxlength')); diff --git a/static/admin/js/inlines.22d4d93c00b4.js.gz b/static/admin/js/inlines.22d4d93c00b4.js.gz new file mode 100644 index 00000000..f0be39d1 Binary files /dev/null and b/static/admin/js/inlines.22d4d93c00b4.js.gz differ diff --git a/static/admin/js/inlines.fb1617228dbe.js.gz b/static/admin/js/inlines.fb1617228dbe.js.gz deleted file mode 100644 index 880e2c0c..00000000 Binary files a/static/admin/js/inlines.fb1617228dbe.js.gz and /dev/null differ diff --git a/static/admin/js/inlines.js b/static/admin/js/inlines.js index d9a9032c..e9a1dfe1 100644 --- a/static/admin/js/inlines.js +++ b/static/admin/js/inlines.js @@ -88,7 +88,12 @@ if (options.added) { options.added(row); } - $(document).trigger('formset:added', [row, options.prefix]); + row.get(0).dispatchEvent(new CustomEvent("formset:added", { + bubbles: true, + detail: { + formsetName: options.prefix + } + })); }; /** @@ -130,7 +135,11 @@ if (options.removed) { options.removed(row); } - $(document).trigger('formset:removed', [row, options.prefix]); + document.dispatchEvent(new CustomEvent("formset:removed", { + detail: { + formsetName: options.prefix + } + })); // Update the TOTAL_FORMS form count. const forms = $("." + options.formCssClass); $("#id_" + options.prefix + "-TOTAL_FORMS").val(forms.length); @@ -296,7 +305,13 @@ dependency_list = input.data('dependency_list') || [], dependencies = []; $.each(dependency_list, function(i, field_name) { - dependencies.push('#' + row.find('.form-row .field-' + field_name).find('input, select, textarea').attr('id')); + // Dependency in a fieldset. + let field_element = row.find('.form-row .field-' + field_name); + // Dependency without a fieldset. + if (!field_element.length) { + field_element = row.find('.form-row.field-' + field_name); + } + dependencies.push('#' + field_element.find('input, select, textarea').attr('id')); }); if (dependencies.length) { input.prepopulate(dependencies, input.attr('maxlength')); diff --git a/static/admin/js/inlines.js.gz b/static/admin/js/inlines.js.gz index 880e2c0c..f0be39d1 100644 Binary files a/static/admin/js/inlines.js.gz and b/static/admin/js/inlines.js.gz differ diff --git a/static/admin/js/prepopulate_init.e056047b7a7e.js b/static/admin/js/prepopulate_init.6cac7f3105b8.js similarity index 60% rename from static/admin/js/prepopulate_init.e056047b7a7e.js rename to static/admin/js/prepopulate_init.6cac7f3105b8.js index 72ebdcf5..a58841f0 100644 --- a/static/admin/js/prepopulate_init.e056047b7a7e.js +++ b/static/admin/js/prepopulate_init.6cac7f3105b8.js @@ -3,7 +3,11 @@ const $ = django.jQuery; const fields = $('#django-admin-prepopulated-fields-constants').data('prepopulatedFields'); $.each(fields, function(index, field) { - $('.empty-form .form-row .field-' + field.name + ', .empty-form.form-row .field-' + field.name).addClass('prepopulated_field'); + $( + '.empty-form .form-row .field-' + field.name + + ', .empty-form.form-row .field-' + field.name + + ', .empty-form .form-row.field-' + field.name + ).addClass('prepopulated_field'); $(field.id).data('dependency_list', field.dependency_list).prepopulate( field.dependency_ids, field.maxLength, field.allowUnicode ); diff --git a/static/admin/js/prepopulate_init.6cac7f3105b8.js.gz b/static/admin/js/prepopulate_init.6cac7f3105b8.js.gz new file mode 100644 index 00000000..b000b60f Binary files /dev/null and b/static/admin/js/prepopulate_init.6cac7f3105b8.js.gz differ diff --git a/static/admin/js/prepopulate_init.e056047b7a7e.js.gz b/static/admin/js/prepopulate_init.e056047b7a7e.js.gz deleted file mode 100644 index 9417cd0c..00000000 Binary files a/static/admin/js/prepopulate_init.e056047b7a7e.js.gz and /dev/null differ diff --git a/static/admin/js/prepopulate_init.js b/static/admin/js/prepopulate_init.js index 72ebdcf5..a58841f0 100644 --- a/static/admin/js/prepopulate_init.js +++ b/static/admin/js/prepopulate_init.js @@ -3,7 +3,11 @@ const $ = django.jQuery; const fields = $('#django-admin-prepopulated-fields-constants').data('prepopulatedFields'); $.each(fields, function(index, field) { - $('.empty-form .form-row .field-' + field.name + ', .empty-form.form-row .field-' + field.name).addClass('prepopulated_field'); + $( + '.empty-form .form-row .field-' + field.name + + ', .empty-form.form-row .field-' + field.name + + ', .empty-form .form-row.field-' + field.name + ).addClass('prepopulated_field'); $(field.id).data('dependency_list', field.dependency_list).prepopulate( field.dependency_ids, field.maxLength, field.allowUnicode ); diff --git a/static/admin/js/prepopulate_init.js.gz b/static/admin/js/prepopulate_init.js.gz index 9417cd0c..b000b60f 100644 Binary files a/static/admin/js/prepopulate_init.js.gz and b/static/admin/js/prepopulate_init.js.gz differ diff --git a/static/babybuddy/js/graph.js b/static/babybuddy/js/graph.js index 4443da67..d09198bc 100644 --- a/static/babybuddy/js/graph.js +++ b/static/babybuddy/js/graph.js @@ -13245,46 +13245,46 @@ function transpose(out, a) { }; },{}],64:[function(_dereq_,module,exports){ (function (global){(function (){ -'use strict' - -var isBrowser = _dereq_('is-browser') -var hasHover - -if (typeof global.matchMedia === 'function') { - hasHover = !global.matchMedia('(hover: none)').matches -} -else { - hasHover = isBrowser -} - -module.exports = hasHover +'use strict' + +var isBrowser = _dereq_('is-browser') +var hasHover + +if (typeof global.matchMedia === 'function') { + hasHover = !global.matchMedia('(hover: none)').matches +} +else { + hasHover = isBrowser +} + +module.exports = hasHover }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) },{"is-browser":68}],65:[function(_dereq_,module,exports){ -'use strict' - -var isBrowser = _dereq_('is-browser') - -function detect() { - var supported = false - - try { - var opts = Object.defineProperty({}, 'passive', { - get: function() { - supported = true - } - }) - - window.addEventListener('test', null, opts) - window.removeEventListener('test', null, opts) - } catch(e) { - supported = false - } - - return supported -} - -module.exports = isBrowser && detect() +'use strict' + +var isBrowser = _dereq_('is-browser') + +function detect() { + var supported = false + + try { + var opts = Object.defineProperty({}, 'passive', { + get: function() { + supported = true + } + }) + + window.addEventListener('test', null, opts) + window.removeEventListener('test', null, opts) + } catch(e) { + supported = false + } + + return supported +} + +module.exports = isBrowser && detect() },{"is-browser":68}],66:[function(_dereq_,module,exports){ exports.read = function (buffer, offset, isLE, mLen, nBytes) { @@ -13404,78 +13404,78 @@ if (typeof Object.create === 'function') { },{}],68:[function(_dereq_,module,exports){ module.exports = true; },{}],69:[function(_dereq_,module,exports){ -'use strict' - -module.exports = isMobile -module.exports.isMobile = isMobile -module.exports.default = isMobile - -var mobileRE = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i - -var tabletRE = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|android|ipad|playbook|silk/i - -function isMobile (opts) { - if (!opts) opts = {} - var ua = opts.ua - if (!ua && typeof navigator !== 'undefined') ua = navigator.userAgent - if (ua && ua.headers && typeof ua.headers['user-agent'] === 'string') { - ua = ua.headers['user-agent'] - } - if (typeof ua !== 'string') return false - - var result = opts.tablet ? tabletRE.test(ua) : mobileRE.test(ua) - - if ( - !result && - opts.tablet && - opts.featureDetect && - navigator && - navigator.maxTouchPoints > 1 && - ua.indexOf('Macintosh') !== -1 && - ua.indexOf('Safari') !== -1 - ) { - result = true - } - - return result -} +'use strict' + +module.exports = isMobile +module.exports.isMobile = isMobile +module.exports.default = isMobile + +var mobileRE = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i + +var tabletRE = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|android|ipad|playbook|silk/i + +function isMobile (opts) { + if (!opts) opts = {} + var ua = opts.ua + if (!ua && typeof navigator !== 'undefined') ua = navigator.userAgent + if (ua && ua.headers && typeof ua.headers['user-agent'] === 'string') { + ua = ua.headers['user-agent'] + } + if (typeof ua !== 'string') return false + + var result = opts.tablet ? tabletRE.test(ua) : mobileRE.test(ua) + + if ( + !result && + opts.tablet && + opts.featureDetect && + navigator && + navigator.maxTouchPoints > 1 && + ua.indexOf('Macintosh') !== -1 && + ua.indexOf('Safari') !== -1 + ) { + result = true + } + + return result +} },{}],70:[function(_dereq_,module,exports){ -'use strict'; - -/** - * Is this string all whitespace? - * This solution kind of makes my brain hurt, but it's significantly faster - * than !str.trim() or any other solution I could find. - * - * whitespace codes from: http://en.wikipedia.org/wiki/Whitespace_character - * and verified with: - * - * for(var i = 0; i < 65536; i++) { - * var s = String.fromCharCode(i); - * if(+s===0 && !s.trim()) console.log(i, s); - * } - * - * which counts a couple of these as *not* whitespace, but finds nothing else - * that *is* whitespace. Note that charCodeAt stops at 16 bits, but it appears - * that there are no whitespace characters above this, and code points above - * this do not map onto white space characters. - */ - -module.exports = function(str){ - var l = str.length, - a; - for(var i = 0; i < l; i++) { - a = str.charCodeAt(i); - if((a < 9 || a > 13) && (a !== 32) && (a !== 133) && (a !== 160) && - (a !== 5760) && (a !== 6158) && (a < 8192 || a > 8205) && - (a !== 8232) && (a !== 8233) && (a !== 8239) && (a !== 8287) && - (a !== 8288) && (a !== 12288) && (a !== 65279)) { - return false; - } - } - return true; -} +'use strict'; + +/** + * Is this string all whitespace? + * This solution kind of makes my brain hurt, but it's significantly faster + * than !str.trim() or any other solution I could find. + * + * whitespace codes from: http://en.wikipedia.org/wiki/Whitespace_character + * and verified with: + * + * for(var i = 0; i < 65536; i++) { + * var s = String.fromCharCode(i); + * if(+s===0 && !s.trim()) console.log(i, s); + * } + * + * which counts a couple of these as *not* whitespace, but finds nothing else + * that *is* whitespace. Note that charCodeAt stops at 16 bits, but it appears + * that there are no whitespace characters above this, and code points above + * this do not map onto white space characters. + */ + +module.exports = function(str){ + var l = str.length, + a; + for(var i = 0; i < l; i++) { + a = str.charCodeAt(i); + if((a < 9 || a > 13) && (a !== 32) && (a !== 133) && (a !== 160) && + (a !== 5760) && (a !== 6158) && (a < 8192 || a > 8205) && + (a !== 8232) && (a !== 8233) && (a !== 8239) && (a !== 8287) && + (a !== 8288) && (a !== 12288) && (a !== 65279)) { + return false; + } + } + return true; +} },{}],71:[function(_dereq_,module,exports){ var rootPosition = { left: 0, top: 0 } diff --git a/static/babybuddy/js/vendor.js b/static/babybuddy/js/vendor.js index 9f52d236..1bc309d3 100644 --- a/static/babybuddy/js/vendor.js +++ b/static/babybuddy/js/vendor.js @@ -26961,3508 +26961,3508 @@ return Popper; return moment; })); -/*!@preserve - * Tempus Dominus Bootstrap4 v5.39.0 (https://tempusdominus.github.io/bootstrap-4/) - * Copyright 2016-2020 Jonathan Peterson and contributors - * Licensed under MIT (https://github.com/tempusdominus/bootstrap-3/blob/master/LICENSE) - */ - -if (typeof jQuery === 'undefined') { - throw new Error('Tempus Dominus Bootstrap4\'s requires jQuery. jQuery must be included before Tempus Dominus Bootstrap4\'s JavaScript.'); -} - -+function ($) { - var version = $.fn.jquery.split(' ')[0].split('.'); - if ((version[0] < 2 && version[1] < 9) || (version[0] === 1 && version[1] === 9 && version[2] < 1) || (version[0] >= 4)) { - throw new Error('Tempus Dominus Bootstrap4\'s requires at least jQuery v3.0.0 but less than v4.0.0'); - } -}(jQuery); - - -if (typeof moment === 'undefined') { - throw new Error('Tempus Dominus Bootstrap4\'s requires moment.js. Moment.js must be included before Tempus Dominus Bootstrap4\'s JavaScript.'); -} - -var version = moment.version.split('.') -if ((version[0] <= 2 && version[1] < 17) || (version[0] >= 3)) { - throw new Error('Tempus Dominus Bootstrap4\'s requires at least moment.js v2.17.0 but less than v3.0.0'); -} - -+function () { - -function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -// ReSharper disable once InconsistentNaming -var DateTimePicker = function ($, moment) { - function escapeRegExp(text) { - return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); - } - - function isValidDate(date) { - return Object.prototype.toString.call(date) === '[object Date]' && !isNaN(date.getTime()); - } - - function isValidDateTimeStr(str) { - return isValidDate(new Date(str)); - } // ReSharper disable InconsistentNaming - - - var trim = function trim(str) { - return str.replace(/(^\s+)|(\s+$)/g, ''); - }, - NAME = 'datetimepicker', - DATA_KEY = "" + NAME, - EVENT_KEY = "." + DATA_KEY, - DATA_API_KEY = '.data-api', - Selector = { - DATA_TOGGLE: "[data-toggle=\"" + DATA_KEY + "\"]" - }, - ClassName = { - INPUT: NAME + "-input" - }, - Event = { - CHANGE: "change" + EVENT_KEY, - BLUR: "blur" + EVENT_KEY, - KEYUP: "keyup" + EVENT_KEY, - KEYDOWN: "keydown" + EVENT_KEY, - FOCUS: "focus" + EVENT_KEY, - CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY, - //emitted - UPDATE: "update" + EVENT_KEY, - ERROR: "error" + EVENT_KEY, - HIDE: "hide" + EVENT_KEY, - SHOW: "show" + EVENT_KEY - }, - DatePickerModes = [{ - CLASS_NAME: 'days', - NAV_FUNCTION: 'M', - NAV_STEP: 1 - }, { - CLASS_NAME: 'months', - NAV_FUNCTION: 'y', - NAV_STEP: 1 - }, { - CLASS_NAME: 'years', - NAV_FUNCTION: 'y', - NAV_STEP: 10 - }, { - CLASS_NAME: 'decades', - NAV_FUNCTION: 'y', - NAV_STEP: 100 - }], - KeyMap = { - 'up': 38, - 38: 'up', - 'down': 40, - 40: 'down', - 'left': 37, - 37: 'left', - 'right': 39, - 39: 'right', - 'tab': 9, - 9: 'tab', - 'escape': 27, - 27: 'escape', - 'enter': 13, - 13: 'enter', - 'pageUp': 33, - 33: 'pageUp', - 'pageDown': 34, - 34: 'pageDown', - 'shift': 16, - 16: 'shift', - 'control': 17, - 17: 'control', - 'space': 32, - 32: 'space', - 't': 84, - 84: 't', - 'delete': 46, - 46: 'delete' - }, - ViewModes = ['times', 'days', 'months', 'years', 'decades'], - keyState = {}, - keyPressHandled = {}, - optionsSortMap = { - timeZone: -39, - format: -38, - dayViewHeaderFormat: -37, - extraFormats: -36, - stepping: -35, - minDate: -34, - maxDate: -33, - useCurrent: -32, - collapse: -31, - locale: -30, - defaultDate: -29, - disabledDates: -28, - enabledDates: -27, - icons: -26, - tooltips: -25, - useStrict: -24, - sideBySide: -23, - daysOfWeekDisabled: -22, - calendarWeeks: -21, - viewMode: -20, - toolbarPlacement: -19, - buttons: -18, - widgetPositioning: -17, - widgetParent: -16, - ignoreReadonly: -15, - keepOpen: -14, - focusOnShow: -13, - inline: -12, - keepInvalid: -11, - keyBinds: -10, - debug: -9, - allowInputToggle: -8, - disabledTimeIntervals: -7, - disabledHours: -6, - enabledHours: -5, - viewDate: -4, - allowMultidate: -3, - multidateSeparator: -2, - updateOnlyThroughDateOption: -1, - date: 1 - }, - defaultFeatherIcons = { - time: 'clock', - date: 'calendar', - up: 'arrow-up', - down: 'arrow-down', - previous: 'arrow-left', - next: 'arrow-right', - today: 'arrow-down-circle', - clear: 'trash-2', - close: 'x' - }; - - function optionsSortFn(optionKeyA, optionKeyB) { - if (optionsSortMap[optionKeyA] && optionsSortMap[optionKeyB]) { - if (optionsSortMap[optionKeyA] < 0 && optionsSortMap[optionKeyB] < 0) { - return Math.abs(optionsSortMap[optionKeyB]) - Math.abs(optionsSortMap[optionKeyA]); - } else if (optionsSortMap[optionKeyA] < 0) { - return -1; - } else if (optionsSortMap[optionKeyB] < 0) { - return 1; - } - - return optionsSortMap[optionKeyA] - optionsSortMap[optionKeyB]; - } else if (optionsSortMap[optionKeyA]) { - return optionsSortMap[optionKeyA]; - } else if (optionsSortMap[optionKeyB]) { - return optionsSortMap[optionKeyB]; - } - - return 0; - } - - var Default = { - timeZone: '', - format: false, - dayViewHeaderFormat: 'MMMM YYYY', - extraFormats: false, - stepping: 1, - minDate: false, - maxDate: false, - useCurrent: true, - collapse: true, - locale: moment.locale(), - defaultDate: false, - disabledDates: false, - enabledDates: false, - icons: { - type: 'class', - time: 'fa fa-clock-o', - date: 'fa fa-calendar', - up: 'fa fa-arrow-up', - down: 'fa fa-arrow-down', - previous: 'fa fa-chevron-left', - next: 'fa fa-chevron-right', - today: 'fa fa-calendar-check-o', - clear: 'fa fa-trash', - close: 'fa fa-times' - }, - tooltips: { - today: 'Go to today', - clear: 'Clear selection', - close: 'Close the picker', - selectMonth: 'Select Month', - prevMonth: 'Previous Month', - nextMonth: 'Next Month', - selectYear: 'Select Year', - prevYear: 'Previous Year', - nextYear: 'Next Year', - selectDecade: 'Select Decade', - prevDecade: 'Previous Decade', - nextDecade: 'Next Decade', - prevCentury: 'Previous Century', - nextCentury: 'Next Century', - pickHour: 'Pick Hour', - incrementHour: 'Increment Hour', - decrementHour: 'Decrement Hour', - pickMinute: 'Pick Minute', - incrementMinute: 'Increment Minute', - decrementMinute: 'Decrement Minute', - pickSecond: 'Pick Second', - incrementSecond: 'Increment Second', - decrementSecond: 'Decrement Second', - togglePeriod: 'Toggle Period', - selectTime: 'Select Time', - selectDate: 'Select Date' - }, - useStrict: false, - sideBySide: false, - daysOfWeekDisabled: false, - calendarWeeks: false, - viewMode: 'days', - toolbarPlacement: 'default', - buttons: { - showToday: false, - showClear: false, - showClose: false - }, - widgetPositioning: { - horizontal: 'auto', - vertical: 'auto' - }, - widgetParent: null, - readonly: false, - ignoreReadonly: false, - keepOpen: false, - focusOnShow: true, - inline: false, - keepInvalid: false, - keyBinds: { - up: function up() { - if (!this.widget) { - return false; - } - - var d = this._dates[0] || this.getMoment(); - - if (this.widget.find('.datepicker').is(':visible')) { - this.date(d.clone().subtract(7, 'd')); - } else { - this.date(d.clone().add(this.stepping(), 'm')); - } - - return true; - }, - down: function down() { - if (!this.widget) { - this.show(); - return false; - } - - var d = this._dates[0] || this.getMoment(); - - if (this.widget.find('.datepicker').is(':visible')) { - this.date(d.clone().add(7, 'd')); - } else { - this.date(d.clone().subtract(this.stepping(), 'm')); - } - - return true; - }, - 'control up': function controlUp() { - if (!this.widget) { - return false; - } - - var d = this._dates[0] || this.getMoment(); - - if (this.widget.find('.datepicker').is(':visible')) { - this.date(d.clone().subtract(1, 'y')); - } else { - this.date(d.clone().add(1, 'h')); - } - - return true; - }, - 'control down': function controlDown() { - if (!this.widget) { - return false; - } - - var d = this._dates[0] || this.getMoment(); - - if (this.widget.find('.datepicker').is(':visible')) { - this.date(d.clone().add(1, 'y')); - } else { - this.date(d.clone().subtract(1, 'h')); - } - - return true; - }, - left: function left() { - if (!this.widget) { - return false; - } - - var d = this._dates[0] || this.getMoment(); - - if (this.widget.find('.datepicker').is(':visible')) { - this.date(d.clone().subtract(1, 'd')); - } - - return true; - }, - right: function right() { - if (!this.widget) { - return false; - } - - var d = this._dates[0] || this.getMoment(); - - if (this.widget.find('.datepicker').is(':visible')) { - this.date(d.clone().add(1, 'd')); - } - - return true; - }, - pageUp: function pageUp() { - if (!this.widget) { - return false; - } - - var d = this._dates[0] || this.getMoment(); - - if (this.widget.find('.datepicker').is(':visible')) { - this.date(d.clone().subtract(1, 'M')); - } - - return true; - }, - pageDown: function pageDown() { - if (!this.widget) { - return false; - } - - var d = this._dates[0] || this.getMoment(); - - if (this.widget.find('.datepicker').is(':visible')) { - this.date(d.clone().add(1, 'M')); - } - - return true; - }, - enter: function enter() { - if (!this.widget) { - return false; - } - - this.hide(); - return true; - }, - escape: function escape() { - if (!this.widget) { - return false; - } - - this.hide(); - return true; - }, - 'control space': function controlSpace() { - if (!this.widget) { - return false; - } - - if (this.widget.find('.timepicker').is(':visible')) { - this.widget.find('.btn[data-action="togglePeriod"]').click(); - } - - return true; - }, - t: function t() { - if (!this.widget) { - return false; - } - - this.date(this.getMoment()); - return true; - }, - 'delete': function _delete() { - if (!this.widget) { - return false; - } - - this.clear(); - return true; - } - }, - debug: false, - allowInputToggle: false, - disabledTimeIntervals: false, - disabledHours: false, - enabledHours: false, - viewDate: false, - allowMultidate: false, - multidateSeparator: ', ', - updateOnlyThroughDateOption: false, - promptTimeOnDateChange: false, - promptTimeOnDateChangeTransitionDelay: 200 - }; // ReSharper restore InconsistentNaming - // ReSharper disable once DeclarationHides - // ReSharper disable once InconsistentNaming - - var DateTimePicker = /*#__PURE__*/function () { - /** @namespace eData.dateOptions */ - - /** @namespace moment.tz */ - function DateTimePicker(element, options) { - this._options = this._getOptions(options); - this._element = element; - this._dates = []; - this._datesFormatted = []; - this._viewDate = null; - this.unset = true; - this.component = false; - this.widget = false; - this.use24Hours = null; - this.actualFormat = null; - this.parseFormats = null; - this.currentViewMode = null; - this.MinViewModeNumber = 0; - this.isInitFormatting = false; - this.isInit = false; - this.isDateUpdateThroughDateOptionFromClientCode = false; - this.hasInitDate = false; - this.initDate = void 0; - this._notifyChangeEventContext = void 0; - this._currentPromptTimeTimeout = null; - - this._int(); - } - /** - * @return {string} - */ - - - var _proto = DateTimePicker.prototype; - - //private - _proto._int = function _int() { - this.isInit = true; - - var targetInput = this._element.data('target-input'); - - if (this._element.is('input')) { - this.input = this._element; - } else if (targetInput !== undefined) { - if (targetInput === 'nearest') { - this.input = this._element.find('input'); - } else { - this.input = $(targetInput); - } - } - - this._dates = []; - this._dates[0] = this.getMoment(); - this._viewDate = this.getMoment().clone(); - $.extend(true, this._options, this._dataToOptions()); - this.hasInitDate = false; - this.initDate = void 0; - this.options(this._options); - this.isInitFormatting = true; - - this._initFormatting(); - - this.isInitFormatting = false; - - if (this.input !== undefined && this.input.is('input') && this.input.val().trim().length !== 0) { - this._setValue(this._parseInputDate(this.input.val().trim()), 0); - } else if (this._options.defaultDate && this.input !== undefined && this.input.attr('placeholder') === undefined) { - this._setValue(this._options.defaultDate, 0); - } - - if (this.hasInitDate) { - this.date(this.initDate); - } - - if (this._options.inline) { - this.show(); - } - - this.isInit = false; - }; - - _proto._update = function _update() { - if (!this.widget) { - return; - } - - this._fillDate(); - - this._fillTime(); - }; - - _proto._setValue = function _setValue(targetMoment, index) { - var noIndex = typeof index === 'undefined', - isClear = !targetMoment && noIndex, - isDateUpdateThroughDateOptionFromClientCode = this.isDateUpdateThroughDateOptionFromClientCode, - isNotAllowedProgrammaticUpdate = !this.isInit && this._options.updateOnlyThroughDateOption && !isDateUpdateThroughDateOptionFromClientCode; - var outpValue = '', - isInvalid = false, - oldDate = this.unset ? null : this._dates[index]; - - if (!oldDate && !this.unset && noIndex && isClear) { - oldDate = this._dates[this._dates.length - 1]; - } // case of calling setValue(null or false) - - - if (!targetMoment) { - if (isNotAllowedProgrammaticUpdate) { - this._notifyEvent({ - type: DateTimePicker.Event.CHANGE, - date: targetMoment, - oldDate: oldDate, - isClear: isClear, - isInvalid: isInvalid, - isDateUpdateThroughDateOptionFromClientCode: isDateUpdateThroughDateOptionFromClientCode, - isInit: this.isInit - }); - - return; - } - - if (!this._options.allowMultidate || this._dates.length === 1 || isClear) { - this.unset = true; - this._dates = []; - this._datesFormatted = []; - } else { - outpValue = "" + this._element.data('date') + this._options.multidateSeparator; - outpValue = oldDate && outpValue.replace("" + oldDate.format(this.actualFormat) + this._options.multidateSeparator, '').replace("" + this._options.multidateSeparator + this._options.multidateSeparator, '').replace(new RegExp(escapeRegExp(this._options.multidateSeparator) + "\\s*$"), '') || ''; - - this._dates.splice(index, 1); - - this._datesFormatted.splice(index, 1); - } - - outpValue = trim(outpValue); - - if (this.input !== undefined) { - this.input.val(outpValue); - this.input.trigger('input'); - } - - this._element.data('date', outpValue); - - this._notifyEvent({ - type: DateTimePicker.Event.CHANGE, - date: false, - oldDate: oldDate, - isClear: isClear, - isInvalid: isInvalid, - isDateUpdateThroughDateOptionFromClientCode: isDateUpdateThroughDateOptionFromClientCode, - isInit: this.isInit - }); - - this._update(); - - return; - } - - targetMoment = targetMoment.clone().locale(this._options.locale); - - if (this._hasTimeZone()) { - targetMoment.tz(this._options.timeZone); - } - - if (this._options.stepping !== 1) { - targetMoment.minutes(Math.round(targetMoment.minutes() / this._options.stepping) * this._options.stepping).seconds(0); - } - - if (this._isValid(targetMoment)) { - if (isNotAllowedProgrammaticUpdate) { - this._notifyEvent({ - type: DateTimePicker.Event.CHANGE, - date: targetMoment.clone(), - oldDate: oldDate, - isClear: isClear, - isInvalid: isInvalid, - isDateUpdateThroughDateOptionFromClientCode: isDateUpdateThroughDateOptionFromClientCode, - isInit: this.isInit - }); - - return; - } - - this._dates[index] = targetMoment; - this._datesFormatted[index] = targetMoment.format('YYYY-MM-DD'); - this._viewDate = targetMoment.clone(); - - if (this._options.allowMultidate && this._dates.length > 1) { - for (var i = 0; i < this._dates.length; i++) { - outpValue += "" + this._dates[i].format(this.actualFormat) + this._options.multidateSeparator; - } - - outpValue = outpValue.replace(new RegExp(this._options.multidateSeparator + "\\s*$"), ''); - } else { - outpValue = this._dates[index].format(this.actualFormat); - } - - outpValue = trim(outpValue); - - if (this.input !== undefined) { - this.input.val(outpValue); - this.input.trigger('input'); - } - - this._element.data('date', outpValue); - - this.unset = false; - - this._update(); - - this._notifyEvent({ - type: DateTimePicker.Event.CHANGE, - date: this._dates[index].clone(), - oldDate: oldDate, - isClear: isClear, - isInvalid: isInvalid, - isDateUpdateThroughDateOptionFromClientCode: isDateUpdateThroughDateOptionFromClientCode, - isInit: this.isInit - }); - } else { - isInvalid = true; - - if (!this._options.keepInvalid) { - if (this.input !== undefined) { - this.input.val("" + (this.unset ? '' : this._dates[index].format(this.actualFormat))); - this.input.trigger('input'); - } - } else { - this._notifyEvent({ - type: DateTimePicker.Event.CHANGE, - date: targetMoment, - oldDate: oldDate, - isClear: isClear, - isInvalid: isInvalid, - isDateUpdateThroughDateOptionFromClientCode: isDateUpdateThroughDateOptionFromClientCode, - isInit: this.isInit - }); - } - - this._notifyEvent({ - type: DateTimePicker.Event.ERROR, - date: targetMoment, - oldDate: oldDate - }); - } - }; - - _proto._change = function _change(e) { - var val = $(e.target).val().trim(), - parsedDate = val ? this._parseInputDate(val) : null; - - this._setValue(parsedDate, 0); - - e.stopImmediatePropagation(); - return false; - } //noinspection JSMethodCanBeStatic - ; - - _proto._getOptions = function _getOptions(options) { - options = $.extend(true, {}, Default, options && options.icons && options.icons.type === 'feather' ? { - icons: defaultFeatherIcons - } : {}, options); - return options; - }; - - _proto._hasTimeZone = function _hasTimeZone() { - return moment.tz !== undefined && this._options.timeZone !== undefined && this._options.timeZone !== null && this._options.timeZone !== ''; - }; - - _proto._isEnabled = function _isEnabled(granularity) { - if (typeof granularity !== 'string' || granularity.length > 1) { - throw new TypeError('isEnabled expects a single character string parameter'); - } - - switch (granularity) { - case 'y': - return this.actualFormat.indexOf('Y') !== -1; - - case 'M': - return this.actualFormat.indexOf('M') !== -1; - - case 'd': - return this.actualFormat.toLowerCase().indexOf('d') !== -1; - - case 'h': - case 'H': - return this.actualFormat.toLowerCase().indexOf('h') !== -1; - - case 'm': - return this.actualFormat.indexOf('m') !== -1; - - case 's': - return this.actualFormat.indexOf('s') !== -1; - - case 'a': - case 'A': - return this.actualFormat.toLowerCase().indexOf('a') !== -1; - - default: - return false; - } - }; - - _proto._hasTime = function _hasTime() { - return this._isEnabled('h') || this._isEnabled('m') || this._isEnabled('s'); - }; - - _proto._hasDate = function _hasDate() { - return this._isEnabled('y') || this._isEnabled('M') || this._isEnabled('d'); - }; - - _proto._dataToOptions = function _dataToOptions() { - var eData = this._element.data(); - - var dataOptions = {}; - - if (eData.dateOptions && eData.dateOptions instanceof Object) { - dataOptions = $.extend(true, dataOptions, eData.dateOptions); - } - - $.each(this._options, function (key) { - var attributeName = "date" + key.charAt(0).toUpperCase() + key.slice(1); //todo data api key - - if (eData[attributeName] !== undefined) { - dataOptions[key] = eData[attributeName]; - } else { - delete dataOptions[key]; - } - }); - return dataOptions; - }; - - _proto._format = function _format() { - return this._options.format || 'YYYY-MM-DD HH:mm'; - }; - - _proto._areSameDates = function _areSameDates(a, b) { - var format = this._format(); - - return a && b && (a.isSame(b) || moment(a.format(format), format).isSame(moment(b.format(format), format))); - }; - - _proto._notifyEvent = function _notifyEvent(e) { - if (e.type === DateTimePicker.Event.CHANGE) { - this._notifyChangeEventContext = this._notifyChangeEventContext || 0; - this._notifyChangeEventContext++; - - if (e.date && this._areSameDates(e.date, e.oldDate) || !e.isClear && !e.date && !e.oldDate || this._notifyChangeEventContext > 1) { - this._notifyChangeEventContext = void 0; - return; - } - - this._handlePromptTimeIfNeeded(e); - } - - this._element.trigger(e); - - this._notifyChangeEventContext = void 0; - }; - - _proto._handlePromptTimeIfNeeded = function _handlePromptTimeIfNeeded(e) { - if (this._options.promptTimeOnDateChange) { - if (!e.oldDate && this._options.useCurrent) { - // First time ever. If useCurrent option is set to true (default), do nothing - // because the first date is selected automatically. - return; - } else if (e.oldDate && e.date && (e.oldDate.format('YYYY-MM-DD') === e.date.format('YYYY-MM-DD') || e.oldDate.format('YYYY-MM-DD') !== e.date.format('YYYY-MM-DD') && e.oldDate.format('HH:mm:ss') !== e.date.format('HH:mm:ss'))) { - // Date didn't change (time did) or date changed because time did. - return; - } - - var that = this; - clearTimeout(this._currentPromptTimeTimeout); - this._currentPromptTimeTimeout = setTimeout(function () { - if (that.widget) { - that.widget.find('[data-action="togglePicker"]').click(); - } - }, this._options.promptTimeOnDateChangeTransitionDelay); - } - }; - - _proto._viewUpdate = function _viewUpdate(e) { - if (e === 'y') { - e = 'YYYY'; - } - - this._notifyEvent({ - type: DateTimePicker.Event.UPDATE, - change: e, - viewDate: this._viewDate.clone() - }); - }; - - _proto._showMode = function _showMode(dir) { - if (!this.widget) { - return; - } - - if (dir) { - this.currentViewMode = Math.max(this.MinViewModeNumber, Math.min(3, this.currentViewMode + dir)); - } - - this.widget.find('.datepicker > div').hide().filter(".datepicker-" + DatePickerModes[this.currentViewMode].CLASS_NAME).show(); - }; - - _proto._isInDisabledDates = function _isInDisabledDates(testDate) { - return this._options.disabledDates[testDate.format('YYYY-MM-DD')] === true; - }; - - _proto._isInEnabledDates = function _isInEnabledDates(testDate) { - return this._options.enabledDates[testDate.format('YYYY-MM-DD')] === true; - }; - - _proto._isInDisabledHours = function _isInDisabledHours(testDate) { - return this._options.disabledHours[testDate.format('H')] === true; - }; - - _proto._isInEnabledHours = function _isInEnabledHours(testDate) { - return this._options.enabledHours[testDate.format('H')] === true; - }; - - _proto._isValid = function _isValid(targetMoment, granularity) { - if (!targetMoment || !targetMoment.isValid()) { - return false; - } - - if (this._options.disabledDates && granularity === 'd' && this._isInDisabledDates(targetMoment)) { - return false; - } - - if (this._options.enabledDates && granularity === 'd' && !this._isInEnabledDates(targetMoment)) { - return false; - } - - if (this._options.minDate && targetMoment.isBefore(this._options.minDate, granularity)) { - return false; - } - - if (this._options.maxDate && targetMoment.isAfter(this._options.maxDate, granularity)) { - return false; - } - - if (this._options.daysOfWeekDisabled && granularity === 'd' && this._options.daysOfWeekDisabled.indexOf(targetMoment.day()) !== -1) { - return false; - } - - if (this._options.disabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && this._isInDisabledHours(targetMoment)) { - return false; - } - - if (this._options.enabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && !this._isInEnabledHours(targetMoment)) { - return false; - } - - if (this._options.disabledTimeIntervals && (granularity === 'h' || granularity === 'm' || granularity === 's')) { - var found = false; - $.each(this._options.disabledTimeIntervals, function () { - if (targetMoment.isBetween(this[0], this[1])) { - found = true; - return false; - } - }); - - if (found) { - return false; - } - } - - return true; - }; - - _proto._parseInputDate = function _parseInputDate(inputDate, _temp) { - var _ref = _temp === void 0 ? {} : _temp, - _ref$isPickerShow = _ref.isPickerShow, - isPickerShow = _ref$isPickerShow === void 0 ? false : _ref$isPickerShow; - - if (this._options.parseInputDate === undefined || isPickerShow) { - if (!moment.isMoment(inputDate)) { - inputDate = this.getMoment(inputDate); - } - } else { - inputDate = this._options.parseInputDate(inputDate); - } //inputDate.locale(this.options.locale); - - - return inputDate; - }; - - _proto._keydown = function _keydown(e) { - var handler = null, - index, - index2, - keyBindKeys, - allModifiersPressed; - var pressedKeys = [], - pressedModifiers = {}, - currentKey = e.which, - pressed = 'p'; - keyState[currentKey] = pressed; - - for (index in keyState) { - if (keyState.hasOwnProperty(index) && keyState[index] === pressed) { - pressedKeys.push(index); - - if (parseInt(index, 10) !== currentKey) { - pressedModifiers[index] = true; - } - } - } - - for (index in this._options.keyBinds) { - if (this._options.keyBinds.hasOwnProperty(index) && typeof this._options.keyBinds[index] === 'function') { - keyBindKeys = index.split(' '); - - if (keyBindKeys.length === pressedKeys.length && KeyMap[currentKey] === keyBindKeys[keyBindKeys.length - 1]) { - allModifiersPressed = true; - - for (index2 = keyBindKeys.length - 2; index2 >= 0; index2--) { - if (!(KeyMap[keyBindKeys[index2]] in pressedModifiers)) { - allModifiersPressed = false; - break; - } - } - - if (allModifiersPressed) { - handler = this._options.keyBinds[index]; - break; - } - } - } - } - - if (handler) { - if (handler.call(this)) { - e.stopPropagation(); - e.preventDefault(); - } - } - } //noinspection JSMethodCanBeStatic,SpellCheckingInspection - ; - - _proto._keyup = function _keyup(e) { - keyState[e.which] = 'r'; - - if (keyPressHandled[e.which]) { - keyPressHandled[e.which] = false; - e.stopPropagation(); - e.preventDefault(); - } - }; - - _proto._indexGivenDates = function _indexGivenDates(givenDatesArray) { - // Store given enabledDates and disabledDates as keys. - // This way we can check their existence in O(1) time instead of looping through whole array. - // (for example: options.enabledDates['2014-02-27'] === true) - var givenDatesIndexed = {}, - self = this; - $.each(givenDatesArray, function () { - var dDate = self._parseInputDate(this); - - if (dDate.isValid()) { - givenDatesIndexed[dDate.format('YYYY-MM-DD')] = true; - } - }); - return Object.keys(givenDatesIndexed).length ? givenDatesIndexed : false; - }; - - _proto._indexGivenHours = function _indexGivenHours(givenHoursArray) { - // Store given enabledHours and disabledHours as keys. - // This way we can check their existence in O(1) time instead of looping through whole array. - // (for example: options.enabledHours['2014-02-27'] === true) - var givenHoursIndexed = {}; - $.each(givenHoursArray, function () { - givenHoursIndexed[this] = true; - }); - return Object.keys(givenHoursIndexed).length ? givenHoursIndexed : false; - }; - - _proto._initFormatting = function _initFormatting() { - var format = this._options.format || 'L LT', - self = this; - this.actualFormat = format.replace(/(\[[^\[]*])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput) { - return (self.isInitFormatting && self._options.date === null ? self.getMoment() : self._dates[0]).localeData().longDateFormat(formatInput) || formatInput; //todo taking the first date should be ok - }); - this.parseFormats = this._options.extraFormats ? this._options.extraFormats.slice() : []; - - if (this.parseFormats.indexOf(format) < 0 && this.parseFormats.indexOf(this.actualFormat) < 0) { - this.parseFormats.push(this.actualFormat); - } - - this.use24Hours = this.actualFormat.toLowerCase().indexOf('a') < 1 && this.actualFormat.replace(/\[.*?]/g, '').indexOf('h') < 1; - - if (this._isEnabled('y')) { - this.MinViewModeNumber = 2; - } - - if (this._isEnabled('M')) { - this.MinViewModeNumber = 1; - } - - if (this._isEnabled('d')) { - this.MinViewModeNumber = 0; - } - - this.currentViewMode = Math.max(this.MinViewModeNumber, this.currentViewMode); - - if (!this.unset) { - this._setValue(this._dates[0], 0); - } - }; - - _proto._getLastPickedDate = function _getLastPickedDate() { - var lastPickedDate = this._dates[this._getLastPickedDateIndex()]; - - if (!lastPickedDate && this._options.allowMultidate) { - lastPickedDate = moment(new Date()); - } - - return lastPickedDate; - }; - - _proto._getLastPickedDateIndex = function _getLastPickedDateIndex() { - return this._dates.length - 1; - } //public - ; - - _proto.getMoment = function getMoment(d) { - var returnMoment; - - if (d === undefined || d === null) { - // TODO: Should this use format? - returnMoment = moment().clone().locale(this._options.locale); - } else if (this._hasTimeZone()) { - // There is a string to parse and a default time zone - // parse with the tz function which takes a default time zone if it is not in the format string - returnMoment = moment.tz(d, this.parseFormats, this._options.locale, this._options.useStrict, this._options.timeZone); - } else { - returnMoment = moment(d, this.parseFormats, this._options.locale, this._options.useStrict); - } - - if (this._hasTimeZone()) { - returnMoment.tz(this._options.timeZone); - } - - return returnMoment; - }; - - _proto.toggle = function toggle() { - return this.widget ? this.hide() : this.show(); - }; - - _proto.readonly = function readonly(_readonly) { - if (arguments.length === 0) { - return this._options.readonly; - } - - if (typeof _readonly !== 'boolean') { - throw new TypeError('readonly() expects a boolean parameter'); - } - - this._options.readonly = _readonly; - - if (this.input !== undefined) { - this.input.prop('readonly', this._options.readonly); - } - - if (this.widget) { - this.hide(); - this.show(); - } - }; - - _proto.ignoreReadonly = function ignoreReadonly(_ignoreReadonly) { - if (arguments.length === 0) { - return this._options.ignoreReadonly; - } - - if (typeof _ignoreReadonly !== 'boolean') { - throw new TypeError('ignoreReadonly() expects a boolean parameter'); - } - - this._options.ignoreReadonly = _ignoreReadonly; - }; - - _proto.options = function options(newOptions) { - if (arguments.length === 0) { - return $.extend(true, {}, this._options); - } - - if (!(newOptions instanceof Object)) { - throw new TypeError('options() this.options parameter should be an object'); - } - - $.extend(true, this._options, newOptions); - var self = this, - optionsKeys = Object.keys(this._options).sort(optionsSortFn); - $.each(optionsKeys, function (i, key) { - var value = self._options[key]; - - if (self[key] !== undefined) { - if (self.isInit && key === 'date') { - self.hasInitDate = true; - self.initDate = value; - return; - } - - self[key](value); - } - }); - }; - - _proto.date = function date(newDate, index) { - index = index || 0; - - if (arguments.length === 0) { - if (this.unset) { - return null; - } - - if (this._options.allowMultidate) { - return this._dates.join(this._options.multidateSeparator); - } else { - return this._dates[index].clone(); - } - } - - if (newDate !== null && typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) { - throw new TypeError('date() parameter must be one of [null, string, moment or Date]'); - } - - if (typeof newDate === 'string' && isValidDateTimeStr(newDate)) { - newDate = new Date(newDate); - } - - this._setValue(newDate === null ? null : this._parseInputDate(newDate), index); - }; - - _proto.updateOnlyThroughDateOption = function updateOnlyThroughDateOption(_updateOnlyThroughDateOption) { - if (typeof _updateOnlyThroughDateOption !== 'boolean') { - throw new TypeError('updateOnlyThroughDateOption() expects a boolean parameter'); - } - - this._options.updateOnlyThroughDateOption = _updateOnlyThroughDateOption; - }; - - _proto.format = function format(newFormat) { - if (arguments.length === 0) { - return this._options.format; - } - - if (typeof newFormat !== 'string' && (typeof newFormat !== 'boolean' || newFormat !== false)) { - throw new TypeError("format() expects a string or boolean:false parameter " + newFormat); - } - - this._options.format = newFormat; - - if (this.actualFormat) { - this._initFormatting(); // reinitialize formatting - - } - }; - - _proto.timeZone = function timeZone(newZone) { - if (arguments.length === 0) { - return this._options.timeZone; - } - - if (typeof newZone !== 'string') { - throw new TypeError('newZone() expects a string parameter'); - } - - this._options.timeZone = newZone; - }; - - _proto.dayViewHeaderFormat = function dayViewHeaderFormat(newFormat) { - if (arguments.length === 0) { - return this._options.dayViewHeaderFormat; - } - - if (typeof newFormat !== 'string') { - throw new TypeError('dayViewHeaderFormat() expects a string parameter'); - } - - this._options.dayViewHeaderFormat = newFormat; - }; - - _proto.extraFormats = function extraFormats(formats) { - if (arguments.length === 0) { - return this._options.extraFormats; - } - - if (formats !== false && !(formats instanceof Array)) { - throw new TypeError('extraFormats() expects an array or false parameter'); - } - - this._options.extraFormats = formats; - - if (this.parseFormats) { - this._initFormatting(); // reinit formatting - - } - }; - - _proto.disabledDates = function disabledDates(dates) { - if (arguments.length === 0) { - return this._options.disabledDates ? $.extend({}, this._options.disabledDates) : this._options.disabledDates; - } - - if (!dates) { - this._options.disabledDates = false; - - this._update(); - - return true; - } - - if (!(dates instanceof Array)) { - throw new TypeError('disabledDates() expects an array parameter'); - } - - this._options.disabledDates = this._indexGivenDates(dates); - this._options.enabledDates = false; - - this._update(); - }; - - _proto.enabledDates = function enabledDates(dates) { - if (arguments.length === 0) { - return this._options.enabledDates ? $.extend({}, this._options.enabledDates) : this._options.enabledDates; - } - - if (!dates) { - this._options.enabledDates = false; - - this._update(); - - return true; - } - - if (!(dates instanceof Array)) { - throw new TypeError('enabledDates() expects an array parameter'); - } - - this._options.enabledDates = this._indexGivenDates(dates); - this._options.disabledDates = false; - - this._update(); - }; - - _proto.daysOfWeekDisabled = function daysOfWeekDisabled(_daysOfWeekDisabled) { - if (arguments.length === 0) { - return this._options.daysOfWeekDisabled.splice(0); - } - - if (typeof _daysOfWeekDisabled === 'boolean' && !_daysOfWeekDisabled) { - this._options.daysOfWeekDisabled = false; - - this._update(); - - return true; - } - - if (!(_daysOfWeekDisabled instanceof Array)) { - throw new TypeError('daysOfWeekDisabled() expects an array parameter'); - } - - this._options.daysOfWeekDisabled = _daysOfWeekDisabled.reduce(function (previousValue, currentValue) { - currentValue = parseInt(currentValue, 10); - - if (currentValue > 6 || currentValue < 0 || isNaN(currentValue)) { - return previousValue; - } - - if (previousValue.indexOf(currentValue) === -1) { - previousValue.push(currentValue); - } - - return previousValue; - }, []).sort(); - - if (this._options.useCurrent && !this._options.keepInvalid) { - for (var i = 0; i < this._dates.length; i++) { - var tries = 0; - - while (!this._isValid(this._dates[i], 'd')) { - this._dates[i].add(1, 'd'); - - if (tries === 31) { - throw 'Tried 31 times to find a valid date'; - } - - tries++; - } - - this._setValue(this._dates[i], i); - } - } - - this._update(); - }; - - _proto.maxDate = function maxDate(_maxDate) { - if (arguments.length === 0) { - return this._options.maxDate ? this._options.maxDate.clone() : this._options.maxDate; - } - - if (typeof _maxDate === 'boolean' && _maxDate === false) { - this._options.maxDate = false; - - this._update(); - - return true; - } - - if (typeof _maxDate === 'string') { - if (_maxDate === 'now' || _maxDate === 'moment') { - _maxDate = this.getMoment(); - } - } - - var parsedDate = this._parseInputDate(_maxDate); - - if (!parsedDate.isValid()) { - throw new TypeError("maxDate() Could not parse date parameter: " + _maxDate); - } - - if (this._options.minDate && parsedDate.isBefore(this._options.minDate)) { - throw new TypeError("maxDate() date parameter is before this.options.minDate: " + parsedDate.format(this.actualFormat)); - } - - this._options.maxDate = parsedDate; - - for (var i = 0; i < this._dates.length; i++) { - if (this._options.useCurrent && !this._options.keepInvalid && this._dates[i].isAfter(_maxDate)) { - this._setValue(this._options.maxDate, i); - } - } - - if (this._viewDate.isAfter(parsedDate)) { - this._viewDate = parsedDate.clone().subtract(this._options.stepping, 'm'); - } - - this._update(); - }; - - _proto.minDate = function minDate(_minDate) { - if (arguments.length === 0) { - return this._options.minDate ? this._options.minDate.clone() : this._options.minDate; - } - - if (typeof _minDate === 'boolean' && _minDate === false) { - this._options.minDate = false; - - this._update(); - - return true; - } - - if (typeof _minDate === 'string') { - if (_minDate === 'now' || _minDate === 'moment') { - _minDate = this.getMoment(); - } - } - - var parsedDate = this._parseInputDate(_minDate); - - if (!parsedDate.isValid()) { - throw new TypeError("minDate() Could not parse date parameter: " + _minDate); - } - - if (this._options.maxDate && parsedDate.isAfter(this._options.maxDate)) { - throw new TypeError("minDate() date parameter is after this.options.maxDate: " + parsedDate.format(this.actualFormat)); - } - - this._options.minDate = parsedDate; - - for (var i = 0; i < this._dates.length; i++) { - if (this._options.useCurrent && !this._options.keepInvalid && this._dates[i].isBefore(_minDate)) { - this._setValue(this._options.minDate, i); - } - } - - if (this._viewDate.isBefore(parsedDate)) { - this._viewDate = parsedDate.clone().add(this._options.stepping, 'm'); - } - - this._update(); - }; - - _proto.defaultDate = function defaultDate(_defaultDate) { - if (arguments.length === 0) { - return this._options.defaultDate ? this._options.defaultDate.clone() : this._options.defaultDate; - } - - if (!_defaultDate) { - this._options.defaultDate = false; - return true; - } - - if (typeof _defaultDate === 'string') { - if (_defaultDate === 'now' || _defaultDate === 'moment') { - _defaultDate = this.getMoment(); - } else { - _defaultDate = this.getMoment(_defaultDate); - } - } - - var parsedDate = this._parseInputDate(_defaultDate); - - if (!parsedDate.isValid()) { - throw new TypeError("defaultDate() Could not parse date parameter: " + _defaultDate); - } - - if (!this._isValid(parsedDate)) { - throw new TypeError('defaultDate() date passed is invalid according to component setup validations'); - } - - this._options.defaultDate = parsedDate; - - if (this._options.defaultDate && this._options.inline || this.input !== undefined && this.input.val().trim() === '') { - this._setValue(this._options.defaultDate, 0); - } - }; - - _proto.locale = function locale(_locale) { - if (arguments.length === 0) { - return this._options.locale; - } - - if (!moment.localeData(_locale)) { - throw new TypeError("locale() locale " + _locale + " is not loaded from moment locales!"); - } - - this._options.locale = _locale; - - for (var i = 0; i < this._dates.length; i++) { - this._dates[i].locale(this._options.locale); - } - - this._viewDate.locale(this._options.locale); - - if (this.actualFormat) { - this._initFormatting(); // reinitialize formatting - - } - - if (this.widget) { - this.hide(); - this.show(); - } - }; - - _proto.stepping = function stepping(_stepping) { - if (arguments.length === 0) { - return this._options.stepping; - } - - _stepping = parseInt(_stepping, 10); - - if (isNaN(_stepping) || _stepping < 1) { - _stepping = 1; - } - - this._options.stepping = _stepping; - }; - - _proto.useCurrent = function useCurrent(_useCurrent) { - var useCurrentOptions = ['year', 'month', 'day', 'hour', 'minute']; - - if (arguments.length === 0) { - return this._options.useCurrent; - } - - if (typeof _useCurrent !== 'boolean' && typeof _useCurrent !== 'string') { - throw new TypeError('useCurrent() expects a boolean or string parameter'); - } - - if (typeof _useCurrent === 'string' && useCurrentOptions.indexOf(_useCurrent.toLowerCase()) === -1) { - throw new TypeError("useCurrent() expects a string parameter of " + useCurrentOptions.join(', ')); - } - - this._options.useCurrent = _useCurrent; - }; - - _proto.collapse = function collapse(_collapse) { - if (arguments.length === 0) { - return this._options.collapse; - } - - if (typeof _collapse !== 'boolean') { - throw new TypeError('collapse() expects a boolean parameter'); - } - - if (this._options.collapse === _collapse) { - return true; - } - - this._options.collapse = _collapse; - - if (this.widget) { - this.hide(); - this.show(); - } - }; - - _proto.icons = function icons(_icons) { - if (arguments.length === 0) { - return $.extend({}, this._options.icons); - } - - if (!(_icons instanceof Object)) { - throw new TypeError('icons() expects parameter to be an Object'); - } - - $.extend(this._options.icons, _icons); - - if (this.widget) { - this.hide(); - this.show(); - } - }; - - _proto.tooltips = function tooltips(_tooltips) { - if (arguments.length === 0) { - return $.extend({}, this._options.tooltips); - } - - if (!(_tooltips instanceof Object)) { - throw new TypeError('tooltips() expects parameter to be an Object'); - } - - $.extend(this._options.tooltips, _tooltips); - - if (this.widget) { - this.hide(); - this.show(); - } - }; - - _proto.useStrict = function useStrict(_useStrict) { - if (arguments.length === 0) { - return this._options.useStrict; - } - - if (typeof _useStrict !== 'boolean') { - throw new TypeError('useStrict() expects a boolean parameter'); - } - - this._options.useStrict = _useStrict; - }; - - _proto.sideBySide = function sideBySide(_sideBySide) { - if (arguments.length === 0) { - return this._options.sideBySide; - } - - if (typeof _sideBySide !== 'boolean') { - throw new TypeError('sideBySide() expects a boolean parameter'); - } - - this._options.sideBySide = _sideBySide; - - if (this.widget) { - this.hide(); - this.show(); - } - }; - - _proto.viewMode = function viewMode(_viewMode) { - if (arguments.length === 0) { - return this._options.viewMode; - } - - if (typeof _viewMode !== 'string') { - throw new TypeError('viewMode() expects a string parameter'); - } - - if (DateTimePicker.ViewModes.indexOf(_viewMode) === -1) { - throw new TypeError("viewMode() parameter must be one of (" + DateTimePicker.ViewModes.join(', ') + ") value"); - } - - this._options.viewMode = _viewMode; - this.currentViewMode = Math.max(DateTimePicker.ViewModes.indexOf(_viewMode) - 1, this.MinViewModeNumber); - - this._showMode(); - }; - - _proto.calendarWeeks = function calendarWeeks(_calendarWeeks) { - if (arguments.length === 0) { - return this._options.calendarWeeks; - } - - if (typeof _calendarWeeks !== 'boolean') { - throw new TypeError('calendarWeeks() expects parameter to be a boolean value'); - } - - this._options.calendarWeeks = _calendarWeeks; - - this._update(); - }; - - _proto.buttons = function buttons(_buttons) { - if (arguments.length === 0) { - return $.extend({}, this._options.buttons); - } - - if (!(_buttons instanceof Object)) { - throw new TypeError('buttons() expects parameter to be an Object'); - } - - $.extend(this._options.buttons, _buttons); - - if (typeof this._options.buttons.showToday !== 'boolean') { - throw new TypeError('buttons.showToday expects a boolean parameter'); - } - - if (typeof this._options.buttons.showClear !== 'boolean') { - throw new TypeError('buttons.showClear expects a boolean parameter'); - } - - if (typeof this._options.buttons.showClose !== 'boolean') { - throw new TypeError('buttons.showClose expects a boolean parameter'); - } - - if (this.widget) { - this.hide(); - this.show(); - } - }; - - _proto.keepOpen = function keepOpen(_keepOpen) { - if (arguments.length === 0) { - return this._options.keepOpen; - } - - if (typeof _keepOpen !== 'boolean') { - throw new TypeError('keepOpen() expects a boolean parameter'); - } - - this._options.keepOpen = _keepOpen; - }; - - _proto.focusOnShow = function focusOnShow(_focusOnShow) { - if (arguments.length === 0) { - return this._options.focusOnShow; - } - - if (typeof _focusOnShow !== 'boolean') { - throw new TypeError('focusOnShow() expects a boolean parameter'); - } - - this._options.focusOnShow = _focusOnShow; - }; - - _proto.inline = function inline(_inline) { - if (arguments.length === 0) { - return this._options.inline; - } - - if (typeof _inline !== 'boolean') { - throw new TypeError('inline() expects a boolean parameter'); - } - - this._options.inline = _inline; - }; - - _proto.clear = function clear() { - this._setValue(null); //todo - - }; - - _proto.keyBinds = function keyBinds(_keyBinds) { - if (arguments.length === 0) { - return this._options.keyBinds; - } - - this._options.keyBinds = _keyBinds; - }; - - _proto.debug = function debug(_debug) { - if (typeof _debug !== 'boolean') { - throw new TypeError('debug() expects a boolean parameter'); - } - - this._options.debug = _debug; - }; - - _proto.allowInputToggle = function allowInputToggle(_allowInputToggle) { - if (arguments.length === 0) { - return this._options.allowInputToggle; - } - - if (typeof _allowInputToggle !== 'boolean') { - throw new TypeError('allowInputToggle() expects a boolean parameter'); - } - - this._options.allowInputToggle = _allowInputToggle; - }; - - _proto.keepInvalid = function keepInvalid(_keepInvalid) { - if (arguments.length === 0) { - return this._options.keepInvalid; - } - - if (typeof _keepInvalid !== 'boolean') { - throw new TypeError('keepInvalid() expects a boolean parameter'); - } - - this._options.keepInvalid = _keepInvalid; - }; - - _proto.datepickerInput = function datepickerInput(_datepickerInput) { - if (arguments.length === 0) { - return this._options.datepickerInput; - } - - if (typeof _datepickerInput !== 'string') { - throw new TypeError('datepickerInput() expects a string parameter'); - } - - this._options.datepickerInput = _datepickerInput; - }; - - _proto.parseInputDate = function parseInputDate(_parseInputDate2) { - if (arguments.length === 0) { - return this._options.parseInputDate; - } - - if (typeof _parseInputDate2 !== 'function') { - throw new TypeError('parseInputDate() should be as function'); - } - - this._options.parseInputDate = _parseInputDate2; - }; - - _proto.disabledTimeIntervals = function disabledTimeIntervals(_disabledTimeIntervals) { - if (arguments.length === 0) { - return this._options.disabledTimeIntervals ? $.extend({}, this._options.disabledTimeIntervals) : this._options.disabledTimeIntervals; - } - - if (!_disabledTimeIntervals) { - this._options.disabledTimeIntervals = false; - - this._update(); - - return true; - } - - if (!(_disabledTimeIntervals instanceof Array)) { - throw new TypeError('disabledTimeIntervals() expects an array parameter'); - } - - this._options.disabledTimeIntervals = _disabledTimeIntervals; - - this._update(); - }; - - _proto.disabledHours = function disabledHours(hours) { - if (arguments.length === 0) { - return this._options.disabledHours ? $.extend({}, this._options.disabledHours) : this._options.disabledHours; - } - - if (!hours) { - this._options.disabledHours = false; - - this._update(); - - return true; - } - - if (!(hours instanceof Array)) { - throw new TypeError('disabledHours() expects an array parameter'); - } - - this._options.disabledHours = this._indexGivenHours(hours); - this._options.enabledHours = false; - - if (this._options.useCurrent && !this._options.keepInvalid) { - for (var i = 0; i < this._dates.length; i++) { - var tries = 0; - - while (!this._isValid(this._dates[i], 'h')) { - this._dates[i].add(1, 'h'); - - if (tries === 24) { - throw 'Tried 24 times to find a valid date'; - } - - tries++; - } - - this._setValue(this._dates[i], i); - } - } - - this._update(); - }; - - _proto.enabledHours = function enabledHours(hours) { - if (arguments.length === 0) { - return this._options.enabledHours ? $.extend({}, this._options.enabledHours) : this._options.enabledHours; - } - - if (!hours) { - this._options.enabledHours = false; - - this._update(); - - return true; - } - - if (!(hours instanceof Array)) { - throw new TypeError('enabledHours() expects an array parameter'); - } - - this._options.enabledHours = this._indexGivenHours(hours); - this._options.disabledHours = false; - - if (this._options.useCurrent && !this._options.keepInvalid) { - for (var i = 0; i < this._dates.length; i++) { - var tries = 0; - - while (!this._isValid(this._dates[i], 'h')) { - this._dates[i].add(1, 'h'); - - if (tries === 24) { - throw 'Tried 24 times to find a valid date'; - } - - tries++; - } - - this._setValue(this._dates[i], i); - } - } - - this._update(); - }; - - _proto.viewDate = function viewDate(newDate) { - if (arguments.length === 0) { - return this._viewDate.clone(); - } - - if (!newDate) { - this._viewDate = (this._dates[0] || this.getMoment()).clone(); - return true; - } - - if (typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) { - throw new TypeError('viewDate() parameter must be one of [string, moment or Date]'); - } - - this._viewDate = this._parseInputDate(newDate); - - this._update(); - - this._viewUpdate(DatePickerModes[this.currentViewMode] && DatePickerModes[this.currentViewMode].NAV_FUNCTION); - }; - - _proto._fillDate = function _fillDate() {}; - - _proto._useFeatherIcons = function _useFeatherIcons() { - return this._options.icons.type === 'feather'; - }; - - _proto.allowMultidate = function allowMultidate(_allowMultidate) { - if (typeof _allowMultidate !== 'boolean') { - throw new TypeError('allowMultidate() expects a boolean parameter'); - } - - this._options.allowMultidate = _allowMultidate; - }; - - _proto.multidateSeparator = function multidateSeparator(_multidateSeparator) { - if (arguments.length === 0) { - return this._options.multidateSeparator; - } - - if (typeof _multidateSeparator !== 'string') { - throw new TypeError('multidateSeparator expects a string parameter'); - } - - this._options.multidateSeparator = _multidateSeparator; - }; - - _createClass(DateTimePicker, null, [{ - key: "NAME", - get: function get() { - return NAME; - } - /** - * @return {string} - */ - - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY; - } - /** - * @return {string} - */ - - }, { - key: "EVENT_KEY", - get: function get() { - return EVENT_KEY; - } - /** - * @return {string} - */ - - }, { - key: "DATA_API_KEY", - get: function get() { - return DATA_API_KEY; - } - }, { - key: "DatePickerModes", - get: function get() { - return DatePickerModes; - } - }, { - key: "ViewModes", - get: function get() { - return ViewModes; - } - }, { - key: "Event", - get: function get() { - return Event; - } - }, { - key: "Selector", - get: function get() { - return Selector; - } - }, { - key: "Default", - get: function get() { - return Default; - }, - set: function set(value) { - Default = value; - } - }, { - key: "ClassName", - get: function get() { - return ClassName; - } - }]); - - return DateTimePicker; - }(); - - return DateTimePicker; -}(jQuery, moment); //noinspection JSUnusedGlobalSymbols - -/* global DateTimePicker */ - -/* global feather */ - - -var TempusDominusBootstrap4 = function ($) { - // eslint-disable-line no-unused-vars - // ReSharper disable once InconsistentNaming - var JQUERY_NO_CONFLICT = $.fn[DateTimePicker.NAME], - verticalModes = ['top', 'bottom', 'auto'], - horizontalModes = ['left', 'right', 'auto'], - toolbarPlacements = ['default', 'top', 'bottom'], - getSelectorFromElement = function getSelectorFromElement($element) { - var selector = $element.data('target'), - $selector; - - if (!selector) { - selector = $element.attr('href') || ''; - selector = /^#[a-z]/i.test(selector) ? selector : null; - } - - $selector = $(selector); - - if ($selector.length === 0) { - return $element; - } - - if (!$selector.data(DateTimePicker.DATA_KEY)) { - $.extend({}, $selector.data(), $(this).data()); - } - - return $selector; - }; // ReSharper disable once InconsistentNaming - - - var TempusDominusBootstrap4 = /*#__PURE__*/function (_DateTimePicker) { - _inheritsLoose(TempusDominusBootstrap4, _DateTimePicker); - - function TempusDominusBootstrap4(element, options) { - var _this; - - _this = _DateTimePicker.call(this, element, options) || this; - - _this._init(); - - return _this; - } - - var _proto2 = TempusDominusBootstrap4.prototype; - - _proto2._init = function _init() { - if (this._element.hasClass('input-group')) { - var datepickerButton = this._element.find('.datepickerbutton'); - - if (datepickerButton.length === 0) { - this.component = this._element.find('[data-toggle="datetimepicker"]'); - } else { - this.component = datepickerButton; - } - } - }; - - _proto2._iconTag = function _iconTag(iconName) { - if (typeof feather !== 'undefined' && this._useFeatherIcons() && feather.icons[iconName]) { - return $('').html(feather.icons[iconName].toSvg()); - } else { - return $('').addClass(iconName); - } - }; - - _proto2._getDatePickerTemplate = function _getDatePickerTemplate() { - var headTemplate = $('').append($('').append($('').addClass('prev').attr('data-action', 'previous').append(this._iconTag(this._options.icons.previous))).append($('').addClass('picker-switch').attr('data-action', 'pickerSwitch').attr('colspan', "" + (this._options.calendarWeeks ? '6' : '5'))).append($('').addClass('next').attr('data-action', 'next').append(this._iconTag(this._options.icons.next)))), - contTemplate = $('').append($('').append($('').attr('colspan', "" + (this._options.calendarWeeks ? '8' : '7')))); - return [$('
').addClass('datepicker-days').append($('').addClass('table table-sm').append(headTemplate).append($(''))), $('
').addClass('datepicker-months').append($('
').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('
').addClass('datepicker-years').append($('
').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('
').addClass('datepicker-decades').append($('
').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone()))]; - }; - - _proto2._getTimePickerMainTemplate = function _getTimePickerMainTemplate() { - var topRow = $(''), - middleRow = $(''), - bottomRow = $(''); - - if (this._isEnabled('h')) { - topRow.append($('
').append($('').attr({ - href: '#', - tabindex: '-1', - 'title': this._options.tooltips.incrementHour - }).addClass('btn').attr('data-action', 'incrementHours').append(this._iconTag(this._options.icons.up)))); - middleRow.append($('').append($('').addClass('timepicker-hour').attr({ - 'data-time-component': 'hours', - 'title': this._options.tooltips.pickHour - }).attr('data-action', 'showHours'))); - bottomRow.append($('').append($('').attr({ - href: '#', - tabindex: '-1', - 'title': this._options.tooltips.decrementHour - }).addClass('btn').attr('data-action', 'decrementHours').append(this._iconTag(this._options.icons.down)))); - } - - if (this._isEnabled('m')) { - if (this._isEnabled('h')) { - topRow.append($('').addClass('separator')); - middleRow.append($('').addClass('separator').html(':')); - bottomRow.append($('').addClass('separator')); - } - - topRow.append($('').append($('').attr({ - href: '#', - tabindex: '-1', - 'title': this._options.tooltips.incrementMinute - }).addClass('btn').attr('data-action', 'incrementMinutes').append(this._iconTag(this._options.icons.up)))); - middleRow.append($('').append($('').addClass('timepicker-minute').attr({ - 'data-time-component': 'minutes', - 'title': this._options.tooltips.pickMinute - }).attr('data-action', 'showMinutes'))); - bottomRow.append($('').append($('').attr({ - href: '#', - tabindex: '-1', - 'title': this._options.tooltips.decrementMinute - }).addClass('btn').attr('data-action', 'decrementMinutes').append(this._iconTag(this._options.icons.down)))); - } - - if (this._isEnabled('s')) { - if (this._isEnabled('m')) { - topRow.append($('').addClass('separator')); - middleRow.append($('').addClass('separator').html(':')); - bottomRow.append($('').addClass('separator')); - } - - topRow.append($('').append($('').attr({ - href: '#', - tabindex: '-1', - 'title': this._options.tooltips.incrementSecond - }).addClass('btn').attr('data-action', 'incrementSeconds').append(this._iconTag(this._options.icons.up)))); - middleRow.append($('').append($('').addClass('timepicker-second').attr({ - 'data-time-component': 'seconds', - 'title': this._options.tooltips.pickSecond - }).attr('data-action', 'showSeconds'))); - bottomRow.append($('').append($('').attr({ - href: '#', - tabindex: '-1', - 'title': this._options.tooltips.decrementSecond - }).addClass('btn').attr('data-action', 'decrementSeconds').append(this._iconTag(this._options.icons.down)))); - } - - if (!this.use24Hours) { - topRow.append($('').addClass('separator')); - middleRow.append($('').append($('').addClass('separator')); - } - - return $('
').addClass('timepicker-picker').append($('').addClass('table-condensed').append([topRow, middleRow, bottomRow])); - }; - - _proto2._getTimePickerTemplate = function _getTimePickerTemplate() { - var hoursView = $('
').addClass('timepicker-hours').append($('
').addClass('table-condensed')), - minutesView = $('
').addClass('timepicker-minutes').append($('
').addClass('table-condensed')), - secondsView = $('
').addClass('timepicker-seconds').append($('
').addClass('table-condensed')), - ret = [this._getTimePickerMainTemplate()]; - - if (this._isEnabled('h')) { - ret.push(hoursView); - } - - if (this._isEnabled('m')) { - ret.push(minutesView); - } - - if (this._isEnabled('s')) { - ret.push(secondsView); - } - - return ret; - }; - - _proto2._getToolbar = function _getToolbar() { - var row = []; - - if (this._options.buttons.showToday) { - row.push($('
').append($('').attr({ - href: '#', - tabindex: '-1', - 'data-action': 'today', - 'title': this._options.tooltips.today - }).append(this._iconTag(this._options.icons.today)))); - } - - if (!this._options.sideBySide && this._options.collapse && this._hasDate() && this._hasTime()) { - var title, icon; - - if (this._options.viewMode === 'times') { - title = this._options.tooltips.selectDate; - icon = this._options.icons.date; - } else { - title = this._options.tooltips.selectTime; - icon = this._options.icons.time; - } - - row.push($('').append($('').attr({ - href: '#', - tabindex: '-1', - 'data-action': 'togglePicker', - 'title': title - }).append(this._iconTag(icon)))); - } - - if (this._options.buttons.showClear) { - row.push($('').append($('').attr({ - href: '#', - tabindex: '-1', - 'data-action': 'clear', - 'title': this._options.tooltips.clear - }).append(this._iconTag(this._options.icons.clear)))); - } - - if (this._options.buttons.showClose) { - row.push($('').append($('').attr({ - href: '#', - tabindex: '-1', - 'data-action': 'close', - 'title': this._options.tooltips.close - }).append(this._iconTag(this._options.icons.close)))); - } - - return row.length === 0 ? '' : $('').addClass('table-condensed').append($('').append($('').append(row))); - }; - - _proto2._getTemplate = function _getTemplate() { - var template = $('
').addClass(("bootstrap-datetimepicker-widget dropdown-menu " + (this._options.calendarWeeks ? 'tempusdominus-bootstrap-datetimepicker-widget-with-calendar-weeks' : '') + " " + ((this._useFeatherIcons() ? 'tempusdominus-bootstrap-datetimepicker-widget-with-feather-icons' : '') + " ")).trim()), - dateView = $('
').addClass('datepicker').append(this._getDatePickerTemplate()), - timeView = $('
').addClass('timepicker').append(this._getTimePickerTemplate()), - content = $('
    ').addClass('list-unstyled'), - toolbar = $('
  • ').addClass(("picker-switch" + (this._options.collapse ? ' accordion-toggle' : '') + " " + ("" + (this._useFeatherIcons() ? 'picker-switch-with-feathers-icons' : ''))).trim()).append(this._getToolbar()); - - if (this._options.inline) { - template.removeClass('dropdown-menu'); - } - - if (this.use24Hours) { - template.addClass('usetwentyfour'); - } - - if (this.input !== undefined && this.input.prop('readonly') || this._options.readonly) { - template.addClass('bootstrap-datetimepicker-widget-readonly'); - } - - if (this._isEnabled('s') && !this.use24Hours) { - template.addClass('wider'); - } - - if (this._options.sideBySide && this._hasDate() && this._hasTime()) { - template.addClass('timepicker-sbs'); - - if (this._options.toolbarPlacement === 'top') { - template.append(toolbar); - } - - template.append($('
    ').addClass('row').append(dateView.addClass('col-md-6')).append(timeView.addClass('col-md-6'))); - - if (this._options.toolbarPlacement === 'bottom' || this._options.toolbarPlacement === 'default') { - template.append(toolbar); - } - - return template; - } - - if (this._options.toolbarPlacement === 'top') { - content.append(toolbar); - } - - if (this._hasDate()) { - content.append($('
  • ').addClass(this._options.collapse && this._hasTime() ? 'collapse' : '').addClass(this._options.collapse && this._hasTime() && this._options.viewMode === 'times' ? '' : 'show').append(dateView)); - } - - if (this._options.toolbarPlacement === 'default') { - content.append(toolbar); - } - - if (this._hasTime()) { - content.append($('
  • ').addClass(this._options.collapse && this._hasDate() ? 'collapse' : '').addClass(this._options.collapse && this._hasDate() && this._options.viewMode === 'times' ? 'show' : '').append(timeView)); - } - - if (this._options.toolbarPlacement === 'bottom') { - content.append(toolbar); - } - - return template.append(content); - }; - - _proto2._place = function _place(e) { - var self = e && e.data && e.data.picker || this, - vertical = self._options.widgetPositioning.vertical, - horizontal = self._options.widgetPositioning.horizontal, - parent; - var position = (self.component && self.component.length ? self.component : self._element).position(), - offset = (self.component && self.component.length ? self.component : self._element).offset(); - - if (self._options.widgetParent) { - parent = self._options.widgetParent.append(self.widget); - } else if (self._element.is('input')) { - parent = self._element.after(self.widget).parent(); - } else if (self._options.inline) { - parent = self._element.append(self.widget); - return; - } else { - parent = self._element; - - self._element.children().first().after(self.widget); - } // Top and bottom logic - - - if (vertical === 'auto') { - //noinspection JSValidateTypes - if (offset.top + self.widget.height() * 1.5 >= $(window).height() + $(window).scrollTop() && self.widget.height() + self._element.outerHeight() < offset.top) { - vertical = 'top'; - } else { - vertical = 'bottom'; - } - } // Left and right logic - - - if (horizontal === 'auto') { - if (parent.width() < offset.left + self.widget.outerWidth() / 2 && offset.left + self.widget.outerWidth() > $(window).width()) { - horizontal = 'right'; - } else { - horizontal = 'left'; - } - } - - if (vertical === 'top') { - self.widget.addClass('top').removeClass('bottom'); - } else { - self.widget.addClass('bottom').removeClass('top'); - } - - if (horizontal === 'right') { - self.widget.addClass('float-right'); - } else { - self.widget.removeClass('float-right'); - } // find the first parent element that has a relative css positioning - - - if (parent.css('position') !== 'relative') { - parent = parent.parents().filter(function () { - return $(this).css('position') === 'relative'; - }).first(); - } - - if (parent.length === 0) { - throw new Error('datetimepicker component should be placed within a relative positioned container'); - } - - self.widget.css({ - top: vertical === 'top' ? 'auto' : position.top + self._element.outerHeight() + 'px', - bottom: vertical === 'top' ? parent.outerHeight() - (parent === self._element ? 0 : position.top) + 'px' : 'auto', - left: horizontal === 'left' ? (parent === self._element ? 0 : position.left) + 'px' : 'auto', - right: horizontal === 'left' ? 'auto' : parent.outerWidth() - self._element.outerWidth() - (parent === self._element ? 0 : position.left) + 'px' - }); - }; - - _proto2._fillDow = function _fillDow() { - var row = $('
'), - currentDate = this._viewDate.clone().startOf('w').startOf('d'); - - if (this._options.calendarWeeks === true) { - row.append($(''); - - if (this._options.calendarWeeks) { - row.append(""); - } - - html.push(row); - } - - clsName = ''; - - if (currentDate.isBefore(this._viewDate, 'M')) { - clsName += ' old'; - } - - if (currentDate.isAfter(this._viewDate, 'M')) { - clsName += ' new'; - } - - if (this._options.allowMultidate) { - var index = this._datesFormatted.indexOf(currentDate.format('YYYY-MM-DD')); - - if (index !== -1) { - if (currentDate.isSame(this._datesFormatted[index], 'd') && !this.unset) { - clsName += ' active'; - } - } - } else { - if (currentDate.isSame(this._getLastPickedDate(), 'd') && !this.unset) { - clsName += ' active'; - } - } - - if (!this._isValid(currentDate, 'd')) { - clsName += ' disabled'; - } - - if (currentDate.isSame(this.getMoment(), 'd')) { - clsName += ' today'; - } - - if (currentDate.day() === 0 || currentDate.day() === 6) { - clsName += ' weekend'; - } - - row.append(""); - currentDate.add(1, 'd'); - } - - $('body').addClass('tempusdominus-bootstrap-datetimepicker-widget-day-click'); - $('body').append('
'); - daysView.find('tbody').empty().append(html); - $('body').find('.tempusdominus-bootstrap-datetimepicker-widget-day-click-glass-panel').remove(); - $('body').removeClass('tempusdominus-bootstrap-datetimepicker-widget-day-click'); - - this._updateMonths(); - - this._updateYears(); - - this._updateDecades(); - }; - - _proto2._fillHours = function _fillHours() { - var table = this.widget.find('.timepicker-hours table'), - currentHour = this._viewDate.clone().startOf('d'), - html = []; - - var row = $(''); - - if (this._viewDate.hour() > 11 && !this.use24Hours) { - currentHour.hour(12); - } - - while (currentHour.isSame(this._viewDate, 'd') && (this.use24Hours || this._viewDate.hour() < 12 && currentHour.hour() < 12 || this._viewDate.hour() > 11)) { - if (currentHour.hour() % 4 === 0) { - row = $(''); - html.push(row); - } - - row.append(""); - currentHour.add(1, 'h'); - } - - table.empty().append(html); - }; - - _proto2._fillMinutes = function _fillMinutes() { - var table = this.widget.find('.timepicker-minutes table'), - currentMinute = this._viewDate.clone().startOf('h'), - html = [], - step = this._options.stepping === 1 ? 5 : this._options.stepping; - - var row = $(''); - - while (this._viewDate.isSame(currentMinute, 'h')) { - if (currentMinute.minute() % (step * 4) === 0) { - row = $(''); - html.push(row); - } - - row.append(""); - currentMinute.add(step, 'm'); - } - - table.empty().append(html); - }; - - _proto2._fillSeconds = function _fillSeconds() { - var table = this.widget.find('.timepicker-seconds table'), - currentSecond = this._viewDate.clone().startOf('m'), - html = []; - - var row = $(''); - - while (this._viewDate.isSame(currentSecond, 'm')) { - if (currentSecond.second() % 20 === 0) { - row = $(''); - html.push(row); - } - - row.append(""); - currentSecond.add(5, 's'); - } - - table.empty().append(html); - }; - - _proto2._fillTime = function _fillTime() { - var toggle, newDate; - - var timeComponents = this.widget.find('.timepicker span[data-time-component]'), - lastPickedDate = this._getLastPickedDate(); - - if (!this.use24Hours) { - toggle = this.widget.find('.timepicker [data-action=togglePeriod]'); - newDate = lastPickedDate ? lastPickedDate.clone().add(lastPickedDate.hours() >= 12 ? -12 : 12, 'h') : void 0; - lastPickedDate && toggle.text(lastPickedDate.format('A')); - - if (this._isValid(newDate, 'h')) { - toggle.removeClass('disabled'); - } else { - toggle.addClass('disabled'); - } - } - - lastPickedDate && timeComponents.filter('[data-time-component=hours]').text(lastPickedDate.format("" + (this.use24Hours ? 'HH' : 'hh'))); - lastPickedDate && timeComponents.filter('[data-time-component=minutes]').text(lastPickedDate.format('mm')); - lastPickedDate && timeComponents.filter('[data-time-component=seconds]').text(lastPickedDate.format('ss')); - - this._fillHours(); - - this._fillMinutes(); - - this._fillSeconds(); - }; - - _proto2._doAction = function _doAction(e, action) { - var lastPicked = this._getLastPickedDate(); - - if ($(e.currentTarget).is('.disabled')) { - return false; - } - - action = action || $(e.currentTarget).data('action'); - - switch (action) { - case 'next': - { - var navFnc = DateTimePicker.DatePickerModes[this.currentViewMode].NAV_FUNCTION; - - this._viewDate.add(DateTimePicker.DatePickerModes[this.currentViewMode].NAV_STEP, navFnc); - - this._fillDate(); - - this._viewUpdate(navFnc); - - break; - } - - case 'previous': - { - var _navFnc = DateTimePicker.DatePickerModes[this.currentViewMode].NAV_FUNCTION; - - this._viewDate.subtract(DateTimePicker.DatePickerModes[this.currentViewMode].NAV_STEP, _navFnc); - - this._fillDate(); - - this._viewUpdate(_navFnc); - - break; - } - - case 'pickerSwitch': - this._showMode(1); - - break; - - case 'selectMonth': - { - var month = $(e.target).closest('tbody').find('span').index($(e.target)); - - this._viewDate.month(month); - - if (this.currentViewMode === this.MinViewModeNumber) { - this._setValue(lastPicked.clone().year(this._viewDate.year()).month(this._viewDate.month()), this._getLastPickedDateIndex()); - - if (!this._options.inline) { - this.hide(); - } - } else { - this._showMode(-1); - - this._fillDate(); - } - - this._viewUpdate('M'); - - break; - } - - case 'selectYear': - { - var year = parseInt($(e.target).text(), 10) || 0; - - this._viewDate.year(year); - - if (this.currentViewMode === this.MinViewModeNumber) { - this._setValue(lastPicked.clone().year(this._viewDate.year()), this._getLastPickedDateIndex()); - - if (!this._options.inline) { - this.hide(); - } - } else { - this._showMode(-1); - - this._fillDate(); - } - - this._viewUpdate('YYYY'); - - break; - } - - case 'selectDecade': - { - var _year = parseInt($(e.target).data('selection'), 10) || 0; - - this._viewDate.year(_year); - - if (this.currentViewMode === this.MinViewModeNumber) { - this._setValue(lastPicked.clone().year(this._viewDate.year()), this._getLastPickedDateIndex()); - - if (!this._options.inline) { - this.hide(); - } - } else { - this._showMode(-1); - - this._fillDate(); - } - - this._viewUpdate('YYYY'); - - break; - } - - case 'selectDay': - { - var day = this._viewDate.clone(); - - if ($(e.target).is('.old')) { - day.subtract(1, 'M'); - } - - if ($(e.target).is('.new')) { - day.add(1, 'M'); - } - - var selectDate = day.date(parseInt($(e.target).text(), 10)), - index = 0; - - if (this._options.allowMultidate) { - index = this._datesFormatted.indexOf(selectDate.format('YYYY-MM-DD')); - - if (index !== -1) { - this._setValue(null, index); //deselect multidate - - } else { - this._setValue(selectDate, this._getLastPickedDateIndex() + 1); - } - } else { - this._setValue(selectDate, this._getLastPickedDateIndex()); - } - - if (!this._hasTime() && !this._options.keepOpen && !this._options.inline && !this._options.allowMultidate) { - this.hide(); - } - - break; - } - - case 'incrementHours': - { - if (!lastPicked) { - break; - } - - var newDate = lastPicked.clone().add(1, 'h'); - - if (this._isValid(newDate, 'h')) { - if (this._getLastPickedDateIndex() < 0) { - this.date(newDate); - } - - this._setValue(newDate, this._getLastPickedDateIndex()); - } - - break; - } - - case 'incrementMinutes': - { - if (!lastPicked) { - break; - } - - var _newDate = lastPicked.clone().add(this._options.stepping, 'm'); - - if (this._isValid(_newDate, 'm')) { - if (this._getLastPickedDateIndex() < 0) { - this.date(_newDate); - } - - this._setValue(_newDate, this._getLastPickedDateIndex()); - } - - break; - } - - case 'incrementSeconds': - { - if (!lastPicked) { - break; - } - - var _newDate2 = lastPicked.clone().add(1, 's'); - - if (this._isValid(_newDate2, 's')) { - if (this._getLastPickedDateIndex() < 0) { - this.date(_newDate2); - } - - this._setValue(_newDate2, this._getLastPickedDateIndex()); - } - - break; - } - - case 'decrementHours': - { - if (!lastPicked) { - break; - } - - var _newDate3 = lastPicked.clone().subtract(1, 'h'); - - if (this._isValid(_newDate3, 'h')) { - if (this._getLastPickedDateIndex() < 0) { - this.date(_newDate3); - } - - this._setValue(_newDate3, this._getLastPickedDateIndex()); - } - - break; - } - - case 'decrementMinutes': - { - if (!lastPicked) { - break; - } - - var _newDate4 = lastPicked.clone().subtract(this._options.stepping, 'm'); - - if (this._isValid(_newDate4, 'm')) { - if (this._getLastPickedDateIndex() < 0) { - this.date(_newDate4); - } - - this._setValue(_newDate4, this._getLastPickedDateIndex()); - } - - break; - } - - case 'decrementSeconds': - { - if (!lastPicked) { - break; - } - - var _newDate5 = lastPicked.clone().subtract(1, 's'); - - if (this._isValid(_newDate5, 's')) { - if (this._getLastPickedDateIndex() < 0) { - this.date(_newDate5); - } - - this._setValue(_newDate5, this._getLastPickedDateIndex()); - } - - break; - } - - case 'togglePeriod': - { - this._setValue(lastPicked.clone().add(lastPicked.hours() >= 12 ? -12 : 12, 'h'), this._getLastPickedDateIndex()); - - break; - } - - case 'togglePicker': - { - var $this = $(e.target), - $link = $this.closest('a'), - $parent = $this.closest('ul'), - expanded = $parent.find('.show'), - closed = $parent.find('.collapse:not(.show)'), - $span = $this.is('span') ? $this : $this.find('span'); - var collapseData, inactiveIcon, iconTest; - - if (expanded && expanded.length) { - collapseData = expanded.data('collapse'); - - if (collapseData && collapseData.transitioning) { - return true; - } - - if (expanded.collapse) { - // if collapse plugin is available through bootstrap.js then use it - expanded.collapse('hide'); - closed.collapse('show'); - } else { - // otherwise just toggle in class on the two views - expanded.removeClass('show'); - closed.addClass('show'); - } - - if (this._useFeatherIcons()) { - $link.toggleClass(this._options.icons.time + ' ' + this._options.icons.date); - inactiveIcon = $link.hasClass(this._options.icons.time) ? this._options.icons.date : this._options.icons.time; - $link.html(this._iconTag(inactiveIcon)); - } else { - $span.toggleClass(this._options.icons.time + ' ' + this._options.icons.date); - } - - if (this._useFeatherIcons()) { - iconTest = $link.hasClass(this._options.icons.date); - } else { - iconTest = $span.hasClass(this._options.icons.date); - } - - if (iconTest) { - $link.attr('title', this._options.tooltips.selectDate); - } else { - $link.attr('title', this._options.tooltips.selectTime); - } - } - } - break; - - case 'showPicker': - this.widget.find('.timepicker > div:not(.timepicker-picker)').hide(); - this.widget.find('.timepicker .timepicker-picker').show(); - break; - - case 'showHours': - this.widget.find('.timepicker .timepicker-picker').hide(); - this.widget.find('.timepicker .timepicker-hours').show(); - break; - - case 'showMinutes': - this.widget.find('.timepicker .timepicker-picker').hide(); - this.widget.find('.timepicker .timepicker-minutes').show(); - break; - - case 'showSeconds': - this.widget.find('.timepicker .timepicker-picker').hide(); - this.widget.find('.timepicker .timepicker-seconds').show(); - break; - - case 'selectHour': - { - var hour = parseInt($(e.target).text(), 10); - - if (!this.use24Hours) { - if (lastPicked.hours() >= 12) { - if (hour !== 12) { - hour += 12; - } - } else { - if (hour === 12) { - hour = 0; - } - } - } - - this._setValue(lastPicked.clone().hours(hour), this._getLastPickedDateIndex()); - - if (!this._isEnabled('a') && !this._isEnabled('m') && !this._options.keepOpen && !this._options.inline) { - this.hide(); - } else { - this._doAction(e, 'showPicker'); - } - - break; - } - - case 'selectMinute': - this._setValue(lastPicked.clone().minutes(parseInt($(e.target).text(), 10)), this._getLastPickedDateIndex()); - - if (!this._isEnabled('a') && !this._isEnabled('s') && !this._options.keepOpen && !this._options.inline) { - this.hide(); - } else { - this._doAction(e, 'showPicker'); - } - - break; - - case 'selectSecond': - this._setValue(lastPicked.clone().seconds(parseInt($(e.target).text(), 10)), this._getLastPickedDateIndex()); - - if (!this._isEnabled('a') && !this._options.keepOpen && !this._options.inline) { - this.hide(); - } else { - this._doAction(e, 'showPicker'); - } - - break; - - case 'clear': - this.clear(); - break; - - case 'close': - this.hide(); - break; - - case 'today': - { - var todaysDate = this.getMoment(); - - if (this._isValid(todaysDate, 'd')) { - this._setValue(todaysDate, this._getLastPickedDateIndex()); - } - - break; - } - } - - return false; - } //public - ; - - _proto2.hide = function hide() { - var transitioning = false; - - if (!this.widget) { - return; - } // Ignore event if in the middle of a picker transition - - - this.widget.find('.collapse').each(function () { - var collapseData = $(this).data('collapse'); - - if (collapseData && collapseData.transitioning) { - transitioning = true; - return false; - } - - return true; - }); - - if (transitioning) { - return; - } - - if (this.component && this.component.hasClass('btn')) { - this.component.toggleClass('active'); - } - - this.widget.hide(); - $(window).off('resize', this._place); - this.widget.off('click', '[data-action]'); - this.widget.off('mousedown', false); - this.widget.remove(); - this.widget = false; - - if (this.input !== undefined && this.input.val() !== undefined && this.input.val().trim().length !== 0) { - this._setValue(this._parseInputDate(this.input.val().trim(), { - isPickerShow: false - }), 0); - } - - var lastPickedDate = this._getLastPickedDate(); - - this._notifyEvent({ - type: DateTimePicker.Event.HIDE, - date: this.unset ? null : lastPickedDate ? lastPickedDate.clone() : void 0 - }); - - if (this.input !== undefined) { - this.input.blur(); - } - - this._viewDate = lastPickedDate ? lastPickedDate.clone() : this.getMoment(); - }; - - _proto2.show = function show() { - var currentMoment, - shouldUseCurrentIfUnset = false; - var useCurrentGranularity = { - 'year': function year(m) { - return m.month(0).date(1).hours(0).seconds(0).minutes(0); - }, - 'month': function month(m) { - return m.date(1).hours(0).seconds(0).minutes(0); - }, - 'day': function day(m) { - return m.hours(0).seconds(0).minutes(0); - }, - 'hour': function hour(m) { - return m.seconds(0).minutes(0); - }, - 'minute': function minute(m) { - return m.seconds(0); - } - }; - - if (this.input !== undefined) { - if (this.input.prop('disabled') || !this._options.ignoreReadonly && this.input.prop('readonly') || this.widget) { - return; - } - - if (this.input.val() !== undefined && this.input.val().trim().length !== 0) { - this._setValue(this._parseInputDate(this.input.val().trim(), { - isPickerShow: true - }), 0); - } else { - shouldUseCurrentIfUnset = true; - } - } else { - shouldUseCurrentIfUnset = true; - } - - if (shouldUseCurrentIfUnset && this.unset && this._options.useCurrent) { - currentMoment = this.getMoment(); - - if (typeof this._options.useCurrent === 'string') { - currentMoment = useCurrentGranularity[this._options.useCurrent](currentMoment); - } - - this._setValue(currentMoment, 0); - } - - this.widget = this._getTemplate(); - - this._fillDow(); - - this._fillMonths(); - - this.widget.find('.timepicker-hours').hide(); - this.widget.find('.timepicker-minutes').hide(); - this.widget.find('.timepicker-seconds').hide(); - - this._update(); - - this._showMode(); - - $(window).on('resize', { - picker: this - }, this._place); - this.widget.on('click', '[data-action]', $.proxy(this._doAction, this)); // this handles clicks on the widget - - this.widget.on('mousedown', false); - - if (this.component && this.component.hasClass('btn')) { - this.component.toggleClass('active'); - } - - this._place(); - - this.widget.show(); - - if (this.input !== undefined && this._options.focusOnShow && !this.input.is(':focus')) { - this.input.focus(); - } - - this._notifyEvent({ - type: DateTimePicker.Event.SHOW - }); - }; - - _proto2.destroy = function destroy() { - this.hide(); //todo doc off? - - this._element.removeData(DateTimePicker.DATA_KEY); - - this._element.removeData('date'); - }; - - _proto2.disable = function disable() { - this.hide(); - - if (this.component && this.component.hasClass('btn')) { - this.component.addClass('disabled'); - } - - if (this.input !== undefined) { - this.input.prop('disabled', true); //todo disable this/comp if input is null - } - }; - - _proto2.enable = function enable() { - if (this.component && this.component.hasClass('btn')) { - this.component.removeClass('disabled'); - } - - if (this.input !== undefined) { - this.input.prop('disabled', false); //todo enable comp/this if input is null - } - }; - - _proto2.toolbarPlacement = function toolbarPlacement(_toolbarPlacement) { - if (arguments.length === 0) { - return this._options.toolbarPlacement; - } - - if (typeof _toolbarPlacement !== 'string') { - throw new TypeError('toolbarPlacement() expects a string parameter'); - } - - if (toolbarPlacements.indexOf(_toolbarPlacement) === -1) { - throw new TypeError("toolbarPlacement() parameter must be one of (" + toolbarPlacements.join(', ') + ") value"); - } - - this._options.toolbarPlacement = _toolbarPlacement; - - if (this.widget) { - this.hide(); - this.show(); - } - }; - - _proto2.widgetPositioning = function widgetPositioning(_widgetPositioning) { - if (arguments.length === 0) { - return $.extend({}, this._options.widgetPositioning); - } - - if ({}.toString.call(_widgetPositioning) !== '[object Object]') { - throw new TypeError('widgetPositioning() expects an object variable'); - } - - if (_widgetPositioning.horizontal) { - if (typeof _widgetPositioning.horizontal !== 'string') { - throw new TypeError('widgetPositioning() horizontal variable must be a string'); - } - - _widgetPositioning.horizontal = _widgetPositioning.horizontal.toLowerCase(); - - if (horizontalModes.indexOf(_widgetPositioning.horizontal) === -1) { - throw new TypeError("widgetPositioning() expects horizontal parameter to be one of (" + horizontalModes.join(', ') + ")"); - } - - this._options.widgetPositioning.horizontal = _widgetPositioning.horizontal; - } - - if (_widgetPositioning.vertical) { - if (typeof _widgetPositioning.vertical !== 'string') { - throw new TypeError('widgetPositioning() vertical variable must be a string'); - } - - _widgetPositioning.vertical = _widgetPositioning.vertical.toLowerCase(); - - if (verticalModes.indexOf(_widgetPositioning.vertical) === -1) { - throw new TypeError("widgetPositioning() expects vertical parameter to be one of (" + verticalModes.join(', ') + ")"); - } - - this._options.widgetPositioning.vertical = _widgetPositioning.vertical; - } - - this._update(); - }; - - _proto2.widgetParent = function widgetParent(_widgetParent) { - if (arguments.length === 0) { - return this._options.widgetParent; - } - - if (typeof _widgetParent === 'string') { - _widgetParent = $(_widgetParent); - } - - if (_widgetParent !== null && typeof _widgetParent !== 'string' && !(_widgetParent instanceof $)) { - throw new TypeError('widgetParent() expects a string or a jQuery object parameter'); - } - - this._options.widgetParent = _widgetParent; - - if (this.widget) { - this.hide(); - this.show(); - } - }; - - _proto2.setMultiDate = function setMultiDate(multiDateArray) { - var dateFormat = this._options.format; - this.clear(); - - for (var index = 0; index < multiDateArray.length; index++) { - var date = moment(multiDateArray[index], dateFormat); - - this._setValue(date, index); - } - } //static - ; - - TempusDominusBootstrap4._jQueryHandleThis = function _jQueryHandleThis(me, option, argument) { - var data = $(me).data(DateTimePicker.DATA_KEY); - - if (typeof option === 'object') { - $.extend({}, DateTimePicker.Default, option); - } - - if (!data) { - data = new TempusDominusBootstrap4($(me), option); - $(me).data(DateTimePicker.DATA_KEY, data); - } - - if (typeof option === 'string') { - if (data[option] === undefined) { - throw new Error("No method named \"" + option + "\""); - } - - if (argument === undefined) { - return data[option](); - } else { - if (option === 'date') { - data.isDateUpdateThroughDateOptionFromClientCode = true; - } - - var ret = data[option](argument); - data.isDateUpdateThroughDateOptionFromClientCode = false; - return ret; - } - } - }; - - TempusDominusBootstrap4._jQueryInterface = function _jQueryInterface(option, argument) { - if (this.length === 1) { - return TempusDominusBootstrap4._jQueryHandleThis(this[0], option, argument); - } - - return this.each(function () { - TempusDominusBootstrap4._jQueryHandleThis(this, option, argument); - }); - }; - - return TempusDominusBootstrap4; - }(DateTimePicker); - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - - $(document).on(DateTimePicker.Event.CLICK_DATA_API, DateTimePicker.Selector.DATA_TOGGLE, function () { - var $originalTarget = $(this), - $target = getSelectorFromElement($originalTarget), - config = $target.data(DateTimePicker.DATA_KEY); - - if ($target.length === 0) { - return; - } - - if (config._options.allowInputToggle && $originalTarget.is('input[data-toggle="datetimepicker"]')) { - return; - } - - TempusDominusBootstrap4._jQueryInterface.call($target, 'toggle'); - }).on(DateTimePicker.Event.CHANGE, "." + DateTimePicker.ClassName.INPUT, function (event) { - var $target = getSelectorFromElement($(this)); - - if ($target.length === 0 || event.isInit) { - return; - } - - TempusDominusBootstrap4._jQueryInterface.call($target, '_change', event); - }).on(DateTimePicker.Event.BLUR, "." + DateTimePicker.ClassName.INPUT, function (event) { - var $target = getSelectorFromElement($(this)), - config = $target.data(DateTimePicker.DATA_KEY); - - if ($target.length === 0) { - return; - } - - if (config._options.debug || window.debug) { - return; - } - - TempusDominusBootstrap4._jQueryInterface.call($target, 'hide', event); - }).on(DateTimePicker.Event.KEYDOWN, "." + DateTimePicker.ClassName.INPUT, function (event) { - var $target = getSelectorFromElement($(this)); - - if ($target.length === 0) { - return; - } - - TempusDominusBootstrap4._jQueryInterface.call($target, '_keydown', event); - }).on(DateTimePicker.Event.KEYUP, "." + DateTimePicker.ClassName.INPUT, function (event) { - var $target = getSelectorFromElement($(this)); - - if ($target.length === 0) { - return; - } - - TempusDominusBootstrap4._jQueryInterface.call($target, '_keyup', event); - }).on(DateTimePicker.Event.FOCUS, "." + DateTimePicker.ClassName.INPUT, function (event) { - var $target = getSelectorFromElement($(this)), - config = $target.data(DateTimePicker.DATA_KEY); - - if ($target.length === 0) { - return; - } - - if (!config._options.allowInputToggle) { - return; - } - - TempusDominusBootstrap4._jQueryInterface.call($target, 'show', event); - }); - $.fn[DateTimePicker.NAME] = TempusDominusBootstrap4._jQueryInterface; - $.fn[DateTimePicker.NAME].Constructor = TempusDominusBootstrap4; - - $.fn[DateTimePicker.NAME].noConflict = function () { - $.fn[DateTimePicker.NAME] = JQUERY_NO_CONFLICT; - return TempusDominusBootstrap4._jQueryInterface; - }; - - return TempusDominusBootstrap4; -}(jQuery); - -}(); +/*!@preserve + * Tempus Dominus Bootstrap4 v5.39.0 (https://tempusdominus.github.io/bootstrap-4/) + * Copyright 2016-2020 Jonathan Peterson and contributors + * Licensed under MIT (https://github.com/tempusdominus/bootstrap-3/blob/master/LICENSE) + */ + +if (typeof jQuery === 'undefined') { + throw new Error('Tempus Dominus Bootstrap4\'s requires jQuery. jQuery must be included before Tempus Dominus Bootstrap4\'s JavaScript.'); +} + ++function ($) { + var version = $.fn.jquery.split(' ')[0].split('.'); + if ((version[0] < 2 && version[1] < 9) || (version[0] === 1 && version[1] === 9 && version[2] < 1) || (version[0] >= 4)) { + throw new Error('Tempus Dominus Bootstrap4\'s requires at least jQuery v3.0.0 but less than v4.0.0'); + } +}(jQuery); + + +if (typeof moment === 'undefined') { + throw new Error('Tempus Dominus Bootstrap4\'s requires moment.js. Moment.js must be included before Tempus Dominus Bootstrap4\'s JavaScript.'); +} + +var version = moment.version.split('.') +if ((version[0] <= 2 && version[1] < 17) || (version[0] >= 3)) { + throw new Error('Tempus Dominus Bootstrap4\'s requires at least moment.js v2.17.0 but less than v3.0.0'); +} + ++function () { + +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +// ReSharper disable once InconsistentNaming +var DateTimePicker = function ($, moment) { + function escapeRegExp(text) { + return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); + } + + function isValidDate(date) { + return Object.prototype.toString.call(date) === '[object Date]' && !isNaN(date.getTime()); + } + + function isValidDateTimeStr(str) { + return isValidDate(new Date(str)); + } // ReSharper disable InconsistentNaming + + + var trim = function trim(str) { + return str.replace(/(^\s+)|(\s+$)/g, ''); + }, + NAME = 'datetimepicker', + DATA_KEY = "" + NAME, + EVENT_KEY = "." + DATA_KEY, + DATA_API_KEY = '.data-api', + Selector = { + DATA_TOGGLE: "[data-toggle=\"" + DATA_KEY + "\"]" + }, + ClassName = { + INPUT: NAME + "-input" + }, + Event = { + CHANGE: "change" + EVENT_KEY, + BLUR: "blur" + EVENT_KEY, + KEYUP: "keyup" + EVENT_KEY, + KEYDOWN: "keydown" + EVENT_KEY, + FOCUS: "focus" + EVENT_KEY, + CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY, + //emitted + UPDATE: "update" + EVENT_KEY, + ERROR: "error" + EVENT_KEY, + HIDE: "hide" + EVENT_KEY, + SHOW: "show" + EVENT_KEY + }, + DatePickerModes = [{ + CLASS_NAME: 'days', + NAV_FUNCTION: 'M', + NAV_STEP: 1 + }, { + CLASS_NAME: 'months', + NAV_FUNCTION: 'y', + NAV_STEP: 1 + }, { + CLASS_NAME: 'years', + NAV_FUNCTION: 'y', + NAV_STEP: 10 + }, { + CLASS_NAME: 'decades', + NAV_FUNCTION: 'y', + NAV_STEP: 100 + }], + KeyMap = { + 'up': 38, + 38: 'up', + 'down': 40, + 40: 'down', + 'left': 37, + 37: 'left', + 'right': 39, + 39: 'right', + 'tab': 9, + 9: 'tab', + 'escape': 27, + 27: 'escape', + 'enter': 13, + 13: 'enter', + 'pageUp': 33, + 33: 'pageUp', + 'pageDown': 34, + 34: 'pageDown', + 'shift': 16, + 16: 'shift', + 'control': 17, + 17: 'control', + 'space': 32, + 32: 'space', + 't': 84, + 84: 't', + 'delete': 46, + 46: 'delete' + }, + ViewModes = ['times', 'days', 'months', 'years', 'decades'], + keyState = {}, + keyPressHandled = {}, + optionsSortMap = { + timeZone: -39, + format: -38, + dayViewHeaderFormat: -37, + extraFormats: -36, + stepping: -35, + minDate: -34, + maxDate: -33, + useCurrent: -32, + collapse: -31, + locale: -30, + defaultDate: -29, + disabledDates: -28, + enabledDates: -27, + icons: -26, + tooltips: -25, + useStrict: -24, + sideBySide: -23, + daysOfWeekDisabled: -22, + calendarWeeks: -21, + viewMode: -20, + toolbarPlacement: -19, + buttons: -18, + widgetPositioning: -17, + widgetParent: -16, + ignoreReadonly: -15, + keepOpen: -14, + focusOnShow: -13, + inline: -12, + keepInvalid: -11, + keyBinds: -10, + debug: -9, + allowInputToggle: -8, + disabledTimeIntervals: -7, + disabledHours: -6, + enabledHours: -5, + viewDate: -4, + allowMultidate: -3, + multidateSeparator: -2, + updateOnlyThroughDateOption: -1, + date: 1 + }, + defaultFeatherIcons = { + time: 'clock', + date: 'calendar', + up: 'arrow-up', + down: 'arrow-down', + previous: 'arrow-left', + next: 'arrow-right', + today: 'arrow-down-circle', + clear: 'trash-2', + close: 'x' + }; + + function optionsSortFn(optionKeyA, optionKeyB) { + if (optionsSortMap[optionKeyA] && optionsSortMap[optionKeyB]) { + if (optionsSortMap[optionKeyA] < 0 && optionsSortMap[optionKeyB] < 0) { + return Math.abs(optionsSortMap[optionKeyB]) - Math.abs(optionsSortMap[optionKeyA]); + } else if (optionsSortMap[optionKeyA] < 0) { + return -1; + } else if (optionsSortMap[optionKeyB] < 0) { + return 1; + } + + return optionsSortMap[optionKeyA] - optionsSortMap[optionKeyB]; + } else if (optionsSortMap[optionKeyA]) { + return optionsSortMap[optionKeyA]; + } else if (optionsSortMap[optionKeyB]) { + return optionsSortMap[optionKeyB]; + } + + return 0; + } + + var Default = { + timeZone: '', + format: false, + dayViewHeaderFormat: 'MMMM YYYY', + extraFormats: false, + stepping: 1, + minDate: false, + maxDate: false, + useCurrent: true, + collapse: true, + locale: moment.locale(), + defaultDate: false, + disabledDates: false, + enabledDates: false, + icons: { + type: 'class', + time: 'fa fa-clock-o', + date: 'fa fa-calendar', + up: 'fa fa-arrow-up', + down: 'fa fa-arrow-down', + previous: 'fa fa-chevron-left', + next: 'fa fa-chevron-right', + today: 'fa fa-calendar-check-o', + clear: 'fa fa-trash', + close: 'fa fa-times' + }, + tooltips: { + today: 'Go to today', + clear: 'Clear selection', + close: 'Close the picker', + selectMonth: 'Select Month', + prevMonth: 'Previous Month', + nextMonth: 'Next Month', + selectYear: 'Select Year', + prevYear: 'Previous Year', + nextYear: 'Next Year', + selectDecade: 'Select Decade', + prevDecade: 'Previous Decade', + nextDecade: 'Next Decade', + prevCentury: 'Previous Century', + nextCentury: 'Next Century', + pickHour: 'Pick Hour', + incrementHour: 'Increment Hour', + decrementHour: 'Decrement Hour', + pickMinute: 'Pick Minute', + incrementMinute: 'Increment Minute', + decrementMinute: 'Decrement Minute', + pickSecond: 'Pick Second', + incrementSecond: 'Increment Second', + decrementSecond: 'Decrement Second', + togglePeriod: 'Toggle Period', + selectTime: 'Select Time', + selectDate: 'Select Date' + }, + useStrict: false, + sideBySide: false, + daysOfWeekDisabled: false, + calendarWeeks: false, + viewMode: 'days', + toolbarPlacement: 'default', + buttons: { + showToday: false, + showClear: false, + showClose: false + }, + widgetPositioning: { + horizontal: 'auto', + vertical: 'auto' + }, + widgetParent: null, + readonly: false, + ignoreReadonly: false, + keepOpen: false, + focusOnShow: true, + inline: false, + keepInvalid: false, + keyBinds: { + up: function up() { + if (!this.widget) { + return false; + } + + var d = this._dates[0] || this.getMoment(); + + if (this.widget.find('.datepicker').is(':visible')) { + this.date(d.clone().subtract(7, 'd')); + } else { + this.date(d.clone().add(this.stepping(), 'm')); + } + + return true; + }, + down: function down() { + if (!this.widget) { + this.show(); + return false; + } + + var d = this._dates[0] || this.getMoment(); + + if (this.widget.find('.datepicker').is(':visible')) { + this.date(d.clone().add(7, 'd')); + } else { + this.date(d.clone().subtract(this.stepping(), 'm')); + } + + return true; + }, + 'control up': function controlUp() { + if (!this.widget) { + return false; + } + + var d = this._dates[0] || this.getMoment(); + + if (this.widget.find('.datepicker').is(':visible')) { + this.date(d.clone().subtract(1, 'y')); + } else { + this.date(d.clone().add(1, 'h')); + } + + return true; + }, + 'control down': function controlDown() { + if (!this.widget) { + return false; + } + + var d = this._dates[0] || this.getMoment(); + + if (this.widget.find('.datepicker').is(':visible')) { + this.date(d.clone().add(1, 'y')); + } else { + this.date(d.clone().subtract(1, 'h')); + } + + return true; + }, + left: function left() { + if (!this.widget) { + return false; + } + + var d = this._dates[0] || this.getMoment(); + + if (this.widget.find('.datepicker').is(':visible')) { + this.date(d.clone().subtract(1, 'd')); + } + + return true; + }, + right: function right() { + if (!this.widget) { + return false; + } + + var d = this._dates[0] || this.getMoment(); + + if (this.widget.find('.datepicker').is(':visible')) { + this.date(d.clone().add(1, 'd')); + } + + return true; + }, + pageUp: function pageUp() { + if (!this.widget) { + return false; + } + + var d = this._dates[0] || this.getMoment(); + + if (this.widget.find('.datepicker').is(':visible')) { + this.date(d.clone().subtract(1, 'M')); + } + + return true; + }, + pageDown: function pageDown() { + if (!this.widget) { + return false; + } + + var d = this._dates[0] || this.getMoment(); + + if (this.widget.find('.datepicker').is(':visible')) { + this.date(d.clone().add(1, 'M')); + } + + return true; + }, + enter: function enter() { + if (!this.widget) { + return false; + } + + this.hide(); + return true; + }, + escape: function escape() { + if (!this.widget) { + return false; + } + + this.hide(); + return true; + }, + 'control space': function controlSpace() { + if (!this.widget) { + return false; + } + + if (this.widget.find('.timepicker').is(':visible')) { + this.widget.find('.btn[data-action="togglePeriod"]').click(); + } + + return true; + }, + t: function t() { + if (!this.widget) { + return false; + } + + this.date(this.getMoment()); + return true; + }, + 'delete': function _delete() { + if (!this.widget) { + return false; + } + + this.clear(); + return true; + } + }, + debug: false, + allowInputToggle: false, + disabledTimeIntervals: false, + disabledHours: false, + enabledHours: false, + viewDate: false, + allowMultidate: false, + multidateSeparator: ', ', + updateOnlyThroughDateOption: false, + promptTimeOnDateChange: false, + promptTimeOnDateChangeTransitionDelay: 200 + }; // ReSharper restore InconsistentNaming + // ReSharper disable once DeclarationHides + // ReSharper disable once InconsistentNaming + + var DateTimePicker = /*#__PURE__*/function () { + /** @namespace eData.dateOptions */ + + /** @namespace moment.tz */ + function DateTimePicker(element, options) { + this._options = this._getOptions(options); + this._element = element; + this._dates = []; + this._datesFormatted = []; + this._viewDate = null; + this.unset = true; + this.component = false; + this.widget = false; + this.use24Hours = null; + this.actualFormat = null; + this.parseFormats = null; + this.currentViewMode = null; + this.MinViewModeNumber = 0; + this.isInitFormatting = false; + this.isInit = false; + this.isDateUpdateThroughDateOptionFromClientCode = false; + this.hasInitDate = false; + this.initDate = void 0; + this._notifyChangeEventContext = void 0; + this._currentPromptTimeTimeout = null; + + this._int(); + } + /** + * @return {string} + */ + + + var _proto = DateTimePicker.prototype; + + //private + _proto._int = function _int() { + this.isInit = true; + + var targetInput = this._element.data('target-input'); + + if (this._element.is('input')) { + this.input = this._element; + } else if (targetInput !== undefined) { + if (targetInput === 'nearest') { + this.input = this._element.find('input'); + } else { + this.input = $(targetInput); + } + } + + this._dates = []; + this._dates[0] = this.getMoment(); + this._viewDate = this.getMoment().clone(); + $.extend(true, this._options, this._dataToOptions()); + this.hasInitDate = false; + this.initDate = void 0; + this.options(this._options); + this.isInitFormatting = true; + + this._initFormatting(); + + this.isInitFormatting = false; + + if (this.input !== undefined && this.input.is('input') && this.input.val().trim().length !== 0) { + this._setValue(this._parseInputDate(this.input.val().trim()), 0); + } else if (this._options.defaultDate && this.input !== undefined && this.input.attr('placeholder') === undefined) { + this._setValue(this._options.defaultDate, 0); + } + + if (this.hasInitDate) { + this.date(this.initDate); + } + + if (this._options.inline) { + this.show(); + } + + this.isInit = false; + }; + + _proto._update = function _update() { + if (!this.widget) { + return; + } + + this._fillDate(); + + this._fillTime(); + }; + + _proto._setValue = function _setValue(targetMoment, index) { + var noIndex = typeof index === 'undefined', + isClear = !targetMoment && noIndex, + isDateUpdateThroughDateOptionFromClientCode = this.isDateUpdateThroughDateOptionFromClientCode, + isNotAllowedProgrammaticUpdate = !this.isInit && this._options.updateOnlyThroughDateOption && !isDateUpdateThroughDateOptionFromClientCode; + var outpValue = '', + isInvalid = false, + oldDate = this.unset ? null : this._dates[index]; + + if (!oldDate && !this.unset && noIndex && isClear) { + oldDate = this._dates[this._dates.length - 1]; + } // case of calling setValue(null or false) + + + if (!targetMoment) { + if (isNotAllowedProgrammaticUpdate) { + this._notifyEvent({ + type: DateTimePicker.Event.CHANGE, + date: targetMoment, + oldDate: oldDate, + isClear: isClear, + isInvalid: isInvalid, + isDateUpdateThroughDateOptionFromClientCode: isDateUpdateThroughDateOptionFromClientCode, + isInit: this.isInit + }); + + return; + } + + if (!this._options.allowMultidate || this._dates.length === 1 || isClear) { + this.unset = true; + this._dates = []; + this._datesFormatted = []; + } else { + outpValue = "" + this._element.data('date') + this._options.multidateSeparator; + outpValue = oldDate && outpValue.replace("" + oldDate.format(this.actualFormat) + this._options.multidateSeparator, '').replace("" + this._options.multidateSeparator + this._options.multidateSeparator, '').replace(new RegExp(escapeRegExp(this._options.multidateSeparator) + "\\s*$"), '') || ''; + + this._dates.splice(index, 1); + + this._datesFormatted.splice(index, 1); + } + + outpValue = trim(outpValue); + + if (this.input !== undefined) { + this.input.val(outpValue); + this.input.trigger('input'); + } + + this._element.data('date', outpValue); + + this._notifyEvent({ + type: DateTimePicker.Event.CHANGE, + date: false, + oldDate: oldDate, + isClear: isClear, + isInvalid: isInvalid, + isDateUpdateThroughDateOptionFromClientCode: isDateUpdateThroughDateOptionFromClientCode, + isInit: this.isInit + }); + + this._update(); + + return; + } + + targetMoment = targetMoment.clone().locale(this._options.locale); + + if (this._hasTimeZone()) { + targetMoment.tz(this._options.timeZone); + } + + if (this._options.stepping !== 1) { + targetMoment.minutes(Math.round(targetMoment.minutes() / this._options.stepping) * this._options.stepping).seconds(0); + } + + if (this._isValid(targetMoment)) { + if (isNotAllowedProgrammaticUpdate) { + this._notifyEvent({ + type: DateTimePicker.Event.CHANGE, + date: targetMoment.clone(), + oldDate: oldDate, + isClear: isClear, + isInvalid: isInvalid, + isDateUpdateThroughDateOptionFromClientCode: isDateUpdateThroughDateOptionFromClientCode, + isInit: this.isInit + }); + + return; + } + + this._dates[index] = targetMoment; + this._datesFormatted[index] = targetMoment.format('YYYY-MM-DD'); + this._viewDate = targetMoment.clone(); + + if (this._options.allowMultidate && this._dates.length > 1) { + for (var i = 0; i < this._dates.length; i++) { + outpValue += "" + this._dates[i].format(this.actualFormat) + this._options.multidateSeparator; + } + + outpValue = outpValue.replace(new RegExp(this._options.multidateSeparator + "\\s*$"), ''); + } else { + outpValue = this._dates[index].format(this.actualFormat); + } + + outpValue = trim(outpValue); + + if (this.input !== undefined) { + this.input.val(outpValue); + this.input.trigger('input'); + } + + this._element.data('date', outpValue); + + this.unset = false; + + this._update(); + + this._notifyEvent({ + type: DateTimePicker.Event.CHANGE, + date: this._dates[index].clone(), + oldDate: oldDate, + isClear: isClear, + isInvalid: isInvalid, + isDateUpdateThroughDateOptionFromClientCode: isDateUpdateThroughDateOptionFromClientCode, + isInit: this.isInit + }); + } else { + isInvalid = true; + + if (!this._options.keepInvalid) { + if (this.input !== undefined) { + this.input.val("" + (this.unset ? '' : this._dates[index].format(this.actualFormat))); + this.input.trigger('input'); + } + } else { + this._notifyEvent({ + type: DateTimePicker.Event.CHANGE, + date: targetMoment, + oldDate: oldDate, + isClear: isClear, + isInvalid: isInvalid, + isDateUpdateThroughDateOptionFromClientCode: isDateUpdateThroughDateOptionFromClientCode, + isInit: this.isInit + }); + } + + this._notifyEvent({ + type: DateTimePicker.Event.ERROR, + date: targetMoment, + oldDate: oldDate + }); + } + }; + + _proto._change = function _change(e) { + var val = $(e.target).val().trim(), + parsedDate = val ? this._parseInputDate(val) : null; + + this._setValue(parsedDate, 0); + + e.stopImmediatePropagation(); + return false; + } //noinspection JSMethodCanBeStatic + ; + + _proto._getOptions = function _getOptions(options) { + options = $.extend(true, {}, Default, options && options.icons && options.icons.type === 'feather' ? { + icons: defaultFeatherIcons + } : {}, options); + return options; + }; + + _proto._hasTimeZone = function _hasTimeZone() { + return moment.tz !== undefined && this._options.timeZone !== undefined && this._options.timeZone !== null && this._options.timeZone !== ''; + }; + + _proto._isEnabled = function _isEnabled(granularity) { + if (typeof granularity !== 'string' || granularity.length > 1) { + throw new TypeError('isEnabled expects a single character string parameter'); + } + + switch (granularity) { + case 'y': + return this.actualFormat.indexOf('Y') !== -1; + + case 'M': + return this.actualFormat.indexOf('M') !== -1; + + case 'd': + return this.actualFormat.toLowerCase().indexOf('d') !== -1; + + case 'h': + case 'H': + return this.actualFormat.toLowerCase().indexOf('h') !== -1; + + case 'm': + return this.actualFormat.indexOf('m') !== -1; + + case 's': + return this.actualFormat.indexOf('s') !== -1; + + case 'a': + case 'A': + return this.actualFormat.toLowerCase().indexOf('a') !== -1; + + default: + return false; + } + }; + + _proto._hasTime = function _hasTime() { + return this._isEnabled('h') || this._isEnabled('m') || this._isEnabled('s'); + }; + + _proto._hasDate = function _hasDate() { + return this._isEnabled('y') || this._isEnabled('M') || this._isEnabled('d'); + }; + + _proto._dataToOptions = function _dataToOptions() { + var eData = this._element.data(); + + var dataOptions = {}; + + if (eData.dateOptions && eData.dateOptions instanceof Object) { + dataOptions = $.extend(true, dataOptions, eData.dateOptions); + } + + $.each(this._options, function (key) { + var attributeName = "date" + key.charAt(0).toUpperCase() + key.slice(1); //todo data api key + + if (eData[attributeName] !== undefined) { + dataOptions[key] = eData[attributeName]; + } else { + delete dataOptions[key]; + } + }); + return dataOptions; + }; + + _proto._format = function _format() { + return this._options.format || 'YYYY-MM-DD HH:mm'; + }; + + _proto._areSameDates = function _areSameDates(a, b) { + var format = this._format(); + + return a && b && (a.isSame(b) || moment(a.format(format), format).isSame(moment(b.format(format), format))); + }; + + _proto._notifyEvent = function _notifyEvent(e) { + if (e.type === DateTimePicker.Event.CHANGE) { + this._notifyChangeEventContext = this._notifyChangeEventContext || 0; + this._notifyChangeEventContext++; + + if (e.date && this._areSameDates(e.date, e.oldDate) || !e.isClear && !e.date && !e.oldDate || this._notifyChangeEventContext > 1) { + this._notifyChangeEventContext = void 0; + return; + } + + this._handlePromptTimeIfNeeded(e); + } + + this._element.trigger(e); + + this._notifyChangeEventContext = void 0; + }; + + _proto._handlePromptTimeIfNeeded = function _handlePromptTimeIfNeeded(e) { + if (this._options.promptTimeOnDateChange) { + if (!e.oldDate && this._options.useCurrent) { + // First time ever. If useCurrent option is set to true (default), do nothing + // because the first date is selected automatically. + return; + } else if (e.oldDate && e.date && (e.oldDate.format('YYYY-MM-DD') === e.date.format('YYYY-MM-DD') || e.oldDate.format('YYYY-MM-DD') !== e.date.format('YYYY-MM-DD') && e.oldDate.format('HH:mm:ss') !== e.date.format('HH:mm:ss'))) { + // Date didn't change (time did) or date changed because time did. + return; + } + + var that = this; + clearTimeout(this._currentPromptTimeTimeout); + this._currentPromptTimeTimeout = setTimeout(function () { + if (that.widget) { + that.widget.find('[data-action="togglePicker"]').click(); + } + }, this._options.promptTimeOnDateChangeTransitionDelay); + } + }; + + _proto._viewUpdate = function _viewUpdate(e) { + if (e === 'y') { + e = 'YYYY'; + } + + this._notifyEvent({ + type: DateTimePicker.Event.UPDATE, + change: e, + viewDate: this._viewDate.clone() + }); + }; + + _proto._showMode = function _showMode(dir) { + if (!this.widget) { + return; + } + + if (dir) { + this.currentViewMode = Math.max(this.MinViewModeNumber, Math.min(3, this.currentViewMode + dir)); + } + + this.widget.find('.datepicker > div').hide().filter(".datepicker-" + DatePickerModes[this.currentViewMode].CLASS_NAME).show(); + }; + + _proto._isInDisabledDates = function _isInDisabledDates(testDate) { + return this._options.disabledDates[testDate.format('YYYY-MM-DD')] === true; + }; + + _proto._isInEnabledDates = function _isInEnabledDates(testDate) { + return this._options.enabledDates[testDate.format('YYYY-MM-DD')] === true; + }; + + _proto._isInDisabledHours = function _isInDisabledHours(testDate) { + return this._options.disabledHours[testDate.format('H')] === true; + }; + + _proto._isInEnabledHours = function _isInEnabledHours(testDate) { + return this._options.enabledHours[testDate.format('H')] === true; + }; + + _proto._isValid = function _isValid(targetMoment, granularity) { + if (!targetMoment || !targetMoment.isValid()) { + return false; + } + + if (this._options.disabledDates && granularity === 'd' && this._isInDisabledDates(targetMoment)) { + return false; + } + + if (this._options.enabledDates && granularity === 'd' && !this._isInEnabledDates(targetMoment)) { + return false; + } + + if (this._options.minDate && targetMoment.isBefore(this._options.minDate, granularity)) { + return false; + } + + if (this._options.maxDate && targetMoment.isAfter(this._options.maxDate, granularity)) { + return false; + } + + if (this._options.daysOfWeekDisabled && granularity === 'd' && this._options.daysOfWeekDisabled.indexOf(targetMoment.day()) !== -1) { + return false; + } + + if (this._options.disabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && this._isInDisabledHours(targetMoment)) { + return false; + } + + if (this._options.enabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && !this._isInEnabledHours(targetMoment)) { + return false; + } + + if (this._options.disabledTimeIntervals && (granularity === 'h' || granularity === 'm' || granularity === 's')) { + var found = false; + $.each(this._options.disabledTimeIntervals, function () { + if (targetMoment.isBetween(this[0], this[1])) { + found = true; + return false; + } + }); + + if (found) { + return false; + } + } + + return true; + }; + + _proto._parseInputDate = function _parseInputDate(inputDate, _temp) { + var _ref = _temp === void 0 ? {} : _temp, + _ref$isPickerShow = _ref.isPickerShow, + isPickerShow = _ref$isPickerShow === void 0 ? false : _ref$isPickerShow; + + if (this._options.parseInputDate === undefined || isPickerShow) { + if (!moment.isMoment(inputDate)) { + inputDate = this.getMoment(inputDate); + } + } else { + inputDate = this._options.parseInputDate(inputDate); + } //inputDate.locale(this.options.locale); + + + return inputDate; + }; + + _proto._keydown = function _keydown(e) { + var handler = null, + index, + index2, + keyBindKeys, + allModifiersPressed; + var pressedKeys = [], + pressedModifiers = {}, + currentKey = e.which, + pressed = 'p'; + keyState[currentKey] = pressed; + + for (index in keyState) { + if (keyState.hasOwnProperty(index) && keyState[index] === pressed) { + pressedKeys.push(index); + + if (parseInt(index, 10) !== currentKey) { + pressedModifiers[index] = true; + } + } + } + + for (index in this._options.keyBinds) { + if (this._options.keyBinds.hasOwnProperty(index) && typeof this._options.keyBinds[index] === 'function') { + keyBindKeys = index.split(' '); + + if (keyBindKeys.length === pressedKeys.length && KeyMap[currentKey] === keyBindKeys[keyBindKeys.length - 1]) { + allModifiersPressed = true; + + for (index2 = keyBindKeys.length - 2; index2 >= 0; index2--) { + if (!(KeyMap[keyBindKeys[index2]] in pressedModifiers)) { + allModifiersPressed = false; + break; + } + } + + if (allModifiersPressed) { + handler = this._options.keyBinds[index]; + break; + } + } + } + } + + if (handler) { + if (handler.call(this)) { + e.stopPropagation(); + e.preventDefault(); + } + } + } //noinspection JSMethodCanBeStatic,SpellCheckingInspection + ; + + _proto._keyup = function _keyup(e) { + keyState[e.which] = 'r'; + + if (keyPressHandled[e.which]) { + keyPressHandled[e.which] = false; + e.stopPropagation(); + e.preventDefault(); + } + }; + + _proto._indexGivenDates = function _indexGivenDates(givenDatesArray) { + // Store given enabledDates and disabledDates as keys. + // This way we can check their existence in O(1) time instead of looping through whole array. + // (for example: options.enabledDates['2014-02-27'] === true) + var givenDatesIndexed = {}, + self = this; + $.each(givenDatesArray, function () { + var dDate = self._parseInputDate(this); + + if (dDate.isValid()) { + givenDatesIndexed[dDate.format('YYYY-MM-DD')] = true; + } + }); + return Object.keys(givenDatesIndexed).length ? givenDatesIndexed : false; + }; + + _proto._indexGivenHours = function _indexGivenHours(givenHoursArray) { + // Store given enabledHours and disabledHours as keys. + // This way we can check their existence in O(1) time instead of looping through whole array. + // (for example: options.enabledHours['2014-02-27'] === true) + var givenHoursIndexed = {}; + $.each(givenHoursArray, function () { + givenHoursIndexed[this] = true; + }); + return Object.keys(givenHoursIndexed).length ? givenHoursIndexed : false; + }; + + _proto._initFormatting = function _initFormatting() { + var format = this._options.format || 'L LT', + self = this; + this.actualFormat = format.replace(/(\[[^\[]*])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput) { + return (self.isInitFormatting && self._options.date === null ? self.getMoment() : self._dates[0]).localeData().longDateFormat(formatInput) || formatInput; //todo taking the first date should be ok + }); + this.parseFormats = this._options.extraFormats ? this._options.extraFormats.slice() : []; + + if (this.parseFormats.indexOf(format) < 0 && this.parseFormats.indexOf(this.actualFormat) < 0) { + this.parseFormats.push(this.actualFormat); + } + + this.use24Hours = this.actualFormat.toLowerCase().indexOf('a') < 1 && this.actualFormat.replace(/\[.*?]/g, '').indexOf('h') < 1; + + if (this._isEnabled('y')) { + this.MinViewModeNumber = 2; + } + + if (this._isEnabled('M')) { + this.MinViewModeNumber = 1; + } + + if (this._isEnabled('d')) { + this.MinViewModeNumber = 0; + } + + this.currentViewMode = Math.max(this.MinViewModeNumber, this.currentViewMode); + + if (!this.unset) { + this._setValue(this._dates[0], 0); + } + }; + + _proto._getLastPickedDate = function _getLastPickedDate() { + var lastPickedDate = this._dates[this._getLastPickedDateIndex()]; + + if (!lastPickedDate && this._options.allowMultidate) { + lastPickedDate = moment(new Date()); + } + + return lastPickedDate; + }; + + _proto._getLastPickedDateIndex = function _getLastPickedDateIndex() { + return this._dates.length - 1; + } //public + ; + + _proto.getMoment = function getMoment(d) { + var returnMoment; + + if (d === undefined || d === null) { + // TODO: Should this use format? + returnMoment = moment().clone().locale(this._options.locale); + } else if (this._hasTimeZone()) { + // There is a string to parse and a default time zone + // parse with the tz function which takes a default time zone if it is not in the format string + returnMoment = moment.tz(d, this.parseFormats, this._options.locale, this._options.useStrict, this._options.timeZone); + } else { + returnMoment = moment(d, this.parseFormats, this._options.locale, this._options.useStrict); + } + + if (this._hasTimeZone()) { + returnMoment.tz(this._options.timeZone); + } + + return returnMoment; + }; + + _proto.toggle = function toggle() { + return this.widget ? this.hide() : this.show(); + }; + + _proto.readonly = function readonly(_readonly) { + if (arguments.length === 0) { + return this._options.readonly; + } + + if (typeof _readonly !== 'boolean') { + throw new TypeError('readonly() expects a boolean parameter'); + } + + this._options.readonly = _readonly; + + if (this.input !== undefined) { + this.input.prop('readonly', this._options.readonly); + } + + if (this.widget) { + this.hide(); + this.show(); + } + }; + + _proto.ignoreReadonly = function ignoreReadonly(_ignoreReadonly) { + if (arguments.length === 0) { + return this._options.ignoreReadonly; + } + + if (typeof _ignoreReadonly !== 'boolean') { + throw new TypeError('ignoreReadonly() expects a boolean parameter'); + } + + this._options.ignoreReadonly = _ignoreReadonly; + }; + + _proto.options = function options(newOptions) { + if (arguments.length === 0) { + return $.extend(true, {}, this._options); + } + + if (!(newOptions instanceof Object)) { + throw new TypeError('options() this.options parameter should be an object'); + } + + $.extend(true, this._options, newOptions); + var self = this, + optionsKeys = Object.keys(this._options).sort(optionsSortFn); + $.each(optionsKeys, function (i, key) { + var value = self._options[key]; + + if (self[key] !== undefined) { + if (self.isInit && key === 'date') { + self.hasInitDate = true; + self.initDate = value; + return; + } + + self[key](value); + } + }); + }; + + _proto.date = function date(newDate, index) { + index = index || 0; + + if (arguments.length === 0) { + if (this.unset) { + return null; + } + + if (this._options.allowMultidate) { + return this._dates.join(this._options.multidateSeparator); + } else { + return this._dates[index].clone(); + } + } + + if (newDate !== null && typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) { + throw new TypeError('date() parameter must be one of [null, string, moment or Date]'); + } + + if (typeof newDate === 'string' && isValidDateTimeStr(newDate)) { + newDate = new Date(newDate); + } + + this._setValue(newDate === null ? null : this._parseInputDate(newDate), index); + }; + + _proto.updateOnlyThroughDateOption = function updateOnlyThroughDateOption(_updateOnlyThroughDateOption) { + if (typeof _updateOnlyThroughDateOption !== 'boolean') { + throw new TypeError('updateOnlyThroughDateOption() expects a boolean parameter'); + } + + this._options.updateOnlyThroughDateOption = _updateOnlyThroughDateOption; + }; + + _proto.format = function format(newFormat) { + if (arguments.length === 0) { + return this._options.format; + } + + if (typeof newFormat !== 'string' && (typeof newFormat !== 'boolean' || newFormat !== false)) { + throw new TypeError("format() expects a string or boolean:false parameter " + newFormat); + } + + this._options.format = newFormat; + + if (this.actualFormat) { + this._initFormatting(); // reinitialize formatting + + } + }; + + _proto.timeZone = function timeZone(newZone) { + if (arguments.length === 0) { + return this._options.timeZone; + } + + if (typeof newZone !== 'string') { + throw new TypeError('newZone() expects a string parameter'); + } + + this._options.timeZone = newZone; + }; + + _proto.dayViewHeaderFormat = function dayViewHeaderFormat(newFormat) { + if (arguments.length === 0) { + return this._options.dayViewHeaderFormat; + } + + if (typeof newFormat !== 'string') { + throw new TypeError('dayViewHeaderFormat() expects a string parameter'); + } + + this._options.dayViewHeaderFormat = newFormat; + }; + + _proto.extraFormats = function extraFormats(formats) { + if (arguments.length === 0) { + return this._options.extraFormats; + } + + if (formats !== false && !(formats instanceof Array)) { + throw new TypeError('extraFormats() expects an array or false parameter'); + } + + this._options.extraFormats = formats; + + if (this.parseFormats) { + this._initFormatting(); // reinit formatting + + } + }; + + _proto.disabledDates = function disabledDates(dates) { + if (arguments.length === 0) { + return this._options.disabledDates ? $.extend({}, this._options.disabledDates) : this._options.disabledDates; + } + + if (!dates) { + this._options.disabledDates = false; + + this._update(); + + return true; + } + + if (!(dates instanceof Array)) { + throw new TypeError('disabledDates() expects an array parameter'); + } + + this._options.disabledDates = this._indexGivenDates(dates); + this._options.enabledDates = false; + + this._update(); + }; + + _proto.enabledDates = function enabledDates(dates) { + if (arguments.length === 0) { + return this._options.enabledDates ? $.extend({}, this._options.enabledDates) : this._options.enabledDates; + } + + if (!dates) { + this._options.enabledDates = false; + + this._update(); + + return true; + } + + if (!(dates instanceof Array)) { + throw new TypeError('enabledDates() expects an array parameter'); + } + + this._options.enabledDates = this._indexGivenDates(dates); + this._options.disabledDates = false; + + this._update(); + }; + + _proto.daysOfWeekDisabled = function daysOfWeekDisabled(_daysOfWeekDisabled) { + if (arguments.length === 0) { + return this._options.daysOfWeekDisabled.splice(0); + } + + if (typeof _daysOfWeekDisabled === 'boolean' && !_daysOfWeekDisabled) { + this._options.daysOfWeekDisabled = false; + + this._update(); + + return true; + } + + if (!(_daysOfWeekDisabled instanceof Array)) { + throw new TypeError('daysOfWeekDisabled() expects an array parameter'); + } + + this._options.daysOfWeekDisabled = _daysOfWeekDisabled.reduce(function (previousValue, currentValue) { + currentValue = parseInt(currentValue, 10); + + if (currentValue > 6 || currentValue < 0 || isNaN(currentValue)) { + return previousValue; + } + + if (previousValue.indexOf(currentValue) === -1) { + previousValue.push(currentValue); + } + + return previousValue; + }, []).sort(); + + if (this._options.useCurrent && !this._options.keepInvalid) { + for (var i = 0; i < this._dates.length; i++) { + var tries = 0; + + while (!this._isValid(this._dates[i], 'd')) { + this._dates[i].add(1, 'd'); + + if (tries === 31) { + throw 'Tried 31 times to find a valid date'; + } + + tries++; + } + + this._setValue(this._dates[i], i); + } + } + + this._update(); + }; + + _proto.maxDate = function maxDate(_maxDate) { + if (arguments.length === 0) { + return this._options.maxDate ? this._options.maxDate.clone() : this._options.maxDate; + } + + if (typeof _maxDate === 'boolean' && _maxDate === false) { + this._options.maxDate = false; + + this._update(); + + return true; + } + + if (typeof _maxDate === 'string') { + if (_maxDate === 'now' || _maxDate === 'moment') { + _maxDate = this.getMoment(); + } + } + + var parsedDate = this._parseInputDate(_maxDate); + + if (!parsedDate.isValid()) { + throw new TypeError("maxDate() Could not parse date parameter: " + _maxDate); + } + + if (this._options.minDate && parsedDate.isBefore(this._options.minDate)) { + throw new TypeError("maxDate() date parameter is before this.options.minDate: " + parsedDate.format(this.actualFormat)); + } + + this._options.maxDate = parsedDate; + + for (var i = 0; i < this._dates.length; i++) { + if (this._options.useCurrent && !this._options.keepInvalid && this._dates[i].isAfter(_maxDate)) { + this._setValue(this._options.maxDate, i); + } + } + + if (this._viewDate.isAfter(parsedDate)) { + this._viewDate = parsedDate.clone().subtract(this._options.stepping, 'm'); + } + + this._update(); + }; + + _proto.minDate = function minDate(_minDate) { + if (arguments.length === 0) { + return this._options.minDate ? this._options.minDate.clone() : this._options.minDate; + } + + if (typeof _minDate === 'boolean' && _minDate === false) { + this._options.minDate = false; + + this._update(); + + return true; + } + + if (typeof _minDate === 'string') { + if (_minDate === 'now' || _minDate === 'moment') { + _minDate = this.getMoment(); + } + } + + var parsedDate = this._parseInputDate(_minDate); + + if (!parsedDate.isValid()) { + throw new TypeError("minDate() Could not parse date parameter: " + _minDate); + } + + if (this._options.maxDate && parsedDate.isAfter(this._options.maxDate)) { + throw new TypeError("minDate() date parameter is after this.options.maxDate: " + parsedDate.format(this.actualFormat)); + } + + this._options.minDate = parsedDate; + + for (var i = 0; i < this._dates.length; i++) { + if (this._options.useCurrent && !this._options.keepInvalid && this._dates[i].isBefore(_minDate)) { + this._setValue(this._options.minDate, i); + } + } + + if (this._viewDate.isBefore(parsedDate)) { + this._viewDate = parsedDate.clone().add(this._options.stepping, 'm'); + } + + this._update(); + }; + + _proto.defaultDate = function defaultDate(_defaultDate) { + if (arguments.length === 0) { + return this._options.defaultDate ? this._options.defaultDate.clone() : this._options.defaultDate; + } + + if (!_defaultDate) { + this._options.defaultDate = false; + return true; + } + + if (typeof _defaultDate === 'string') { + if (_defaultDate === 'now' || _defaultDate === 'moment') { + _defaultDate = this.getMoment(); + } else { + _defaultDate = this.getMoment(_defaultDate); + } + } + + var parsedDate = this._parseInputDate(_defaultDate); + + if (!parsedDate.isValid()) { + throw new TypeError("defaultDate() Could not parse date parameter: " + _defaultDate); + } + + if (!this._isValid(parsedDate)) { + throw new TypeError('defaultDate() date passed is invalid according to component setup validations'); + } + + this._options.defaultDate = parsedDate; + + if (this._options.defaultDate && this._options.inline || this.input !== undefined && this.input.val().trim() === '') { + this._setValue(this._options.defaultDate, 0); + } + }; + + _proto.locale = function locale(_locale) { + if (arguments.length === 0) { + return this._options.locale; + } + + if (!moment.localeData(_locale)) { + throw new TypeError("locale() locale " + _locale + " is not loaded from moment locales!"); + } + + this._options.locale = _locale; + + for (var i = 0; i < this._dates.length; i++) { + this._dates[i].locale(this._options.locale); + } + + this._viewDate.locale(this._options.locale); + + if (this.actualFormat) { + this._initFormatting(); // reinitialize formatting + + } + + if (this.widget) { + this.hide(); + this.show(); + } + }; + + _proto.stepping = function stepping(_stepping) { + if (arguments.length === 0) { + return this._options.stepping; + } + + _stepping = parseInt(_stepping, 10); + + if (isNaN(_stepping) || _stepping < 1) { + _stepping = 1; + } + + this._options.stepping = _stepping; + }; + + _proto.useCurrent = function useCurrent(_useCurrent) { + var useCurrentOptions = ['year', 'month', 'day', 'hour', 'minute']; + + if (arguments.length === 0) { + return this._options.useCurrent; + } + + if (typeof _useCurrent !== 'boolean' && typeof _useCurrent !== 'string') { + throw new TypeError('useCurrent() expects a boolean or string parameter'); + } + + if (typeof _useCurrent === 'string' && useCurrentOptions.indexOf(_useCurrent.toLowerCase()) === -1) { + throw new TypeError("useCurrent() expects a string parameter of " + useCurrentOptions.join(', ')); + } + + this._options.useCurrent = _useCurrent; + }; + + _proto.collapse = function collapse(_collapse) { + if (arguments.length === 0) { + return this._options.collapse; + } + + if (typeof _collapse !== 'boolean') { + throw new TypeError('collapse() expects a boolean parameter'); + } + + if (this._options.collapse === _collapse) { + return true; + } + + this._options.collapse = _collapse; + + if (this.widget) { + this.hide(); + this.show(); + } + }; + + _proto.icons = function icons(_icons) { + if (arguments.length === 0) { + return $.extend({}, this._options.icons); + } + + if (!(_icons instanceof Object)) { + throw new TypeError('icons() expects parameter to be an Object'); + } + + $.extend(this._options.icons, _icons); + + if (this.widget) { + this.hide(); + this.show(); + } + }; + + _proto.tooltips = function tooltips(_tooltips) { + if (arguments.length === 0) { + return $.extend({}, this._options.tooltips); + } + + if (!(_tooltips instanceof Object)) { + throw new TypeError('tooltips() expects parameter to be an Object'); + } + + $.extend(this._options.tooltips, _tooltips); + + if (this.widget) { + this.hide(); + this.show(); + } + }; + + _proto.useStrict = function useStrict(_useStrict) { + if (arguments.length === 0) { + return this._options.useStrict; + } + + if (typeof _useStrict !== 'boolean') { + throw new TypeError('useStrict() expects a boolean parameter'); + } + + this._options.useStrict = _useStrict; + }; + + _proto.sideBySide = function sideBySide(_sideBySide) { + if (arguments.length === 0) { + return this._options.sideBySide; + } + + if (typeof _sideBySide !== 'boolean') { + throw new TypeError('sideBySide() expects a boolean parameter'); + } + + this._options.sideBySide = _sideBySide; + + if (this.widget) { + this.hide(); + this.show(); + } + }; + + _proto.viewMode = function viewMode(_viewMode) { + if (arguments.length === 0) { + return this._options.viewMode; + } + + if (typeof _viewMode !== 'string') { + throw new TypeError('viewMode() expects a string parameter'); + } + + if (DateTimePicker.ViewModes.indexOf(_viewMode) === -1) { + throw new TypeError("viewMode() parameter must be one of (" + DateTimePicker.ViewModes.join(', ') + ") value"); + } + + this._options.viewMode = _viewMode; + this.currentViewMode = Math.max(DateTimePicker.ViewModes.indexOf(_viewMode) - 1, this.MinViewModeNumber); + + this._showMode(); + }; + + _proto.calendarWeeks = function calendarWeeks(_calendarWeeks) { + if (arguments.length === 0) { + return this._options.calendarWeeks; + } + + if (typeof _calendarWeeks !== 'boolean') { + throw new TypeError('calendarWeeks() expects parameter to be a boolean value'); + } + + this._options.calendarWeeks = _calendarWeeks; + + this._update(); + }; + + _proto.buttons = function buttons(_buttons) { + if (arguments.length === 0) { + return $.extend({}, this._options.buttons); + } + + if (!(_buttons instanceof Object)) { + throw new TypeError('buttons() expects parameter to be an Object'); + } + + $.extend(this._options.buttons, _buttons); + + if (typeof this._options.buttons.showToday !== 'boolean') { + throw new TypeError('buttons.showToday expects a boolean parameter'); + } + + if (typeof this._options.buttons.showClear !== 'boolean') { + throw new TypeError('buttons.showClear expects a boolean parameter'); + } + + if (typeof this._options.buttons.showClose !== 'boolean') { + throw new TypeError('buttons.showClose expects a boolean parameter'); + } + + if (this.widget) { + this.hide(); + this.show(); + } + }; + + _proto.keepOpen = function keepOpen(_keepOpen) { + if (arguments.length === 0) { + return this._options.keepOpen; + } + + if (typeof _keepOpen !== 'boolean') { + throw new TypeError('keepOpen() expects a boolean parameter'); + } + + this._options.keepOpen = _keepOpen; + }; + + _proto.focusOnShow = function focusOnShow(_focusOnShow) { + if (arguments.length === 0) { + return this._options.focusOnShow; + } + + if (typeof _focusOnShow !== 'boolean') { + throw new TypeError('focusOnShow() expects a boolean parameter'); + } + + this._options.focusOnShow = _focusOnShow; + }; + + _proto.inline = function inline(_inline) { + if (arguments.length === 0) { + return this._options.inline; + } + + if (typeof _inline !== 'boolean') { + throw new TypeError('inline() expects a boolean parameter'); + } + + this._options.inline = _inline; + }; + + _proto.clear = function clear() { + this._setValue(null); //todo + + }; + + _proto.keyBinds = function keyBinds(_keyBinds) { + if (arguments.length === 0) { + return this._options.keyBinds; + } + + this._options.keyBinds = _keyBinds; + }; + + _proto.debug = function debug(_debug) { + if (typeof _debug !== 'boolean') { + throw new TypeError('debug() expects a boolean parameter'); + } + + this._options.debug = _debug; + }; + + _proto.allowInputToggle = function allowInputToggle(_allowInputToggle) { + if (arguments.length === 0) { + return this._options.allowInputToggle; + } + + if (typeof _allowInputToggle !== 'boolean') { + throw new TypeError('allowInputToggle() expects a boolean parameter'); + } + + this._options.allowInputToggle = _allowInputToggle; + }; + + _proto.keepInvalid = function keepInvalid(_keepInvalid) { + if (arguments.length === 0) { + return this._options.keepInvalid; + } + + if (typeof _keepInvalid !== 'boolean') { + throw new TypeError('keepInvalid() expects a boolean parameter'); + } + + this._options.keepInvalid = _keepInvalid; + }; + + _proto.datepickerInput = function datepickerInput(_datepickerInput) { + if (arguments.length === 0) { + return this._options.datepickerInput; + } + + if (typeof _datepickerInput !== 'string') { + throw new TypeError('datepickerInput() expects a string parameter'); + } + + this._options.datepickerInput = _datepickerInput; + }; + + _proto.parseInputDate = function parseInputDate(_parseInputDate2) { + if (arguments.length === 0) { + return this._options.parseInputDate; + } + + if (typeof _parseInputDate2 !== 'function') { + throw new TypeError('parseInputDate() should be as function'); + } + + this._options.parseInputDate = _parseInputDate2; + }; + + _proto.disabledTimeIntervals = function disabledTimeIntervals(_disabledTimeIntervals) { + if (arguments.length === 0) { + return this._options.disabledTimeIntervals ? $.extend({}, this._options.disabledTimeIntervals) : this._options.disabledTimeIntervals; + } + + if (!_disabledTimeIntervals) { + this._options.disabledTimeIntervals = false; + + this._update(); + + return true; + } + + if (!(_disabledTimeIntervals instanceof Array)) { + throw new TypeError('disabledTimeIntervals() expects an array parameter'); + } + + this._options.disabledTimeIntervals = _disabledTimeIntervals; + + this._update(); + }; + + _proto.disabledHours = function disabledHours(hours) { + if (arguments.length === 0) { + return this._options.disabledHours ? $.extend({}, this._options.disabledHours) : this._options.disabledHours; + } + + if (!hours) { + this._options.disabledHours = false; + + this._update(); + + return true; + } + + if (!(hours instanceof Array)) { + throw new TypeError('disabledHours() expects an array parameter'); + } + + this._options.disabledHours = this._indexGivenHours(hours); + this._options.enabledHours = false; + + if (this._options.useCurrent && !this._options.keepInvalid) { + for (var i = 0; i < this._dates.length; i++) { + var tries = 0; + + while (!this._isValid(this._dates[i], 'h')) { + this._dates[i].add(1, 'h'); + + if (tries === 24) { + throw 'Tried 24 times to find a valid date'; + } + + tries++; + } + + this._setValue(this._dates[i], i); + } + } + + this._update(); + }; + + _proto.enabledHours = function enabledHours(hours) { + if (arguments.length === 0) { + return this._options.enabledHours ? $.extend({}, this._options.enabledHours) : this._options.enabledHours; + } + + if (!hours) { + this._options.enabledHours = false; + + this._update(); + + return true; + } + + if (!(hours instanceof Array)) { + throw new TypeError('enabledHours() expects an array parameter'); + } + + this._options.enabledHours = this._indexGivenHours(hours); + this._options.disabledHours = false; + + if (this._options.useCurrent && !this._options.keepInvalid) { + for (var i = 0; i < this._dates.length; i++) { + var tries = 0; + + while (!this._isValid(this._dates[i], 'h')) { + this._dates[i].add(1, 'h'); + + if (tries === 24) { + throw 'Tried 24 times to find a valid date'; + } + + tries++; + } + + this._setValue(this._dates[i], i); + } + } + + this._update(); + }; + + _proto.viewDate = function viewDate(newDate) { + if (arguments.length === 0) { + return this._viewDate.clone(); + } + + if (!newDate) { + this._viewDate = (this._dates[0] || this.getMoment()).clone(); + return true; + } + + if (typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) { + throw new TypeError('viewDate() parameter must be one of [string, moment or Date]'); + } + + this._viewDate = this._parseInputDate(newDate); + + this._update(); + + this._viewUpdate(DatePickerModes[this.currentViewMode] && DatePickerModes[this.currentViewMode].NAV_FUNCTION); + }; + + _proto._fillDate = function _fillDate() {}; + + _proto._useFeatherIcons = function _useFeatherIcons() { + return this._options.icons.type === 'feather'; + }; + + _proto.allowMultidate = function allowMultidate(_allowMultidate) { + if (typeof _allowMultidate !== 'boolean') { + throw new TypeError('allowMultidate() expects a boolean parameter'); + } + + this._options.allowMultidate = _allowMultidate; + }; + + _proto.multidateSeparator = function multidateSeparator(_multidateSeparator) { + if (arguments.length === 0) { + return this._options.multidateSeparator; + } + + if (typeof _multidateSeparator !== 'string') { + throw new TypeError('multidateSeparator expects a string parameter'); + } + + this._options.multidateSeparator = _multidateSeparator; + }; + + _createClass(DateTimePicker, null, [{ + key: "NAME", + get: function get() { + return NAME; + } + /** + * @return {string} + */ + + }, { + key: "DATA_KEY", + get: function get() { + return DATA_KEY; + } + /** + * @return {string} + */ + + }, { + key: "EVENT_KEY", + get: function get() { + return EVENT_KEY; + } + /** + * @return {string} + */ + + }, { + key: "DATA_API_KEY", + get: function get() { + return DATA_API_KEY; + } + }, { + key: "DatePickerModes", + get: function get() { + return DatePickerModes; + } + }, { + key: "ViewModes", + get: function get() { + return ViewModes; + } + }, { + key: "Event", + get: function get() { + return Event; + } + }, { + key: "Selector", + get: function get() { + return Selector; + } + }, { + key: "Default", + get: function get() { + return Default; + }, + set: function set(value) { + Default = value; + } + }, { + key: "ClassName", + get: function get() { + return ClassName; + } + }]); + + return DateTimePicker; + }(); + + return DateTimePicker; +}(jQuery, moment); //noinspection JSUnusedGlobalSymbols + +/* global DateTimePicker */ + +/* global feather */ + + +var TempusDominusBootstrap4 = function ($) { + // eslint-disable-line no-unused-vars + // ReSharper disable once InconsistentNaming + var JQUERY_NO_CONFLICT = $.fn[DateTimePicker.NAME], + verticalModes = ['top', 'bottom', 'auto'], + horizontalModes = ['left', 'right', 'auto'], + toolbarPlacements = ['default', 'top', 'bottom'], + getSelectorFromElement = function getSelectorFromElement($element) { + var selector = $element.data('target'), + $selector; + + if (!selector) { + selector = $element.attr('href') || ''; + selector = /^#[a-z]/i.test(selector) ? selector : null; + } + + $selector = $(selector); + + if ($selector.length === 0) { + return $element; + } + + if (!$selector.data(DateTimePicker.DATA_KEY)) { + $.extend({}, $selector.data(), $(this).data()); + } + + return $selector; + }; // ReSharper disable once InconsistentNaming + + + var TempusDominusBootstrap4 = /*#__PURE__*/function (_DateTimePicker) { + _inheritsLoose(TempusDominusBootstrap4, _DateTimePicker); + + function TempusDominusBootstrap4(element, options) { + var _this; + + _this = _DateTimePicker.call(this, element, options) || this; + + _this._init(); + + return _this; + } + + var _proto2 = TempusDominusBootstrap4.prototype; + + _proto2._init = function _init() { + if (this._element.hasClass('input-group')) { + var datepickerButton = this._element.find('.datepickerbutton'); + + if (datepickerButton.length === 0) { + this.component = this._element.find('[data-toggle="datetimepicker"]'); + } else { + this.component = datepickerButton; + } + } + }; + + _proto2._iconTag = function _iconTag(iconName) { + if (typeof feather !== 'undefined' && this._useFeatherIcons() && feather.icons[iconName]) { + return $('').html(feather.icons[iconName].toSvg()); + } else { + return $('').addClass(iconName); + } + }; + + _proto2._getDatePickerTemplate = function _getDatePickerTemplate() { + var headTemplate = $('').append($('').append($('').append($('').append($('
').addClass('cw').text('#')); - } - - while (currentDate.isBefore(this._viewDate.clone().endOf('w'))) { - row.append($('').addClass('dow').text(currentDate.format('dd'))); - currentDate.add(1, 'd'); - } - - this.widget.find('.datepicker-days thead').append(row); - }; - - _proto2._fillMonths = function _fillMonths() { - var spans = [], - monthsShort = this._viewDate.clone().startOf('y').startOf('d'); - - while (monthsShort.isSame(this._viewDate, 'y')) { - spans.push($('').attr('data-action', 'selectMonth').addClass('month').text(monthsShort.format('MMM'))); - monthsShort.add(1, 'M'); - } - - this.widget.find('.datepicker-months td').empty().append(spans); - }; - - _proto2._updateMonths = function _updateMonths() { - var monthsView = this.widget.find('.datepicker-months'), - monthsViewHeader = monthsView.find('th'), - months = monthsView.find('tbody').find('span'), - self = this, - lastPickedDate = this._getLastPickedDate(); - - monthsViewHeader.eq(0).find('span').attr('title', this._options.tooltips.prevYear); - monthsViewHeader.eq(1).attr('title', this._options.tooltips.selectYear); - monthsViewHeader.eq(2).find('span').attr('title', this._options.tooltips.nextYear); - monthsView.find('.disabled').removeClass('disabled'); - - if (!this._isValid(this._viewDate.clone().subtract(1, 'y'), 'y')) { - monthsViewHeader.eq(0).addClass('disabled'); - } - - monthsViewHeader.eq(1).text(this._viewDate.year()); - - if (!this._isValid(this._viewDate.clone().add(1, 'y'), 'y')) { - monthsViewHeader.eq(2).addClass('disabled'); - } - - months.removeClass('active'); - - if (lastPickedDate && lastPickedDate.isSame(this._viewDate, 'y') && !this.unset) { - months.eq(lastPickedDate.month()).addClass('active'); - } - - months.each(function (index) { - if (!self._isValid(self._viewDate.clone().month(index), 'M')) { - $(this).addClass('disabled'); - } - }); - }; - - _proto2._getStartEndYear = function _getStartEndYear(factor, year) { - var step = factor / 10, - startYear = Math.floor(year / factor) * factor, - endYear = startYear + step * 9, - focusValue = Math.floor(year / step) * step; - return [startYear, endYear, focusValue]; - }; - - _proto2._updateYears = function _updateYears() { - var yearsView = this.widget.find('.datepicker-years'), - yearsViewHeader = yearsView.find('th'), - yearCaps = this._getStartEndYear(10, this._viewDate.year()), - startYear = this._viewDate.clone().year(yearCaps[0]), - endYear = this._viewDate.clone().year(yearCaps[1]); - - var html = ''; - yearsViewHeader.eq(0).find('span').attr('title', this._options.tooltips.prevDecade); - yearsViewHeader.eq(1).attr('title', this._options.tooltips.selectDecade); - yearsViewHeader.eq(2).find('span').attr('title', this._options.tooltips.nextDecade); - yearsView.find('.disabled').removeClass('disabled'); - - if (this._options.minDate && this._options.minDate.isAfter(startYear, 'y')) { - yearsViewHeader.eq(0).addClass('disabled'); - } - - yearsViewHeader.eq(1).text(startYear.year() + "-" + endYear.year()); - - if (this._options.maxDate && this._options.maxDate.isBefore(endYear, 'y')) { - yearsViewHeader.eq(2).addClass('disabled'); - } - - html += "" + (startYear.year() - 1) + ""; - - while (!startYear.isAfter(endYear, 'y')) { - html += "" + startYear.year() + ""; - startYear.add(1, 'y'); - } - - html += "" + startYear.year() + ""; - yearsView.find('td').html(html); - }; - - _proto2._updateDecades = function _updateDecades() { - var decadesView = this.widget.find('.datepicker-decades'), - decadesViewHeader = decadesView.find('th'), - yearCaps = this._getStartEndYear(100, this._viewDate.year()), - startDecade = this._viewDate.clone().year(yearCaps[0]), - endDecade = this._viewDate.clone().year(yearCaps[1]), - lastPickedDate = this._getLastPickedDate(); - - var minDateDecade = false, - maxDateDecade = false, - endDecadeYear, - html = ''; - decadesViewHeader.eq(0).find('span').attr('title', this._options.tooltips.prevCentury); - decadesViewHeader.eq(2).find('span').attr('title', this._options.tooltips.nextCentury); - decadesView.find('.disabled').removeClass('disabled'); - - if (startDecade.year() === 0 || this._options.minDate && this._options.minDate.isAfter(startDecade, 'y')) { - decadesViewHeader.eq(0).addClass('disabled'); - } - - decadesViewHeader.eq(1).text(startDecade.year() + "-" + endDecade.year()); - - if (this._options.maxDate && this._options.maxDate.isBefore(endDecade, 'y')) { - decadesViewHeader.eq(2).addClass('disabled'); - } - - if (startDecade.year() - 10 < 0) { - html += ' '; - } else { - html += "" + (startDecade.year() - 10) + ""; - } - - while (!startDecade.isAfter(endDecade, 'y')) { - endDecadeYear = startDecade.year() + 11; - minDateDecade = this._options.minDate && this._options.minDate.isAfter(startDecade, 'y') && this._options.minDate.year() <= endDecadeYear; - maxDateDecade = this._options.maxDate && this._options.maxDate.isAfter(startDecade, 'y') && this._options.maxDate.year() <= endDecadeYear; - html += "" + startDecade.year() + ""; - startDecade.add(10, 'y'); - } - - html += "" + startDecade.year() + ""; - decadesView.find('td').html(html); - }; - - _proto2._fillDate = function _fillDate() { - _DateTimePicker.prototype._fillDate.call(this); - - var daysView = this.widget.find('.datepicker-days'), - daysViewHeader = daysView.find('th'), - html = []; - var currentDate, row, clsName, i; - - if (!this._hasDate()) { - return; - } - - daysViewHeader.eq(0).find('span').attr('title', this._options.tooltips.prevMonth); - daysViewHeader.eq(1).attr('title', this._options.tooltips.selectMonth); - daysViewHeader.eq(2).find('span').attr('title', this._options.tooltips.nextMonth); - daysView.find('.disabled').removeClass('disabled'); - daysViewHeader.eq(1).text(this._viewDate.format(this._options.dayViewHeaderFormat)); - - if (!this._isValid(this._viewDate.clone().subtract(1, 'M'), 'M')) { - daysViewHeader.eq(0).addClass('disabled'); - } - - if (!this._isValid(this._viewDate.clone().add(1, 'M'), 'M')) { - daysViewHeader.eq(2).addClass('disabled'); - } - - currentDate = this._viewDate.clone().startOf('M').startOf('w').startOf('d'); - - for (i = 0; i < 42; i++) { - //always display 42 days (should show 6 weeks) - if (currentDate.weekday() === 0) { - row = $('
" + currentDate.week() + "" + currentDate.date() + "
" + currentHour.format(this.use24Hours ? 'HH' : 'hh') + "
" + currentMinute.format('mm') + "
" + currentSecond.format('ss') + "
').addClass('prev').attr('data-action', 'previous').append(this._iconTag(this._options.icons.previous))).append($('').addClass('picker-switch').attr('data-action', 'pickerSwitch').attr('colspan', "" + (this._options.calendarWeeks ? '6' : '5'))).append($('').addClass('next').attr('data-action', 'next').append(this._iconTag(this._options.icons.next)))), + contTemplate = $('
').attr('colspan', "" + (this._options.calendarWeeks ? '8' : '7')))); + return [$('
').addClass('datepicker-days').append($('').addClass('table table-sm').append(headTemplate).append($(''))), $('
').addClass('datepicker-months').append($('
').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('
').addClass('datepicker-years').append($('
').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('
').addClass('datepicker-decades').append($('
').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone()))]; + }; + + _proto2._getTimePickerMainTemplate = function _getTimePickerMainTemplate() { + var topRow = $(''), + middleRow = $(''), + bottomRow = $(''); + + if (this._isEnabled('h')) { + topRow.append($('
').append($('').attr({ + href: '#', + tabindex: '-1', + 'title': this._options.tooltips.incrementHour + }).addClass('btn').attr('data-action', 'incrementHours').append(this._iconTag(this._options.icons.up)))); + middleRow.append($('').append($('').addClass('timepicker-hour').attr({ + 'data-time-component': 'hours', + 'title': this._options.tooltips.pickHour + }).attr('data-action', 'showHours'))); + bottomRow.append($('').append($('').attr({ + href: '#', + tabindex: '-1', + 'title': this._options.tooltips.decrementHour + }).addClass('btn').attr('data-action', 'decrementHours').append(this._iconTag(this._options.icons.down)))); + } + + if (this._isEnabled('m')) { + if (this._isEnabled('h')) { + topRow.append($('').addClass('separator')); + middleRow.append($('').addClass('separator').html(':')); + bottomRow.append($('').addClass('separator')); + } + + topRow.append($('').append($('').attr({ + href: '#', + tabindex: '-1', + 'title': this._options.tooltips.incrementMinute + }).addClass('btn').attr('data-action', 'incrementMinutes').append(this._iconTag(this._options.icons.up)))); + middleRow.append($('').append($('').addClass('timepicker-minute').attr({ + 'data-time-component': 'minutes', + 'title': this._options.tooltips.pickMinute + }).attr('data-action', 'showMinutes'))); + bottomRow.append($('').append($('').attr({ + href: '#', + tabindex: '-1', + 'title': this._options.tooltips.decrementMinute + }).addClass('btn').attr('data-action', 'decrementMinutes').append(this._iconTag(this._options.icons.down)))); + } + + if (this._isEnabled('s')) { + if (this._isEnabled('m')) { + topRow.append($('').addClass('separator')); + middleRow.append($('').addClass('separator').html(':')); + bottomRow.append($('').addClass('separator')); + } + + topRow.append($('').append($('').attr({ + href: '#', + tabindex: '-1', + 'title': this._options.tooltips.incrementSecond + }).addClass('btn').attr('data-action', 'incrementSeconds').append(this._iconTag(this._options.icons.up)))); + middleRow.append($('').append($('').addClass('timepicker-second').attr({ + 'data-time-component': 'seconds', + 'title': this._options.tooltips.pickSecond + }).attr('data-action', 'showSeconds'))); + bottomRow.append($('').append($('').attr({ + href: '#', + tabindex: '-1', + 'title': this._options.tooltips.decrementSecond + }).addClass('btn').attr('data-action', 'decrementSeconds').append(this._iconTag(this._options.icons.down)))); + } + + if (!this.use24Hours) { + topRow.append($('').addClass('separator')); + middleRow.append($('').append($('').addClass('separator')); + } + + return $('
').addClass('timepicker-picker').append($('').addClass('table-condensed').append([topRow, middleRow, bottomRow])); + }; + + _proto2._getTimePickerTemplate = function _getTimePickerTemplate() { + var hoursView = $('
').addClass('timepicker-hours').append($('
').addClass('table-condensed')), + minutesView = $('
').addClass('timepicker-minutes').append($('
').addClass('table-condensed')), + secondsView = $('
').addClass('timepicker-seconds').append($('
').addClass('table-condensed')), + ret = [this._getTimePickerMainTemplate()]; + + if (this._isEnabled('h')) { + ret.push(hoursView); + } + + if (this._isEnabled('m')) { + ret.push(minutesView); + } + + if (this._isEnabled('s')) { + ret.push(secondsView); + } + + return ret; + }; + + _proto2._getToolbar = function _getToolbar() { + var row = []; + + if (this._options.buttons.showToday) { + row.push($('
').append($('').attr({ + href: '#', + tabindex: '-1', + 'data-action': 'today', + 'title': this._options.tooltips.today + }).append(this._iconTag(this._options.icons.today)))); + } + + if (!this._options.sideBySide && this._options.collapse && this._hasDate() && this._hasTime()) { + var title, icon; + + if (this._options.viewMode === 'times') { + title = this._options.tooltips.selectDate; + icon = this._options.icons.date; + } else { + title = this._options.tooltips.selectTime; + icon = this._options.icons.time; + } + + row.push($('').append($('').attr({ + href: '#', + tabindex: '-1', + 'data-action': 'togglePicker', + 'title': title + }).append(this._iconTag(icon)))); + } + + if (this._options.buttons.showClear) { + row.push($('').append($('').attr({ + href: '#', + tabindex: '-1', + 'data-action': 'clear', + 'title': this._options.tooltips.clear + }).append(this._iconTag(this._options.icons.clear)))); + } + + if (this._options.buttons.showClose) { + row.push($('').append($('').attr({ + href: '#', + tabindex: '-1', + 'data-action': 'close', + 'title': this._options.tooltips.close + }).append(this._iconTag(this._options.icons.close)))); + } + + return row.length === 0 ? '' : $('').addClass('table-condensed').append($('').append($('').append(row))); + }; + + _proto2._getTemplate = function _getTemplate() { + var template = $('
').addClass(("bootstrap-datetimepicker-widget dropdown-menu " + (this._options.calendarWeeks ? 'tempusdominus-bootstrap-datetimepicker-widget-with-calendar-weeks' : '') + " " + ((this._useFeatherIcons() ? 'tempusdominus-bootstrap-datetimepicker-widget-with-feather-icons' : '') + " ")).trim()), + dateView = $('
').addClass('datepicker').append(this._getDatePickerTemplate()), + timeView = $('
').addClass('timepicker').append(this._getTimePickerTemplate()), + content = $('
    ').addClass('list-unstyled'), + toolbar = $('
  • ').addClass(("picker-switch" + (this._options.collapse ? ' accordion-toggle' : '') + " " + ("" + (this._useFeatherIcons() ? 'picker-switch-with-feathers-icons' : ''))).trim()).append(this._getToolbar()); + + if (this._options.inline) { + template.removeClass('dropdown-menu'); + } + + if (this.use24Hours) { + template.addClass('usetwentyfour'); + } + + if (this.input !== undefined && this.input.prop('readonly') || this._options.readonly) { + template.addClass('bootstrap-datetimepicker-widget-readonly'); + } + + if (this._isEnabled('s') && !this.use24Hours) { + template.addClass('wider'); + } + + if (this._options.sideBySide && this._hasDate() && this._hasTime()) { + template.addClass('timepicker-sbs'); + + if (this._options.toolbarPlacement === 'top') { + template.append(toolbar); + } + + template.append($('
    ').addClass('row').append(dateView.addClass('col-md-6')).append(timeView.addClass('col-md-6'))); + + if (this._options.toolbarPlacement === 'bottom' || this._options.toolbarPlacement === 'default') { + template.append(toolbar); + } + + return template; + } + + if (this._options.toolbarPlacement === 'top') { + content.append(toolbar); + } + + if (this._hasDate()) { + content.append($('
  • ').addClass(this._options.collapse && this._hasTime() ? 'collapse' : '').addClass(this._options.collapse && this._hasTime() && this._options.viewMode === 'times' ? '' : 'show').append(dateView)); + } + + if (this._options.toolbarPlacement === 'default') { + content.append(toolbar); + } + + if (this._hasTime()) { + content.append($('
  • ').addClass(this._options.collapse && this._hasDate() ? 'collapse' : '').addClass(this._options.collapse && this._hasDate() && this._options.viewMode === 'times' ? 'show' : '').append(timeView)); + } + + if (this._options.toolbarPlacement === 'bottom') { + content.append(toolbar); + } + + return template.append(content); + }; + + _proto2._place = function _place(e) { + var self = e && e.data && e.data.picker || this, + vertical = self._options.widgetPositioning.vertical, + horizontal = self._options.widgetPositioning.horizontal, + parent; + var position = (self.component && self.component.length ? self.component : self._element).position(), + offset = (self.component && self.component.length ? self.component : self._element).offset(); + + if (self._options.widgetParent) { + parent = self._options.widgetParent.append(self.widget); + } else if (self._element.is('input')) { + parent = self._element.after(self.widget).parent(); + } else if (self._options.inline) { + parent = self._element.append(self.widget); + return; + } else { + parent = self._element; + + self._element.children().first().after(self.widget); + } // Top and bottom logic + + + if (vertical === 'auto') { + //noinspection JSValidateTypes + if (offset.top + self.widget.height() * 1.5 >= $(window).height() + $(window).scrollTop() && self.widget.height() + self._element.outerHeight() < offset.top) { + vertical = 'top'; + } else { + vertical = 'bottom'; + } + } // Left and right logic + + + if (horizontal === 'auto') { + if (parent.width() < offset.left + self.widget.outerWidth() / 2 && offset.left + self.widget.outerWidth() > $(window).width()) { + horizontal = 'right'; + } else { + horizontal = 'left'; + } + } + + if (vertical === 'top') { + self.widget.addClass('top').removeClass('bottom'); + } else { + self.widget.addClass('bottom').removeClass('top'); + } + + if (horizontal === 'right') { + self.widget.addClass('float-right'); + } else { + self.widget.removeClass('float-right'); + } // find the first parent element that has a relative css positioning + + + if (parent.css('position') !== 'relative') { + parent = parent.parents().filter(function () { + return $(this).css('position') === 'relative'; + }).first(); + } + + if (parent.length === 0) { + throw new Error('datetimepicker component should be placed within a relative positioned container'); + } + + self.widget.css({ + top: vertical === 'top' ? 'auto' : position.top + self._element.outerHeight() + 'px', + bottom: vertical === 'top' ? parent.outerHeight() - (parent === self._element ? 0 : position.top) + 'px' : 'auto', + left: horizontal === 'left' ? (parent === self._element ? 0 : position.left) + 'px' : 'auto', + right: horizontal === 'left' ? 'auto' : parent.outerWidth() - self._element.outerWidth() - (parent === self._element ? 0 : position.left) + 'px' + }); + }; + + _proto2._fillDow = function _fillDow() { + var row = $('
'), + currentDate = this._viewDate.clone().startOf('w').startOf('d'); + + if (this._options.calendarWeeks === true) { + row.append($(''); + + if (this._options.calendarWeeks) { + row.append(""); + } + + html.push(row); + } + + clsName = ''; + + if (currentDate.isBefore(this._viewDate, 'M')) { + clsName += ' old'; + } + + if (currentDate.isAfter(this._viewDate, 'M')) { + clsName += ' new'; + } + + if (this._options.allowMultidate) { + var index = this._datesFormatted.indexOf(currentDate.format('YYYY-MM-DD')); + + if (index !== -1) { + if (currentDate.isSame(this._datesFormatted[index], 'd') && !this.unset) { + clsName += ' active'; + } + } + } else { + if (currentDate.isSame(this._getLastPickedDate(), 'd') && !this.unset) { + clsName += ' active'; + } + } + + if (!this._isValid(currentDate, 'd')) { + clsName += ' disabled'; + } + + if (currentDate.isSame(this.getMoment(), 'd')) { + clsName += ' today'; + } + + if (currentDate.day() === 0 || currentDate.day() === 6) { + clsName += ' weekend'; + } + + row.append(""); + currentDate.add(1, 'd'); + } + + $('body').addClass('tempusdominus-bootstrap-datetimepicker-widget-day-click'); + $('body').append('
'); + daysView.find('tbody').empty().append(html); + $('body').find('.tempusdominus-bootstrap-datetimepicker-widget-day-click-glass-panel').remove(); + $('body').removeClass('tempusdominus-bootstrap-datetimepicker-widget-day-click'); + + this._updateMonths(); + + this._updateYears(); + + this._updateDecades(); + }; + + _proto2._fillHours = function _fillHours() { + var table = this.widget.find('.timepicker-hours table'), + currentHour = this._viewDate.clone().startOf('d'), + html = []; + + var row = $(''); + + if (this._viewDate.hour() > 11 && !this.use24Hours) { + currentHour.hour(12); + } + + while (currentHour.isSame(this._viewDate, 'd') && (this.use24Hours || this._viewDate.hour() < 12 && currentHour.hour() < 12 || this._viewDate.hour() > 11)) { + if (currentHour.hour() % 4 === 0) { + row = $(''); + html.push(row); + } + + row.append(""); + currentHour.add(1, 'h'); + } + + table.empty().append(html); + }; + + _proto2._fillMinutes = function _fillMinutes() { + var table = this.widget.find('.timepicker-minutes table'), + currentMinute = this._viewDate.clone().startOf('h'), + html = [], + step = this._options.stepping === 1 ? 5 : this._options.stepping; + + var row = $(''); + + while (this._viewDate.isSame(currentMinute, 'h')) { + if (currentMinute.minute() % (step * 4) === 0) { + row = $(''); + html.push(row); + } + + row.append(""); + currentMinute.add(step, 'm'); + } + + table.empty().append(html); + }; + + _proto2._fillSeconds = function _fillSeconds() { + var table = this.widget.find('.timepicker-seconds table'), + currentSecond = this._viewDate.clone().startOf('m'), + html = []; + + var row = $(''); + + while (this._viewDate.isSame(currentSecond, 'm')) { + if (currentSecond.second() % 20 === 0) { + row = $(''); + html.push(row); + } + + row.append(""); + currentSecond.add(5, 's'); + } + + table.empty().append(html); + }; + + _proto2._fillTime = function _fillTime() { + var toggle, newDate; + + var timeComponents = this.widget.find('.timepicker span[data-time-component]'), + lastPickedDate = this._getLastPickedDate(); + + if (!this.use24Hours) { + toggle = this.widget.find('.timepicker [data-action=togglePeriod]'); + newDate = lastPickedDate ? lastPickedDate.clone().add(lastPickedDate.hours() >= 12 ? -12 : 12, 'h') : void 0; + lastPickedDate && toggle.text(lastPickedDate.format('A')); + + if (this._isValid(newDate, 'h')) { + toggle.removeClass('disabled'); + } else { + toggle.addClass('disabled'); + } + } + + lastPickedDate && timeComponents.filter('[data-time-component=hours]').text(lastPickedDate.format("" + (this.use24Hours ? 'HH' : 'hh'))); + lastPickedDate && timeComponents.filter('[data-time-component=minutes]').text(lastPickedDate.format('mm')); + lastPickedDate && timeComponents.filter('[data-time-component=seconds]').text(lastPickedDate.format('ss')); + + this._fillHours(); + + this._fillMinutes(); + + this._fillSeconds(); + }; + + _proto2._doAction = function _doAction(e, action) { + var lastPicked = this._getLastPickedDate(); + + if ($(e.currentTarget).is('.disabled')) { + return false; + } + + action = action || $(e.currentTarget).data('action'); + + switch (action) { + case 'next': + { + var navFnc = DateTimePicker.DatePickerModes[this.currentViewMode].NAV_FUNCTION; + + this._viewDate.add(DateTimePicker.DatePickerModes[this.currentViewMode].NAV_STEP, navFnc); + + this._fillDate(); + + this._viewUpdate(navFnc); + + break; + } + + case 'previous': + { + var _navFnc = DateTimePicker.DatePickerModes[this.currentViewMode].NAV_FUNCTION; + + this._viewDate.subtract(DateTimePicker.DatePickerModes[this.currentViewMode].NAV_STEP, _navFnc); + + this._fillDate(); + + this._viewUpdate(_navFnc); + + break; + } + + case 'pickerSwitch': + this._showMode(1); + + break; + + case 'selectMonth': + { + var month = $(e.target).closest('tbody').find('span').index($(e.target)); + + this._viewDate.month(month); + + if (this.currentViewMode === this.MinViewModeNumber) { + this._setValue(lastPicked.clone().year(this._viewDate.year()).month(this._viewDate.month()), this._getLastPickedDateIndex()); + + if (!this._options.inline) { + this.hide(); + } + } else { + this._showMode(-1); + + this._fillDate(); + } + + this._viewUpdate('M'); + + break; + } + + case 'selectYear': + { + var year = parseInt($(e.target).text(), 10) || 0; + + this._viewDate.year(year); + + if (this.currentViewMode === this.MinViewModeNumber) { + this._setValue(lastPicked.clone().year(this._viewDate.year()), this._getLastPickedDateIndex()); + + if (!this._options.inline) { + this.hide(); + } + } else { + this._showMode(-1); + + this._fillDate(); + } + + this._viewUpdate('YYYY'); + + break; + } + + case 'selectDecade': + { + var _year = parseInt($(e.target).data('selection'), 10) || 0; + + this._viewDate.year(_year); + + if (this.currentViewMode === this.MinViewModeNumber) { + this._setValue(lastPicked.clone().year(this._viewDate.year()), this._getLastPickedDateIndex()); + + if (!this._options.inline) { + this.hide(); + } + } else { + this._showMode(-1); + + this._fillDate(); + } + + this._viewUpdate('YYYY'); + + break; + } + + case 'selectDay': + { + var day = this._viewDate.clone(); + + if ($(e.target).is('.old')) { + day.subtract(1, 'M'); + } + + if ($(e.target).is('.new')) { + day.add(1, 'M'); + } + + var selectDate = day.date(parseInt($(e.target).text(), 10)), + index = 0; + + if (this._options.allowMultidate) { + index = this._datesFormatted.indexOf(selectDate.format('YYYY-MM-DD')); + + if (index !== -1) { + this._setValue(null, index); //deselect multidate + + } else { + this._setValue(selectDate, this._getLastPickedDateIndex() + 1); + } + } else { + this._setValue(selectDate, this._getLastPickedDateIndex()); + } + + if (!this._hasTime() && !this._options.keepOpen && !this._options.inline && !this._options.allowMultidate) { + this.hide(); + } + + break; + } + + case 'incrementHours': + { + if (!lastPicked) { + break; + } + + var newDate = lastPicked.clone().add(1, 'h'); + + if (this._isValid(newDate, 'h')) { + if (this._getLastPickedDateIndex() < 0) { + this.date(newDate); + } + + this._setValue(newDate, this._getLastPickedDateIndex()); + } + + break; + } + + case 'incrementMinutes': + { + if (!lastPicked) { + break; + } + + var _newDate = lastPicked.clone().add(this._options.stepping, 'm'); + + if (this._isValid(_newDate, 'm')) { + if (this._getLastPickedDateIndex() < 0) { + this.date(_newDate); + } + + this._setValue(_newDate, this._getLastPickedDateIndex()); + } + + break; + } + + case 'incrementSeconds': + { + if (!lastPicked) { + break; + } + + var _newDate2 = lastPicked.clone().add(1, 's'); + + if (this._isValid(_newDate2, 's')) { + if (this._getLastPickedDateIndex() < 0) { + this.date(_newDate2); + } + + this._setValue(_newDate2, this._getLastPickedDateIndex()); + } + + break; + } + + case 'decrementHours': + { + if (!lastPicked) { + break; + } + + var _newDate3 = lastPicked.clone().subtract(1, 'h'); + + if (this._isValid(_newDate3, 'h')) { + if (this._getLastPickedDateIndex() < 0) { + this.date(_newDate3); + } + + this._setValue(_newDate3, this._getLastPickedDateIndex()); + } + + break; + } + + case 'decrementMinutes': + { + if (!lastPicked) { + break; + } + + var _newDate4 = lastPicked.clone().subtract(this._options.stepping, 'm'); + + if (this._isValid(_newDate4, 'm')) { + if (this._getLastPickedDateIndex() < 0) { + this.date(_newDate4); + } + + this._setValue(_newDate4, this._getLastPickedDateIndex()); + } + + break; + } + + case 'decrementSeconds': + { + if (!lastPicked) { + break; + } + + var _newDate5 = lastPicked.clone().subtract(1, 's'); + + if (this._isValid(_newDate5, 's')) { + if (this._getLastPickedDateIndex() < 0) { + this.date(_newDate5); + } + + this._setValue(_newDate5, this._getLastPickedDateIndex()); + } + + break; + } + + case 'togglePeriod': + { + this._setValue(lastPicked.clone().add(lastPicked.hours() >= 12 ? -12 : 12, 'h'), this._getLastPickedDateIndex()); + + break; + } + + case 'togglePicker': + { + var $this = $(e.target), + $link = $this.closest('a'), + $parent = $this.closest('ul'), + expanded = $parent.find('.show'), + closed = $parent.find('.collapse:not(.show)'), + $span = $this.is('span') ? $this : $this.find('span'); + var collapseData, inactiveIcon, iconTest; + + if (expanded && expanded.length) { + collapseData = expanded.data('collapse'); + + if (collapseData && collapseData.transitioning) { + return true; + } + + if (expanded.collapse) { + // if collapse plugin is available through bootstrap.js then use it + expanded.collapse('hide'); + closed.collapse('show'); + } else { + // otherwise just toggle in class on the two views + expanded.removeClass('show'); + closed.addClass('show'); + } + + if (this._useFeatherIcons()) { + $link.toggleClass(this._options.icons.time + ' ' + this._options.icons.date); + inactiveIcon = $link.hasClass(this._options.icons.time) ? this._options.icons.date : this._options.icons.time; + $link.html(this._iconTag(inactiveIcon)); + } else { + $span.toggleClass(this._options.icons.time + ' ' + this._options.icons.date); + } + + if (this._useFeatherIcons()) { + iconTest = $link.hasClass(this._options.icons.date); + } else { + iconTest = $span.hasClass(this._options.icons.date); + } + + if (iconTest) { + $link.attr('title', this._options.tooltips.selectDate); + } else { + $link.attr('title', this._options.tooltips.selectTime); + } + } + } + break; + + case 'showPicker': + this.widget.find('.timepicker > div:not(.timepicker-picker)').hide(); + this.widget.find('.timepicker .timepicker-picker').show(); + break; + + case 'showHours': + this.widget.find('.timepicker .timepicker-picker').hide(); + this.widget.find('.timepicker .timepicker-hours').show(); + break; + + case 'showMinutes': + this.widget.find('.timepicker .timepicker-picker').hide(); + this.widget.find('.timepicker .timepicker-minutes').show(); + break; + + case 'showSeconds': + this.widget.find('.timepicker .timepicker-picker').hide(); + this.widget.find('.timepicker .timepicker-seconds').show(); + break; + + case 'selectHour': + { + var hour = parseInt($(e.target).text(), 10); + + if (!this.use24Hours) { + if (lastPicked.hours() >= 12) { + if (hour !== 12) { + hour += 12; + } + } else { + if (hour === 12) { + hour = 0; + } + } + } + + this._setValue(lastPicked.clone().hours(hour), this._getLastPickedDateIndex()); + + if (!this._isEnabled('a') && !this._isEnabled('m') && !this._options.keepOpen && !this._options.inline) { + this.hide(); + } else { + this._doAction(e, 'showPicker'); + } + + break; + } + + case 'selectMinute': + this._setValue(lastPicked.clone().minutes(parseInt($(e.target).text(), 10)), this._getLastPickedDateIndex()); + + if (!this._isEnabled('a') && !this._isEnabled('s') && !this._options.keepOpen && !this._options.inline) { + this.hide(); + } else { + this._doAction(e, 'showPicker'); + } + + break; + + case 'selectSecond': + this._setValue(lastPicked.clone().seconds(parseInt($(e.target).text(), 10)), this._getLastPickedDateIndex()); + + if (!this._isEnabled('a') && !this._options.keepOpen && !this._options.inline) { + this.hide(); + } else { + this._doAction(e, 'showPicker'); + } + + break; + + case 'clear': + this.clear(); + break; + + case 'close': + this.hide(); + break; + + case 'today': + { + var todaysDate = this.getMoment(); + + if (this._isValid(todaysDate, 'd')) { + this._setValue(todaysDate, this._getLastPickedDateIndex()); + } + + break; + } + } + + return false; + } //public + ; + + _proto2.hide = function hide() { + var transitioning = false; + + if (!this.widget) { + return; + } // Ignore event if in the middle of a picker transition + + + this.widget.find('.collapse').each(function () { + var collapseData = $(this).data('collapse'); + + if (collapseData && collapseData.transitioning) { + transitioning = true; + return false; + } + + return true; + }); + + if (transitioning) { + return; + } + + if (this.component && this.component.hasClass('btn')) { + this.component.toggleClass('active'); + } + + this.widget.hide(); + $(window).off('resize', this._place); + this.widget.off('click', '[data-action]'); + this.widget.off('mousedown', false); + this.widget.remove(); + this.widget = false; + + if (this.input !== undefined && this.input.val() !== undefined && this.input.val().trim().length !== 0) { + this._setValue(this._parseInputDate(this.input.val().trim(), { + isPickerShow: false + }), 0); + } + + var lastPickedDate = this._getLastPickedDate(); + + this._notifyEvent({ + type: DateTimePicker.Event.HIDE, + date: this.unset ? null : lastPickedDate ? lastPickedDate.clone() : void 0 + }); + + if (this.input !== undefined) { + this.input.blur(); + } + + this._viewDate = lastPickedDate ? lastPickedDate.clone() : this.getMoment(); + }; + + _proto2.show = function show() { + var currentMoment, + shouldUseCurrentIfUnset = false; + var useCurrentGranularity = { + 'year': function year(m) { + return m.month(0).date(1).hours(0).seconds(0).minutes(0); + }, + 'month': function month(m) { + return m.date(1).hours(0).seconds(0).minutes(0); + }, + 'day': function day(m) { + return m.hours(0).seconds(0).minutes(0); + }, + 'hour': function hour(m) { + return m.seconds(0).minutes(0); + }, + 'minute': function minute(m) { + return m.seconds(0); + } + }; + + if (this.input !== undefined) { + if (this.input.prop('disabled') || !this._options.ignoreReadonly && this.input.prop('readonly') || this.widget) { + return; + } + + if (this.input.val() !== undefined && this.input.val().trim().length !== 0) { + this._setValue(this._parseInputDate(this.input.val().trim(), { + isPickerShow: true + }), 0); + } else { + shouldUseCurrentIfUnset = true; + } + } else { + shouldUseCurrentIfUnset = true; + } + + if (shouldUseCurrentIfUnset && this.unset && this._options.useCurrent) { + currentMoment = this.getMoment(); + + if (typeof this._options.useCurrent === 'string') { + currentMoment = useCurrentGranularity[this._options.useCurrent](currentMoment); + } + + this._setValue(currentMoment, 0); + } + + this.widget = this._getTemplate(); + + this._fillDow(); + + this._fillMonths(); + + this.widget.find('.timepicker-hours').hide(); + this.widget.find('.timepicker-minutes').hide(); + this.widget.find('.timepicker-seconds').hide(); + + this._update(); + + this._showMode(); + + $(window).on('resize', { + picker: this + }, this._place); + this.widget.on('click', '[data-action]', $.proxy(this._doAction, this)); // this handles clicks on the widget + + this.widget.on('mousedown', false); + + if (this.component && this.component.hasClass('btn')) { + this.component.toggleClass('active'); + } + + this._place(); + + this.widget.show(); + + if (this.input !== undefined && this._options.focusOnShow && !this.input.is(':focus')) { + this.input.focus(); + } + + this._notifyEvent({ + type: DateTimePicker.Event.SHOW + }); + }; + + _proto2.destroy = function destroy() { + this.hide(); //todo doc off? + + this._element.removeData(DateTimePicker.DATA_KEY); + + this._element.removeData('date'); + }; + + _proto2.disable = function disable() { + this.hide(); + + if (this.component && this.component.hasClass('btn')) { + this.component.addClass('disabled'); + } + + if (this.input !== undefined) { + this.input.prop('disabled', true); //todo disable this/comp if input is null + } + }; + + _proto2.enable = function enable() { + if (this.component && this.component.hasClass('btn')) { + this.component.removeClass('disabled'); + } + + if (this.input !== undefined) { + this.input.prop('disabled', false); //todo enable comp/this if input is null + } + }; + + _proto2.toolbarPlacement = function toolbarPlacement(_toolbarPlacement) { + if (arguments.length === 0) { + return this._options.toolbarPlacement; + } + + if (typeof _toolbarPlacement !== 'string') { + throw new TypeError('toolbarPlacement() expects a string parameter'); + } + + if (toolbarPlacements.indexOf(_toolbarPlacement) === -1) { + throw new TypeError("toolbarPlacement() parameter must be one of (" + toolbarPlacements.join(', ') + ") value"); + } + + this._options.toolbarPlacement = _toolbarPlacement; + + if (this.widget) { + this.hide(); + this.show(); + } + }; + + _proto2.widgetPositioning = function widgetPositioning(_widgetPositioning) { + if (arguments.length === 0) { + return $.extend({}, this._options.widgetPositioning); + } + + if ({}.toString.call(_widgetPositioning) !== '[object Object]') { + throw new TypeError('widgetPositioning() expects an object variable'); + } + + if (_widgetPositioning.horizontal) { + if (typeof _widgetPositioning.horizontal !== 'string') { + throw new TypeError('widgetPositioning() horizontal variable must be a string'); + } + + _widgetPositioning.horizontal = _widgetPositioning.horizontal.toLowerCase(); + + if (horizontalModes.indexOf(_widgetPositioning.horizontal) === -1) { + throw new TypeError("widgetPositioning() expects horizontal parameter to be one of (" + horizontalModes.join(', ') + ")"); + } + + this._options.widgetPositioning.horizontal = _widgetPositioning.horizontal; + } + + if (_widgetPositioning.vertical) { + if (typeof _widgetPositioning.vertical !== 'string') { + throw new TypeError('widgetPositioning() vertical variable must be a string'); + } + + _widgetPositioning.vertical = _widgetPositioning.vertical.toLowerCase(); + + if (verticalModes.indexOf(_widgetPositioning.vertical) === -1) { + throw new TypeError("widgetPositioning() expects vertical parameter to be one of (" + verticalModes.join(', ') + ")"); + } + + this._options.widgetPositioning.vertical = _widgetPositioning.vertical; + } + + this._update(); + }; + + _proto2.widgetParent = function widgetParent(_widgetParent) { + if (arguments.length === 0) { + return this._options.widgetParent; + } + + if (typeof _widgetParent === 'string') { + _widgetParent = $(_widgetParent); + } + + if (_widgetParent !== null && typeof _widgetParent !== 'string' && !(_widgetParent instanceof $)) { + throw new TypeError('widgetParent() expects a string or a jQuery object parameter'); + } + + this._options.widgetParent = _widgetParent; + + if (this.widget) { + this.hide(); + this.show(); + } + }; + + _proto2.setMultiDate = function setMultiDate(multiDateArray) { + var dateFormat = this._options.format; + this.clear(); + + for (var index = 0; index < multiDateArray.length; index++) { + var date = moment(multiDateArray[index], dateFormat); + + this._setValue(date, index); + } + } //static + ; + + TempusDominusBootstrap4._jQueryHandleThis = function _jQueryHandleThis(me, option, argument) { + var data = $(me).data(DateTimePicker.DATA_KEY); + + if (typeof option === 'object') { + $.extend({}, DateTimePicker.Default, option); + } + + if (!data) { + data = new TempusDominusBootstrap4($(me), option); + $(me).data(DateTimePicker.DATA_KEY, data); + } + + if (typeof option === 'string') { + if (data[option] === undefined) { + throw new Error("No method named \"" + option + "\""); + } + + if (argument === undefined) { + return data[option](); + } else { + if (option === 'date') { + data.isDateUpdateThroughDateOptionFromClientCode = true; + } + + var ret = data[option](argument); + data.isDateUpdateThroughDateOptionFromClientCode = false; + return ret; + } + } + }; + + TempusDominusBootstrap4._jQueryInterface = function _jQueryInterface(option, argument) { + if (this.length === 1) { + return TempusDominusBootstrap4._jQueryHandleThis(this[0], option, argument); + } + + return this.each(function () { + TempusDominusBootstrap4._jQueryHandleThis(this, option, argument); + }); + }; + + return TempusDominusBootstrap4; + }(DateTimePicker); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + */ + + + $(document).on(DateTimePicker.Event.CLICK_DATA_API, DateTimePicker.Selector.DATA_TOGGLE, function () { + var $originalTarget = $(this), + $target = getSelectorFromElement($originalTarget), + config = $target.data(DateTimePicker.DATA_KEY); + + if ($target.length === 0) { + return; + } + + if (config._options.allowInputToggle && $originalTarget.is('input[data-toggle="datetimepicker"]')) { + return; + } + + TempusDominusBootstrap4._jQueryInterface.call($target, 'toggle'); + }).on(DateTimePicker.Event.CHANGE, "." + DateTimePicker.ClassName.INPUT, function (event) { + var $target = getSelectorFromElement($(this)); + + if ($target.length === 0 || event.isInit) { + return; + } + + TempusDominusBootstrap4._jQueryInterface.call($target, '_change', event); + }).on(DateTimePicker.Event.BLUR, "." + DateTimePicker.ClassName.INPUT, function (event) { + var $target = getSelectorFromElement($(this)), + config = $target.data(DateTimePicker.DATA_KEY); + + if ($target.length === 0) { + return; + } + + if (config._options.debug || window.debug) { + return; + } + + TempusDominusBootstrap4._jQueryInterface.call($target, 'hide', event); + }).on(DateTimePicker.Event.KEYDOWN, "." + DateTimePicker.ClassName.INPUT, function (event) { + var $target = getSelectorFromElement($(this)); + + if ($target.length === 0) { + return; + } + + TempusDominusBootstrap4._jQueryInterface.call($target, '_keydown', event); + }).on(DateTimePicker.Event.KEYUP, "." + DateTimePicker.ClassName.INPUT, function (event) { + var $target = getSelectorFromElement($(this)); + + if ($target.length === 0) { + return; + } + + TempusDominusBootstrap4._jQueryInterface.call($target, '_keyup', event); + }).on(DateTimePicker.Event.FOCUS, "." + DateTimePicker.ClassName.INPUT, function (event) { + var $target = getSelectorFromElement($(this)), + config = $target.data(DateTimePicker.DATA_KEY); + + if ($target.length === 0) { + return; + } + + if (!config._options.allowInputToggle) { + return; + } + + TempusDominusBootstrap4._jQueryInterface.call($target, 'show', event); + }); + $.fn[DateTimePicker.NAME] = TempusDominusBootstrap4._jQueryInterface; + $.fn[DateTimePicker.NAME].Constructor = TempusDominusBootstrap4; + + $.fn[DateTimePicker.NAME].noConflict = function () { + $.fn[DateTimePicker.NAME] = JQUERY_NO_CONFLICT; + return TempusDominusBootstrap4._jQueryInterface; + }; + + return TempusDominusBootstrap4; +}(jQuery); + +}(); diff --git a/static/import_export/guess_format.1e929842623e.js b/static/import_export/guess_format.1e929842623e.js new file mode 100644 index 00000000..cd1635fc --- /dev/null +++ b/static/import_export/guess_format.1e929842623e.js @@ -0,0 +1,21 @@ +(function($) { + $().ready(function () { + $('input.guess_format[type="file"]').change(function () { + var files = this.files; + var dropdowns = $(this.form).find('select.guess_format'); + if(files.length > 0) { + var extension = files[0].name.split('.').pop().trim().toLowerCase(); + for(var i = 0; i < dropdowns.length; i++) { + var dropdown = dropdowns[i]; + dropdown.selectedIndex = 0; + for(var j = 0; j < dropdown.options.length; j++) { + if(extension === dropdown.options[j].text.trim().toLowerCase()) { + dropdown.selectedIndex = j; + break; + } + } + } + } + }); + }); +})(django.jQuery); diff --git a/static/import_export/guess_format.1e929842623e.js.gz b/static/import_export/guess_format.1e929842623e.js.gz new file mode 100644 index 00000000..80c52f1d Binary files /dev/null and b/static/import_export/guess_format.1e929842623e.js.gz differ diff --git a/static/import_export/guess_format.js b/static/import_export/guess_format.js new file mode 100644 index 00000000..cd1635fc --- /dev/null +++ b/static/import_export/guess_format.js @@ -0,0 +1,21 @@ +(function($) { + $().ready(function () { + $('input.guess_format[type="file"]').change(function () { + var files = this.files; + var dropdowns = $(this.form).find('select.guess_format'); + if(files.length > 0) { + var extension = files[0].name.split('.').pop().trim().toLowerCase(); + for(var i = 0; i < dropdowns.length; i++) { + var dropdown = dropdowns[i]; + dropdown.selectedIndex = 0; + for(var j = 0; j < dropdown.options.length; j++) { + if(extension === dropdown.options[j].text.trim().toLowerCase()) { + dropdown.selectedIndex = j; + break; + } + } + } + } + }); + }); +})(django.jQuery); diff --git a/static/import_export/guess_format.js.gz b/static/import_export/guess_format.js.gz new file mode 100644 index 00000000..80c52f1d Binary files /dev/null and b/static/import_export/guess_format.js.gz differ diff --git a/static/rest_framework/css/bootstrap-theme.min.66b84a04375e.css b/static/rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css similarity index 99% rename from static/rest_framework/css/bootstrap-theme.min.66b84a04375e.css rename to static/rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css index 30c85f62..a6603536 100644 --- a/static/rest_framework/css/bootstrap-theme.min.66b84a04375e.css +++ b/static/rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css @@ -1,6 +1,6 @@ /*! - * Bootstrap v3.4.0 (https://getbootstrap.com/) - * Copyright 2011-2018 Twitter, Inc. + * Bootstrap v3.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x;background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x;background-color:#2e6da4}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} -/*# sourceMappingURL=bootstrap-theme.min.css.map */ \ No newline at end of file +/*# sourceMappingURL=bootstrap-theme.min.css.51806092cc05.map */ \ No newline at end of file diff --git a/static/rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css.gz b/static/rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css.gz new file mode 100644 index 00000000..7e4b471b Binary files /dev/null and b/static/rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css.gz differ diff --git a/static/rest_framework/css/bootstrap-theme.min.66b84a04375e.css.gz b/static/rest_framework/css/bootstrap-theme.min.66b84a04375e.css.gz deleted file mode 100644 index e1886af9..00000000 Binary files a/static/rest_framework/css/bootstrap-theme.min.66b84a04375e.css.gz and /dev/null differ diff --git a/static/rest_framework/css/bootstrap-theme.min.css b/static/rest_framework/css/bootstrap-theme.min.css index 30c85f62..2a69f48c 100644 --- a/static/rest_framework/css/bootstrap-theme.min.css +++ b/static/rest_framework/css/bootstrap-theme.min.css @@ -1,6 +1,6 @@ /*! - * Bootstrap v3.4.0 (https://getbootstrap.com/) - * Copyright 2011-2018 Twitter, Inc. + * Bootstrap v3.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x;background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x;background-color:#2e6da4}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} /*# sourceMappingURL=bootstrap-theme.min.css.map */ \ No newline at end of file diff --git a/static/rest_framework/css/bootstrap-theme.min.css.51806092cc05.map b/static/rest_framework/css/bootstrap-theme.min.css.51806092cc05.map new file mode 100644 index 00000000..5d75106e --- /dev/null +++ b/static/rest_framework/css/bootstrap-theme.min.css.51806092cc05.map @@ -0,0 +1 @@ +{"version":3,"sources":["bootstrap-theme.css","dist/css/bootstrap-theme.css","less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"AAAA;;;;ACUA,YCWA,aDbA,UAFA,aACA,aAEA,aCkBE,YAAA,EAAA,KAAA,EAAA,eC2CA,mBAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,iBF7CV,mBANA,mBACA,oBCWE,oBDRF,iBANA,iBAIA,oBANA,oBAOA,oBANA,oBAQA,oBANA,oBEmDE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBFpCV,qBAMA,sBCJE,sBDDF,uBAHA,mBAMA,oBARA,sBAMA,uBALA,sBAMA,uBAJA,sBAMA,uBAOA,+BALA,gCAGA,6BAFA,gCACA,gCAEA,gCEwBE,mBAAA,KACQ,WAAA,KFfV,mBCnCA,oBDiCA,iBAFA,oBACA,oBAEA,oBCXI,YAAA,KDgBJ,YCyBE,YAEE,iBAAA,KAKJ,aEvEI,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QAyCA,YAAA,EAAA,IAAA,EAAA,KACA,aAAA,KDnBF,mBCrBE,mBAEE,iBAAA,QACA,oBAAA,EAAA,MDuBJ,oBCpBE,oBAEE,iBAAA,QACA,aAAA,QAMA,sBD8BJ,6BANA,4BAGA,6BANA,4BAHA,4BAFA,uBAeA,8BANA,6BAGA,8BANA,6BAHA,6BAFA,gCAeA,uCANA,sCAGA,uCANA,sCAHA,sCCdM,iBAAA,QACA,iBAAA,KAoBN,aE5EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QDgEF,mBC9DE,mBAEE,iBAAA,QACA,oBAAA,EAAA,MDgEJ,oBC7DE,oBAEE,iBAAA,QACA,aAAA,QAMA,sBDuEJ,6BANA,4BAGA,6BANA,4BAHA,4BAFA,uBAeA,8BANA,6BAGA,8BANA,6BAHA,6BAFA,gCAeA,uCANA,sCAGA,uCANA,sCAHA,sCCvDM,iBAAA,QACA,iBAAA,KAqBN,aE7EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QDyGF,mBCvGE,mBAEE,iBAAA,QACA,oBAAA,EAAA,MDyGJ,oBCtGE,oBAEE,iBAAA,QACA,aAAA,QAMA,sBDgHJ,6BANA,4BAGA,6BANA,4BAHA,4BAFA,uBAeA,8BANA,6BAGA,8BANA,6BAHA,6BAFA,gCAeA,uCANA,sCAGA,uCANA,sCAHA,sCChGM,iBAAA,QACA,iBAAA,KAsBN,UE9EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QDkJF,gBChJE,gBAEE,iBAAA,QACA,oBAAA,EAAA,MDkJJ,iBC/IE,iBAEE,iBAAA,QACA,aAAA,QAMA,mBDyJJ,0BANA,yBAGA,0BANA,yBAHA,yBAFA,oBAeA,2BANA,0BAGA,2BANA,0BAHA,0BAFA,6BAeA,oCANA,mCAGA,oCANA,mCAHA,mCCzIM,iBAAA,QACA,iBAAA,KAuBN,aE/EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QD2LF,mBCzLE,mBAEE,iBAAA,QACA,oBAAA,EAAA,MD2LJ,oBCxLE,oBAEE,iBAAA,QACA,aAAA,QAMA,sBDkMJ,6BANA,4BAGA,6BANA,4BAHA,4BAFA,uBAeA,8BANA,6BAGA,8BANA,6BAHA,6BAFA,gCAeA,uCANA,sCAGA,uCANA,sCAHA,sCClLM,iBAAA,QACA,iBAAA,KAwBN,YEhFI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QDoOF,kBClOE,kBAEE,iBAAA,QACA,oBAAA,EAAA,MDoOJ,mBCjOE,mBAEE,iBAAA,QACA,aAAA,QAMA,qBD2OJ,4BANA,2BAGA,4BANA,2BAHA,2BAFA,sBAeA,6BANA,4BAGA,6BANA,4BAHA,4BAFA,+BAeA,sCANA,qCAGA,sCANA,qCAHA,qCC3NM,iBAAA,QACA,iBAAA,KD2ON,eC5MA,WCtCE,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBFsPV,0BCvMA,0BEjGI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFgGF,iBAAA,QAEF,yBD6MA,+BADA,+BGlTI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFsGF,iBAAA,QASF,gBEnHI,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,kBAAA,SCnBF,OAAA,0DHqIA,cAAA,ICrEA,mBAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,iBFuRV,sCCtNA,oCEnHI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD6CF,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBD8EV,cDoNA,iBClNE,YAAA,EAAA,IAAA,EAAA,sBAIF,gBEtII,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,kBAAA,SCnBF,OAAA,0DHwJA,cAAA,IDyNF,sCC5NA,oCEtII,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD6CF,mBAAA,MAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBDoFV,8BDuOA,iCC3NI,YAAA,EAAA,KAAA,EAAA,gBDgOJ,qBADA,kBC1NA,mBAGE,cAAA,EAIF,yBAEI,mDDwNF,yDADA,yDCpNI,MAAA,KEnKF,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,UF2KJ,OACE,YAAA,EAAA,IAAA,EAAA,qBC/HA,mBAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,gBD0IV,eE5LI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoLF,aAAA,QAKF,YE7LI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoLF,aAAA,QAMF,eE9LI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoLF,aAAA,QAOF,cE/LI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoLF,aAAA,QAeF,UEvMI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF6MJ,cEjNI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8MJ,sBElNI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF+MJ,mBEnNI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFgNJ,sBEpNI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFiNJ,qBErNI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFqNJ,sBExLI,iBAAA,yKACA,iBAAA,oKACA,iBAAA,iKF+LJ,YACE,cAAA,IClLA,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBDoLV,wBDiQA,8BADA,8BC7PE,YAAA,EAAA,KAAA,EAAA,QEzOE,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFuOF,aAAA,QALF,+BD6QA,qCADA,qCCpQI,YAAA,KAUJ,OCvME,mBAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,EAAA,IAAA,IAAA,gBDgNV,8BElQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF+PJ,8BEnQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFgQJ,8BEpQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFiQJ,2BErQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFkQJ,8BEtQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFmQJ,6BEvQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF0QJ,ME9QI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF4QF,aAAA,QC/NA,mBAAA,MAAA,EAAA,IAAA,IAAA,eAAA,CAAA,EAAA,IAAA,EAAA,qBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,eAAA,CAAA,EAAA,IAAA,EAAA","sourcesContent":["/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-repeat: repeat-x;\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n background-repeat: repeat-x;\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n background-repeat: repeat-x;\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n background-repeat: repeat-x;\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n background-repeat: repeat-x;\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n background-repeat: repeat-x;\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n background-repeat: repeat-x;\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n background-repeat: repeat-x;\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n background-repeat: repeat-x;\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n background-repeat: repeat-x;\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));\n background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-repeat: repeat-x;\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#f8f8f8));\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n background-repeat: repeat-x;\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n background-repeat: repeat-x;\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n background-repeat: repeat-x;\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n background-repeat: repeat-x;\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n background-repeat: repeat-x;\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n background-repeat: repeat-x;\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n background-repeat: repeat-x;\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n background-repeat: repeat-x;\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n background-repeat: repeat-x;\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","// stylelint-disable selector-no-qualifying-type, selector-max-compound-selectors\n\n/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);\n @shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default {\n .btn-styles(@btn-default-bg);\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0, 0, 0, .075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0, 0, 0, .075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, .25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0, 0, 0, .25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, .2);\n @shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0, 0, 0, .075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0, 0, 0, .05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);\n .box-shadow(@shadow);\n}\n","// stylelint-disable indentation, property-no-vendor-prefix, selector-no-vendor-prefix\n\n// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n word-wrap: break-word;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// stylelint-disable value-no-vendor-prefix, selector-max-id\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\", argb(@start-color), argb(@end-color))); // IE9 and down\n background-repeat: repeat-x;\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\", argb(@start-color), argb(@end-color))); // IE9 and down\n background-repeat: repeat-x;\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n background-repeat: no-repeat;\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n background-repeat: no-repeat;\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255, 255, 255, .15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} \ No newline at end of file diff --git a/static/rest_framework/css/bootstrap-theme.min.css.51806092cc05.map.gz b/static/rest_framework/css/bootstrap-theme.min.css.51806092cc05.map.gz new file mode 100644 index 00000000..5125a0a5 Binary files /dev/null and b/static/rest_framework/css/bootstrap-theme.min.css.51806092cc05.map.gz differ diff --git a/static/rest_framework/css/bootstrap-theme.min.css.gz b/static/rest_framework/css/bootstrap-theme.min.css.gz index e1886af9..9e90758f 100644 Binary files a/static/rest_framework/css/bootstrap-theme.min.css.gz and b/static/rest_framework/css/bootstrap-theme.min.css.gz differ diff --git a/static/rest_framework/css/bootstrap-theme.min.css.map b/static/rest_framework/css/bootstrap-theme.min.css.map new file mode 100644 index 00000000..5d75106e --- /dev/null +++ b/static/rest_framework/css/bootstrap-theme.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["bootstrap-theme.css","dist/css/bootstrap-theme.css","less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"AAAA;;;;ACUA,YCWA,aDbA,UAFA,aACA,aAEA,aCkBE,YAAA,EAAA,KAAA,EAAA,eC2CA,mBAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,iBF7CV,mBANA,mBACA,oBCWE,oBDRF,iBANA,iBAIA,oBANA,oBAOA,oBANA,oBAQA,oBANA,oBEmDE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBFpCV,qBAMA,sBCJE,sBDDF,uBAHA,mBAMA,oBARA,sBAMA,uBALA,sBAMA,uBAJA,sBAMA,uBAOA,+BALA,gCAGA,6BAFA,gCACA,gCAEA,gCEwBE,mBAAA,KACQ,WAAA,KFfV,mBCnCA,oBDiCA,iBAFA,oBACA,oBAEA,oBCXI,YAAA,KDgBJ,YCyBE,YAEE,iBAAA,KAKJ,aEvEI,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QAyCA,YAAA,EAAA,IAAA,EAAA,KACA,aAAA,KDnBF,mBCrBE,mBAEE,iBAAA,QACA,oBAAA,EAAA,MDuBJ,oBCpBE,oBAEE,iBAAA,QACA,aAAA,QAMA,sBD8BJ,6BANA,4BAGA,6BANA,4BAHA,4BAFA,uBAeA,8BANA,6BAGA,8BANA,6BAHA,6BAFA,gCAeA,uCANA,sCAGA,uCANA,sCAHA,sCCdM,iBAAA,QACA,iBAAA,KAoBN,aE5EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QDgEF,mBC9DE,mBAEE,iBAAA,QACA,oBAAA,EAAA,MDgEJ,oBC7DE,oBAEE,iBAAA,QACA,aAAA,QAMA,sBDuEJ,6BANA,4BAGA,6BANA,4BAHA,4BAFA,uBAeA,8BANA,6BAGA,8BANA,6BAHA,6BAFA,gCAeA,uCANA,sCAGA,uCANA,sCAHA,sCCvDM,iBAAA,QACA,iBAAA,KAqBN,aE7EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QDyGF,mBCvGE,mBAEE,iBAAA,QACA,oBAAA,EAAA,MDyGJ,oBCtGE,oBAEE,iBAAA,QACA,aAAA,QAMA,sBDgHJ,6BANA,4BAGA,6BANA,4BAHA,4BAFA,uBAeA,8BANA,6BAGA,8BANA,6BAHA,6BAFA,gCAeA,uCANA,sCAGA,uCANA,sCAHA,sCChGM,iBAAA,QACA,iBAAA,KAsBN,UE9EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QDkJF,gBChJE,gBAEE,iBAAA,QACA,oBAAA,EAAA,MDkJJ,iBC/IE,iBAEE,iBAAA,QACA,aAAA,QAMA,mBDyJJ,0BANA,yBAGA,0BANA,yBAHA,yBAFA,oBAeA,2BANA,0BAGA,2BANA,0BAHA,0BAFA,6BAeA,oCANA,mCAGA,oCANA,mCAHA,mCCzIM,iBAAA,QACA,iBAAA,KAuBN,aE/EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QD2LF,mBCzLE,mBAEE,iBAAA,QACA,oBAAA,EAAA,MD2LJ,oBCxLE,oBAEE,iBAAA,QACA,aAAA,QAMA,sBDkMJ,6BANA,4BAGA,6BANA,4BAHA,4BAFA,uBAeA,8BANA,6BAGA,8BANA,6BAHA,6BAFA,gCAeA,uCANA,sCAGA,uCANA,sCAHA,sCClLM,iBAAA,QACA,iBAAA,KAwBN,YEhFI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QDoOF,kBClOE,kBAEE,iBAAA,QACA,oBAAA,EAAA,MDoOJ,mBCjOE,mBAEE,iBAAA,QACA,aAAA,QAMA,qBD2OJ,4BANA,2BAGA,4BANA,2BAHA,2BAFA,sBAeA,6BANA,4BAGA,6BANA,4BAHA,4BAFA,+BAeA,sCANA,qCAGA,sCANA,qCAHA,qCC3NM,iBAAA,QACA,iBAAA,KD2ON,eC5MA,WCtCE,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBFsPV,0BCvMA,0BEjGI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFgGF,iBAAA,QAEF,yBD6MA,+BADA,+BGlTI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFsGF,iBAAA,QASF,gBEnHI,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,kBAAA,SCnBF,OAAA,0DHqIA,cAAA,ICrEA,mBAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,iBFuRV,sCCtNA,oCEnHI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD6CF,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBD8EV,cDoNA,iBClNE,YAAA,EAAA,IAAA,EAAA,sBAIF,gBEtII,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,kBAAA,SCnBF,OAAA,0DHwJA,cAAA,IDyNF,sCC5NA,oCEtII,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD6CF,mBAAA,MAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBDoFV,8BDuOA,iCC3NI,YAAA,EAAA,KAAA,EAAA,gBDgOJ,qBADA,kBC1NA,mBAGE,cAAA,EAIF,yBAEI,mDDwNF,yDADA,yDCpNI,MAAA,KEnKF,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,UF2KJ,OACE,YAAA,EAAA,IAAA,EAAA,qBC/HA,mBAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,gBD0IV,eE5LI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoLF,aAAA,QAKF,YE7LI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoLF,aAAA,QAMF,eE9LI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoLF,aAAA,QAOF,cE/LI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoLF,aAAA,QAeF,UEvMI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF6MJ,cEjNI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8MJ,sBElNI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF+MJ,mBEnNI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFgNJ,sBEpNI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFiNJ,qBErNI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFqNJ,sBExLI,iBAAA,yKACA,iBAAA,oKACA,iBAAA,iKF+LJ,YACE,cAAA,IClLA,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBDoLV,wBDiQA,8BADA,8BC7PE,YAAA,EAAA,KAAA,EAAA,QEzOE,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFuOF,aAAA,QALF,+BD6QA,qCADA,qCCpQI,YAAA,KAUJ,OCvME,mBAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,EAAA,IAAA,IAAA,gBDgNV,8BElQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF+PJ,8BEnQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFgQJ,8BEpQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFiQJ,2BErQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFkQJ,8BEtQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFmQJ,6BEvQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF0QJ,ME9QI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF4QF,aAAA,QC/NA,mBAAA,MAAA,EAAA,IAAA,IAAA,eAAA,CAAA,EAAA,IAAA,EAAA,qBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,eAAA,CAAA,EAAA,IAAA,EAAA","sourcesContent":["/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-repeat: repeat-x;\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n background-repeat: repeat-x;\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n background-repeat: repeat-x;\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n background-repeat: repeat-x;\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n background-repeat: repeat-x;\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n background-repeat: repeat-x;\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n background-repeat: repeat-x;\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n background-repeat: repeat-x;\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n background-repeat: repeat-x;\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n background-repeat: repeat-x;\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));\n background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-repeat: repeat-x;\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#f8f8f8));\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n background-repeat: repeat-x;\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n background-repeat: repeat-x;\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n background-repeat: repeat-x;\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n background-repeat: repeat-x;\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n background-repeat: repeat-x;\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n background-repeat: repeat-x;\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n background-repeat: repeat-x;\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n background-repeat: repeat-x;\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n background-repeat: repeat-x;\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","// stylelint-disable selector-no-qualifying-type, selector-max-compound-selectors\n\n/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);\n @shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default {\n .btn-styles(@btn-default-bg);\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0, 0, 0, .075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0, 0, 0, .075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, .25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0, 0, 0, .25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, .2);\n @shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0, 0, 0, .075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0, 0, 0, .05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);\n .box-shadow(@shadow);\n}\n","// stylelint-disable indentation, property-no-vendor-prefix, selector-no-vendor-prefix\n\n// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n word-wrap: break-word;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// stylelint-disable value-no-vendor-prefix, selector-max-id\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\", argb(@start-color), argb(@end-color))); // IE9 and down\n background-repeat: repeat-x;\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\", argb(@start-color), argb(@end-color))); // IE9 and down\n background-repeat: repeat-x;\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n background-repeat: no-repeat;\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n background-repeat: no-repeat;\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255, 255, 255, .15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} \ No newline at end of file diff --git a/static/rest_framework/css/bootstrap-theme.min.css.map.gz b/static/rest_framework/css/bootstrap-theme.min.css.map.gz new file mode 100644 index 00000000..5125a0a5 Binary files /dev/null and b/static/rest_framework/css/bootstrap-theme.min.css.map.gz differ diff --git a/static/rest_framework/css/bootstrap.min.77017a69879a.css.gz b/static/rest_framework/css/bootstrap.min.77017a69879a.css.gz deleted file mode 100644 index 7438720e..00000000 Binary files a/static/rest_framework/css/bootstrap.min.77017a69879a.css.gz and /dev/null differ diff --git a/static/rest_framework/css/bootstrap.min.css b/static/rest_framework/css/bootstrap.min.css index 7f3562ec..5b96335f 100644 --- a/static/rest_framework/css/bootstrap.min.css +++ b/static/rest_framework/css/bootstrap.min.css @@ -1,6 +1,6 @@ /*! - * Bootstrap v3.4.0 (https://getbootstrap.com/) - * Copyright 2011-2018 Twitter, Inc. + * Bootstrap v3.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:"Glyphicons Halflings";src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format("embedded-opentype"),url(../fonts/glyphicons-halflings-regular.woff2) format("woff2"),url(../fonts/glyphicons-halflings-regular.woff) format("woff"),url(../fonts/glyphicons-halflings-regular.ttf) format("truetype"),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format("svg")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:"Glyphicons Halflings";font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:"\2014 \00A0"}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:""}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:"\00A0 \2014"}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.row-no-gutters{margin-right:0;margin-left:0}.row-no-gutters [class*=col-]{padding-right:0;padding-left:0}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);opacity:.65;-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;background-image:none;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;background-image:none;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;background-image:none;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;background-image:none;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;background-image:none;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;background-image:none;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-right:15px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-right:-15px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out,-o-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:12px;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:14px;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover>.arrow{border-width:11px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out,-o-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;outline:0;filter:alpha(opacity=90);opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:"\2039"}.carousel-control .icon-next:before{content:"\203a"}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} /*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/static/rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map b/static/rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map new file mode 100644 index 00000000..0ae3de50 --- /dev/null +++ b/static/rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map @@ -0,0 +1 @@ +{"version":3,"sources":["bootstrap.css","less/normalize.less","dist/css/bootstrap.css","less/print.less","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":"AAAA;;;;AAKA,4ECKA,KACE,YAAA,WACA,qBAAA,KACA,yBAAA,KAOF,KACE,OAAA,EAaF,QCnBA,MACA,QACA,WACA,OACA,OACA,OACA,OACA,KACA,KACA,IACA,QACA,QDqBE,QAAA,MAQF,MCzBA,OACA,SACA,MD2BE,QAAA,aACA,eAAA,SAQF,sBACE,QAAA,KACA,OAAA,EAQF,SCrCA,SDuCE,QAAA,KAUF,EACE,iBAAA,YAQF,SCnDA,QDqDE,QAAA,EAWF,YACE,cAAA,KACA,gBAAA,UACA,wBAAA,UAAA,OAAA,qBAAA,UAAA,OAAA,gBAAA,UAAA,OAOF,EC/DA,ODiEE,YAAA,IAOF,IACE,WAAA,OAQF,GACE,UAAA,IACA,OAAA,MAAA,EAOF,KACE,WAAA,KACA,MAAA,KAOF,MACE,UAAA,IAOF,ICzFA,ID2FE,UAAA,IACA,YAAA,EACA,SAAA,SACA,eAAA,SAGF,IACE,IAAA,MAGF,IACE,OAAA,OAUF,IACE,OAAA,EAOF,eACE,SAAA,OAUF,OACE,OAAA,IAAA,KAOF,GACE,mBAAA,YAAA,gBAAA,YAAA,WAAA,YACA,OAAA,EAOF,IACE,SAAA,KAOF,KC7HA,IACA,IACA,KD+HE,YAAA,SAAA,CAAA,UACA,UAAA,IAkBF,OC7IA,MACA,SACA,OACA,SD+IE,MAAA,QACA,KAAA,QACA,OAAA,EAOF,OACE,SAAA,QAUF,OC1JA,OD4JE,eAAA,KAWF,OCnKA,wBACA,kBACA,mBDqKE,mBAAA,OACA,OAAA,QAOF,iBCxKA,qBD0KE,OAAA,QAOF,yBC7KA,wBD+KE,OAAA,EACA,QAAA,EAQF,MACE,YAAA,OAWF,qBC5LA,kBD8LE,mBAAA,WAAA,gBAAA,WAAA,WAAA,WACA,QAAA,EASF,8CCjMA,8CDmME,OAAA,KAQF,mBACE,mBAAA,UACA,mBAAA,YAAA,gBAAA,YAAA,WAAA,YASF,iDC5MA,8CD8ME,mBAAA,KAOF,SACE,OAAA,IAAA,MAAA,OACA,OAAA,EAAA,IACA,QAAA,MAAA,OAAA,MAQF,OACE,OAAA,EACA,QAAA,EAOF,SACE,SAAA,KAQF,SACE,YAAA,IAUF,MACE,gBAAA,SACA,eAAA,EAGF,GC3OA,GD6OE,QAAA,EDlPF,qFGhLA,aACE,ED2LA,OADA,QCvLE,MAAA,eACA,YAAA,eACA,WAAA,cACA,mBAAA,eAAA,WAAA,eAGF,ED0LA,UCxLE,gBAAA,UAGF,cACE,QAAA,KAAA,WAAA,IAGF,kBACE,QAAA,KAAA,YAAA,IAKF,mBDqLA,6BCnLE,QAAA,GDuLF,WCpLA,IAEE,OAAA,IAAA,MAAA,KACA,kBAAA,MAGF,MACE,QAAA,mBDqLF,IClLA,GAEE,kBAAA,MAGF,IACE,UAAA,eDmLF,GACA,GCjLA,EAGE,QAAA,EACA,OAAA,EAGF,GD+KA,GC7KE,iBAAA,MAMF,QACE,QAAA,KAEF,YD2KA,oBCxKI,iBAAA,eAGJ,OACE,OAAA,IAAA,MAAA,KAGF,OACE,gBAAA,mBADF,UD2KA,UCtKI,iBAAA,eD0KJ,mBCvKA,mBAGI,OAAA,IAAA,MAAA,gBCrFN,WACE,YAAA,uBACA,IAAA,+CACA,IAAA,sDAAA,2BAAA,CAAA,iDAAA,eAAA,CAAA,gDAAA,cAAA,CAAA,+CAAA,kBAAA,CAAA,2EAAA,cAQF,WACE,SAAA,SACA,IAAA,IACA,QAAA,aACA,YAAA,uBACA,WAAA,OACA,YAAA,IACA,YAAA,EACA,uBAAA,YACA,wBAAA,UAIkC,2BAAW,QAAA,QACX,uBAAW,QAAA,QF2P/C,sBEzPoC,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,2BAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,6BAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,2BAAW,QAAA,QACX,qBAAW,QAAA,QACX,0BAAW,QAAA,QACX,qBAAW,QAAA,QACX,yBAAW,QAAA,QACX,0BAAW,QAAA,QACX,2BAAW,QAAA,QACX,sBAAW,QAAA,QACX,yBAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,+BAAW,QAAA,QACX,2BAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,8BAAW,QAAA,QACX,yBAAW,QAAA,QACX,0BAAW,QAAA,QACX,2BAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,6BAAW,QAAA,QACX,6BAAW,QAAA,QACX,8BAAW,QAAA,QACX,4BAAW,QAAA,QACX,yBAAW,QAAA,QACX,0BAAW,QAAA,QACX,sBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,2BAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,yBAAW,QAAA,QACX,8BAAW,QAAA,QACX,6BAAW,QAAA,QACX,6BAAW,QAAA,QACX,+BAAW,QAAA,QACX,8BAAW,QAAA,QACX,gCAAW,QAAA,QACX,uBAAW,QAAA,QACX,8BAAW,QAAA,QACX,+BAAW,QAAA,QACX,iCAAW,QAAA,QACX,0BAAW,QAAA,QACX,6BAAW,QAAA,QACX,yBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,gCAAW,QAAA,QACX,gCAAW,QAAA,QACX,2BAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,0BAAW,QAAA,QACX,+BAAW,QAAA,QACX,+BAAW,QAAA,QACX,wBAAW,QAAA,QACX,+BAAW,QAAA,QACX,gCAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,8BAAW,QAAA,QACX,0BAAW,QAAA,QACX,gCAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,gCAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,6BAAW,QAAA,QACX,8BAAW,QAAA,QACX,2BAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QACX,8BAAW,QAAA,QACX,+BAAW,QAAA,QACX,mCAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,2BAAW,QAAA,QACX,4BAAW,QAAA,QACX,+BAAW,QAAA,QACX,wBAAW,QAAA,QACX,2BAAW,QAAA,QACX,yBAAW,QAAA,QACX,0BAAW,QAAA,QACX,yBAAW,QAAA,QACX,6BAAW,QAAA,QACX,+BAAW,QAAA,QACX,0BAAW,QAAA,QACX,gCAAW,QAAA,QACX,+BAAW,QAAA,QACX,8BAAW,QAAA,QACX,kCAAW,QAAA,QACX,oCAAW,QAAA,QACX,sBAAW,QAAA,QACX,2BAAW,QAAA,QACX,uBAAW,QAAA,QACX,8BAAW,QAAA,QACX,4BAAW,QAAA,QACX,8BAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QACX,0BAAW,QAAA,QACX,4BAAW,QAAA,QACX,qCAAW,QAAA,QACX,oCAAW,QAAA,QACX,kCAAW,QAAA,QACX,oCAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,8BAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,0BAAW,QAAA,QACX,sBAAW,QAAA,QACX,sBAAW,QAAA,QACX,uBAAW,QAAA,QACX,mCAAW,QAAA,QACX,uCAAW,QAAA,QACX,gCAAW,QAAA,QACX,oCAAW,QAAA,QACX,qCAAW,QAAA,QACX,yCAAW,QAAA,QACX,4BAAW,QAAA,QACX,yBAAW,QAAA,QACX,gCAAW,QAAA,QACX,8BAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,0BAAW,QAAA,QACX,6BAAW,QAAA,QACX,yBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,yBAAW,QAAA,QACX,uBAAW,QAAA,QACX,8BAAW,QAAA,QACX,+BAAW,QAAA,QACX,gCAAW,QAAA,QACX,8BAAW,QAAA,QACX,8BAAW,QAAA,QACX,8BAAW,QAAA,QACX,2BAAW,QAAA,QACX,0BAAW,QAAA,QACX,yBAAW,QAAA,QACX,6BAAW,QAAA,QACX,2BAAW,QAAA,QACX,4BAAW,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,2BAAW,QAAA,QACX,2BAAW,QAAA,QACX,4BAAW,QAAA,QACX,+BAAW,QAAA,QACX,8BAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,iCAAW,QAAA,QACX,oCAAW,QAAA,QACX,iCAAW,QAAA,QACX,+BAAW,QAAA,QACX,+BAAW,QAAA,QACX,iCAAW,QAAA,QACX,qBAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,2BAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QASX,wBAAW,QAAA,QACX,4BAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,yBAAW,QAAA,QACX,yBAAW,QAAA,QACX,+BAAW,QAAA,QACX,uBAAW,QAAA,QACX,6BAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,4BAAW,QAAA,QACX,uBAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,2BAAW,QAAA,QACX,0BAAW,QAAA,QACX,sBAAW,QAAA,QACX,sBAAW,QAAA,QACX,sBAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,4BAAW,QAAA,QACX,mCAAW,QAAA,QACX,4BAAW,QAAA,QACX,oCAAW,QAAA,QACX,kCAAW,QAAA,QACX,iCAAW,QAAA,QACX,+BAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,kCAAW,QAAA,QACX,mCAAW,QAAA,QACX,sCAAW,QAAA,QACX,0CAAW,QAAA,QACX,oCAAW,QAAA,QACX,wCAAW,QAAA,QACX,qCAAW,QAAA,QACX,iCAAW,QAAA,QACX,gCAAW,QAAA,QACX,kCAAW,QAAA,QACX,+BAAW,QAAA,QACX,0BAAW,QAAA,QACX,8BAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QACX,0BAAW,QAAA,QCxS/C,ECkEE,mBAAA,WACG,gBAAA,WACK,WAAA,WJo+BV,OGriCA,QC+DE,mBAAA,WACG,gBAAA,WACK,WAAA,WDzDV,KACE,UAAA,KACA,4BAAA,cAGF,KACE,YAAA,gBAAA,CAAA,SAAA,CAAA,KAAA,CAAA,WACA,UAAA,KACA,YAAA,WACA,MAAA,KACA,iBAAA,KHoiCF,OGhiCA,MHiiCA,OACA,SG9hCE,YAAA,QACA,UAAA,QACA,YAAA,QAMF,EACE,MAAA,QACA,gBAAA,KH8hCF,QG5hCE,QAEE,MAAA,QACA,gBAAA,UAGF,QEnDA,QAAA,IAAA,KAAA,yBACA,eAAA,KF6DF,OACE,OAAA,EAMF,IACE,eAAA,OHqhCF,4BADA,0BGhhCA,gBH+gCA,iBADA,eMxlCE,QAAA,MACA,UAAA,KACA,OAAA,KH6EF,aACE,cAAA,IAMF,eACE,QAAA,IACA,YAAA,WACA,iBAAA,KACA,OAAA,IAAA,MAAA,KACA,cAAA,IC+FA,mBAAA,IAAA,IAAA,YACK,cAAA,IAAA,IAAA,YACG,WAAA,IAAA,IAAA,YE5LR,QAAA,aACA,UAAA,KACA,OAAA,KHiGF,YACE,cAAA,IAMF,GACE,WAAA,KACA,cAAA,KACA,OAAA,EACA,WAAA,IAAA,MAAA,KAQF,SACE,SAAA,SACA,MAAA,IACA,OAAA,IACA,QAAA,EACA,OAAA,KACA,SAAA,OACA,KAAA,cACA,OAAA,EAQA,0BH8/BF,yBG5/BI,SAAA,OACA,MAAA,KACA,OAAA,KACA,OAAA,EACA,SAAA,QACA,KAAA,KAWJ,cACE,OAAA,QH4/BF,IACA,IACA,IACA,IACA,IACA,IOtpCA,GP4oCA,GACA,GACA,GACA,GACA,GO9oCE,YAAA,QACA,YAAA,IACA,YAAA,IACA,MAAA,QPyqCF,WAZA,UAaA,WAZA,UAaA,WAZA,UAaA,WAZA,UAaA,WAZA,UAaA,WAZA,UACA,UOxqCA,SPyqCA,UAZA,SAaA,UAZA,SAaA,UAZA,SAaA,UAZA,SAaA,UAZA,SOxpCI,YAAA,IACA,YAAA,EACA,MAAA,KP8qCJ,IAEA,IAEA,IO9qCA,GP2qCA,GAEA,GO1qCE,WAAA,KACA,cAAA,KPqrCF,WANA,UAQA,WANA,UAQA,WANA,UACA,UOxrCA,SP0rCA,UANA,SAQA,UANA,SO9qCI,UAAA,IPyrCJ,IAEA,IAEA,IO1rCA,GPurCA,GAEA,GOtrCE,WAAA,KACA,cAAA,KPisCF,WANA,UAQA,WANA,UAQA,WANA,UACA,UOpsCA,SPssCA,UANA,SAQA,UANA,SO1rCI,UAAA,IPqsCJ,IOjsCA,GAAU,UAAA,KPqsCV,IOpsCA,GAAU,UAAA,KPwsCV,IOvsCA,GAAU,UAAA,KP2sCV,IO1sCA,GAAU,UAAA,KP8sCV,IO7sCA,GAAU,UAAA,KPitCV,IOhtCA,GAAU,UAAA,KAMV,EACE,OAAA,EAAA,EAAA,KAGF,MACE,cAAA,KACA,UAAA,KACA,YAAA,IACA,YAAA,IAEA,yBAAA,MACE,UAAA,MPitCJ,OOxsCA,MAEE,UAAA,IP0sCF,MOvsCA,KAEE,QAAA,KACA,iBAAA,QAIF,WAAuB,WAAA,KACvB,YAAuB,WAAA,MACvB,aAAuB,WAAA,OACvB,cAAuB,WAAA,QACvB,aAAuB,YAAA,OAGvB,gBAAuB,eAAA,UACvB,gBAAuB,eAAA,UACvB,iBAAuB,eAAA,WAGvB,YACE,MAAA,KAEF,cCvGE,MAAA,QR2zCF,qBQ1zCE,qBAEE,MAAA,QDuGJ,cC1GE,MAAA,QRk0CF,qBQj0CE,qBAEE,MAAA,QD0GJ,WC7GE,MAAA,QRy0CF,kBQx0CE,kBAEE,MAAA,QD6GJ,cChHE,MAAA,QRg1CF,qBQ/0CE,qBAEE,MAAA,QDgHJ,aCnHE,MAAA,QRu1CF,oBQt1CE,oBAEE,MAAA,QDuHJ,YAGE,MAAA,KE7HA,iBAAA,QT+1CF,mBS91CE,mBAEE,iBAAA,QF6HJ,YEhIE,iBAAA,QTs2CF,mBSr2CE,mBAEE,iBAAA,QFgIJ,SEnIE,iBAAA,QT62CF,gBS52CE,gBAEE,iBAAA,QFmIJ,YEtIE,iBAAA,QTo3CF,mBSn3CE,mBAEE,iBAAA,QFsIJ,WEzIE,iBAAA,QT23CF,kBS13CE,kBAEE,iBAAA,QF8IJ,aACE,eAAA,IACA,OAAA,KAAA,EAAA,KACA,cAAA,IAAA,MAAA,KPgvCF,GOxuCA,GAEE,WAAA,EACA,cAAA,KP4uCF,MAFA,MACA,MO9uCA,MAMI,cAAA,EAOJ,eACE,aAAA,EACA,WAAA,KAIF,aALE,aAAA,EACA,WAAA,KAMA,YAAA,KAFF,gBAKI,QAAA,aACA,cAAA,IACA,aAAA,IAKJ,GACE,WAAA,EACA,cAAA,KPouCF,GOluCA,GAEE,YAAA,WAEF,GACE,YAAA,IAEF,GACE,YAAA,EAaA,yBAAA,kBAEI,MAAA,KACA,MAAA,MACA,MAAA,KACA,WAAA,MGxNJ,SAAA,OACA,cAAA,SACA,YAAA,OHiNA,kBASI,YAAA,OP4tCN,0BOjtCA,YAEE,OAAA,KAGF,YACE,UAAA,IA9IqB,eAAA,UAmJvB,WACE,QAAA,KAAA,KACA,OAAA,EAAA,EAAA,KACA,UAAA,OACA,YAAA,IAAA,MAAA,KPitCF,yBO5sCI,wBP2sCJ,yBO1sCM,cAAA,EPgtCN,kBO1tCA,kBPytCA,iBOtsCI,QAAA,MACA,UAAA,IACA,YAAA,WACA,MAAA,KP4sCJ,yBO1sCI,yBPysCJ,wBOxsCM,QAAA,cAQN,oBPqsCA,sBOnsCE,cAAA,KACA,aAAA,EACA,WAAA,MACA,aAAA,IAAA,MAAA,KACA,YAAA,EP0sCF,kCOpsCI,kCPksCJ,iCAGA,oCAJA,oCAEA,mCOnsCe,QAAA,GP4sCf,iCO3sCI,iCPysCJ,gCAGA,mCAJA,mCAEA,kCOzsCM,QAAA,cAMN,QACE,cAAA,KACA,WAAA,OACA,YAAA,WIxSF,KXm/CA,IACA,IACA,KWj/CE,YAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,aAAA,CAAA,UAIF,KACE,QAAA,IAAA,IACA,UAAA,IACA,MAAA,QACA,iBAAA,QACA,cAAA,IAIF,IACE,QAAA,IAAA,IACA,UAAA,IACA,MAAA,KACA,iBAAA,KACA,cAAA,IACA,mBAAA,MAAA,EAAA,KAAA,EAAA,gBAAA,WAAA,MAAA,EAAA,KAAA,EAAA,gBANF,QASI,QAAA,EACA,UAAA,KACA,YAAA,IACA,mBAAA,KAAA,WAAA,KAKJ,IACE,QAAA,MACA,QAAA,MACA,OAAA,EAAA,EAAA,KACA,UAAA,KACA,YAAA,WACA,MAAA,KACA,WAAA,UACA,UAAA,WACA,iBAAA,QACA,OAAA,IAAA,MAAA,KACA,cAAA,IAXF,SAeI,QAAA,EACA,UAAA,QACA,MAAA,QACA,YAAA,SACA,iBAAA,YACA,cAAA,EAKJ,gBACE,WAAA,MACA,WAAA,OC1DF,WCHE,cAAA,KACA,aAAA,KACA,aAAA,KACA,YAAA,KDGA,yBAAA,WACE,MAAA,OAEF,yBAAA,WACE,MAAA,OAEF,0BAAA,WACE,MAAA,QAUJ,iBCvBE,cAAA,KACA,aAAA,KACA,aAAA,KACA,YAAA,KD6BF,KCvBE,aAAA,MACA,YAAA,MD0BF,gBACE,aAAA,EACA,YAAA,EAFF,8BAKI,cAAA,EACA,aAAA,EZwiDJ,UAoCA,WAIA,WAIA,WAxCA,UAIA,UAIA,UAIA,UAIA,UAIA,UAIA,UAIA,UAjCA,UAoCA,WAIA,WAIA,WAxCA,UAIA,UAIA,UAIA,UAIA,UAIA,UAIA,UAIA,UAjCA,UAoCA,WAIA,WAIA,WAxCA,UAIA,UAIA,UAIA,UAIA,UAIA,UAIA,UAIA,UatnDC,UbynDD,WAIA,WAIA,WAxCA,UAIA,UAIA,UAIA,UAIA,UAIA,UAIA,UAIA,UcpmDM,SAAA,SAEA,WAAA,IAEA,cAAA,KACA,aAAA,KDtBL,UbmpDD,WACA,WACA,WAVA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,Uc3mDM,MAAA,KDvCL,WC+CG,MAAA,KD/CH,WC+CG,MAAA,aD/CH,WC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,YD/CH,gBC8DG,MAAA,KD9DH,gBC8DG,MAAA,aD9DH,gBC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,YD9DH,eCmEG,MAAA,KDnEH,gBCoDG,KAAA,KDpDH,gBCoDG,KAAA,aDpDH,gBCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,YDpDH,eCyDG,KAAA,KDzDH,kBCwEG,YAAA,KDxEH,kBCwEG,YAAA,aDxEH,kBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,YDxEH,iBCwEG,YAAA,EFCJ,yBCzEC,Ub2zDC,WACA,WACA,WAVA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UcnxDI,MAAA,KDvCL,WC+CG,MAAA,KD/CH,WC+CG,MAAA,aD/CH,WC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,YD/CH,gBC8DG,MAAA,KD9DH,gBC8DG,MAAA,aD9DH,gBC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,YD9DH,eCmEG,MAAA,KDnEH,gBCoDG,KAAA,KDpDH,gBCoDG,KAAA,aDpDH,gBCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,YDpDH,eCyDG,KAAA,KDzDH,kBCwEG,YAAA,KDxEH,kBCwEG,YAAA,aDxEH,kBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,YDxEH,iBCwEG,YAAA,GFUJ,yBClFC,Ubo+DC,WACA,WACA,WAVA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,Uc57DI,MAAA,KDvCL,WC+CG,MAAA,KD/CH,WC+CG,MAAA,aD/CH,WC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,YD/CH,gBC8DG,MAAA,KD9DH,gBC8DG,MAAA,aD9DH,gBC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,YD9DH,eCmEG,MAAA,KDnEH,gBCoDG,KAAA,KDpDH,gBCoDG,KAAA,aDpDH,gBCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,YDpDH,eCyDG,KAAA,KDzDH,kBCwEG,YAAA,KDxEH,kBCwEG,YAAA,aDxEH,kBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,YDxEH,iBCwEG,YAAA,GFmBJ,0BC3FC,Ub6oEC,WACA,WACA,WAVA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UcrmEI,MAAA,KDvCL,WC+CG,MAAA,KD/CH,WC+CG,MAAA,aD/CH,WC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,YD/CH,gBC8DG,MAAA,KD9DH,gBC8DG,MAAA,aD9DH,gBC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,YD9DH,eCmEG,MAAA,KDnEH,gBCoDG,KAAA,KDpDH,gBCoDG,KAAA,aDpDH,gBCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,YDpDH,eCyDG,KAAA,KDzDH,kBCwEG,YAAA,KDxEH,kBCwEG,YAAA,aDxEH,kBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,YDxEH,iBCwEG,YAAA,GCjEJ,MACE,iBAAA,YADF,uBAQI,SAAA,OACA,QAAA,aACA,MAAA,KAKA,sBf+xEJ,sBe9xEM,SAAA,OACA,QAAA,WACA,MAAA,KAKN,QACE,YAAA,IACA,eAAA,IACA,MAAA,KACA,WAAA,KAGF,GACE,WAAA,KAMF,OACE,MAAA,KACA,UAAA,KACA,cAAA,Kf6xEF,mBAHA,mBAIA,mBAHA,mBACA,mBe/xEA,mBAWQ,QAAA,IACA,YAAA,WACA,eAAA,IACA,WAAA,IAAA,MAAA,KAdR,mBAoBI,eAAA,OACA,cAAA,IAAA,MAAA,KfyxEJ,uCe9yEA,uCf+yEA,wCAHA,wCAIA,2CAHA,2Ce/wEQ,WAAA,EA9BR,mBAoCI,WAAA,IAAA,MAAA,KApCJ,cAyCI,iBAAA,KfoxEJ,6BAHA,6BAIA,6BAHA,6BACA,6Be5wEA,6BAOQ,QAAA,IAWR,gBACE,OAAA,IAAA,MAAA,KfqwEF,4BAHA,4BAIA,4BAHA,4BACA,4BerwEA,4BAQQ,OAAA,IAAA,MAAA,KfmwER,4Be3wEA,4BAeM,oBAAA,IAUN,yCAEI,iBAAA,QASJ,4BAEI,iBAAA,QfqvEJ,0BAGA,0BATA,0BAGA,0BAIA,0BAGA,0BATA,0BAGA,0BACA,0BAGA,0BgBt4EE,0BhBg4EF,0BgBz3EM,iBAAA,QhBs4EN,sCAEA,sCADA,oCgBj4EE,sChB+3EF,sCgBz3EM,iBAAA,QhBs4EN,2BAGA,2BATA,2BAGA,2BAIA,2BAGA,2BATA,2BAGA,2BACA,2BAGA,2BgB35EE,2BhBq5EF,2BgB94EM,iBAAA,QhB25EN,uCAEA,uCADA,qCgBt5EE,uChBo5EF,uCgB94EM,iBAAA,QhB25EN,wBAGA,wBATA,wBAGA,wBAIA,wBAGA,wBATA,wBAGA,wBACA,wBAGA,wBgBh7EE,wBhB06EF,wBgBn6EM,iBAAA,QhBg7EN,oCAEA,oCADA,kCgB36EE,oChBy6EF,oCgBn6EM,iBAAA,QhBg7EN,2BAGA,2BATA,2BAGA,2BAIA,2BAGA,2BATA,2BAGA,2BACA,2BAGA,2BgBr8EE,2BhB+7EF,2BgBx7EM,iBAAA,QhBq8EN,uCAEA,uCADA,qCgBh8EE,uChB87EF,uCgBx7EM,iBAAA,QhBq8EN,0BAGA,0BATA,0BAGA,0BAIA,0BAGA,0BATA,0BAGA,0BACA,0BAGA,0BgB19EE,0BhBo9EF,0BgB78EM,iBAAA,QhB09EN,sCAEA,sCADA,oCgBr9EE,sChBm9EF,sCgB78EM,iBAAA,QDoJN,kBACE,WAAA,KACA,WAAA,KAEA,oCAAA,kBACE,MAAA,KACA,cAAA,KACA,WAAA,OACA,mBAAA,yBACA,OAAA,IAAA,MAAA,KALF,yBASI,cAAA,Efq0EJ,qCAHA,qCAIA,qCAHA,qCACA,qCe70EA,qCAkBU,YAAA,OAlBV,kCA0BI,OAAA,Ef+zEJ,0DAHA,0DAIA,0DAHA,0DACA,0Dex1EA,0DAmCU,YAAA,Ef8zEV,yDAHA,yDAIA,yDAHA,yDACA,yDeh2EA,yDAuCU,aAAA,Efg0EV,yDev2EA,yDfw2EA,yDAFA,yDelzEU,cAAA,GEzNZ,SAIE,UAAA,EACA,QAAA,EACA,OAAA,EACA,OAAA,EAGF,OACE,QAAA,MACA,MAAA,KACA,QAAA,EACA,cAAA,KACA,UAAA,KACA,YAAA,QACA,MAAA,KACA,OAAA,EACA,cAAA,IAAA,MAAA,QAGF,MACE,QAAA,aACA,UAAA,KACA,cAAA,IACA,YAAA,IAUF,mBb6BE,mBAAA,WACG,gBAAA,WACK,WAAA,WarBR,mBAAA,KACA,gBAAA,KAAA,WAAA,KjBkgFF,qBiB9/EA,kBAEE,OAAA,IAAA,EAAA,EACA,WAAA,MACA,YAAA,OjBogFF,wCADA,qCADA,8BAFA,+BACA,2BiB3/EE,4BAGE,OAAA,YAIJ,iBACE,QAAA,MAIF,kBACE,QAAA,MACA,MAAA,KAIF,iBjBu/EA,aiBr/EE,OAAA,KjB0/EF,2BiBt/EA,uBjBq/EA,wBK/kFE,QAAA,IAAA,KAAA,yBACA,eAAA,KYgGF,OACE,QAAA,MACA,YAAA,IACA,UAAA,KACA,YAAA,WACA,MAAA,KA0BF,cACE,QAAA,MACA,MAAA,KACA,OAAA,KACA,QAAA,IAAA,KACA,UAAA,KACA,YAAA,WACA,MAAA,KACA,iBAAA,KACA,iBAAA,KACA,OAAA,IAAA,MAAA,KACA,cAAA,Ib3EA,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBAyHR,mBAAA,aAAA,YAAA,IAAA,CAAA,WAAA,YAAA,KACK,cAAA,aAAA,YAAA,IAAA,CAAA,WAAA,YAAA,KACG,mBAAA,aAAA,YAAA,IAAA,CAAA,mBAAA,YAAA,KAAA,WAAA,aAAA,YAAA,IAAA,CAAA,mBAAA,YAAA,KAAA,WAAA,aAAA,YAAA,IAAA,CAAA,WAAA,YAAA,KAAA,WAAA,aAAA,YAAA,IAAA,CAAA,WAAA,YAAA,IAAA,CAAA,mBAAA,YAAA,Kc1IR,oBACE,aAAA,QACA,QAAA,EdYF,mBAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,CAAA,EAAA,EAAA,IAAA,qBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,CAAA,EAAA,EAAA,IAAA,qBAiCR,gCACE,MAAA,KACA,QAAA,EAEF,oCAA0B,MAAA,KAC1B,yCAAgC,MAAA,Ka+ChC,0BACE,iBAAA,YACA,OAAA,EAQF,wBjBq+EF,wBACA,iCiBn+EI,iBAAA,KACA,QAAA,EAGF,wBjBo+EF,iCiBl+EI,OAAA,YAIF,sBACE,OAAA,KAcJ,qDAKI,8BjBm9EF,wCACA,+BAFA,8BiBj9EI,YAAA,KjB09EJ,iCAEA,2CACA,kCAFA,iCiBx9EE,0BjBq9EF,oCACA,2BAFA,0BiBl9EI,YAAA,KjB+9EJ,iCAEA,2CACA,kCAFA,iCiB79EE,0BjB09EF,oCACA,2BAFA,0BiBv9EI,YAAA,MAWN,YACE,cAAA,KjBy9EF,UiBj9EA,OAEE,SAAA,SACA,QAAA,MACA,WAAA,KACA,cAAA,KjBm9EF,yBiBh9EE,sBjBk9EF,mCADA,gCiB98EM,OAAA,YjBm9EN,gBiB99EA,aAgBI,WAAA,KACA,aAAA,KACA,cAAA,EACA,YAAA,IACA,OAAA,QjBm9EJ,+BACA,sCiBj9EA,yBjB+8EA,gCiB38EE,SAAA,SACA,WAAA,MACA,YAAA,MjBi9EF,oBiB98EA,cAEE,WAAA,KjBg9EF,iBiB58EA,cAEE,SAAA,SACA,QAAA,aACA,aAAA,KACA,cAAA,EACA,YAAA,IACA,eAAA,OACA,OAAA,QjB88EF,0BiB38EE,uBjB68EF,oCADA,iCiB18EI,OAAA,YjB+8EJ,kCiB58EA,4BAEE,WAAA,EACA,YAAA,KASF,qBACE,WAAA,KAEA,YAAA,IACA,eAAA,IAEA,cAAA,EAEA,8BjBm8EF,8BiBj8EI,cAAA,EACA,aAAA,EAaJ,UC3PE,OAAA,KACA,QAAA,IAAA,KACA,UAAA,KACA,YAAA,IACA,cAAA,IAEA,gBACE,OAAA,KACA,YAAA,KlBsrFJ,0BkBnrFE,kBAEE,OAAA,KDiPJ,6BAEI,OAAA,KACA,QAAA,IAAA,KACA,UAAA,KACA,YAAA,IACA,cAAA,IANJ,mCASI,OAAA,KACA,YAAA,KjBq8EJ,6CiB/8EA,qCAcI,OAAA,KAdJ,oCAiBI,OAAA,KACA,WAAA,KACA,QAAA,IAAA,KACA,UAAA,KACA,YAAA,IAIJ,UCvRE,OAAA,KACA,QAAA,KAAA,KACA,UAAA,KACA,YAAA,UACA,cAAA,IAEA,gBACE,OAAA,KACA,YAAA,KlB2tFJ,0BkBxtFE,kBAEE,OAAA,KD6QJ,6BAEI,OAAA,KACA,QAAA,KAAA,KACA,UAAA,KACA,YAAA,UACA,cAAA,IANJ,mCASI,OAAA,KACA,YAAA,KjB88EJ,6CiBx9EA,qCAcI,OAAA,KAdJ,oCAiBI,OAAA,KACA,WAAA,KACA,QAAA,KAAA,KACA,UAAA,KACA,YAAA,UASJ,cAEE,SAAA,SAFF,4BAMI,cAAA,OAIJ,uBACE,SAAA,SACA,IAAA,EACA,MAAA,EACA,QAAA,EACA,QAAA,MACA,MAAA,KACA,OAAA,KACA,YAAA,KACA,WAAA,OACA,eAAA,KjBo8EF,oDADA,uCiBj8EA,iCAGE,MAAA,KACA,OAAA,KACA,YAAA,KjBo8EF,oDADA,uCiBj8EA,iCAGE,MAAA,KACA,OAAA,KACA,YAAA,KjBq8EF,uBAEA,8BAJA,4BiB/7EA,yBjBg8EA,oBAEA,2BAGA,4BAEA,mCAHA,yBAEA,gCkBx1FI,MAAA,QDkZJ,2BC9YI,aAAA,QdiDF,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBchDN,iCACE,aAAA,Qd8CJ,mBAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,CAAA,EAAA,EAAA,IAAA,QACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,CAAA,EAAA,EAAA,IAAA,Qa4VV,gCCpYI,MAAA,QACA,iBAAA,QACA,aAAA,QDkYJ,oCC9XI,MAAA,QlB61FJ,uBAEA,8BAJA,4BiB19EA,yBjB29EA,oBAEA,2BAGA,4BAEA,mCAHA,yBAEA,gCkBt3FI,MAAA,QDqZJ,2BCjZI,aAAA,QdiDF,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBchDN,iCACE,aAAA,Qd8CJ,mBAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,CAAA,EAAA,EAAA,IAAA,QACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,CAAA,EAAA,EAAA,IAAA,Qa+VV,gCCvYI,MAAA,QACA,iBAAA,QACA,aAAA,QDqYJ,oCCjYI,MAAA,QlB23FJ,qBAEA,4BAJA,0BiBr/EA,uBjBs/EA,kBAEA,yBAGA,0BAEA,iCAHA,uBAEA,8BkBp5FI,MAAA,QDwZJ,yBCpZI,aAAA,QdiDF,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBchDN,+BACE,aAAA,Qd8CJ,mBAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,CAAA,EAAA,EAAA,IAAA,QACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,CAAA,EAAA,EAAA,IAAA,QakWV,8BC1YI,MAAA,QACA,iBAAA,QACA,aAAA,QDwYJ,kCCpYI,MAAA,QD2YF,2CACE,IAAA,KAEF,mDACE,IAAA,EAUJ,YACE,QAAA,MACA,WAAA,IACA,cAAA,KACA,MAAA,QAkBA,yBAAA,yBAGI,QAAA,aACA,cAAA,EACA,eAAA,OALJ,2BAUI,QAAA,aACA,MAAA,KACA,eAAA,OAZJ,kCAiBI,QAAA,aAjBJ,0BAqBI,QAAA,aACA,eAAA,OjBi/EJ,wCiBvgFA,6CjBsgFA,2CiB3+EM,MAAA,KA3BN,wCAiCI,MAAA,KAjCJ,4BAqCI,cAAA,EACA,eAAA,OjB4+EJ,uBiBlhFA,oBA6CI,QAAA,aACA,WAAA,EACA,cAAA,EACA,eAAA,OjBy+EJ,6BiBzhFA,0BAmDM,aAAA,EjB0+EN,4CiB7hFA,sCAwDI,SAAA,SACA,YAAA,EAzDJ,kDA8DI,IAAA,GjBw+EN,2BAEA,kCiB/9EA,wBjB89EA,+BiBr9EI,YAAA,IACA,WAAA,EACA,cAAA,EjB09EJ,2BiBr+EA,wBAiBI,WAAA,KAjBJ,6BJ9gBE,aAAA,MACA,YAAA,MIwiBA,yBAAA,gCAEI,YAAA,IACA,cAAA,EACA,WAAA,OA/BN,sDAwCI,MAAA,KAQA,yBAAA,+CAEI,YAAA,KACA,UAAA,MAKJ,yBAAA,+CAEI,YAAA,IACA,UAAA,ME9kBR,KACE,QAAA,aACA,cAAA,EACA,YAAA,IACA,WAAA,OACA,YAAA,OACA,eAAA,OACA,iBAAA,aAAA,aAAA,aACA,OAAA,QACA,iBAAA,KACA,OAAA,IAAA,MAAA,YCoCA,QAAA,IAAA,KACA,UAAA,KACA,YAAA,WACA,cAAA,IhBqKA,oBAAA,KACG,iBAAA,KACC,gBAAA,KACI,YAAA,KJs1FV,kBAHA,kBACA,WACA,kBAHA,kBmB1hGI,WdrBF,QAAA,IAAA,KAAA,yBACA,eAAA,KLwjGF,WADA,WmB7hGE,WAGE,MAAA,KACA,gBAAA,KnB+hGJ,YmB5hGE,YAEE,iBAAA,KACA,QAAA,Ef2BF,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBexBR,cnB4hGF,eACA,wBmB1hGI,OAAA,YE9CF,OAAA,kBACA,QAAA,IjBiEA,mBAAA,KACQ,WAAA,KefN,enB4hGJ,yBmB1hGM,eAAA,KASN,aC7DE,MAAA,KACA,iBAAA,KACA,aAAA,KpBqlGF,mBoBnlGE,mBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAEF,mBACE,MAAA,KACA,iBAAA,QACA,aAAA,QpBqlGJ,oBoBnlGE,oBpBolGF,mCoBjlGI,MAAA,KACA,iBAAA,QACA,iBAAA,KACA,aAAA,QpB2lGJ,0BAHA,0BAHA,0BAKA,0BAHA,0BoBrlGI,0BpB0lGJ,yCAHA,yCAHA,yCoBjlGM,MAAA,KACA,iBAAA,QACA,aAAA,QpBgmGN,4BAHA,4BoBvlGI,4BpB2lGJ,6BAHA,6BAHA,6BAOA,sCAHA,sCAHA,sCoBnlGM,iBAAA,KACA,aAAA,KDuBN,oBClBI,MAAA,KACA,iBAAA,KDoBJ,aChEE,MAAA,KACA,iBAAA,QACA,aAAA,QpB0oGF,mBoBxoGE,mBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAEF,mBACE,MAAA,KACA,iBAAA,QACA,aAAA,QpB0oGJ,oBoBxoGE,oBpByoGF,mCoBtoGI,MAAA,KACA,iBAAA,QACA,iBAAA,KACA,aAAA,QpBgpGJ,0BAHA,0BAHA,0BAKA,0BAHA,0BoB1oGI,0BpB+oGJ,yCAHA,yCAHA,yCoBtoGM,MAAA,KACA,iBAAA,QACA,aAAA,QpBqpGN,4BAHA,4BoB5oGI,4BpBgpGJ,6BAHA,6BAHA,6BAOA,sCAHA,sCAHA,sCoBxoGM,iBAAA,QACA,aAAA,QD0BN,oBCrBI,MAAA,QACA,iBAAA,KDwBJ,aCpEE,MAAA,KACA,iBAAA,QACA,aAAA,QpB+rGF,mBoB7rGE,mBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAEF,mBACE,MAAA,KACA,iBAAA,QACA,aAAA,QpB+rGJ,oBoB7rGE,oBpB8rGF,mCoB3rGI,MAAA,KACA,iBAAA,QACA,iBAAA,KACA,aAAA,QpBqsGJ,0BAHA,0BAHA,0BAKA,0BAHA,0BoB/rGI,0BpBosGJ,yCAHA,yCAHA,yCoB3rGM,MAAA,KACA,iBAAA,QACA,aAAA,QpB0sGN,4BAHA,4BoBjsGI,4BpBqsGJ,6BAHA,6BAHA,6BAOA,sCAHA,sCAHA,sCoB7rGM,iBAAA,QACA,aAAA,QD8BN,oBCzBI,MAAA,QACA,iBAAA,KD4BJ,UCxEE,MAAA,KACA,iBAAA,QACA,aAAA,QpBovGF,gBoBlvGE,gBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAEF,gBACE,MAAA,KACA,iBAAA,QACA,aAAA,QpBovGJ,iBoBlvGE,iBpBmvGF,gCoBhvGI,MAAA,KACA,iBAAA,QACA,iBAAA,KACA,aAAA,QpB0vGJ,uBAHA,uBAHA,uBAKA,uBAHA,uBoBpvGI,uBpByvGJ,sCAHA,sCAHA,sCoBhvGM,MAAA,KACA,iBAAA,QACA,aAAA,QpB+vGN,yBAHA,yBoBtvGI,yBpB0vGJ,0BAHA,0BAHA,0BAOA,mCAHA,mCAHA,mCoBlvGM,iBAAA,QACA,aAAA,QDkCN,iBC7BI,MAAA,QACA,iBAAA,KDgCJ,aC5EE,MAAA,KACA,iBAAA,QACA,aAAA,QpByyGF,mBoBvyGE,mBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAEF,mBACE,MAAA,KACA,iBAAA,QACA,aAAA,QpByyGJ,oBoBvyGE,oBpBwyGF,mCoBryGI,MAAA,KACA,iBAAA,QACA,iBAAA,KACA,aAAA,QpB+yGJ,0BAHA,0BAHA,0BAKA,0BAHA,0BoBzyGI,0BpB8yGJ,yCAHA,yCAHA,yCoBryGM,MAAA,KACA,iBAAA,QACA,aAAA,QpBozGN,4BAHA,4BoB3yGI,4BpB+yGJ,6BAHA,6BAHA,6BAOA,sCAHA,sCAHA,sCoBvyGM,iBAAA,QACA,aAAA,QDsCN,oBCjCI,MAAA,QACA,iBAAA,KDoCJ,YChFE,MAAA,KACA,iBAAA,QACA,aAAA,QpB81GF,kBoB51GE,kBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAEF,kBACE,MAAA,KACA,iBAAA,QACA,aAAA,QpB81GJ,mBoB51GE,mBpB61GF,kCoB11GI,MAAA,KACA,iBAAA,QACA,iBAAA,KACA,aAAA,QpBo2GJ,yBAHA,yBAHA,yBAKA,yBAHA,yBoB91GI,yBpBm2GJ,wCAHA,wCAHA,wCoB11GM,MAAA,KACA,iBAAA,QACA,aAAA,QpBy2GN,2BAHA,2BoBh2GI,2BpBo2GJ,4BAHA,4BAHA,4BAOA,qCAHA,qCAHA,qCoB51GM,iBAAA,QACA,aAAA,QD0CN,mBCrCI,MAAA,QACA,iBAAA,KD6CJ,UACE,YAAA,IACA,MAAA,QACA,cAAA,EAEA,UnBwzGF,iBADA,iBAEA,oBACA,6BmBrzGI,iBAAA,YfnCF,mBAAA,KACQ,WAAA,KeqCR,UnB0zGF,iBADA,gBADA,gBmBpzGI,aAAA,YnB0zGJ,gBmBxzGE,gBAEE,MAAA,QACA,gBAAA,UACA,iBAAA,YnB2zGJ,0BmBvzGI,0BnBwzGJ,mCAFA,mCmBpzGM,MAAA,KACA,gBAAA,KnB0zGN,mBmBjzGA,QC9EE,QAAA,KAAA,KACA,UAAA,KACA,YAAA,UACA,cAAA,IpBm4GF,mBmBpzGA,QClFE,QAAA,IAAA,KACA,UAAA,KACA,YAAA,IACA,cAAA,IpB04GF,mBmBvzGA,QCtFE,QAAA,IAAA,IACA,UAAA,KACA,YAAA,IACA,cAAA,ID2FF,WACE,QAAA,MACA,MAAA,KAIF,sBACE,WAAA,InBuzGF,6BADA,4BmB/yGE,6BACE,MAAA,KG1JJ,MACE,QAAA,ElBoLA,mBAAA,QAAA,KAAA,OACK,cAAA,QAAA,KAAA,OACG,WAAA,QAAA,KAAA,OkBnLR,SACE,QAAA,EAIJ,UACE,QAAA,KAEA,aAAY,QAAA,MACZ,eAAY,QAAA,UACZ,kBAAY,QAAA,gBAGd,YACE,SAAA,SACA,OAAA,EACA,SAAA,OlBsKA,4BAAA,MAAA,CAAA,WACQ,uBAAA,MAAA,CAAA,WAAA,oBAAA,MAAA,CAAA,WAOR,4BAAA,KACQ,uBAAA,KAAA,oBAAA,KAGR,mCAAA,KACQ,8BAAA,KAAA,2BAAA,KmB5MV,OACE,QAAA,aACA,MAAA,EACA,OAAA,EACA,YAAA,IACA,eAAA,OACA,WAAA,IAAA,OACA,WAAA,IAAA,QACA,aAAA,IAAA,MAAA,YACA,YAAA,IAAA,MAAA,YvBu/GF,UuBn/GA,QAEE,SAAA,SAIF,uBACE,QAAA,EAIF,eACE,SAAA,SACA,IAAA,KACA,KAAA,EACA,QAAA,KACA,QAAA,KACA,MAAA,KACA,UAAA,MACA,QAAA,IAAA,EACA,OAAA,IAAA,EAAA,EACA,UAAA,KACA,WAAA,KACA,WAAA,KACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,KACA,OAAA,IAAA,MAAA,gBACA,cAAA,InBuBA,mBAAA,EAAA,IAAA,KAAA,iBACQ,WAAA,EAAA,IAAA,KAAA,iBmBlBR,0BACE,MAAA,EACA,KAAA,KAzBJ,wBCzBE,OAAA,IACA,OAAA,IAAA,EACA,SAAA,OACA,iBAAA,QDsBF,oBAmCI,QAAA,MACA,QAAA,IAAA,KACA,MAAA,KACA,YAAA,IACA,YAAA,WACA,MAAA,KACA,YAAA,OvB8+GJ,0BuB5+GI,0BAEE,MAAA,QACA,gBAAA,KACA,iBAAA,QAOJ,yBvBw+GF,+BADA,+BuBp+GI,MAAA,KACA,gBAAA,KACA,iBAAA,QACA,QAAA,EASF,2BvBi+GF,iCADA,iCuB79GI,MAAA,KvBk+GJ,iCuB99GE,iCAEE,gBAAA,KACA,OAAA,YACA,iBAAA,YACA,iBAAA,KEzGF,OAAA,0DF+GF,qBAGI,QAAA,MAHJ,QAQI,QAAA,EAQJ,qBACE,MAAA,EACA,KAAA,KAQF,oBACE,MAAA,KACA,KAAA,EAIF,iBACE,QAAA,MACA,QAAA,IAAA,KACA,UAAA,KACA,YAAA,WACA,MAAA,KACA,YAAA,OAIF,mBACE,SAAA,MACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,IAIF,2BACE,MAAA,EACA,KAAA,KAQF,evB+7GA,sCuB37GI,QAAA,GACA,WAAA,EACA,cAAA,IAAA,OACA,cAAA,IAAA,QAPJ,uBvBs8GA,8CuB37GI,IAAA,KACA,OAAA,KACA,cAAA,IASJ,yBACE,6BApEA,MAAA,EACA,KAAA,KAmEA,kCA1DA,MAAA,KACA,KAAA,GG1IF,W1BkoHA,oB0BhoHE,SAAA,SACA,QAAA,aACA,eAAA,O1BooHF,yB0BxoHA,gBAMI,SAAA,SACA,MAAA,K1B4oHJ,gCAFA,gCAFA,+BAFA,+BAKA,uBAFA,uBAFA,sB0BroHI,sBAIE,QAAA,EAMN,qB1BooHA,2BACA,2BACA,iC0BjoHI,YAAA,KAKJ,aACE,YAAA,KADF,kB1BmoHA,wBACA,0B0B7nHI,MAAA,KAPJ,kB1BwoHA,wBACA,0B0B7nHI,YAAA,IAIJ,yEACE,cAAA,EAIF,4BACE,YAAA,EACA,mECpDA,wBAAA,EACA,2BAAA,EDwDF,6C1B2nHA,8C2B5qHE,uBAAA,EACA,0BAAA,EDsDF,sBACE,MAAA,KAEF,8DACE,cAAA,EAEF,mE1B0nHA,oE2B/rHE,wBAAA,EACA,2BAAA,ED0EF,oECnEE,uBAAA,EACA,0BAAA,EDuEF,mC1BwnHA,iC0BtnHE,QAAA,EAiBF,iCACE,cAAA,IACA,aAAA,IAEF,oCACE,cAAA,KACA,aAAA,KAKF,iCtB/CE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBsBkDR,0CtBnDA,mBAAA,KACQ,WAAA,KsByDV,YACE,YAAA,EAGF,eACE,aAAA,IAAA,IAAA,EACA,oBAAA,EAGF,uBACE,aAAA,EAAA,IAAA,IAOF,yB1B4lHA,+BACA,oC0BzlHI,QAAA,MACA,MAAA,KACA,MAAA,KACA,UAAA,KAPJ,oCAcM,MAAA,KAdN,8B1BumHA,oCACA,oCACA,0C0BnlHI,WAAA,KACA,YAAA,EAKF,4DACE,cAAA,EAEF,sDC7KA,uBAAA,IACA,wBAAA,IAOA,2BAAA,EACA,0BAAA,EDwKA,sDCjLA,uBAAA,EACA,wBAAA,EAOA,2BAAA,IACA,0BAAA,ID6KF,uEACE,cAAA,EAEF,4E1BqlHA,6E2BtwHE,2BAAA,EACA,0BAAA,EDsLF,6EC/LE,uBAAA,EACA,wBAAA,EDsMF,qBACE,QAAA,MACA,MAAA,KACA,aAAA,MACA,gBAAA,SAJF,0B1BslHA,gC0B/kHI,QAAA,WACA,MAAA,KACA,MAAA,GATJ,qCAYI,MAAA,KAZJ,+CAgBI,KAAA,K1BmlHJ,gD0BlkHA,6C1BmkHA,2DAFA,wD0B5jHM,SAAA,SACA,KAAA,cACA,eAAA,KE1ON,aACE,SAAA,SACA,QAAA,MACA,gBAAA,SAGA,0BACE,MAAA,KACA,cAAA,EACA,aAAA,EATJ,2BAeI,SAAA,SACA,QAAA,EAKA,MAAA,KAEA,MAAA,KACA,cAAA,EAEA,iCACE,QAAA,EAUN,8B5B2xHA,mCACA,sCkBpwHE,OAAA,KACA,QAAA,KAAA,KACA,UAAA,KACA,YAAA,UACA,cAAA,IAEA,oClBswHF,yCACA,4CkBtwHI,OAAA,KACA,YAAA,KlB4wHJ,8CACA,mDACA,sDkB3wHE,sClBuwHF,2CACA,8CkBtwHI,OAAA,KUhCJ,8B5B6yHA,mCACA,sCkB3xHE,OAAA,KACA,QAAA,IAAA,KACA,UAAA,KACA,YAAA,IACA,cAAA,IAEA,oClB6xHF,yCACA,4CkB7xHI,OAAA,KACA,YAAA,KlBmyHJ,8CACA,mDACA,sDkBlyHE,sClB8xHF,2CACA,8CkB7xHI,OAAA,KlBqyHJ,2B4B5zHA,mB5B2zHA,iB4BxzHE,QAAA,W5B8zHF,8D4B5zHE,sD5B2zHF,oD4B1zHI,cAAA,EAIJ,mB5B2zHA,iB4BzzHE,MAAA,GACA,YAAA,OACA,eAAA,OAKF,mBACE,QAAA,IAAA,KACA,UAAA,KACA,YAAA,IACA,YAAA,EACA,MAAA,KACA,WAAA,OACA,iBAAA,KACA,OAAA,IAAA,MAAA,KACA,cAAA,IAGA,4BACE,QAAA,IAAA,KACA,UAAA,KACA,cAAA,IAEF,4BACE,QAAA,KAAA,KACA,UAAA,KACA,cAAA,I5ByzHJ,wC4B70HA,qCA0BI,WAAA,EAKJ,uC5BkzHA,+BACA,kCACA,6CACA,8CAEA,6DADA,wE2B55HE,wBAAA,EACA,2BAAA,EC8GF,+BACE,aAAA,EAEF,sC5BmzHA,8BAKA,+DADA,oDAHA,iCACA,4CACA,6C2Bh6HE,uBAAA,EACA,0BAAA,ECkHF,8BACE,YAAA,EAKF,iBACE,SAAA,SAGA,UAAA,EACA,YAAA,OALF,sBAUI,SAAA,SAVJ,2BAYM,YAAA,K5BizHN,6BADA,4B4B7yHI,4BAGE,QAAA,EAKJ,kC5B0yHF,wC4BvyHM,aAAA,KAGJ,iC5BwyHF,uC4BryHM,QAAA,EACA,YAAA,KC/JN,KACE,aAAA,EACA,cAAA,EACA,WAAA,KAHF,QAOI,SAAA,SACA,QAAA,MARJ,UAWM,SAAA,SACA,QAAA,MACA,QAAA,KAAA,K7By8HN,gB6Bx8HM,gBAEE,gBAAA,KACA,iBAAA,KAKJ,mBACE,MAAA,K7Bu8HN,yB6Br8HM,yBAEE,MAAA,KACA,gBAAA,KACA,OAAA,YACA,iBAAA,YAOJ,a7Bi8HJ,mBADA,mB6B77HM,iBAAA,KACA,aAAA,QAzCN,kBLLE,OAAA,IACA,OAAA,IAAA,EACA,SAAA,OACA,iBAAA,QKEF,cA0DI,UAAA,KASJ,UACE,cAAA,IAAA,MAAA,KADF,aAGI,MAAA,KAEA,cAAA,KALJ,eASM,aAAA,IACA,YAAA,WACA,OAAA,IAAA,MAAA,YACA,cAAA,IAAA,IAAA,EAAA,EACA,qBACE,aAAA,KAAA,KAAA,KAMF,sB7B86HN,4BADA,4B6B16HQ,MAAA,KACA,OAAA,QACA,iBAAA,KACA,OAAA,IAAA,MAAA,KACA,oBAAA,YAKN,wBAqDA,MAAA,KA8BA,cAAA,EAnFA,2BAwDE,MAAA,KAxDF,6BA0DI,cAAA,IACA,WAAA,OA3DJ,iDAgEE,IAAA,KACA,KAAA,KAGF,yBAAA,2BAEI,QAAA,WACA,MAAA,GAHJ,6BAKM,cAAA,GAzEN,6BAuFE,aAAA,EACA,cAAA,IAxFF,kC7Bu8HF,wCADA,wC6Bx2HI,OAAA,IAAA,MAAA,KAGF,yBAAA,6BAEI,cAAA,IAAA,MAAA,KACA,cAAA,IAAA,IAAA,EAAA,EAHJ,kC7Bg3HA,wCADA,wC6Bv2HI,oBAAA,MAhGN,cAEI,MAAA,KAFJ,gBAMM,cAAA,IANN,iBASM,YAAA,IAKA,uB7By8HN,6BADA,6B6Br8HQ,MAAA,KACA,iBAAA,QAQR,gBAEI,MAAA,KAFJ,mBAIM,WAAA,IACA,YAAA,EAYN,eACE,MAAA,KADF,kBAII,MAAA,KAJJ,oBAMM,cAAA,IACA,WAAA,OAPN,wCAYI,IAAA,KACA,KAAA,KAGF,yBAAA,kBAEI,QAAA,WACA,MAAA,GAHJ,oBAKM,cAAA,GASR,oBACE,cAAA,EADF,yBAKI,aAAA,EACA,cAAA,IANJ,8B7By7HA,oCADA,oC6B56HI,OAAA,IAAA,MAAA,KAGF,yBAAA,yBAEI,cAAA,IAAA,MAAA,KACA,cAAA,IAAA,IAAA,EAAA,EAHJ,8B7Bo7HA,oCADA,oC6B36HI,oBAAA,MAUN,uBAEI,QAAA,KAFJ,qBAKI,QAAA,MASJ,yBAEE,WAAA,KF7OA,uBAAA,EACA,wBAAA,EGQF,QACE,SAAA,SACA,WAAA,KACA,cAAA,KACA,OAAA,IAAA,MAAA,YAKA,yBAAA,QACE,cAAA,KAaF,yBAAA,eACE,MAAA,MAeJ,iBACE,cAAA,KACA,aAAA,KACA,WAAA,QACA,WAAA,IAAA,MAAA,YACA,mBAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,WAAA,MAAA,EAAA,IAAA,EAAA,qBAEA,2BAAA,MAEA,oBACE,WAAA,KAGF,yBAAA,iBACE,MAAA,KACA,WAAA,EACA,mBAAA,KAAA,WAAA,KAEA,0BACE,QAAA,gBACA,OAAA,eACA,eAAA,EACA,SAAA,kBAGF,oBACE,WAAA,Q9BknIJ,sC8B7mIE,mC9B4mIF,oC8BzmII,cAAA,EACA,aAAA,G9B+mIN,qB8B1mIA,kBAWE,SAAA,MACA,MAAA,EACA,KAAA,EACA,QAAA,K9BmmIF,sC8BjnIA,mCAGI,WAAA,MAEA,4D9BinIF,sC8BjnIE,mCACE,WAAA,OAWJ,yB9B2mIA,qB8B3mIA,kBACE,cAAA,GAIJ,kBACE,IAAA,EACA,aAAA,EAAA,EAAA,IAEF,qBACE,OAAA,EACA,cAAA,EACA,aAAA,IAAA,EAAA,E9B+mIF,kCAFA,gCACA,4B8BtmIA,0BAII,aAAA,MACA,YAAA,MAEA,yB9BwmIF,kCAFA,gCACA,4B8BvmIE,0BACE,aAAA,EACA,YAAA,GAaN,mBACE,QAAA,KACA,aAAA,EAAA,EAAA,IAEA,yBAAA,mBACE,cAAA,GAOJ,cACE,MAAA,KACA,OAAA,KACA,QAAA,KAAA,KACA,UAAA,KACA,YAAA,K9B8lIF,oB8B5lIE,oBAEE,gBAAA,KATJ,kBAaI,QAAA,MAGF,yBACE,iC9B0lIF,uC8BxlII,YAAA,OAWN,eACE,SAAA,SACA,MAAA,MACA,QAAA,IAAA,KACA,aAAA,KC9LA,WAAA,IACA,cAAA,ID+LA,iBAAA,YACA,iBAAA,KACA,OAAA,IAAA,MAAA,YACA,cAAA,IAIA,qBACE,QAAA,EAdJ,yBAmBI,QAAA,MACA,MAAA,KACA,OAAA,IACA,cAAA,IAtBJ,mCAyBI,WAAA,IAGF,yBAAA,eACE,QAAA,MAUJ,YACE,OAAA,MAAA,MADF,iBAII,YAAA,KACA,eAAA,KACA,YAAA,KAGF,yBAAA,iCAGI,SAAA,OACA,MAAA,KACA,MAAA,KACA,WAAA,EACA,iBAAA,YACA,OAAA,EACA,mBAAA,KAAA,WAAA,K9BykIJ,kD8BllIA,sCAYM,QAAA,IAAA,KAAA,IAAA,KAZN,sCAeM,YAAA,K9B0kIN,4C8BzkIM,4CAEE,iBAAA,MAOR,yBAAA,YACE,MAAA,KACA,OAAA,EAFF,eAKI,MAAA,KALJ,iBAOM,YAAA,KACA,eAAA,MAYR,aACE,QAAA,KAAA,KACA,aAAA,MACA,YAAA,MACA,WAAA,IAAA,MAAA,YACA,cAAA,IAAA,MAAA,Y1B5NA,mBAAA,MAAA,EAAA,IAAA,EAAA,oBAAA,CAAA,EAAA,IAAA,EAAA,qBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,oBAAA,CAAA,EAAA,IAAA,EAAA,qB2BjER,WAAA,IACA,cAAA,Id6cA,yBAAA,yBAGI,QAAA,aACA,cAAA,EACA,eAAA,OALJ,2BAUI,QAAA,aACA,MAAA,KACA,eAAA,OAZJ,kCAiBI,QAAA,aAjBJ,0BAqBI,QAAA,aACA,eAAA,OjB+4HJ,wCiBr6HA,6CjBo6HA,2CiBz4HM,MAAA,KA3BN,wCAiCI,MAAA,KAjCJ,4BAqCI,cAAA,EACA,eAAA,OjB04HJ,uBiBh7HA,oBA6CI,QAAA,aACA,WAAA,EACA,cAAA,EACA,eAAA,OjBu4HJ,6BiBv7HA,0BAmDM,aAAA,EjBw4HN,4CiB37HA,sCAwDI,SAAA,SACA,YAAA,EAzDJ,kDA8DI,IAAA,GaxOF,yBAAA,yBACE,cAAA,IAEA,oCACE,cAAA,GASN,yBAAA,aACE,MAAA,KACA,YAAA,EACA,eAAA,EACA,aAAA,EACA,YAAA,EACA,OAAA,E1BvPF,mBAAA,KACQ,WAAA,M0B+PV,8BACE,WAAA,EHpUA,uBAAA,EACA,wBAAA,EGuUF,mDACE,cAAA,EHzUA,uBAAA,IACA,wBAAA,IAOA,2BAAA,EACA,0BAAA,EG0UF,YChVE,WAAA,IACA,cAAA,IDkVA,mBCnVA,WAAA,KACA,cAAA,KDqVA,mBCtVA,WAAA,KACA,cAAA,KD+VF,aChWE,WAAA,KACA,cAAA,KDkWA,yBAAA,aACE,MAAA,KACA,aAAA,KACA,YAAA,MAaJ,yBACE,aEtWA,MAAA,eFuWA,cE1WA,MAAA,gBF4WE,aAAA,MAFF,4BAKI,aAAA,GAUN,gBACE,iBAAA,QACA,aAAA,QAFF,8BAKI,MAAA,K9BmlIJ,oC8BllII,oCAEE,MAAA,QACA,iBAAA,YATN,6BAcI,MAAA,KAdJ,iCAmBM,MAAA,K9BglIN,uC8B9kIM,uCAEE,MAAA,KACA,iBAAA,YAIF,sC9B6kIN,4CADA,4C8BzkIQ,MAAA,KACA,iBAAA,QAIF,wC9B2kIN,8CADA,8C8BvkIQ,MAAA,KACA,iBAAA,YAOF,oC9BskIN,0CADA,0C8BlkIQ,MAAA,KACA,iBAAA,QAIJ,yBAAA,sDAIM,MAAA,K9BmkIR,4D8BlkIQ,4DAEE,MAAA,KACA,iBAAA,YAIF,2D9BikIR,iEADA,iE8B7jIU,MAAA,KACA,iBAAA,QAIF,6D9B+jIR,mEADA,mE8B3jIU,MAAA,KACA,iBAAA,aA/EZ,+BAuFI,aAAA,K9B4jIJ,qC8B3jII,qCAEE,iBAAA,KA1FN,yCA6FM,iBAAA,KA7FN,iC9B0pIA,6B8BvjII,aAAA,QAnGJ,6BA4GI,MAAA,KACA,mCACE,MAAA,KA9GN,0BAmHI,MAAA,K9BojIJ,gC8BnjII,gCAEE,MAAA,K9BsjIN,0C8BljIM,0C9BmjIN,mDAFA,mD8B/iIQ,MAAA,KAQR,gBACE,iBAAA,KACA,aAAA,QAFF,8BAKI,MAAA,Q9B+iIJ,oC8B9iII,oCAEE,MAAA,KACA,iBAAA,YATN,6BAcI,MAAA,QAdJ,iCAmBM,MAAA,Q9B4iIN,uC8B1iIM,uCAEE,MAAA,KACA,iBAAA,YAIF,sC9ByiIN,4CADA,4C8BriIQ,MAAA,KACA,iBAAA,QAIF,wC9BuiIN,8CADA,8C8BniIQ,MAAA,KACA,iBAAA,YAMF,oC9BmiIN,0CADA,0C8B/hIQ,MAAA,KACA,iBAAA,QAIJ,yBAAA,kEAIM,aAAA,QAJN,0DAOM,iBAAA,QAPN,sDAUM,MAAA,Q9BgiIR,4D8B/hIQ,4DAEE,MAAA,KACA,iBAAA,YAIF,2D9B8hIR,iEADA,iE8B1hIU,MAAA,KACA,iBAAA,QAIF,6D9B4hIR,mEADA,mE8BxhIU,MAAA,KACA,iBAAA,aApFZ,+BA6FI,aAAA,K9BwhIJ,qC8BvhII,qCAEE,iBAAA,KAhGN,yCAmGM,iBAAA,KAnGN,iC9B4nIA,6B8BnhII,aAAA,QAzGJ,6BA6GI,MAAA,QACA,mCACE,MAAA,KA/GN,0BAoHI,MAAA,Q9BqhIJ,gC8BphII,gCAEE,MAAA,K9BuhIN,0C8BnhIM,0C9BohIN,mDAFA,mD8BhhIQ,MAAA,KGtoBR,YACE,QAAA,IAAA,KACA,cAAA,KACA,WAAA,KACA,iBAAA,QACA,cAAA,IALF,eAQI,QAAA,aARJ,yBAWM,QAAA,EAAA,IACA,MAAA,KACA,QAAA,SAbN,oBAkBI,MAAA,KCpBJ,YACE,QAAA,aACA,aAAA,EACA,OAAA,KAAA,EACA,cAAA,IAJF,eAOI,QAAA,OAPJ,iBlCyrJA,oBkC/qJM,SAAA,SACA,MAAA,KACA,QAAA,IAAA,KACA,YAAA,KACA,YAAA,WACA,MAAA,QACA,gBAAA,KACA,iBAAA,KACA,OAAA,IAAA,MAAA,KlCorJN,uBkClrJM,uBlCmrJN,0BAFA,0BkC/qJQ,QAAA,EACA,MAAA,QACA,iBAAA,KACA,aAAA,KAGJ,6BlCkrJJ,gCkC/qJQ,YAAA,EPnBN,uBAAA,IACA,0BAAA,IOsBE,4BlCirJJ,+B2BhtJE,wBAAA,IACA,2BAAA,IOwCE,sBlC+qJJ,4BAFA,4BADA,yBAIA,+BAFA,+BkC3qJM,QAAA,EACA,MAAA,KACA,OAAA,QACA,iBAAA,QACA,aAAA,QlCmrJN,wBAEA,8BADA,8BkCxuJA,2BlCsuJA,iCADA,iCkCtqJM,MAAA,KACA,OAAA,YACA,iBAAA,KACA,aAAA,KASN,oBlCqqJA,uBmC7uJM,QAAA,KAAA,KACA,UAAA,KACA,YAAA,UAEF,gCnC+uJJ,mC2B1uJE,uBAAA,IACA,0BAAA,IQAE,+BnC8uJJ,kC2BvvJE,wBAAA,IACA,2BAAA,IO2EF,oBlCgrJA,uBmC7vJM,QAAA,IAAA,KACA,UAAA,KACA,YAAA,IAEF,gCnC+vJJ,mC2B1vJE,uBAAA,IACA,0BAAA,IQAE,+BnC8vJJ,kC2BvwJE,wBAAA,IACA,2BAAA,ISHF,OACE,aAAA,EACA,OAAA,KAAA,EACA,WAAA,OACA,WAAA,KAJF,UAOI,QAAA,OAPJ,YpCuxJA,eoC7wJM,QAAA,aACA,QAAA,IAAA,KACA,iBAAA,KACA,OAAA,IAAA,MAAA,KACA,cAAA,KpCixJN,kBoC/xJA,kBAmBM,gBAAA,KACA,iBAAA,KApBN,epCoyJA,kBoCzwJM,MAAA,MA3BN,mBpCwyJA,sBoCtwJM,MAAA,KAlCN,mBpC6yJA,yBADA,yBAEA,sBoCnwJM,MAAA,KACA,OAAA,YACA,iBAAA,KC9CN,OACE,QAAA,OACA,QAAA,KAAA,KAAA,KACA,UAAA,IACA,YAAA,IACA,YAAA,EACA,MAAA,KACA,WAAA,OACA,YAAA,OACA,eAAA,SACA,cAAA,MrCuzJF,cqCnzJI,cAEE,MAAA,KACA,gBAAA,KACA,OAAA,QAKJ,aACE,QAAA,KAIF,YACE,SAAA,SACA,IAAA,KAOJ,eCtCE,iBAAA,KtCk1JF,2BsC/0JI,2BAEE,iBAAA,QDqCN,eC1CE,iBAAA,QtCy1JF,2BsCt1JI,2BAEE,iBAAA,QDyCN,eC9CE,iBAAA,QtCg2JF,2BsC71JI,2BAEE,iBAAA,QD6CN,YClDE,iBAAA,QtCu2JF,wBsCp2JI,wBAEE,iBAAA,QDiDN,eCtDE,iBAAA,QtC82JF,2BsC32JI,2BAEE,iBAAA,QDqDN,cC1DE,iBAAA,QtCq3JF,0BsCl3JI,0BAEE,iBAAA,QCFN,OACE,QAAA,aACA,UAAA,KACA,QAAA,IAAA,IACA,UAAA,KACA,YAAA,IACA,YAAA,EACA,MAAA,KACA,WAAA,OACA,YAAA,OACA,eAAA,OACA,iBAAA,KACA,cAAA,KAGA,aACE,QAAA,KAIF,YACE,SAAA,SACA,IAAA,KvCq3JJ,0BuCl3JE,eAEE,IAAA,EACA,QAAA,IAAA,IvCo3JJ,cuC/2JI,cAEE,MAAA,KACA,gBAAA,KACA,OAAA,QAKJ,+BvC42JF,4BuC12JI,MAAA,QACA,iBAAA,KAGF,wBACE,MAAA,MAGF,+BACE,aAAA,IAGF,uBACE,YAAA,IC1DJ,WACE,YAAA,KACA,eAAA,KACA,cAAA,KACA,MAAA,QACA,iBAAA,KxCu6JF,ewC56JA,cASI,MAAA,QATJ,aAaI,cAAA,KACA,UAAA,KACA,YAAA,IAfJ,cAmBI,iBAAA,QAGF,sBxCk6JF,4BwCh6JI,cAAA,KACA,aAAA,KACA,cAAA,IA1BJ,sBA8BI,UAAA,KAGF,oCAAA,WACE,YAAA,KACA,eAAA,KAEA,sBxCi6JF,4BwC/5JI,cAAA,KACA,aAAA,KxCm6JJ,ewC16JA,cAYI,UAAA,MC1CN,WACE,QAAA,MACA,QAAA,IACA,cAAA,KACA,YAAA,WACA,iBAAA,KACA,OAAA,IAAA,MAAA,KACA,cAAA,IrCiLA,mBAAA,OAAA,IAAA,YACK,cAAA,OAAA,IAAA,YACG,WAAA,OAAA,IAAA,YJ+xJV,iByCz9JA,eAaI,aAAA,KACA,YAAA,KzCi9JJ,mBADA,kByC58JE,kBAGE,aAAA,QArBJ,oBA0BI,QAAA,IACA,MAAA,KC3BJ,OACE,QAAA,KACA,cAAA,KACA,OAAA,IAAA,MAAA,YACA,cAAA,IAJF,UAQI,WAAA,EACA,MAAA,QATJ,mBAcI,YAAA,IAdJ,S1Co/JA,U0Ch+JI,cAAA,EApBJ,WAwBI,WAAA,IASJ,mB1C09JA,mB0Cx9JE,cAAA,KAFF,0B1C89JA,0B0Cx9JI,SAAA,SACA,IAAA,KACA,MAAA,MACA,MAAA,QAQJ,eCvDE,MAAA,QACA,iBAAA,QACA,aAAA,QDqDF,kBClDI,iBAAA,QDkDJ,2BC9CI,MAAA,QDkDJ,YC3DE,MAAA,QACA,iBAAA,QACA,aAAA,QDyDF,eCtDI,iBAAA,QDsDJ,wBClDI,MAAA,QDsDJ,eC/DE,MAAA,QACA,iBAAA,QACA,aAAA,QD6DF,kBC1DI,iBAAA,QD0DJ,2BCtDI,MAAA,QD0DJ,cCnEE,MAAA,QACA,iBAAA,QACA,aAAA,QDiEF,iBC9DI,iBAAA,QD8DJ,0BC1DI,MAAA,QCDJ,wCACE,KAAQ,oBAAA,KAAA,EACR,GAAQ,oBAAA,EAAA,GAIV,mCACE,KAAQ,oBAAA,KAAA,EACR,GAAQ,oBAAA,EAAA,GAFV,gCACE,KAAQ,oBAAA,KAAA,EACR,GAAQ,oBAAA,EAAA,GAQV,UACE,OAAA,KACA,cAAA,KACA,SAAA,OACA,iBAAA,QACA,cAAA,IxCsCA,mBAAA,MAAA,EAAA,IAAA,IAAA,eACQ,WAAA,MAAA,EAAA,IAAA,IAAA,ewClCV,cACE,MAAA,KACA,MAAA,GACA,OAAA,KACA,UAAA,KACA,YAAA,KACA,MAAA,KACA,WAAA,OACA,iBAAA,QxCyBA,mBAAA,MAAA,EAAA,KAAA,EAAA,gBACQ,WAAA,MAAA,EAAA,KAAA,EAAA,gBAyHR,mBAAA,MAAA,IAAA,KACK,cAAA,MAAA,IAAA,KACG,WAAA,MAAA,IAAA,KJw6JV,sB4CnjKA,gCCDI,iBAAA,yKACA,iBAAA,oKACA,iBAAA,iKDEF,wBAAA,KAAA,KAAA,gBAAA,KAAA,K5CwjKF,qB4CjjKA,+BxC5CE,kBAAA,qBAAA,GAAA,OAAA,SACK,aAAA,qBAAA,GAAA,OAAA,SACG,UAAA,qBAAA,GAAA,OAAA,SwCmDV,sBEvEE,iBAAA,QAGA,wCDgDE,iBAAA,yKACA,iBAAA,oKACA,iBAAA,iKDsBJ,mBE3EE,iBAAA,QAGA,qCDgDE,iBAAA,yKACA,iBAAA,oKACA,iBAAA,iKD0BJ,sBE/EE,iBAAA,QAGA,wCDgDE,iBAAA,yKACA,iBAAA,oKACA,iBAAA,iKD8BJ,qBEnFE,iBAAA,QAGA,uCDgDE,iBAAA,yKACA,iBAAA,oKACA,iBAAA,iKExDJ,OAEE,WAAA,KAEA,mBACE,WAAA,EAIJ,O/CqpKA,Y+CnpKE,SAAA,OACA,KAAA,EAGF,YACE,MAAA,QAGF,cACE,QAAA,MAGA,4BACE,UAAA,KAIJ,a/CgpKA,mB+C9oKE,aAAA,KAGF,Y/C+oKA,kB+C7oKE,cAAA,K/CkpKF,Y+C/oKA,Y/C8oKA,a+C3oKE,QAAA,WACA,eAAA,IAGF,cACE,eAAA,OAGF,cACE,eAAA,OAIF,eACE,WAAA,EACA,cAAA,IAMF,YACE,aAAA,EACA,WAAA,KCrDF,YAEE,aAAA,EACA,cAAA,KAQF,iBACE,SAAA,SACA,QAAA,MACA,QAAA,KAAA,KAEA,cAAA,KACA,iBAAA,KACA,OAAA,IAAA,MAAA,KAGA,6BrB7BA,uBAAA,IACA,wBAAA,IqB+BA,4BACE,cAAA,ErBzBF,2BAAA,IACA,0BAAA,IqB6BA,0BhDqrKF,gCADA,gCgDjrKI,MAAA,KACA,OAAA,YACA,iBAAA,KALF,mDhD4rKF,yDADA,yDgDlrKM,MAAA,QATJ,gDhDisKF,sDADA,sDgDprKM,MAAA,KAKJ,wBhDqrKF,8BADA,8BgDjrKI,QAAA,EACA,MAAA,KACA,iBAAA,QACA,aAAA,QANF,iDhDisKF,wDAHA,uDADA,uDAMA,8DAHA,6DAJA,uDAMA,8DAHA,6DgDnrKM,MAAA,QAZJ,8ChDwsKF,oDADA,oDgDxrKM,MAAA,QAWN,kBhDkrKA,uBgDhrKE,MAAA,KAFF,2ChDsrKA,gDgDjrKI,MAAA,KhDsrKJ,wBgDlrKE,wBhDmrKF,6BAFA,6BgD/qKI,MAAA,KACA,gBAAA,KACA,iBAAA,QAIJ,uBACE,MAAA,KACA,WAAA,KnCvGD,yBoCIG,MAAA,QACA,iBAAA,QAEA,0BjDuxKJ,+BiDrxKM,MAAA,QAFF,mDjD2xKJ,wDiDtxKQ,MAAA,QjD2xKR,gCiDxxKM,gCjDyxKN,qCAFA,qCiDrxKQ,MAAA,QACA,iBAAA,QAEF,iCjD4xKN,uCAFA,uCADA,sCAIA,4CAFA,4CiDxxKQ,MAAA,KACA,iBAAA,QACA,aAAA,QpCzBP,sBoCIG,MAAA,QACA,iBAAA,QAEA,uBjDozKJ,4BiDlzKM,MAAA,QAFF,gDjDwzKJ,qDiDnzKQ,MAAA,QjDwzKR,6BiDrzKM,6BjDszKN,kCAFA,kCiDlzKQ,MAAA,QACA,iBAAA,QAEF,8BjDyzKN,oCAFA,oCADA,mCAIA,yCAFA,yCiDrzKQ,MAAA,KACA,iBAAA,QACA,aAAA,QpCzBP,yBoCIG,MAAA,QACA,iBAAA,QAEA,0BjDi1KJ,+BiD/0KM,MAAA,QAFF,mDjDq1KJ,wDiDh1KQ,MAAA,QjDq1KR,gCiDl1KM,gCjDm1KN,qCAFA,qCiD/0KQ,MAAA,QACA,iBAAA,QAEF,iCjDs1KN,uCAFA,uCADA,sCAIA,4CAFA,4CiDl1KQ,MAAA,KACA,iBAAA,QACA,aAAA,QpCzBP,wBoCIG,MAAA,QACA,iBAAA,QAEA,yBjD82KJ,8BiD52KM,MAAA,QAFF,kDjDk3KJ,uDiD72KQ,MAAA,QjDk3KR,+BiD/2KM,+BjDg3KN,oCAFA,oCiD52KQ,MAAA,QACA,iBAAA,QAEF,gCjDm3KN,sCAFA,sCADA,qCAIA,2CAFA,2CiD/2KQ,MAAA,KACA,iBAAA,QACA,aAAA,QDiGR,yBACE,WAAA,EACA,cAAA,IAEF,sBACE,cAAA,EACA,YAAA,IExHF,OACE,cAAA,KACA,iBAAA,KACA,OAAA,IAAA,MAAA,YACA,cAAA,I9C0DA,mBAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,EAAA,IAAA,IAAA,gB8CtDV,YACE,QAAA,KAKF,eACE,QAAA,KAAA,KACA,cAAA,IAAA,MAAA,YvBtBA,uBAAA,IACA,wBAAA,IuBmBF,0CAMI,MAAA,QAKJ,aACE,WAAA,EACA,cAAA,EACA,UAAA,KACA,MAAA,QlD24KF,oBAEA,sBkDj5KA,elD84KA,mBAEA,qBkDr4KI,MAAA,QAKJ,cACE,QAAA,KAAA,KACA,iBAAA,QACA,WAAA,IAAA,MAAA,KvB1CA,2BAAA,IACA,0BAAA,IuBmDF,mBlD+3KA,mCkD53KI,cAAA,EAHJ,oClDm4KA,oDkD73KM,aAAA,IAAA,EACA,cAAA,EAIF,4DlD63KJ,4EkD33KQ,WAAA,EvBzEN,uBAAA,IACA,wBAAA,IuB8EE,0DlD23KJ,0EkDz3KQ,cAAA,EvBzEN,2BAAA,IACA,0BAAA,IuBmDF,+EvB5DE,uBAAA,EACA,wBAAA,EuB4FF,wDAEI,iBAAA,EAGJ,0BACE,iBAAA,ElDw3KF,8BkDh3KA,clD+2KA,gCkD32KI,cAAA,ElDi3KJ,sCkDr3KA,sBlDo3KA,wCkD72KM,cAAA,KACA,aAAA,KlDk3KN,wDkD13KA,0BvB3GE,uBAAA,IACA,wBAAA,I3B2+KF,yFAFA,yFACA,2DkDh4KA,2DAmBQ,uBAAA,IACA,wBAAA,IlDo3KR,wGAIA,wGANA,wGAIA,wGAHA,0EAIA,0EkD34KA,0ElDy4KA,0EkDj3KU,uBAAA,IlD03KV,uGAIA,uGANA,uGAIA,uGAHA,yEAIA,yEkDr5KA,yElDm5KA,yEkDv3KU,wBAAA,IlD83KV,sDkD15KA,yBvBnGE,2BAAA,IACA,0BAAA,I3BigLF,qFAEA,qFkDj6KA,wDlDg6KA,wDkDv3KQ,2BAAA,IACA,0BAAA,IlD43KR,oGAIA,oGAFA,oGAIA,oGkD56KA,uElDy6KA,uEAFA,uEAIA,uEkD73KU,0BAAA,IlDk4KV,mGAIA,mGAFA,mGAIA,mGkDt7KA,sElDm7KA,sEAFA,sEAIA,sEkDn4KU,2BAAA,IAlDV,0BlD07KA,qCACA,0BACA,qCkDj4KI,WAAA,IAAA,MAAA,KlDq4KJ,kDkDh8KA,kDA+DI,WAAA,EA/DJ,uBlDo8KA,yCkDj4KI,OAAA,ElD44KJ,+CANA,+CAQA,+CANA,+CAEA,+CkD78KA,+ClDg9KA,iEANA,iEAQA,iEANA,iEAEA,iEANA,iEkD93KU,YAAA,ElDm5KV,8CANA,8CAQA,8CANA,8CAEA,8CkD39KA,8ClD89KA,gEANA,gEAQA,gEANA,gEAEA,gEANA,gEkDx4KU,aAAA,ElDu5KV,+CAIA,+CkDz+KA,+ClDu+KA,+CADA,iEAIA,iEANA,iEAIA,iEkDj5KU,cAAA,EAvFV,8ClDi/KA,8CAFA,8CAIA,8CALA,gEAIA,gEAFA,gEAIA,gEkDp5KU,cAAA,EAhGV,yBAsGI,cAAA,EACA,OAAA,EAUJ,aACE,cAAA,KADF,oBAKI,cAAA,EACA,cAAA,IANJ,2BASM,WAAA,IATN,4BAcI,cAAA,ElD04KJ,wDkDx5KA,wDAkBM,WAAA,IAAA,MAAA,KAlBN,2BAuBI,WAAA,EAvBJ,uDAyBM,cAAA,IAAA,MAAA,KAON,eC5PE,aAAA,KAEA,8BACE,MAAA,KACA,iBAAA,QACA,aAAA,KAHF,0DAMI,iBAAA,KANJ,qCASI,MAAA,QACA,iBAAA,KAGJ,yDAEI,oBAAA,KD8ON,eC/PE,aAAA,QAEA,8BACE,MAAA,KACA,iBAAA,QACA,aAAA,QAHF,0DAMI,iBAAA,QANJ,qCASI,MAAA,QACA,iBAAA,KAGJ,yDAEI,oBAAA,QDiPN,eClQE,aAAA,QAEA,8BACE,MAAA,QACA,iBAAA,QACA,aAAA,QAHF,0DAMI,iBAAA,QANJ,qCASI,MAAA,QACA,iBAAA,QAGJ,yDAEI,oBAAA,QDoPN,YCrQE,aAAA,QAEA,2BACE,MAAA,QACA,iBAAA,QACA,aAAA,QAHF,uDAMI,iBAAA,QANJ,kCASI,MAAA,QACA,iBAAA,QAGJ,sDAEI,oBAAA,QDuPN,eCxQE,aAAA,QAEA,8BACE,MAAA,QACA,iBAAA,QACA,aAAA,QAHF,0DAMI,iBAAA,QANJ,qCASI,MAAA,QACA,iBAAA,QAGJ,yDAEI,oBAAA,QD0PN,cC3QE,aAAA,QAEA,6BACE,MAAA,QACA,iBAAA,QACA,aAAA,QAHF,yDAMI,iBAAA,QANJ,oCASI,MAAA,QACA,iBAAA,QAGJ,wDAEI,oBAAA,QChBN,kBACE,SAAA,SACA,QAAA,MACA,OAAA,EACA,QAAA,EACA,SAAA,OALF,yCpDivLA,wBADA,yBAEA,yBACA,wBoDvuLI,SAAA,SACA,IAAA,EACA,OAAA,EACA,KAAA,EACA,MAAA,KACA,OAAA,KACA,OAAA,EAKJ,wBACE,eAAA,OAIF,uBACE,eAAA,IC3BF,MACE,WAAA,KACA,QAAA,KACA,cAAA,KACA,iBAAA,QACA,OAAA,IAAA,MAAA,QACA,cAAA,IjD0DA,mBAAA,MAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBiDjEV,iBASI,aAAA,KACA,aAAA,gBAKJ,SACE,QAAA,KACA,cAAA,IAEF,SACE,QAAA,IACA,cAAA,ICpBF,OACE,MAAA,MACA,UAAA,KACA,YAAA,IACA,YAAA,EACA,MAAA,KACA,YAAA,EAAA,IAAA,EAAA,KjCTA,OAAA,kBACA,QAAA,GrBkyLF,asDvxLE,aAEE,MAAA,KACA,gBAAA,KACA,OAAA,QjChBF,OAAA,kBACA,QAAA,GiCuBA,aACE,QAAA,EACA,OAAA,QACA,WAAA,IACA,OAAA,EACA,mBAAA,KACA,gBAAA,KAAA,WAAA,KCxBJ,YACE,SAAA,OAIF,OACE,SAAA,MACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,KACA,QAAA,KACA,SAAA,OACA,2BAAA,MAIA,QAAA,EAGA,0BnDiHA,kBAAA,kBACI,cAAA,kBACC,aAAA,kBACG,UAAA,kBAkER,mBAAA,kBAAA,IAAA,SAEK,cAAA,aAAA,IAAA,SACG,WAAA,kBAAA,IAAA,SAAA,WAAA,UAAA,IAAA,SAAA,WAAA,UAAA,IAAA,QAAA,CAAA,kBAAA,IAAA,QAAA,CAAA,aAAA,IAAA,SmDrLR,wBnD6GA,kBAAA,eACI,cAAA,eACC,aAAA,eACG,UAAA,emD9GV,mBACE,WAAA,OACA,WAAA,KAIF,cACE,SAAA,SACA,MAAA,KACA,OAAA,KAIF,eACE,SAAA,SACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,KACA,OAAA,IAAA,MAAA,eACA,cAAA,InDcA,mBAAA,EAAA,IAAA,IAAA,eACQ,WAAA,EAAA,IAAA,IAAA,emDZR,QAAA,EAIF,gBACE,SAAA,MACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,KACA,iBAAA,KAEA,qBlCpEA,OAAA,iBACA,QAAA,EkCoEA,mBlCrEA,OAAA,kBACA,QAAA,GkCyEF,cACE,QAAA,KACA,cAAA,IAAA,MAAA,QAIF,qBACE,WAAA,KAIF,aACE,OAAA,EACA,YAAA,WAKF,YACE,SAAA,SACA,QAAA,KAIF,cACE,QAAA,KACA,WAAA,MACA,WAAA,IAAA,MAAA,QAHF,wBAQI,cAAA,EACA,YAAA,IATJ,mCAaI,YAAA,KAbJ,oCAiBI,YAAA,EAKJ,yBACE,SAAA,SACA,IAAA,QACA,MAAA,KACA,OAAA,KACA,SAAA,OAIF,yBAEE,cACE,MAAA,MACA,OAAA,KAAA,KAEF,enDrEA,mBAAA,EAAA,IAAA,KAAA,eACQ,WAAA,EAAA,IAAA,KAAA,emDyER,UAAY,MAAA,OAGd,yBACE,UAAY,MAAA,OC9Id,SACE,SAAA,SACA,QAAA,KACA,QAAA,MCRA,YAAA,gBAAA,CAAA,SAAA,CAAA,KAAA,CAAA,WAEA,WAAA,OACA,YAAA,IACA,YAAA,WACA,WAAA,KACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KACA,eAAA,OACA,WAAA,OACA,aAAA,OACA,UAAA,OACA,YAAA,ODHA,UAAA,KnCTA,OAAA,iBACA,QAAA,EmCYA,YnCbA,OAAA,kBACA,QAAA,GmCaA,aACE,QAAA,IAAA,EACA,WAAA,KAEF,eACE,QAAA,EAAA,IACA,YAAA,IAEF,gBACE,QAAA,IAAA,EACA,WAAA,IAEF,cACE,QAAA,EAAA,IACA,YAAA,KAIF,4BACE,OAAA,EACA,KAAA,IACA,YAAA,KACA,aAAA,IAAA,IAAA,EACA,iBAAA,KAEF,iCACE,MAAA,IACA,OAAA,EACA,cAAA,KACA,aAAA,IAAA,IAAA,EACA,iBAAA,KAEF,kCACE,OAAA,EACA,KAAA,IACA,cAAA,KACA,aAAA,IAAA,IAAA,EACA,iBAAA,KAEF,8BACE,IAAA,IACA,KAAA,EACA,WAAA,KACA,aAAA,IAAA,IAAA,IAAA,EACA,mBAAA,KAEF,6BACE,IAAA,IACA,MAAA,EACA,WAAA,KACA,aAAA,IAAA,EAAA,IAAA,IACA,kBAAA,KAEF,+BACE,IAAA,EACA,KAAA,IACA,YAAA,KACA,aAAA,EAAA,IAAA,IACA,oBAAA,KAEF,oCACE,IAAA,EACA,MAAA,IACA,WAAA,KACA,aAAA,EAAA,IAAA,IACA,oBAAA,KAEF,qCACE,IAAA,EACA,KAAA,IACA,WAAA,KACA,aAAA,EAAA,IAAA,IACA,oBAAA,KAKJ,eACE,UAAA,MACA,QAAA,IAAA,IACA,MAAA,KACA,WAAA,OACA,iBAAA,KACA,cAAA,IAIF,eACE,SAAA,SACA,MAAA,EACA,OAAA,EACA,aAAA,YACA,aAAA,MEzGF,SACE,SAAA,SACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,QAAA,KACA,UAAA,MACA,QAAA,IDXA,YAAA,gBAAA,CAAA,SAAA,CAAA,KAAA,CAAA,WAEA,WAAA,OACA,YAAA,IACA,YAAA,WACA,WAAA,KACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KACA,eAAA,OACA,WAAA,OACA,aAAA,OACA,UAAA,OACA,YAAA,OCAA,UAAA,KACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,KACA,OAAA,IAAA,MAAA,eACA,cAAA,ItDiDA,mBAAA,EAAA,IAAA,KAAA,eACQ,WAAA,EAAA,IAAA,KAAA,esD9CR,aAAQ,WAAA,MACR,eAAU,YAAA,KACV,gBAAW,WAAA,KACX,cAAS,YAAA,MAvBX,gBA4BI,aAAA,KAEA,gB1DkjMJ,sB0DhjMM,SAAA,SACA,QAAA,MACA,MAAA,EACA,OAAA,EACA,aAAA,YACA,aAAA,MAGF,sBACE,QAAA,GACA,aAAA,KAIJ,oBACE,OAAA,MACA,KAAA,IACA,YAAA,MACA,iBAAA,KACA,iBAAA,gBACA,oBAAA,EACA,0BACE,OAAA,IACA,YAAA,MACA,QAAA,IACA,iBAAA,KACA,oBAAA,EAGJ,sBACE,IAAA,IACA,KAAA,MACA,WAAA,MACA,mBAAA,KACA,mBAAA,gBACA,kBAAA,EACA,4BACE,OAAA,MACA,KAAA,IACA,QAAA,IACA,mBAAA,KACA,kBAAA,EAGJ,uBACE,IAAA,MACA,KAAA,IACA,YAAA,MACA,iBAAA,EACA,oBAAA,KACA,oBAAA,gBACA,6BACE,IAAA,IACA,YAAA,MACA,QAAA,IACA,iBAAA,EACA,oBAAA,KAIJ,qBACE,IAAA,IACA,MAAA,MACA,WAAA,MACA,mBAAA,EACA,kBAAA,KACA,kBAAA,gBACA,2BACE,MAAA,IACA,OAAA,MACA,QAAA,IACA,mBAAA,EACA,kBAAA,KAKN,eACE,QAAA,IAAA,KACA,OAAA,EACA,UAAA,KACA,iBAAA,QACA,cAAA,IAAA,MAAA,QACA,cAAA,IAAA,IAAA,EAAA,EAGF,iBACE,QAAA,IAAA,KCpHF,UACE,SAAA,SAGF,gBACE,SAAA,SACA,MAAA,KACA,SAAA,OAHF,sBAMI,SAAA,SACA,QAAA,KvD6KF,mBAAA,IAAA,YAAA,KACK,cAAA,IAAA,YAAA,KACG,WAAA,IAAA,YAAA,KJs/LV,4B2D5qMA,0BAcM,YAAA,EAIF,8BAAA,uBAAA,sBvDuLF,mBAAA,kBAAA,IAAA,YAEK,cAAA,aAAA,IAAA,YACG,WAAA,kBAAA,IAAA,YAAA,WAAA,UAAA,IAAA,YAAA,WAAA,UAAA,IAAA,WAAA,CAAA,kBAAA,IAAA,WAAA,CAAA,aAAA,IAAA,YA7JR,4BAAA,OAEQ,oBAAA,OA+GR,oBAAA,OAEQ,YAAA,OJ0hMR,mC2DrqMI,2BvDmHJ,kBAAA,sBACQ,UAAA,sBuDjHF,KAAA,E3DwqMN,kC2DtqMI,2BvD8GJ,kBAAA,uBACQ,UAAA,uBuD5GF,KAAA,E3D0qMN,6B2DxqMI,gC3DuqMJ,iCI9jMA,kBAAA,mBACQ,UAAA,mBuDtGF,KAAA,GArCR,wB3DgtMA,sBACA,sB2DpqMI,QAAA,MA7CJ,wBAiDI,KAAA,EAjDJ,sB3DwtMA,sB2DlqMI,SAAA,SACA,IAAA,EACA,MAAA,KAxDJ,sBA4DI,KAAA,KA5DJ,sBA+DI,KAAA,MA/DJ,2B3DouMA,4B2DjqMI,KAAA,EAnEJ,6BAuEI,KAAA,MAvEJ,8BA0EI,KAAA,KAQJ,kBACE,SAAA,SACA,IAAA,EACA,OAAA,EACA,KAAA,EACA,MAAA,IACA,UAAA,KACA,MAAA,KACA,WAAA,OACA,YAAA,EAAA,IAAA,IAAA,eACA,iBAAA,ctCpGA,OAAA,kBACA,QAAA,GsCyGA,uBdrGE,iBAAA,sEACA,iBAAA,iEACA,iBAAA,uFAAA,iBAAA,kEACA,OAAA,+GACA,kBAAA,ScoGF,wBACE,MAAA,EACA,KAAA,Kd1GA,iBAAA,sEACA,iBAAA,iEACA,iBAAA,uFAAA,iBAAA,kEACA,OAAA,+GACA,kBAAA,S7C6wMJ,wB2DlqME,wBAEE,MAAA,KACA,gBAAA,KACA,QAAA,EtCxHF,OAAA,kBACA,QAAA,GrB8xMF,0CACA,2CAFA,6B2DpsMA,6BAuCI,SAAA,SACA,IAAA,IACA,QAAA,EACA,QAAA,aACA,WAAA,M3DmqMJ,0C2D9sMA,6BA+CI,KAAA,IACA,YAAA,M3DmqMJ,2C2DntMA,6BAoDI,MAAA,IACA,aAAA,M3DmqMJ,6B2DxtMA,6BAyDI,MAAA,KACA,OAAA,KACA,YAAA,MACA,YAAA,EAIA,oCACE,QAAA,QAIF,oCACE,QAAA,QAUN,qBACE,SAAA,SACA,OAAA,KACA,KAAA,IACA,QAAA,GACA,MAAA,IACA,aAAA,EACA,YAAA,KACA,WAAA,OACA,WAAA,KATF,wBAYI,QAAA,aACA,MAAA,KACA,OAAA,KACA,OAAA,IACA,YAAA,OACA,OAAA,QAUA,iBAAA,OACA,iBAAA,cAEA,OAAA,IAAA,MAAA,KACA,cAAA,KA/BJ,6BAmCI,MAAA,KACA,OAAA,KACA,OAAA,EACA,iBAAA,KAOJ,kBACE,SAAA,SACA,MAAA,IACA,OAAA,KACA,KAAA,IACA,QAAA,GACA,YAAA,KACA,eAAA,KACA,MAAA,KACA,WAAA,OACA,YAAA,EAAA,IAAA,IAAA,eAEA,uBACE,YAAA,KAMJ,oCAGE,0C3D+nMA,2CAEA,6BADA,6B2D3nMI,MAAA,KACA,OAAA,KACA,WAAA,MACA,UAAA,KARJ,0C3DwoMA,6B2D5nMI,YAAA,MAZJ,2C3D4oMA,6B2D5nMI,aAAA,MAKJ,kBACE,MAAA,IACA,KAAA,IACA,eAAA,KAIF,qBACE,OAAA,M3D0oMJ,qCADA,sCADA,mBADA,oBAXA,gB4D73ME,iB5Dm4MF,uBADA,wBADA,iBADA,kBADA,wBADA,yBASA,mCADA,oCAqBA,oBADA,qBADA,oBADA,qBAXA,WADA,YAOA,uBADA,wBADA,qBADA,sBADA,cADA,eAOA,aADA,cAGA,kBADA,mBAjBA,WADA,Y4Dl4MI,QAAA,MACA,QAAA,I5Dm6MJ,qCADA,mB4Dh6ME,gB5D65MF,uBADA,iBADA,wBAIA,mCAUA,oBADA,oBANA,WAGA,uBADA,qBADA,cAGA,aACA,kBATA,W4D75MI,MAAA,K5BNJ,c6BVE,QAAA,MACA,aAAA,KACA,YAAA,K7BWF,YACE,MAAA,gBAEF,WACE,MAAA,eAQF,MACE,QAAA,eAEF,MACE,QAAA,gBAEF,WACE,WAAA,OAEF,W8BzBE,KAAA,CAAA,CAAA,EAAA,EACA,MAAA,YACA,YAAA,KACA,iBAAA,YACA,OAAA,E9B8BF,QACE,QAAA,eAOF,OACE,SAAA,M+BjCF,cACE,MAAA,a/D88MF,YADA,YADA,Y+Dt8MA,YClBE,QAAA,ehEs+MF,kBACA,mBACA,yBALA,kBACA,mBACA,yBALA,kBACA,mBACA,yB+Dz8MA,kB/Dq8MA,mBACA,yB+D17ME,QAAA,eAIA,yBAAA,YCjDA,QAAA,gBACA,iBAAU,QAAA,gBACV,cAAU,QAAA,oBhE4/MV,cgE3/MA,cACU,QAAA,sBDkDV,yBAAA,kBACE,QAAA,iBAIF,yBAAA,mBACE,QAAA,kBAIF,yBAAA,yBACE,QAAA,wBAKF,+CAAA,YCtEA,QAAA,gBACA,iBAAU,QAAA,gBACV,cAAU,QAAA,oBhE0hNV,cgEzhNA,cACU,QAAA,sBDuEV,+CAAA,kBACE,QAAA,iBAIF,+CAAA,mBACE,QAAA,kBAIF,+CAAA,yBACE,QAAA,wBAKF,gDAAA,YC3FA,QAAA,gBACA,iBAAU,QAAA,gBACV,cAAU,QAAA,oBhEwjNV,cgEvjNA,cACU,QAAA,sBD4FV,gDAAA,kBACE,QAAA,iBAIF,gDAAA,mBACE,QAAA,kBAIF,gDAAA,yBACE,QAAA,wBAKF,0BAAA,YChHA,QAAA,gBACA,iBAAU,QAAA,gBACV,cAAU,QAAA,oBhEslNV,cgErlNA,cACU,QAAA,sBDiHV,0BAAA,kBACE,QAAA,iBAIF,0BAAA,mBACE,QAAA,kBAIF,0BAAA,yBACE,QAAA,wBAKF,yBAAA,WC7HA,QAAA,gBDkIA,+CAAA,WClIA,QAAA,gBDuIA,gDAAA,WCvIA,QAAA,gBD4IA,0BAAA,WC5IA,QAAA,gBDuJF,eCvJE,QAAA,eD0JA,aAAA,eClKA,QAAA,gBACA,oBAAU,QAAA,gBACV,iBAAU,QAAA,oBhE2oNV,iBgE1oNA,iBACU,QAAA,sBDkKZ,qBACE,QAAA,eAEA,aAAA,qBACE,QAAA,iBAGJ,sBACE,QAAA,eAEA,aAAA,sBACE,QAAA,kBAGJ,4BACE,QAAA,eAEA,aAAA,4BACE,QAAA,wBAKF,aAAA,cCrLA,QAAA","sourcesContent":["/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: none;\n text-decoration: underline;\n text-decoration: underline dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n color: #000 !important;\n text-shadow: none !important;\n background: transparent !important;\n box-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: \"Glyphicons Halflings\";\n src: url(\"../fonts/glyphicons-halflings-regular.eot\");\n src: url(\"../fonts/glyphicons-halflings-regular.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/glyphicons-halflings-regular.woff2\") format(\"woff2\"), url(\"../fonts/glyphicons-halflings-regular.woff\") format(\"woff\"), url(\"../fonts/glyphicons-halflings-regular.ttf\") format(\"truetype\"), url(\"../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular\") format(\"svg\");\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: \"Glyphicons Halflings\";\n font-style: normal;\n font-weight: 400;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\002a\";\n}\n.glyphicon-plus:before {\n content: \"\\002b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: 400;\n line-height: 1;\n color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px;\n}\n.list-inline > li {\n display: inline-block;\n padding-right: 5px;\n padding-left: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: 700;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: \"\\2014 \\00A0\";\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n text-align: right;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: \"\";\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: \"\\00A0 \\2014\";\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n color: #333333;\n word-break: break-all;\n word-wrap: break-word;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n.row {\n margin-right: -15px;\n margin-left: -15px;\n}\n.row-no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n.row-no-gutters [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n.col-xs-1,\n.col-sm-1,\n.col-md-1,\n.col-lg-1,\n.col-xs-2,\n.col-sm-2,\n.col-md-2,\n.col-lg-2,\n.col-xs-3,\n.col-sm-3,\n.col-md-3,\n.col-lg-3,\n.col-xs-4,\n.col-sm-4,\n.col-md-4,\n.col-lg-4,\n.col-xs-5,\n.col-sm-5,\n.col-md-5,\n.col-lg-5,\n.col-xs-6,\n.col-sm-6,\n.col-md-6,\n.col-lg-6,\n.col-xs-7,\n.col-sm-7,\n.col-md-7,\n.col-lg-7,\n.col-xs-8,\n.col-sm-8,\n.col-md-8,\n.col-lg-8,\n.col-xs-9,\n.col-sm-9,\n.col-md-9,\n.col-lg-9,\n.col-xs-10,\n.col-sm-10,\n.col-md-10,\n.col-lg-10,\n.col-xs-11,\n.col-sm-11,\n.col-md-11,\n.col-lg-11,\n.col-xs-12,\n.col-sm-12,\n.col-md-12,\n.col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n.col-xs-1,\n.col-xs-2,\n.col-xs-3,\n.col-xs-4,\n.col-xs-5,\n.col-xs-6,\n.col-xs-7,\n.col-xs-8,\n.col-xs-9,\n.col-xs-10,\n.col-xs-11,\n.col-xs-12 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0%;\n}\n@media (min-width: 768px) {\n .col-sm-1,\n .col-sm-2,\n .col-sm-3,\n .col-sm-4,\n .col-sm-5,\n .col-sm-6,\n .col-sm-7,\n .col-sm-8,\n .col-sm-9,\n .col-sm-10,\n .col-sm-11,\n .col-sm-12 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 992px) {\n .col-md-1,\n .col-md-2,\n .col-md-3,\n .col-md-4,\n .col-md-5,\n .col-md-6,\n .col-md-7,\n .col-md-8,\n .col-md-9,\n .col-md-10,\n .col-md-11,\n .col-md-12 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 1200px) {\n .col-lg-1,\n .col-lg-2,\n .col-lg-3,\n .col-lg-4,\n .col-lg-5,\n .col-lg-6,\n .col-lg-7,\n .col-lg-8,\n .col-lg-9,\n .col-lg-10,\n .col-lg-11,\n .col-lg-12 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0%;\n }\n}\ntable {\n background-color: transparent;\n}\ntable col[class*=\"col-\"] {\n position: static;\n display: table-column;\n float: none;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n display: table-cell;\n float: none;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #ddd;\n}\n.table .table {\n background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n min-height: 0.01%;\n overflow-x: auto;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: 700;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n -webkit-appearance: none;\n appearance: none;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n color: #999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999;\n}\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eeeeee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: 400;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-top: 4px \\9;\n margin-left: -20px;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: 400;\n vertical-align: middle;\n cursor: pointer;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\n.form-control-static {\n min-height: 34px;\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-right: 0;\n padding-left: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #3c763d;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #8a6d3b;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n background-color: #f2dede;\n border-color: #a94442;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n padding-top: 7px;\n margin-top: 0;\n margin-bottom: 0;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n padding-top: 7px;\n margin-bottom: 0;\n text-align: right;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 11px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: normal;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n outline: 0;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n filter: alpha(opacity=65);\n opacity: 0.65;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n background-image: none;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #fff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n background-image: none;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #fff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #fff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n background-image: none;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #fff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #fff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n background-image: none;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #fff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #fff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n background-image: none;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #fff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #fff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n background-image: none;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #fff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.btn-link {\n font-weight: 400;\n color: #337ab7;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n font-size: 14px;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: 400;\n line-height: 1.42857143;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n color: #262626;\n text-decoration: none;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n background-color: #337ab7;\n outline: 0;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n content: \"\";\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n right: 0;\n left: auto;\n }\n .navbar-right .dropdown-menu-left {\n right: auto;\n left: 0;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-right: 8px;\n padding-left: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-right: 12px;\n padding-left: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n display: table-cell;\n float: none;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group .form-control:focus {\n z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: 400;\n line-height: 1;\n color: #555555;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777777;\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eeeeee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eeeeee #eeeeee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n cursor: default;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n padding-right: 15px;\n padding-left: 15px;\n overflow-x: visible;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-right: 0;\n padding-left: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-brand {\n float: left;\n height: 50px;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n padding: 9px 10px;\n margin-right: 15px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n padding: 10px 15px;\n margin-right: -15px;\n margin-left: -15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 8px;\n margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n padding-top: 0;\n padding-bottom: 0;\n margin-right: 0;\n margin-left: 0;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-right: 15px;\n margin-left: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-toggle {\n border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-link {\n color: #777;\n}\n.navbar-default .navbar-link:hover {\n color: #333;\n}\n.navbar-default .btn-link {\n color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n}\n.navbar-inverse {\n background-color: #222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n color: #fff;\n background-color: #080808;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #fff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n padding: 0 5px;\n color: #ccc;\n content: \"/\\00a0\";\n}\n.breadcrumb > .active {\n color: #777777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n margin-left: -1px;\n line-height: 1.42857143;\n color: #337ab7;\n text-decoration: none;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 2;\n color: #23527c;\n background-color: #eeeeee;\n border-color: #ddd;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 3;\n color: #fff;\n cursor: default;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777777;\n cursor: not-allowed;\n background-color: #fff;\n border-color: #ddd;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-top-right-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n text-align: center;\n list-style: none;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777777;\n cursor: not-allowed;\n background-color: #fff;\n}\n.label {\n display: inline;\n padding: 0.2em 0.6em 0.3em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25em;\n}\na.label:hover,\na.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n background-color: #777777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n padding-right: 15px;\n padding-left: 15px;\n border-radius: 6px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-right: 60px;\n padding-left: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-right: auto;\n margin-left: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n height: 20px;\n margin-bottom: 20px;\n overflow: hidden;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #fff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n overflow: hidden;\n zoom: 1;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n padding-left: 0;\n margin-bottom: 20px;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n color: #777777;\n cursor: not-allowed;\n background-color: #eeeeee;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n color: #555;\n text-decoration: none;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-right: 15px;\n padding-left: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n margin-bottom: 0;\n border: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n}\n.panel-default {\n border-color: #ddd;\n}\n.panel-default > .panel-heading {\n color: #333333;\n background-color: #f5f5f5;\n border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n filter: alpha(opacity=20);\n opacity: 0.2;\n}\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n appearance: none;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -moz-transition: -moz-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n.modal-backdrop.fade {\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.modal-backdrop.in {\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-bottom: 0;\n margin-left: 5px;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: 400;\n line-height: 1.42857143;\n line-break: auto;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n white-space: normal;\n font-size: 12px;\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.tooltip.in {\n filter: alpha(opacity=90);\n opacity: 0.9;\n}\n.tooltip.top {\n padding: 5px 0;\n margin-top: -3px;\n}\n.tooltip.right {\n padding: 0 5px;\n margin-left: 3px;\n}\n.tooltip.bottom {\n padding: 5px 0;\n margin-top: 3px;\n}\n.tooltip.left {\n padding: 0 5px;\n margin-left: -3px;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n right: 5px;\n bottom: 0;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: 400;\n line-height: 1.42857143;\n line-break: auto;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n white-space: normal;\n font-size: 14px;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow:after {\n content: \"\";\n border-width: 10px;\n}\n.popover.top > .arrow {\n bottom: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n border-bottom-width: 0;\n}\n.popover.top > .arrow:after {\n bottom: 1px;\n margin-left: -10px;\n content: \" \";\n border-top-color: #fff;\n border-bottom-width: 0;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n border-left-width: 0;\n}\n.popover.right > .arrow:after {\n bottom: -10px;\n left: 1px;\n content: \" \";\n border-right-color: #fff;\n border-left-width: 0;\n}\n.popover.bottom > .arrow {\n top: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n.popover.bottom > .arrow:after {\n top: 1px;\n margin-left: -10px;\n content: \" \";\n border-top-width: 0;\n border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n right: 1px;\n bottom: -10px;\n content: \" \";\n border-right-width: 0;\n border-left-color: #fff;\n}\n.popover-title {\n padding: 8px 14px;\n margin: 0;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner > .item {\n position: relative;\n display: none;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -moz-transition: -moz-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n -moz-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n left: 0;\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 15%;\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n background-color: rgba(0, 0, 0, 0);\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control.right {\n right: 0;\n left: auto;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control:hover,\n.carousel-control:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n filter: alpha(opacity=90);\n opacity: 0.9;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n z-index: 5;\n display: inline-block;\n margin-top: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n font-family: serif;\n line-height: 1;\n}\n.carousel-control .icon-prev:before {\n content: \"\\2039\";\n}\n.carousel-control .icon-next:before {\n content: \"\\203a\";\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n padding-left: 0;\n margin-left: -30%;\n text-align: center;\n list-style: none;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n border: 1px solid #fff;\n border-radius: 10px;\n}\n.carousel-indicators .active {\n width: 12px;\n height: 12px;\n margin: 0;\n background-color: #fff;\n}\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -10px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -10px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -10px;\n }\n .carousel-caption {\n right: 20%;\n left: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after {\n display: table;\n content: \" \";\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-right: auto;\n margin-left: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","// stylelint-disable\n\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n// without disabling user zoom.\n//\n\nhtml {\n font-family: sans-serif; // 1\n -ms-text-size-adjust: 100%; // 2\n -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// 1. Remove the bottom border in Chrome 57- and Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n//\n\nabbr[title] {\n border-bottom: none; // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; // 1\n font: inherit; // 2\n margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; // 2\n cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; // 1\n padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n border: 0; // 1\n padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: none;\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n -moz-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n -webkit-box-sizing: content-box;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n height: 0;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n -webkit-box-sizing: content-box;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n color: #000 !important;\n text-shadow: none !important;\n background: transparent !important;\n -webkit-box-shadow: none !important;\n box-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: \"Glyphicons Halflings\";\n src: url(\"../fonts/glyphicons-halflings-regular.eot\");\n src: url(\"../fonts/glyphicons-halflings-regular.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/glyphicons-halflings-regular.woff2\") format(\"woff2\"), url(\"../fonts/glyphicons-halflings-regular.woff\") format(\"woff\"), url(\"../fonts/glyphicons-halflings-regular.ttf\") format(\"truetype\"), url(\"../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular\") format(\"svg\");\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: \"Glyphicons Halflings\";\n font-style: normal;\n font-weight: 400;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\002a\";\n}\n.glyphicon-plus:before {\n content: \"\\002b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: 400;\n line-height: 1;\n color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px;\n}\n.list-inline > li {\n display: inline-block;\n padding-right: 5px;\n padding-left: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: 700;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: \"\\2014 \\00A0\";\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n text-align: right;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: \"\";\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: \"\\00A0 \\2014\";\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n color: #333333;\n word-break: break-all;\n word-wrap: break-word;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n.row {\n margin-right: -15px;\n margin-left: -15px;\n}\n.row-no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n.row-no-gutters [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n.col-xs-1,\n.col-sm-1,\n.col-md-1,\n.col-lg-1,\n.col-xs-2,\n.col-sm-2,\n.col-md-2,\n.col-lg-2,\n.col-xs-3,\n.col-sm-3,\n.col-md-3,\n.col-lg-3,\n.col-xs-4,\n.col-sm-4,\n.col-md-4,\n.col-lg-4,\n.col-xs-5,\n.col-sm-5,\n.col-md-5,\n.col-lg-5,\n.col-xs-6,\n.col-sm-6,\n.col-md-6,\n.col-lg-6,\n.col-xs-7,\n.col-sm-7,\n.col-md-7,\n.col-lg-7,\n.col-xs-8,\n.col-sm-8,\n.col-md-8,\n.col-lg-8,\n.col-xs-9,\n.col-sm-9,\n.col-md-9,\n.col-lg-9,\n.col-xs-10,\n.col-sm-10,\n.col-md-10,\n.col-lg-10,\n.col-xs-11,\n.col-sm-11,\n.col-md-11,\n.col-lg-11,\n.col-xs-12,\n.col-sm-12,\n.col-md-12,\n.col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n.col-xs-1,\n.col-xs-2,\n.col-xs-3,\n.col-xs-4,\n.col-xs-5,\n.col-xs-6,\n.col-xs-7,\n.col-xs-8,\n.col-xs-9,\n.col-xs-10,\n.col-xs-11,\n.col-xs-12 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0%;\n}\n@media (min-width: 768px) {\n .col-sm-1,\n .col-sm-2,\n .col-sm-3,\n .col-sm-4,\n .col-sm-5,\n .col-sm-6,\n .col-sm-7,\n .col-sm-8,\n .col-sm-9,\n .col-sm-10,\n .col-sm-11,\n .col-sm-12 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 992px) {\n .col-md-1,\n .col-md-2,\n .col-md-3,\n .col-md-4,\n .col-md-5,\n .col-md-6,\n .col-md-7,\n .col-md-8,\n .col-md-9,\n .col-md-10,\n .col-md-11,\n .col-md-12 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 1200px) {\n .col-lg-1,\n .col-lg-2,\n .col-lg-3,\n .col-lg-4,\n .col-lg-5,\n .col-lg-6,\n .col-lg-7,\n .col-lg-8,\n .col-lg-9,\n .col-lg-10,\n .col-lg-11,\n .col-lg-12 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0%;\n }\n}\ntable {\n background-color: transparent;\n}\ntable col[class*=\"col-\"] {\n position: static;\n display: table-column;\n float: none;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n display: table-cell;\n float: none;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #ddd;\n}\n.table .table {\n background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n min-height: 0.01%;\n overflow-x: auto;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: 700;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n color: #999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999;\n}\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eeeeee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: 400;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-top: 4px \\9;\n margin-left: -20px;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: 400;\n vertical-align: middle;\n cursor: pointer;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\n.form-control-static {\n min-height: 34px;\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-right: 0;\n padding-left: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #3c763d;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #8a6d3b;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n background-color: #f2dede;\n border-color: #a94442;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n padding-top: 7px;\n margin-top: 0;\n margin-bottom: 0;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n padding-top: 7px;\n margin-bottom: 0;\n text-align: right;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 11px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: normal;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n outline: 0;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n filter: alpha(opacity=65);\n opacity: 0.65;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n background-image: none;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #fff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n background-image: none;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #fff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #fff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n background-image: none;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #fff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #fff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n background-image: none;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #fff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #fff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n background-image: none;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #fff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #fff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n background-image: none;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #fff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.btn-link {\n font-weight: 400;\n color: #337ab7;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n -o-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: 0.35s;\n -o-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-timing-function: ease;\n -o-transition-timing-function: ease;\n transition-timing-function: ease;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n font-size: 14px;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: 400;\n line-height: 1.42857143;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n color: #262626;\n text-decoration: none;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n background-color: #337ab7;\n outline: 0;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n content: \"\";\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n right: 0;\n left: auto;\n }\n .navbar-right .dropdown-menu-left {\n right: auto;\n left: 0;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-right: 8px;\n padding-left: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-right: 12px;\n padding-left: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n display: table-cell;\n float: none;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group .form-control:focus {\n z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: 400;\n line-height: 1;\n color: #555555;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777777;\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eeeeee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eeeeee #eeeeee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n cursor: default;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n padding-right: 15px;\n padding-left: 15px;\n overflow-x: visible;\n border-top: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-right: 0;\n padding-left: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-brand {\n float: left;\n height: 50px;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n padding: 9px 10px;\n margin-right: 15px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n padding: 10px 15px;\n margin-right: -15px;\n margin-left: -15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 8px;\n margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n padding-top: 0;\n padding-bottom: 0;\n margin-right: 0;\n margin-left: 0;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-right: 15px;\n margin-left: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-toggle {\n border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-link {\n color: #777;\n}\n.navbar-default .navbar-link:hover {\n color: #333;\n}\n.navbar-default .btn-link {\n color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n}\n.navbar-inverse {\n background-color: #222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n color: #fff;\n background-color: #080808;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #fff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n padding: 0 5px;\n color: #ccc;\n content: \"/\\00a0\";\n}\n.breadcrumb > .active {\n color: #777777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n margin-left: -1px;\n line-height: 1.42857143;\n color: #337ab7;\n text-decoration: none;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 2;\n color: #23527c;\n background-color: #eeeeee;\n border-color: #ddd;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 3;\n color: #fff;\n cursor: default;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777777;\n cursor: not-allowed;\n background-color: #fff;\n border-color: #ddd;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-top-right-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n text-align: center;\n list-style: none;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777777;\n cursor: not-allowed;\n background-color: #fff;\n}\n.label {\n display: inline;\n padding: 0.2em 0.6em 0.3em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25em;\n}\na.label:hover,\na.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n background-color: #777777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n padding-right: 15px;\n padding-left: 15px;\n border-radius: 6px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-right: 60px;\n padding-left: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-right: auto;\n margin-left: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@-o-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n height: 20px;\n margin-bottom: 20px;\n overflow: hidden;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #fff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n -webkit-background-size: 40px 40px;\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n overflow: hidden;\n zoom: 1;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n padding-left: 0;\n margin-bottom: 20px;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n color: #777777;\n cursor: not-allowed;\n background-color: #eeeeee;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n color: #555;\n text-decoration: none;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-right: 15px;\n padding-left: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n margin-bottom: 0;\n border: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n}\n.panel-default {\n border-color: #ddd;\n}\n.panel-default > .panel-heading {\n color: #333333;\n background-color: #f5f5f5;\n border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n filter: alpha(opacity=20);\n opacity: 0.2;\n}\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out, -o-transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n.modal-backdrop.fade {\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.modal-backdrop.in {\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-bottom: 0;\n margin-left: 5px;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: 400;\n line-height: 1.42857143;\n line-break: auto;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n white-space: normal;\n font-size: 12px;\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.tooltip.in {\n filter: alpha(opacity=90);\n opacity: 0.9;\n}\n.tooltip.top {\n padding: 5px 0;\n margin-top: -3px;\n}\n.tooltip.right {\n padding: 0 5px;\n margin-left: 3px;\n}\n.tooltip.bottom {\n padding: 5px 0;\n margin-top: 3px;\n}\n.tooltip.left {\n padding: 0 5px;\n margin-left: -3px;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n right: 5px;\n bottom: 0;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: 400;\n line-height: 1.42857143;\n line-break: auto;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n white-space: normal;\n font-size: 14px;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow:after {\n content: \"\";\n border-width: 10px;\n}\n.popover.top > .arrow {\n bottom: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n border-bottom-width: 0;\n}\n.popover.top > .arrow:after {\n bottom: 1px;\n margin-left: -10px;\n content: \" \";\n border-top-color: #fff;\n border-bottom-width: 0;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n border-left-width: 0;\n}\n.popover.right > .arrow:after {\n bottom: -10px;\n left: 1px;\n content: \" \";\n border-right-color: #fff;\n border-left-width: 0;\n}\n.popover.bottom > .arrow {\n top: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n.popover.bottom > .arrow:after {\n top: 1px;\n margin-left: -10px;\n content: \" \";\n border-top-width: 0;\n border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n right: 1px;\n bottom: -10px;\n content: \" \";\n border-right-width: 0;\n border-left-color: #fff;\n}\n.popover-title {\n padding: 8px 14px;\n margin: 0;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner > .item {\n position: relative;\n display: none;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: -webkit-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out, -o-transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n left: 0;\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 15%;\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n background-color: rgba(0, 0, 0, 0);\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control.right {\n right: 0;\n left: auto;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control:hover,\n.carousel-control:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n filter: alpha(opacity=90);\n opacity: 0.9;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n z-index: 5;\n display: inline-block;\n margin-top: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n font-family: serif;\n line-height: 1;\n}\n.carousel-control .icon-prev:before {\n content: \"\\2039\";\n}\n.carousel-control .icon-next:before {\n content: \"\\203a\";\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n padding-left: 0;\n margin-left: -30%;\n text-align: center;\n list-style: none;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n border: 1px solid #fff;\n border-radius: 10px;\n}\n.carousel-indicators .active {\n width: 12px;\n height: 12px;\n margin: 0;\n background-color: #fff;\n}\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -10px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -10px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -10px;\n }\n .carousel-caption {\n right: 20%;\n left: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after {\n display: table;\n content: \" \";\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-right: auto;\n margin-left: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n *,\n *:before,\n *:after {\n color: #000 !important; // Black prints faster: h5bp.com/s\n text-shadow: none !important;\n background: transparent !important;\n box-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group; // h5bp.com/t\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .btn,\n .dropup > .btn {\n > .caret {\n border-top-color: #000 !important;\n }\n }\n .label {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n}\n","// stylelint-disable value-list-comma-newline-after, value-list-comma-space-after, indentation, declaration-colon-newline-after, font-family-no-missing-generic-family-keyword\n\n//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// Star\n\n// Import the fonts\n@font-face {\n font-family: \"Glyphicons Halflings\";\n src: url(\"@{icon-font-path}@{icon-font-name}.eot\");\n src: url(\"@{icon-font-path}@{icon-font-name}.eot?#iefix\") format(\"embedded-opentype\"),\n url(\"@{icon-font-path}@{icon-font-name}.woff2\") format(\"woff2\"),\n url(\"@{icon-font-path}@{icon-font-name}.woff\") format(\"woff\"),\n url(\"@{icon-font-path}@{icon-font-name}.ttf\") format(\"truetype\"),\n url(\"@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}\") format(\"svg\");\n}\n\n// Catchall baseclass\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: \"Glyphicons Halflings\";\n font-style: normal;\n font-weight: 400;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk { &:before { content: \"\\002a\"; } }\n.glyphicon-plus { &:before { content: \"\\002b\"; } }\n.glyphicon-euro,\n.glyphicon-eur { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil { &:before { content: \"\\270f\"; } }\n.glyphicon-glass { &:before { content: \"\\e001\"; } }\n.glyphicon-music { &:before { content: \"\\e002\"; } }\n.glyphicon-search { &:before { content: \"\\e003\"; } }\n.glyphicon-heart { &:before { content: \"\\e005\"; } }\n.glyphicon-star { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty { &:before { content: \"\\e007\"; } }\n.glyphicon-user { &:before { content: \"\\e008\"; } }\n.glyphicon-film { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large { &:before { content: \"\\e010\"; } }\n.glyphicon-th { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list { &:before { content: \"\\e012\"; } }\n.glyphicon-ok { &:before { content: \"\\e013\"; } }\n.glyphicon-remove { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out { &:before { content: \"\\e016\"; } }\n.glyphicon-off { &:before { content: \"\\e017\"; } }\n.glyphicon-signal { &:before { content: \"\\e018\"; } }\n.glyphicon-cog { &:before { content: \"\\e019\"; } }\n.glyphicon-trash { &:before { content: \"\\e020\"; } }\n.glyphicon-home { &:before { content: \"\\e021\"; } }\n.glyphicon-file { &:before { content: \"\\e022\"; } }\n.glyphicon-time { &:before { content: \"\\e023\"; } }\n.glyphicon-road { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt { &:before { content: \"\\e025\"; } }\n.glyphicon-download { &:before { content: \"\\e026\"; } }\n.glyphicon-upload { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt { &:before { content: \"\\e032\"; } }\n.glyphicon-lock { &:before { content: \"\\e033\"; } }\n.glyphicon-flag { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode { &:before { content: \"\\e040\"; } }\n.glyphicon-tag { &:before { content: \"\\e041\"; } }\n.glyphicon-tags { &:before { content: \"\\e042\"; } }\n.glyphicon-book { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark { &:before { content: \"\\e044\"; } }\n.glyphicon-print { &:before { content: \"\\e045\"; } }\n.glyphicon-camera { &:before { content: \"\\e046\"; } }\n.glyphicon-font { &:before { content: \"\\e047\"; } }\n.glyphicon-bold { &:before { content: \"\\e048\"; } }\n.glyphicon-italic { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify { &:before { content: \"\\e055\"; } }\n.glyphicon-list { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video { &:before { content: \"\\e059\"; } }\n.glyphicon-picture { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust { &:before { content: \"\\e063\"; } }\n.glyphicon-tint { &:before { content: \"\\e064\"; } }\n.glyphicon-edit { &:before { content: \"\\e065\"; } }\n.glyphicon-share { &:before { content: \"\\e066\"; } }\n.glyphicon-check { &:before { content: \"\\e067\"; } }\n.glyphicon-move { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward { &:before { content: \"\\e070\"; } }\n.glyphicon-backward { &:before { content: \"\\e071\"; } }\n.glyphicon-play { &:before { content: \"\\e072\"; } }\n.glyphicon-pause { &:before { content: \"\\e073\"; } }\n.glyphicon-stop { &:before { content: \"\\e074\"; } }\n.glyphicon-forward { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward { &:before { content: \"\\e077\"; } }\n.glyphicon-eject { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign { &:before { content: \"\\e101\"; } }\n.glyphicon-gift { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf { &:before { content: \"\\e103\"; } }\n.glyphicon-fire { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign { &:before { content: \"\\e107\"; } }\n.glyphicon-plane { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar { &:before { content: \"\\e109\"; } }\n.glyphicon-random { &:before { content: \"\\e110\"; } }\n.glyphicon-comment { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn { &:before { content: \"\\e122\"; } }\n.glyphicon-bell { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down { &:before { content: \"\\e134\"; } }\n.glyphicon-globe { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks { &:before { content: \"\\e137\"; } }\n.glyphicon-filter { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty { &:before { content: \"\\e143\"; } }\n.glyphicon-link { &:before { content: \"\\e144\"; } }\n.glyphicon-phone { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin { &:before { content: \"\\e146\"; } }\n.glyphicon-usd { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp { &:before { content: \"\\e149\"; } }\n.glyphicon-sort { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked { &:before { content: \"\\e157\"; } }\n.glyphicon-expand { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in { &:before { content: \"\\e161\"; } }\n.glyphicon-flash { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window { &:before { content: \"\\e164\"; } }\n.glyphicon-record { &:before { content: \"\\e165\"; } }\n.glyphicon-save { &:before { content: \"\\e166\"; } }\n.glyphicon-open { &:before { content: \"\\e167\"; } }\n.glyphicon-saved { &:before { content: \"\\e168\"; } }\n.glyphicon-import { &:before { content: \"\\e169\"; } }\n.glyphicon-export { &:before { content: \"\\e170\"; } }\n.glyphicon-send { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery { &:before { content: \"\\e179\"; } }\n.glyphicon-header { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt { &:before { content: \"\\e183\"; } }\n.glyphicon-tower { &:before { content: \"\\e184\"; } }\n.glyphicon-stats { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1 { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1 { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1 { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous { &:before { content: \"\\e200\"; } }\n.glyphicon-cd { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up { &:before { content: \"\\e204\"; } }\n.glyphicon-copy { &:before { content: \"\\e205\"; } }\n.glyphicon-paste { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer { &:before { content: \"\\e210\"; } }\n.glyphicon-king { &:before { content: \"\\e211\"; } }\n.glyphicon-queen { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop { &:before { content: \"\\e214\"; } }\n.glyphicon-knight { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula { &:before { content: \"\\e216\"; } }\n.glyphicon-tent { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard { &:before { content: \"\\e218\"; } }\n.glyphicon-bed { &:before { content: \"\\e219\"; } }\n.glyphicon-apple { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin { &:before { content: \"\\e227\"; } }\n.glyphicon-btc { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt { &:before { content: \"\\e227\"; } }\n.glyphicon-yen { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted { &:before { content: \"\\e232\"; } }\n.glyphicon-education { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window { &:before { content: \"\\e237\"; } }\n.glyphicon-oil { &:before { content: \"\\e238\"; } }\n.glyphicon-grain { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top { &:before { content: \"\\e253\"; } }\n.glyphicon-console { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up { &:before { content: \"\\e260\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// https://getbootstrap.com/docs/3.4/getting-started/#third-box-sizing\n* {\n .box-sizing(border-box);\n}\n*:before,\n*:after {\n .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nbody {\n font-family: @font-family-base;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @text-color;\n background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n\n// Links\n\na {\n color: @link-color;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n }\n\n &:focus {\n .tab-focus();\n }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n margin: 0;\n}\n\n\n// Images\n\nimg {\n vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n padding: @thumbnail-padding;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n // Keep them at most 100% wide\n .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n margin-top: @line-height-computed;\n margin-bottom: @line-height-computed;\n border: 0;\n border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n cursor: pointer;\n}\n","// stylelint-disable indentation, property-no-vendor-prefix, selector-no-vendor-prefix\n\n// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n word-wrap: break-word;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// WebKit-style focus\n\n.tab-focus() {\n // WebKit-specific. Other browsers will keep their default outline style.\n // (Initially tried to also force default via `outline: initial`,\n // but that seems to erroneously remove the outline in Firefox altogether.)\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n","// stylelint-disable media-feature-name-no-vendor-prefix, media-feature-parentheses-space-inside, media-feature-name-no-unknown, indentation, at-rule-name-space-after\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n","// stylelint-disable selector-list-comma-newline-after, selector-no-qualifying-type\n\n//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n font-family: @headings-font-family;\n font-weight: @headings-font-weight;\n line-height: @headings-line-height;\n color: @headings-color;\n\n small,\n .small {\n font-weight: 400;\n line-height: 1;\n color: @headings-small-color;\n }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n margin-top: @line-height-computed;\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 65%;\n }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n margin-top: (@line-height-computed / 2);\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 75%;\n }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n margin-bottom: @line-height-computed;\n font-size: floor((@font-size-base * 1.15));\n font-weight: 300;\n line-height: 1.4;\n\n @media (min-width: @screen-sm-min) {\n font-size: (@font-size-base * 1.5);\n }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n padding: .2em;\n background-color: @state-warning-bg;\n}\n\n// Alignment\n.text-left { text-align: left; }\n.text-right { text-align: right; }\n.text-center { text-align: center; }\n.text-justify { text-align: justify; }\n.text-nowrap { white-space: nowrap; }\n\n// Transformation\n.text-lowercase { text-transform: lowercase; }\n.text-uppercase { text-transform: uppercase; }\n.text-capitalize { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n color: @text-muted;\n}\n.text-primary {\n .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n // Given the contrast here, this is the only class to have its color inverted\n // automatically.\n color: #fff;\n .bg-variant(@brand-primary);\n}\n.bg-success {\n .bg-variant(@state-success-bg);\n}\n.bg-info {\n .bg-variant(@state-info-bg);\n}\n.bg-warning {\n .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n padding-bottom: ((@line-height-computed / 2) - 1);\n margin: (@line-height-computed * 2) 0 @line-height-computed;\n border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n margin-top: 0;\n margin-bottom: (@line-height-computed / 2);\n ul,\n ol {\n margin-bottom: 0;\n }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n .list-unstyled();\n margin-left: -5px;\n\n > li {\n display: inline-block;\n padding-right: 5px;\n padding-left: 5px;\n }\n}\n\n// Description Lists\ndl {\n margin-top: 0; // Remove browser default\n margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n line-height: @line-height-base;\n}\ndt {\n font-weight: 700;\n}\ndd {\n margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n dd {\n &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n }\n\n @media (min-width: @dl-horizontal-breakpoint) {\n dt {\n float: left;\n width: (@dl-horizontal-offset - 20);\n clear: left;\n text-align: right;\n .text-overflow();\n }\n dd {\n margin-left: @dl-horizontal-offset;\n }\n }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n}\n\n.initialism {\n font-size: 90%;\n .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n padding: (@line-height-computed / 2) @line-height-computed;\n margin: 0 0 @line-height-computed;\n font-size: @blockquote-font-size;\n border-left: 5px solid @blockquote-border-color;\n\n p,\n ul,\n ol {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // Note: Deprecated small and .small as of v3.1.0\n // Context: https://github.com/twbs/bootstrap/issues/11660\n footer,\n small,\n .small {\n display: block;\n font-size: 80%; // back to default font-size\n line-height: @line-height-base;\n color: @blockquote-small-color;\n\n &:before {\n content: \"\\2014 \\00A0\"; // em dash, nbsp\n }\n }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n text-align: right;\n border-right: 5px solid @blockquote-border-color;\n border-left: 0;\n\n // Account for citation\n footer,\n small,\n .small {\n &:before { content: \"\"; }\n &:after {\n content: \"\\00A0 \\2014\"; // nbsp, em dash\n }\n }\n}\n\n// Addresses\naddress {\n margin-bottom: @line-height-computed;\n font-style: normal;\n line-height: @line-height-base;\n}\n","// Typography\n\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover,\n a&:focus {\n color: darken(@color, 10%);\n }\n}\n","// Contextual backgrounds\n\n.bg-variant(@color) {\n background-color: @color;\n a&:hover,\n a&:focus {\n background-color: darken(@color, 10%);\n }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: @code-color;\n background-color: @code-bg;\n border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: @kbd-color;\n background-color: @kbd-bg;\n border-radius: @border-radius-small;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n box-shadow: none;\n }\n}\n\n// Blocks of code\npre {\n display: block;\n padding: ((@line-height-computed - 1) / 2);\n margin: 0 0 (@line-height-computed / 2);\n font-size: (@font-size-base - 1); // 14px to 13px\n line-height: @line-height-base;\n color: @pre-color;\n word-break: break-all;\n word-wrap: break-word;\n background-color: @pre-bg;\n border: 1px solid @pre-border-color;\n border-radius: @border-radius-base;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: @pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n .container-fixed();\n\n @media (min-width: @screen-sm-min) {\n width: @container-sm;\n }\n @media (min-width: @screen-md-min) {\n width: @container-md;\n }\n @media (min-width: @screen-lg-min) {\n width: @container-lg;\n }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n .make-row();\n}\n\n.row-no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n padding-right: ceil((@gutter / 2));\n padding-left: floor((@gutter / 2));\n margin-right: auto;\n margin-left: auto;\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-right: floor((@gutter / -2));\n margin-left: ceil((@gutter / -2));\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-right: (@gutter / 2);\n padding-left: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-right: (@gutter / 2);\n padding-left: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-right: (@gutter / 2);\n padding-left: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-right: (@gutter / 2);\n padding-left: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-right: floor((@grid-gutter-width / 2));\n padding-left: ceil((@grid-gutter-width / 2));\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n .col-@{class}-push-0 {\n left: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n .col-@{class}-pull-0 {\n right: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n","// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-no-qualifying-type\n\n//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n background-color: @table-bg;\n\n // Table cell sizing\n //\n // Reset default table behavior\n\n col[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n display: table-column;\n float: none;\n }\n\n td,\n th {\n &[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n display: table-cell;\n float: none;\n }\n }\n}\n\ncaption {\n padding-top: @table-cell-padding;\n padding-bottom: @table-cell-padding;\n color: @text-muted;\n text-align: left;\n}\n\nth {\n text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: @line-height-computed;\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-cell-padding;\n line-height: @line-height-base;\n vertical-align: top;\n border-top: 1px solid @table-border-color;\n }\n }\n }\n // Bottom align for column headings\n > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid @table-border-color;\n }\n // Remove top border from thead by default\n > caption + thead,\n > colgroup + thead,\n > thead:first-child {\n > tr:first-child {\n > th,\n > td {\n border-top: 0;\n }\n }\n }\n // Account for multiple tbody instances\n > tbody + tbody {\n border-top: 2px solid @table-border-color;\n }\n\n // Nesting\n .table {\n background-color: @body-bg;\n }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-condensed-cell-padding;\n }\n }\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: 1px solid @table-border-color;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n border: 1px solid @table-border-color;\n }\n }\n }\n > thead > tr {\n > th,\n > td {\n border-bottom-width: 2px;\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n > tbody > tr:nth-of-type(odd) {\n background-color: @table-bg-accent;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n > tbody > tr:hover {\n background-color: @table-bg-hover;\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n min-height: .01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n overflow-x: auto;\n\n @media screen and (max-width: @screen-xs-max) {\n width: 100%;\n margin-bottom: (@line-height-computed * .75);\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid @table-border-color;\n\n // Tighten up spacing\n > .table {\n margin-bottom: 0;\n\n // Ensure the content doesn't wrap\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n white-space: nowrap;\n }\n }\n }\n }\n\n // Special overrides for the bordered tables\n > .table-bordered {\n border: 0;\n\n // Nuke the appropriate borders so that the parent can handle them\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n\n // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n // chances are there will be only one `tr` in a `thead` and that would\n // remove the border altogether.\n > tbody,\n > tfoot {\n > tr:last-child {\n > th,\n > td {\n border-bottom: 0;\n }\n }\n }\n\n }\n }\n}\n","// Tables\n\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &:hover > .@{state},\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type, property-no-vendor-prefix, media-feature-name-no-vendor-prefix\n\n//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n // so we reset that to ensure it behaves more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359.\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: @line-height-computed;\n font-size: (@font-size-base * 1.5);\n line-height: inherit;\n color: @legend-color;\n border: 0;\n border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n display: inline-block;\n max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n margin-bottom: 5px;\n font-weight: 700;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\ninput[type=\"search\"] {\n // Override content-box in Normalize (* isn't specific enough)\n .box-sizing(border-box);\n\n // Search inputs in iOS\n //\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n -webkit-appearance: none;\n appearance: none;\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; // IE8-9\n line-height: normal;\n\n // Apply same disabled cursor tweak as for inputs\n // Some special care is needed because
').addClass('cw').text('#')); + } + + while (currentDate.isBefore(this._viewDate.clone().endOf('w'))) { + row.append($('').addClass('dow').text(currentDate.format('dd'))); + currentDate.add(1, 'd'); + } + + this.widget.find('.datepicker-days thead').append(row); + }; + + _proto2._fillMonths = function _fillMonths() { + var spans = [], + monthsShort = this._viewDate.clone().startOf('y').startOf('d'); + + while (monthsShort.isSame(this._viewDate, 'y')) { + spans.push($('').attr('data-action', 'selectMonth').addClass('month').text(monthsShort.format('MMM'))); + monthsShort.add(1, 'M'); + } + + this.widget.find('.datepicker-months td').empty().append(spans); + }; + + _proto2._updateMonths = function _updateMonths() { + var monthsView = this.widget.find('.datepicker-months'), + monthsViewHeader = monthsView.find('th'), + months = monthsView.find('tbody').find('span'), + self = this, + lastPickedDate = this._getLastPickedDate(); + + monthsViewHeader.eq(0).find('span').attr('title', this._options.tooltips.prevYear); + monthsViewHeader.eq(1).attr('title', this._options.tooltips.selectYear); + monthsViewHeader.eq(2).find('span').attr('title', this._options.tooltips.nextYear); + monthsView.find('.disabled').removeClass('disabled'); + + if (!this._isValid(this._viewDate.clone().subtract(1, 'y'), 'y')) { + monthsViewHeader.eq(0).addClass('disabled'); + } + + monthsViewHeader.eq(1).text(this._viewDate.year()); + + if (!this._isValid(this._viewDate.clone().add(1, 'y'), 'y')) { + monthsViewHeader.eq(2).addClass('disabled'); + } + + months.removeClass('active'); + + if (lastPickedDate && lastPickedDate.isSame(this._viewDate, 'y') && !this.unset) { + months.eq(lastPickedDate.month()).addClass('active'); + } + + months.each(function (index) { + if (!self._isValid(self._viewDate.clone().month(index), 'M')) { + $(this).addClass('disabled'); + } + }); + }; + + _proto2._getStartEndYear = function _getStartEndYear(factor, year) { + var step = factor / 10, + startYear = Math.floor(year / factor) * factor, + endYear = startYear + step * 9, + focusValue = Math.floor(year / step) * step; + return [startYear, endYear, focusValue]; + }; + + _proto2._updateYears = function _updateYears() { + var yearsView = this.widget.find('.datepicker-years'), + yearsViewHeader = yearsView.find('th'), + yearCaps = this._getStartEndYear(10, this._viewDate.year()), + startYear = this._viewDate.clone().year(yearCaps[0]), + endYear = this._viewDate.clone().year(yearCaps[1]); + + var html = ''; + yearsViewHeader.eq(0).find('span').attr('title', this._options.tooltips.prevDecade); + yearsViewHeader.eq(1).attr('title', this._options.tooltips.selectDecade); + yearsViewHeader.eq(2).find('span').attr('title', this._options.tooltips.nextDecade); + yearsView.find('.disabled').removeClass('disabled'); + + if (this._options.minDate && this._options.minDate.isAfter(startYear, 'y')) { + yearsViewHeader.eq(0).addClass('disabled'); + } + + yearsViewHeader.eq(1).text(startYear.year() + "-" + endYear.year()); + + if (this._options.maxDate && this._options.maxDate.isBefore(endYear, 'y')) { + yearsViewHeader.eq(2).addClass('disabled'); + } + + html += "" + (startYear.year() - 1) + ""; + + while (!startYear.isAfter(endYear, 'y')) { + html += "" + startYear.year() + ""; + startYear.add(1, 'y'); + } + + html += "" + startYear.year() + ""; + yearsView.find('td').html(html); + }; + + _proto2._updateDecades = function _updateDecades() { + var decadesView = this.widget.find('.datepicker-decades'), + decadesViewHeader = decadesView.find('th'), + yearCaps = this._getStartEndYear(100, this._viewDate.year()), + startDecade = this._viewDate.clone().year(yearCaps[0]), + endDecade = this._viewDate.clone().year(yearCaps[1]), + lastPickedDate = this._getLastPickedDate(); + + var minDateDecade = false, + maxDateDecade = false, + endDecadeYear, + html = ''; + decadesViewHeader.eq(0).find('span').attr('title', this._options.tooltips.prevCentury); + decadesViewHeader.eq(2).find('span').attr('title', this._options.tooltips.nextCentury); + decadesView.find('.disabled').removeClass('disabled'); + + if (startDecade.year() === 0 || this._options.minDate && this._options.minDate.isAfter(startDecade, 'y')) { + decadesViewHeader.eq(0).addClass('disabled'); + } + + decadesViewHeader.eq(1).text(startDecade.year() + "-" + endDecade.year()); + + if (this._options.maxDate && this._options.maxDate.isBefore(endDecade, 'y')) { + decadesViewHeader.eq(2).addClass('disabled'); + } + + if (startDecade.year() - 10 < 0) { + html += ' '; + } else { + html += "" + (startDecade.year() - 10) + ""; + } + + while (!startDecade.isAfter(endDecade, 'y')) { + endDecadeYear = startDecade.year() + 11; + minDateDecade = this._options.minDate && this._options.minDate.isAfter(startDecade, 'y') && this._options.minDate.year() <= endDecadeYear; + maxDateDecade = this._options.maxDate && this._options.maxDate.isAfter(startDecade, 'y') && this._options.maxDate.year() <= endDecadeYear; + html += "" + startDecade.year() + ""; + startDecade.add(10, 'y'); + } + + html += "" + startDecade.year() + ""; + decadesView.find('td').html(html); + }; + + _proto2._fillDate = function _fillDate() { + _DateTimePicker.prototype._fillDate.call(this); + + var daysView = this.widget.find('.datepicker-days'), + daysViewHeader = daysView.find('th'), + html = []; + var currentDate, row, clsName, i; + + if (!this._hasDate()) { + return; + } + + daysViewHeader.eq(0).find('span').attr('title', this._options.tooltips.prevMonth); + daysViewHeader.eq(1).attr('title', this._options.tooltips.selectMonth); + daysViewHeader.eq(2).find('span').attr('title', this._options.tooltips.nextMonth); + daysView.find('.disabled').removeClass('disabled'); + daysViewHeader.eq(1).text(this._viewDate.format(this._options.dayViewHeaderFormat)); + + if (!this._isValid(this._viewDate.clone().subtract(1, 'M'), 'M')) { + daysViewHeader.eq(0).addClass('disabled'); + } + + if (!this._isValid(this._viewDate.clone().add(1, 'M'), 'M')) { + daysViewHeader.eq(2).addClass('disabled'); + } + + currentDate = this._viewDate.clone().startOf('M').startOf('w').startOf('d'); + + for (i = 0; i < 42; i++) { + //always display 42 days (should show 6 weeks) + if (currentDate.weekday() === 0) { + row = $('
" + currentDate.week() + "" + currentDate.date() + "
" + currentHour.format(this.use24Hours ? 'HH' : 'hh') + "
" + currentMinute.format('mm') + "
" + currentSecond.format('ss') + "